Cine & Video Digital
 
Restauración de VHS mediante VirtualDub y 2D Cleaner

Revisando en la colección de documentales almacenados en mis viejos VHS hallé, hace algún tiempo, bastante material de hace unos diez años grabado en la velocidad LP. Este modo de grabación es el que emplea menos cinta analógica por segundo de video (la cinta avanza a la mitad de la velocidad del modo normal -el llamado SP-), con lo cual la calidad se empobrece y lo que es peor se deteriora mucho más rápido a medida que vemos repetidas veces la grabación.

Como compensación, uno puede almacenar el doble de video que en el modo normal. Esto está muy bien para grabar algo que solo se desea ver y luego se borra, pero no para algo que uno desearía conservar para ver más adelante. Claro, evidentemente yó no pensaba así en el momento en el que lo grabé o tal vez sobrestimé la capacidad de los VHS..

En definitiva, tengo bastante de ese material. Cuando realicé las primeras capturas, con el objetivo de convertirlo a digital, realmente me decepcionó la calidad y el terrible noise que aparecía sobre la imagen. Por eso desistí de ese trabajo, aunque quedó revoloteando la idea de buscar algún método o herramienta para "restaurar esa calidad perdida". Aquí podríamos hacer una observación interesante sober lo que uno entiende por calidad. Un video tiene buena calidad cuando se ve igual que el original o cuando se ve diferente porque uno mejoró la nitidez, contraste, removió noise, etc?. Sin reflexionar demasiado presuponemos que el video "mejorado" tiene mayor calidad, pero pensemos lo siguiente: quizás al cambiarle los parámetros que permitieron mejorarlo estamos en realidad obteniendo un video final que no es igual al original como se grabó en su momento en la cinta. Tenemos un video que tiene mayor contraste, colores ligeramente diferentes de los que poseía el que se grabó...tenemos un video que se "parece" al que vimos originalmente pero no es exactamente igual. En aras de "mejorarlo" lo que hacemos es cambiarlo para que luzca de otro modo. Acá es en donde pienso que hay dos lecturas del significado de calidad en un video.

En la búsqueda de alguna forma de restaurar los materiales de VHS provenientes de fuentes LP me topé con un filtro para VirtualDub llamado 2D Cleaner. Este filtro fue originalmente desarrollado por Jim Casaburi, pero Jaan Kalda y Donald Graft realizaron versiones optimizadas para Pentium 4 y para Athlon que utilizan instrucciones específicas de estos microprocesadores lo que le permite conseguir, según ellos mismos nos informan y pude constatar, que trabaje varias veces más rápido que la versión original.

Combinando 2D Cleaner, Dynamic Noise Reduction y Chroma Noise Reduction (otros conocidos) con los filtros internos de Virtual Dub (levels y resize), se puede obtener un resultado bastante aceptable (y ciertamente notorio) en el pasaje de material de VHS en baja calidad.


Captura y filtrado en VirtualDub

Lo primero es, como siempre, capturar el material que almacenaremos convenientemente guardado en nuestro disco. Para mis pruebas utilizo siempre video MJPEG [la única posibilidad que me da mi placa MiroDC10] el cual capturo en una resolución de 360x540 a 600 KB por segundo y dos fields (campos). Por el lado del software, lo que necesitaremos para restaurar nuestro material VHS de peor calidad será:

1 - VirtualDub
2 - 2D Cleaner 0.9 (Optimized Version).
3 - Dynamic Noise Reduction
4 - Chroma Noise Reduction

Para esta ocasión utilizaré un viejo material documental que me interesaba convertir a digital [del Discovery Channel, circa 1994]. Abriendo el video capturado en VirtualDub nos encontramos con algo que luce como el frame de la izquierda en la figura situada bajo estas líneas:

Frame original [4900 kbps - 360x540]

Frame restaurado [4900 kbps - 360x540]

