Professional Documents
Culture Documents
Todos ya sabrán a que nos referimos cuando hablamos de h264, y pues para el
que no sabe, lea este artículo en wikipedia: http://es.wikipedia.org/wiki/AVC, por
lo que nos queda definir que es MeGUI; MeGUI es la interfaz gráfica del codec
x264 que incluye todas las opciones avanzadas del codec y permite crear
videos en H264 multiplexados en mp4 y mkv, no sólo esto, también puede
encodear en XVID, crear scripts avs (archivos de aviynth), generador de
proyectos .d2v (esto para ripeo de DVD) y muchas otras cosas, lo que lo
convierte en una herramienta muy completa.
Reset All Dialogs: Como su propio nombre indica pulsar este botón permite
volver a la configuración "de fábrica" de MeGUI.
Configure Source Detector: Si pulsamos este botón podremos modificar
parámetros que modifican el análisis, etc que efectúa MeGUI a la hora de
acceder a las fuentes de vídeo, etc con las que queremos trabajar. Se
recomienda no modificar los valores por defecto.
Program Paths:
En la pestaña audio nos dirigimos a donde dice neroAccEnc, en este se debe
colocar la ruta del encoder de audio de Nero, que lo puedes descargar de aquí,
te descargarás un .zip el cual contiene el archivo neroAccEnc.exe. Este
encoder es gratuito.
Pestaña filters:
Source info: Al hace clic en analyse, esta herramienta revisa el video y detecta
si la fuente es entrelazada o progresiva
Deinterlace: Aquí se selecciona el filtro que se va a usar en caso la fuente sea
entrelazada.
Reize filter: Aquí se seleccionan los filtros de Resize a usar (este es uno de los
filtros más importantes a usar cuando se encodea ), los cuales son:
BilinearResize(ancho,altura)
BicubicResize(ancho,altura,b,c)
LanczosResize(ancho,altura)
Lanczos4Resize(ancho,altura)
GaussResize(ancho,altura,p)
BlackmanResize(ancho,altura)
PointResize(ancho,altura)
SplineXXResize(ancho,altura) , donde XX puede ser 16, 36 o 64
Pestaña Edit:
En esta pestaña se puede editar a “mano” el script de avisynth. Ojo si editas
algo aquí y luego cambias algo en las otras pestañas, todo lo que editaste se
borrará; así que cuidado con ello . También todo esto “, audio=false” de la
primera linea, será borrado, esto para poder crear el audio con el MeGUI.
Una vez esto hecho esto, hacer clic en el botón save, esto guardara el script,
escogen la ruta y le ponen un nombre. El script se autocargará , ahora resta
configurar el codec.
Turbo: Esta casilla sólo tiene utilidad en caso de seleccionar pasadas múltiples
(o automáticas). Su función es modificar únicamente los valores de la primera
pasada que sirve de análisis para la segunda. Los ajustes a emplear en la
primera pasada se bajarán automáticamente al mínimo permitiendo realizar el
análisis (que casi no es afectado) en un tiempo mucho menor.
Lossless: La opción Lossless sólo se encuentra disponible si en AVC Profiles
hemos seleccionado High Profile. Si la señalamos se efectuará una codificación
Const. Quantizer = 0, es decir, una codificación a una única pasada con un
valor de quantizer = 0 lo que en teoría equivale a una codificación sin pérdida
de calidad. (Por supuesto el tamaño final del vídeo en este tipo de
codificaciones es enorme).
Deblocking
Mpeg4-AVC analiza el vídeo como una rejilla compuesta de cuadrados en
movimiento. Este filtro detecta los bordes de cada cuadrado para suavizarlo.
Aunque el uso de este filtro adaptativo se recomienda en codificaciones a bajo
bitrate tras algunas pruebas he podido comprobar que su uso es beneficioso
casi en cualquier situación pues minimiza la aparición de macrobloques
ayudando en la estimación de movimiento. Aunque sus ventajas se pueden
observar casi en cualquier escena rápida es de destacar la eliminación de
macrobloques en escenas con humo, niebla, fuego, etc donde otros códecs
todavía presentan problemas.
Usando las barras de desplazamiento Strenght y Threshold podemos controlar
el filtrado Alpha y Beta, respectívamente, que se va a aplicar en los bordes de
cada bloque.
Los valores que pueden tomar las dos variantes se mueven desde -6 a +6. Los
valores negativos no conllevan que el filtro actue en sentido contrario creando
una mayor nitidez sino que el filtrado empleado será menor preservando algún
detalle más pero pudiendo aparecer el conocido ruido (mosquito noise) en los
bordes de figuras, etc; para este caso se puede aplicar el noise reducer
integrado del codec, con un valor de 100 o 200 es sufuciente. Por otro lado los
valores mayores pueden ocasionar pérdida de detalles acusada e incluso un
molesto efecto de "mancha".
En principio los dos valores deben estar relacionados, si se aplica un filtrado
agresivo también se debe aumentar el umbral de detección de bloques. Sin
embargo he podido observar en algunas configuraciones de usuarios que
prefieren conservar más detalles los valores (-2/-1) con lo que disminuye
ligéramente la detección de bloques suavizando aún más la agresividad del
filtrado. Otro buen conjunto de valores que logra muy buenos resultados para
los videos en HD, a los cuales estamos acostumbrados últimamente es (-1/-1).
Si quieres saber más acerca de este filtro echa un vistazo a la sección técnica
de Deblocking. Una buena explcación para el uso de este filtro lo dá *.mp4 guy
en el foro de doom9 (obviamente está en inglés ): How to Use Mpeg4 AVC
Deblocking effect (Small FAQ)
Misc.
PSNR calculation: x264 efectúa un análisis PSNR (calidad del vídeo) que es
mostrado al final de la codificación cuando trabajamos con la línea de
comandos. Este cálculo no influye en la calidad del vídeo obtenido por lo que
se recomienda desactivar la opción para mejorar la velocidad de codificación.
Number of Threads: Esta opción hace referencia a la posibilidad de "dividir" la
codificación en distintos "hilos" para aprovechar las ventajas de velocidad que
ofrecen los nuevos procesadores de doble núcleo, procesadores con
Hyperthreading, etc.
fourCC: Aquí indicamos la identidad de el códec responsable de la codificación
para que pueda ser conveniéntemente reproducido. x264 no debería ser
modificado para asegurarnos la reproducción sin problemas. (Otros FourCC
son XVID para XviD, DX50 para DivX, etc).
AVC Profiles
Cuando comprimimos vídeo con un códec Mpeg4-AVC normálmente podemos
acceder a tres perfiles definidos para el estándar que permiten el acceso a un
número mayor o menor de opciones. Por supuesto el perfil que permite utilizar
sin limitaciones todas las opciones del códec (High Profile) es el que mejores
resultados puede obtener, sin embargo hay dispositivos, decodificadores, etc
que no soportan la reproducción de vídeos que hayan sido codificados con las
opciones más avanzadas.
Baseline Profile: Este perfil no permite el uso de características como
Lossless, Trellis, CABAC, Adaptive DCT, I8x8 ni el uso de B-Frames. Tampoco
podremos utilizar matrices distintas a la que se utiliza por defecto (matriz "flat").
Main Profile: Este perfil no permite el uso de características como Lossless,
Trellis, Adaptive DCT, I8x8 ni el uso de matrices distintas a la que se utiliza por
defecto (matriz "flat"). En cuanto a las B-Frames se pueden usar sin
restricciones excepto el uso de RDO for B-Frames.
High Profile: Este perfil permite emplear todas las opciones disponibles en los
códecs AVC sin ninguna restricción.
AVC Levels.
VBV Buffer Size: Esta opción permite limitar el tamaño máximo del Video
Buffer utilizado para la reproducción posterior del vídeo. El Video Buffer Verifier
se puede explicar como la memoria de vídeo que utiliza el decoder para
almacenar los datos que a continuación se van a reproducir. Si el tamaño es
muy grande el tiempo de comienzo de la reproducción se alargará (hasta llenar
la memoria de video), si el tamaño es pequeño la reproducción puede no ser
fluída debido a que se almacenan pocos datos previos para ser mostrados.
En algunos casos esta opción se utiliza para vídeos que van a ser reproducidos
en dispositivos de baja potencia. En todo caso se recomienda no rellenar la
casilla, lo que es lo mismo que utilizar el valor por defecto 0 que establece el
tamaño del Buffer de vídeo automáticamente.
VBV Maximum Bitrate: Aquí se especifica el Bitrate máximo que se puede
alojar en el Buffer de vídeo. Se recomienda no rellenar la casillo (el valor por
defecto 0 regula automáticamente el bitrate).
VBV Initial Buffer: En esta casilla se puede determinar el nivel de llenado del
Buffer de vídeo previo al comienzo de una reproducción. Los niveles bajos
pueden provocar una calidad inicial de vídeo reducida, los niveles altos una
calidad inicial alta de forma artificial. Se recomienda dejar el valor 0,9 por
defecto.
Bitrate Variance: La variación de bitrate (medida en porcentaje) es uno de los
parámetros que determina la facilidad con la que el códec se puede adaptar a
los cambios de escena desviándose del bitrate promedio pedido.
Un valor bajo limita la adaptibilidad del códec pero aumenta la precisión a la
hora de ajustarse al tamaño final. También facilita una reproducción más fluída.
Un valor alto permite que el códec se adapte mejor a los distintos tipos de
escena que encuentre empleando el bitrate necesario en cada ocasión pero
haciendo muy difícil que se ajuste al tamaño final estipulado.
En los extremos podemos decir que un valor del 0% hace que se produzca una
codificación CBR (Bitrate Constante) y que el valor 100% deja total libertad de
bitrate al códec produciendo una codificación CQ (Constant Quantizer).
Se recomienda utilizar el valor 1,0 y no superar en todo caso el 4,0.
M.E. Range: En esta casilla se limita el máximo rango empleado para los
vectores en la Estimación de Movimiento acotando el seguimiento de la
evolución de los macrobloques en cualquier cambio en la escena; pudiendo
ampliar el valor hasta 64 y siendo el mínimo 4. El valor por defecto (16) es
suficiente y no se recomienda aumentar por encima de 32 ya que la velocidad
se resiente sobremanera. El valor de 32 es un buen valor cuando se tiene
videos con cambios bruscos de moviento.
Scene Change Sensitivity: Este valor controla la detección de cambios de
escena en el vídeo modificando la "agresividad" con la que se van a insertar I-
frames extras al comienzo de cada cambio de escena. A mayor valor mayor
presencia de I-frames puede darse (lo que puede mejorar la calidad en esos
cambios y de forma general aunque también puede disparar el tamaño final del
vídeo). El valor por defecto (40) es más que suficiente.
M.E. Algorithm: La Estimación del Movimiento puede utilizar cuatro algoritmos
distintos dependiendo de su grado de complejidad, siendo Diamond Search el
más rápido empleando un radio de valor 1 sobre los píxeles; el segundo
método, Hexagonal Search, es el empleado por defecto, utiliza para el análisis
un radio de valor 2 y ofrece buenos resultados a una velocidad media; el tercer
método, Uneven Multi-Hexagon Search ofrece una mayor calidad pero la
velocidad se resiente; por último el método. Exhaustive Search ofrece el
análisis más complejo pero la velocidad es extremádamente lenta.
Por lo tanto la recomendación es usar el algoritmo por defecto o a lo sumo el
tercero de ellos.
Subpixel Refinement: Esta sección controla la precisión de la estimación de
movimiento (similar al Motion Search Precision de XviD).
Se recomienda el empleo del valor 6 - RD on I/P frames que ofrece una calidad
excelente (emplea Rate Distortion Optimized un método de estimación de
movimiento mejorado) aunque vuelve la codificación más lenta. Sin embargo el
valor por defecto (5) puede resultar suficiente. En últimas versiones han salido
2 valores más, el valor 8 - RD refinement on I/P frames y el valor 9 - RD
refinement on all frames. Esto es lo que dijo Dark_Shikari, uno de los
desarroladores del x264:
Code:
commit c89bc900a3bf0d4c4c728ad378703970b4f14e18 r996
Author: Jason Garrett-Glaser <darkshikari@gmail.com>
Date: Tue Sep 30 18:34:56 2008 -0700
En una de las últimas versiones del codec ya es posible usar un décimo modo,
pero eso sólo se logra con linea de comandos. Habrá que esperar a alguna
versión de MeGUI que pueda utilizar esta opción.
Misc
Keyframe interval: Aquí se indica la máxima distancia que debe existir entre
dos IDR-Frames, o lo que es lo mismo el tamaño máximo de cada GOP (Group
of Pictures). El tamaño de los GOP’s se calcula dinámicamente durante la
codificación.
Al adelantar o atrasar la reproducción de un vídeo se produce un
desplazamiento entre los distintos GOP’s lo que permite acelerar la búsqueda
del nuevo punto de reproducción.
Quant Options
Trellis: En esta casilla podemos añadir a los cálculos del códec una función
matemática basada en el análisis de la distorsión. Mediante el uso de
coeficientes se introduce una pequeña pérdida inicial de calidad que se
compensa con una mayor compresión, lo que a su vez termina por facilitar el
uso de quants más bajos que ofrecen una calidad mayor.
El uso de esa función es muy recomendable aunque la velocidad de
codificación baje.
En la versión VfW del códec al activar esta casilla se introduce el uso de la
función de análisis en las decisiones sobre macrobloques (en MeGUI el valor 1
- Final MB), sin embargo si usamos la interfaz MeGui más el ejecutable por
línea de comandos podríamos habilitar el uso de Trellis para absolútamente
todas las decisiones (valor 2 - Always), aunque la velocidad de codificación
disminuye mucho.
Se recomienda utilizar el valor 1 - Final MB que consigue un buen aumento de
calidad sin perjudicar demasiado la velocidad.
Number of Reference Frames: Esta opción con valores que oscilan entre 0 y
16 implica la cantidad de frames previos a los que pueden hacer referencia los
P-frames y B-frames de manera que la estimación de movimiento sea mucho
más precisa y se ahorre información en repeticiones de movimientos, etc.
Los valores más empleados se situan entre 3 y 5 y hay que advertir que
cuantos más frames sean utilizados como referencia los procesos de
codificación y reproducción consumirán más recursos al ser procesos de ida y
vuelta.
Si se está codificando animé, es recomendable utilizar varios frames, ya que
abundan las escenas con repeticiones, con 9 sería suficiente, pero también se
podría utilizar 16 frames, siendo este último el más recomendable.
Ahora, si lo que se quiere es codificar una película usar más de 5 frames es
una perdida de tiempo ya que comparada con el poco provecho que se puede
obtener de cara a la calidad (es difícil que en una película abunden las escenas
con repeticiones de movimientos a lo largo de 16 frames).
Mixed: Al activar esta casilla permitimos que cada partición 8x8 y 16x8 dentro
de un macrobloque elijan independientemente su frame de referencia. Con la
casilla desactivada cada macrobloque sólo puede elegir un frame de referencia.
Uso Recomendado. Necesitamos al menos utilizar dos B-Frames para activar
las referencias "mixtas".
La activación de las distintas estimaciones de movimientos reducen la
velocidad de codificación pero permiten al códec ser mucho más preciso a la
hora de detectar variaciones en el vídeo. El uso de todas las casillas es Muy
Recomendable y da lugar al uso del llamado High Profile del códec.
Quantizers
Maximum Quantizer: Esta casilla marca el quantizer límite más alto que el
códec puede utilizar. El valor por defecto (51) es reálmente el valor de quant
más alto que existe en x264, los más compresibles pero que menor calidad
ofrecen. Para cualquier película este valor puede ser el adecuado pero si tienes
entre manos un vídeo corto, o muy compresible, siempre puedes limitar ese
valor para intentar conseguir una calidad mayor (por ejemplo se puede probar
con un valor de 40).
Factor between I and P frama Quants: Esta opción indica el factor de relación
entre un I-Frame y un P-Frame. Con el valor por defecto indicamos que un I-
Frame es 1,40 veces un P-Frame.
En definitiva definimos cuanto bitrate "extra" puede ser atribuido a un keyframe
(IDR-Frame). Ya que los P-Frames y B-frames hacen referencia a los I-Frames
todos se beneficiarán de ese aumento, sin embargo si el extra atribuido es
excesivo el tamaño final del vídeo crecerá demasiado.
Chroma QP Offset: En este parámetro que puede tomar valores de -12 hasta
12 se ajusta la compensación de calidad entre color y luminosidad. Ya que el
ojo humano es más sensible a los cambios de luminosidad que de color es
posible conseguir una mayor compresión ahorrando datos de color sin llegar a
percibirlo. Sin embargo se recomienda dejar el valor por defecto 0 que
establece un equilibrio entre color y luminosidad.
Macroblock options:
B-Frames
De la misma forma que en XviD, el códec x264 puede hacer uso de las B-
Frames, es decir, frames bidireccionales que no sólo toman como referencia los
frames anteriores sino que intentan predecir el frame siguiente. Las Bi-
directional Predictive Frames son áltamente compresibles ya que sólo
almacenan los datos que cambian desde el frame anterior o que difieren del
frame posterior. Las B-Frames tienen generálmente menos calidad que las I-
Frames/P-Frames pero ayudan a aumentar la calidad general del vídeo
ahorrando bits donde no son reálmente necesarios para destinarlos a zonas
más conflictivas. Uso de B-Frames es recomendable, ya que aumenta la
compresibilidad del encode.
Adaptative B-Frames:
Al marcar esta casilla permites un uso adaptativo de las B-Frames.
Dependiendo de la necesidad de su aplicación el número de B-Frames
consecutivas puede ser reducido impidiendo que se deteriore la calidad del
vídeo comprimido.
El valor 0 (mode 0) indica que no se van a utilizar B-frames.
El valor 1 (mode 1) permite utilizar un B-Frame al estilo de los usados durante
mucho tiempo en DivX usando una predicción temporal o espacial.
El valor 2 (mode 2) ya permite usar esos B-Frames como frames de referencia
a parte de poder activar métodos avanzados de predicción.
x264 permite usar un máximo de 5 B-Frames y se recomienda un valor de 3
que combinado con el uso adaptativo nunca perjudicará la calidad del vídeo.
B-Frame Bias: Esta opción cuyos valores van de -100 a 100 permite controlar
la frecuencia de uso de las B-Frames. El valor por defecto 0 es recomendable.
Con valores superiores la aparición de B-Frames sería más probable
aumentando la compresibilidad pero pudiendo perjudicar la calidad global del
vídeo. Valores menores disminuirían la compresibilidad con lo que algunas
ventajas de "ahorro" de bits se perderían, aumentando el riesgo de oversized y
sobre todo de aparición de macrobloques.
En ningún caso aplicar un valor positivo significa que se pueda utilizar un
número mayor de B-Frames al especificado en la casilla Max Consecutive sino
que sólo se aumenta la probabilidad de que se utilicen el máximo de B-Frames
consecutívamente.
Preset: En esta ventana desplegable podemos selecionar.
Una vez encodeado el video, vamos a tener los tracks de audio y video
separados y ahora para ponerlos en el contenedor, nos vamos a tool->muxer-
>mp4muxer y nos aparecerá una ventanilla como ésta: