You are on page 1of 152

24/4/2015

Manual AviSynth

Bie nve nido(a ), Visitante.


Por fa vor, ingre sa o
re gstra te . Pe rdiste tu
e m a il de a ctiva cin?

24 de Abril de 2015, 10:36

Ingresar
Siempre

Ingresar

Ingresar con nombre de usuario, contrasea y duracin de la sesin


Inicio

Ayuda

Buscar

Ingresar

Registrarse

Noticias: AC3 Filter 2.6.0b


Esta nueva versin de AC3 Filter resuelve un problema de cuelgues en Windows
Media Player, problemas relacionados con el ACM driver y con el SPDIF, y aade
ms combinaciones de speakers. Las traducciones han sido tambin actualizadas.
http://www.mundodivx.org/foro/index.php?topic=42280.0

Buscar

Foro MundoDivX & H264 | General y otros temas | Manuales (Moderadores: Dressler, LUCHOO, Amrmol, 888) |
Manual AviSynth

anterior prximo

Pginas: [1]

Autor

Ir A bajo

IMPRIMIR

Tema: M anual AviSynth (Ledo 85308 veces)

murriato, frank_zappa y 1 Visitante estn viendo este tema.

888
Moderador
Desconectado

http://www.mundodivx.org/foro/index.php?topic=37925.0

Manual AviSynth
Mensaje inicial: 03 de Noviembre de 2009,
01:50

Presentacion
1/152

24/4/2015

Manual AviSynth

Registrado: 26/06/2006
Mensajes: 8.872
Valoracin: 8
Sexo:

Este manual se encuentra en un estado de constante actualizacion y expansion, y probablemente


asi lo este por siempre (siempre y cuando quede alguien que de ello se ocupe ^^), dado el tipo de
programa que es AviSynth y la enorme cantidad de filtros que existen y aun faltan ser agregados
asi como tambien todos los nuevos que continuan saliendo. Por eso sepan que los filtros tratados
aqui no son todos los disponibles, aunque me gustaria creer que nos vamos acercando
.
En principio el objetivo inicial de servir como introduccion a AviSynth creo que fue alcanzado, pero
si no lo creen asi por favor dejen un comentario sobre lo que les parece que falta para cumplir con
el mismo.
Las consultas sobre el funcionamiento de los filtros y recomendaciones sobre su aplicacion por
favor realicenlas en hilo nuevo en el subforo de edicion de video.
Sugerencias, criticas y comentarios sobre el manual son muy bienvenidos y pueden hacerlas en
este hilo, desde donde tambien pueden colaborar con el manual, nomas publiquen alli la
explicacion del filtro que deseen y este sera agregado a la brevedad dejando por supuesto
constancia de su colaboracion.
Colaboran con este manual:

overdrive80
ElMagno90
piscator
Nagash
Ferny
Burnout
LUCHOO

Introduccion
AviSynth es un programa libre y gratuito destinado a realizar frameserver y edicion de videos. Pero
no es un programa de edicion convencional como los que estan acostumbrados a usar. Para darse
una idea de porque, carece completamente de una interfaz grafica desde donde puedan ejecutar
sus opciones y/o configurarlo. En su lugar, la configuracion se "escribe" enteramente sobre un
archivo de texto sin formato, mediante el uso de un lenguaje propio de AviSynth. En cuanto a su
ejecucion, esta es en todo momento transparente para el usuario (salvo quizas en casos de error
en la configuracion).
http://www.mundodivx.org/foro/index.php?topic=37925.0

2/152

24/4/2015

Manual AviSynth

De forma muy basica y breve, el funcionamiento podria resumirse asi: AviSynth toma video y/o
audio descomprimido (la decodificacion siempre es externa) y se ocupa de procesarlo en tiempo
real mediante la aplicacion de filtros (internos o externos) de muy variada indole, para luego
"soltarlo" y sea recibido por el programa compresor (encoder) o reproductor. Entonces AviSynth
vendria a ser una especie de intermediario, y por lo tanto requiere no solo que haya alguien antes
que le entregue el video descomprimido (decodificadores y/o demultiplexores), sino tambien
alguien a continuacion (encoder o reproductor) a quien devolverle el video filtrado. No funciona
solo por su cuenta y esto tiene logica con lo dicho anteriormente sobre que su ejecucion es
transparente, por ello sin el programa a continuacion no se podria usar.
Volviendo a su configuracion, se dijo que se hacia a traves de un archivo de texto usando el
lenguaje que entiende AviSynth. Es decir que se deben escribir las instrucciones de lo que
queremos que haga. A este archivo de texto con las instrucciones se le llama script, y puede ser
creado con el bloc de notas o similares pero siempre guardando sin formato (.txt), aunque para
que AviSynth lo reconozca como un script debe tener extension AVS. Tambien existen utilidades
que permiten crear el script de forma mucho mas comoda e incluso interactiva, siendo lo mas
cercano a una interfaz grafica que se puede encontrar. En el script se pueden indicar los filtros que
se desean aplicar y su configuracion, teniendo en cuenta que AviSynth respeta el orden del texto
en su ejecucion.
Es este archivo .avs el que luego debe cargarse al compresor o reproductor, donde una vez
abierto AviSynth se encarga de que estos vean un archivo AVI con video descomprimido, siendo
esta la funcion principal del programa, tomar un video en algun formato cualquiera (como minimo
debe poder ser reproducido con los codecs instalados en el sistema) y entregarlo como un video
AVI, funcion denominada frameserver.
Descarga de AviSynth
La siguiente es su web oficial, donde pueden encontrar mas informacion sobre su funcionamiento,
asi como tambien listados de la mayorias de los filtros disponibles.
http://avisynth.org/
Durante la instalacion se les preguntara si desean habilitar ciertas opciones, como por ejemplo la
de asociar a Avisynth los archivos de extension AVS(Associate AVS with Notepad), recomendable
activarla para asi identificar facilmente los script.
Tambien Add Avisynth Script to new items men, que les permite acceder a ClickDerecho->Nuevo>AviSynth Script para crear directamente un archivo con extension AVS.
Algunas de las utilidades que se pueden usar para la creacion y evaluacion de scripts son:
http://www.mundodivx.org/foro/index.php?topic=37925.0

3/152

24/4/2015

Manual AviSynth

AVSEdit
AvsP (version original - discontinuada)
AvsPmod (continuacion extraoficial del desarrollo de AvsP)
AviSynth Batch Scripter
Todas estas ofrecen exelentes ventajas y funciones, como la posibilidad de previsualizar o incluso
(AvsP) de regular los parametros de configuracion de los filtros mediante una interfaz grafica
mientras se comprueban los resultados casi instantaneamente.
Una ves tienen el script terminado, pueden abrirlo con el programa que usen para codificar o
reproducir como si de un archivo de video de tratara, y Avisynth se ocupa del resto.
En teoria pueden cargar el archivo .avs en cualquier programa que soporte archivos AVI, ya que
aunque este no se los muestre como soportado pueden forzar la carga con la opcion comunmente
llamada All Files de la ventana de carga.

Introduccion al Lenguaje de AviSynth


Como se menciono anteriormente AviSynth se configura a partir de archivos de texto sin formato
denominados scripts. Aqui veremos las bases del lenguaje que se debe emplear en dichos scripts
para poder "ordenarle" a AviSynth lo que necesitamos que haga.
AviSynth va leyendo el script en orden, linea por linea hacia abajo, y de izquierda a derecha en
cada linea, igual que como acostumbramos a leer un libro. Debemos considerar esto cuando
armemos nuestro script, ya que los comandos y filtros seran ejecutados en este orden y el mismo
es de suma importancia, como se comenta mas adelante.
Es importante aclarar que AviSynth ignora espacios en blanco dejados entre comandos o filtros
sucesivos, asi como tambien mayusculas y minusculas, es lo mismo usar DirectShowSource que
diRecTShowSoURCE.
Nota: de aqui en mas aquello que se encuentra resaltado en amarillo corresponde a lenguaje de
AviSynth, por ello lo veran en la sintaxis y en los ejemplos; y lo que vean resaltado en verde son
los parametros.
http://www.mundodivx.org/foro/index.php?topic=37925.0

4/152

24/4/2015

Manual AviSynth

Filtro:
Comando que le indica a AviSynth que debe aplicar un determinado filtro en ese punto del script.
Este comando se compone por el nombre del filtro seguido de dos parentesis entre los que es
posible dar valores personalizados a ciertos parametros que regulan su configuracion.
Con esta denominacion de "filtro" aqui estamos incluyendo todos los tipos de descriptos mas
adelante (internos, externos y funciones).
NombreDelFiltro()
Al margen del orden en que AviSynth ejecuta el script, los filtros sucesivos pueden ir de forma
completamente arbitraria, considerando que AviSynth ignora los espacios en blanco.
Por ejemplo, el siguiente script:
AviSource("C:\video.avi")
Resize(1280,720)
FFT3DFilter()
Es exactamente lo mismo que:
AviSource("C:\video.avi")Resize(1280,720)FFT3DFilter()
Ambas formas son identicas en funcionalidad, pero la primera resulta mucho mas ordenada para
quien debe leer y trabajar con dicho script.

Parametros :
La accion de un filtro se configura a partir de una serie de parametros, que son valores propios de
cada filtro en particular y utilizados internamente para calculo y/o configuracion.
A estos parametros se les debe asignar un cierto valor, segun el efecto que dicho valor tendra en
el funcionamiento del filtro, para ello consultar el manual. Cabe aclarar que en la enorme mayoria
de los filtros los parametros ya vienen con un valor asignado por defecto, en cuyo caso veran que
con solo aplicar el comando del filtro el script es funcional. Sin embargo, aunque existen filtros
cuyos valores por defecto pueden ser aplicados a variedad de situaciones, siempre es aconsejable
ajustarlos a nuestro video y asi lograr los resultados optimos.
Dichos valores se pueden asignar de diferentes formas: en algunos filtros se debe conocer el
orden en que se encuentran los parametros dentro del parentesis y los valores se les asignan en
el mismo orden separados por comas:
STMedianFilter(a,b,c,d) (obviamente deben conocer que representa cada parametro)
STMedianFilter(8,15,4,7)
http://www.mundodivx.org/foro/index.php?topic=37925.0

5/152

24/4/2015

Manual AviSynth

Esto puede aplicarse a todos los filtros.


Sin embargo, en la gran mayoria se conoce el nombre de los parametros y el filtro es capaz de
reconocerlos, por lo que se les puede asignar su valor en cualquier orden mientras se los nombre
como se ve a continuacion:
FFT3DFilter(sigma=2.0, bt=3, plane=0)
Esta es una forma mucho mas comoda y versatil, ya que nos permite solo asignar valores a
aquellos parametros a los que necesitemos modificar su valor por defecto.
Dentro de los parentesis pueden dejar cuantos espacios deseen, pero si quieren continuar en la
siguiente linea deben emplear el comando \, de la siguiente forma:
STMedianFilter(8,
,4,7)

15 \

Esta linea es perfectamente valida, que por supuesto queda muy fea pero es solo un ejemplo.
Los valores que puede tomar un cierto parametro dependen de su tipo, que puede ser: integer numeros enteros (1, 3, 800, etc); real - numeros reales (1.25, 6.9887, 0.006, etc); string - texto,
que debe ser escrito entre comillas; boolean - puede ser verdadero (se escribe True) o falso (se
escribe False), sin comillas.
En el siguiente ejemplo ven la aplicacion de todos los tipos:
LSFmod(defaults="fast", strength=85, secure=false, ss_x=1.78)

Trabajando con multiples archivos de audio/video, asi como tambien


multiples pistas de audio o video:
AviSynth solo es capaz de aplicar una cierta sucesion de filtros a un archivo o pista a la vez. Por
ello, si deseamos aplicar un filtrado diferenciado a diferentes pistas dentro del mismo script es
necesario recurrir al uso de variables. Esta es una nocion basica de programacion, y aqui basta que
la consideremos como un nombre que recibe una cierta fraccion de informacion, ya sea un valor
numerico, una pista de video o audio, texto, etc. Se utiliza para almacenar dicha informacion
dentro del script cuando esta sera requerida mas adelante.
En el caso particular que nos compete, estas variables se crean asignandole a un determinado
archivo o pista de audio/video un cierto nombre, el cual pasara a identificarlo de aqui en mas
dentro del script y siempre que requieran aplicarle algun filtrado deberan invocar a la variable que
lo contiene. La asignacion se realiza utilizando el comando =, como se ve en el siguiente ejemplo:
http://www.mundodivx.org/foro/index.php?topic=37925.0

6/152

24/4/2015

Manual AviSynth

video = AviSource("C:\mi_video.avi", audio=false)


audio = WAVSource("C:\mi_audio.wav")
Este par de lineas les permtite cargar audio y video por separado, asignando cada uno a una
variable cuyo nombre es completamente arbitrario, pero que por supuesto deben de emplear cada
vez que requieran acceder a su contenido.
Cuando necesiten aplicarle un cierto filtrado al contenido de una variable, no solo deben de
invocarla por su nombre sino tambien, luego del filtrado, actualizar su contenido, lo cual pueden
hacerlo de diferentes formas:
video = video.LSFmod()
Aqui se almacena en la variable video el resultado de la sucesion de filtros luego del comando =.
En la jerga se dice que se "evalua" la expresion luego del = y se asigna el resultado a la variable.
Entonces lo que ocurre es que el contenido de la variable es primero modificado y luego
almacenado en la misma, sobreescribiendo el contenido original.
El . (punto) deben emplearlo para separar la variable del filtro que la sucede cuando ambos se
encuentra pegados en la misma linea. O tambien pueden simplemente dejar un espacio pero asi
queda mas lindo.
Tambien pueden usar algo asi:
video.LSFMod()
video = last
En este otro caso se le aplica el filtrado a la variable video, para luego emplear la variable especial
last para la asignacion. Esta variable especial siempre contiene el ultimo resultado disponible en
esa parte del script, siendo en este caso lo que queda luego de aplicar el filtro LSFmod a la
variable video.
A su vez, muchos filtros soportan introducir el video a filtrar como el primer parametro dentro de
los parentesis, mediante la variable que lo contiene. El mismo ejemplo anterior puede ser reescrito
asi:
video = LSFmod(video, defaults="fast")
Si no se especifica nada entonces el filtro toma como entrada el ultimo video disponible (o lo que
es lo mismo, aquel que se encuentre dentro de la variable last).

http://www.mundodivx.org/foro/index.php?topic=37925.0

7/152

24/4/2015

Manual AviSynth

LSFmod(defaults="fast") es lo mismo que: LSFmod(last, defaults="fast")


Y por ultimo, cuando finaliza el script se le debe indicar a AviSynth cual es el video de salida de
entre todas las variables presentes.
Esto se realiza mediante el comando return, y colocando a continuacion el nombre de la variable
que contiene el video. En nuestro ejemplo, supongan que ya esta la etapa de filtrado de video y
ahora queremos que la salida contenga dicho video mas el audio cargado por separado al
comienzo del script:
final = AudioDubEx(video,audio)
return final
El filtro AudioDubEx se encuentra explicado en la seccion sobre carga de archivos.
De no especificar nada el video a la salida sera aquel contenido en la variable last, o sea el ultimo
video en ser filtrado. En este ultimo ejemplo hubiera sido lo mismo poner:
AudioDubEx(video,audio)
En este caso es mas sencillo usar esta ultima sintaxis, pero esto es solo un simple ejemplo para
fijar ideas, el uso del comando return se hace especialmente util en scripts mas complejos.

Multiproceso en AviSynth: aprovechamiento


de procesadores con multiples nucleos
Para ello existe una version especial modificada del programa y a su vez un plugin especifico:

Filtro MT

Filtros
A continuacion se presentan los filtros actualmente abarcados por este manual, ordenados por
categorias y subcategorias.
El formato de explicacion de cada filtro es el mismo: se da una breve (o no tanto) explicacion de su
http://www.mundodivx.org/foro/index.php?topic=37925.0

8/152

24/4/2015

Manual AviSynth

utilidad y a veces funcionamiento (muy basico), se muestra su sintaxis (en la mayoria de los casos
junto con el valor por defecto de los parametros) y se pasa a explicar la funcion de cada
parametro. A continuacion puede que haya algun que otro ejemplo y finalmente enlaces a la
descarga, documentacion y otra informacion relacionada.
Debajo del nombre de cada filtro tienen indicado los formatos de color sobre los que soporta
trabajar. Si su video no se encuentra en uno de estos, pueden recurrir al filtro ConvertToXXX que
encuentran dentro de la categoria Color y Niveles.
AviSynth es capaz de trabajar con tres tipos diferentes de filtros, a saber:

Filtros Internos: Son aquellos incluidos con AviSynth y pueden usarse directamente.
Filtros Externos o Plugins: Filtros no incluidos con AviSynth, tambien llamados plugins. Se
componen de un unico archivo .dll aunque en algunos casos pueden requerir que otras librerias
esten presentes en el sistema.
Para poder invocar un plugin en el script (mediante su sintaxis correspondiente) primero debe
cargarse el mismo utilizando la siguiente linea en el comienzo del script:
LoadPlugin("C:\...\plugin.dll"), o para que se cargue automaticamente, colocar el plugin en la
carpeta por defecto: C:\Archivos de programa\AviSynth 2.5\plugins.
Por supuesto que en un mismo script pueden utilizar tantos plugins como gusten, nada mas deben
usar una linea por cada uno para cargarlos, o ponerlos todos en la carpeta mencionada.

Funciones: Para crear los scripts, Avisynth ofrece un lenguaje mucho mas complejo de lo que se
vemos aqui, donde solo nos limitamos a nombrar los filtros y el modo de aplicarlos y configurarlos.
Es posible "programar" lo que queremos que se haga con determinados filtros, de una forma muy
compleja y con el objetivo de lograr mejores resultados de los que se consiguen con la aplicacion
de los filtros "a lo bruto".
Estos scripts suelen contener la programacion, en el lenguaje que entiende AviSynth, de lo que se
acostumbra a llamar "funcion", es decir que cada script de este tipo define una funcion. La forma
de trabajar con estas funciones es muy similar a como se trabaja con los plugins, es decir que hay
que asegurarse de cargarla al script y luego se la puede invocar mediante su sintaxis como si de
otro filtro se tratara.
Es importante tener en cuenta que el script solo contiene una programacion, pero no puede filtrar
por si mismo, depende para funcionar de los filtros internos o externos que se mencionan en las
respectivas secciones del manual.
Existen variedad de estos scripts, dedicados por ejemplo a aumento de nitidez (efecto sharpen),
filtrado de ruido, filtrado de bloques, etc.
Como la funcion suele requerir de filtros externos deben asegurarse de cargarlos como
corresponde o tenerlos en la carpeta por defecto.
http://www.mundodivx.org/foro/index.php?topic=37925.0

9/152

24/4/2015

Manual AviSynth

Respecto a la carga de la funcion misma, se realiza mediante la linea: Import("C:\...\funcion.avs").


Para la carga automatica de las funciones pueden colocarlas en la carpeta por defecto junto al
resto de los plugins, con la unica salvedad de ponerles extension .avsi para que puedan ser
reconocidas por AviSynth.

Orden de aplicacion de los filtros:


Es de fundamental importancia el orden en que aplican los diferentes filtros sobre el video,
pudiendose afectar de forma nagativa la calidad del video de usarse un orden incorrecto.
Este asunto lo discutimos en el hilo abierto para hablar sobre el manual y llegamos a cierto
concenso, que son las consideraciones presentadas a continuacion. Sin embargo sepan que el
tema aun se encuentra abierto a modificaciones, por lo que son bienvenidos a dar su opinion.
Consideraciones para ordenar los filtros dentro del script:

Desentrelazado: antes de cualquier otra etapa de filtrado.


DeBlock: antes de crop, resize y de otras etapas de filtrado de ruido.
Denoising temporal: antes del denoising espacial.
Anti-Aliasing: luego del resize.
Resize cuando se reduce la resolucion: antes del filtrado de ruido (denoisers).
DeHalo y Deringing: luego del filtrado general de ruido y luego de los filtros de nitidez
(sharpen).

A continuacion pueden ver un script de ejemplo con el orden correcto:


Spoiler

Carga y Manipulacion de Archivos


Lo que necesitan para que AviSynth pueda cargar sus archivos, ya sean audio, video o imagenes,
asi como tambien los filtros que permiten su manipulacion.

Filtros en esta categoria:


AVISource / AVIFileSource / OpenDMLSource
http://www.mundodivx.org/foro/index.php?topic=37925.0

10/152

24/4/2015

Manual AviSynth

DirectShowSource
WAVSource
ImageSource
DGMPGDec
DGAVCDec
DGDecNV
FFmpegSource2
LSMASHSource
NicAudio
BassAudio
Trim
AudioDub / AudioDubEx
UnalignedSplice / AlignedSplice
ImageWriter
Carga y Manipulacion de Archivos

Transformaciones Geometricas
Todo lo que sirva para escalar, cortar, rotar, etc, la imagen.

Filtros en esta categoria:


AddBorders
Crop
FlipHorizontal / FlipVertical
Letterbox
Resize
Turn
Transformaciones Geometricas

Desentrelazado
Introduccion al contenido entrelazado y los filtros para restaurar un contenido progresivo.

http://www.mundodivx.org/foro/index.php?topic=37925.0

11/152

24/4/2015

Manual AviSynth

Filtros en esta categoria:


AnimeIVTC
Decomb
QTGMC
Desentrelazado

Filtrado de rudio (denoisers)


Filtros destinados al ruido aleatorio.

Subcategorias y filtros:
Espaciales: FRFun3b - FRFun7 - SpatialSoften - UnDot - VagueDenoiser - SPresso - TBilateral
- RemoveGrain.
Temporales: TemporalSoften - Temporal Degrain.
Espacio-Temporales o 3D: Deathray - DeGrainMedian - DFTTest - FFT3DFilter - FFT3DGPU FluxSmooth - STMedianFilter.
Temporales con compensacion de movimiento: MVTools+MDegrain - TTempSmooth.
Denoisers

Restauracion
Por aqui estan los filtros que se dedican a eliminar o atenuar efectos indeseables del video,
tambien llamados artifacts. Estos filtros todos tienen un uso especifico, no son filtros para aplicar
sobre ruido en general, sino especificamente sobre el efecto al que apuntan.

Subcategorias y filtros:
Debanding: GradFun2db - GradFun2DBmod.
Deblocking: BlindPP - DeBlock - DeBlock_QED - SmoothD - UnBlock.
Dehaloing y Deringing: DeHalo_alpha - EdgeCleaner - HQDering - YAHR.
http://www.mundodivx.org/foro/index.php?topic=37925.0

12/152

24/4/2015

Manual AviSynth

Antialiasing: SAA - RAA - SharpAAMCmod.


Correccion de Color: Colormatrix.
Filtros para Eliminar Logos: rm_logo.
Restauracion

Aumento de nitidez (efecto sharpen)


La finalidad de estos filtros se explica por si sola.

Filtros en esta categoria:


aSharp
aWarpSharp / aWarpSharp2
MSharpen
LimitedSharpenFaster
LSFmod
SeeSaw
Sharpen
Filtros Sharpen

Multiproposito
Funciones dedicadas a mas de un tipo de filtrado, es decir que abarcan mas de una categoria.

MCTemporalDenoise

Ajustes
Ajustes de color, niveles y framerate.

Subcategorias y filtros:
http://www.mundodivx.org/foro/index.php?topic=37925.0

13/152

24/4/2015

Manual AviSynth

Conversion: ConvertToXXX.
Color y Niveles: ColorYUV - GreyScale - Tweak.
Framerate: AssumeFPS - ChangeFPS - Decimate - FDecimate - PullDown.
Oscurecimiento de lineas: FastLineDarkenMOD - LineDarkenToon - Toon.

Ajustes

Varios
Subcategorias y filtros:
Efectos: AddGrainC - GrainFactory3 - ShowAlpha - Overlay - Reverse.
Subtitulado: Subtitle - VSFilter.
Mascaras: MaskTools - MaskTools 2.
Otros: Freezeframe - StackHorizontal/StackVertical
Varios
ltima modificacin: 13 de Marzo de 2015, 15:19 por 888

En lnea

Tweet

Me gusta

Encuentra los mejores manuales en la web: www.mundodiv x.com/manuales.php

Carga y Manipulacion

888
Moderador
Desconectado

Registrado: 26/06/2006
Mensajes: 8.872
http://www.mundodivx.org/foro/index.php?topic=37925.0

Respuesta #1: 04 de Noviembre de 2009, 02:20

Carga de Archivos
Por aqui se presentan los filtros que le permiten a AviSynth cargar sus archivos de audio y/o video.
En principio aquellos filtros internos incluidos con AviSynth, para luego pasar a los plugins.
14/152

24/4/2015

Manual AviSynth

Valoracin: 8
Sexo:

Frame Accuracy: esta es una caracteristica que poseen los filtros de carga cuando son capaces de
busqueda y localizacion de frames de forma exacta.
Esto significa que ante una operacion de busqueda de un frame en particular, se puede estar
seguro de que ese es el frame devuelto por el filtro.
Por ejemplo, supongan que utilizan el filtro Trim para seleccionar un trozo de su video. La
seleccion se realiza mediante frame incial y frame final. Pues si estan utilizando un filtro de carga
que no les garantiza frame accuracy para el formato de su video, los frames donde se realiza el
corte pueden no ser aquellos que ustedes especificaron.
Cabe aclarar que si se trata de un filtrado directo de principio a fin del video no es necesario que
el filtro que usen sea frame accurate, esta es una caracteristica deseable solo cuando se
requieren operaciones de busqueda.

AviSource
AviSource("C:\...\video.avi", pixel_type="YV12")
AviFileSource("C:\...\video.avi", pixel_type="YV12")
OpenDMLSource("C:\...\video.avi", pixel_type="YV12")
AviSource permite cargar archivos AVI, WAV, AVS o VDR(frameserver de VirtualDub). Si el archivo
AVI es estandar (ergo, no posee cosas raras como audio AAC o video H264) este filtro deberia ser
frame accurate.
Esta detecta automaticamente el tipo de archivo y lo pasa a la interfaz AVIFile o OpenDML segun
corresponda. En caso de encontrase problemas se puede forzar el uso de alguna de estas
utilizando las otras dos lineas de carga, teniendo en cuenta que AviFileSource sirve para archivos
AVI<2GB y el resto de formatos mencionados, mientras que OpenDMLSource puede abrir archivos
AVI de cualquier tamao pero no los otros formatos.
Entre las comillas se indica la ruta completa al archivo, aunque esta se puede obviar (solo se pone
el nombre) si el archivo .avs(el script) esta en la misma carpeta que el archivo de video a ser
cargado.
Este modo de cargar el archivo requiere de un codec VFW para decodificar el video y de un codec
ACM para decodificar el audio, asi que deberan tener codecs con dicha capacidad instalados.
Pueden evitar la carga del audio colocando audio=false en la linea, quedando asi:
AviSource("C:\...\video.avi", audio=false).
El parametro pixel_type sirve para forzar un formato de color en la salida del decodificador, siendo
validos los siguientes: YV12, YV411, YV16, YV24, YUY2, Y8, RGB32 y RGB24. Si se omite (que es lo
mas comun) AviSynth usara el primer formato soportado por el decodificador respetando el orden
ya mostrado.

DirectShowSource
http://www.mundodivx.org/foro/index.php?topic=37925.0

15/152

24/4/2015

Manual AviSynth

DirectShowSource("C:\...\video.mp4", fps=25, convertfps=false)


Para poder cargar otros formatos, o tambien util si no tienen un codec VFW para el video o uno
ACM para el audio pero si pueden reproducir el archivo sin problemas en Windows Media Player,
se utiliza esta linea que hace uso de la interfaz DirectShow y asi permite demultiplexar/decodificar
todo formato que posea un Decoder o Splitter directshow instalado en el sistema.
Debe destacarse que este filtro no ofrece frame accuracy en la mayoria de los casos.
Definir el parametro fps sirve para fijar el frame rate de reproduccion, pero solo es necesario en
ciertos casos de decoders directshow que fallan en informarlo, como cuando se trata de achivos
ASF o MOV.
Si desean solo cargar el video, pueden agregar audio=false a la linea, quedando video.mp4",
audio=false), y viceversa con video=false.
Para videos con framerate variable o VFR se puede usar convertfps=true para convertir a
framerate constante o CFR mediante duplicado de frames. Aparentemente ofrece mejores
resultados si tambien se fija el framerate a un valor de 120 usando fps=120, dado que este valor
es el primero que posee como multiplos a 24 y 30. Esto surge de una cuestion de entrelazado,
para mas info consulten la categoria de filtros para Desentrelazado.

WAVSource
WAVSource("C:\...\audio.wav")
WAVSource("C:\...\video.avi")
Para cargar un archivo externo de audio descomprimido en formato WAV, o tambien cargar solo el
audio de un archivo AVI(decodificandolo mediante la interfaz ACM).

ImageSource
ImageSource("C:\...\%d.bmp", start=0, end=1000, fps=24, pixel_type="RGB24")
Para carga de imagenes, ya sea sueltas o una secuencia de las mismas para formar un video. En
este ultimo caso los archivos deberan estar nombrados en orden adecuadamente.
start y end sirven para fijar un intervalo de carga. Los valores mostrados en la sintaxis son los que
vienen por defecto.
pixel_type puede ser Y8, RGB24(por defecto) o RGB32. El canal alfa(transparencias) solo es
cargado si se usa RGB32 y si es soportado para el formato de imagen cargado.
http://www.mundodivx.org/foro/index.php?topic=37925.0

