• 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Manual Completo de Filtros y sus usos con AviSynth Parte 2
#1
Filtros Sharpen

aSharp
[YV12]

Se caracteriza por poseer capacidad de adaptarse ante situaciones en donde su aplicacion podria provocar ruido o enfatizar bloques, y asi lograr un mejor resultado que un filtro sharpen convencional como el interno incluido con AviSynth (Sharpen).

Sintaxis:
asharp(T,D,B,hqbf)

T(valor real en el rango 0..32) representa el limite hasta donde el filtro sera aplicado (2 por defecto). Un valor de 0 no hara nada.
D(real rango 0..16) permite configurar la fuerza con que el filtro adaptara su funcionamiento ante situaciones que lo ameriten, un valor de 0 desactiva completamente la capacidad de adaptarse. Valor por defecto es 4. Cuando esta activo el valor de T actua como maximo.
B(real rango 0..4) permite activar y regular la adaptacion del filtro para evitar la aplicacion del filtro sobre bloques y empeorar aun mas los mismos. Un valor negativo desactiva esta funcion. Un valor igual o mayor a cero lo activa y cuanto mayor sea mayor influencia tendra al ser aplicado. Solo funciona con D>0. Por defecto esta desactivado (B=-1).
hqbf(true,false). Ideal activarlo para videos con bloques, su funcion es filtrarlos, requiere que D>0. Por defecto esta desactivado (hqbf=false).

aWarpSharp

Segun lo que mis ojos me permiten observar, el resultado de aplicar este filtro difiere bastante de un efecto sharpen convencional. Lo que se observa es una compresion de los bordes difusos, "afinandolos" se podria decir. Esto ofrece un efecto sharpen muy potente en videos borrosos, pero no es magico, tambien distorsiona detalle fino y deforma objetos pequeños. Por supuesto es posible regular los parametros para disminuir esta deformacion y aun asi se logra un efecto sharpen notable, no tan fuerte pero por lo menos mas normal.
Debido a su principio de funcionamiento quizas sea mas recomendable para aplicar sobre dibujos animados o anime, donde se puede aprovechar mejor sin necesidad de reducir mucho su intensidad de aplicacion.
Existen dos versiones de este filtro, la original cuyo desarrollo se abandono hace tiempo, y una version modificada y actualizada con mejoras de estabilidad y optimizaciones. Por razones historicas se mencionan ambas, pero lo mas recomendable es usar la nueva version.

aWarpSharp original

aWarpSharp(depth=16, blurlevel=2, cm=2)

La intensidad de aplicacion se varia con depth, y les aseguro que querran bajarla si deciden usar el filtro sobre imagen normal ;-).
blurlevel parece regular la magnitud de la deformacion, a menor valor mas acotada es esta, es decir que limita el sharpen pero tambien permite un efecto mas normal. Puede variar entre 1 y 4.
cm es el modo de tratar la crominancia, donde un valor de 0 desactiva el filtrado de la misma. 1 y 2 son dos modos para filtrarla, donde 1 involucra a la luminancia y 2 es filtrado de chroma independiente. Segun la documentacion es mas recomedable usar cm=1. En mis pruebas lo que note fue una mayor estabilidad de color con dicho valor, ya que ciertos bordes quedaban sobre coloreados usando cm=2.

aWarpSharp v2

aWarpSharp2(thresh=128, blur=2, type=0, depth=16, chroma=4)

depth es la intensidad general de aplicacion, puede variar entre -128 a 127. Equivale a depth*blurlevel/2 (valores version original).
thresh sirve para ajustar la deteccion de bordes, reducir para bajar la agresividad del filtro. Variable entre 0 y 255.
blur permite regular la intensidad de la deformacion, puede variar entre 0 y 100. Disminuir este valor implica aumentar el efecto sharpen, pero disminuye la calidad de usarse el filtro en alta intensidad y/o agresividad, en cuyo caso conviene aumentarlo.
type=1 ofrece mejor calidad pero es mas lento que usar type=0. Al usar type=1 el valor por defecto de blur pasa a ser 16 dado que para lograr el mismo efecto sharpen debe ser 8 veces el valor que con type=0.
Para elegir el modo de procesar crominancia: chroma=0 anula crominancia (deja al video en blanco y negro); chroma=1 ignora la informacion de chroma y produce un video inservible; chroma=2 la copia tal como esta en el original (cm=0); chroma=3 la procesa de forma independiente (cm=2); chroma=4 la procesa basandose en la informacion de luminancia (cm=1).

MSharpen

Filtro sharpen que posee la particularidad de poder ser configurado para solo aplicarse sobre los bordes (detalle grueso). Esto se logra mediante una mascara que "oculta" las zonas de la imagen sin este detalle y evita que el filtro se aplique sobre las mismas. Util para evitar amplificar el ruido de fondo.
Por supuesto, la cantidad de detalle que abarca la mascara puede ser configurada, segun hasta donde queramos que se filtre.

Sintaxis y valores por defecto:
MSharpen(mask=false, threshold=10, strength=100, highq=true)

Para poder ver el detalle que esta siendo cubierto por la mascara colocan mask=true. Luego pueden disminuir el parametro threshold para abarcar detalle mas grueso, o viceversa. Una vez tienen este parametro bien configurado, quitan de la sintaxis mask=true.
La fuerza de aplicacion se fija con strength, como de costumbre.
Imponer highq=false implica mayor velocidad pero menor calidad en la deteccion de detalle.

Ejemplo:
Primero usamos la mascara para configurar que detalle sera filtrado:
MSharpen(mask=true, threshold=10)
Una vez establecida la mascara (se bajo threshold para abarcar detalle mas grueso) se puede proceder al filtrado:
MSharpen(threshold=7)

LimitedSharpenFaster

Esta funcion tiene como objetivo agudizar la nitidez del video minimizando la aparicion de efectos indeseables. Vendria a ser un filtro sharpen con proteccion contra efectos como halo, ruido mosquito, aliasing, todos aquellos comunmente encontrados al aplicar un filtro sharpen.
Debo decir que hasta ahora es el mejor filtro sharpen que he visto, los resultados que logra son impresionantes, pero claro esto no viene gratis y hay que sacrificar tiempo siendo mucho mas lento que aplicar un filtro sharpen convencional.
Visto que el objetivo de la funcion es ofrecer un aumento de la nitidez limitado para evitar los artifacts ya mencionados, de necesitar resultados mas fuertes, en vez de aumentar la fuerza de aplicacion a lo bruto puede que sea mas conveniente recurrir a un filtro convencional sin las protecciones.

Filtros requeridos:
MaskTools v2
RemoveGrain
WarpSharp (solo para Smode=1)

Sintaxis y valores por defecto:
LimitedSharpenFaster(Smode=3, edgemode=0, strength=100, Lmode=1, ss_x=1.5, ss_y=1.5, dest_x, dest_y, soft=0, wide=false)

