Você está na página 1de 15

Virtualdubmod y Avisynth: Filtrado de Anime

Orden de Filtros
El orden de los filtros es algo crucial en muchos aspectos para conseguir una calidad esperada. Como se ha comentado en la parte de Novatos es importante el capturar directamente en YUY2, de esa manera evitamos conversiones intiles de modo de color y tambin se evita un uso innecesario de CPU a la hora de la conversin, lo cual se traduce en una menor velocidad de compresin.

1 - Carga de filtros
Esto se hace mediante la sentencia: loadplugin ("h:\capture\filtros\temporalcleaner.dll")

Y cargando los filtros a utilizar (que se comentarn en esta misma seccin)

2 - Carga de video

Esto se realiza con alguna de estas opciones: Avisource ("capture.avi",audio=true) #DirectShowSource ("capture.avi") #Mpeg2source ("capture.d2v") Avisource = Para carga de archivos en avi. DirectShowSource = Carga de videos por medio de filtros Directshow (.avi, .mpg, etc) Mpeg2source = Carga del script resultante del DVD2AVIdg.

3 - Filtro de Desentrelazado
El primer filtro a tener en cuenta es el de desentrelazado, para evitar esa sucesin de lineas horizontales que aparecen cuando existe movimiento en el video.

Dos ejemplos de videos entrelazados

Los mejores filtros que evitan este problema son:

TOMSMOCOMP 1.7 (tomsmocomp.dll)


Este filtro utiliza una estimacin de movimiento y un tratamiento adaptativo del entrelazado del video para realizar un desentrelazado con la mayor precisin posible. TomsMoComp (TopFirst, SearchEffort, VerticalFilter)

TopFirst: Esto indica el campo que se inicia primero. El valor 1 indica que las lineas 0,2,4 deben ser las que se procesen primero. El valor 0 indica los impares. El -1 aplica un modo automtico de este mtodo. SearchEffort: Indica cuanto CPU se utilizar para la deteccin del entrelazado De un valor de 0 a 30, siendo 30 lo mximo y 1 el mnimo. Un valor -1 aplica un desentrelazado Smart bob, que en ciertos casos puede ser efectivo. VerticalFilter: Aplica un filtro en los tpicos efectos del desentrelazado. 1 = Activado. 0 = Desactivado. Ejemplo: TomsMoComp (1,15,1) #Por defecto TomsMoComp (0,0,1) # Otra posible configuracin (y buena).

DECOMB 5.2.1 (versin parcheada por sh0dan)


Este es un pequeo pack de filtros para todo lo relacionado con fuentes entrelazadas y que contiene los siguientes filltros: TELECIDE. Este filtro realiza el desentrelazado por medio del alineado de campos, funcionando mal cuando el entrelazado es puro, siendo eficaz con pequeo entrelazado (como pueden ser de capturas). Debido a la gran posibilidad de configuraciones solo pondr los mas habituales. Telecide(order=1) Configuracin tpica Telecide(order=1,guide=1,vthresh=30,dthresh=10) Otra configuracin tpica Telecide(order=1,guide=1,vthresh=0,dthresh=0,post=2) Casos extremos de entrelazado Telecide(order=1,guide=1,vthresh=0,dthresh=0,post=2,blend=true)

Mismo caso al anterio pero con un blend para

FieldDeinterlace. Este es un filtro de desentrelazado en modo postprocesado (blend) y util para casos de entrelazado extremo donde no se consigue desentrelazarlo correctamente.
FieldDeinterlace() Configuracin tpica con blend (estilo desentrelazado de virtualdub, pero mejor)

FieldDeinterlace(blend=false,dthreshold=0,chroma=true)
Para un desentrelazado mas correcto que el anterior.

Decimate. Este se utiliza cuando se captura en modo NTSC (29.97fps) y se quiere convertir en 23.997fps.
Telecide(order=1) Decimate(cycle=5) Para su correcto funcionamiento, se aade el filtro Decimate(cycle=5) despues del de desentrelazado, como se puede ver en la imagen superior.

KERNELDEINT 1.40
Otro buen filtro de desentrelazado que puede ser til en ciertos casos. KernelDeint(order=1, sharp=false) Configuracin normal (el order se puede cambiar entre 0 y 1) KernelDeint(order=1, sharp=true) Configuracin para obtener mayor nitidez.

4 - Filtro de Ajuste de Color / Brillo / Contraste / etc


Aqu despues de desentrelazar es cuando se hacen los arreglos en cuanto a problemas de color, brillo, contraste y demas problemas similares.

CNR2 (Chroma Noise Reducer)


Este filtro se utiliza para la eliminacin de los famosas zonas de "arco iris" que suelen aparecer en zonas blancas con lineas negras cercanas. Tambien es util para limpiar fuentes de origen tipo VHS, donde la fuente es de calidad media - baja, ya que estabiliza los problemas del croma.

Con efecto arcoiris

Sin efecto arcoiris

(despues de usar CNR2)

CNR2() Configuracin habitual y que suele funcionar bien (aunque es algo agresivo) CNR2("xxx",5,6,255) Configuracin aconsejada para eliminacin del problema del arcoiris.

FixVHSOversharp
Este filtro lo que hace es filtrar las sombras oscuras o claras alrededor de los bordes, muy tpico en VHS (debido a la seal que emite que suele ser defectuoso y acentua demasiado en ciertas zonas). Tambien sealar que hay que tener cuidado con el filtro, ya que a pesar de conseguir buenos resultados, tambien puede producir aretfactios no deseables.

Con efecto mosquito

Sin efecto mosquito

Este al ser exclusivo de YUY2, necesitar (si as lo pide) de la sentencia ConvertToYUY2()

Antes de llamar a los filtros (parte de abajo). De todas formas el error de no YUY2 suele aparecer en el virtualdub de la siguiente forma (o similar), indicando la linea donde se produce el error.

FixVHSOversharpL(30,12,8) FixVHSOversharp(30,14,10) Configuracin habitual. FixVHSOversharpL(30,12,8) FixVHSOversharp(30,14,10) FixVHSOversharp(30,12,8) Configuracin que suele obtener buenos resultados.

Lumafilter (Mpeg2dec3.dll)
Este filtro lo que hace es oscurecer un poco la imagen para realizar un efecto de "contraste" y mejorando un poco las zonas "muy claras" y "muy oscuras" y asi aumentando la compresibilidad.

Lumafilter() Configuracin por defecto y que suele ser el mejor de todos.

Tweak (Mpeg2dec3.dll)
Este filtro regula problemas en el brillo, contraste y color. De todas formas esta opcin esta para regular y mejorar los tonos que tiene la fuente de video (obviamente no hace milagros con capturas donde el contraste es muuy elevado). Tweak(hue=0.0, sat=1, bright=0.0, cont=1) HUE SAT (-180 a 180) Ajusta el color, de rojo a verde. (0.0 a 10) Ajusta la saturacin de color.

BRIGHT (-255 a 255) Ajusta la luz, de menos a ms. CONT (0.0 a 10) Ajusta el contraste.

Si en cualquier video aumentamos un poco de contraste y disminuimos un poco de luz, conseguiremos una definicin de los contornos.

ColorYUV(levels="PC->TV")

Este filtro se utiliza para regular la entrada de seal (y tambien de la propia captura). Habitualmente cuando se realiza una captura, la seal de entrada esta limitado por cierto rango de YUY2 (0-15 y 237255 no entran dentro de este rango) y cuando es convertido al ordenador, estos valores son transferidos a 0-255 (abarcando todo el rango). Pero existe un problema y es que las capturadoras hacen el escalado a 16-236 aumentando los contrastes. Y esto se puede probar con una previsualizacin de la TV (preview en YUY2) con el programa de capturar. Aparece una seal de contraste normal, pero al capturar aparece un video con mucho mas contraste, y es por esta razon explicado antes. Para solucionar este problema (a menos que se haga como yo que regulo el contraste para menos en el programa de captura, y asi captura bien) es con lo siguiente: ColorYUV(levels="PC->TV")