Podemos apreciar varias cosas aquí (concentremonos por el momento en la figura de la izquierda). Ante todo vemos noise en todas partes, que se manifiestará claramente cuando le damos play a la secuencia, y además una especie de lluvia sobre toda la imagen; apreciamos también lo que se denomina chroma noise [el cielo y la tierra presentan como manchas de colores claramente irreales para esas zonas].

Ahora abrimos el menú Video | Filters en VirtualDub y cargamos la siguiente secuencia de filtros:

1 - 2D Cleaner Optimized 0.9
2 - Dynamic Noise Reduction 2.1
3 - Chroma Noise Reduction 1.1
4 - Levels

La configuración empleada de cada filtro, para este trabajo en particular, fue la siguiente:

 


Luego de esta batería de filtros, nuestro frame procesado (restaurado) lucirá como el de la derecha de la imagen superior. Es notable la reducción del noise y de los falsos colores en el cielo y la tierra. Cuando observamos el preview en VirtualDub realmente es sorprendente como ha "mejorado" el resultado final por sobre el original.

Los seteos más adecuados para cada uno de los filtros dependerán de la fuente en particular. Pienso que no existe una fórmula que sea la mejor para todos los casos posibles. Se deben hacer siempre pruebas hasta llegar a estar conforme con el resultado. Por el lado del 2D Cleaner, en el transcurso de la búsqueda del setting apropiado, resultó que otros valores mayores de threshold, si bien removían aún más noise, le daban al video un aspecto irreal, lo difuminaban demasiado con pérdida de detalles y lo hacían lucir más parecido a un dibujo animado. Este tipo de recaudos hay que tomar cuando estemos utilizando estos filtros; es necesario hacer pruebas con secuencias que muestren cambios de escena rápidos, planos con mucha y poca iluminación, panorámicas y primeros planos, etc. Aquí la práctica hace a la calidad final.

Haciendo un zoom sobre los frames original y restaurado podemos ver como trabajó nuestro conjunto:


Zoom frame original [4900 kbps - 360x540]


Zoom frame restaurado [4900 kbps - 360x540]

La imagen restaurada, que visualmente es más nítida y es un gran triunfo de la calidad, muestra (en contraste) una pérdida de detalle inusitada. Casi podríamos decir que es una pintura; y sin embargo es lo que consideramos un buen trabajo [compárese nuevamente los frames en tamaño natural de la primer figura]. El filtrado es así: removemos las rugosidades (noise) al costo de perder detalles. Finalmente en el promedio a la retina le parece más nítido lo de la derecha. Observemos que en los dos casos es notorio el entrelazado de la imagen. Este entrelazado proviene de que aún en esta fase estamos trabajando con los dos fields de la imagen; en el paso siguiente volveremos a un solo field.

Luego de evaluar una configuración de filtros adecuada para nuestro material debemos cambiar el tamaño al formato final. En mi caso será de 360x270 (para conservar la proporción 4:3) y allí es donde VirtualDub hace el deinterlace y tenemos en la salida un solo field. Para ello utilizamos el filtro resize (que vendría a ser el quinto en la lista) con el setting mostrado en la figura situada abajo a la izquierda. El resultado final, apreciable en la ventana de preview del VirtualDub, será un frame como el de abajo a la derecha.



Compresión y resultado final

El paso siguiente es seleccionar en el menú Video | Compresion el códec que vamos a emplear para comprimir el resultado final. En mi caso será DivX 5.2, pero eso puede variar según el destino final. Si necesitamos generar MPG podemos utilizar la función frame server del VirtualDub y trabajar desde TMPGEnc, que es (según mi opinión) el mejor generador de video MPEG que se puede conseguir.

No nos hemos ocupado aquí en detalle de las opciones de configuracion del DivX o en su defecto de la exportación a MPG porque no era el objetivo de este artículo. De igual forma hemos pasado por alto el procesado del sonido. La idea era simplemente compartir un método general para restaurar video proveniente de VHS en magra condición. Creo que el objetivo ha sido logrado. Al menos puedo ver mis documentales sin tanto noise.


Ultima actualización: 16-Mar-2008