Smode(1,2,3,4) selecciona el modo de operacion. Estos modos son: 1-UnsharpMask, 2-Sharpen, 3-Range sharpening, 4-Nonlinear sharpening. Los primeros dos aplican los filtros que les dan nombre, mientras que los ultimos dos aplican un metodo propio del script LSF. Mis pruebas me mostraron que el modo (3) parece ser el mas eficiente (relacion sharpen/calidad).
edgemode(-1,0,1,2), permite elegir si agudizar solo el detalle de bordes (1) o solo el detalle de todo lo que no sea bordes (2), o todo (0). (-1) muestra lo que el filtro identifica como bordes. Usar edgemode=1 es ideal para cuando quieren evitar amplificar innecesariamente ruido de fondo y/o para videos con bajo nivel de texturas, les recomiendo que lo prueben.
strength(0 a inf), este parametro regula la intensidad con la que se agudiza el detalle. En Smode=2, el valor esta limitado entre 0-100, y representa el rango de 0.0 a 1.0 del filtro Sharpen; valores mayores son tomados como 100. Por defecto el valor es de 100 salvo para Smode=1 donde es de 160. El valor de este parametro puede subirse sin miedo, dado que por diseño la funcion "limita" el efecto si este podria causar artifacts, aunque por supuesto de subirlo mucho estos se haran notables.
Lmode(0,1,3), controla la forma en que la funcion limita el efecto sharpen para evitar los artifacts. Un valor de (0) desactiva la limitacion, (1) limita normalmente sobre toda la imagen y (3) no limita sobre bordes pero si lo hace normalmente sobre todo lo demas.
ss_x y ss_y(>=1.0) permiten aplicar el metodo llamado supersampling (cuando son mayores que 1.0), que se trata de primero usar resize para agrandar la imagen, aplicar el filtro, y luego resize al tamaño original (internamente se utiliza el filtro lanczos). El objetivo de hacer esto es evitar la aparicion de aliasing, aunque tampoco conviene subir mucho estos valores para evitar reducir la efectividad del filtro, lo ideal es usar los minimos que eviten el aliasing. Con dest_x y dest_y pueden indicar una resolucion de salida, para asi ahorrarse una etapa de resize.
soft(-1 a 100) suaviza (efecto smooth) el efecto del filtrado, es decir que se deberia ocupar de limpiar ruido que haya sido amplificado durante el mismo. Su intensidad dependera de que tanto ruido haya en el video antes de aplicar la funcion. Tambien podria usarse como filtrado ligero de ruido si por ejemplo tambien usan edgemode=1, ya que de esta forma el filtro no amplifica el ruido que pudiera haber sobre fondos o areas de poco detalle y soft puede trabajar de forma mas eficiente sobre el ruido que suele presentarse en dichas areas. (-1) calcula automaticamente un valor apropiado.
wide=true en vez de tomar los limites locales de un pixel en una matriz de 3x3 pixeles aledaños, utiliza una matriz de 5x5, y permite lograr mejores resultados si el video original esta muy borroso y/o si se usa supersampling.

Existen otros parametros que no se mencionan, pero que no deberian necesitar para una correcta aplicacion del filtro. De todas maneras pueden recurrir a la

Ejemplo:
LimitedSharpenFaster(edgemode=1, ss_x=1.0, ss_y=1.0) -> efecto sharpen sin proteccion contra aliasing y aplicado solo sobre bordes.

Descarga (click derecho->guardar archivo como...)

Pueden leer mas sobre la filosofia detras de su funcionamiento aqui, aunque se trata de una version anterior lo que alli se explica seguro sigue siendo valido, pero no presten atencion a los parametros y sus valores, eso cambió.


LSFmod

Modificacion de la funcion LimitedSharpenFaster, que agrega importantes mejoras de versatilidad, asi como tambien otras correcciones y optimizaciones varias.
Al igual que la funcion original, el objetivo es el aumento de nitidez del video tratando de evitar o por lo menos minimizar la aparicion de los artifacts comunes a la aplicacion de un filtro sharpen.
Visto que la razon principal de esta modificacion es ofrecer una mayor versatilidad en la configuracion, de no buscar hilar muy fino seria mejor que usen la version original, para evitar complicarse de mas con la gran cantidad de parametros extra.

Filtros requeridos:
MaskTools v2
RemoveGrain
WarpSharp (solo para Smode=1)
VariableBlur (solo para Smode=2)

Sintaxis y valores por defecto:
LSFmod(defaults="fast", strength=100, Smode=3, Smethod=2, kernel=11, preblur="OFF", secure=true, source, Lmode=1, soft=0, soothe=true, keep=20, edgemode=0, edgemaskHQ=false, ss_x=1.5, ss_y=ss_x, dest_x, dest_y, show=false, screenW=1280, screenH=1024)

El parametro defaults permite predeterminar el valor de todos los demas.
Desde ya que aunque fijen este parametro tambien pueden fijar los demas, en cuyo caso el valor del parametro que fijen manualmente es el que se usa.
defaults="old": funcionamiento exactamente igual a la funcion LimitedSharpenFaster por defecto. Equivale a los mismos valores mostrados en la sintaxis salvo por: secure=false, soothe=false, keep=25, edgemaskHQ=truedefaults="fast": es la config por defecto, y son los valores mostrados en la sintaxis, que corresponden a una aplicacion rapida del filtro.defaults="slow": aplicacion lenta pero en teoria de mayor calidad. Los parametros diferentes a los por defecto son:  Smode=5, Smethod=3, secure=true, Lmode=4, soft=-2, edgemaskHQ=true.Como siempre, strength regula la fuerza de aplicacion. Dado que el proposito de la funcion es limitar el efecto para evitar remarcar o crear ruido, pueden subir el valor de este parametro sin miedo (dentro de limites razonables claro).
Se pueden usar diferentes modos para lograr el efecto sharpen, segun el valor de Smode sea igual a: 1-UnSharp Masking (filtro WarpSharp); 2-UnSharp Masking (filtro VariableBlur); 3-Range Sharpening; 4-NonLinear Sharpening (original); 5-NonLinear Sharpening (corregido).
A su vez, los modos 3, 4 y 5  pueden aplicarse usando tres metodos diferentes, que se fijan como Smethod=: 1-3x3 kernel; 2-Min/Max; 3-Min/Max + 3x3 kernel.
En mis pruebas (usando Smode=3), el primer metodo lo note menos agresivo que el segundo, es decir que el efecto sharpen era notablemente inferior. Mientras que el tercer metodo no presenta mucha diferencia respecto del segundo, apenas se nota que es mas agresivo.
El valor de kernel solo afecta a los metodos 1 y 3, y permite incrementar su agresividad. El valor por defecto es la minima agresividad, y de ahi puede tomar los valores: 20, 12 y 19, en orden de menos a mas agresivo. Aunque no esperen grandes diferencias, por lo que pude ver se nota mas en fondos y areas de colores solidos.
Solo en los modos 3, 4 y 5, para evitar producir ruido sobre bordes (ringing), se puede activar preblur="ON". Y si ademas se desea evitar reforzar el ruido en general, se puede usar este parametro junto con su filtro de ruido favorito, por ejemplo asi: preblur="FFT3DFilter(plane=4)". Esto en el caso de que no hayan filtrado el ruido previamente.
secure=true (solo util en los modos 3, 4 y 5) evita el efecto de bandas sobre gradientes de color, asi como tambien la apariencia aceitosa. Segun mis observaciones lo que hace este parametro es reducir o directamente anular la aplicacion del efecto sharpen sobre fondos o superficies de color solido, y asi logra evitar los problemas mencionados. Recomendable dejarlo activado.
Lmode sirve para configurar la forma en que la funcion limita el efecto sharpen. No limitar equivale a mayor agresividad pero tambien a mayores artifacts. Los valores posibles son: 1-Limita la aplicacion de forma general; 2-Limita la aplicacion solo sobre bordes (mayor agresividad sobre fondos, colores solidos, texturas); 3-Limita a cero la aplicacion sobre bordes y normal sobre todo lo demas (menor agresividad sobre bordes); 4-Limita normal sobre bordes y tambien limita pero mas agresivo sobre lo demas.
Para compensar el efecto sharpen se puede hacer uso de soft, que puede variar de 0 a 100. Un valor de -1 calcula un valor automaticamente igual que en la funcion original, y un valor de -2 calcula automaticamente segun un nuevo metodo de LSFmod. Ignoro las diferencias.
Para reducir la inestabilidad temporal(ruido aleatorio en general y artifacts sobre el movimiento) y el aliasing, limitando un poco mas el efecto sharpen, se puede aplicar soothe=true. El parametro keep es el minimo porcentaje de efecto sharpen que se debe dejar pasar, es decir que pone un maximo a que tanto puede debilitarse el efecto sharpen de estar usando soothe=true.
edgemode=0: filtra todo; =1: filtra solo bordes (similar a usar secure=true); =2: filtra todo lo que no sea bordes; =-1 muestra los bordes.
edgemaskHQ=true: misma mascara de bordes que la version original; =false: mascara mas rapida pero de menor calidad.
Para controlar el aliasing(efecto serrucho en bordes) estan presentes los tipicos factores de supersampling: ss_x y ss_y, cuyo valor equivale a un resize de tantas veces la imagen original, aplicacion del filtro y vuelta a tamaño original. No usen valores muy altos porque limitaran mucho el efecto sharpen, solo el minimo para evitar el aliasing. Con dest_x y dest_y pueden indicar una resolucion de salida, para asi ahorrarse una etapa de resize.

Colocando show=true pueden aprovechar una funcionalidad extra de la funcion que consiste en mostrar a la salida una comparacion entre el video antes y despues de aplicar el filtrado, junto con informacion sobre la configuracion. Los valores de screenW y screenH son las resoluciones horizontal y vertical de la imagen de salida respectivamente.