4 - Filtro Temporal
Los filtros temporales se basan en la comparacin de frames para igualarlos y "pegarlos", de esta forma se realiza una limpieza en zonas generales donde exista un granulo muy aparente (o granulo paradeante).

Sin limpieza

Con Temporal activado

Estos filtros hay que utilizarlos con precaucin ya que pueden provocar efectos fantasmillas (sobre todo utilizando un desentrelazado en modo "blend") que no son mas que desdoblamientos en los movimientos bruscos.

TemporalCleaner (temporalcleaner.dll)
Este filto tiene su analogo en filtro de virtualdub, y como esta indicado arriba, realiza una comprobacin de los frames introducidos y comparandolos. Este filtro tiene la ventaja de que al solo poder introducirse modo de color YUV es que diferencia entre la parte Luma (Y) y la Croma (U y V) ganando asi en calidad. TemporalCleaner (3,7) Valor para casos en los que la captura sale en buenas condiciones (de Tv por ejemplo) TemporalCleaner (5,10) Valor por defecto y que suele ir bien en casi todos los casos normales.

TemporalCleaner (9,17) Esta configuracin sera para casos extremos de suciedad y granulo.

TemporalSoften
Este filtro viene de serie al instalar el avisynth y con el suele conseguirse muy buenos resultados (similares al temporalcleaner). Ya es cuestin de gustos el usar uno u otro. Temporalsoften(5,8,10,mode=2,scenechange=6) Limpieza habitual Temporalsoften(8,10,12,mode=2,scenechange=9) Configuracin que suele ofrecer muy buenos resultados

Los filtros spatial se basan en la comparacin de los valores de un radio de cada pixel, de tal forma que intenta igualarlos para asi limpiar suciedades. Valores pequeos pueden ofrecer resultados realmente increibles, pero su abuso puede provocar la "apastelacin" y reducin de detalles de la imagen. La ventaja tambien es que solo actua en cada frame, independiente de frame anterior y posterior.

5 - Filtro Spatial o Espacial

Sin limpieza

Con Spatial activado

eDeen (edeen.dll)
Este filtro es un Spatial de excelentes resultados para Anime. Una pena que no se siga mejorando, pero aun asi su calidad es francamente buena. edeen (2,5,12,2,1,true) Valor para casos en los que la captura sale en buenas condiciones (de Tv por ejemplo) edeen (2,8,16,2,2,true)

Valor por defecto y que suele ir bien en casi todos los casos normales. edeen (3,12,20,2,2,true) Configuracin para videos con imagen mala o que se quiera limpiar mucho. Problema de este filtro: Necesidad de convertir el sistema de color del video a YV12 (si es que no lo est) y se realiza con Converttoyv12() antes de utilizar este filtro en el script de avisynth.

Deen (edeen.dll)
Este filtro es un mixto entre 3D (temporal y spatial al mismo tiempo) y tambien permite utilizar un modo Spatial puro. Aqu hay ejemplos de Spatial y en la siguiente seccin en modo 3D. Deen ("a2d",2,10,10) Valor por defecto y que consigue una limpieza aceptable. Deen ("a2d",3,12,14) Valor algo mas agresivo consiguendo mayor limpieza. Deen ("m2d",1,12,12) Otro modo de limpieza spatial Problema de este filtro: Necesidad de convertir el sistema de color del video a YV12 (si es que no lo est) y se realiza con Converttoyv12() antes de utilizar este filtro en el script de avisynth.