16/152

24/4/2015

Manual AviSynth

Ejemplos:
ImageSource("C:\...\%d.jpg", 51, 256)
Carga todas las imagenes desde la 51.jpeg hasta la 256.jpeg formando un video que corre a 24
fps.
ImageSource("C:\...\%2d.png", end=69, fps=30)
Carga todas las imagenes desde la 00.png hasta la 69.png, formando un video que se reproduce
a 30 fps.
ImageSource("C:\...\imagen.bmp", end=100)
Repite la imagen.bmp 100 veces, formando un video a 24 fps.

Plugins para carga de archivos


Estos plugins se ocupan de la demultiplexacion y decodificacion (y en algunos casos, de otros
ajustes), actuando asi como frameservers para AviSynth o cualquier otro programa que soporte
cargar los archivos de proyecto que crean los indexadores.
De esta forma se puede evitar usar los decodificadores del sistema y se gana en estabilidad.
Ademas, suelen ofrecer frame accuracy para algunos de los formatos que soportan.
La carga de los mismos se puede realizar manualmente mediante la linea
LoadPlugin("C:\...\plugin.dll"), o para que se cargue automaticamente, colocar el plugin en la
carpeta por defecto: C:\Archivos de programa\AviSynth 2.5\plugins.
Sobre los plugin DG: el funcionamiento en el caso de los primeros tres plugin "DG" para carga de
video es comun a todos ellos, dado que son desarrollados todos por el mismo autor. Este es
basicamente asi: se incluyen en la descarga dos software diferentes, un programa llamado
DG[...]Index.exe y el plugin propiamente dicho de nombre DG[...]Decode.dll
Primero se debe usar el programa DG[...]Index para abrir el video. Y aqui es cuando deben extraer
el audio, dado que estos plugin solo procesan video, asi que el audio hay que tratarlo aparte.
Tambien es posible aplicar algo de filtrado sencillo (Luminancia y crop) mientras se observan los
resultados en tiempo real, a manera de preview del video que obtendra AviSynth del plugin.
A su vez, mediante estos plugin se facilita la deteccion del tipo de entrelazado que pueda tener un
video, para mas info ver en la seccion sobre Desentrelazado del manual.
Con este programa se crea un archivo de proyecto que contiene informacion sobre el video a
decodificar, incluidos los ajustes de luminancia y crop que hayan hecho. Es este archivo de
http://www.mundodivx.org/foro/index.php?topic=37925.0

17/152

24/4/2015

Manual AviSynth

proyecto el que luego se carga desde el script de AviSynth y es a partir del mismo que el
decodificador (DG[...]Decode.dll) carga el video, decodifica y envia el video descomprimido a
AviSynth para la aplicacion del script.
Y por ultimo, segun tengo entendido todos estos plugin "DG" son frame accurate en todos los
formatos de video que soportan.

DGMPGDec
Este conjunto de utilidades permite cargar archivos con video en el formato MPEG-1 o MPEG-2,
contenidos en alguna de las siguientes extensiones soportadas: VOB, MPG, M2V, M1V, MPV, MPEG,
TP, TS, TRP, M2T, M2TS, PVA o VRO.
Se usa asi: abren el programa DGIndex.exe y cargan su video con File->Open. Pueden usar el
cursor para desplazarse por el mismo o bien las opciones de reproduccion en el menu File.
Para extraer el audio, pueden usar las opciones en Audio->Output Method, siendo estas: Disable
(no se extrae nada); Demux Tracks (eligen que pistas extraer); Demux All Tracks (extrae todas las
pistas); Decode AC3 Track to WAV (extrae y decodifica hacia WAV). La extraccion ocurre durante el
proceso de creacion del archivo de proyecto .d2v
Ajustes de luminancia estan disponibles (brillo y gamma), a los que se puede acceder desde Video>Luminance Filter.
Tambien se ofrece la posibilidad de hacer cropping (cortar parte de la imagen), accesible desde
Video->Cropping Fliter. En ambos casos los resultados se aplican en tiempo real.
Para crear el proyecto .d2v van a File->Save Project y guardan el mismo, el proceso demorara un
cierto tiempo, pueden ver el progreso en la linea de tiempo. Tambien, de paso que se crea el
proyecto, se puede demultiplexar el video hacia un archivo solo de video, mediante File->Save
Project and Demux Video, o solo extraer las pistas de audio con Demux Audio-Only Stream.
Sintaxis para carga del video:
DGDecode_MPEG2Source("C:\...\video.d2v")
Descarga (hay un link debajo de todo, el plugin de AviSynth es el archivo DGDecode.dll incluido en
la descarga)

DGAVCDec
Para cargar archivos de video en el formato H264 o MPEG-4 AVC, el que puede encontrarse en
http://www.mundodivx.org/foro/index.php?topic=37925.0

18/152

24/4/2015

Manual AviSynth

alguno de los siguientes formatos de archivo (extensiones): H264, 264, AVC, M2T, M2TS, MTS, TP,
TS, TRP.
Se procede de la siguiente manera: ejecutan DGAVCIndex.exe y cargan el archivo de video (File>Open). Una vez abierto pueden usar el cursor para navegar por el mismo, o aprovechar las
opciones de reproduccion (File->Play, Stop, Pause).
Pueden extraer (demultiplexar) el audio mediante Audio->Audio Demux, se abre una lista con las
pistas detectadas, las marcan para extraer con Set y las mismas seran demultiplexadas al guardar
el proyecto. Pueden desmarcar usando Clear.
Ajustes de luminancia estan disponibles (brillo y gamma), a los que se puede acceder desde Video>Luminance Filter.
Tambien se ofrece la posibilidad de hacer cropping (cortar parte de la imagen), accesible desde
Video->Cropping Fliter. En ambos casos los resultados se aplican en tiempo real.
Finalmente, para crear el archivo de proyecto .dga, utilizan File->Save Project para iniciar el
proceso, cuyo avance puede ser monitoreado mirando el cursor.
Al guardar el proyecto tambien es posible extraer el video a un archivo RAW (solo video) a partir
de File->Save Project and Demux Video.
Sintaxis para carga del video:
AVCSource("C:\...\video.dga")
Descarga (en la carpeta de plugins de AviSynth deben estar presentes DGAVCDecode.dll y
libavcodec.dll)

DGDecNV
Este plugin (DGDecodeNV.dll) tiene la particularidad de poseer soporte para la tecnologia CUDA
de Nvidia. Gracias a esta es capaz de entregar el procesamiento a la placa de video (GPU),
aprovechando el impresionante poder de calculo que estas poseen y liberando asi al CPU del
proceso de decodificacion. Actualmente este plugin es de pago, aunque este es irrisorio (para
donde se gane en dolares por lo menos
) y solo necesario una vez.
No todas las placas de video Nvidia soportan CUDA, solo aquellas con PureVideo version VP2 o
superior. Pueden consultar en esta lista.
Teniendo la placa, solo les faltan los drivers oficiales de Nvidia desde la version 191.07 en
adelante.
Como ultimo paso antes de poder ejecutar el script, deben iniciar el servicio CUVID ejecutando el
archivo CUVIDServer.exe, incluido con la descarga del plugin.

http://www.mundodivx.org/foro/index.php?topic=37925.0

19/152

24/4/2015

Manual AviSynth

Los formatos de video soportados, junto con sus posibles contenedores y/o extensiones, son:
MPEG-2 y MPEG-1 -> VOB, MPG, M2V, M1V, MPV, MPEG, TP, TS, TRP, M2T, M2TS, PVA o VRO.
H264 -> MKV, H264, 264, AVC, M2T, M2TS, MTS, TP, TS, TRP.
VC-1 -> MKV, VC1, M2TS, Transport Streams.

Noten que en el caso de VC-1 no es soportada la extension WMV, en cuyo caso pueden recurrir a
la herramienta GDSMux incluida con el Haali Media Splitter para pasar de .wmv a .mkv
Se usa asi: ejecutan DGIndexNV.exe y cargan el video con File->Open. Pueden usar el cursor para
desplazarse por el mismo o bien las opciones de reproduccion File->Play/Preview/Stop/PauseResume.
La extraccion del audio se realiza desde Audio->Audio Demux. En el caso de un archivo TS
(Transport Stream) se listan las pistas detectadas y deben seleccionar cuales desean extraer: click
sobre la pista->Set para agregar, Clear para quitar. La extraccion ocurre durante el proceso de
creacion del archivo de proyecto.
Cuando se trata de un archivo PS(Program Stream) o MKV las pistas se eligen de la misma forma
pero se extraen desde ahi mismo usando Demux.
Ajustes de luminancia estan disponibles (brillo y gamma), a los que se puede acceder desde Video>Luminance Filter.
Tambien se ofrece la posibilidad de hacer cropping (cortar parte de la imagen), accesible desde
Video->Cropping Fliter. En ambos casos los resultados se aplican en tiempo real.
Para crear el archivo de proyecto (.dgv si es VC-1, .dgm si es MPG o .dga si es H264), es decir
iniciar el proceso de indexado, van a File->Save Project y guardan el mismo. El proceso demora
unos minutos, pueden ver el progreso en la linea de tiempo. Tambien, de paso que se crea el
proyecto, se puede demultiplexar el video hacia un archivo solo de video, mediante File->Save
Project and Demux Video.
Sintaxis para carga del video:
DGSource("C:\...\video.dgm")
Algunos de los parametros disponibles:
deinterlace, para desentrelazado usando el decodificador PureVideo de Nvidia. Puede tomar los
valores: "0", por defecto, no se aplica desentrelazado; "1", desentrelazado normal; "2",
desentrelazado al doble del framerate original (o tambien llamado bobbing).
resize_w y resize_h permiten aplicar reescalado usando la GPU, y por supuesto representan la
resolucion horizontal y vertical respectivamente.
DGDecNV
http://www.mundodivx.org/foro/index.php?topic=37925.0

20/152

24/4/2015

Manual AviSynth

DirectShowSource2
A pesar de su nombre esta no es una version posterior del mismo filtro interno de AviSynth, sino
un desarrollo independiente. El uso del nombre seguro haya sido para hacer notar que es una
alternativa mas avanzada.
En particular, este plugin es parte del desarrollo del Haali Media Splitter, por lo que hace uso de
este ultimo para abrir los contenedores por el soportados. Para otros formatos recurre a
DirectShow tal como el filtro original.
Por lo que tengo entendido su principal ventaja por sobre el filtro DSS es su capacidad para
ofrecer "frame accuracy" sobre los formatos contenedores soportados por el Haali Media Splitter:
MKV, MP4 y OGM.
Por otro lado, no se ocupa de cargar el audio, a diferencia del original que si lo hace, por lo que
deberan realizar extraccion previa y carga por separado. Para saber como aplicar esto remitirse al
apartado Introduccion al Lenguaje de AviSynth del post principal.
Vale aclarar tambien que solo es capaz de cargar VFR (frame rate variable) convirtiendo el video a
CFR (frame rate constante), que seria equivalente a usar DirectShowSource con el parametro
convertfps=true.
Sintaxis:
DSS2("C:\...\video.mkv")
El plugin consiste en el archivo avss.dll que viene incluido con el Haali Media Splitter.

FFmpegSource2
Este es un conjunto de filtros que hacen uso del proyecto FFmpeg para la carga de los archivos, ya
sean de audio y/o video. Al igual que los plugin "DG" realiza un indexado completo del video previo
a su decodificacion.
El soporte de formatos abarca: AVI, MKV, MP4 y FLV, que deberian ser frame accurate; OGM y
WMV, que podrian serlo tambien pero no es seguro; VOB, MPG, M2TS, TS, donde ya no esta
garantizado y la localizacion de frames suele desviarse ligeramente (unos pocos frames, ya sabran
ustedes si les resulta un problema o no).
Posee ciertas limitaciones, como ser la necesidad de contar con Haali Media Splitter para la carga
de OGM o MPEG TS/PS (MPG, TS, etc). No soporta (al menos no correctamente) abrir elementary
streams, es decir archivos que contienen solo la pista de video, como ser .m2v, .h264, etc

http://www.mundodivx.org/foro/index.php?topic=37925.0

21/152

24/4/2015

Manual AviSynth

Funciones:
FFIndex("C:\...\video.avi", indexmask=-1, dumpmask=0, errorhandling=3)
Esta funcion solo se ocupa de realizar el indexado del archivo. Les sirve para cuando requieran
realizarlo de forma separada a la carga del video y/o audio, por ejemplo si luego planean cargar
video y audio pueden usar esta funcion para que solo se aplique una etapa de indexado, caso
contrario se aplicara una etapa de indexado en cada llamada al filtro de carga.
Por si sola no les sirve para cargar audio ni video al script.
indexmask les sirve para especificar que pistas de audio seran indexadas. Por defecto "-1" indexa
todas las pistas, mientras que un valor de "0" no indexa ninguna. La forma de seleccionar las
pistas es algo extraa, por ejemplo para extraer las pistas 1 a 3 se debe usar un valor de "7", si
alquien puede aclarar un poco mejor como se utiliza este parametro bienvenido sea.
dumpmask no solo indexa las pistas seleccionadas sino que tambien las extrae del video a
archivos por separado. Sus valores son los mismos que el anterior parametro.
errorhandling controla como reacciona el filtro ante un error de decodificacion del audio. El valor
por defecto "3" lo ignora y continua con el indexado. Se puede usar tambien: "0" para detener el
indexado; "1" para anular la pista con problemas y continuar indexando; "2" para detener el
indexado pero conservar las pistas ya indexadas hasta ese punto.
FFVideoSource("C:\...\video.avi", track, cache=true, rffmode=0, fpsnum=-1, fpsden=1)
Para cargar el video. Realiza una pasada de indexado salvo se haya realizado antes con FFIndex.
Con track eligen que pista de las indexadas debe ser cargada. Esta funcion (al igual que la de
carga del Audio) solo es capaz de cargar una pista a la vez, asi que si necesitan cargar mas de
una sera necesario que utilicen esta funcion con cada una de ellas.
Si lo desean pueden escribir la informacion de indexado en un archivo externo para su uso
posterior. Para ello usan cache=true. Esto a su vez permite el uso de la informacion de indexado
ya existente.
Para poder seleccionar como tratar a las marcas (flags) de pulldown tienen el parametro rffmode,
cuyos valores son: "0" las ignora; "1" las respeta; "2" es el equivalente a Force Film de los plugin
"DG". Si el video no posee marcas y seleccionan algun valor mayor que cero el filtro dara error.
Esta opcion es muy util para trabajar con videos Soft o Hard Telecined. Para mas detalle sobre que
opcion elegir remitirse a la seccion de Desentrelazado.
fpsnum y fpsden estan para fijar el valor del framerate del video cuando se busca aplicar una
conversion VFR -> CFR. Se trata de especificar un valor de framerate mediante una relacion fpsnum
/ fpsden. Por ejemplo: para 29,97: fpsnum=30000 y fpsden=1001. Por defecto fpsnum=-1 (o "0")
implica que no se modifica.
FFAudioSource("C:\...\video.avi", track, cache=true, adjustdelay=-1)
http://www.mundodivx.org/foro/index.php?topic=37925.0

22/152

24/4/2015

Manual AviSynth

Para cargar el audio. Realiza una pasada de indexado salvo que se ya se haya realizado antes
mediante FFIndex.
Para tratar de aplicar un cierto delay a la pista de audio pueden emplear el parametro
adjustdelay, mediante los valores: "-1" ajusta segun la primera pista de video; "-2" ajusta segun
el tiempo cero; "-3" no hace nada. Y tambien pueden poner aqui el numero que representa a
cualquier otra pista, de tal forma que el ajuste sea relativo a la misma.
Descarga
Requiere que esten presentes en la carpeta plugins de AviSynth: el plugin propiamente dicho,
ffm2.dll, y el programa ffmsindex.exe.

LSMASHSource
De aquellos mencionados en este manual, este es el plugin de carga de Audio y Video de mas
reciente aparicion, y el recomendado para trabajar con compresion de video H264 y sus
contenedores mas habituales (MP4, MKV).
Su operacion es muy similar al FFmpegSource, y emplea tambien las librerias de decodificacion y/o
demultiplexado del proyecto FFmpeg.
Ofrece dos filtros distintos para la carga del video o audio segun lo que se requiera.
Para el demux ofrece 2 alternativas, recomendadas para diferentes formatos.
Demux LSMASH (MP4, MOV, 3GP, y derivados)
LSMASHVideoSource(track=0, threads=0, seek_mode=0, seek_threshold=10, dr=false, fpsnum=0,
fpsden=1, stacked=false, format="")
LSMASHAudioSource(track=0, skip_priming=true, layout="", rate=0)
Vale destacar que esta opcion no requiere una pasada de indexacion previa a la decodificacion, a
diferencia de la opcion que emplea FFmpeg.
track nos sirve para seleccionar la pista que se ira a decodificar, si se deja en "0"
automaticamente intenta decodificar la primera pista disponible.
Para forzar el numero de hilos de procesamiento (nucleos de CPU) podemos usar threads, o
dejarlo en "0" para su deteccion automatica (max. 16).
seek_mode define el modo de actuar del filtro ante un error de decodificacion: "0" es Normal; "1"
es No Seguro; "2" es Agresivo. La diferencia entre los modos radica en la insistencia del filtro
http://www.mundodivx.org/foro/index.php?topic=37925.0

23/152

24/4/2015

Manual AviSynth

cuando se encuentra un error que evita la correcta decodificacion del frame, cuando mas agresivo
el modo, mas probabilidad de que se descarte el frame en favor del inmediato anterior. En cambio,
un valor Normal implica que el filtro agote todas las instancias para recuperar el frame.
Cuando se le solicita al decodificador un frame en particular, el mismo debe alcanzar dicho punto
especifico decodificando en forma secuencial desde un frame de referencia. seek_threshold nos
permite fijar un valor maximo en numero de frames para que el filtro localice la referencia mas
cercana, caso contrario se aplica un algoritmo de busqueda mas extenso.
Es posible forzar una velocidad de repdoduccion (frames por segundo o FPS), por medio de los
parametros fpsnum y fpsden, siguiendo la formula FPS = fpsnum / fpsden. La salida se fuerza al
valor elegido por medio de duplicado o prdida de frames, no recomendandose usar estos
parametros y en su lugar recurrir a los filtros adecuados de AviSynth.
En el caso de trabajar con mayores tasas de bits (10 bits), se usa stacked=true para activar un
"hack" en AviSynth que admite estos valores mas elevados.
format nos sirve para forzar el espacio de color de salida.
Puede definirse una posicion para los canales de audio por medio de layout. Para mas detalle de
que sintaxis emplear ver aqui. De no especificarse nada, prevalece la disposicion original.
La frecuencia de muestreo de salida la fijamos con rate. Caso contrario ("0") se conserva valor de
origen.
El parametro skip_priming es conveniente no modificarlo y dejarlo como viene por defecto (activo).
Permite anular la consideracin del delay inicial que existe en los audios de formato AAC
contenidos en MP4. De fijarse skip_priming=false se ignora este delay (informado en la cabecera
del archivo) y puede resultar en la perdida de sincronizacion con el video.
Demux FFmpeg (resto de los formatos)
LWLibavVideoSource(stream_index=-1, threads=0, cache=true, seek_mode=0, seek_threshold=10,
dr=false, fpsnum=0, fpsden=1, repeat=false, dominance=0, stacked=false, format="")
LWLibavAudioSource(stream_index=-1, cache=true, av_sync=false, layout="", rate=0)
Para seleccionar la pista a decodificar: stream_index, por defecto en "-1" para autodeteccion (se
decodifica la pista de mayor resolucion).
cache=true crea el archivo de indexado en la misma carpeta que el archivo de origen. Util para
cuando requerimos realizar mas de una decodificacion del archivo, para evitar el indexado en
futuras pasadas. De usar cache=false la indexacion se realiza igual, pero no se crea el archivo
auxiliar, por lo que cada vez que se llame al filtro para el mismo archivo se debera indexar.
Deberia usarse repeat=true cuando la fuente es entrelazada y el filtro es incapaz de identificarlo
correctamente. El sintoma de esta problematica es el duplicado del numero de frames y una
incorecta velocidad de reproduccin, dado que el filtro trata a los campos entrelazados como
frames individuales.
http://www.mundodivx.org/foro/index.php?topic=37925.0

24/152

24/4/2015

Manual AviSynth

Para fuentes entrelazadas, dominance fija el orden de los campos. En "0" obedece las marcas del
archivo de origen, o bien "1" para campo superior primero, y "2" para viceversa.
Si se usa av_sync=true el filtro intenta la sincronizacion entre el audio y el primer frame de la pista
de video seleccionada (si corresponde).

NicAudio
Para carga de varios formatos audio.
Sintaxis:
AC3(Dolby Digital)
NicAC3Source("C:\...\audio.ac3",Channels,DRC)
DTS, DTSWAV
NicDTSSource("C:\...\audio.dts",Channels,DRC)
Channels: opcional, valor entero, maximo numero de canales a la salida, por ejemplo si cargan un
.ac3 de 6 canales pueden hacer Downmix a estereo si le ponen al parametro un valor de 2.
DRC(0,1): aplica el algoritmo de Dynamic Range Compresion, por defecto en 0. 1 aplica el perfil
Normal del algoritmo.
MP1, MP2, MP3
NicMPG123Source("C:\...\audio.mp3",Normalize)
Normalize(0,1): si normalizar o no el volumen, por defecto en 0 (apagado).
LPCM
NicLPCMSource("C:\...\audio.lpcm",SampleRate,SampleBits,Channels)
WAV, WAVEFORMATEXTENSIBLE, W64, BWF, RF64, AU, AIFF y CAF
RaWavSource("C:\...\audio.wav",SampleRate,SampleBits,Channels)
SampleRate: valor entero a expresarse en Hz, representa la frecuencia de muestreo.
SampleBits: representa el tamao de la muestra digital del audio. Valores validos: 8, 16, 24, 32. Y
33 solo para RAW (equivale a 32 float). LPCM tambien acepta 20, -8, -16, -24 y -32, siendo los
valores negativos para audio LPCM de Blu-Ray (Big-Endian).
Descarga

http://www.mundodivx.org/foro/index.php?topic=37925.0

25/152

24/4/2015

Manual AviSynth

BassAudio
Para carga de audio. Amplio soporte de formatos.
El plugin no es mas que una interfaz para AviSynth de las librerias decodificadoras provistas por:
http://www.un4seen.com/, desde donde pueden descargarlas.
Hay varias librerias, cada una dedicada a un determinado grupo de formatos. Segun que formato
deseen cargar necesitaran que la libreria que corresponda este acompaando al plugin
(BassAudio.dll), pero en el script solo es necesario cargar este ultimo.
La libreria principal es el archivo bass.dll y soporta los formatos: MP1, MP2, MP3, OGG, WAV, AIFF,
entre otros.
Otros formatos se soportan mediante Addons, es decir que ademas del archivo .dll que posee
dicho soporte extra de formatos, tambien debe estar presente bass.dll, todo junto al plugin.
Pueden ver que hay disponible y para que formatos desde aqui, asi como descargar lo que
necesiten.
Sintaxis:
Para cargar el plugin
LoadPlugin("C:\...\BassAudio.dll")
Para cargar un archivo de audio
BassAudioSource("C:\...\audio.mp3")
El plugin lo consiguen como parte del BeHappy, ojo que puede ser que algunas versiones sean
solo el ejecutable, busquen el programa completo, descomprimen y lo encuentran en la carpeta
plugins.

Filtros para Manipular Archivos


AudioDub / AudioDubEx
Este filtro une la pista de video del clip1 con la pista de audio del clip2, para formar una nueva
pista de audio y video.
AudioDub(clip1, clip2)
AudioDubEx(clip1, clip2)
http://www.mundodivx.org/foro/index.php?topic=37925.0

26/152

24/4/2015

Manual AviSynth

La diferencia entre las variantes es que la "Ex" no arroja un error cuando alguno de los clips no
poseen la pista necesaria. Por ejemplo si el clip1 no posee pista de video, en vez de dar error el
resultado solo contendra la pista de audio del clip2. Y lo mismo vale si el clip2 no posee audio.

AlignedSplice / UnalignedSplice
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
Para unir dos o mas videos, uno a continuacion del otro. La diferencia entre ambas alternativas es
que AlignedSplice une los videos teniendo en cuenta la sincronizacion del audio, es decir que
corta y/o agrega silencio en la pista de audio del primer video segun sea necesario para evitar
desincronzaciones.
UnalignedSplice debe usarse cuando originalmente las pistas de audio eran una sola continua.
AlignedSplice(clip1, clip2, clip3, ...)
UnalignedSplice(clip1, clip2, clip3, ...)
Tambien puede reemplazarse esta sintaxis por los simbolos + para representar UnalignedSplice y
++ para AlignedSplice, por ejemplo asi:
AviSource("C\...\video1.avi") + AviSource("C\...\video2.avi")

Trim
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
Sirve para seleccionar un determinado trozo de un video. Se deben indicar el frame de inicio y
frame final del trozo, siendo ambos tambien incluidos en la seleccion. A partir de este filtro solo el
trozo seleccionado continuara siendo procesado.
Tambien puede usarse para seleccionar diferentes partes del video no consecutivas, "sumando" la
aplicacion del filtro a cada una de ellas.
Sintaxis:
Trim(a,b,pad_audio)
Trim(a,b)+Trim(c,d)
Donde a y/o c son los frames iniciales y b y/o d los finales de cada trozo.
http://www.mundodivx.org/foro/index.php?topic=37925.0

27/152

24/4/2015

Manual AviSynth

El segundo metodo puede usarse para cortar un sector intermedio del video, basta que a sea el
frame 0(cero) y d el ultimo frame, entonces se elimina el rango de frames desde b+1 hasta c-1.
pad_audio(true,false) por defecto activo, de ser desactivado (pad_audio=false) impide que el
audio sea ajustado para coincidir con la duracion del video.
Ejemplos extraidos de la wiki:
Trim(100,0) -> borra los primeros 100 frames, audio ajustado o cortado para coincidir con la
duracion del video.
Trim(100,0,false) -> elimina los primeros 100 frames de audio y video. Las duraciones de audio y
video resultantes permanecen independientes.
Trim(100,-100) -> lo mismo que trim(100,199)
Trim(100,199,false) -> el audio sera cortado si es mas largo pero no ajustado de ser mas corto
que el frame 199.
Trim(0,-1) -> devuelve solo el primer frame.
Trim(0,100)+Trim(200,300) -> conserva los frames 0 a 100 y 200 a 300, eliminando los frames
desde 101 a 199.

ImageWriter
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
Permite exportar el video en forma de secuencia de imagenes, o lo que es lo mismo permite
extraer los frames hacia archivos de imagenes sueltos.
Sintaxis y valores por defecto:
ImageWriter("C:\...\nombre_archivo", start=0, end=0, type="ebmp", info=false)
Entre comillas va la ubicacion y nombre de archivo que tendran las imagenes. AviSynth las nombra
de la siguiente manera: nombre_archivo000000.type, nombre_archivo000001.type,
nombre_archivo000002.type, etc.
Mediante start y end pueden elegir que porcion del video desean exportar, marcando el frame de
inicio y final. Por defecto ambos valores en 0 indica que se exporta todo el video.
El formato de las imagenes se selecciona con type, pudiendo ser: bmp, dds, ebmp, jpg/jpe/jpeg,
pal, pcx, png, pbm/pgm/ppm, raw, sgi/bw/rgb/rgba, tga, tif/tiff. Por defecto se guardan en el
formato nativo de AviSynth ebmp, que viene a ser un bmp con la posibilidad de exportar en
cualquier formato de color (YUY, RGB, etc). Si se usan los formatos Y8 o RGB el archivo ebmp es un
bmp estandar, pero de usarse el resto la compatibilidad probablemente quede restringida a
AviSynth y el filtro ImageSource.
Para los demas formatos de imagen el color debe ser Y8 o RGB24/RGB32.
http://www.mundodivx.org/foro/index.php?topic=37925.0

28/152

24/4/2015

Manual AviSynth

Con info=true se graba sobre el video si el frame fue exportado y de serlo el nombre de archivo de
la imagen que le corresponde.
ltima modificacin: 13 de Marzo de 2015, 15:30 por 888

En lnea

Encuentra los mejores manuales en la web: www.mundodiv x.com/manuales.php

888
Moderador
Desconectado

Re: Manual AviSynth nueva estructura (por


favor no postear)
Respuesta #2: 04 de Noviembre de 2009, 02:28

Filtros para Transformaciones Geometricas


AddBorders

Registrado: 26/06/2006
Mensajes: 8.872
Valoracin: 8
Sexo:

[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
Sintaxis:
AddBorders(left,top,right,bottom,color)
En ciertos casos no es posible modificar el tamao(espacial) de un vdeo con solo redimensionar
dado que las resoluciones que se deben obtener son fijas para cumplir algn estndar, entonces
con solo dimensionar se daaria el aspect ratio(AR) del mismo y este se veria alargado o
achatado; asi que para llegar a la resolucion definitiva hace falta completar los pixeles faltantes
con bandas de un color solido, para ello se usa el filtro AddBorders; este filtro agrega una banda
de pixeles de algun color de altura configurable por separado en cada margen.
Observen la sintaxis, los parametros left(izquierda), top(arriba), right(derecha) y bottom(abajo)
representan la cantidad de pixeles(valores enteros) que ocuparan las bandas contando desde
cada uno de los cuatro margenes.
Lo mas comun es agregar bandas arriba y abajo, pero tambien se agregan en los cuatro lados por
ejemplo cuando se desea solucionar el efecto overscan.
El parametro color permite elegir un color distinto del negro (color por defecto). Este color lo deben
indicar en codigo hexadecimal. Aqui pueden ver una lista con los codigos y colores soportados,
mientras que por aca pueden cotejar a que color corresponde cada codigo.
Ejemplo:
AddBorders(0,64,0,64,$00FFFF)
Esta linea agrega bandas de 64 pixeles tanto arriba como abajo de color Cyan. De seguro quede
horrible pero es un ejemplo nomas
.

http://www.mundodivx.org/foro/index.php?topic=37925.0

29/152

24/4/2015

Manual AviSynth

Crop
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
Sintaxis:
Crop(left,top,-right,-bottom,align)
Este filtro sirve para cortar cierta cantidad de pixeles de los lados de la imagen.
Se configura indicando la cantidad a cortar de cada lado, donde left es izquierda, top es arriba,
right es derecha y bottom es abajo. Y deben colocar los ultimos dos valores negativos como se ve
en la sintaxis.
El parametro align(true,false) permite activar(true) o desactivar(false, por defecto) la alineacion de
la informacion que representa al frame en memoria (RAM). Cuando se usa align=true el filtro, luego
de cortar y almacenar la imagen en memoria de forma no alineada, procede a copiarla hacia otra
posicion pero esta vez alineada. Cuando la perdida de velocidad debido a esta copia es menor a la
perdida que tendria el filtro a continuacion si estuviera la imagen desalineada se logra una
ganancia de velocidad, especialmente cuando luego siguen filtros de suavizado (Smoothers).
Una variante del mismo filtro es la siguiente:
CropBottom(count,align)
Remueve count lineas de la parte inferior de la imagen, especialmente util para eliminar la
distorsion inferior de un video capturardo de un VHS.

FlipHorizontal / FlipVertical
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
Rotan al video de tal manera que lo que se veia de izquierda-derecha pasa a verse de derechaizquierda, en el caso del horizontal, el vertical hace lo mismo pero en vertical valga la redundancia.
Dicho de otra forma el video pasa a verse como el original se veria en un espejo.
Sintaxis:
FlipHorizontal()
FlipVertical()

http://www.mundodivx.org/foro/index.php?topic=37925.0

30/152

24/4/2015

Manual AviSynth

Letterbox
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
Se ocupa de solapar sobre el video bandas negras o de color a eleccion, tapando la parte superior
e inferior, y opcionalmente los lados, del video.
Puede servir para cubrir bandas negras ya existentes que contengan ruido o para cubrir rudio,
artifacts, etc de los bordes de un video.
Sintaxis y valores por defecto:
Letterbox(top, bottom, x1, x2, color=0)
Con top y bottom se fijan los tamaos en pixeles de las bandas superior e inferior
respectivamente. Con x1 y x2 se cubren los laterales izquierdo y derecho.
Para cambiar el color usan codigo hexadecimal, por ejemplo color=$00FFFF es cyan. Pueden
consultar otros colores aqui.

Resize
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
Este filtro se usa para modificar la resolucion del video, para asi estirarlo o
comprimirlo(espacialmente hablando) lo necesario hasta alcanzar la nueva resolucin deseada.
Existen unas cuantas variantes que se pueden usar:
Sintaxis:
BilinearResize(ancho,altura)
BicubicResize(ancho,altura,b,c)
LanczosResize(ancho,altura,taps)
Lanczos4Resize(ancho,altura)
GaussResize(ancho,altura,p)
BlackmanResize(ancho,altura,taps)
PointResize(ancho,altura)
SincResize(ancho,altura,taps)
SplineXXResize(ancho,altura) , donde XX puede ser 16, 36 o 64
El ancho y altura deben indicarse con valores enteros, dado que la unidad mas chica posible es el
pixel. Tambien tengan en cuenta que muchos codecs compresores requieren para su correcto
http://www.mundodivx.org/foro/index.php?topic=37925.0

31/152

24/4/2015

Manual AviSynth

funcionamiento que el video a comprimir tenga valores de resolucion, tanto horizontal como
vertical, multiplos de 8 o 16, asi que antes de aplicar el resize averiguen cual es el caso que les
compete para no encontrarse luego con errores inexplicables.
Explicacion Detallada de cada variante:
Bilinear: tiende a suavizar la imagen, esto significa que es el que menos detalle deja pasar al
redimensionar; adecuado para cuando usen bitrates bajos al comprimir, y/o cuando se reduce la
resolucion.
Bicubic: es similar en funcionamiento al anterior, pero gracias a mejores algoritmos logra procesar
un mayor nivel de detalle y por ende es mejor para cuando se aumenta la resolucion, lograndose
una imagen mas nitida, pero solo es recomendable cuando habra suficiente bitrate como para
comprimir dicho detalle extra, sino puede ser mas conveniente el Bilinear para evitar que la calidad
se vea afectada negativamente al comprimir. Puede ser personalizado mediante los parametros b
y c que pueden ver en la sintaxis de mas arriba. Estos son llamados blurring y ringing
respectivamente; el blurring sirve para quitar nitidez, agregando un efecto "borroso", eliminando
detalle. Puede servir para evitar la aparicion de macrobloques al comprimir a bajos bitrates;
mientras que el ringing hace todo lo contrario, a mayores valores mas fino sera el filtro y mas
detalle dejara pasar llegando tambien a producir el efecto de un filtro sharpen(aumento de
nitidez), con la posibilidad de aparicion de ruido si el filtro se setea muy fuerte. Con b=0 y c=0.75
el filtro es identico al presente en VirtualDub, "VirtualDub`s Precise Bicubic". Un valor normal seria
b=0 y c=0.5 para asi lograr una importante ganacia de detalle respecto del Bilinear, valores
mayores a c=0.6 pueden producir ruido. Los valores por defecto son: b=1/3 y c=1/3.
Lanczos: permite alcanzar muy alto nivel de detalle y con mejor calidad que el Bicubic, solo
recomendable para altos bitrates. Sirve como alternativa al Bicubic con valores de 0.6<c<0.75,
aunque logra una calidad superior a este (menos ruido).
El valor de taps (1-100, por defecto en 3) permite elegir el numero de lobulos que utilizara el
algoritmo (para saber que cornos es eso pueden leer algo aqui, en ingles y aunque entiendan el
idioma no les garantizo que vayan a comprender algo, son cuestiones que tienen que ver con la
matematica del filtro). A mayor valor, mayor sera el detalle, pero comienza a aparecer notable
ruido acompaando al mismo (se acentua el "ringing", como se dice en la jerga).
Lanczos4: es el equivalente a LanczosResize(xxx,yyy,taps=4). O sea es lo mismo que Lanczos con
un valor de taps=4.
BlackMan: esta es una modificacin del Lanczos que permite lograr menos ruido con valores de
taps altos, parametro que representa lo mismo que en Lanczos, aunque aqui su valor por defecto
es 4. Este filtro deberia lograr mejores resultados que el Lanczos4 si es usado como viene por
defecto.
Gauss: filtro basado en el algoritmo de Gauss. El parametro p ajusta la nitidez, desde 0 (menor
detalle, mas borroso) hasta 100 (mayor detalle, mas fino). Su velocidad es similar al Lanczos4.
Point: es el filtro para resize mas simple que existe. Su uso no es para nada recomendable a no
http://www.mundodivx.org/foro/index.php?topic=37925.0

32/152

24/4/2015

Manual AviSynth

ser que se quiera disminuir la calidad del vdeo adrede. Sus resultados suelen contener mucho
bloque.
Sinc: incorporado a partir de la version 2.6, permite usar la funcion Sinc truncada. El parametro
taps es lo mismo que en Lanczos.
SplineXX: este filtro tiene como objetivo alcanzar un muy alto nivel de detalle, pero generando
menos ruido que si se usara Lanczos. XX puede valor 16, 36 y 64, cuanto mayor este valor mayor
sera el detalle.
Otra forma de uso:
Desde la versin 2.5.6 de avisynth existe la posibilidad de cortar la imagen desde el mismo filtro
de resize, como con el filtro Crop. Si se utiliza, en el proceso primero se corta y luego se aplica el
resize.
Usar esta linea:
Crop(10, 10, 200, 300).BilinearResize(100, 150)
Seria casi lo mismo que usar la siguiente:
BilinearResize(100, 150, 10, 10, 200, 300)
Este metodo es conveniente usarlo cuando quieren cortar parte de la imagen previa a su
reescalado. Usandolo se logra mayor calidad en el reescalado de los bordes. Pero para cortar
bandas negras o artifacts es mejor usar el filtro Crop.

Turn
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
TurnLeft()
TurnRight()
Turn180()
Rotan el video 90 grados hacia la izquierda(left), derecha(right) o 180 grados.
ltima modificacin: 15 de Enero de 2015, 20:53 por 888

En lnea

Encuentra los mejores manuales en la web: www.mundodiv x.com/manuales.php

888
Moderador
http://www.mundodivx.org/foro/index.php?topic=37925.0

Denoisers
Respuesta #3: 07 de Noviembre de 2009, 02:56
33/152

24/4/2015

Manual AviSynth

Desconectado

Denoisers Espaciales
Registrado: 26/06/2006
Mensajes: 8.872
Valoracin: 8
Sexo:

Son aquellos que filtran un determinado pixel basandose en informacion obtenida del analisis de
los pixeles adyacentes. Por ello un parametro que muchos de estos filtros tienen en comun (asi
como tambien los 3D) es aquel que regula que tan lejos del pixel se extiende el analisis. Como se
imaginaran aumentar dicho radio resulta en perdida de velocidad pero tambien aporta mejoras de
calidad.

FRFun3b
[YV12]
Denoiser basado en fractales, lo que no dice nada util salvo que su funcionamiento difiere de otros
filtros, y basta probarlo para notar muy alto nivel de limpieza y a su vez una alta conservacion de
detalle fuerte, por lo que constituye uno de los filtros mas potentes y precisos, a pesar de ser solo
espacial. Tambien es bastante rapido.
Aunque no todo son rosas, tiende a dejarse llevar y ataca al detalle debil o difuso, lo que puede
llevar a un efecto de sobrefiltrado en ciertas areas de la imagen. A pesar de esto el resultado
general suele ser muy bueno si el video es muy ruidoso.
Sintaxis:
frfun3b(T, Tuv, S)
Los parametros son bien simples: T es la fuerza de filtrado sobre luminancia, mientras que Tuv lo
es sobre la crominancia. S es un parametro que de subirlo cambia calidad por velocidad.
Y nada mas... eso si, no tengo idea de cuales son los valores por defecto, salvo que si prueban
aplicar frfun3b() directamente, seguro notaran que es demasiado fuerte.
Quizas un mejor punto de partida sea: frfun3b(2.0,2.0,1)
Descarga

FRFun7
[YV12]
http://www.mundodivx.org/foro/index.php?topic=37925.0

34/152

24/4/2015

Manual AviSynth

Aparentemente es la continuacion del anterior, aunque en verdad producen resultados diferentes.


Por ello es que decidi mencionarlos a ambos como filtros separados.
Debido a la carencia total de documentacion y la falta de informacion en general no tengo idea de
que diferencias de calidad o potencia puede haber, aunque en mis pruebas observe que parece
menos potente que el anterior, particularmente al filtrar artifacts de crominancia en fondos.
Tambien note que es menos preciso filtrando cerca del detalle, produciendo un resultado de menor
calidad.
Tambien parece ser notablemente mas rapido, de seguro en compensacion por la menor calidad.
Sintaxis y valores por defecto:
frfun7(Lambda=1.1, T=6.0, Tuv=2.0)
Lambda viene a ser la fuerza de aplicacion en general. Mientras que T y Tuv representan la fuerza
de aplicacion especificamente sobre bordes, para luminancia y crominancia respectivamente.
De seguro requieran reducir el valor de T, ya que por defecto es algo fuerte y ataca detalle. Este
es el parametro que mas impacto tiene sobre el filtrado.
Descarga

SpatialSoften
[YUY2]
Unico filtro de ruido espacial incluido con AviSynth.
Sintaxis:
SpatialSoften(radius,luma_threshold,chroma_threshold)
El valor de radius afecta directamente la velocidad del filtro, a mayores valores el filtro compara el
pixel en estudio con una mayor cantidad de pixeles adyacentes. Por supuesto el aumento de este
valor reduce drasticamente la velocidad pero tambien aporta una calidad superior dado que le
permite al filtro identificar con mas precision que es y que no es ruido, en teoria permitiendo una
mayor conservacion de detalle.
luma_threshold y chroma_threshold representan la intensidad de aplicacion para luminancia y
crominancia respectivamente.

UnDot
http://www.mundodivx.org/foro/index.php?topic=37925.0

35/152

24/4/2015

Manual AviSynth

Dudaba sobre si valia la pena mencionarlo, pero es tan simple de usar que aqui va.
Filtro extremadamente debil. Rara vez notaran a simple vista sus efectos, salvo quizas si observan
su impacto en la compresibilidad, aunque tampoco esperen gran cosa.
En particular esta pensado para eliminar ruido en forma de "puntos" aislados, de ahi su nombre, y
con ellos tambien el denominado ruido mosquito que se presenta en bordes. Se nota su efecto
especialmente al hacer upsize (reescalar hacia mayor resolucion), donde estos puntos se hacen
mas evidentes.
Tambien es extremadamente rapido y el detalle que puede eliminar es despreciable en la mayoria
de los casos, por lo que usarlo no cuesta casi nada y podria ayudar a un filtrado mas completo.
Puede resultar contraproducente en videos de muy alto nivel de detalle, ya que tiende a llevarse
por delante detalle muy fino y/o en movimiento (lluvia o copos de nieve por ejemplo).
Sintaxis:
UnDot()
Eso es todo, ni siquiera tiene parametros

Descarga y Documentacion

VagueDenoiser
[YV12-YUY2-RGB24-RGB32]
Parece mas efectivo contra bajos niveles de ruido, dado que aplicarlo fuerte produce un efecto
Smooth muy marcado y daa demasiado al detalle. En el caso de anime puede resultar efectivo
para mayor cantidad de ruido.
Segun el changelog presente en la documentacion el modo mas completo en funcionalidad y
optimizaciones es el YV12, asi que si notan problemas con videos en otro modo de color,
convierten a YV12.
Sintaxis y valores por defecto:
VagueDenoiser(threshold=0, method=3, nsteps=4, chromaT=-1, interlaced=false)
La intensidad de aplicacion se regula con threshold, donde un valor de 0 estima la misma
automaticamente (adaptativo). Valores menores que 0 desactivan filtrado de Luma. Regular este
parametro es fundamental, dado que por ser un filtro solo espacial no tendra ningun problema en
eliminar detalle si se lo aplica mas fuerte de lo que requiere el video.
http://www.mundodivx.org/foro/index.php?topic=37925.0

36/152

24/4/2015

Manual AviSynth

nsteps es el tipico parametro que a mayor valor mayor calidad pero mas lento el filtrado y
viceversa. Valores tipicos recomendados son 3 a 6.
Para activar filtrado de Chroma aumentan el valor de chromaT>=0, donde 0 es estimacion de
intensidad automatica (adaptativo).
Usan interlaced=true para videos entrelazados.
El metodo de accion que se puede elegir con method varia desde 0 hasta 3. Aparentemente el
orden de mas fuerte a mas suave es el siguiente: 1>3>0>2. Recomiendo usar el valor por defecto.
Buenos resultados (sobre poco ruido) y buena conservacion de detalle en un video con poco
detalle fino:
VagueDenoiser(threshold=2, nsteps=6)
Descarga y Documentacion

SPresso
Esta es una funcion denoiser muy ligera, ideal para conseguir modestas mejoras de
compresibilidad sin afectar de forma notable la nitidez.
En un principio se ideo para el filtrado solo de la luminancia. Aunque luego se le incorporo la
posibilidad de filtrar tambien crominancia, no parece ser tan efectiva para ello.

Filtros necesarios:
MaskTools v2
RemoveGrain
Sintaxis y valores por defecto:
SPresso(limit=2, limitC=4, bias=25, biasC=50, RGmode=4, RGmodeC=0)
La "C" identifica a los parametros que regulan el filtrado de crominancia.
El parametro limit sirve para indicar que tanto se puede cambiar un pixel, y vendria a ser una
forma de limitar la fuerza de filtro.
bias permite modificar algo asi como la agresividad, a mayor valor mas pixeles seran filtrados. Un
valor de "20" es una aplicacion muy liviana, mientras que "30" ya es bastante fuerte.
El modo de filtrado le corresponde al parametro RGmode, que permite elegir el modo de
funcionamiento del filtro RemoveGrain. El valor por defecto parece ser el mejor para amplia
variedad de situaciones. Como el filtrado de crominancia se encuentra desactivado por defecto
(solo se procesa luma), RGmodeC=0, pero por supuesto pueden jugar con este parametro para
procesar ambos o solo crominancia, asi como cambiar el modo de filtrado.
http://www.mundodivx.org/foro/index.php?topic=37925.0

37/152

24/4/2015

Manual AviSynth

Discusion en doom9 y descarga del script

TBilateral
[YV12-YUY2]
Este plugin se basa en el algoritmo bilateral de fitrado, para quien sepa de que se trata
(bienvenida es cualquier informacion, siempre y cuando corresponda al nivel de este manual).
Yendo al grano, mis pruebas me permitieron observar que hace un trabajo bastante decente con
niveles ligeros de ruido sin afectar de forma importante al detalle (las hice sobre HDTVRip de
720p), nada que un buen filtro Sharpen no sepa corregir.
Por ello incialmente lo recomiendo para ese tipo de videos, pero tambien habria que probarlo con
niveles de ruido mas importantes a ver como se comporta.
Sintaxis y valores por defecto:
TBilateral(diameterL=5, diameterC=5, sDevL=1.4, sDevC=1.4, iDevL=7.0, iDevC=7.0, csL=1.0,
csC=1.0, d2=false, chroma=true, gui=false, resType=0)
"L" identifica los parametros que afectan a la luminancia, mientras que "C" a aquellos ligados a la
crominancia.
Para cada pixel el filtro lo compara con una serie de pixeles adyacentes, en base a lo cual decide
como aplicar el filtrado. El parametro diameter fija la distancia hasta donde deben tomarse en
cuenta pixeles adyacentes. A mayor valor mas pixeles (cada vez mas lejanos al central) seran
tenidos en cuenta en los calculos del filtro, en teoria proporcionando un resultado mas preciso y
de mejor calidad, aunque mas lento. El valor debe ser impar, mayor que 1 y menor que la
resolucion vertical.
La agresividad del filtro puede ser regulada mediante dos parametros: sDev e iDev. Segun puedo
observar el primero afecta de forma mas directa la fuerza de aplicacion sobre los pixeles que se
son filtrados (lo que en teoria seria ruido), aunque usar valores muy elevados tambien conduce a
sobrefiltrado (tiende a atacar el detalle mas grueso). El segundo parametro proporciona una forma
de limitar hasta donde llega el filtro cuando se trata de detectar que es ruido y que es detalle;
este valor debe regularse segun la relacion que haya entre el nivel de ruido y el nivel de detalle
del video. Por ejemplo, en videos con alto nivel de detalle conviene mantenerlo bajo, pudiendo ser
necesario reducir bastante los valores por defecto. La agresividad del filtro sobre el detalle es muy
sensible a este parametro.
Con el valor de cs tambien se afecta en parte la agresividad del filtro. Aumentar el valor desde
"1.0" les dara una mayor conservacion de detalle, aunque el efecto es bastante sutil. Disminuirlo
(se puede hasta un minimo de "0") parece reducir la calidad del resultado, afectando al detalle
http://www.mundodivx.org/foro/index.php?topic=37925.0

38/152

24/4/2015

Manual AviSynth

sobre bordes, por ello esto ultimo no creo que sea recomendable, a lo sumo dejarlo en el valor por
defecto, o si se observa perdida de detalle, aumentarlo.
Si se trata de imagen real conviene fijar d2=true, dado que permite un filtrado mas eficiente sobre
gradientes de color suaves. En cambio si la imagen corresponde a anime o dibujos animados
(areas de color solido y/o gradientes bruscos) es mejor como viene por defecto.
chroma=true por defecto implica que se procesa la crominancia, por supuesto un valor de "false" la
deja intacta y solo se filtra luminancia.
El filtro incluye la posibilidad de habilitar una interfaz grafica (gui=true) para observar en tiempo
real el resultado de modificar los parametros y asi poder ajustarlos mas comodamente.
El valor por defecto resType=0 parece ser poco amigable con el detalle difuso en fondos, lo que no
parece ser el caso al usar un valor de "1" o "2". En teoria tambien es posible un valor de "3", pero
en mis pruebas siempre causaba el cuelgue de AviSynth, muy probablemente debido a algun bug
siendo que este modo se introdujo en la ultima version.
Descarga

RemoveGrain
Este es el famoso filtro espacial de ruido muy utilizado en funciones o scripts de variada indole. Se
caracteriza por poseer una gran variedad de modos de funcionamiento y por ser relativamente
rapido.
Descarga
Autor del filtro: Kassandro
Sintaxis: (por defecto)
RemoveGrain(mode=2, modeU=2, modeV=2, planar=false)
Mode= Determina el modo en que se eliminara grano sobre la luminancia
ModeU y ModeV= Determina el modo en que se eliminara grano sobre los 2 canales de croma
Planar= Sirve para que el filtro trabaje con un determinado espacio de color o sobre otros
tambien.

Cosas a tener en cuenta:


-El filtro trabaja por defecto solo bajo YV12 (planar=false), si se quiere utilizar este filtro bajo
espacios de color YUY2, RGB24 o RGB32 se debe utilizar planar=true.
http://www.mundodivx.org/foro/index.php?topic=37925.0

39/152

24/4/2015

Manual AviSynth

planar=true bajo YV12 no produce ningun efecto, ni negativo ni positivo.


-El RemoveGrain siempre se debe utilizar antes de realizar un crop y en lo posible aplicarlo antes
de un resize tambien.
-Al descargarnos el RemoveGrain nos encontramos con 4 .dll con nombre parecido, se recomienda
NO ponerlas todas juntas dentro de la carpeta Plugins de avisynth. Cada una corresponde al tipo
de instrucciones que acepte nuestro procesador por lo que si el nuestro acepta SSE3 no habra
necesidad de poner las anteriores. En el caso de queres tener la opcion de elegir cualquiera de las
4 .dll es preferible que se cargue a travs de LoadPlugin que ponerlas en la carpeta Plugin de
Avisynth.
-Kassandro ofrece la siguiente clasificacin de los modos en lo que respecta al riesgo de generar
artifacts, desde el ms seguro al de mayor riesgo: 1, 5, 2, 18, 6, 7, 8, 17, 3, 4, 9.
-Kassandro ofrece la siguiente clasificacin de los modos con respecto a la compresin, de las de
mayor ganancia compresin a las de menos: 4, 17, 9, 8, 3, 7, 6, 2, 5, 1.
-Se puede incluso utilizar diferentes modos para la luminancia y la croma
-Utilizarlo 2 veces seguidas es totalmente valido, igualmente el filtro es muy rapido por lo que no
debe influir demasido en la velocidad, ej:
RemoveGrain(mode=17).RemoveGrain(mode=17) o incluso cambiando de modos
RemoveGrain(mode=17).RemoveGrain(mode=2), etc

Modos:
Modo 0= No hace filtrado, solo sirve cuando se buscar filtrar ciertas partes (por ejemplo si solo se
desease filtrar la luminancia y no la croma, o viceversa).
Modo 1= No parece hacer practicamente efecto o al menos mis ojos no lo perciben, segun su autor
da el mismo efecto que el filtro Undot. Por supuesto no hay ningun riesgo de crear artifact ni de
atacar lineas y detalle fino.
Modo 2= Parece tener un infimo efecto sobretodo se puede apreciar sobre los bordes pero es tan
debil que es dificil darse cuenta. Los riesgos siguen siendo nulos como el modo anterior.
Modo 3= Limpia grano moderadamente pero ataca un poco las lineas delgadas y detalle fino.
Modo 4= Segun Kassandro es el que obtiene mayor compresibilidad pero tiene un gran riesgo de
crear artifact y destruir lineas. En mi caso personal limpio bastante bien el grano en general pero
algunas lineas y detalles muy finos fueron literalmente "devorados", incluso me aparecio un efecto
parecido al "dientes de sierra" en una linea que era parte de la curvatura de una letra.
http://www.mundodivx.org/foro/index.php?topic=37925.0

40/152

24/4/2015

Manual AviSynth

Modo 5= Diseado para ser piadoso con las lineas (incluido sus extremos) y detalles finos pero a
causa de eso no parece tener un gran poder de limpieza de grano.
Modo 6= Diseado con el mismo fin que el modo anterior, tiene una leve mejora en la limpieza de
grano y mantiene muy bien las lineas aunque a veces se come un poco los puntos finales de la
lineas.
Modo 7= Limpia mas grano que el modo 6 intentando conservar las lineas y el detalle fino, de
hecho lo logra bastante bien aunque se come mas los pixeles finales de las lineas que el anterior.
Modo 8= Limpia un poquito mas de grano que el anterior a costo de seguir perdiendo pixeles en
los extremos de las lineas.
Modo 9= Limpia mas grano que los modos del 5 al 8 pero tiene graves problemas con las lineas y
detalles finos, aunque no tanto como el modo 4.
Modo 10= Este modo no se menciona en ninguna parte de la documentacion del Remove grain
pero segun mis pruebas da un resultado muy curioso, no solo no limpia el grano sino que parece
acentuarlo ms, sobretodo en los bordes y lineas...
Modo 11= Se diferencia bastante de los otros modos ya que parece darle un efecto "Blur" al video.
Este modo fue reemplazado por el modo 12
Modo 12= Es un reemplazo del modo 11, el efecto "blur" o de "desenfoque" parece ser el mismo
pero este modo es bastante mas rapido que el anterior.
Modo 13 al 16= Son modos de "Bob" para fuente entrelazada, parece que de 13 a 16 cada modo
que voy avanzando limpia un poquito mas de grano pero genera algunos artifacts y tiene
problemas con lineas muy finas, el tema de desentrelazados escapa totalmente a mis
conocimientos por lo que me abstengo de seguir opinando.
Modo 17= Vendria a ser el modo inteligente, actua como el 4 pero se adapta a las lineas y detalles
finos cambiando automaticamente a un modo mas suave. Conlleva un riesgo moderado de
artifacts.
A mi me agrado sue resultado, limpio bien el grano sin devorarme las lineas aunque me suavizo un
poquito la imagen y se comio algunos pixeles de los extremos de las lineas, se puede ganar una
gran compresibilidad con el. Supongo que un buen Sharpen no deberia tener problemas en
arreglarlo.
Modo 18= Es como el modo 17 pero mantiene mucho mejor los pixeles en los extremos de las
lineas, ademas ese efecto de suavizado del modo 17 casi no se distingue en este modo. Lo malo
es que no limpia tanto grano como el anterior.
Bueno, las pruebas las hice con AvsP para no andar recomprimiendo y por supuesto siempre tome
el mismo frame como referencia.
Si quieren chequear las fotos que exporte con AvsP con las que fui comparando los distintos
modos, quiz ustedes encuentren algo en lo que me equivoque o sino ampliar un poco mas la
descripcin de alguno de ellos.
Aca les dejo el Pack de fotos.
http://www.mundodivx.org/foro/index.php?topic=37925.0

41/152

24/4/2015

Manual AviSynth

Denoisers Temporales
En este caso el analisis que determina como se filtra un determinado pixel se realiza sobre pixeles
en la misma posicion pero de frames anteriores y posteriores.
En este caso el radio del analisis se mide en frames.
Este modo de filtrado suele ser menos agresivo que el espacial pero tambien mas amable con el
detalle, y por ello recomendado para bajos niveles de ruido.

TemporalSoften
[YUY2-Y8-YV411-YV12-YV16-YV24]
Filtro interno (incluido con AviSynth).
Sintaxis:
TemporalSoften(radius,luma_threshold,chroma_threshold,scenechange,mode)
El valor de radius afecta directamente la velocidad del filtro, a mayores valores el filtro compara el
pixel con sigo mismo en mayor cantidad de frames adyacentes. Por supuesto el aumento de este
valor reduce drasticamente la velocidad pero tambien aporta una calidad superior dado que le
permite al filtro identificar con mas precision que es y que no es ruido, en teoria permitiendo una
mayor conservacion de detalle.
luma_threshold y chroma_threshold representan la intensidad de aplicacion para luminancia y
crominancia respectivamente.
Por defecto en mode=1, se puede setear en mode=2 para aprovechar un mejor desempeo del
filtro temporal(mejor calidad y mayor velocidad).
scenechange permite fijar un valor limite para no procesar imagenes involucradas en cambios de
escena. El valor representa el cambio promedio de los pixeles entre frames. Un rango
recomendado es 5<scenechange<30.
Ejemplo de un buen punto de partida extraido de la wiki:
TemporalSoften(4,4,8,scenechange=15,mode=2)
Ejemplos sugeridos por piscator:
Temporalsoften(2,3,3,mode=2,scenechange=6) (suave)
http://www.mundodivx.org/foro/index.php?topic=37925.0

42/152

24/4/2015

Manual AviSynth

Temporalsoften(3,5,5,mode=2,scenechange=10) (medio)
Temporalsoften(4,8,8,mode=2,scenechange=10) (fuerte)

Temporal Degrain
Se trata de una funcin que ofrece una calidad excelente de filtrado de ruido, pero es muy lenta al
momento de encodear debido a los plugins pesados que utiliza.
Necesita los siguientes plugins:
-RemoveGrain y Repair
-MaskTools v2
-MVTools2
-FFT3DFilter o FFT3DGPU
-HQdn3D
Sintaxis por defecto: TemporalDegrain(denoise=null, GPU=false, sigma=16, bw=16, bh=16, blksize=8,
pel=2, ov=0, degrain=2, SAD1=300, SAD2=300, HQ=1)
-GPU: Activa el uso o no de la version GPU del FFT3DFilter, si se quiere activar se escribe true o si
se quiere desactivar se pone false
-sigma: Es el parmetro que regula la fuerza de filtrado del FFT3D, segn su documentacin
funciona bien para la mayora de los casos, aunque a simple vista me parece un valor excesivo
(voy a hacer pruebas)
-bw: Parmetro del FFT3D, indica el bloque de ancho (para mas detalle ver explicacin en el
FFT3DFilter)
-bh: Parmetro del FFT3D, indica el bloque de alto (para mas detalle ver explicacin en el
FFT3DFilter)
-blksize: Parmetro del MAnalyse, indica el tamao de los bloques horizontales. Estos podran ser
4, 8 o 16. Bloques mas grandes son menos sensibles al ruido, mas rpidos pero menos precisos.
-pel: Parmetro del MAnalyse, indica la precisin de la estimacin de movimiento. Los valores
podran ser 1, 2 o 4... siendo 1 una precisin de un frame entero, 2 la precisin de medio pixel y 4
la precisin de un cuarto de pixel, valor por defecto 2 y el ideal entre velocidad y calidad.
-ov: Parmetro del MAnalyse, indica el solapamiento de bloques.
-degrain: Parametro del MDegrain, es para seleccionar que modo del MDegrain se va a utilizar
(MDegrain1, MDegrain2, MDegrain3, ver explicacin del filtro MVTools+MDegrain para mas detalle)
-SAD1: Parametro del MDegrain, equivaldra a thSAD etapa 1 (no se a que se refiere con etapa 1)
-SAD2:IDEM Anterior pero etapa 2 (tampoco se a que se refiere con etapa 2)
http://www.mundodivx.org/foro/index.php?topic=37925.0

43/152

24/4/2015

Manual AviSynth

-HQ: Ajusta el nivel de filtrado, 0 deshabilita el prefiltrado, 1 agrega la etapa de prefiltrado, y 2


ademas del prefltrado agrega una paso posterior a la limpieza de ruido
Descarga y documentacion
NOTA: Hay 5 scripts distintos, 1 es el original y los otros 4 son variantes. Para aquellos que tengan
una PC multinucleo les recomiendo descargar la funcin que se llama TemporalDenoise_MT.avsi,
obviamente deben contar con el plugin MT y la versin modificada del avisynth.dll... eso lo pueden
ver en la siguiente parte del manual.

Denoisers 3D
Estos filtros realizan un analisis tanto espacial como temporal (ver explicaciones de las
subcategorias anteriores) para decidir como se filtra en determinado pixel.
La combinacion de estos dos enfoques en teoria les da a estos filtros una importante ventaja de
calidad. Particularmente se destacan FFT3DFilter y DFTTest, dos filtros muy potentes que son
capaces de eliminar enormes cantidades de ruido con muy alta precision.

Deathray
Deathray es un filtro para quitar ruido espacial/temporal que utiliza la potencia de la GPU para
realizar el filtrado dejando libre el CPU para otro trabajo, la aceleracin de video la hace mediante
OpenCL.
Lo malo es que al ser un filtro muy nuevo (publicado en Doom9 el 17 de enero de 2011) no se
sabe a ciencia cierta que placas de video soporta y cuales no, solo algunas confirmaciones:
-Funciona en placas de video ATI HD Serie 57xx, probado con xito en una HD 5870 (del autor del
plugin, Jawor) y en mi placa ATI HD Raedon mobility 5730.
-No funciona en placas ATI de las Series 4000 o anteriores y la Serie 5400 (segn documentacin
del filtro)
-Hubo algunos problemas con las NVidias que se mejoraran en futuras versiones, aunque
conviene que cada uno haga la prueba si le funciona o no.
-Las placas deben ser bastante modernas y potentes
Sintaxis por defecto:
http://www.mundodivx.org/foro/index.php?topic=37925.0

44/152

24/4/2015

Manual AviSynth

Deathray(hY=1.0, hUV=1.0, tY=0, tUV=0, s=1.0, x=1)

hY: Fuerza de filtrado de la luminancia, el valor 0 desactiva el filtrado de luma... valores negativos
no se aceptan.
hUV: Fuerza de filtrado de ambos canales (U,V) de la crominancia, el valor 0 desactiva el filtrado de
croma... valores negativos no se aceptan.
tY: Cantidad de frames adelante y atras a tener en cuenta para un filtrado temporal de la
luminancia, va de un rango de 0 a 64. El valor 0 desactiva el filtrado temporal dejando el filtro solo
espacial.
tUV:Cantidad de frames adelante y atras a tener en cuenta para un filtrado temporal de la
crominancia, va de un rango de 0 a 64. El valor 0 desactiva el filtrado temporal dejando el filtro
solo espacial.
El filtro por defecto da un excelente resultado, mantiene bien el detalle aunque se le puede ir la
mano en alguna parte, quiza seria mejor optimizarlo activando el filtrado temporal
Hilo oficial en doom9 (en ingles)

DeGrainMedian
[YV12-YUY2]
Su nombre lo dice todo, un denoiser espacio-temporal para eliminar grano. Rpido y efectivo.
Cmo se usa y valores por defecto:
DeGrainMedian(limitY=4, limitUV=6, mode=1)
Valores posibles: para limitY(luma) [0-255], limitUV(chroma) [0-255] y mode [0 fuerte - 5 dbil].
Buenos valores (de ms dbil a ms fuerte)
DeGrainMedian(limitY=2,limitUV=3)
DeGrainMedian(limitY=3,limitUV=7)
DeGrainMedian(limitY=2,limitUV=3).DeGrainMedian(limitY=2,limitUV=3)
DeGrainMedian(limitY=3,limitUV=7).DeGrainMedian(limitY=3,limitUV=7)
Descarga y Documentacin

http://www.mundodivx.org/foro/index.php?topic=37925.0

45/152

24/4/2015

Manual AviSynth

DFTTest
[YV12-YUY2]
Muy potente y preciso, pero lento. Funcionamiento similar a FFT3DFilter.
Sintaxis y valores por defecto:
DFTTest(Y=true, U=true, V=true, sigma=16.0, sbsize=12, sosize=9, smode=1, tbsize=5, tmode=0,
tosize=0, dither=0, threads=0, opt=0)
Se puede usar por defecto y ya logra exelentes resultados en videos muy ruidosos:
DFTTest()
Aunque lo mas comun es que requieran reducir la fuerza de filtrado si se trata de un video
relativamente limpio. Si ven que limpia mucho detalle reducen el valor de sigma.
Por ejemplo, para una limpieza de muy alta calidad (muy lenta) sobre un video bastante limpio,
pueden probar:
DFTTest(sigma=4)
Con Y, U y V se activa o desactiva el filtrado de los planos de luminancia, chroma_U y chroma_V
respectivamente.
sigma regula la fuerza del filtrado.
sbsize es el tamao del bloque(en pixeles) que se usa para muestrear el frame, a menor valor un
filtrado mas preciso(se conserva mas detalle) pero mas lento, y viceversa. sosize regula el overlap
o solapamiento entre bloques, por supuesto no puede ser mayor que sbsize-1 y de ser mayor a
sbsize/2 el resultado de la resta sbsize-sosize debe ser multiplo de sbsize,
asi dice en la docu.
smode=1 indica que se usa el esquema de filtrado espacial de bloques y solapamiento. Pero
puede ser cambiado a smode=0, lo que involucra que el filtro se mueva pixel por pixel y se
transforme en algo ridiculamente lento, aunque tambien ultra preciso. En este modo no hay
solapamiento y el valor de sbsize debe ser impar.
El radio del filtrado temporal se fija con tbsize, que es la cantidad de frames tomados en cuenta
alrededor del que se esta filtrando. Minimo tbsize=1, que equivale a filtrado solo espacial.
Desde la version 1.8 el filtro ofrece la posibilidad de aplicar dithering cuando es creado el
resultado. El dithering consiste en aproximar un color desconocido mediante la mezcla de otros
colores conocidos y es util para contrarrestar el efecto banding (ver categoria Restauracion). Por
defecto esta etapa del filtrado se encuentra desactivada. Se activa con valores mayores que cero
y existen dos modos de operacion: dither=1, que deberia ser suficiente para remover el banding
introducido por la aplicacion del filtro; dither=>2 (hasta 100), que aplica el mismo metodo de
dithering pero agregando una cierta cantidad de ruido aleatorio previo (mas cuanto mayor sea el
valor del parametro), lo que sirve para mejorar la efectividad y se puede utilizar para reducir el
http://www.mundodivx.org/foro/index.php?topic=37925.0

46/152

24/4/2015

Manual AviSynth

banding ya presente en el video antes de la aplicacion de DFTTest.


Se pueden usar dos metodos de filtrado temporal: tmode=0 filtra frame por frame, centrandose en
cada uno y desplazandose hacia ambos lados segun tbsize. En cambio con tmode=1 se procesan
bloques de frames de tamao tbsize, cuyo solapamiento es el valor tosize. La diferencia pasa por
la velocidad y precision siendo mas preciso pero mas lento tmode=0.
threads establece el numero de hilos en que se divide el procesamiento. Un valor de "0" implica
que el filtro los fija automaticamente segun el numero de procesadores(nucleos) detectados. A su
vez puede elegirse el nivel de optimizacion de las instrucciones usando el parametro opt cuyo
valor por defecto sirve para autodeteccion (otros valores posibles: "1"->rutinas C; "2"->SSE; "3">SSE2).
El filtro posee opciones de configuracion mas avanzadas, incluyendo la posibilidad de analizar el
video en busca de un patron de ruido y con el optimizar el filtrado "enseandole" al filtro a
localizarlo.
Importante: para funcionar requiere que libfftw3f-3.dll
(http://www.fftw.org/install/windows.html) este presente en C:\Windows\System32.
Descarga (documentacion incluida)

FFT3DFilter
[YV12-YUY2]
Elimina ruido conservando la nitidez de la imagen (incluso aplicndolo fuerte). Mejora muchsmo la
compresibilidad.
Tambien ofrece una funcion de sharpen.
Sintaxis y valores por defecto:
FFT3DGPU(sigma=2.0, bt=3, plane=0, bw=32, bh=32, ow=bw/3, oh=bh/3)
Cmo se usa:
FFT3DFilter() -> config estandar que va bien para muchos casos
FFT3DFilter(bt=5, sharpen=0.5, plane=4, ow=16, oh=16) -> opcion potente y de alta calidad, pero
lenta, ideal para videos muy ruidosos.
Parametros:
Se pueden cambiar los valores de sigma para la fuerza del filtrado (1.0<sigma<1.5 dbil,
http://www.mundodivx.org/foro/index.php?topic=37925.0

47/152

24/4/2015

Manual AviSynth

2.0<sigma<2.5 medio, sigma=3.0 fuerte, sigma>3 ms fuerte). Es el parmetro ms importante,


ojo con aumentarlo porque el filtro es muy potente.
Tambin el plane. Por defecto plane=0 solo pilla la luma, si ponemos plane=4 pilla luma y croma.
Se pueden cambiar los valores de bt desde 2 a 5 (a mayor valor ms frames sern tenidos en
cuenta en el filtrado temporal). Si colocan bt=1 el filtro pasa a ser solo espacial o 2D. Es
interesante mencionar que con el filtro funcionando solo en modo espacial la fuerza del mismo
aumenta, es decir que se filtra mayor cantidad de ruido, especialmente en areas oscuras y/o de
poco detalle. Sin embargo tambien se pierde detalle fino, como texturas. El termino medio se
alcanza usandolo por defecto, aumentar el radio temporal hara que se salve mas detalle pero
tambien se conservara mas ruido en ciertas areas. Usenlo como mas les guste.
bw y bh son las dimensiones (ancho y alto) del bloque que usa el filtro para el muestreo del video,
se pueden bajar para mejorar la calidad y aumentar la limpieza de ruido.
Tambien se pueden editar los valores de ow y oh (el overlap o solapamiento entre bloques en el
muestreo), que por defecto dependen de bw y bh como pueden ver en la sintaxis. Para mejorar la
calidad se deben subir estos valores y por supuesto se pierde en velocidad (y viceversa), sin
embargo el filtro tiene una limitacion y no se permite que 2*ow>bw y/o 2*oh>bh, asi que ojo con
eso.
Se puede usar la funcin sharpen, desactivada por defecto. Si se usa, los valores estn entre 0.3
y 1.0; Su aplicacion aporta una ganancia notable de nitidez sin ruido extra, muy recomendable.
Como podis ver en la documentacin tiene decenas de opciones ms, que hacen de este filtro
uno de los mejores.
ojo al instalar!
Se debe colocar el archivo fftw3.dll (que pueden descargar de
Cdigo: [Se le ccionar]
ftp://ftp.fftw.org/pub/fftw/fftw3win32mingw.zip

) en C:\Windows\System32. El filtro no funciona sin el.


Descarga y Documentacin

FFT3DGPU
[YV12-YUY2]
Version del filtro FFT3DFilter con capacidad para aprovechar la GPU (placa de video) para el
procesamiento.
Requerimientos:
http://www.mundodivx.org/foro/index.php?topic=37925.0

48/152

24/4/2015

Manual AviSynth

-> DirectX 9.0c o superior (version de abril del 2006 en adelante).


-> Placa de video con soporte DirectX 9 por hardware. En el caso de Nvidia de la linea FX5xxx en
adelante, recomendandose de 6xxx en adelante. En cuanto a ATi, de 95xx en adelante.
Sintaxis:
FFT3DGPU(sigma, bt, sharpen, plane, ow, oh)
Los parametros son los mismos que en el filtro FFT3DFilter.
Tambien requiere del archivo fftw3.dll.
Descarga y Documentacion

FluxSmooth
Sencillo filtro de ruido espacio-temporal. No particularmente efectivo, limpia mas detalle del que
deberia a pesar de ser un filtro 3D, y de los mas suaves. Sin embargo parece resultar util para
limpiezas muy ligeras y mejorar la compresibilidad.
Sintaxis y valores por defecto:
FluxSmoothT(temporal_threshold=7) -> filtrado solo temporal.
FluxSmoothST(temporal_threshold=7, spatial_threshold=7) -> filtrado espacial y temporal.
Los unicos parametros que se pueden configurar representan la fuerza del filtrado temporal y
espacial por separado.
Para limpiar muy suavemente y evitar perder detalle de mas, aunque bastante efectivo,
particularmente sobre bordes:
FluxSmoothST(2,2)
Descarga y Documentacion

STMedianFilter
Este plugin realiza un filtrado espacial y temporal con cierta compensacion del movimiento.
No lo veo particularmente muy preciso, lo cual es consistente con que utiliza un modo de
http://www.mundodivx.org/foro/index.php?topic=37925.0

49/152

24/4/2015

Manual AviSynth

funcionamiento bastante simple. Por lo que no esperen que sea muy considerado con el detalle.
Segun mis observaciones, asi como tambien lo que se describe en la documentacion, el filtro esta
regulado para suavizar solo ruido muy fino, por lo que pareceria recomendable para ocasiones
donde se desee alguna leve ganancia de compresibilidad (quizas un 5%) o como apoyo en alguna
etapa de filtrado mas completa. Por ejemplo, se me ocurre que podria usarse para una primera
limpieza muy fina, para luego pasar a aplicar algo mas potente y de mayor calidad.
Sintaxis y valores por defecto:
STMedianFilter(8,15,4,7)
El filtro basicamente compara los valores de luminancia y crominancia de un determinado pixel con
aquellos de los pixeles inmediatos adyacentes (tanto en el espacio como en el tiempo), para luego
modificar el valor de dicho pixel y que este quede dentro de cierto rango definido por los pixeles
adyacentes.
Entonces, el primer parametro regula la agresividad espacial, ya que establece el maximo cambio
que puede sufrir el pixel al ser filtrado espacialmente. Es decir que si los pixeles adyacentes son
muy diferentes, el pixel no sera filtrado a no ser que se aumente este parametro. Tengan en
cuenta que un aumento desmedido causara perdida de detalle fino con altos contrastes, siendo
que este tipo de detalle se sustenta en variaciones altas de los valores de pixeles adyacentes.
El segundo parametro regula la agresividad sobre bordes, de la misma forma que el anterior. El
filtrado parece ser mucho menos sensible a este parametro. Evidentemente el plugin debe poseer
algun algoritmo de deteccion de bordes, sino seria lo mismo que el parametro anterior.
Ya en el tercer parametro se trata de la agresividad en el filtrado temporal, de una forma similar al
primero salvo porque ahora la comparacion es con los pixeles adyacentes en el tiempo (frames
anterior y posterior). Aqui conviene usar siempre valores bajos (no mayores a 10) para evitar el
efecto fantasma.
Y por ultimo el cuarto limita el filtrado segun la compensacion de movimiento, a mayores valores
mayor filtrado pero tampoco conviene pasarse de 10 para evitar el efecto fantasma.
Descarga

Denoisers Temporales con Compensacion de


Movimiento
Se trata de analizar y detectar el movimiento del video para asi realizar una limpieza temporal mas
precisa.
http://www.mundodivx.org/foro/index.php?topic=37925.0

50/152

24/4/2015

Manual AviSynth

MVTools+MDegrain
MVTools es un plug-in de avisynth que incluye varias herramientas. El MVAnalyse se usa para la
estimacin y compensacin de los objetos en movimiento de un video. Se basa en vectores de
movimiento, los mismos que usa el cdec XVID p.ej. a la hora de trabajar, lo que permite hacer
una limpieza temporal mejor.
Se puede usar la funcin MVAnalyse junto con cualquier denoiser, pero lo normal es usar los
filtros MDegrain1 , MDegrain2 o MDegrain3. Este filtro trabaja teniendo en cuenta las una, dos o
tres frames anteriores y la una, dos o tres frames posteriores, con lo que la limpieza es mucho
ms precisa. Limpia sin apenas alterar la imagen y es el que mejora ms la compresibilidad de un
video.
Cmo se usan:
Se carga el mvtools2.dll (ver introduccion a filtros externos) y copiamos del siguiente script una de
las tres partes, segn queramos usar el MDegrain1, 2 o el 3
MVTools con MDegrain1
super = MSuper()
backward_vec1 = MAnalyse(super, isb=true, delta=1, overlap=4)
forward_vec1 = MAnalyse(super, isb=false, delta=1, overlap=4)
MDegrain1(super, backward_vec1, forward_vec1, thSAD=300, thSADC=400)
MVTools con MDegrain2
super = MSuper()
backward_vec2 = MAnalyse(super, isb=true, delta=2, overlap=4)
backward_vec1 = MAnalyse(super, isb=true, delta=1, overlap=4)
forward_vec1 = MAnalyse(super, isb=false, delta=1, overlap=4)
forward_vec2 = MAnalyse(super, isb=false, delta=2, overlap=4)
MDegrain2(super, backward_vec1, forward_vec1, backward_vec2, forward_vec2, thSAD=300,
thSADC=400)
MVTools con MDegrain3
super = MSuper()
backward_vec3 = MAnalyse(super, isb=true, delta=3, overlap=4)
backward_vec2 = MAnalyse(super, isb=true, delta=2, overlap=4)
backward_vec1 = MAnalyse(super, isb=true, delta=1, overlap=4)
http://www.mundodivx.org/foro/index.php?topic=37925.0

51/152

24/4/2015

Manual AviSynth

forward_vec1 = MAnalyse(super, isb=false, delta=1, overlap=4)


forward_vec2 = MAnalyse(super, isb=false, delta=2, overlap=4)
forward_vec3 = MAnalyse(super, isb=false, delta=3, overlap=4)
MDegrain3(super, backward_vec1, forward_vec1, backward_vec2, forward_vec2, backward_vec3,
forward_vec3, thSAD=300, thSADC=400)
Lo nico que debemos variar es el valor de thSAD y thSADC (unmbral para el filtrado de luma y
chroma). Recordad que se puede aplicar ms fuerte a la chroma sin que afecte a la imagen.
Valores orientativos, despus cada uno que pruebe:
100
200
300
400

para
para
para
para

las
las
las
las

fuentes excelentes
muy buenas
buenas
normales-limpia ms fuerte (es el valor por defecto)

En la docu se explican el resto de opciones, pero por defecto van muy bien.
Descarga y Documentacin

TTempSmooth
[YV12-YUY2]
Filtro temporal adaptativo al movimiento (solo trabaja en zonas estaticas de la imagen), y usa
valores de referencia en frames anteriores y posteriores (hasta un mximo de 15!, 7 de cada
lado). Tiene su tiempo pero se sigue usando.
Cmo se usa y valores por defecto:
TTempSmooth(maxr=3, LThresh=4, CThresh=5, scthresh=12.0, debug=false, interlaced=false)
Valores posibles para maxr: de 1(menos frames, ms rapidez, menos calidad) a 7(ms frames,
menos rapidez, mas calidad).
LThresh, CThresh: limite de luma y chroma, rango: 1 a 256.
Para regular la sensibilidad de deteccion de cambio de escena se ofrece el parametro scthresh.
Para ver que frames estan siendo detectados como cambio de escena, y asi poder ajustar este
valor de forma optima segun el video, pueden usar debug=true. Para monitorear la informacion
que el filtro entrega pueden usar la utilidad DebugView.
http://www.mundodivx.org/foro/index.php?topic=37925.0

52/152

24/4/2015

Manual AviSynth

Para aplicar sobre video YV12 entrelazado, interlaced=true. No tiene efecto si el video es YUY2,
dado que no hace falta.
Descarga y Documentacin
ltima modificacin: 10 de Noviembre de 2013, 15:07 por LUCHOO

En lnea

Encuentra los mejores manuales en la web: www.mundodiv x.com/manuales.php

Restauracin

888
Moderador

Respuesta #4: 07 de Noviembre de 2009, 04:04

Desconectado

Registrado: 26/06/2006
Mensajes: 8.872
Valoracin: 8
Sexo:

Filtros para Debanding


El banding se presenta sobre zonas del video donde hay una variacion de color suave o gradual.
El artifact o efecto indeseable consiste en bandas de colores solidos bien definidas en vez de una
variacion de color continua, producto de una representacion con menos bits de los necesarios.
Para ilustrar mejor este efecto ver imagen.
Entonces los filtros dentro de esta subcategoria se ocupan de suavizar la transicion entre estas
bandas, tratando de restaurar el gradiente de color.
Quizas enfocados mayormente a post-proceso, es decir para filtrar durante la reproduccion, dado
que si los usan para corregir el efecto y luego comprimir, el encoder es muy probable que vuelva a
generar los artifacts al reducir la cantidad de bits como parte de la compresion. De todas formas
basta que prueben y llegado el caso se podria aumentar la fuerza del filtro para ver si el efecto se
conserva.

GradFun2db
[YV12-YUY2-RGB24-RGB32]
Filtro basico para debanding.
Sintaxis:
GradFun2db(thr)
thr(valor real) regula la fuerza del filtro, por defecto en "1.2"

http://www.mundodivx.org/foro/index.php?topic=37925.0

53/152

24/4/2015

Manual AviSynth

Descarga

GradFun2DBmod
Esta funcion, que se basa en el filtro anterior, ofrece una mayor calidad y funcionalidad. La mayoria
de los scripts que son capaces de aplicar debanding hacen uso de esta funcion.
Filtros requeridos:
GradFun2db
AddGrainC
MaskTools2
RemoveGrain
Agregar ruido de grano (AddGrainC) ayuda a disimular mejor el efecto, y me parece que tambien
ayuda a evitar que ocurra de nuevo en futuras compresiones.
Sintaxis y valores por defecto:
GradFun2DBmod(thr=1.2, thrC=thr, str=0.8, strC=0.0, temp=50,
custom="tu_generador_de_grano_favorito", show=false, screenW, screenH)
Los parametros que fijan la intensidad de aplicacion son thr y thrC para luma y chroma
respectivamente.
La intensidad del grano generado se puede configurar con los parametros str y strC para luma y
chroma respectivamente. Estos representan los parametros var y uvar del filtro AddGrainC.
temp es el parametro seed de AddGrainC, que regula la estabilizacion temporal del grano
generado y sirve para lograr un ruido de grano desde mas aleatorio (0) a mas estatico (100). Un
valor de -1 desactiva dicha estabilizacion.
Pueden usar el plugin generador de grano que prefieran, asi: custom="GrainFactory3()", pudiendo
tambien agregar otros filtros en cadena separandolos por puntos, por ejemplo para usar
supersampling:
custom="spline36resize(resolution*2).addgrain(xx,0,0).spline36resize(resolution)".
Con show=true a la salida se obtiene una comparacion donde se puede observar el frame original
y el frame filtrado, junto a las diferencias entre ellos mostradas graficamente, asi como tambien los
valores fijados para todos los parametros. Esto constituye una exelente herramienta de ayuda
para la configuracion del filtro.
screenH y screenW son las resoluciones, vertical y horizontal respectivamente, de la salida cuando
esta activa la comparacion con show=true.

http://www.mundodivx.org/foro/index.php?topic=37925.0

54/152

24/4/2015

Manual AviSynth

Descarga y discusion en doom9

Filtros para Deblocking


Seguro ya habran notado esos feos bloques que aparecen en los videos comprimidos con los
codecs mas modernos, que se hacen mas notables cuanto mas sobrecomprimido este el video.
Ya se imaginaran para que sirven los filtros de esta subcategoria, pues si, se ocupan de remover a
los nefastos bloques.

BlindPP
Buen filtro de bloques, potente y efectivo. Logra aniquilarlos con muy poca perturbacion del
detalle, y ya que esta en eso limpia buena parte del ruido en general que pudiera haber, asi como
tambien ofrece la posibilidad de filtrar ruido en bordes (ringing).
Como localiza los bloques por su tamao, debe ser aplicado antes de cualquier etapa de crop o
resize para evitar que estas los deformen.
Sintaxis y valores por defecto:
BlindPP(quant=2, cpu=6, iPP=false, moderate_h=20, moderate_v=40)
Para que ataque exclusivamente a los bloques se debe usar cpu=4. Valores menores (hasta 0)
reducen la efectividad del deblocking. cpu=5 activa filtrado extra de ruido de Luma en bordes
(deringing), y cpu=6 incluye tambien chroma. Aunque el filtro realiza un exelente trabajo solo con
la funcion deblocking.
La fuerza se fija con quant, y va desde 0 a 31.
Usan iPP=true unicamente si su video es entrelazado.
moderate_h y moderate_v (ambos desde 0 a 255) son limites para establecer hasta donde se
filtra. Aumentar estos valores permite una menor agresividad (se filtran menos bloques, pero
puede ayudar a conservar mas detalle), y viceversa.
Ejemplo:
Para filtrado de bloques y ruido en general, relativamente fuerte:
BlindPP(quant=4, cpu=4)
Descarga
http://www.mundodivx.org/foro/index.php?topic=37925.0

55/152

24/4/2015

Manual AviSynth

Deben descargarse el paquete DGMPGDec, donde viene incluido dentro del archivo DGDecode.dll.
Se usa dicho archivo como plugin.

DeBlock
[YV12-YUY2]
Utiliza el filtro para deblocking presente en la decodificacion de H264.
Es conveniente aplicarlo antes de cualquier resize o crop, para evitar alterar los bloques y dificultar
o impedir su localizacion.
Sintaxis:
Deblock(quant,aOffset,bOffset)
quant(valor entero, rango: 0 a 60) regula la fuerza del filtro. Por defecto es 25.
aOffset(entero) modifica el limite de deteccion de bloques, a mayores valores el filtro sera aplicado
tambien donde los bloques son menos visibles. Por defecto en 0.
bOffset(entero) modifica la deteccion de bloques y la fuerza del filtro, a mayores valores mas
fuerte es la aplicacion. Por defecto en 0.
Si quant+aOffset es menor de 16 el filtro no hace nada.
Descarga y Documentacion

DeBlock_QED
Esta funcion filtra los bloques distinguiendo el borde de los mismos y su interior, para realizar un
filtrado mas fuerte sobre el contorno de los bloques, mientras se evita un filtrado excesivo en su
interior.
Como el objetivo de la funcion es preservar una mayor cantidad de detalle debilitando el filtrado
en el interior del bloque, es mejor usarla en videos ligeramente sobrecomprimidos o que no
tengan presencia de bloques demasiado notable.
Es conveniente aplicarlo antes de cualquier resize o crop, para evitar alterar los bloques y dificultar
o impedir su localizacion.
Filtros requeridos:
MaskTools2
http://www.mundodivx.org/foro/index.php?topic=37925.0

56/152

24/4/2015

Manual AviSynth

DeBlock
DCTFilter
Sintaxis y valores por defecto:
DeBlock_QED(quant1=24, quant2=28, aOff1=2, bOff1=4, aOff2=4, bOff2=8, uv=3)
quant1: fuerza de filtrado en bordes de bloques.
quant2: fuerza de filtrado en interior de bloques.
aOff y bOff representan los mismos parametros ya explicados en el filtro DeBlock(mas arriba),
pudiendose regular para los bordes(1) o interior(2) de bloques por separado.
uv=3 aplica la funcion a chroma. Un valor de 2 no filtra chroma. Y valores de -1 o 1 aplican un
filtrado convencional con el filtro DeBlock, fuerte o normal respectivamente. Es decir que para que
la funcion sea aplicada a la crominancia, debe usarse como viene por defecto.
Una aplicacion del filtro por defecto ya aporta buenos resultados:
DeBlock_QED()
Descarga (Click derecho->Guardar como)

SmoothD
Este filtro esta un poco viejo y su desarrollo fue abandonado en etapas muy tempranas sin
llegarse a una version estable.
A pesar de todo se las arregla bastante bien para eliminar los bloques produciendo resultados
mas que satisfactorios para su rapida velocidad.
Tambien puede usarse como denoiser general, aunque habiendo mejores y mas nuevas opciones
en ese rubro yo lo recomiendo exclusivamente para eliminar bloques.
Sintaxis:
SmoothD(quant=3, num_shift=4, adaptive_shift=0, zero_weight=1)
La fuerza se fija con quant, desde 1 a 31. A mayor valor mas fuerza.
El tipico parametro para canjear velocidad por calidad esta presente en num_shift, que a mayor
valor da mas calidad pero menor velocidad. Va desde 1 a 8.
adaptive_shift (0 o 1), de activarse (1), regula el valor de num_shift respecto del valor de quant,
supongo que para permitir una mejor relacion calidad/velocidad, aunque quizas sea mejor que lo
hagan manualmente.
http://www.mundodivx.org/foro/index.php?topic=37925.0

57/152

24/4/2015

Manual AviSynth

De aumentarse zero_weight los bloques son atacados con menos agresividad, lo que puede servir
para una mayor conservacion de detalle.
Ejemplo:
Para un video con bloques bien visibles esta linea parece hacer un buen trabajo:
SmoothD(quant=5, num_shift=8)
Descarga y Documentacion

UnBlock
Fuerte filtro de bloques, para videos moderada a fuertemente sobrecomprimidos.
En mis pruebas observe que es muy efectivo en areas de bajo nivel de detalle, pero donde los
bloques aparecen sobre detalle mas fino el filtro distorsiona mucho, y de nada sirve si va a
generar mas ruido del que elimina. Reservenlo para videos muy feos.
Sintaxis:
Unblock(chroma, photo, cartoon)
Por defecto: chroma=true, photo=false, cartoon=false.
chroma=false desactiva el filtrado sobre la crominancia (informacion de color).
Se puede colocar photo=true cuando se sabe que la imagen del video es "fotografica", lo que
configura al filtro mas agresivo.
Y si se aplica el filtro a un video de dibujos animados (colores solidos con alto contraste) se puede
colocar cartoon=true, lo que sirve para que el filtro sea menos agresivo.
Descarga y Documentacion

Filtros para Dehaloing y Deringing


El indeseable efecto "halo" se presenta como una banda luminosa u oscura en los bordes de alto
contraste. Usualmente es causado por pasarse con el efecto sharpen, aunque tambien puede
encontrarse nativamente, por ejemplo en DVD comerciales.
Por otro lado, los filtros para deringing son aquellos destinados limpiar el ruido que muchas veces
http://www.mundodivx.org/foro/index.php?topic=37925.0

58/152

24/4/2015

Manual AviSynth

acompaa a los bordes. La mayoria de los filtros para dehaloing tambien puede usarse para
deringing dado que su principio de funcionamiento suele ser muy similar. Por ello es que esta
subcategoria engloba ambos tipos de filtros.

DeHalo_alpha
Muy buena funcion para dehaloing, altamente efectiva, aunque suele requerir que configuren bien
sus parametros segun el video para lograr la maxima eficiencia.
Tambien pueden usarla para deringing, aunque no esperen tan buenos resultados por ese lado.
Filtros requeridos:
MaskTools2
Repair (parte del paquete RemoveGrain)
Sintaxis y valores por defecto:
DeHalo_alpha(rx=2.0, ry=2.0, darkstr=1.0, brightstr=1.0, ss=1.5)
rx y ry es el radio de aplicacion del filtro, horizontal y vertical respectivamente. La funcion es muy
sensible a este parametro asi que no se aparten mucho de los valores por defecto. Un valor de
1.0 desactiva el filtrado en esa direccion. Basicamente este parametro permite regular el tamao
de los halos y asi evitar filtrar de mas y perder contraste (detalle) o quedarse corto y dejar pasar
halos gruesos. Es muy importante que fijen este parametro segun su video si notan que
sobrefiltra.
darkstr y brightstr es la fuerza de aplicacion del filtro para halos oscuros y brillantes
respectivamente. Yo diria que conviene bajar bastante la intensidad de aplicacion sobre halos
oscuros, dado que son los que menos molestan, ademas de que su presencia resalta contornos y
da la impresion de mayor nitidez. Quizas valores menores de 0.5 sean recomendables.
ss es el factor de supersampling, util para evitar aliansing (efecto serrucho en bordes).
Descarga

EdgeCleaner
Funcion para deringing y dahaloing. Es efectiva para ambos tipos de artifacts, aunque para halos
muy fuertes puede que se quede corta.
http://www.mundodivx.org/foro/index.php?topic=37925.0

59/152

24/4/2015

Manual AviSynth

Filtros requeridos:
aWarpSharp
MaskTools2
RemoveGrain y Repair (RemoveGrain solo para smode=1)
Deen (solo para smode=2)
Sintaxis:
EdgeCleaner(strength=8.0, rep=true, smode=0, hot=false, fix=true)
strength es la fuerza de aplicacion.
rep=true usa el filtro Repair sobre el resultado de aWarpSharp, supongo reduciendo la intensidad
de la deformacion producida por este.
smode define el modo en que la funcion busca pequeas particulas, pudiendo ser: 0-Desactivado;
1-Usando RemoveGrain; 2- Usando Deen.
hot=true activa el filtrado de "hot pixels" como se les dice en la jerga, que vendria a ser ruido muy
fino compuesto de pixeles con un color muy diferente del color que los rodea. Similar a usar el filtro
UnDot.
fix=true soluciona un bug conocido del filtro aWarpSharp.
Script de la funcion:
Spoiler

HQDering
Funcion que resulta bastante efectiva versus el efecto halo, aunque produce notable aliasing.
En cuanto a deringing, ofrece una limpieza muy ligera para no daar detalle, asi que si poseen un
video que tiene considerable ruido en bordes deberan recurrir a algo mas potente.
Filtros requeridos:
MaskTools2
Deen
Sintaxis y valores por defecto:
HQDering(strength=255, overall=0)
El valor que tiene la fuerza por defecto es el maximo que admite la funcion (0<strength<255) , asi
que quizas requieran bajarlo para evitar que resulte contraproducente.
http://www.mundodivx.org/foro/index.php?topic=37925.0

60/152

24/4/2015

Manual AviSynth

Para un efecto smooth generalizado pueden darle valores mayores que cero a overall, hasta 255.
Script de la funcion:
Spoiler

YAHR
O tambien: Yet Another Halo Reducing script.
Funcion extremadamente potente y efectiva.
Deben cuidar donde la aplican para no perjudicar al detalle. Ademas, debido al uso de
aWarpSharp, objetos pequeos se ven ligeramente deformados.
Filtros requeridos:
MaskTools2
RemoveGrain y Repair
aWarpSharp
MedianBlur
Sintaxis:
YAHR()
Eso es todo, no tiene parametros, aunque serian bienvenidos para controlar su agresividad.
Descarga (click derecho->guardar como)

Filtros para AntiAliasing


El efecto de aliasing provoca en los bordes de las imagenes pixelaciones dando el aspecto de
sierra:

http://www.mundodivx.org/foro/index.php?topic=37925.0

61/152

24/4/2015

Manual AviSynth

Para este proceso, existen funciones intrinsecamente creadas para evitar este efecto y dar
suavidad a los bordes y otras que no siendo su funcion principal, tambien lo consiguen.

SAA
Funcion antialiaser poderosa y rapida, recomedable para fuentes de calidad media a mala,
necesita plugin SangNom.
Filtros requeridos:
SangNom
Sintaxis:
SAA(SS=2, CP=true)
http://www.mundodivx.org/foro/index.php?topic=37925.0

62/152

24/4/2015

Manual AviSynth

SS regula la proporcion de SuperSampling.


CP indica si se procesa o no la croma.
Script de la funcion:
Spoiler

Residual Anti-Aliasing
Aqui otro antialiaser, al contrario de SAA() este deberia ser muy preciso y la calidad muy buena,
recomendado para calidad media a alta, es lento, deberia ser capaz de aguantar setmtmode(2), es
parecido al resultado de ediaa() pero deberia ser mas preciso y mas rapido.
Filtros requeridos:
eedi3
Sintaxis:
RAA() (no tiene parametros)
Script de la funcion:
Spoiler

SharpAAMCmod
Impresionante funcion que ofrece excelentes resultados aunque requiere una enorme cantidad de
filtros para funcionar.
Filtros requeridos:
Toon-v1.1
LSFmod
aWarpSharp2
MaskTools
MaskTools2
RemoveGrain
MVTools2
http://www.mundodivx.org/foro/index.php?topic=37925.0

63/152

24/4/2015

Manual AviSynth

EEDI2
SangNom
SharpAAMCmod(dark, thin, sharp, smooth, stabilize, tradius, aapel, aaov, aablk, aatype)
El parametro dark tiene la funcion de remarcacion de la linea. Por defecto 0.2
El parametro thin la de adelgazarla. Por defecto 10.
El parametro sharp que indica a LSFMod la funcion de enfocado (0-100). Por defecto 100.
El parametro smooth que indica a LSFMod la funcion de suavizado (0-100). Por defecto 100.
(smooth-piel melocoton-suavizado)
El parametro stabilize controla la estabilizacion de movimiento de los bordes para evitar el
parpadeo. Provoca mucha lentitud, en casos muy extremos. Por defecto true
El parametro tradius marca el radio temporal de estabilizacion (0 a 3). Por defecto 2.
El parametro aapel indica el factor de supermuestreo para clculos del vector de movimiento
cuando usamos stabilize=true. (1, 2 o 4). Por defecto 1.
El parametro aaov determina el solapamiento de los bloques para el clculo del vector de
movimiento cuando usamos stabilize=true. Por defecto 4 para SD y 8 para HD.
El parametro aablk determina el tamao de los bloques para los clculos del vector de movimiento
cuando usamos stabilize=true (4, 8 o 16). Por defecto 8 para SD y 16 para HD.
El parametro aatype indica el tipo de antialiasing, en este caso "Sangnom" o "EEDI2". Por defecto
Sangnom
Ejemplo (valores por defecto):
SharpAAMCmod(dark=0.2, thin=10, sharp=150, smooth=-1, stabilize=false, aatype="Sangnom",
aapel=1, Tradius=2)
Esta funcion esta incluida en el codigo de la funcion AnimeIVTC y puede ser cargada de forma
separada, pero si quereis podeis crear un Script .avsi por separado usando el codigo contenido en
el siguiente spoiler:
Spoiler

Filtros para Correccion de Color


Aquellos filtros que solucionan artifacts que haya sobre los colores.
http://www.mundodivx.org/foro/index.php?topic=37925.0

64/152

24/4/2015

Manual AviSynth

Colormatrix
Al convertir desde un DVD a XviD mediante AviSynth muchas veces la informacin de color de la
fuente no es interpretada correctamente. Colormatrix soluciona esto.
Cmo se usa:
En la carga del video
mpeg2source("C:\RIP\pelicula.d2v" ,info=3)
ColorMatrix(hints=true)
Si se observa mejora lo usamos. Si no, no hace falta.
Descarga y Documentacion

Filtros para Eliminar Logos


Para cuando deseen deshacerse de algun molesto logo o marca de agua que haya sobre el video.

rm_logo
Funcion que hace uso de una interesante variedad de filtros para lograr su objetivo.
Descarga (Click derecho->guardar como)
Filtros requeridos:
AVSInpaint
ExInpaint
MaskTools2
MedianBlur
RemoveGrain
TTempSmooth
http://www.mundodivx.org/foro/index.php?topic=37925.0

65/152

24/4/2015

Manual AviSynth

FFT3DFilter (solo para PP=2)


Ojo porque el filtro AVSInpaint se carga mediante el comando especial LoadCPlugin.
No se carga automaticamente con tenerlo en la carpeta de plugins por defecto.
Sintaxis y valores por defecto:
rm_logo(logomask="", loc="", cutsize="small", par=1.0, mode="both", percent=25, PP=1,
debug=false)
Parametros:
El filtro requiere de una mascara que marque donde se encuentra el logo. Dicha imagen se carga
mediante al parametro logomask. Deben indicar la localizacion de la misma entre "", por ejemplo
logomask="C\...\logo.bmp". Mas adelante se explica como se crea esta mascara.
Para evitar operar sobre la totalidad de la imagen, el filtro corta el trozo donde esta el logo.
Entonces es necesario indicarle en que parte del frame se encuentra, mediante loc, que puede
ser: "tr", "tl", "br" o "bl", respectivamente las esquinas superior derecha, superior izquierda,
inferior derecha e inferior izquierda.
Si el logo es demasiado grande pueden aumentar el area de recorte usando cutsize="medium" o
cutsize="large".
Esto lo aplican si ven que parte del logo permanece intacto, como si no hubiera sido filtrado.
par es para especificar la relacion de aspecto, por ejemplo par=16.0/9.0 o par=4.0/3.0.
Segun el tipo de logo existen 3 modos para removerlo.
Si es translucido, usan mode="deblend".
Si son colores solidos, mode="inpaint"
O una combinacion de ambos, mode="both".
PP=1, 2 o 3 activan alguno de los modos de post-proceso, con la intencion de minimizar los
artifacts resultantes de la eliminacion del logo.
Un valor de "0"(cero) desactiva esta funcion.
Habilitando debug=true la salida se transforma en un mosaico de imagenes donde se muestran
las diferentes etapas de filtrado. Ideal para comparar.
Modo de uso:

http://www.mundodivx.org/foro/index.php?topic=37925.0

66/152

24/4/2015

Manual AviSynth

Necesitan seleccionar un frame del video donde aparesca el logo, y guardarlo como imagen
.bmp (pueden usar Media Player Classic).
Lo ideal es que elijan un frame que posea el fondo negro, por ejemplo uno de los creditos,
ya que luego deben editar esa imagen .bmp, resaltar el logo con color blanco y dejar el
resto de la imagen de color negro puro.
Esta nueva imagen es la mascara que utiliza la funcion para identificar al logo, y la ruta a la
misma es la que deben colocar como valor del parametro logomask.
El primer script es mejor ejecutarlo mediante algun reproductor, y no cargarlo directamente
al programa conversor.
Esto es asi porque el filtro realiza una primera pasada de analisis sobre un trozo de video
donde la totalidad de los frames contengan el logo.
Por ello en el script aplican el filtro Trim (categoria Manipulacion de Archivos) para
seleccionar un intervalo donde estan seguros que el logo aparece en todos los frames. Esto
solo si el logo aparece o desaparece en algun punto del video.
Entonces, la primera vez que ejecuten el script el filtro realiza una pasada de analisis sobre
un deteminado porcentaje del video (o intervalo que hayan fijado con Trim), el que pueden
configurar mediante el parametro percent (entre 0 y 100 por supuesto). A mayores valores
mejor el resultado, pero procuren no pasarse de "50".
Este analisis puede tardar mucho, dependiendo del porcentaje que elijan y la resolucion del
trozo a analizar. Mientras tanto el programa reproductor aparenta estar colgado, pero
tengan paciencia.
Finalizado el analisis se crea un archivo de imagen .ebmp que contiene la informacion
recolectada y requerida por el filtro para eliminar el logo. De aqui en mas el video es
accesible (se reproduce) y aunque cierren el reproductor no es necesario un nuevo analisis
salvo cambien algun parametro (no editen la linea del filtro rm_logo).
Conformes con el resultado pueden quitar del script los comandos Trim y cargarlo al
programa conversor. Como el resultado del analisis esta contenido en la imagen .ebmp la
conversion debe empezar inmediatamente (sin analizar).
De yapa un ejemplo con imagenes incluidas:
rm_logo(logomask="H:\tallervideo\samples\logo.bmp", loc="br", par=16.0/9.0, mode="both",
percent=40, pp=2, cutsize="medium", debug=true)

http://www.mundodivx.org/foro/index.php?topic=37925.0

67/152

24/4/2015

Manual AviSynth

ltima modificacin: 24 de Enero de 2012, 01:50 por 888

En lnea

Encuentra los mejores manuales en la web: www.mundodiv x.com/manuales.php


http://www.mundodivx.org/foro/index.php?topic=37925.0

68/152

24/4/2015

Manual AviSynth

Sharpen

888
Moderador

Respuesta #5: 07 de Noviembre de 2009, 21:24

Desconectado

Filtros Sharpen
aSharp

Registrado: 26/06/2006
Mensajes: 8.872
Valoracin: 8
Sexo:

[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).
Descarga y Documentacion

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,
http://www.mundodivx.org/foro/index.php?topic=37925.0

69/152

24/4/2015

Manual AviSynth

pero no es magico, tambien distorsiona detalle fino y deforma objetos pequeos. 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.
Descarga v1
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.
http://www.mundodivx.org/foro/index.php?topic=37925.0

70/152

24/4/2015

Manual AviSynth

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).
Descarga v2

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)
Descarga y Documentacion