Una utilidad mas que interesante la encuentran en el parametro source. Basicamente este les permite definir un video de referencia, para que la funcion no aumente la nitidez mas alla de este. Es decir que pueden usar la funcion para restaurar el detalle perdido en una etapa de filtrado de ruido.
El uso vendria a ser:
video_original
filtro_de_ruido()
LSFmod(source=video_original)
Ejemplo:
a = last
FFT3DFilter(bt=5, plane=4, bw=32, bh=32, ow=16, oh=16)
LSFmod(source=a)

Ejemplos:
Aplicacion identica a la funcion LSF original por defecto:
LSFmod(defaults="old")
Partiendo de la configuracion por defecto de LSF original pero aprovechando las mejoras de la nueva version:
LSFmod(defaults="old", secure=true, soothe=true, preblur="ON") -> tengan en cuenta que la finalidad de estas nuevas opciones es controlar los artifacts, cosa que logran reduciendo el efecto sharpen.

SeeSaw

Cuando se busca el aumento de la nitidez de un video, lo que se recomienda para lograr un resultado satisfactorio es hacerlo mediante dos etapas de filtrado, ambas opuestas en objetivos.
Una etapa de filtrado de ruido (o efecto smooth) y la etapa de efecto sharpen. Esto se hace asi porque de aplicar solo el efecto sharpen el ruido ya presente se veria muy intensificado y el resultado aunque tendria la mayor nitidez tambien se veria bastante mal por el incremento del ruido. Entonces un resultado que podriamos llamar estable se consigue combinando ambas etapas de filtrado, que siendo opuestas tienden a ofrecer un termino medio aceptable.
De aplicarse primero el filtrado de ruido, luego el sharpen podra aplicarse de forma segura sin miedo a intensificar el ruido que ya no esta. Pero de usar este orden mucho del detalle fino se pierde con la primer limpieza, y dicho detalle no puede ser recuperado.
Si primero se aplica el sharpen, todo el detalle esta disponible para ser intensificado. Pero luego, debido a la prescencia potenciada de ruido, se debe aplicar el smooth, y este proceso contraresta mucha de la ganacia de detalle obtenida en la primer etapa.
Por supuesto, lo que se busca es el termino medio sea cual sea el metodo que se use.

La funcion SeeSaw se ocupa de realizar este proceso de dos etapas automaticamente. Sin embargo no usa ninguna de las aproximaciones mencionadas por si solas, sino que combina ambas tratando de permanecer en un punto intermedio y asi obtener los mejores resultados.
Resumiendo: el resultado se vera beneficiado por una disminucion del ruido y un aumento de nitidez. Por otro lado, si el original posee efecto halo, este se vera notablemente intensificado.

Importante: esta funcion esta pensada para videos que ya se ven razonablemente bien. Aplicarla directamente sobre videos que poseen artifacts mas "pesados" que simple ruido no es recomendable sin antes ayudar con algo de filtrado previo que apunte especificamente a dichos artifacts.

El filtrado de ruido lo hacen con su filtro denoiser favorito, asi SeeSaw trabaja comparando el video filtrado por ustedes con el original. Esto les permite elegir el mejor filtrado de ruido segun sus preferencias y las circunstancias.
Tambien pueden aplicar la funcion directamente, aprovechandose el filtrado interno de ruido, que utiliza el filtro RemoveGrain, aunque lo mejor es usar un denoiser aparte.

Filtros requeridos:
RemoveGrain y Repair
MaskTools v2

Sintaxis:
SeeSaw("video original", "video con ruido filtrado", Sstr=1.5, ssx=1.0, ssy=ssx, NRlimit=2, NRlimit2=NRlimit+1, Slimit=NRlimit+2, bias=49)

Sstr es la intensidad de aplicacion.
El supersampling (para evitar aliasing) se fija con ssx y ssy, pero segun la documentacion no es necesario, a lo sumo usar bajos valores como 1.25 deberia ser suficiente.
NRlimit representa el maximo cambio que puede sufrir un pixel por el filtrado de ruido, por lo que aumentar este valor potencia el filtrado de ruido. Pero ojo porque NRlimit2 y Slimit por defecto dependen de este, asi que si solo se definen este parametro se estara aumentando la agresividad en general de la funcion. De necesitarse solo regular la funcion que representa este parametro se deben definir los otros dos explicitamente.
NRlimit2 tambien limita cambios por denoising, pero en una etapa de filtrado intermedia, no la definitiva, por ello por defecto tiene un valor mas alto.
Slimit es el limite del cambio maximo de un pixel por efecto sharpen. Aumentar este valor incrementa el efecto sharpen.
Visto que SeeSaw trata de mantenerse en un estado intermedio entre los dos metodos comentados, se ofrece el parametro bias para inclinar la balanza hacia el metodo sharpen->smooth, o de mayor detalle fino pero mas ruido (bias>=50); o hacia el metodo smooth->sharpen, menor ruido pero bajo detalle fino (bias<50).

Tiene mas parametros, como pueden ver en el script, pero no creo que valga la pena mencionarlos y lo que les recomiendo es que los dejen como vienen por defecto.

Ejemplo 1:

a = last

b = a.Denoiser_Favorito()

SeeSaw()

Ejemplo de uso generico. El a = last indica que se toma el video tal como esta al llegar a dicha linea.

Ejemplo 2:

LoadPlugin("H:\tallervideo\Filtros Avisynth\fft3dfilter.dll")
LoadPlugin("H:\tallervideo\Filtros Avisynth\mt_masktools-26.dll")
LoadPlugin("H:\tallervideo\Filtros Avisynth\RepairSSE2.dll")
LoadPlugin("H:\tallervideo\Filtros Avisynth\RemoveGrainSSE2.dll")

Import("H:\tallervideo\Filtros Avisynth\SeeSaw.avs")

DirectShowSource("C:\...\video.avi")

a = last

b = a.FFT3DFilter(bt=5, plane=4, ow=16, oh=16)

SeeSaw(a, b, Sstr=1.0)

Ejemplo de script completo. Se disminuye la fuerza de la funcion para un mejor resultado en un video de buena calidad. Se aplica el exelente filtro de ruido FFT3D en un modo de alta calidad e intensidad media.
Ojo que este ejemplo posee una etapa de filtrado de ruido bastante potente.

Sharpen
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]

El filtro Sharpen es el unico filtro para dicho efecto que viene incluido con AviSynth.

Sintaxis:
Sharpen(amount,MMX)
Sharpen(amountH,amountV,MMX)

Donde 0.0<amount<1.0 es un valor real y representa la fuerza del filtro.
En la segunda forma de invocarlo la variable amountH sirve para indicar por separado la intensidad del filtro en forma horizontal, mientras que se indica con amountV la vertical.
MMX(true,false): activado por defecto. Si se desactiva (MMX=false) se puede evitar la aparicion del efecto "halo", donde se forman "bandas claras" en los contornos de los objetos. Sin embargo su desactivacion previene al filtro de aprovechar las capacidades MMX del procesador y por ende resulta en una caida de la velocidad, asi que solo desactiven si notan molesto dicho efecto.

Ejemplo:
Sharpen(0.85)


Conversion de Color

ConvertToXXX
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]

Convierte el video al espacio de color elegido. Util cuando el filtro que quieren usar solo soporta algunos formatos especificos o uno solo en particular, como por ejemplo el filtro SpatialSoften, que solo soporta trabajar sobre YUY2. Tambien en el caso de que el codificador a donde envian el video soporte un formato de color de entrada especifico.

Sintaxis:
ConvertToXXX(matrix,interlaced,chromaplacement,chromaresample)

XXX puede ser: RGB, RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24.
En matrix pueden elegir entre usar: "Rec.601"(default), "PC.601", "Rec.709" y "PC.709", todos van con comillas incluidas. Esto le indica al filtro cual es el rango de colores. Los Rec reducen el rango a aquel soportado por la TV analogica(16,235) y los PC procesan el rango de color completo(0,255). Segun la informacion en la wiki matrix="Rec.601" debe ser usado cuando la fuente es XviD/DivX  o capturas analogicas; matrix="Rec.709" en cambio se recomienda usarlo cuando la fuente es HDTV o DVD.
interlaced puede ser true o false(default) y lo activan cuando la fuente es entrelazada.
chromaplacement se usa cuando convierten desde o hacia YV12, pueden elegir entre "MPEG2" (default), "MPEG1" o "DV", con las comillas incluidas.
chromaresample es el filtro de reescalado que se usa para la crominancia en los casos en donde la misma tiene diferente resolucion entre los formatos de color que se estan convirtiendo. Puede usarse cualquiera de los mencionados en el filtro Resize, el default es chromaresample="Bicubic".