Los filtros 3D se basan en una mezcla de filtro Spatial y Temporal para la limpieza del video sin degradar en demasiado la imagen y aprovechando la unin de estos dos modos. Sin duda alguna un pequeo filtrado de un filtro de estas carartersticas despues de un filtro temporal, mejoran sensiblemente la imagen sin degradar en exceso la misma.

6 - Filtro 3D o MIXTO (SPATIAL/TEMPORAL)

Sin limpieza

Con 3D activado

Deen (deen.dll)
Este es otro filtro 3D pero con la ventaja que esta especialmente diseado para utilizarse con ANIME y es ah donde consigue una calidad extraordinaria. Deen ("a3d",2,10,10) Valor que consigue una limpieza aceptable en casos normales. Deen ("a3d",3,12,14) Valor algo mas agresivo consiguendo mayor limpieza, pero preservando los detalles. Deen ("a3d",3,20,20) Valor para casos extremos donde la suciedad es notable.

MipSmooth (mipsmooth.dll)
Este es un muy buen filtro 3D y que tiene la ventaja de poder realizar configuraciones personalizadas. De todas formas pondr lo ms bsico para utilizar y que suele ir bien en casi todos los casos. mipsmooth (preset = "AnimeHQ") Configuracin util para la mayora de los casos mipsmooth (preset = "AnimeLQ") Valor algo mas agresivo para casos con mucha suciedad. mipsmooth (preset = "AnimeLQ", Downsizer="lanczos", upsizer ="bicubic") Otro configuracin agresiva, pero que obtiene mejores resultados que el ANIMELQ.

7 - FILTROS PARA ESTILIZAR IMAGEN


En este apartado entran los filtros que se encargar de estilizar la imagen, como puede ser la limpieza de los contornos, lineas mas oscuras, etc.

Asharp (asharp.dll)
Este filtro se utiliza para realzar las lineas y hacerlas mas oscuras. Se aconseja que seguido de este filtro se utilice el aWarpsharp para estilizar mas estas lineas.

Con limpieza unicamente

Con asharp activado

asharp (1) Configuracin bsica para mejorar las lineas. asharp (1.5) Configuracin mas fuerte que la anterior. asharp (2) Esta configuracin realza bastante las lineas y con un mayor valor pueden aparecer defectos visuales.

Awarpsharp (asharp.dll)
Este filtro va en conjuncin con el Asharp para estilizar las lineas que ha dejado el filtro anterior, consiguiendo un bonito efecto en videos Anime.

Con limpieza unicamente awarpsharp ()

Con asharp activado

Con asharp+warp activado

Configuracin que suele ir bien para todos los casos. awarpsharp (10,2,0.5,2) Configuracin menos agresiva

8 - FILTROS COMPLEMENTARIOS

Aqu se podran englobar diversos filtros que se pueden ordenar de cualquier forma y que suelen ser complementarios de los anteriores para mejorarlos o para mejorar la compresibilidad.

Unfilter (unfilter.dll)
Este filtro sirve para desenfocar la imagen de forma precisa y rpida (su homnimo "blur" es algo mas lento y no tan preciso).

Con warp activado

Con unfilter antes de Deen

Con el filtro detras del Spatial o el Filtro 3D se consigue mayor limpieza y mayor efecto del filtro. Un ejemplo sera algo as.

Dup (dup.dll)
El filtro DUP realmente es como un temporal, pero lo que hace es una comparacin de frames, y los que sean muy parecidos, los iguala. De esta forma en videos como ANIME mejora la compresibilidad al haber mas frames parecidos. Un abuso del mismo puede provocar parones (asi que cuidado con utilizarlo con fuentes con excelente imagen).
Dup (threshold=1, blend= true, maxcopies= 8) Configuracin bsica para mejorar la compresibilidad. Dup (threshold=1.5, blend= true, maxcopies= 8) Configuracin algo mas agresiva y que puede provocar parones.

Gernalmente se aplica este filtro como el ltimo de todos.