LimitedSharpenFaster
http://www.mundodivx.org/foro/index.php?topic=37925.0

71/152

24/4/2015

Manual AviSynth

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:
MaskTools2
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, 3Range 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 diseo 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
tamao original (internamente se utiliza el filtro lanczos). El objetivo de hacer esto es evitar la
http://www.mundodivx.org/foro/index.php?topic=37925.0

72/152

24/4/2015

Manual AviSynth

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 aledaos,
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:
http://www.mundodivx.org/foro/index.php?topic=37925.0

73/152

24/4/2015

Manual AviSynth

MaskTools2
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=true
defaults="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)".
http://www.mundodivx.org/foro/index.php?topic=37925.0

74/152

24/4/2015

Manual AviSynth

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 tamao 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()
http://www.mundodivx.org/foro/index.php?topic=37925.0

75/152

24/4/2015

Manual AviSynth

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.
Descarga y discusion en doom9

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
http://www.mundodivx.org/foro/index.php?topic=37925.0

76/152

24/4/2015

Manual AviSynth

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
MaskTools2
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.
http://www.mundodivx.org/foro/index.php?topic=37925.0

77/152

24/4/2015

Manual AviSynth

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
LoadPlugin("H:\tallervideo\Filtros
LoadPlugin("H:\tallervideo\Filtros
LoadPlugin("H:\tallervideo\Filtros

Avisynth\fft3dfilter.dll")
Avisynth\mt_masktools-26.dll")
Avisynth\RepairSSE2.dll")
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.
Descarga (click derecho->Guardar archivo como)

Sharpen
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
http://www.mundodivx.org/foro/index.php?topic=37925.0

78/152

24/4/2015

Manual AviSynth

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)
ltima modificacin: 08 de Agosto de 2010, 03:50 por 888

En lnea

Encuentra los mejores manuales en la web: www.mundodiv x.com/manuales.php

Ajustes

888
Moderador

Respuesta #6: 07 de Noviembre de 2009, 21:34

Desconectado

Conversion de Color
ConvertToXXX

Registrado: 26/06/2006
Mensajes: 8.872
Valoracin: 8
Sexo:

[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)

http://www.mundodivx.org/foro/index.php?topic=37925.0

79/152

24/4/2015

Manual AviSynth

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
http://www.mundodivx.org/foro/index.php?topic=37925.0

80/152

24/4/2015

Manual AviSynth

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()
http://www.mundodivx.org/foro/index.php?topic=37925.0

81/152

24/4/2015

Manual AviSynth

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): tie 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).
Pueden ver algunos ejemplos de aplicacion aqui.

