View
397
Download
121
Category
Preview:
DESCRIPTION
Manual AviSynth
Citation preview
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 1/152
24 de Abril de 2015, 10:36
Buscar
Foro MundoDivX & H264 | General y otros temas | Manuales (Moderadores: Dressler, LUCHOO, Amrmol, 888) |
Manual AviSynth
Pginas: [1] Ir Abajo
Manual AviSynth Mensaje inicial: 03 de Noviembre de 2009,
01:50
888Moderador
Desconectado
Bienvenido(a), Visitante.
Por favor, ingresa o
regstrate. Perdiste tu
email de activacin?
Ingresar
Siempre Ingresar
Ingresar con nombre de usuario, contrasea y duracin de la sesin
Noticias: AC3 Filter 2.6.0b
Esta nueva versin de AC3 Filter resuelve un problema de cuelgues en WindowsMedia Player, problemas relacionados con el ACM driver y con el SPDIF, y aadems combinaciones de speakers. Las traducciones han sido tambin actualizadas.http://www.mundodivx.org/foro/index.php?topic=42280.0
anterior prximo
Autor Tema: Manual AviSynth (Ledo 85308 veces)
murriato, frank_zappa y 1 Visitante estn viendo este tema.
Presentacion
Inicio Ayuda Buscar Ingresar Registrarse
IMPRIMIR
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 2/152
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).
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 3/152
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:
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 4/152
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.
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 5/152
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)
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 6/152
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, 15 \
,4,7)
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:
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 7/152
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).
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 8/152
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
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 9/152
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. Secomponen 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 sevemos 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.
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 10/152
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
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 11/152
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.
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 12/152
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.
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 13/152
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:
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 14/152
ltima modificacin: 13 de Marzo de 2015, 15:19 por 888
3Me gustaTweet 00
Carga y Manipulacion Respuesta #1: 04 de Noviembre de 2009, 02:20
888Moderador
Desconectado
Registrado: 26/06/2006
Mensajes: 8.872
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
En lnea
Encuentra los mejores manuales en la web: www.mundodivx.com/manuales.php
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.
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 15/152
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
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 16/152
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.
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 17/152
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
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 18/152
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
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 19/152
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.
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 20/152
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/Pause-
Resume.
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
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 21/152
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
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 22/152
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)
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 23/152
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
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 24/152
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.
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 25/152
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
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 26/152
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)
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 27/152
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.
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 28/152
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.
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 29/152
ltima modificacin: 13 de Marzo de 2015, 15:30 por 888
Re: Manual AviSynth nueva estructura (por
favor no postear) Respuesta #2: 04 de Noviembre de 2009, 02:28
888Moderador
Desconectado
Registrado: 26/06/2006
Mensajes: 8.872
Valoracin: 8
Sexo:
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.
En lnea
Encuentra los mejores manuales en la web: www.mundodivx.com/manuales.php
Filtros para Transformaciones Geometricas
AddBorders[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 .
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 30/152
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 derecha-
izquierda, 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()
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 31/152
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
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 32/152
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
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 33/152
ltima modificacin: 15 de Enero de 2015, 20:53 por 888
Denoisers Respuesta #3: 07 de Noviembre de 2009, 02:56
888Moderador
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.
En lnea
Encuentra los mejores manuales en la web: www.mundodivx.com/manuales.php
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 34/152
Desconectado
Registrado: 26/06/2006
Mensajes: 8.872
Valoracin: 8
Sexo:
Denoisers Espaciales
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]
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 35/152
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
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 36/152
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.
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 37/152
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.
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 38/152
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
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 39/152
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.
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 40/152
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.
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 41/152
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.
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 42/152
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
24/4/2015 Manual AviSynth
http://www.mundodivx.org/foro/index.php?topic=37925.0 43/152
Recommended