9 - FILTROS RESIZE, CROP y RESOLUCIONES


Obviamente cuando se realiza una captura, se intenta hacer en la mxima resolucin posible, de hecho la mejor siempre ser 768 x 576 por ser considerado como FULL PAL. La ventaja de capturar a resoluciones elevadas, es que al minimizarlas se mejora en calidad, ya que la aplicacin de filtros puede mejorar la calidad, pero es necesario reducir el tamao de video para conseguir una relacin calidad + tamao ideal. (de ah que se intente capturar siempre a la mxima resolucin, aunque se tenga que disminuir a 352 x 288).

CROP (propio avisynth)


Este filtro se utiliza para eliminar las partes negras en los bordes de la captura.
Crop (izquierda, arriba, -derecha, -abajo)

Tanto el valor de derecha como el de abajo deben estar con el signo menos (-). Crop (12,6,-8,-4) Ejemplo de posible crop.

RESIZE (propio avisynth)


Estan ordenados por orden de menor nitidez (bilinear) a mayor (lanczos).
BilinearResize (X, Y) Esta opcin solo es recomendable para fuentes en mal estado. Elimina mucha nitidez. BicubicResize (X, Y, 0.333, 0.333) til para ciertos casos en los que se quiere ganar en compresibilidad. BicubicResize (X, Y, 0, 0.50) Configuracin que considero para una captura normal. BicubicResize (X, Y, 0, 0.75) Permite un poco mas de nitidez, bueno para fuentes en buen estado. LanczosResize (X, Y)

Configuracin ideal para mantener una buena nitidez y solo con fuentes en buen estado.

RESOLUCIONES
Habitualmente cuando se captura de la Tv, en la mayora de los casos el AR (aspecto ratio, diferencia entre resolucin ancho y alto) es 4:3 y con estos la resolucin a utilizar es bien sencilla. El problema suele venir a la hora de capturar casos panoramicos, que no suelen ser todos estandars y a veces incluso hay que ajustarse a alguna resolucin cercana a la ideal. AZUL: Recomendados. ROJO: No Recomendados (pero totalmente utilizables)

4:3 o 1.33:1
Calidad Mala Calidad Regular Calidad Medio Calidad Normal Calidad Buena Calidad Muy Buena Calidad Excelente 384 x 288 416 x 312 480 x 360 512 x 384 576 x 432 640 x 480 1280 x 960

1.78:1
432 x 240 464 x 256 480 x 272 512 x 288 576 x 320 640 x 360 1024 x 576

1.85:1
480 x 256 480 x 256 512 x 272 544 x 288 560 x 304 624 x 336

2.00:1
480 x 240 512 x 256 512 x 256 576 x 288 576 x 288 640 x 320

2.35:1
480 x 208 480 x 208 528 x 224 528 x 224 576 x 240 640 x 272

1280 x 720 La tabla solo es un ejemplo de posibles resoluciones y siempre siempre depender del tamao asignado al video y el tiempo del mismo. Porque obviamente, con 20min de captura de muy buena calidad, en teora se debera meter 640 x 480, pero si queremos meterlo en 60mb, pues esta claro que no va ir nada bien y se vera horrible. Cuestin de hacer pequas pruebas de 5min para saber que resolucin le conviene ms o menos al video a comprimir (porque los milagros no existen).

El orden de los filtros en el script es una parte muy importante en la parte de compresin, ya que dependiendo de si un filtro esta en una posicin u otra, el resultado puede ser totalmente distinto. Aqu explicar lo que para mi es un buen orden de filtros (aunque para ciertos casos quizas otro sera mejor, pero ya es cuestin de probar).

10 - ORDEN DE FILTROS

1 Carda de filtros (carga de DLL) 2 Carga del video (avisource,directshowsource o mpeg2source)


Filtros