Ajustes de Color y Niveles

Aqui encuentran todo lo relacionado a regular color, brillo, contraste, gamma, etc.


ColorYUV
[YUY2-Y8-YV411-YV12-YV16-YV24]

Filtro interno que ofrece varias formas de modificar color y luminancia(brillo y contraste) de un video en formato de color YUV (no sirve para RGB).

Sintaxis:
ColorYUV(gain_y, off_y, gamma_y, cont_y, gain_u, off_u, cont_u, gain_v, off_v, cont_v, opt, levels)

gain_y es un multiplicador del maximo valor de luminancia, es decir que aumenta el nivel de blanco, estirando hacia arriba, desde el minimo valor(nivel de negro, que no se modifica), la gama de valores de luminancia, por supuesto con el objetivo de lograr una mayor luminosidad. Puede tomar valores entre 0 y 1024. En el filtro Tweak esto equivale al parametro cont. Para lograr un aumento de (k+1) veces, deben colocarle al parametro un valor de k*256, por ejemplo para aumentar 1.2 veces el nivel de blanco usan gain_y=51.2.
gain_u y gain_v hacen lo mismo con la crominancia (planos U y V, azul y rojo respectivamente), pero no tiene mucho sentido su aplicacion, dado que produce un estiramiento hacia el azul o el rojo que arruina los colores.
off_y vendria a ser el brillo, o el equivalente al parametro bright del filtro Tweak. Lo que hace la funcion brillo es sumarle o restarle a la luminancia un determinado valor, en este caso definido por el parametro off_y.
off_u y off_v aplican el mismo concepto a la crominancia, pero nuevamente no son utiles dado que producen un corrimiento hacia azul o rojo, en este caso aun mas marcado dado que se modifican todos los valores por igual.
cont_u y cont_v sirven para regular el color, tal como el parametro sat del filtro Tweak. Esta funcion lo que hace es estirar los valores de crominancia desde el centro hacia afuera, reduciendo el minimo nivel y aumentando el maximo, y es en esto que difiere de gain, que solo aumentaba el maximo. Este comportamiento permite evitar el problema del corrimiento que si producian off y gain cuando se usaban con la crominancia. Lo que hay que tener en cuenta es que como los parametros regulan los canales V y U por separado, para regular el color en general deben definir ambos parametros con el mismo valor. Los valores siguen el mismo criterio que el parametro gain.
cont_y es lo mismo pero aplicado a la luminancia y se puede usar para aumento de contraste, con la salvedad de que como tambien se modifica el nivel de negro, se notara un oscurecimiento muy marcado de la imagen. Por ello, salvo se busque especificamente reducir el nivel de negro, es mejor usar la funcion gain_y para aumento de contraste convencional.
Opcionalmente es posible limitar el rango de valores de luminancia colocando opt="coring". De hacerlo, todos los valores fuera del rango de [16,235] seran eliminados.
Mediante levels="PC->TV" o levels="TV->PC" es posible realizar la conversion del rango de luminancia, entre el de la PC: [0,255], y el de la TV: [16,235]. Como pueden ver esta conversion lo que hace es modificar los valores limite para el nivel de negro y nivel de blanco, asi que el efecto es el mismo que aplicar la funcion cont_y.

Ejemplos:
Para aumentar contraste 1.2 veces -> ColorYUV(gain_y=51.2)
Para aumentar color 1.2 veces -> ColorYUV(cont_u=51.2, cont_v=51.2)
Para aumentar brillo -> ColorYUV(off_y=10)
Para disminuir brillo -> ColorYUV(off_y=-10)


GreyScale
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]

Convierte el video a escala de grises (blanco y negro), pero sin cambiar el formato de color.

Sintaxis:
Greyscale()


Tweak
[YUY2-Y8-YV411-YV12-YV16-YV24]

Con el podremos regular a gusto contraste, brillo, saturacion y color. Es sumamente util y nos permitira lograr algun que otro efecto muy interesante.

Sintaxis:
Tweak(hue,sat,bright,cont,coring,startHue,endHue,maxSat,minSat,interp)

hue(-180.0 a +180.0, por defecto en 0.0): tiñe la imagen hacia un determinado color. Valores mayores llevan la imagen hacia el rojo, mientras que valores menores lo hacen hacia el verde.
sat(0.0 a 10.0, por defecto en 1.0): ajusta la saturacion del color, o sea que este vendria a ser el valor que ajusta la intensidad del color. Valores por debajo de 1.0 la reducen y viceversa.
bright(-255.0 a +255.0, por defecto en 0.0): regula el brillo. Con bright>0.0 se aumenta, mientras que a valores negativos se disminuye.
cont(0.0 a 10.0, por defecto en 1.0): contraste, 1.0 es sin variacion, valores inferiores lo bajan, valores mayores lo aumentan.
coring(true o false, por defecto true): lo que hace cuando esta activado es limitar la luminancia a valores en el rango [16,235], siendo este el rango de TV. De definirse como false se usa el rango de PC, que es [0,255]. Limitar el rango equivale a impedir que algunas areas de la imagen tomen valores muy negros o muy blancos.
maxSat(por defecto 150.0) y minSat(por defecto 0.0) (ambos van desde 0.0 a 150.0, en porcentaje): permiten definir el rango de valores de saturacion que debe tener un pixel para que se le aplique el filtrado que regulan los parametros hue y sat. Por ejemplo, util para cuando solo desean aumentar el color de ciertas areas de la imagen sin saturar las demas. Para RGB el valor maximo sera de 100.0 (100%), para otros espacios de color esta permitido usar hasta 150.0(150%).
startHue(por defecto 0.0) y endHue(por defecto 360.0) (ambos desde 0.0 hasta 360.0 en grados): igual que los anteriores, definen un rango para la aplicacion de los parametros hue y sat, solo que en este caso el rango consiste en los valores de hue de cada pixel.
interp(0 a 32, por defecto 16): se usa para interpolar (de forma lineal) los valores de minSat y maxSat, en el rango [minSat-interp,minSat] y [maxSat,maxSat+interp]. Con interp=0 no hay interpolacion, util por ejemplo cuando el video se compone unicamente de colores uniformes (anime por ej).

Ajustes de Framerate

Filtros destinados a trabajar sobre los frames por segundo o FPS de un video.


AssumeFPS
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]

Sintaxis:
AssumeFPS(fps,sync_audio)
AssumeFPS(numerator,denominator,sync_audio)
AssumeFPS(clip1,clip2,sync_audio)
AssumeFPS(preset,sync_audio)

Se ocupa de modificar el framerate de reproduccion sin modificar el conteo de frames (causando que el video se reprodusca mas rapido o mas lento de lo normal).
Si se usa sync_audio=true (false por defecto) tambien modificara el sample rate del audio para igualar la duracion del video. Esto tambien constituye un metodo para modificar unicamente el sample rate del audio.
fps es un numero real que representa los frames por segundo, aunque es mas conveniente cuando se trata de NTSC utilizar la relacion 30000/1001 (en vez de 29.97) o 24000/1001 (en vez de 23.976), utilizando los valores numerator y denominator para el numerador y el denominador respectivamente. Esto se recomienda dado que cuando especifican un numero real avisynth lo pasa a una relacion, entonces siendo 23.976 y 29.97 resultados aproximados de las relaciones ya mencionadas en la realidad cuando avisynth los pase no dara la relacion estandar exacta.
Tambien pueden valerse de presets ya existentes para elegir los FPS segun los estandares, mediante el valor preset, y segun los mencionados en la tabla de esta pagina.
Si otro video esta presente (mediante clip2 es posible agregarlo) entonces el frame rate del video original (clip1) sera igualado al mismo, util cuando se desean unir dos videos de framerate ligeramente distintos.

Ejemplo:
AssumeFPS(24000,1001,true)
Permite modificar los FPS a 23,976 y tambien modifica el audio.


ChangeFPS
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]

Modifica el frame-rate eliminando o duplicando frames, sin modificar la duracion.

Sintaxis:
ChangeFPS(fps,linear)
ChangeFPS(numerator,denominator,linear)
ChangeFPS(clip1,clip2,linear)
ChangesFPS(preset,linear)

linear=false (por defecto en true) evita que AviSynth pida los frames de una forma lineal.
El resto de parametros y su funcion coinciden con el filtro AssumeFPS, asi que pueden guiarse con dicha descripcion.


Decimate
[YUY2-YV12]

Elimina frames de un video. Util para reducir el frame rate de videos con frames duplicados. Opera eliminando un frame de un grupo de N frames, siendo N un parametro configurable, metodo tambien llamado 1-in-N.

Sintaxis:
Decimate(cycle,mode,threshold,threshold2,quality,ovr,show)

cycle fija el valor de N, es decir que se elimina un frame cada N frames. Rango: 2-25 (por defecto: 5).
mode determina el modo de operacion del filtro. Rango: 0-3 (por defecto: 0).
mode=0: el filtro descarta el frame del ciclo de N frames que se determina como el mas similar a su predecesor.
mode=1: en vez de eliminar el frame detectado como duplicado, lo reemplaza por una interpolacion entre dicho frame y el siguiente, o lo deja pasar. El algoritmo elige que opcion tomar basandose en: si el ciclo de frames es de un video con pulldown 3:2 o video puro(sin frames duplicados); el valor de threshold. Este modo esta recomendado para material hibrido, es decir con partes del video con frames duplicados y partes con el frame rate puro.
mode=2: elimina un frame de la seguidilla mas larga de frames detectados como duplicados. Este modo se recomienda como el mas confiable para usar con Anime o material donde el movimiento ocurre solo en cada segundo, tercero, cuarto, etc frame.
mode=3: en vez de eliminar el frame mas similar, el filtro aplica diferentes estrategias al ciclo de frames segun sea un ciclo con pulldown 3:2 o un cliclo puro. Ciclos de video puro los procesa de forma normal. A los ciclos con duplicados se les aplica una mezcla de frames, de tal forma que de 5 frames queden 4. Hay dos factores que le permiten decidir al filtro como proceder: si el ciclo de frames es o no puro y en el valor de threshold.
Este modo es util para videos hibridos que tienen mayormente video sin frames duplicados.
threshold, valor decimal, por defecto 0.0; como se dijo en mode=1 los frames detectados como duplicados se pueden tratar de dos formas, se los interpola o se los deja pasar cuando la diferencia metrica entre frames supera el valor del threshold (siempre y cuando este sea mayor que cero). Esto es ultil porque permite configurar el filtro para que sepa que considerar como duplicado y que no en un determinado video. Para saber que valor usar se aplica la funcion show(true,false), que muestra sobre el video el valor de la diferencia metrica entre frames.
Este valor afecta mode=3 de forma similar. No sirve para mode=0.
threshold2: valor real, por defecto 3.0; en mode=2 este parametro establece cuan cerca dos frames deben estar para ser considerados duplicados
quality: entre 0 y 3, por defecto en 2, regula la calidad de la deteccion de frames duplicados. 0 es mas rapido y 3 mas lento.
ovr: acepta texto donde se especifique la ubicacion de un archivo para forzar la desicion del filtro, es decir en ciertos casos el video habra salido perfecto salvo un par de frames en donde el filtro se equivoco, entonces pueden forzar la aplicacion del filtro sobre esos frames en particular mediante un archivo de texto de extension .dec, sonde deben especificar dichos frames con su correspondiente numero, uno por renglon. Ej: ovr="C\...\anular.dec".

FUENTE: manual de referencia (Reference Manual) incluido en la descarga.


FDecimate
[YV12-YUY2]

Permite remover frames de un video, con el objetivo de variar la tasa de frames por segundo, sin producir desincronizacion audio/video.
La diferencia con el filtro Decimate es que permite reducir el frame rate a cualquier valor de forma eficaz, dado que no esta restringido a solo eliminar 1 frame cada tantos (metodo tambien llamado 1-in-N) sino que es capaz de detectar y eliminar los frames duplicados cuando le es posible. El metodo de 1-in-N para remover frames no puede ser utilizado cuando el proceso que se aplico para duplicar los frames en primer lugar no fue de la misma indole (ej: videos a 120FPS).

Sintaxis:
FDecimate(29.97)

Por supuesto en vez de 29.97 ponen el valor deseado.

PullDown
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]

Sintaxis:
PullDown(a,b)

Proceso tambien llamado telecine, se trata de representar el primer frame mediante a campos y el segundo mediante b campos, y asi se repite hasta el final del video.
Por ejemplo: un telecine 2:3 o 3:2 (a:b) modifica el framerate de 23.976 a 29.97 agregando campos duplicados, dos para el primer frame y tres para el segundo, y asi hasta el fin del video.
Usar a=0 y b=3 (0:3) es lo mismo que deshacer el pulldown 3:2 (29.97 -> 23.976).
Este ultimo no lo probe asi que ignoro si realmente funciona, aunque el pulldown 2:3 o 3:2 si debiera hacerlo sin problemas.


Oscurecimiento de Lineas

Con videos de anime como objetivo, sirven para remarcar las lineas negras.


FastLineDarken 1.3 MT MOD
[YV12]

FastLineDarknen cumple la función de marcar los bordes, dejándolos mas negros de lo normal y según mis pruebas, algo muy levemente engrosados. Ayuda bastante para bordes que se ven pálidos o se ven poco. cumple la misma función que toon, pero obviamente conlleva a artifacts por ser rápido pero no me refiero a q si se ocupa de manera común salga, todo lo contrario si se hace abuso de este como sucede con toon, saldrán los molestos puntos negros dentro de los cuerpos de los elementos.
*Nota: en espacio de color, no importa el formato que tenga el video en dicho aspecto, pues con el filtro ConvertToYV12() se anula el error de color que nos saldría en megui o virtualdub al ocupar el script, pues este nos hará la conversión a dicho formato de color. Claro que este comando debe colocarse como el primer filtro dentro del script, porque hay casos en los cuales algunos filtros no lo detectan si no esta entre los primeros.

Requerimientos:
MaskTools2

Funcionamiento:

FastLineDarkenMOD(strength, luma_cap, threshold, thinning)

*Nota: en la información saldrá puesto FastLineDarken(strength, luma_cap, threshold, thinning), pues bien, debemos agregarle la frase MOD al final, de lo contrario lanzará el ejecutor del script (Megui, Virtualdub, VirtualdunMod) el error de función no existente.

strength (Fuerza): desde 0 hasta 256. Default: 48
           Regula la fuerza del filtro. Representa la maxima reduccion de luminancia, es decir el maximo oscurecimiento que puede sufrir una linea.

luma_cap (Luminancia): desde 0 a 255. Default: 191
           0 representa el blanco, 255 representa el negro, es decir, aquí adecuamos la cantidad de color del borde, de claro a oscuro.

threshold (Umbral): Default: 4.
          No hay información certera del parámetro máximo de esta opción.
Valor de 0 inhabilita este parámetro. Se recomienda poner el valor 4, ya que hay una gran cantidad de pixeles que son marcados al azar, los cuales se oscurecen débilmente. El valor 4 viene a solucionar eso.

thinning (Adelgazamiento): desde 0 a 256. Default: 24
Cantidad de adelgazamiento opcional de la linea. El valor 0 desactiva esta función, y esto a la vez da una gran velocidad en el filtrado.

*Nota 1: hay que tener en cuenta que el adelgazamiento oscurece un poco os pixeles restantes en cada linea.

*Nota 2: se recomienda dejar thinning=0, si se pone valores mas altos que 0, y si mal no estoy es un parametro que quedo mal editado creo, el video queda completamente cubierto de una capa verde por encima, quedando los detalles por detrás. Para evitar esto dejar, como ya mencione, thinning=0.

Discusión en doom9.org

Recuerden copiar el texto en un archivo .avs, es decir, abren el block de notas, copian el texto, lo pegan en el block de notas, van al menú archivo, luego hacen click en guardar como, colocan el nombre del filtro con extension .avs (ejemplo: FastLineDarken 1.3 MT MOD.avs) y hacen click en guardar. Si se fijan se guardará en un archivo .avs y esta listo para usarse.

Citar

##############################
# FastLineDarken 1.3x MT MOD #
##############################
#
# Written by Vectrangle
# Didée: - Speed Boost, Updated: 11th May 2007
#
#  * requires mt_masktools v2
#  * requires yv12 input
#
# Usage is FastLineDarkenMOD(strength, luma_cap, threshold, thinning),
#   named parameters are supported eg FastLineDarken(thinning=0)
#
# Note that you must import this avs into your script using import("...\FastLineDarken.avs")
#
# Parameters are:
#  strength (integer)  - Line darkening amount, 0-256. Default 48. Represents the _maximum_ amount
#                        that the luma will be reduced by, weaker lines will be reduced by
#                        proportionately less.
#  luma_cap (integer)  - value from 0 (black) to 255 (white), used to stop the darkening
#                        determination from being 'blinded' by bright pixels, and to stop grey
#                        lines on white backgrounds being darkened. Any pixels brighter than
#                        luma_cap are treated as only being as bright as luma_cap. Lowering
#                        luma_cap tends to reduce line darkening. 255 disables capping. Default 191.
#  threshold (integer) - any pixels that were going to be darkened by an amount less than
#                        threshold will not be touched. setting this to 0 will disable it, setting
#                        it to 4 (default) is recommended, since often a lot of random pixels are
#                        marked for very slight darkening and a threshold of about 4 should fix
#                        them. Note if you set threshold too high, some lines will not be darkened
#  thinning (integer)  - optional line thinning amount, 0-256. Setting this to 0 will disable it,
#                        which is gives a _big_ speed increase. Note that thinning the lines will
#                        inherently darken the remaining pixels in each line a little. Default 24.
#
# Changelog:
#  1.3  - added ability to thin lines, now runs much slower unless thinning=0. Changed the defaults (again)
#  1.2  - huge speed increase using yv12lutxy =)
#       - weird darkening issues gone (they were caused by yv12layer)
#       - show option no longer available due to optimizations. Use subtract() instead
#  1.1  - added luma_cap option
#  1.0  - initial release
#


function FastLineDarkenMOD( clip c, int "strength", int "luma_cap", int "threshold", int "thinning")
{
## parameters ##
str    = string(default(strength, 48) /128.)
lum    = string(default(luma_cap, 191))
thr    = string(default(threshold, 4))
thinning = default(thinning,24)
thn    = string(thinning /16.)

## filtering ##
exin   = c.mt_expand().mt_inpand()
diff    = mt_lutxy(c,exin,yexpr="y "+lum+" < y "+lum+" ? x "+thr+" + > x y "+lum+" < y "+lum+" ? - 0 ? 127 +",uexpr="x",vexpr="x",u=2, v=2)
linemask= mt_lut(diff.mt_inpand(),"x 127 - "+thn+" * 255 +").RemoveGrain(20,-1)
thick    = mt_lutxy(c, exin, yexpr="y "+lum+" < y "+lum+" ? x "+thr+" + > x y "+lum+" < y "+lum+" ? - 0 ? "+str+" * x +",uexpr="x",vexpr="x",u=2, v=2)
thin    = mt_lutxy(c.mt_expand(),diff,yexpr="x y 127 - "+str+" 1 + * +",u=2, v=2)

return (thinning == 0) ? thick : mt_merge(thin,thick,linemask,y=3,u=2,v=2)
}

Toon

El filtro Toon nos ayuda prácticamente a remarcar las lineas de los dibujos animados, los bordes. Por ejemplo, si poseemos una fuente de video en donde las lineas de los bordes están o muy suavizados o simplemente no vienen con un buen marcado como corresponde, este nos ayudara a darle el realce que necesita. Recordar siempre que no se debe abusar del filtro en su parámetro, si se abusa, por ejemplo, en fuentes buenas que solo necesitan de 0.3 de parámetro, pero se le coloca 0.6, es muy probable que aparezcan puntos negros en el cuerpo del dibujo en escenas de movimiento, que es donde mas se notará, pero no se quedaran fijas, sino que saldrán en ciertos frames del video y de manera rápida, no sera constante, pero aparecerán esos defectos.

Requisitos:
aWarpSharp

Como se usa:

Toon(strength)

Nota: valor máximo de strength: 1.0

Recomendados:

Toon(0.25) - Para fuentes en buen estado y que necesitan solo un marcado suave de bordes

Toon(0.30) - Para fuentes donde las lineas necesiten un poco mas de filtrado.

Toon(0.35)- Para Fuentes que necesiten marcar bastante las lineas, de bordes algo débiles

Toon(0.40) - Potencia algo mas que fuerte ya para bordes bien malas

Hice pruebas con 0.65, y ahí ya me salieron fallas como las mencionadas anteriormente, la de aparición de puntos negros en el cuerpo del dibujo, todo lo q esta dentro de los bordes, no en exceso, pero con buen ojo se nota.

ya del Toon(0.40) hacia adelante, les dejo la responsabilidad a cada uno y según su propio criterio.

Info General y Descarga(v1.0)

Discusion en Doom9's.org (Ingles)

Existe una version modificada del filtro aWarpSharp (ver seccion filtros sharpen), que posee mejoras de estabilidad, calidad y optimizaciones.
La version 1.1 del filtro Toon es la version 1.0 modificada para poder trabajar con la nueva version de aWarpSharp.

aWarpSharp2

888:
Efectos

AddGrainC
[YV12-YUY2-RGB]

Genera ruido tipo grano y otros efectos derivados, como por ejemplo ruido que simula la lluvia.

Sintaxis y valores por defecto:
AddGrainC(var=1.0, uvar=0, hcorr=0, vcorr=0, seed=-1, constant=false)

var y uvar: desviacion estandar para la generacion de ruido para luma y chroma respectivamente. En español: la intensidad de generacion de ruido.
hcorr y vcorr(0.0-1.0): correlacion horizontal y vertical. Aparentemente aumentar estos valores produce un efecto de suavizado.
seed>-1 implica usar una secuencia de grano que se repita, o sea a mayores valores el grano se vuelve mas estatico.
constant=true implica un grano constante a lo largo del video, es decir que un patron de grano se repita en todos los frames.

Ejemplo de efecto lluvia:
AddGrainC(var=800,vcorr=0.9)

GrainFactory3

Funcion generadora de ruido cuya intencion es simular un tipo de ruido llamado grano plateado (silver grain).
Ademas de lograr dicho efecto, introducir ruido de grano en un video puede servir para hacer mas "visibles" para el codec ciertas zonas del video donde hay muy poco detalle (ideal para zonas oscuras), y que de otra forma serian sobrecomprimidas llevando a la aparicion de los nefastos bloques.
Tambien podria servir para disimular la falta de detalle muy fino (texturas), y evitar una apariencia plastica.

Usese con precaucion, agregar ruido significa enormes perdidas de compresibilidad.

Filtros requeridos:
AddGrainC
MaskTools2

Sintaxis y valores por defecto:
GrainFactory3(g1str=13, g2str=15, g3str=25, g1shrp=60, g2shrp=66, g3shrp=80, g1size=1.50, g2size=1.20, g3size=0.90, g1tex=0, g2tex=0, g3tex=0, temp_avg=0, ontop_grain=0)

#=1 -> areas oscuras, #=2 -> areas intermedias, #=3 -> areas brillantes

g#str(0-???): intensidad de aplicacion.
g#shrp(0-100): nitidez del grano.
g#size(0.5-4.0): tamaño del grano.
g#tex(0-100): intensidad de la apariencia de textura.
temp_avg(0-100): porcentaje de uniformidad temporal. Es decir que si se usa temp_avg=100 el ruido sera estatico durante todo el video, o dicho de otra forma no variara de posicion entre frames. Valores intermedios son posibles por supuesto. El valor por defecto representa ruido completamente aleatorio.
ontop_grain(0-???): ruido adicional que se puede agregar sobre una aplicacion previa.

La aplicacion por defecto quizas produce demasiado ruido, si buscan un efecto ligero pueden probar reduciendo los valores de g#str, por ejemplo:
GrainFactory3(g1str=7, g2str=8, g3str=13)

Reverse
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]

Simple, se ocupa de que el video sea reproducido al reves, de atras hacia adelante.
En origen entrelazado la paridad entre campo superior e inferior se modifica.

Sintaxis:
Reverse()


Subtitulado

Subtitle
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]

Una instancia de este filtro (incluido con AviSynth) agrega una linea de texto fija a un determinado rango de frames. De necesitarse agregar diferentes lineas se deben usar varias instancias del filtro.
No es un filtro para subtitulado de traduccion, para ello esta VSFilter.

Sintaxis:
Subtitle(text, x=8, y=size, first_frame=0, last_frame=ultimoframedelvideo-1, font="Arial", size=18.0, text_color=$00FFFF00, halo_color=0, align=4, spc=0, font_width=pordefectodelsistema, font_angle=0.0, interlaced=false)

El texto del subtitulo va en text.
x e y son las coordenadas en las que se centra el subtitulo.
font: fuente del texto. Todas las fuentes instaladas en el sistema estan disponibles.
size: altura del texto en pixeles.
text_color(por defecto amarillo 100% opaco) y halo_color(por defecto negro 100% opaco): color del texto y color del borde del subtitulo, se fijan en codigo hexadecimal $aarrggbb (ver aqui), salvo por las primeras dos cifras que representan el porcentaje de transparencia, donde 00 es completamente opaco, y FF completamente transparente. Pueden usar esto ultimo para desactivar el borde.
Para elegir como se alinea al subtitulo respecto de la coordenada fijada con x e y se hace uso de align. Pueden ver una tabla de como se usa este parametro aqui, les debo la traduccion.
spc: modificar el espacio entre caracteres.
font_width: ancho de cada letra.
font_angle: angulo de inclinacion de la letra.
interlaced: activar en videos entrelazados.


VSFilter

Filtro dedicado a pegar subtitulos sobre el video. Archivos soportados: .sub, .srt, .ssa, .ass, .pcb, .smi

Sintaxis:
TextSub("C\...\subtitulos.ass") -> para archivos de subtitulos que contienen texto (SRT, SSA, ASS)

VobSub("C\...\subtitulos.sub") -> para archivos de subtitulos que contienen imagenes, como aquellos extraidos de un DVD-Video.

Descarga

888:
MCTemporalDenoise

Muy completa y compleja funcion, que ademas de trabajar como denoiser temporal compensado por movimiento, ofrece numerosas opciones extra de pre y post-procesado(PP). Estas se iran abordando a medida que se expliquen los parametros que las que representan.
Estos filtros de post-proceso pueden utilizarse por separado, es decir sin aplicar el filtrado de ruido, y es esto ultimo lo que confiere a esta funcion su caracter de multiproposito.

Filtros y funciones necesarias:
(incluidos aquellos filtros requeridos por estas funciones)

MVTools v2
MaskTools v2
RemoveGrain y Repair
FFT3DFilter
FFT3DGPU (en lugar del anterior, solo si usan GPU=true)
TTempSmooth
LSFmod
WarpSharp (solo para SHmode=1)
VariableBlur (solo para SHmode=2)
EEDI2
SangNom
DeBlock_QED
DeBlock
DCTFilter
GradFun2DBmod
GradFun2db
AddGrainC


Sintaxis:

MCTemporalDenoise()

MCTemporalDenoisePP() -> Sin filtrado de ruido, para cuando se quiere aplicar el filtrado de post-proceso de forma independiente. Este incluye las etapas de filtrado marcadas con "PP", que son las unicas que pueden ser invocadas por esta linea (es decir que solo pueden definir sus parametros). Y ojo porque vienen todas desactivadas por defecto, por lo que asi como esta la sintaxis no sirve de nada, asegurense de habilitar la/s etapa/s que deseen usar.


Parametros:
(segun la etapa de filtrado que afectan)

Filtrado de ruido
El radio temporal (cantidad de frames) se fija con el parametro radius entre "1" y "6", por defecto en "2", puede aumentarse para un filtrado mas preciso pero mas lento.
Como parte del proceso se realiza un prefiltrado con el filtro FFT3DFilter, por lo que el parametro sigma se utiliza para regular su fuerza, desde un valor de "0" (que desactiva el prefiltrado) para arriba. Por defecto esta en "4.0"
Si se busca un efecto mas fuerte (y mucho mas lento) se puede usar twopass=true para que se apliquen dos pasadas de filtrado en lugar de una.
Se encuentra disponible el uso del filtro TTempSmooth mediante el parametro useTTmpSm=true, para un filtrado mas potente pero mas lento.
El efecto de la o las pasadas de denoising (si se usan dos) puede ser limitado mediante limit y limit2 (primer y segunda pasada). Pueden tomar valores desde "-1", que calcula la limitacion automaticamente y es el valor por defecto para ambas pasadas, hasta "255", pasando por el "0" que desactiva la limitacion. Obviamente a mayores valores mayor es la limitacion, pero creo que lo mas recomendable es usar la estimacion automatica aprovechando que la funcion posee dicha capacidad.
Para colocar una etapa de filtrado de ruido extra entre la salida del denoiser temporal y las etapas de post-procesado se hace uso de post. Como en esta etapa tambien se usa FFT3DFilter, este parametro equivale al sigma de dicho filtro y regula su fuerza. Este filtrado extra se desactiva usando post=0, que es como se encuentra por defecto.
El procesamiento de crominancia se habilita mediante chroma=true, por defecto esta desactivado.
Si su video es entrelazado tienen a su disposicion interlaced=true.

FFT3D
Configuracion de este plugin.
Los valores de bwbh y owoh representan el tamaño de bloque (con el que se muestrea la imagen) y solapamiento entre bloques respectivamente, que afectan la precision espacial del filtro. A menores valores mayor calidad pero menor velocidad, por defecto: bwbh=16y owoh=8 si el video es detectado como HD, o bwbh=8 y owoh=4 en caso contrario. Sepan tambien que por una limitacion del filtro, owoh no puede ser nunca mayor a la mitad de bwbh. Notaran que para altas resoluciones los valores son mas elevados, eso es para que la velocidad sea razonable aunque si buscan calidad extrema, los bajan.
La precision temporal tambien es configurable desde el parametro bt, siendo por defecto "3", puede subirse hasta "5" o bajarse hasta "1" (el filtrado pasa a ser solo espacial o 2D).
ncpu permite especificar el numero de hilos de procesamiento, en caso de que posean un procesador de mas de un nucleo. Por defecto es "1". Solo sirve para la version comun desde ya.
Si se desea usar la version FFT3DGPU en vez de la original, basta colocar GPU=true. Y la precision de calculo se puede regular con precision, por defecto "2".
La funcion incorpora una rutina (activada por defecto) que corrige cierto comportamiento del filtro FFT3D, a partir del cual se genera efecto banding. Se puede eliminar esta correccion mediante fixband=false.

MVTools
Configuracion de este conjunto de herramientas, que son las encargadas de la deteccion y compensacion del movimiento, para todas las etapas de filtrado donde esta se aplica.
blksize y overlap, son tamaño de bloque y solapamiento para el muestreo de la imagen, por defecto: blksize=16 y overlap=8 si el video es detectado como HD, o blksize=8 y overlap=4 en caso contrario.
Los parametros thSCD1 y thSCD2 controlan la sensibilidad de deteccion de cambio de escena. El primero establece que tanta diferencia debe existir entre dos bloques del muestreo para que se considere que hubo dicho cambio; de aumentarse el valor mayores diferencias seran necesarias, por defecto "300". El segundo indica cuantos de estos bloques donde se detecta el cambio son necesarios para considerar que el frame es un cambio de escena, por defecto "100". Aumentar estos parametros implica mayor fuerza de filtrado en general, dado que le quitan precision a la deteccion de movimiento.
thSAD sirve para poner un limite a la compensacion, dado que a menores menos bloques seran compensados. Por defecto "300", debe incrementarse para una mayor precision y calidad en caso de estar configurando un filtrado general mas potente.
Si se desea una estimacion del movimiento de mayor coherencia, es decir que sea mas inteligente al identificar el movimiento, se puede usar truemotion=true.
La nitidez de la interpolacion interna se puede fijar con MVsharp, estando en "2" por defecto que es el modo de mas nitidez, pudiendo tambien ser "1" para interpolacion bicubica, o "0" para bilinear, en orden de mayor a menor nitidez. Util para videos que requieren mucha limpieza, en cuyo caso ademas de aumentar la fuerza de filtrado se puede reducir la nitidez de la interpolacion para un resultado mas "suave".