http://www.mundodivx.org/foro/index.php?topic=37925.0

82/152

24/4/2015

Manual AviSynth

Ajustes de Framerate
Filtros destinados a trabajar sobre los frames por segundo o FPS de un video.
Pueden encontrar una explicacion exaustiva sobre la diferencia entre los fltros AssumeFPS y
ChangeFPS y su impacto en el video, siguiendo este enlace, incluyendo ejemplos de aplicacion.

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.
http://www.mundodivx.org/foro/index.php?topic=37925.0

83/152

24/4/2015

Manual AviSynth

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.
http://www.mundodivx.org/foro/index.php?topic=37925.0

84/152

24/4/2015

Manual AviSynth

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".
Descarga
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
http://www.mundodivx.org/foro/index.php?topic=37925.0

85/152

24/4/2015

Manual AviSynth

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.
Descarga y Documentacion

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 funcin de marcar los bordes, dejndolos mas negros de lo normal y
http://www.mundodivx.org/foro/index.php?topic=37925.0

86/152

24/4/2015

Manual AviSynth

segn mis pruebas, algo muy levemente engrosados. Ayuda bastante para bordes que se ven
plidos o se ven poco. cumple la misma funcin que toon, pero obviamente conlleva a artifacts por
ser rpido pero no me refiero a q si se ocupa de manera comn salga, todo lo contrario si se hace
abuso de este como sucede con toon, saldrn 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 saldra en megui o virtualdub al
ocupar el script, pues este nos har la conversin 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 informacin 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 funcin 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 informacin certera del parmetro mximo de esta opcin.
Valor de 0 inhabilita este parmetro. Se recomienda poner el valor 4, ya que hay una gran
cantidad de pixeles que son marcados al azar, los cuales se oscurecen dbilmente. 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 funcin, y esto a la vez
da una gran velocidad en el filtrado.

http://www.mundodivx.org/foro/index.php?topic=37925.0

87/152

24/4/2015

Manual AviSynth

*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 detrs. Para evitar esto dejar, como ya mencione,
thinning=0.
Discusin 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.
Script:
Spoiler

LineDarkenToon
Filtro para Avisynth 2.5 destinado a oscurecer y refinar las lneas de los contornos o similares de
los dibujos animados. Pero no posee slo esta nica funcin, al utilizar masktools, warpsharp y
awarpsharp cumple con funcionalidades de limpieza y enfoque, logrando un mejoramiento de
imagen bastante bueno, logrando mejorar ciertos desperfectos como por ejemplo los cuadros
decolorados a partir de la informacin de la imagen deja el dibujo completo en forma ptima
colorada como siempre debi ser.
Ejemplos:
Spoiler

Filtros Necesarios:
WarpSharp
MaskTools2
aWarpSharp

Sintaxis:
http://www.mundodivx.org/foro/index.php?topic=37925.0

88/152

24/4/2015

Manual AviSynth

linedarken_toon(sstrength, sdboost, srange, warpdepth, fast)


sstrength: Fuerza del filtro. Prcticamente es la cantidad en que oscurecer las lineas negras del
dibujo
Valores: 0 [no hace nada] a 255 [muy oscuro]. Valor Por defecto: 180
*Recomiendo valores por debajo del 180, ya que por defecto es fuerte.
sdboost: Enfoque del filtro. No es tan potente como otros filtros sharpen, gracias a ello evita el
enfoque excesivo y la distorsin del detalle muy notoria.
Valor Por defecto: 1.0 (No tiene un mximo pero lo ideal sera entre 1 a 45/55. Ah deben probar
segn la necesidad).
srange: Lo que abarcar el filtro.
Valor Por defecto: 0
wdepth: Es la profundidad en la que actuar el filtro.
Valor Por defecto: 8
fast: acelera, desacelera el filtrado.
Valores: true, false. Valor Por defecto: false
*Para mejores resultados dejar el parmetro en false.
La velocidad de trabajo del filtro depender de las caractersticas del procesador, en mi caso
(Pentium Dual Core E5700 3.0 Ghz) trabaj entre 5 a 24 fps.
Ahora bien, dentro de este mismo filtro de funcionalidad, ya que es un filtro .avsi, que requiere de
otros para funcionar y a su vez realizar un import con este mismo .avsi, podemos utilizar la
funcionalidad de sharpen de forma independiente, el que nombrare de inmediato.
UnSharpMask(0, 0, 0)
La primera cifra hace referencia a la fuerza del enfoque que nos producir en la imagen
La segunda cifra hace referencia a un borde blanquecino que ayuda a resaltar los bordes, siendo
muy, muy leve su aparicin.
La tercera cifra realmente no puedo decir a que va dirigido, porque lo he probado hasta con un
valor de 300 y no sucede absolutamente nada, a menos que sea un complemento de la segunda
http://www.mundodivx.org/foro/index.php?topic=37925.0

89/152

24/4/2015

Manual AviSynth

cifra en cuanto a marcado, pero la verdad que no he notado cambio alguno ya sea dejando en 0,
-1 o valores positivos superiores a 0 esta cifra.
Recomiendo usar la siguiente configuracin:
1ra cifra: un mnimo de 10 con un mximo extremo de 23 a 24, despus de 24 comienza a eliminar
detalle de color por el sobrefiltrado, presentndose como puntos sin color en el cuerpo de la
imagen. Siempre y cuando se trabaje junto con otros filtros pero al realizarlo de forma
independiente (aplicando nicamente UnSharpMask) pueden trabajar fcilmente a un valor de 28
sin perder detalle alguno, lo que logra un mejor enfoque.
2da cifra: a partir de 0 hasta un mximo de 4 es suficiente, esto para que no afecte al video y no
resalte tanto a l ojo humano, se ver si observamos con una lupa.
3ra cifra: dejarla en 0
Recomendado, trabajando junto con otros filtros:
UnSharpMask(14, 2, 0)
Trabaja a una velocidad de entre 12 a 28 fps, todo depender del valor que coloquen en el primer
valor. A menor valor ms rpido, a mayor valor ms lento.
Script:
Spoiler

Toon
El filtro Toon nos ayuda prcticamente 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 estn 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 parmetro, si
se abusa, por ejemplo, en fuentes buenas que solo necesitan de 0.3 de parmetro, 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 saldrn en ciertos
frames del video y de manera rpida, no sera constante, pero aparecern esos defectos.

http://www.mundodivx.org/foro/index.php?topic=37925.0

90/152

24/4/2015

Manual AviSynth

Requisitos:
aWarpSharp
Como se usa:
Toon(strength)
Nota: valor mximo 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 dbiles
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
aparicin 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 segn 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.
Descarga Toon v1.1
aWarpSharp2
ltima modificacin: 10 de Noviembre de 2013, 14:47 por LUCHOO

En lnea

Encuentra los mejores manuales en la web: www.mundodiv x.com/manuales.php


http://www.mundodivx.org/foro/index.php?topic=37925.0

91/152

24/4/2015

Manual AviSynth

Varios

888
Moderador

Respuesta #7: 07 de Noviembre de 2009, 21:47

Desconectado

Efectos
AddGrainC

Registrado: 26/06/2006
Mensajes: 8.872
Valoracin: 8
Sexo:

[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 espaol: 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)
Descarga y Documentacion

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
http://www.mundodivx.org/foro/index.php?topic=37925.0

92/152

24/4/2015

Manual AviSynth

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): tamao 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)
Descarga (click derecho->guardar archivo como...)

ShowAlpha
Este filtro interno sirve para mostrar el canal alpha (transparencias) de un video o imagen. De lo
mas sencillo de utilizar
ShowAlpha(pixel_type)
http://www.mundodivx.org/foro/index.php?topic=37925.0

93/152

24/4/2015

Manual AviSynth

El parametro Pixel_type le hace saber al filtro el espacio de color que utiliza nuestro video o
imagen, por ej:
Showalpha(pixel_type="RGB32")

Overlay
Filtro interno incluido en Avisynth, superpone 2 videos o 1 video y 1 imagen. Se utiliza mucho para
pegar karaokes hechos en Adobe after effects (con canal alpha) en videos pero el filtro Overlay no
es capaz de ver por si solo el canal alpha, para esos casos se debe ayudar del filtro ShowAlpha.
Es altamente recomendable que a cada video, imagen o mascara que vayan a utilizar en Overlay
le asignen un nombre (lo que se conoce en programacin como un Array)
Sintaxis por defecto:
Overlay(clip clip, clip overlay [, int x, int y, clip mask, float opacity, string mode, bool greymask, string
output, bool ignore_conditional, bool pc_range])
Clip: Se pone el nombre o alias del video que ira de fondo.
Clip overlay: Se pone el nombre del video o imagen que sera superpuesta al fondo, o sea la que
se va a "pegar" al ya existente.
X & Y: Estas 2 variables sirven para posicionar la nueva imagen sobre la imagen de fondo. Los
valores se definen en pixeles, por defecto el valor es 0, se pueden usar valores en negativo. Por
supuesto, X hace referencia al posicionamiento horizontal y Y al posicionamiento vertical.
Mask: Se utiliza para definir la mascara que aplicaremos, debe ser del mismo tamao que la
imagen o video que vamos a superponer al fondo. Con esta mascara definimos donde estarn la
transparencias en la imagen o video a superponer.
Opacity: Define la transparencia general que tendr toda la imagen o video que se superpondr al
fondo, los valores utilizables van de 0.0 que seria totalmente transparente a 1.0 que seria
totalmente opaco.
Mode: Esto define el mtodo de superposicin de ambos videos, hay varios modos que dan
efectos muy interesantes que me hacen acordar a los modos de las capas en GIMP o Photoshop
ya vern porque
Los distintos modos a elegir:

Add
http://www.mundodivx.org/foro/index.php?topic=37925.0

94/152

24/4/2015

Manual AviSynth

Blend
Subtract
Multiply
Chroma
Luma
Lighten
Darken
SoftLight
HardLight
Difference
Exclusion
A continuacion algunos ejemplos:
Spoiler

Greymask: Vendra a ser para especificar si la croma de la mascara se usara para la transparencia,
por defecto activada (true) y recomiendo que quede as.
Output: Sirve para que luego de hacer el overlay deje el video en el espacio de color deseado por
ejemplo YV12, por defecto usa el espacio de color que tenga el video o imagen de fuente. Esta
opcin solo se encuentra disponible en Avisynth 2.6.
Pc_range: Por defecto desactivada, sirve para que el rango de la luminancia vaya de 0 a 255, en
las TVs comunes los negros y blancos podran ser muy intensos y no se vera la imagen as que
djenla desactivada si van hacerlo para TV. El rango de luminancia para una TV comn es de 16 a
235
Ejemplos de uso:
#Imagen superpuesta a un video de fondo
A=FFVideoSource("C:\Pruebas\Video.mkv")
B=ImageSource("C:\Pruebas\Imagen.jpg")
Overlay(A,B, mode="Blend")
#Imagen con canal alpha (transparencias) sobre video de fondo
A=FFVideoSource("C:\Pruebas\Video.mkv").ConverttoRGB32()
B=ImageSource("C:\Pruebas\Imagen.png")
C=ImageSource("C:\Pruebas\Imagen.png", pixel_type=RGB32).ShowAlpha(pixel_type=RGB32)
Overlay(A,B, mask=C)

http://www.mundodivx.org/foro/index.php?topic=37925.0

95/152

24/4/2015

Manual AviSynth

#Video con canal alpha sobre video de fondo (No esta probado pero debera funcionar)
A=FFVideoSource("C:\Pruebas\Video.mkv").ConverttoRGB32()
B=FFVideoSource("C:\Pruebas\Video02.mkv")
C=FFVideoSource("C:\Pruebas\Video02.mkv", pixel_type=RGB32).Showalpha(pixel_type=RGB32)
Overlay(A,B, mask=C)
#Ejemplo real probado por mi usando varios filtros pero vern un script mas complejo que los
anteriores
Script

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)
http://www.mundodivx.org/foro/index.php?topic=37925.0

96/152

24/4/2015

Manual AviSynth

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 (buscar en DirectShow Filters -> DirectVobSub)

Mascaras
MaskTools y MaskTools 2
http://www.mundodivx.org/foro/index.php?topic=37925.0

97/152

24/4/2015

Manual AviSynth

Se trata de un conjunto de funciones dedicadas a la creacion y manipulacion de mascaras,


refiriendose con este termino a la seleccion de un determinado conjunto de pixeles de una imagen
en base a cierto criterio especifico para su tratamiento por separado.
El manejo de mascaras, en el ambito de la video edicion, es muy similar al funcionamiento que
tienen las mascaras de recorte en photoshop; al fin y al cabo, un video esta compuesto por
imagenes (frames). Lo que se consigue con esta herramienta es superponer frames de manera
que ciertas partes sean o no visibles, acorde a la composicion de la mascara. Si nos centramos
unicamente en el procesamiento de un frame, la mascara es la que indica que partes del frame
original se veran y cuales no, al igual que el frame que resulta del filtrado. El orden de
superposicion del los frames es muy importante, y afectara al resultado final. En masktools el
frame de base en la superposicion, es el frame original; sin embargo en masktools el frame base
es el que ha sido sometido a limpieza de ruido y demas. Para mas detalles mirar la documentacin.
Este filtro ve su mayor aplicacion como apoyo para otros filtros (por ejemplo de ruido o sharpen)
en scripts de filtrado mas complejos. De hecho basta que observen los requerimientos de la
mayoria de las funciones tratadas en este manual para ver mencionado a MaskTools.
La descarga de los manuales en espaol para ambas versiones la tienen al final del post como
archivos adjunto, cortesia de overdrive80
A continuacion un ejemplo de uso con el que se obtiene un buen resultado para anime, no fuerzo
la eliminacion total del ruido pq no quiero jajaja, no en serio, no queda tan bien un sobrefiltrado.
Spoiler

Podriamos aadirle el uso de dither para el banding pero no viene al caso. Pobradlo en vuestras
fuentes y quizas os vaya bien. Cambiar el filtro del prefiltrado y demas. El contrasharpening es una
sharpen que usa mascaras y da resultado de alta calidad.
Fijado para no procesar croma. Para saber como se comporta deflate, inflate,... quitar la
almohadilla al parametro de control.

Otros
Freezeframe
La funcin de este filtro es tomar un frame que elijamos y reemplazar con este un segmento de
frames que definamos, debido a que reemplaza los frames no modifica la duracin del video ni el
http://www.mundodivx.org/foro/index.php?topic=37925.0

98/152

24/4/2015

Manual AviSynth

conteo de frames.
Sintaxis por defecto:
FreezeFrame(clip clip, int first-frame, int last-frame, int source-frame)
Ejemplo de uso:
FreezeFrame(108, 258, 107)

#Reemplazar desde los frames 108 al 258 con el frame 107

StackHorizontal / StackVertical
El filtro StackHorizontal toma 2 o mas videos que le indiquemos y los muestra juntos de izquierda
a derecha, mientras que StackVertical los muestra juntos de arriba hacia abajo. Todos los videos
deben tener iguales propiedades y el audio lo tomar del primer video.
Para su uso normalmente se podr invocar a los videos desde una variable.
Sintaxis por defecto:
StackHorizontal(clip1, clip2)
StackVertical(clip1, clip2)
Ejemplo de uso:
A=Avisource("C:\Videos de prueba\Video_01.avi")
B=Avisource("C:\Videos de prueba\Video_02.avi")
StackHorizontal(A, B)
ltima modificacin: 27 de Septiembre de 2013, 23:59 por 888

En lnea

Encuentra los mejores manuales en la web: www.mundodiv x.com/manuales.php

MCTemporalDenoise

888
Moderador

Respuesta #8: 29 de Noviembre de 2009, 02:08

Desconectado
http://www.mundodivx.org/foro/index.php?topic=37925.0

99/152

24/4/2015

Manual AviSynth

MCTemporalDenoise
Registrado: 26/06/2006
Mensajes: 8.872
Valoracin: 8
Sexo:

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.

Descarga del script

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()
http://www.mundodivx.org/foro/index.php?topic=37925.0

100/152

24/4/2015

Manual AviSynth

MCTemporalDenoisePP() -> Sin filtrado de ruido, para cuando se quiere aplicar el filtrado de postproceso 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 tamao 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
http://www.mundodivx.org/foro/index.php?topic=37925.0

101/152

24/4/2015

Manual AviSynth

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 tamao 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
http://www.mundodivx.org/foro/index.php?topic=37925.0

102/152

24/4/2015

Manual AviSynth

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 tamao 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
http://www.mundodivx.org/foro/index.php?topic=37925.0

103/152

24/4/2015

Manual AviSynth

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 tamao 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.
http://www.mundodivx.org/foro/index.php?topic=37925.0

104/152

24/4/2015

Manual AviSynth

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
http://www.mundodivx.org/foro/index.php?topic=37925.0

105/152

24/4/2015

Manual AviSynth

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.
ltima modificacin: 08 de Agosto de 2010, 03:14 por 888

En lnea

Encuentra los mejores manuales en la web: www.mundodiv x.com/manuales.php

888
Moderador

Re: Manual AviSynth


Respuesta #9: 30 de Agosto de 2010, 04:32

Desentrelazado

Desconectado

Introduccion al video entrelazado


Registrado: 26/06/2006
Mensajes: 8.872
Valoracin: 8
Sexo:

De que se trata:
Primero definamos que es el contenido progresivo. Este es aquel formado por una sucesion de
frames, refiriendonos con esta palabra a la imagen que conforma un fotograma de video completo
que abarca la resolucion maxima del video.
A grandes rasgos el proceso de entrelazado se trata de dividir un frame verticalmente en dos
mitades.
Esto se realiza tomando linea horizontal de por medio, es decir se separan en dos mitades pero
tomando las lineas horizontales de forma alternada, del tal forma que cada mitad contiene una
parte de la informacion vertical completa (en oposicion a solo contener la parte superior o inferior).
A las mitades formadas de este modo se las denomina campos.
Entonces un video entrelazado consta de una sucesion de campos, que son mostrados en pantalla
uno a continuacion del otro tal como si fueran fotogramas completos, pero al doble de velocidad
para compensar y lograr la misma velocidad de reproduccion.

http://www.mundodivx.org/foro/index.php?topic=37925.0

106/152

24/4/2015

Manual AviSynth

Cuando un video posee contenido entrelazado, esto se hara notable en la reproduccion en medios
digitales debido a la forma en que estos muestran la informacion en pantalla, no asi en las TV
analogicas donde este fenomeno no es perceptible.
Lo que se observa cuando se reproduce contenido entrelazado en un dispositivo digital es una
distosion sobre los bordes de los objetos en movimiento, produciendo un efecto sumamente
molesto e indeseable.
Esto se produce cuando son mostrados sucesivamente dos campos que contienen informacion
vertical de diferentes frames, es decir cuando dos campos entrelazados no fueron creados a partir
del mismo frame o tambien cuando se trata de contenido que fue directamente capturado de
forma entrelazada. Entonces lo que ocurre es que los campos contienen informacion
temporalmente desplazada uno del otro, y por ello el efecto es observable sobre objetos en
movimiento, mientras un campo muestra al objeto en una posicion, el siguiente campo lo muestra
en una posicion distinta.
Segun esto se puede deducir porque no se observa este fenomeno cuando dos campos
pertenecen al mismo frame o cuando se trata de escenas u objetos estaticos.
Esto ultimo implica que puede darse el caso de que un video tenga contenido entrelazado pero no
sea visible ningun efecto molesto. Que es lo que suele ocurrir en videos PAL que fueron Telecined
(este proceso se explica mas adelante), cuando los dos campos que forman el frame en la
reproduccion provienen de hecho del mismo frame, resultando en un video que se vera como si
fuera progresivo.

Por que o para que?:


En un principio el entrelazado de los videos se origino en el modo de funcionamiento de los TV
analogicos, pero eso ya se quedo en el tiempo, por lo que vamos a concentrarnos en su uso en
medio digitales, que han adoptado el entrelazado por sus propias razones.
Primero podemos mencionar el video entrelazado obtenido directamente durante la captura o
filmacion, siendo que en cada captura del fotograma o cuadro solo se almacena la mitad de la
informacion vertical, de la forma alternada explicada antes. Esto permite la captura mas rapida o
de mayor cantidad de campos por unidad de tiempo, dado que cada campo ocupa la mitad de un
frame completo.
De esta forma se logra una captura del movimiento mas fluida, gracias a la mayor cantidad de
informacion colectada en el tiempo, ideal por ejemplo para actividades deportivas. Por supuesto
tambien se pierde informacion o definicion vertical, ya que en cada fotograma solo se captura la
mitad de la resolucion vertical.

http://www.mundodivx.org/foro/index.php?topic=37925.0

107/152

24/4/2015

Manual AviSynth

Otro uso muy difundido que ha tenido el entrelazado en medios digitales ha sido la modificacion
del framerate o tasa de fotogramas por segundo.
Resulta que la mayoria de los videos son filmados a una tasa de 24fps, contenido que en esa
condicion es denominado FILM, y es por supuesto progresivo.
Ahora bien, el estandar NTSC define una velocidad de 30fps. O mas bien definia, ya que con la
llegada de la TV color ese valor debio ajustarse a 29,97fps (rigurosamente 30000/1001). Las
razones de estos cambios de velocidades frente a la velocidad de filmacion me superan, parece
que hubieran buscado la forma de complicarse mas de lo necesario pero a uno le gusta creer que
tuvieron sus buenas razones. Solo puedo decirles que tuvo que ver con la frecuencia de la red
electrica y luego el paso a TV color. Una opinion personal: ya podrian ir olvidandose de estos
obsoletos estandares que surgieron de limitaciones de la epoca.
Entonces, el problema es que tienen un video a 24fps que necesitan tener a 29,97fps. Fue cuando
a algun craneo se le ocurrio inventar el proceso denominado Telecine.
Este es explicado en detalle mas adelante, pero en resumidas cuentas se trata de pasar un video
de 24fps a 30fps mediante el entrelazado. Y por supuesto la modificacion posterior adicional a
29,97fps, que se trata ni mas ni menos que de un cambio "a lo bruto", o sea se reproduce mas
lento.
Ahora bien, la norma PAL establece una velocidad de reproduccion de 25fps. Como en este caso la
velocidad esta muy cerca de la del FILM, simplemente se recurre a acelerar la reproduccion, sin el
agregado de nuevos frames, ni progresivos ni entrelazados.
Debido a la poca diferencia dificilmente se note un cambio en la velocidad de reproduccion, aunque
el audio si debe ser ajustado para evitar desincronizaciones.
Resulta que por razones que muy probablemente tambien sean ya historia antigua, a los videos
PAL tambien se les aplica (o aplicaba?) el proceso de Telecine, pero de una forma diferente para
que no se produjese un cambio en la velocidad de reproduccion (continuaban siendo a 25fps). Mas
adelante se explica en detalle.
Finalmente, el caso mas complejo, anime. Aqui ocurren cosas muy raras, para una idea mas
detallada referirse a la guia del filtro AnimeIVTC. En resumen creo que se trata de ahorrar en
tamao, aprovechando que el anime posee muchas escenas estaticas y bajos fps. O algo asi, si
alguien sabe mejor como viene la mano es bienvenido a aclararlo.

Desentrelazado
Bien, aqui llegamos a la parte interesante: como deshacerse del contenido entrelazado y convertir
nuestro video a contenido progresivo.
http://www.mundodivx.org/foro/index.php?topic=37925.0

108/152

24/4/2015

Manual AviSynth

Existen dos metodos que se emplean para dicho fin, ambos dedicados a recuperar un contenido
formado por frames (progresivo) a partir de uno formado por campos. A saber:
Blending: se mezclan dos campos sucesivos para formar un frame. Es decir que se
entrelazan de forma definitiva pero a su vez aplicando un suavizado entre campos para
disimular el efecto de entrelazado. Este metodo produce el indeseable efecto ghosting
(fantasma) debido a que lo que se obtiene son dos campos superpuestos pero que
contenian informacion distinta (desplazada temporalmente).
Por ello este metodo no se recomienda.
Bobing: este metodo consiste en reconstruir un frame a partir de cada campo. Esto se logra
interpolando las lineas horizontales faltantes a partir de las existentes. Por supuesto la
calidad del resultado y por ende la aproximacion a un hipotetico contenido progresivo de
origen (exista o no) estara ligada con la exactitud de dicha interpolacion.

Desentrelazadores por excelencia: Decomb, Tdeint, TomMoComp, yadif y todos los bobbers que
hay muchos pero a mi personalmente me encanta MCBob, ya que utiliza Compensacion de
Movimiento para evitar efectos de jerkiness (secuencia de frames sin fluidez, a saltitos). Hay un
nuevo Bobber que es la optimizacion de TempGaussMC, lo que pasa es que aparte de
desentrelazar elimina ruido, lo cual a veces no interesa; este filtros se llama QTGMC.
Ahora para los que tengais la cara a cuadros diciendo que si tengo un amigo que se llama Bob,
pues no ^^. Estos filtros hacen una tarea muy laboriosa la cual consiste en descomponer en video
en campos. Un frame entrelazado esta formado por un campo superior e inferior (el superior son
los que corresponden a las lineas impares y el inferior por las pares). Esta claro que si
combinamos los dos campos obtenemos el frame.
Por lo cual si tenemos un video a 30i frames, lo transforma a 60p campos. Para ello usan la
reconstruccion de campos mediante los frames proximos, tanto anteriores como posteriores. La
compensacion de movimiento, es para que esta interpolaciones de los campos sea fluida.
Por tanto cuando apliquemos un bobber, nuestro video adquirira una tasa de fotogramas de 59,97
(60fps). Que aunque digamos que son frames son en realidad campos reconstruidos. Ahora
nuestro video es progresivo, solo nos queda reducir el framerate a 30 y despues diezmar
(decimate). Para pasar un video de 60p a 30p, usaremos la herramienta SelectEvery() o SelectOdd()
o SelectEven(). Todos incluidos con AviSynth.
NOTA:El plugin Srestore hace todo lo que voy a explicar de una tacada, pero tiene sus
http://www.mundodivx.org/foro/index.php?topic=37925.0

109/152

24/4/2015

Manual AviSynth

inconvenientes.
SelectEvery() seria seleccionar todos pero dentro del parentesis aplicariamos las reglas para
discernir. En este caso podriamos usar SelectEvery(4,0,2) o SelectEvery(4,1,3).
Para que os hagais una idea SelectEvery(4,0,2) = SelectOdd() - Selecciona los frames impares
SelectEvery(4,1,3) = SelectEven() - Selecciona frames pares.
De esta manera reduciriamos la tasa a 30p y ahora solo quedaria diezmar mediante comandos del
Decomb: Decimate() o de TIVTC: TDecimate(). Quedandose una tasa de 23,976.
En particular la explicacion precedente es para video NTSC, para fuentes PAL seria lo mismo, pero
no tendriamos que diezmar al final.
Por ultimo, todo esto es aplicable sobre contenido verdaderamente entrelazado (Truly Interlaced).

IVTC o InVerse TeleCine


Ahora bien, todo lo dicho sobre el desentrelazado esta perfecto pero es solamente necesario
aplicarlo cuando el contenido entrelazado no proviene directamente de contenido progresivo.
Los metodos descritos en el apartado anterior se ocupan de desentrelazar dos campos cuando
estos no pueden ser combinados para formar el frame original, es decir cuando estos campos no
fueron creados a partir de un frame.
Aqui es donde entra en escena el proceso de Telecined, que consiste en un proceso por el cual
material progresivo codificado originalmente a 24 fps, pasa a tener una tasa de fotogramas de
30fps. Esta tecnica es conocida como 3:2 pulldown (por cada tres frames progresivos, dos
entrelazados).
Dicho de otra forma, lo que se tiene es contenido entrelazado a partir de contenido originalmente
progresivo.
De manera que si cuatro frames: a b c d se le aplica 3:2 pulldown la cosa quedaria asi: AA BB BC
CD DD, con las letras en mayuscula representando campos. Como podeis observar por cada
cuatro frames, aumenta a uno de manera que ahora tenemos tres frames progresivos y dos
entrelazados. Por lo tanto, por cada grupo de cuatro frames uno mas, si 24/4=6, si por cada 6
grupos de 4 un frame mas 6*1=6 frames + 24=30fps.
Cuando se trata de video PAL a 25fps, tambien se puede aplicar pulldown, con un patron de 2:2.
http://www.mundodivx.org/foro/index.php?topic=37925.0

110/152

24/4/2015

Manual AviSynth

De esta forma el video puede quedar: AA BB CC DD, y como podran ver de esta forma no se hara
notable a simple vista que esta entrelazado. Y a su vez noten que el framerate no se modifica.
Si sera notable el efecto de entrelazado cuando se utilice el patron: AB BC CD
Existen tambien otros patrones diferentes a los mencionados, por ejemplo:
16 fps (en realidad 15.985) a NTSC 30 fps (en realidad 29.97): pulldown deberia ser con un
patron 3:4:4:4.
16 fps a PAL 25: el patron del pulldown deberia ser 3:3:3:3:3:3:3:4.
18 fps (en realidad 17.982) a NTSC 30: el patron del pulldown deberia ser 3:3:4.
20 fps (en realidad 19.980) a NTSC 30: el patron del pulldown deberia ser 3:3.
27.5 fps a NTSC 30:e l patron del pulldown deberia ser 3:2:2:2:2.
27.5 fps a PAL 25: el patron del pulldown deberia ser 1:2:2:2:2.

Se les pueden presentar dos tipos de contenido telecined:


Soft telecined.
El flujo de frames es codificado a 24 fps y el pulldown es aplicado durante la reproduccin.
En este caso los frames entrelazados son creados durante la reproduccion, por lo que
realmente no forman parte del video.
En resumen, el contenido Soft Telecined es realmente progresivo. Debido a esto es muy
sencillo recuperar el contenido progresivo, y mas aun si se emplean las herramientas "DG"
para el indexado. Basta seleccionar Force Film para que el video vuelva a ser progresivo.
Tambien existe una opcion equivalente si se utiliza el plugin de carga FFmpegSource2.
Hard telecined.
Tu fuente fue telecined antes de ser codificada en el DVD. Esto implica que como el video fue
entrelazado y luego codificado, ahora el contenido entrelazado forma parte del video.

Entonces, por lo descrito se concluye que este es un tipo de contenido entrelazado que fue
generado a partir de contenido originalmente progresivo.
Es por ello que para desentrelazar se emplea otro metodo muy diferente al desentrelazado ya
descripto, ya que no realiza aproximaciones para reconstruir los frames.
Este procedimiento se denomina InVerse TeleCine o IVTC.
Los filtros para ello se ocupan de localizar los dos campos que componen el mismo frame y los
juntan para reconstruir el mismo.
http://www.mundodivx.org/foro/index.php?topic=37925.0

111/152

24/4/2015

Manual AviSynth

Recuerden que en verdad se trabaja con videos a 29,97fps, por lo que el proceso de IVTC les
devuelve un video a 23,976 (24000/1001).
Vale aclarar que esto solo tendra exito cuando el video fue creado con un metodo de telecined de
buena calidad.
Puede pasar que a la mayor parte del contenido pueda aplicarsele el IVTC, a excepcion de algunas
zonas donde pueden faltar alguno de los dos campos que conformaban el frame, ya sea por
problemas ocurridos en el telecined o en la edicion posterior al mismo.
En estos casos la combinacion de los dos campos falla y se obtiene un frame entrelazado, es decir
conteniendo el efecto indeseable.
Para solventar esto los filtros de IVTC poseen algoritmos que se ocupan de detectar cuando un
frame ha quedado entrelazado, para luego aplicarle alguno de los metodos descritos antes para
desentrelazarlo (Bob o Blend). Ver filtro Decomb.
Filtros para InVerse TeleCined por excelencia: TIVTC, Decomb.

Otros tipos de contenido entrelazado:


Double hard telecined (DHT).
Aparentemente se trata de un video que fue Telecined, y luego nuevamente entrelazado, ya
sea mediante un nuevo proceso de Telecined o bien algun otro patron.
Field blended norm-conversion.
En lugar de volver el video a 24fps (film rate), el flujo es directamente convertido desde
NTSC (29.97fps) a PAL (25fps) o viceversa, aplicando el metodo de Blending en algunos de
los campos y creando un efecto desagradable (parecido al DHT cuando inspeccionamos un
frame). Ver mas adelante en que consiste el modo de desentrelazado denominado Blending.
Hybrid.(Hibrido)
Mezcla de material progresivo a 24fps que fue telecined hasta 29,97 y material
verdaderamente entrelazado a 29,97.
Esto quiere decir que en el momento de hacer pulldown solo lo hacen para las partes del
video a 24fps y las otras que son a 29,97fps estarn entrelazadas.
Este tipo de material, tiene dos maneras de ser desentrelazado:
1. Mediante el uso de VFR, Variable Frame Rate, para un posterior empaquetado en
matroska. (El filtro AnimeIVTC tiene la opcion de codificar a framerate constante de 23,976)

http://www.mundodivx.org/foro/index.php?topic=37925.0

112/152

24/4/2015

Manual AviSynth

2. O el uso de un framerate constante, que deberia ser 120fps pues es el valor que tiene
como minimo comun divisor a 24 y 30. Tambien puede ser empleado el uso de 60fps
mediante el desentrelazado de un bobber.

Identificacion del tipo de entrelazado:


La identificacin del tipo de entrelazado que tiene tu fuente es de suma importancia, porque una
mala evaluacin del problema dar lugar a otros como las mezclas y sacudidas (Blends y
jerkiness).
Para ello deben cargar un script .avs que contenga la carga del video y la separacion de los frames
en campos, de la siguiente manera:
AviSource("C:\...\video.avi")
AssumeTFF()
SeparateFields()
En lugar de AssumeTFF() puede que deban usar AssumeBFF(), segun el orden en que aparecen los
campos. La primera linea asume que va primero el campo superior, mientras que la segunda el
inferior.
Para saber como es en su video, lo cargan con alguna de las dos y si es la correcta entonces el
movimiento debe avanzar siempre hacia adelante. De ser la incorrecta notaran que a medida que
avanza cada tanto retrocede un poco antes de seguir avanzando.
Luego cargan el script .avs en algun programa que les permita avanzar frame por frame. Por
ejemplo pueden utilizar VirtualDub, VirtualDubMod, AvsP o incluso su reproductor favorito si
soporta dicha opcion.
Si cargan el video mediante alguno de los plugins "DG", asegurense de seleccionar la opcion de
"Honor pulldown flags? cuando indexan.
Entonces, buscan algun area de movimiento notable, y si al avanzar un frame a la vez observan:

El movimiento aparece de a pares de imagenes. Es decir el patron es de a 2 imagenes que


no tienen movimiento entre ellas, luego otras dos y asi sucesivamente, pero si existe
movimiento entre los pares. Una forma de ejemplificarlo seria: AABBCCDDEEFF, donde solo
entre letras distintas hay movimiento. Esto debe tratarse de un PAL Telecined. Recuerden
que en este caso puede que no se note el efecto de entrelazado al reproducir si los dos
campos provienen del mismo frame. Tambien este sera el patron de video progresivo.
http://www.mundodivx.org/foro/index.php?topic=37925.0

113/152

24/4/2015

Manual AviSynth

Todas las imagenes son distintas, hay movimiento en cada frame. O sea algo asi: ABCDEF.
Se trata de un video Truly Interlaced.
El patron que se presenta repite imagenes sin movimiento de a 3 y de a 2 de forma
alternada. Algo asi: AABBBCCDDDEEFFF. Tienen en sus manos un video progresivo a 24fps
que fue Telecined. Tengan en cuenta que tambien pueden presentarse alguno de los
patrones de telecined mencionados antes.
Para a su vez identificar si se trata de un Soft Telecined, la unica forma que conozco por
ahora es ver que les informa las herramientas "DG" al realizar el indexado. Abren el .log
creado y revisan que tipo de video es: solo si les dice que es "100% FILM" estan ante un
Soft Telecined.
Si observan el efecto fantasma en algunas de las imagenes, significa que estan ante un
Field Blended norm-conversion. Esto usualmente lo notaran en videos de anime PAL.
No logran identificar ningun patron de repeticion. Muy probablemente se trate de contenido
Double Hard Telecined.
Y algo muy importante: existe la posibilidad de que su video tenga mas de un tipo de contenido a
lo largo del mismo, por lo que asegurense de revisar de forma bastante completa su video, en
especial el inicio (la presentacion en caso de series o los logos de los estudios) y los creditos, que
suelen ser codificados en un modo distinto para ahorrar espacio.
Al margen de entrelazado hibrido, que ya saben posee contenido tanto Telecined como Truly
Interlaced.

Filtros y Funciones para Desentrelazado


Aqui los filtros destinados a deshacerse del entrelazado, transformando al video nuevamente en
uno progresivo de la mejor forma posible.

AnimeIVTC

http://www.mundodivx.org/foro/index.php?topic=37925.0

114/152

24/4/2015

Manual AviSynth

QTGMC
Desentrelazador de muy alta calidad con una gama de caractersticas de gran calidad y
conveniencia.
Incluye ajustes preestablecidos, una amplia capacidad de procesamiento de eliminacin de ruido,
soporte para la reparacin de material progresivo, bsqueda precisa del tipo de fuente, velocidad
de obturacin de simulacin, etc?
Descarga al pie de este post.

Decomb
Este plugin esta compuesto por un conjunto de filtros, todos incorporados en la misma .dll, que se
utilizan para aplicar el metodo de Inverse Telecide o IVTC asi como tambien interpolacion (Bob) o
mezclado (Blending) para desentrelazar.
Es decir que estan pensados para el desentrelazado de contenido telecide puro, hibrido o
entrelazado puro, mediante el uso de los diferentes filtros que ofrece.
Por ahora esta guia solo abarca el uso en detalle del plugin para fuentes telecined. O sea esta
orientado para dvds PAL, o NTSC pero que no estan en los casos en los cuales podemos utilizar el
Forcefilm del DGIndex, es decir cuando el contenido es Hard Telecined.
Nota: este plugin no puede ser usado con la version beta mas reciente de AviSynth (2.6.0) debido
a un bug, se recomienda usar la ultima version estable (2.5.8).
PASO 1. Cargamos nuestro script con este codigo.
AssumeTFF().SeparateFields()
Buscamos una zona en movimiento, si al avanzar en la pelicula, todo se mueve hacia adelante del
film; entonces el field order(orden de campo) es top (superior). Si por el contrario, observamos
como un frame avanza y luego retrocede y luego avanza, entonces su field order(orden de campo)
sera bottom (inferior). Lo podemos comprobar, poniendo en el script:
AssumeBFF().SeparateFields()
Y si era bottom field, ahora deberia verse correctamente la sucesion de frames o el movimiento.

http://www.mundodivx.org/foro/index.php?topic=37925.0

115/152

24/4/2015

Manual AviSynth

PASO 2. Indicarle a Telecide que tipo de patron de entrelazado-progresivo posee el video.


En verdad el filtro es adaptativo y no requiere que se especifique el patron de entrelazado,
automaticamente es capaz de detectar si un frame es progresivo o entrelazado.
Sin embargo si se conoce y puede especificarse ayuda a que el proceso sea mas rapido.
Para ello el filtro Telecide dispone de 4 posibles valores del parametro guide:
guide=0 inhabilita la suposicion de un patron determinado, el filtro analiza frame a frame para ver
si son entrelazados;
guide=1 para contenido con un patron 3:2, o sea Hard Telecined (24fps->30fps);
guide=2 para contenido con un patron 2:2 (PAL, 25 fps)
guide=3 para contenido con un patron 3:2:3:2:2 (25fps->30fps).
Si su video es PAL y fue telecined, utilize este comando:
Telecide(guide=2) (en el caso que no sea progresivo saltar al siguiente paso sin utilizar este
comando)
Si tenemos un clip con un framerate de 29.97fps o NTSC 30fps, las cosas son complicadas.
Se carga en bruto, sin filtros en virtualdub, y escojemos una zona en movimiento del clip. Si
observas un patron que repite de 3 marcos limpios seguidos de 2 marcos entrelazados, entonces
era un 3:2 pulldown. Podemos cargar el siguiente script, para que nos de un informe sobre el clip:
Telecide(guide=1, post=0, show=true)
Una vez cargado este codigo en virtualdub, podemos encontrarnos con dos posibilidades:
1. Que telecide nos de informacion constante de: "in-pattern", or "in-pattern*", en ese caso es un
3:2 pulldown
2. Que telecide nos de informacion del tipo: "out-of-pattern" o por cada frame haga saltos "inpattern/*" a "out of pattern", entonces no corresponde con un modelo constante 3:2 pulldown
Si considera que su clip tiene mucho material 3:2 (caso 1) entonces deberia poner en su script:
guide=1, si por el contrario considera que no (caso 2) deberia poner: guide=0.
Para seguir ejemplificando, consideremos el caso 1; vamos un material constante 3:2 pulldown,
por lo tanto el script seria:
http://www.mundodivx.org/foro/index.php?topic=37925.0

116/152

24/4/2015

Manual AviSynth

Telecide(guide=1)
PASO 3. Configurando el postprocesamiento. (post=x)
Esta etapa de filtrado se encarga de aquellos frames en donde fallo el inverse telecined, y han
quedado aun con el efecto indeseable del entrelazado.
Es entonces cuando se les aplica un desentrelazado, que puede ser por interpolacion (Bob) o
Blending.
Esto se realiza detectando las partes del frame que aun presentan los artifacts del entrelazado.
El comando post de telecide, se configura para detectar dichos frames y desentrelazar. Tiene 4
posibles valores:
post=0 significa desconectar el postprocesamiento, poco util no crees?
post=1 significa calcular la metrica pero no desentrelazar.
post=2 significa calcular la metrica y desentrelazar, en consecuencia.
post=3 significa calcular la metrica y desentrelazar, en consecuencia, y muestra un mapa de
movimiento de desentrelazados para los marcos que son descubiertos como entrelazados.
Hay dos modos ms avanzados tambin; acudir al manual de referencia.
Para resultados optimos el postproceso debe ser ajustado adecuadamente para cada video en
particular. Vamos a adoptar un procedimiento estndar para ello.
Utilizaremos un script para que se nos informe de la metrica:
Telecide(guide=1, post=3, vthresh=25, show=true)
Cargamos el script en virtualdub y vamos examinando el clip mientras observamos la informacion
mostrada de la vmetric.
El valor vmetric del frame sera aquel que se muestre tal como por ejemplo [Chosen=27]. Cuando el
valor de vmetric resulta mayor que el de vthresh se define el frame como entrelazado y se le aplica
el postproceso. Nosotros lo que queremos es encontrar un valor para vthresh suficientemente
bajo tal que evite se le pasen al filtro frames entrelazados, pero que a su vez sea lo
suficientemente alto como para evitar desentrelazar frames progresivos, dado que dicha
operacion produce artifacts indeseables.
Se podra facilmente identificar los frames que el filtro estima son entrelazados porque:

http://www.mundodivx.org/foro/index.php?topic=37925.0

117/152

24/4/2015

Manual AviSynth

1. El valor de vmetric sera mayor que el de vthresh


2. El indicador de progresivo/entrelazado, dira entrelazado (interlaced).
3. El frame tendra superpuesto en color blanco sobre el mismo el mapa del movimiento.
Si observamos un frame que fue detectado como entrelazado pero no lo es, nos fijamos en el
valor de chosen y le ponemos ese mismo valor al parametro vthresh. De esta manera al volver a
cargar el script, ese frame ya sera progresivo y no habra sido alterado por el postproceso. Es muy
sencillo y entretenido.
La forma de darse cuenta si un frame es en efecto entrelazado o no es simplemente observar el
caracteristico patron de distorsion sobre el movimiento. Si en su lugar solo hay manchas blancas
repartidas aleatoriamente sobre el frame, seguro se trate de un frame progresivo mal identificado.
Su vthresh no siempre sera perfecto, resultando en que frames entrelazados logren pasar o
frames progresivos sean erroneamente postprocesados. Lo que causa menor impacto visual es
esto ultimo, siempre y cuando no sean muchos.
Supongamos que este valor de hacer un barrido o no, es de 30. Utilizemos el siguiente script:
Telecide(guide=1,post=2,vthresh=30,show=true)
Al cargar en virtualdub, podremos observar los frames progresivos como intocados y los barridos
como desentrelazados.
Si no estas conforme con el desentrelazado, puede reducir el parametro dthresh para darle mas
potencia. Ademas si en el desentrelazado, prefiere la mezcla de frames (Blending) a la
interpolacion (Bob), puede usar blend=true, por defecto en false. Consulte el manual para mas
detalles.
Sigamos con el ejemplo, y el script nos quedaria asi:
Telecide(guide=1,post=2,vthresh=30)
NOTA. la diferencia entre post=2 y post=4 que le puede interesar.
post=2, evita mezclas de frames en los cambios de escena pero puede producir secuencias
desentrelazadas por desigual
post=4, conserva la suavidad de secuencias desentrelazadas pero pueden hacer mezclas de
frames, en los cambios de escenas(un posible efecto ghosting)
http://www.mundodivx.org/foro/index.php?topic=37925.0

118/152

24/4/2015

Manual AviSynth

PASO 4. Configuracion del filtro Decimate


Luego de aplicado el filtro Telecide, un efecto colateral del mismo es que habra frames duplicados,
1 cada 5 para ser exactos. Estos deben ser localizados y eliminados para que el framerate quede
en 23,976. De ello se ocupa este filtro.
Si tu clip es PAL, no tienes que hacer nada mas. Si por el contrario es 3:2 pulldown(NTSC),
deberias utilizar este filtro quedando el script de esta manera:
AssumeTFF()
Telecide(guide=1,post=2,vthresh=30)
Decimate()

POSIBLES USOS:
1) Material NTSC con Telecine normal:
Telecide()
Decimate()
Si la fuente es muy limpia, sin ruido, se puede usar Telecide(post=false) para acelerar el proceso. Si
se sabe que la fuente es NTSC con 3:2 pulldown se puede activar el seguimiento de patrn,
colocando Telecide(guide=1). O al combinar las dos tener:
Telecide(post=false, guide=1)
Decimate()
Un script un poco mas avanzado que es especialmente til en ciertas fuentes de Anime podra ser:
Telecide(guide=1,gthresh=50,chroma=true,threshold=30)
Decimate()
En donde se puede incrementar gthresh hasta 75 si se presentan efectos residuales de combing
en las bocas.
2) Material completamente entrelazado:

http://www.mundodivx.org/foro/index.php?topic=37925.0

119/152

24/4/2015

Manual AviSynth

Se usa el filtro FieldDeinterlace.


FieldDeinterlace()
3) Material hibrido:
Telecide()
Decimate(mode=1,threshold=50)
En este caso Telecide es usado nicamente para determinar qu hacer con los cuadros que serian
normalmente removidos, y la salida se mantiene a 29,97 fps.
Esta ultima parte est extraida de http://spanish.doom9.org/index.html?/decomb.htm

Seccion de Desentrelazado por overdrive80 y 888


ltima modificacin: 19 de Marzo de 2011, 19:47 por 888

En lnea

Encuentra los mejores manuales en la web: www.mundodiv x.com/manuales.php

Overdrive80
Amigo de MundoDivX

AnimeIVTC
Respuesta #10: 30 de Agosto de 2010, 11:02

AnimeIVTC

Desconectado

Hilo oficial en doom9


Hilo con mods de AnimeIVTC por Emulgator (recomendado si al configurarlo, os da fallos)
Registrado: 25/08/2010
Mensajes: 1.515
Valoracin: 14
Depravado sin remedio

Filtros y funciones necesarias:


Pueden descargar un pack con todos los filtros y funciones necesarias AQUI.
Nota: el archivo tambin se encuentra adjunto al final de este mensaje.
TIVTC, TDeint y TMM
nnEDI2, EEDI2 y yadifmod
TGMCmod - Mod por Emulgator
MVTools2
RemoveGrain y Repair

http://www.mundodivx.org/foro/index.php?topic=37925.0

120/152

24/4/2015

Manual AviSynth

MaskTools
MaskTools2
Vinverse
MedianBlur
srestore
Average
ReduceFlicker
SangNom
Toon
LSFmod
aWarpSharp2 y Toon-v1.1
Microsoft Visual C++
AvsRecursion

I) Sobre el telecine del anime


Aplica TComb antes de AnimeIVTC si necesitas corregir el efecto dotcrawl.
No es recomendado usar animeivtc con mltiples procesadores y/o utilizando animeivtc varias
veces en el mismo script. Si necesitas usar mltiples procesadores, mira el ejemplo.
Esta funcin puede tambin trabajar con cualquier live action totalmente telecine (hard telecined),
hibrido o una fuente con campos mezclados (Field Blended).
Lo primero de todo, hay que comprender algunas cosas bsicas antes de leer esta gua. Aqui
podis iniciaros. Los plugins mencionados son antiguos, pero el concepto general del IVTC est
bien explicado y es ms que suficiente como preparacin para lo que sigue. Tu puedes ignorar las
secciones ?Bad telecines? y ?Anime? desde que AnimeIVTC() es la solucin a los problemas que
exponen.

Particularidades del anime :


Mientras un film es creado a 24 frames por Segundo, el anime es animado a 24 fps por lo que no
hay necesariamente movimiento en todos los frames.
Cuando no hay gran cantidad de movimiento, puede ser visualizado a bajos framerates como 8 o
http://www.mundodivx.org/foro/index.php?topic=37925.0

121/152

24/4/2015

Manual AviSynth

12 fps y con duplicacin de algunos frames se puede mantener un framerate constante de 24 fps.
La ilusin de crear rpidos movimientos en partes diferentes del video es porque pueden
reproducirse a diferentes framerates. En esta situacin, la imagen es dividida en 2 partes (frontal
y posterior) y hay muchas posibles combinaciones de ?intra-frame variable framerate?. Esto no es
constante en todo el episodio/pelcula, ya que cambia dependiendo de la cantidad de movimiento
que se va a mostrar.
La animacin CG a 30 fps es a veces usado en anime, tambin puedes tener secuencias con
movimiento en algunos frames sin ningn tipo de entrelazado o duplicado.
Los crditos pueden ser verdaderamente entrelazados hacindoles desplazarse los ms rpido
juddery y sin ser ilegibles, lo que deja ms espacio para ser mostrado
Los crditos pueden tambin ser totalmente progresivo en la parte frontal y telecined en la
posterior.
Porque de todo esto, alguna deteccin automatizada (DGIndex, megui, automkv... name it!) te
permitirn saber qu tipo de tratamiento tu fuente necesita para ser IVTC/desentrelazado aunque
seguramente fallara. La nica manera de sacar una fiable informacin es la siguiente?y tus ojos.

Conceptos bsicos:
Soft telecined.
El flujo de frames es codificado a 24 fps y el pulldown es aplicado durante la reproduccin.
Se matiene un 3:2 pattern en todo el video.
Hard telecined.
Tu fuente fue telecined antes de ser codificada en el DVD( or before airing).
Double hard telecined (DHT).
Tu fuente tiene por lo menos una situacin del tipo "intra-frame variable framerate" y el
telecining fue aplicado separadamente de las partes del frame, por lo que el patrn no es
constante y muchos frames son entrelazados.
Field blended norm-conversion.(Campos mezclados)
En lugar de transformar el video a 24fps (film rate), el flujo es directamente convertido
desde NTSC (29.97fps) a PAL (25fps) o viceversa, creando una mezcla de campos
desagradables (parecido al DHT cuando inspeccionamos un frame).
http://www.mundodivx.org/foro/index.php?topic=37925.0

122/152

24/4/2015

Manual AviSynth

Hybrid.(Hibrido)
Mezcla de material telecined a 24 fps y material progresivo a 30 fps.
Truly interlaced.(Verdaderamente entrelazado)
Cada fotograma contiene la mitad de la informacin de los dos frames, lo que significa que
pueden ser separados (mtodo Bob) a 60 frames progresivos (veremos movimiento en cada
cuadro, sin entrelazar o mezcla, tras aplicar dicha tcnica).
Progressive.(Progresivo)
Sin entrelazado alguno.
3:2 pattern.
Este patrn se repite desde el principio hasta el final de su clip: 3 fotogramas progresivo
seguido por 2 ms entrelazado.
Variable Frame Rate (VFR) - Variable Frame Rate.
Las secciones de un fragmento de una pelcula van a framerates diferentes, as permite
tener menos frames para el mismo movimiento. Los duplicados son eliminados y
visualizados en la misma lnea de tiempo, como si hubiese la misma cantidad de frames
originales.
Lossless rendering pass
Guarde el archivo como YV12 sin comprimir o Lagarith para aplicar el script slo una vez y
posterior filtrado / codificacin ms rpida. Se necesita mucho espacio en disco: 5GB de
alrededor de 22 minutos con clip@23.976fps y 20GB con Lagarith sin YV12.
Pulldown.
Tcnica empleada en material soft telecined, para desentrelazar el video pasando de
29.97fps a 23.976fps

Ejemplos:
Double hard telecine ? Al inicio, tu fuente debe parecerse a un tpico Hard Telecined , pero
despus de una inspeccin ms a fondo, ver que es realmente una DHT: la misma fuente,
con diferentes escenas con gran movimiento.
Interlaced on top of telecined (puede ser hard o double hard) ? En este caso, la fuente fue
un hard telecined.
Obviamente, dado que no hay ningn patrn de DHT y entrelazado en cada cuadro con puro
http://www.mundodivx.org/foro/index.php?topic=37925.0

123/152

24/4/2015

Manual AviSynth

material entrelazado, regular la salida IVTC mezclas de frames (blends) y


sacudidas(jerkiness).

Posibles situaciones:
Para todos los casos, t debes cargar un proyecto d2v creado en DGindex con la opcin
"Honor pulldown flags?. O mediante AviSynth revisar frame por frame con VirtualDub,
VirtualDubMod o AvsP.
La identificacin del tipo de tu fuente, si es de suma importancia, porque una mala
evaluacin del problemas dar lugar a otros como las mezclas y sacudidas (Blends y
jerkiness). Para ello cargaremos nuestra fuente de video en el programa DGIndex, y
haremos un preview apretando F5
1. DGIndex te dice "100% Film" y ves un patrn de movimiento de 3:2 pattern. En este
caso nuestra fuente de video es un soft telecined, y para desentrelazar nicamente
deberemos localizar y seleccionar, en el programa, la opcin "Forced Film". Guarda el
proyecto y olvdate del resto de esta gua. ^_^
2. DGIndex te dice "100% Film" y al inspeccionar el video, frame a frame; ves frames
progresivos y entrelazados sin un patrn de movimiento especifico. Es un Double hard
telecined encodeado como progresivo por lo que necesitaras utilizar la opcin mode=3 en
AnimeIVTC.
3. DGIndex te dice "algo menos que 100% Film" y al inspeccionar el video, frame a frame;
ves un 3:2 pattern. Este es un material del tipo Hard Telecined, utilizar la opcin mode=1
en AnimeIVTC.
4. DGIndex te dice "100% Video (NTSC o PAL)" y al inspeccionar el video, frame a frame;
observas que son progresivos y entrelazados, sin un patrn especifico. Es un Double hard
telecined encodeado como progresivo por lo que necesitaras utilizar la opcin mode=3 en
AnimeIVTC.
Si observamos que los crditos (opening, ending y preview) son entrelazados y/o
progresivos, debemos dirigirnos al apartado crditos entrelazados y progresivos, ya que
es necesario configurar AnimeIVTC para que funcione correctamente.
5. DGIndex te dice "100% Video (NTSC)" y al inspeccionar el video, frame a frame; ves un
3:2 pattern y los crditos son entrelazados y/o progresivos. Este es un material del tipo
http://www.mundodivx.org/foro/index.php?topic=37925.0

124/152

24/4/2015

Manual AviSynth

Hard Telecined, utilizar la opcin mode=1 en AnimeIVTC.


Si observamos que los crditos (opening, ending y preview) son entrelazados y/o
progresivos, debemos dirigirnos al apartado crditos entrelazados y progresivos, ya que
es necesario configurar AnimeIVTC para que funcione correctamente.
6. DGIndex te da un porcentaje de "Film o Video desde 50 a 95%" y al inspeccionar el
video, frame a frame; ves un 3:2 pattern y secuencias progresivas (no nicamente los
crditos, sino en la totalidad de los frames). En este caso, el material es hybrid y debemos
seleccionar la opcin mode= 4.
7. DGIndex te da un porcentaje de "Film o Video desde 50 a 100%" y al inspeccionar el
video, frame a frame; ves un 3:2 pattern y secuencias progresivas (no nicamente los
crditos, sino en la totalidad de los frames) y los crditos son entrelazados y/o progresivos.
En este caso, el material es hybrid y debemos seleccionar la opcin mode= 4.
En este caso, tambin deberemos dirigirnos al apartado crditos entrelazados y
progresivos, ya que es necesario configurar AnimeIVTC para que funcione correctamente.

Recomiendo encarecidamente que realices un lossless rendering pass(recordemos que es


guardar como archivo de video sin comprimir, mira hacia arriba si no te acuerdas) sin funcin
alguna (y quizs algo como tcomb or jaquemate antes si t tienes arcoris/punto de
rastreo), porque es muy lento cuando la configuracin de alta calidad son usadas. Podras
tambin intentar bajar la calidad del filtrado... pero no queremos. Perfeccionismo ftw!! :p

II) Descripcin de las funciones


AnimeIVTC (clip i, int "mode", int "aa", int "precision", int "killcomb", int "cache", bool "ifade" ,
bool "chrfix" , bool "blend" , bool "normconv" , int "pattern" , int "pass", bool "rendering" , int
"bbob", int "cbob", string "edimode", int "degrain", int "omode" , int "i1", int "i2", int "e1", int
"e2", int "e3", int "p1", int "p2" , int "overlap", int "pel", int "search", bool "nnedi2pel", string
"credconv" , float "dark", int "thin", int "sharp", int "smooth", bool "stabilize", int "tradius", int
"aapel", int "aaov", int "aablk", int "aatype")

Parmetros Generales (usado para todos los modos)


mode : Parmetro requerido. Define el comportamiento de la funcin.
http://www.mundodivx.org/foro/index.php?topic=37925.0

125/152

24/4/2015

?
?
?
?

1
2
3
4

Manual AviSynth

: Hard telecined
: Field blended (conversin normal de campos mezclados)
: Double hard telecined
: Hibrido

Chrfix: salo para corregir el intercambio de croma entre campos (para saber si se produce
este problema, aplicar Bob() en el clip y examinar los frames. Si en algn punto, el croma de
un frame est en el otro y viceversa, el problema est presente). Ejemplo
ifade : Detecta y corrige, la aparicin de entrelazado. salo para modo=1 o 4, ya que el clip
se equilibra en el modo=2 y 3.
? True. Habilitado pues ser ms seguro.
? False (por defecto). Se refiere a velocidad.
cache : Establece cierta cantidad de fotogramas en la cache para todas las funciones,
mediante el uso de un script del clip para prevenir la bsqueda de fallos + cambios de orden
en los frames con filtros temporales. Si utiliza demasiada cantidad, se provocara un crash,
por lo que usa menos si obtienes fallos de memoria.
? 0 to inf. (por defecto=10)
killcomb : Elimina algn resto de entrelazado. salo para modo=1 o 4, ya que el clip se
equilibra en el modo=2 y 3.
? 0 : No elimina entrelazado
? 1 : Elimina entrelazado (por defecto)
? 2 : Lento, pero ms agresivo que la opcin 1.
? 3: Incluso ms lento, pero la mejor preservacin de detalles y nitidez. Muy parecido
como aa=3 [daa()]
aa : Sin dar ningn valor a este argumento significa que tendrs que comparar los 4
mtodos para seleccionar el mejor para tu fuente. Ninguno es necesariamente mejor que
otro, pero uno es el que mejor se adapta a tus necesidades. Ejemplo sin y con anti-aliasing.
? 0 : No aa. Selecciona esta opcin si prefieres llamar externamente las funciones
antialiasing que se enumeran a continuacin: ediaa(), daa(), SharpAAMCmod().
? 1 : AA basado en EEDI2() basado aa [puede ser llamado externamente como ediaa()]
? 2 : Hace un promedio de 2 interpolaciones espaciales manteniendo diferentes campos +
un contra-sharpening(afinamiento). [puede ser llamado externamente como daa()]
? 3 : Bordes especficos Sangnom() AA ? cuidado con la perdida de detalles... si puedes
aadir un poco de tiempo en el procesamiento, chale un vistazo a la opcin aa=4 [puede
http://www.mundodivx.org/foro/index.php?topic=37925.0

126/152

24/4/2015

Manual AviSynth

ser llamado externamente como maa()]