3 Filtro de desentrelazado (siempre que este entrelazado el video) 4 Filtros de ajuste de luminosidad (ira CNR2, tweak y los necesarios) 5 Filtro Temporal (para eliminacin de ruido general) 6 Filtro 3D o Temporal/Spatial (a veces el eDeen en este punto mejora la calidad) 7 Filtro Spatial (cuando la imagen no tiene vibraciones es cuando se aplica este) 8 Filtro Asharp (para realzar los contornos y volverlos mas oscuros) 9 Filtro Awarpsharp (estiliza los contornos) 10 Filtro Crop (para eliminar las partes negras de los bordes de la captura) 11 Filtro Resize (el mas adecuado para la compresin a realizar)
Filtro DUP (para la igualacin de frames muy parecidos)

12

Este es un ejemplo de orden de filtros. Por desgracia existen algunos filtros que no funcionan con sistema de colores YUY2 o YV12 y dentro del script hay que aadir los famosos

ConvertToYUY2() ConvertToYV12() Cuantas mas conversiones se realicen, mas lenta se har la compresin y siempre existe una pequea perdida de croma en estas conversiones (la LUMA es la nica que se mantiene). El Unfilter es otro filtro que no esta detallado y que en ciertas ocasiones puede ser perfecto para mejorar la compresibilidad. En el orden no se ha puesto debido a que puede ir tanto antes del Spatial como antes del Crop o incluso despues del resize.

11 - EJEMPLOS
Aqu hay un ejemplo de posible configuracion para el filtrado de Anime capturado de la TV.
AZUL: Carga de filtros en memoria para ser utilizados en el script. ROJO: Carga del video a procesar. VERDE: Llamada de filtros loadplugin("h:\capture\filtros\temporalcleaner.dll") loadplugin("h:\capture\filtros\MPEG2Dec3.dll") loadplugin("h:\capture\filtros\Dup.dll") loadplugin("h:\capture\filtros\Deen.dll") loadplugin("h:\capture\filtros\cnr2.dll") loadplugin("h:\capture\filtros\asharp.dll") loadplugin("h:\capture\filtros\Decomb510.dll") loadplugin("h:\capture\filtros\aWarpSharp.dll") loadplugin("h:\capture\filtros\Msmooth.dll") loadplugin("h:\capture\filtros\mipsmooth.dll") loadplugin("h:\capture\filtros\TomsMoComp.dll") loadplugin("h:\capture\filtros\unfilter.dll") loadplugin("h:\capture\filtros\eDeen.dll") loadplugin("e:\windows\system32\vsfilter.dll") avisource("captura.avi") FieldDeinterlace(blend=true) converttoyv12() CNR2("xxx",5,6,255) tweak(sat=1.23,cont=1.34, bright=-8) temporalcleaner(6,12) Deen ("a3d",2,6,6) edeen(2,8,8,2,3,true) asharp(1.5,0) aWarpSharp() crop(8,8,-12,-8) bicubicResize(512,384,0,0.75) TextSub("tusdivx.ssa") Dup (threshold=1, blend= true, maxcopies= 8)

Descarga de ejemplo

El converttoyv12() se aplica para poder utilizar los filtros asharp, deen, edeen, y awarpsharp. Esta configuracin la he utilizado para capturas de Anime de TV (fuente aceptable/buena) y con excelentes resultados.

Ahora con el script acabado es cuando empiezan las pruebas para ver si esta bien o si se debe modificar algo y siempre tener cuidado con no abusar de ningun filtro, ya que su exceso siempre es daino para la imagen general (aunque en primera persona de la sensacin de muy buen resultado). Ahora toca abrir el .avs con el virtualdub y probar que tal va.

12 - Finalizando

En el virtualdubmod existe un modo en la pestaa TOOLS que permite editar el script de avisynth, modificarlo y refrescar el virtualdub para as no tener que cargar una y otra vez el script.

Este es sin duda el mejor modo para probar distintos scrips.