Nitidez (PP)
Esta etapa de post-proceso se encuentra activada por defecto, y puede ser desactivada mediante sharp=false. Trabaja de forma adaptativa, aplicando el efecto sharpen solo sobre areas quietas y con detalle, evitando la amplificacion de ruido. Si se quiere que el efecto se aplique de igual forma en toda la imagen se puede usar adapt=false.
El filtro sharpen utilizado es la funcion LSFmod, que pueden ver descripta detalladamente en la seccion de filtros sharpen y los parametros de esta que pueden invocarse son: strength, por defecto "100"; SHmode, por defecto en "3" (equivale a Smode en LSFmod); SHmethod, por defecto en "3" (equivale a Smethod en LSFmod); Slimit, por defecto "0" (equivale a Lmode en LSFmod). Este ultimo parametro solo regula la limitacion espacial, para limitacion temporal compensada por movimiento esta Tlimit, activada por defecto con un valor de "true".

Proteccion de estrellas o puntos brillantes (PP)
protect=true habilita esta funcionalidad, deshabilitada por defecto.
El nivel de brillo que debe tener un area para ser procesada se fija con cutoff, desde "0"(todo) hasta "255", por defecto "64".
threshold es otro parametro que establece si se filtra o no, en este caso representa el cambio maximo de luminancia que debe existir, desde "0" hasta "127", por defecto "16". De subir este valor menos areas seran filtradas.
Y por ultimo maxdiff fija el maximo cambio que sufre el area filtrada(considerada como punto brillante) respecto de la imagen original. "0" copia exactamente igual, por defecto "4" puede llegar hasta "255".

Anti-aliasing (PP)
Para evitar el efecto serrucho en bordes. Se activa colocando AA=true, ya que por defecto viene apagado.
Se puede elegir entre dos filtros de reescalado: EEDI2(por defecto) o Sangnom, mediante useEEDI2, donde se usa "false" para cambiar a Sangnom.
A valores mas altos de AAthr, se procesan solo bordes mas gruesos. Por defecto "32", va de "0" a "255".
El filtro de reescalado usado para regresar al tamaño original(luego de la etapa de AA) tambien puede elegirse entre tres opciones con el parametro method, segun el nivel de nitidez. Los valores posibles son: "0"->Bilinear; "1"->Spline36; "2"->Lanczos4, en orden de menor a mayor nitidez.

DeBlocking (PP)
Se aplica un filtrado de bloques, previamente al filtrado de ruido, si se coloca deblock=true.
Por defecto se usa la funcion DeBlock_QED, aunque tambien puede usarse el plugin DeBlock(mas agresivo) poniendo useQED=false.
Pueden definirse los parametros quant1 y quant2 de DeBlock_QED (ver descripcion de la funcion en la seccion Restauracion para mas info), y sus valores por defecto son "20" y "40" respectivamente.
De usarse DeBlock, su parametro quant se toma como quant1+quant2 / 2, o sea un valor por defecto de "30".

Limpieza de bordes (PP)
Para aprovechar esta funcionalidad deben poner edgeclean=true. Consiste en limpieza de ruido solo en bordes de zonas sin detalle fino, asi que no provoca perdidas de calidad.
La distancia que se filtra desde el borde se puede regular con ECrad, por defecto "3".
Y el tamaño de los bordes que se filtran se regula con ECthr, entre "0" y "255", a mayor valor bordes mas finos no son procesados. Por defecto "32".
El filtro por defecto usado para la limpieza es RemoveGrain, pero pueden usar cualquier plugin o funcion que deseen mediante el parametro ECmode. Por ejemplo: ECmode="DFTTest()".

Estabilizacion (PP)
Se aplica si usan stabilize=true. Se trata de usar el filtro TTempSmooth (ver subcategoria de denoisers temporales) para eliminar restos de ruido aleatorio solo sobre fondos.
Los parametros de este plugin que son accesibles son: maxr para regular el radio temporal (frames), a mayor valor una imagen mas estable, puede ir desde "1" a "7" y por defecto es "1"; TTstr, fuerza de aplicacion, por defecto "1", puede llegar hasta "256".

Areas solidas (PP)
Esta etapa se ocupa de eliminar el efecto banding (ver categoria Restauracion) y previene que se generen bloques en la compresion (mediante el agregado de ruido de grano). Por supuesto unicamente si enhance=true esta presente.
Se hace uso de la funcion GradFun2DBmod, cuyos parametros presentes son: GFthr para regular la fuerza, donde "1.0" apaga el filtrado, y de ahi para arriba, por defecto "1.2"; AGstr, para la fuerza de AddGrainC, es decir la intensidad del ruido de grano generado, por defecto "0.8", de ponerse en "0.0" no se agrega grano; temp para la estabilidad del grano, a mayor valor un ruido menos aleatorio, es decir menos "nervioso" como le suelen decir, donde "0" es mas nervioso y "100" completamente estatico, por defecto "50". Vale aclarar que cuanto mas estatico mas compresible.
El parametro bias permite fijar un balance entre grano generado sobre areas brillantes versus areas oscuras. Aumentando el valor se inclina dicho balance hacia las areas mas brillantes y viceversa. Por defecto en "64", puede ir desde "-1" que equivale a desactivar el balance (grano uniforme), hasta "254".

Config global
Para usar prefiltrado de ruido personalizado, se debe usar la variable p, mediante la cual pueden definir el filtrado de ruido que deseen usar como prefiltrado (ver ejemplos). Y ojo porque este prefiltrado no es lo mismo que aplicar un filtro de ruido antes de la funcion y desactivar el prefiltrado interno. Deben definir la variable para que la funcion tenga internamente a su disposicion el video prefiltrado como una herramienta de comparacion.
settings permite definir los valores de todos los parametros en base a una serie de presets, segun la fuerza de aplicacion. Las posibilidades, de menor a mayor fuerza, son: "very low", "low"(por defecto), "medium", "high" y "very high"; recuerden poner tambien las comillas. Si quieren saber que valores son asigandos a los parametros en cada preset, vean en el script de la funcion, donde como parte de la documentacion hay una tabla con todos los valores para cada preset.

Debug
Si ponen show=true, en vez del frame filtrado, se obtiene una imagen con la comparacion entre video de origen, prefiltrado y filtrado, junto con la configuracion completa de la funcion. Muy util para comparar.
La resolucion de esta pantalla se puede modificar usando screenW y screenH, horizontal y vertical respectivamente. Por defecto: 1280x1024.


Las etapas de post-proceso para nitidez y proteccion de puntos brillantes requieren de dos videos de entrada, aquel al que se le filtro el ruido y el original, dado que estas etapas tratan de restaurar la nitidez y los puntos brillantes que pudieran haber sido perjudicados en el filtrado de ruido.
Para lograr esto se ofrecen dos variables que deben ser definidas antes de invocar alguna de estas etapas: source, que debe ser el video previo al filtrado de ruido; y denoised, que debe ser el video luego del filtrado de ruido.

source = last

denoised = source.filtro_de_ruido()


Ejemplos:

MCTemporalDenoise(sharp=false) -> solo filtrado de ruido, es decir que se desactiva la unica estapa de PP que viene habilitada por defecto.

MCTemporalDenoise(deblock=true) -> habilita filtrado de bloques como pre-procesado.

MCTemporalDenoise(AA=true, protect=true, edgeclean=true, stabilize=true, enhance=true) -> todas las etapas de PP activadas, aprovechando al maximo las capacidades de la funcion.

MCTemporalDenoisePP(edgeclean=true) -> solo etapas de PP, sin filtrado de ruido, y en este caso solo la funcion de limpieza de ruido en bordes.

source = last
denoised = source.DFTTest()
MCTemporalDenoisePP(sharp=true) -> uso de la etapa de restauracion de nitidez. Para usar la proteccion de puntos brillantes es lo mismo, por supuesto activando dicha etapa.

p = last.FluxSmooth()
MCTemporalDenoise() -> prefiltrado personalizado, en vez del prefiltrado interno.
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  Un poco de Avisynth kosmito 0 3,319 03-04-2019, 11:02 PM
Último mensaje: kosmito
  Guía Avisynth kosmito 0 3,693 03-04-2019, 11:00 PM
Último mensaje: kosmito
  Manual Completo de Filtros y sus usos con AviSynth Parte 1 kosmito 0 7,203 03-04-2019, 10:59 PM
Último mensaje: kosmito

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)