? 4 : Realiza varias cosas: Line darkening (remarca bordes), warp sharpening (enfoque de
la imagen), edge targeted Sangnom() AA (Previene al pixelizacin de bordes en forma de
sierra), limited sharpening (denoiser y sharpen) y estabilizador temporal [puede ser llamado
externamente como SharpAAMCmod()]
Las siguientes opciones se configuran, en el caso de utilizar la opcin aa=4 [SharpAAMCmod()]
aatype : Selecciona el filtro usado para AA
? "Sangnom" (por defecto)
? "EEDI2" (lento, pero a veces tiene una mejor preservacin de detalle que Sangnom)
dark : Remarca y obscurece las lneas de los bordes usando la funcin Toon, Da un efecto de
enfoque.
? 0 a 1 (por defecto = 0.2)
thin : A mayor valor = lneas ms finas, por el uso de aWarpSharp
? Por defecto = 10
sharp : Nivel de post-enfoque, realizado por LSFmod
? 0 a 100. (por defecto = 100)
? -1= La funcin intentara auto calcular el mejor valor
smooth : Nivel de post-suavizado, realizado por LSFmod
? 0 a 100 (por defecto = 100)
? -1 = La funcin intentara autocalcular un buen valor
stabilize : Estabilizacin de bordes a travs de la compensacin de movimiento (previene
parpadeo), realizado por con un promedio temporal de MDegrain ? salo si los bordes son
inestables (temblor, parpadeo,?) o como un borde-dirigido inteligente soothe()
? True (por defecto)
? False
tradius : Radio temporal (# of frames*2+1) de la estabilizacin.
? 0 to 3 (por defecto =2)
aapel : Factor de supermuestreo para clculos del vector de movimiento cuando usamos
stabilize=true. A mayor valor = mejor, pero ms lento.
http://www.mundodivx.org/foro/index.php?topic=37925.0

127/152

24/4/2015

Manual AviSynth

? 1, 2 or 4 (por defecto =1)


aablk : Determina el tamao de los bloques para los clculos del vector de movimiento
cuando usamos stabilize=true. Bloques ms grandes son menos sensibles al ruido, son ms
rpidos, pero tambin menos precisos.
? 4, 8 or 16 (por defecto =8 para SD y 16 para HD)
aaov : Determina el solapamiento de los bloques para el clculo del vector de movimiento
cuando usamos stabilize=true. A mayor valor = mejor, pero ms lento.
? Debe ser incluso y superior a la mitad de aablk (por defecto =4 para SD y 8 para HD)

Crditos entrelazados o progresivos


i1/i2/p1/p2/e1/e2/e3: Toma los nmeros de los frames para la funcin, de modo que cada
seccin es correctamente procesada. Usa el numero de frames de tu fuente de video. No
tienes que especificar todos ellos. Para ello, puedes crear un sencillo script, llamando al
proyecto que se gener en DGIndex:
DGDecode_MPEG2Source("ruta del archivo.d2v")
De esta manera, podremos cargarlo en virtualdub, y examinar el numero del ltimo frame de
cada seccin, para posteriormente especificarlo correctamente.
? i1 : Ultimo frame de la primera seccin entrelazada del clip
? i2 : Ultimo frame de la segunda seccin entrelazada del clip
? p1 : Ultimo frame de la primera seccin progresiva del clip
? p2 : Ultimo frame de la segunda seccin progresiva del clip
? e1 : Ultimo frame de la primera seccin telecined/double hard telecined/field
blended/hibrida del clip
? e2 : Ultimo frame de la segunda seccin telecined/double hard telecined/field
blended/hibrida del clip
? e3 : Ultimo frame de la tercera seccin telecined/double hard telecined/field
blended/hibrida del clip
Ejemplo:
Si una parte de un episodio es: telecined (e1) + crditos del opening entrelazados (i1) +
episodio (e2) + crditos del endings progresivos (p1) + avance del prximo episodio (e3).
AnimeIVTC(mode=1, e1=500, i1=2500, e2=30000, p1=31200, e3=33000)
http://www.mundodivx.org/foro/index.php?topic=37925.0

128/152

24/4/2015

Manual AviSynth

omode : Determina el framerate de salida


? 1 : Convierte los crditos a el framerate de el episodio para mantener un framerate
constante. Norma obligatoria para las conversiones.
? 2 : Los crditos se mantienen 29.97 fps (la mitad de su completa resolucin temporal)
para crear un VFR clip. Obligatorio para mode=6 ya que el episodio tambin es hybrid.
Destinados para los archivos mkv.
credconv : Determina como los crditos sern convertidos para omode=1
? ?mocomp? : Usa la compensacin de movimiento. salo cuando tengas antecedentes de
bajo movimiento para obtener una mezcla libre y estable del clip.
? "blend" : Los frames se combinan para reducir la tasa de fotogramas (framerate)
overlap : Solapamiento de los bloques para el clculo de vectores de movimiento. A valores
ms altos = mejor, pero ms lento. salo para ?mocomp?
? 0, 2 o 4 para SD (defecto=4)
? 0, 2, 4, 6 o 8 para HD (defecto=8)
pel : Factor de supermuestreo para clculos del vector de movimiento. A mayor valor =
mejor, pero ms lento. salo para ?mocomp?
? 1, 2 o 4 (defecto=2)
search: Las pruebas son divertidas. 4 y 5 son generalmente mejor que 2 para una velocidad
parecida. salo para ?mocomp?
? 2 (Bsqueda logartmica, tambin llamada bsqueda Diamond) (defecto)
? 3 (bsqueda exhaustiva) ? la ms lenta, pero los mejores resultados SAD-wise
(bsicamente el mo-comp es hecho para calcular la suma de las diferencias absolutas entre
bloques para determinar si el mismo elemento se ha movido o es diferente).
? 4 (bsqueda hexagonal ? similar a x264) (default)
? 5 (Desigual multibusqueda hexagonal ? similar a x264)
nnedi2pel: Usa nnEDI para interpolacin. True = normalmente el mejor. salo para ?
mocomp?
? true
? false (defecto)
pass: Crear un clip VFR, requiere dos pasadas. El archivo que debes usar para el codificado
final/secuencia filtrada, debe ser la nica generada por pass=2. salo para omode= 2
? 1 : brelo con VirtualDub, en la pestaa file selecciona ?run video analysis pass?, espera
hasta que termine, y luego cierra VirtualDub O haz una pasada rendering("rendering pass")
http://www.mundodivx.org/foro/index.php?topic=37925.0

129/152

24/4/2015

Manual AviSynth

del archivo AVI, para su uso posterior y evitar el clculo de la misma cosa dos veces, una
para el anlisis y otra para decmate (guardando el clip filtrado en un lossless (sin
perdidas)). Por ejemplo con Lagarith o HuffYUV. A esto se refiere a filtrar el video sin
comprimir.
? 2 : Recarga el mismo script con pass=2. Usa el nuevo archivo AVI como fuente si hiciste el
rendering pass. Despus de filtrar todo, Codifica. Entonces, coge el ?timecode.txt? y
adelo como timecode para la cadena de video en mkvmerge
rendering : Si hiciste un rendering pass, esto ser basado nicamente VFR decimation en los
archives escritos por pass=1. Usalo para omode=2 y pass=2.
? True (hiciste un rendering pass nicamente necesitas hacer decimate en pass=2)
? False (no creaste ningn archive intermedio (default)
cbob: A mayor valor = ms lento, pero ms preciso... Aqu, la eleccin es calidad frente a
velocidad. salo para crditos entrelazados.
? 0 : El mas rpido, solo TDeint
? 1 : Bueno (TDeint + nnedi2 para interpolacin)
? 2 : Algo mejor (TDeint + nnedi2 + motion mask)
? 3 : Alternativo (Yadifmod + nnedi2 para interpolacin)
? 4 : El ms estable bobber - TGMC. Lento. (default)
edimode: Te dice que filtro usar para la interpolacin con cbob=4. El mejor depende de tu
fuente. salo para crditos entrelazados.
? "yadif"
? "eedi2"
? "nnedi2" (default)
degrain: Radio temporal [(numero de fotogramas a usar X 2) + 1] para el paso final de
degraining con cbob=4. Mayor valor = Ms lento + ms lenta eliminacin de ruido + ms
estable. salo para crditos entrelazados.
? 1 (default)
? 2
? 3

Hard Telecine (mode=1)


precision: A mayor valor= ms lento, pero ms preciso?Aqu, la diferencia de opciones
consisten en la necesidad entre calidad y velocidad de procesamiento.
? 0 : La ms rpida, pero ms probabilidad de produccin de efectos deja (bordes en
sierra, restos de entrelazado, etc. etc.)
http://www.mundodivx.org/foro/index.php?topic=37925.0

130/152

24/4/2015

Manual AviSynth

? 1 : Muy bueno (usa Tdeint para desentrelazar)


? 2 : Incluso mejor (Tdeint + nnedi para interpolacin)
? 3 : Optimo (Tdeint + nnedi + motion mask) (defecto)
blend: Si tienes un caso de blend telecine, o imagenes blend-deinterlacing de telecined.
Patrn 3:2 - 3 limpios, 2 mezclados (blended). En total debe ser 50/50.
? True
? False (default)

Field blended (mode=2)


bbob: A mayor valor = ms lento, pero ms preciso?Es calidad en contra de velocidad. Mocomp NO es recomendado para material mezclado (blended), pero lo deje por si en tu caso
tienes problemas de estabilidad con otros bobbers.
? 0 : El ms rpido, solo TDeint
? 1 : Bueno (TDeint + nnedi2 para interpolacin)
? 2 : Algo mejor (Tdeint + nnedi + motion mask)
? 3 : Alternativo (Yadifmod + nnedi2 para interpolacin)
? 4 : El ms estable bobber - TGMC. Lento. (default)
edimode: Le dice que filtro usar para interpolacin espacial usando cbob=4. El mejor
depende de tu fuente de video.
? "yadif"
? "eedi2"
? "nnedi2" (defecto)
degrain: Radio temporal [(numero de frames para usar * 2) + 1] para el ltimo paso con
cbob=4. Mayor valor = Ms lento + ms lenta eliminacin de ruido + ms estable
? 1 (defecto)
? 2
? 3
normconv: Establece true si tu fuente fue blend-converted desde PAL a NTSC o viceversa.
? True : Cambia framerate a 25 fps si la fuente es NTSC o a 23.976 fps si es PAL
? False : Mantiene 25 fps si la fuente es PAL y 23.976 si la fuente es NTSC (default)

Double Hard Telecine (mode=3)


cbob: A mayor valor = ms lento, pero ms preciso... Aqu, la eleccin es calidad frente a
http://www.mundodivx.org/foro/index.php?topic=37925.0

131/152

24/4/2015

Manual AviSynth

velocidad. salo para crditos entrelazados.


? 0 : El ms rpido, solo TDeint
? 1 : Bueno (TDeint + nnedi2 para interpolacin)
? 2 : Algo mejor (Tdeint + nnedi + motion mask)
? 3 : Alternativo (Yadifmod + nnedi2 para interpolacin)
? 4 : El ms estable bobber - TGMC. Lento. (default)
edimode: Le dice que filtro usar para interpolacin espacial usando cbob=4. El mejor
depende de tu fuente de video.
? "yadif"
? "eedi2"
? "nnedi2" (defecto)
degrain: Radio temporal [(numero de frames para usar * 2) + 1] para el ltimo paso con
cbob=4. Mayor valor = Ms lento + ms lenta eliminacin de ruido + ms estable
? 1 (defecto)
? 2
? 3
pattern: Le dice a la funcin como aplicar decmate a 23.976 fps.
? 0 El ms seguro. Use TDecimate(defecto)
? -1 Compara de 1 a 5
? 1 a 5. Si tu fuente tiene un patrn fijo, encuntralo con -1 usando el apropiado ser el
ms rpido y visualmente mejor, pero tan pronto como haya un cambio, todo ser un
desastre. Se cuidadoso

Hybrid (mode=4)
precision: Valor ms alto = ms lento, pero ms preciso?La nica diferencia es entre la
calidad y la velocidad.
? 0 : El ms rpido (bordes en sierra, entrelazado, etc. etc.)
? 1 : El mejor (usa un desentrelazador externo)
? 2 : Incluso mejor (Tdeint + nnedi para interpolacin)
? 3 : Optimo (Tdeint + nnedi + motion mask) (defecto)
omode: Determina el framerate de salida
? 1 : Convierte las secciones 30p to 24p, mediante la mezcla de frames juntos, para
mantener un framerate constante.
? 2 : Las secciones 30p se mantienen a 29.97 fps para crear un VFR clip. Destinados para
http://www.mundodivx.org/foro/index.php?topic=37925.0

132/152

24/4/2015

los archivos mkv.

Manual AviSynth

pass: Crear un clip VFR, requiere dos pasadas. El archivo que debes usar para el codificado
final/secuencia filtrada, debe ser la nica generada por pass=2. salo para omode= 2
? 1 : brelo con VirtualDub, en la pestaa file selecciona ?run video analysis pass?, espera
hasta que termine, y luego cierra VirtualDub.
Otra opcin es hacer un lossless rendering pass (En VirtualDub, fast recompress y codec
lossless). De esta manera, a la par que hacemos la primera pasada para el clculo de VFR,
podemos filtrar el video generando un archivo sin perdidas (lossless) para su uso posterior
en la segunda pasada. Por ejemplo con Lagarith o HuffYUV. Ejemplo:
DGDecode_MPEG2source("E:\DB_23\133\133.d2v", info=3)
Animeivtc(mode=4, aa=0, omode=2, pass=1)
Lsfmod()
Toon()
Este seria, el cdigo del script AVS con nuestro filtrado, que cargaremos en VirtualDub o
MeGui. Y haramos, un lossless rendering pass. Y creara un archivo AVI.
? 2 : Recarga el mismo script con pass=2. Usa el nuevo archivo AVI como fuente si hiciste el
rendering pass. Cargas el archivo y lo codificas. A su vez se creara un archivo llamado ?
timecode.txt?, el cual tendras que aadirlo en mkvmerge.
Avisource("E:\DB_23\133\133.avi")
Animeivtc(mode=4, aa=0, omode=2, pass=2)
Con este cdigo codificaramos nuestro archivo y obtendramos el timecodes.
rendering: Si hiciste un rendering pass, esto ser basado nicamente VFR decimation en los
archives escritos por pass=1. salo para omode=2 y pass=2.
? True (hiciste un rendering pass nicamente necesitas hacer decimate en pass=2)
? False (no creaste ningn archive intermedio (default)

III) Ejemplos
Ejemplo I
Ejemplo II
http://www.mundodivx.org/foro/index.php?topic=37925.0

133/152

24/4/2015

Manual AviSynth

AnimeIVTC es fcil de usar? si tienes preguntas despus de leer el manual, por favor
postalas en nuevo hilo en el subforo de Edicion de Video.
Aqu hay manera de multiprocesado, pero puedes usar el concepto de diferentes maneras
(cargando desde diferentes discos duros + salida a diferentes discos duros y as
sucesivamente). Solo he utilizado 3 ncleos, porque fue demasiado para la fuente del disco
duro, incluso cuando se escribe a 4 diferentes. NO utilizarlo para codificar VFR, donde el
anlisis y la decimation debe hacerse de un sola vez.
xxxsource("file.ext")
AnimeIVTC([Settings])
threads = 3
x=(framecount()/threads)
A=trim(0,x)
B=trim(x+1,2*x)
C=trim(2*x+1,0)
A#Carga ste script en virtualdub y guardalo como rendering1. Despues cambia A por la B,
guardalo en otro script y abrelo en virtualdub y guardalo como rendering2, idelamente en otro
disco duro... etc. De esta manera tendriamos tres instancias de virtualdub trabajando a la vez, y
reduciendo el tiempo de codificacion por tres.
#Despues de codificar las tres partes, carga los diferentes archivos, mediante otro script como
este:
#a=avisource(rendering1 file with path)
#b=avisource(rendering2 file with path)
a+b+.....#Con este script ya podriamos comprimir el video.
Recordad que un filtrado rendering, consiste en cargar un script en virtualdub, seleccionar la
opcion FAST RECOMPRESS, y elegir un codec de compresion sin perdidas, ya sea Lagarith o
Huffyuv
ltima modificacin: 09 de Marzo de 2012, 16:26 por overdrive80

piscator
C olaborador
http://www.mundodivx.org/foro/index.php?topic=37925.0

En lnea

Re: Manual AviSynth


Respuesta #11: 02 de Febrero de 2011, 00:58
134/152

24/4/2015

Manual AviSynth

Desconectado
Registrado: 18/04/2008
Mensajes: 1.809
Valoracin: 1

Uso de mltiples ncleos en filtros avisynth.


Filtro MT
El MT es un filtro de avisynth que permite utilizar otros filtros usando los diferentes procesadores
que tiene nuestra cpu.
Adems de necesitar el MT.dll y cargarlo en nuestro script vamos a necesitar una versin
modificada de avisynth. Viene adjuntada en el hilo.
Simplemente cambiamos el avisynth.dll que tuviramos instalado en windows>system32 por el
descargado, as como los plugins donde corresponda. Si an no tenemos el avisynth instalado o
es una versin diferente de la 2.5.8, lo descargamos de la seccin de descargas (Avisynth 2.5.8),
la instalamos y hacemos el cambio.
El poder usar varios ncleos se puede conseguir de dos formas, que son los dos modos que tiene
de trabajar. Obviamente la sintaxis cambiar de uno a otro.
Forma 1: dividiendo una imagen en varias partes (2, 4, ...) y que cada procesador se ocupe de
una parte.
Sintaxis:
MT("filtro_que_vayamos_a_usar", threads,overlap)
threads: ser el nmeros de procesadores que tenga nuestra cpu. En caso de duda, podemos
dejar 0 y detecta los threads disponibles automaticamente
overlap: cuantos pxeles queremos que se solapen en las zonas de divisin de las partes. esto es
importante, ya que muchos filtros se comportan de manera diferente en los bordes, y para evitar
efectos indeseados podemos hacer un overlap por ejemplo de 4 pxeles.
ejemplo: MT("Degrainmedian()",threads=2,overlap=4) #para dos cores con 4 de overlap
Una imagen explicativa

http://www.mundodivx.org/foro/index.php?topic=37925.0

135/152

24/4/2015

Manual AviSynth

Forma2: que cada procesador se ocupe de una frame. Si tenemos dos cores, uno se ocupar de
la 1, 3, 5, 7... y otro de la 2, 4, 6, ...
Sintaxis
SetMTMode(mode, threads) #colocado al principio del script
Hay varios modos, del 1 al 6
mode=1 es ms rpido pero solo funciona con unos pocos filtros.
mode=2 usa ms memoria pero funciona con la mayora de los filtros.
mode=3 es ms lento, pero funciona en aquellos filtros en los que no se puede usar el 1 o el 2.
mode=4 combinacin del 2 y el 3. funciona con ms filtros an pero es ms lento y consume ms
memoria
http://www.mundodivx.org/foro/index.php?topic=37925.0

136/152

24/4/2015

Manual AviSynth

mode=5 demasiado lento (ms lento que si no se usara)


mode=6 modificacin del 5 que lo hace algo ms rpido
ejemplo:
SetMTmode(2, 0)
LoadPlugin("...\fft3d.dll")
fft3dfilter()
Una imagen explicativa

http://www.mundodivx.org/foro/index.php?topic=37925.0

137/152

24/4/2015

Manual AviSynth

Reflexiones importantes:
Todos los filtros/scripts que funcionan en SetMTMode (1) o (2) funcionan perfectamente en MT().
No al revs.
Algunos filtros/scripts slo van bien usando MT().
Por lo tanto, recomendamos usar MT(), y mejor con las triples comillas en lugar de una. De ese
modo se pueden cargar las funciones ms importantes sin problemas.
Los que posean Intel Core? i3,i5 o i7 con hyperthreating recordad que podis poner ms ncleos.
Consultad las especificaciones de vuestro procesador, o en caso de duda deja 0 para que lo
autodetecte.

Ejemplos probados por nuestros colaboradores que funcionan sin problema:


MCTD
MT("""MCtemporaldenoise(settings="very low")""", threads=4, overlap=4)
Cabe suponer, que si MCTD es una funcin que usa un montn de filtros y funciona, todos esos
filtros usados individualmente habrn de funcionar. Y as es.
MDegrain3 (y MDegrain2 o 1)
MT("""
super = MSuper(pel=2, sharp=1)
backward_vec3 = MAnalyse(super, isb = true, delta = 3, overlap=4)
backward_vec2 = MAnalyse(super, isb = true, delta = 2, overlap=4)
backward_vec1 = MAnalyse(super, isb = true, delta = 1, overlap=4)
forward_vec1 = MAnalyse(super, isb = false, delta = 1, overlap=4)
forward_vec2 = MAnalyse(super, isb = false, delta = 2, overlap=4)
forward_vec3 = MAnalyse(super, isb = false, delta = 3, overlap=4)
MDegrain3(super,
backward_vec1,forward_vec1,backward_vec2,forward_vec2,backward_vec3,forward_vec3,thSAD=300)
""",threads=4,overlap=4)
FFT3Dfilter
MT("""fft3dfilter()""", threads=4, overlap=4)
DFTTEST
MT("""dfttest()""", threads=4, overlap=4)
TTempsmooth
MT("""
http://www.mundodivx.org/foro/index.php?topic=37925.0

138/152

24/4/2015

TTempsmooth(maxr=5)
""",8,4)

Manual AviSynth

GrainFactory3
MT("""
GrainFactory3(g1str=4, g2str=5, g3str=8)
""",8,4)
GradFun2DBmod
MT("""
GradFun2DBmod()
""",8,4)
etc.

Recordad que las configuraciones de cada filtro estn explicadas en el Manual de Avisynth
Si queris usar ms de un filtro en MT podemos escribir algo tal que as:
MT("""
filtro_1
filtro_2
filtro_n
""",4,4)
por ejemplo
MT("""
FFT3Dfilter()
TTempSmooth()
""",4,4)
En lnea

Overdrive80
Amigo de MundoDivX
Desconectado

http://www.mundodivx.org/foro/index.php?topic=37925.0

Ajustes de framerate
Respuesta #12: 26 de Septiembre de 2013,
06:29

Bueno, con este comentario me gustara complementar la informacin del manual, que al parecer
139/152

24/4/2015

no aparece una cosilla.

Manual AviSynth

Esto ha surgido ha raiz de que me planteo hacer una conversin de framerate y estaba buscando
el mejor resultado. Info basada en http://avisynth.nl/index.php/AssumeFPS
Registrado: 25/08/2010
Mensajes: 1.515
Valoracin: 14

Imaginemos que partimos de un video FILM (29.970 fps) pero que al invertir el pulldown
obtenemos un video a 24p.

Depravado sin remedio

http://www.mundodivx.org/foro/index.php?topic=37925.0

140/152

24/4/2015

Manual AviSynth

Los datos de referencia son:


23.976 fps
35469 frames
24:39.35

AssumeFPS
Como ya viene en el manual assumefps, lo que hace es modificar la velocidad de reproduccion
(modifica framerate) sin eliminar frames del video original, pero como contrapartida la duracin del
video es distinto al original. En la siguiente imagen lo vamos a ver mejor ilustrado:

http://www.mundodivx.org/foro/index.php?topic=37925.0

141/152

24/4/2015

Manual AviSynth

Los datos tras la conversin, son:


25.000 fps
http://www.mundodivx.org/foro/index.php?topic=37925.0

142/152

24/4/2015

35469 frames
23:38.76

Manual AviSynth

El framerate ha aumentado a 25 fps, el nmero de frames o framecount es constante y la duracin


del video es menor.

ChangeFPS
Como ya viene en el manual Changefps, lo que hace es modificar la velocidad de reproduccion
(modifica framerate), mediante la eliminacin o insercin de frames. La duracin del video no se ve
afectada.

http://www.mundodivx.org/foro/index.php?topic=37925.0

143/152

24/4/2015

Manual AviSynth

Los datos tras la conversin, son:

25.000 fps
36984 frames
24:39.36
El framerate ha aumentado a 25 fps, el nmero de frames o framecount ha aumentando y la
duracin del video es constante.

ConvertFPS
Lo que hace es modificar la velocidad de reproduccion (modifica framerate), mediante la eliminacin
o insercin de frames. La duracin del video no se ve afectada.

http://www.mundodivx.org/foro/index.php?topic=37925.0

144/152

24/4/2015

http://www.mundodivx.org/foro/index.php?topic=37925.0

Manual AviSynth

145/152

24/4/2015

Manual AviSynth

Los datos tras la conversin, son:

25.000 fps
36984 frames
24:39.36
El framerate ha aumentado a 25 fps, el nmero de frames o framecount ha aumentando y la
duracin del video es constante.

Qu diferencia existe entre Changefps y Convertfps?


El resultado final, en cuanto a datos de conversin, es el mismo. Sin embargo, la manera del tratar
el video es diferente. Convertfps en su configuracin por defecto, inserta o elimina frames con la
opcin blending. Esto crear un horroroso resultado a nuestra conversin de NTSC-->PAL; no lo
usara jams.
Segn la documentacin:
"El filtro intenta modificar el framerate del clip a una nueva velocidad sin eliminar o insertar frames,
proporcionando una conversin fluida con resultados similares a los productos con decodificadores
independiente. El archivo resultante tendr (casi) la misma duracin del clip, pero el numero de
frames cambiar proporcionalmente con respecto a los framesrates de la fuente y el archivo que
se va a generar.
El filtro tiene dos modos. Si el argumento opcional zone no ha sido definido, se mezclaran los
frames adyacentes, ponderado por un factor de mezcla proporcional a los tiempos relativos de los
frames ("Blend mode"). Si zone ha sido definido, se pasar de un frame del video a al siguiente
("Switch Mode") cada vez que un nuevo frame del archivo origen comienza, por lo general esto
ocurre en alguna parte de la mitad del frame resultante. Switch Mode asume que el archivo de
salida ser reproducido en una TV en donde cada frame es escaneado de arriba a abajo. El
parametro zone, especifica la altura de la zona de transicin en la que el actual frame ser
mezclado con el siguiente.
Blend Mode causar de manera leve, desenfoque de movimiento (blending). Esto es un artefacto
tipico de una conversin de framerate y se puede ver en las cintas de video comercial y en
http://www.mundodivx.org/foro/index.php?topic=37925.0

146/152

24/4/2015

Manual AviSynth

programas de TV. Cuando se trabaja con video entrelazado, es importante permitirle al filtro
trabajar en cada campo por separado, y no con frames entrelazados. (Mirar ejemplos mas abajo)
Switch Mode es un intento de evitar el desenfoque de movimiento, pero acosta de leves
parpadeos y artefactos de movimiento. Puede aparecer bamboleos como un desplazamiento de
camara horizontal o vertical. Algunos frames incluso despues de esta conversin puede aparecer
"rotos" o con lineas verticales "dobladas" en escenas en movimiento. Cambios de escena pueden
ocurrir en la mitad de un frame. Sin embargo, el resultado parece menos borroso que con "Blend
Mode".
Ningn modo es perfecto. Cada uno depende de la preferencia personal y del material que
vayamos a usar. Switch Mode probablemente slo es adecuado si la salida se muestra en un
televisor, no en una pantalla de ordenador.
Una conversin de Framerate es algo complicado. Este filtro implementa dos metodos comunes
usados en los sistema de conversin comercial. El resultado suele ser bastante bueno. Muchos
sistemas sofisticados emplean algoritmos de interpolacin de movimiento, que son dificiles de
entender pero que si se hacen correctamente, nos proporcionan mejores resultados.
Un material convertido con este filtro no debe ser convertido de nuevo. El efecto borroso que
genera aumenta exponencialmente con las recodificaciones posteriores.
Los datos del audio no son modificados por este filtro. El audio se mantendr sincronizado,
aunque la londitud del audio podria diferir ligeramente con la del video, tras la conversin. Esto es
porque el archivo generado unicamente puede contener un numero entero de frames. Este efecto
ser ms pronunciado en clips de corta duracin. La diferencia de duracin debe ser ignorada.

Parametros:
ConvertFPS(clip
ConvertFPS(clip
ConvertFPS(clip
ConvertFPS(clip

clip, float new_rate [, int zone, int vbi])


clip, int numerator [, int denominator, int zone, int vbi])
clip1, clip clip2 [,int zone, int vbi])
clip1, string preset [, int zone, int vbi])

new_rate: El framerate que buscamos. Puede ser un numero entero o decimal. En "Blend Mode",
new_rate debe ser al menos 2/3 (66.7%) del framerate del video original, u ocurrir un error. Esto
es para evitar que frames sean omitidos. Si necesitas hacer un slowdown del framerate menor de
ese porcentaje, entonces usa "Switch Mode".
zone: (Opcional) Si se especifica, pone el filtro en "Switch Mode". Debe ser un numero mayor o
http://www.mundodivx.org/foro/index.php?topic=37925.0

147/152

24/4/2015

Manual AviSynth

igual a cero. Si es cero, el filtro llevar a cabo un "hard switch", por lo que mostrar
inmediatamente el siguiente frame por debajo de la linea definida en zone. Si es mayor que cero,
especifica la altura (en lineas) de la zona de transicin, en donde cada frame es mezclado
gradualmente con el siguiente. Zone=80 proporciona un buen resultado para video con una
resolucin de 480 or 576 lineas activas. La transicin se hace de la misma manera que con
PeculiarBlend(). zone debe ser menor o igual al numero de lineas del frame de salida que
corresponde con la duracin del frame de origen. Normalmente es 5/6 o 6/5 de la altura del video
de salida, es decir, unos pocos cientos de lineas. Un error se producir si se elige un valor mayor.
vbi: (Opcional) En Switch Mode, especifica que filtro debe ser aplicado para una correcin de
tiempo en el intervalo de borrado vertical (vertical blanking interval - VBI). Un numero mayor que
cero, indica la altura del VBI del archivo de salida, en lineas. Lo ms tipico vbi=49 para PAL y
vbi=45 para NTSC, pero estos valores no son fundamentales. Ignorados en Blend Mode."

Conclusin:
Si no te importa que cambien el tiempo del video, usa assumepfs. Si te importa pq puedes perder
la sincro, solo tienes que configurarlo de manera que avisynth ajuste el audio al video, con el
consecuente cambio de medio tono del audio.
Si te importa el que cambie el tiempo del video, y no quieres modificar el audio; mi recomendacin
es que no uses ni Changefps ni Convertfps. Y en todo caso, changefps antes que convertfps.
Pero lo ms adecuando y de calidad, es una conversin con filtros de interpolacin de movimiento.
Pondr unos ejemplos:
Conversin PAL a NTSC(SD to SD)
Cdigo: [Se le ccionar]

http://www.mundodivx.org/foro/index.php?topic=37925.0

148/152

24/4/2015

Manual AviSynth

#Frameserve in RGB24 format


AviSource("d:\fs.avi")
ConvertToYUY2(interlaced=true, matrix="PC.601")
#ColorYUV(levels="TV->PC") #Restores levels if frameserved in YUY2
QTGMC( SubPel=2 ) # SubPel must match pel in MSuper below
super = MSuper(levels=1, pel=2) # Only need multiple levels for MAnalyse
#super = MSuper(levels=1, pel=2, hpad=16, vpad=16) # For faster QTGMC presets
MFlowFps(super, QTGMC_bVec1, QTGMC_fVec1, num=60000, den=1001)
Spline36Resize(720,480)
AssumeBFF()
SeparateFields()
SelectEvery(4,0,3)
weave()

Conversin NTSC a PAL (SD to SD)


Cdigo: [Se le ccionar]
#Frameserve in RGB24 format
AviSource("d:\fs.avi")
ConvertToYUY2(interlaced=true, matrix="PC.601")
QTGMC( SubPel=2 ) # SubPel must match pel in MSuper below
super = MSuper(levels=1, pel=2) # Only need multiple levels for MAnalyse
#super = MSuper(levels=1, pel=2, hpad=16, vpad=16) # For faster QTGMC presets
MFlowFps(super, QTGMC_bVec1, QTGMC_fVec1, num=50, den=1)
Spline36Resize(720,576)
AssumeBFF()
SeparateFields()
SelectEvery(4,0,3)
weave()

1080-50i to SD NTSC
Cdigo: [Se le ccionar]

http://www.mundodivx.org/foro/index.php?topic=37925.0

149/152

24/4/2015

Manual AviSynth
#Frameserve in RGB24 format (or RGB32 if AviSynth will not accept RGB24)

AviSource("d:\fs.avi")
AssumeTFF()
ConvertToYUY2(interlaced=true, matrix="PC.601")
Spline36Resize(720,height)
QTGMC("faster", sharpness=0, SubPel=2) #SubPel must match pel in MSuper below
super = MSuper(levels=1, pel=2)
MFlowFps(super, QTGMC_bVec1, QTGMC_fVec1, num=60000, den=1001)
Spline36Resize(width,480)
blur(0.0,1.0)
sharpen(0.0,0.75) #Adjust 2nd value between 0.5 and 1.0 to taste
separatefields()
SelectEvery(4,0,3)

1080-50i to 1080-60i
Cdigo: [Se le ccionar]
#Frameserve in RGB24 format (or RGB32 if AviSynth will not accept RGB24)
AviSource("d:\fs.avi")
AssumeTFF()
ConvertToYUY2(interlaced=true, matrix="Rec601") #Rec601 is correct for encoding Ut Video Codec or Lagarith in Vdub
QTGMC("faster", SubPel=2) #SubPel must match pel in MSuper below
super = MSuper(levels=1, pel=2)
#super = MSuper(levels=1, pel=2, hpad=16, vpad=16) #For very fast and quicker QTGMC presets
MFlowFps(super, QTGMC_bVec1, QTGMC_fVec1, num=60000, den=1001)
separatefields()
SelectEvery(4,0,3)
Weave()

1080-50i or 1080-60i to 1080-24p (23.976p)


Cdigo: [Se le ccionar]

http://www.mundodivx.org/foro/index.php?topic=37925.0

150/152

24/4/2015

Manual AviSynth
#Frameserve in RGB24 format (or RGB32 if AviSynth will not accept RGB24)
AviSource("d:\fs.avi")

AssumeTFF()
ConvertToYUY2(interlaced=true, matrix="Rec601") #Rec601 is correct for encoding Ut Video Codec or Lagarith in Vdub
QTGMC("faster", SubPel=2) #SubPel must match pel in MSuper below
super = MSuper(levels=1, pel=2)
#super = MSuper(levels=1, pel=2, hpad=16, vpad=16) #For very fast and quicker QTGMC presets
MFlowFps(super, QTGMC_bVec1, QTGMC_fVec1, num=24000, den=1001)

FILM (24p) to PAL (25p)


Cdigo: [Se le ccionar]
DGDecode_mpeg2source("XXXX\VideoFile.d2v", info=3)
assumetff()
#Realizamos el Inverse Telecine para pasar de 29.97i a 24p
tfm(order=1,pp=6,mode=4).tdecimate(mode=1)
super = MSuper(pel=2,hpad=10, vpad=10)
backward_vec = MAnalyse(super, isb = true,truemotion=true)
forward_vec = MAnalyse(super, isb = false,truemotion=true)
MFlowFps(super, backward_vec, forward_vec, num=25, den=1, blend=false, thSCD1= 60, thSCD2= 40)

ltima modificacin: 11 de Abril de 2015, 15:47 por Overdrive80

Pginas: [1]

En lnea

IMPRIMIR

Ir A rriba

anterior prximo
Foro MundoDivX & H264 | General y otros temas | Manuales (Moderadores: Dressler, LUCHOO, Amrmol, 888) |
Manual AviSynth

Ir a:

http://www.mundodivx.org/foro/index.php?topic=37925.0

=> Manuales

ir

151/152

24/4/2015

Manual AviSynth
SMF 2.0.9 | SMF 2014, Sim ple Ma chine s
Ya bb SE C la ssic 2.0, by Ak yhne

| XHTML R SS W AP2

P gina ge ne ra da e n 2.371 se gundos con 20 consulta s.

http://www.mundodivx.org/foro/index.php?topic=37925.0

152/152