Guía de Codificación H.264 Descripción general Introducción

Anuncio
Guía de Codificación H.264
En este artículo se describe brevemente lo que es H.264 y cómo obtener asistencia técnica de
codificación H.264 para Avidemux. También resume y explica las opciones disponibles x264 en
Avidemux. Esto puede considerarse como una guía (simple) para el codificador.
Descripción general
H.264, también conocido como "MPEG-4 Part 10" o "MPEG-4 Advanced Video Coding" (AVC), es
un estándar de compresión de vídeo digital, que se caracteriza por lograr una compresión de
datos muy alta. Mientras que H.264, generalmente, requiere más potencia de CPU para la
reproducción que el vídeo codificado con el más antiguo estándar MPEG-4 (nbsp) Part (nbsp) 2
(como el usado por Xvid o DivX), ¡la eficiencia de compresión es mucho mejor! Esto significa:
Con H.264/AVC usted puede obtener una calidad mucho mejor con el mismo tamaño de archivo
o puede obtener la misma calidad con un tamaño de archivo mucho menor (en comparación
con MPEG-4 (nbsp) ASP). Por cuanto H.264 comprime mucho más eficientemente que MPEG-4
(nbsp) Part (nbsp) 2, la ventaja sobre MPEG-2 es aún mayor.
Información más detallada sobre H.264 se puede encontrar en el correspondiente Artículo de
Wikipedia. Una comparación de varios codificadores H.264 frente a MPEG-4 Part-2, MPEG-2 y
otros formatos de vídeo se puede encontrar en http://mirror05.x264.nl/Dark/website/compare.html .
Introducción a x264
Mientras Avidemux integra libavcodec de FFmpeg para decodificación H.264, necesita una
biblioteca adicional (externa) para la codificación H.264. Así, Avidemux utiliza x264. x264 es
una biblioteca libre para codificar secuencias de vídeo H.264/AVC. El código está escrito desde
cero por Laurent Aimar, Loren Merritt, Eric Petit (OS X), Min Chen (VfW / asm), Justin Clay (VfW),
Rullgård Måns, Czyz Radek, Christian Heine (ASM), Izvorski Alex (asm), y Alex Wright. Se
distribuye bajo los términos de la licencia GPL. Así que para aclarar, la biblioteca codificadora
se llama x264 mientras que el estándar de compresión que utiliza se denomina H.264 (o MPEG4 AVC). En otras palabras: El software de codificación x264 crea vídeo H.264/AVC. Cabe señalar
que si bien x264 es software libre puede competir con codificadores comerciales H.264 en
términos de calidad y velocidad. Destacadas compañías en el negocio de vídeo, como YouTube
y Facebook, son conocidas por utilizar el codificador x264.
Obtener x264 para Avidemux
Si x264 no está disponible en su versión de Avidemux, hay una guía sobre cómo descargar y
compilar x264 por usted mismo. Está en la sección de Compilación de x264.
Después de compilar x264, tendrá que volver a compilar Avidemux para construirlo con las
características de x264. Hay también una guía sobre cómo hacer esto en la sección
Compilación de Avidemux.
Tenga en cuenta que si está utilizando Avidemux pre-compilado para Microsoft Windows, la
biblioteca necesaria x264 se suministra con el instalador. ¡Por lo tanto no se requiere software
adicional! Cosas como "Paquetes de códecs", "Códecs VFW" o "filtros DirectShow" ¡no
funcionarán con Avidemux! De todas formas, las últimas versiones de la biblioteca x264 para
Avidemux se pueden encontrar en el hilo libx264 GIT builds (¡asegúrese de que va al último
post!). Éstas compilaciones por lo general son más recientes - y menos probadas - que las que
se incluyen con Avidemux.
Opciones x264 disponibles en Avidemux
Avidemux contiene la mayoría de las opciones disponibles en la biblioteca x264. Para opciones
que aún no están disponibles, consulte la sección "No disponible" de este artículo.
General
Rate Control
 Encoding Mode:
 Single Pass - Constant Quantizer: Este modo es también conocido como "Modo QP".
Se codificará el vídeo a una cuantificación constante, por lo que usted elegirá el
cuantificador de destino, y no el bitrate de destino. El cuantificador es una medida de la
cantidad de pérdida de datos: un cuantificador más alto significa que más datos se
pierden, lo que resulta en una mejor compresión (archivo más pequeño), pero también
proporciona peor calidad visual. En contraste, un cuantificador más bajo significa que
menos datos se pierden, dando como resultado una mejor calidad visual, pero también
comprime peor (archivo más grande). H.264 utiliza una escala de cuantificación entre 0 y
52. El valor de cuantificación por defecto es 26. Si su objetivo es un cierto nivel de
calidad y no importa mucho el tamaño final del archivo, entonces podría considerar el uso
del modo QP. Pero si está apuntando a un tamaño de archivo determinado (o una tasa de
bits promedio determinada), ¡debe mantenerse alejado del Modo QP! Esto sucede porque
el tamaño final (la tasa media de bits) es completamente impredecible en este modo.
Nota: ¡El modo CRF (Constant Rate Factor) es preferible al modo QP! También la
cuantificación adaptativa (AQ) se desactiva en el modo QP, mientras que está
habilitada (por defecto) en el modo CRF.
Single Pass - Constant Rate Factor: Este modo es también conocido como "Modo
CRF" o modo "Calidad Constante". Básicamente funciona de forma similar al modo QP
anterior, pero va a codificar con un cuantificador promedio en lugar de uno constante.
Para ser más precisos, este modo codifica a un "factor de tasa" constante, que se deriva
del cuantificador especificado. Internamente el modo CRF utiliza el algoritmo de control
de tasa igual al modo ABR de x264, sólo que sin una tasa de bits de destino. La ventaja
del modo CRF es que se ajusta a la percepción humana mucho mejor que el modo QP. Por
ejemplo, aumentará los cuantificadores en escenas “rápidas“ en las que las pérdidas no
serán tan perceptibles y los bajará en escenas "lentas". Por lo tanto el modo CRF debería
dar la misma calidad subjetiva que el modo QP, pero por lo general logra una compresión
significativa superior. Se recomienda preferir el modo CRF sobre el modo QP, aunque CRF
es un poco más lento. Cuando se cambia del modo QP al modo CRF, es posible que desee
reducir ligeramente el cuantificador. Esto debería dar aproximadamente el mismo tamaño
de archivo que antes, ¡pero de mejor calidad visual! Otra ventaja importante del modo
CRF es que se beneficiará de cuantificación adaptativa, algo que el modo QP no puede
hacer.
Tenga en cuenta: ¡Ni siquiera el modo CRF entrega una calidad constante "perfecta"!
Un valor específico CRF sólo ofrece una calidad similar para varias fuentes, siempre y
cuando no cambie ninguna otra configuración. El uso de configuraciones "lentas" con
el mismo valor de CRF o bien producirá un archivo más pequeño con una calidad igual
o generará un archivo del mismo tamaño y mejor calidad. También es posible que
ambos, el tamaño y la calidad, se incrementen. El ratio "calidad por tamaño" se
mejorará de todos modos.
Observaciones: ¡La elección del ajuste de la cuantificación adecuada para una
codificación CRF (o QP) no es trivial! Esto se debe a que la calidad visual es altamente
subjetiva: Lo que algunas personas consideran "buena calidad" otras personas consideran
"calidad horrible" - y viceversa. Además, la configuración de la cuantificación depende en
gran medida del contenido de su vídeo. Sin embargo una configuración de la
cuantificación en el intervalo entre 16 y 32 deberían dar resultados satisfactorios en la
mayoría de los casos. El uso de un cuantificador menor a 16 por lo general es un exceso,
excepto para fines de masterización. El uso de un cuantificador superior a 32 resultará en
un vídeo casi imposible de ver. Un cuantificador de 22 parece lo más razonable para la
mayoría de propósitos. No obstante, materiales con pocas texturas, como Animaciones y
Caricaturas, pueden afrontar cuantificadores mucho más altos. Al mismo tiempo, escenas
de la "vida real" con una gran cantidad de texturas pueden requerir cuantificadores
mucho más bajos, sobre todo en las escenas oscuras. También hay una regla de oro: La
reducción del valor de CRF en 6 duplicará el tamaño del archivo, la reducción del valor de
CRF en 1 aumentará el tamaño del archivo en ~12,5% (muy aproximadamente). Además,
la práctica común es la siguiente: Comenzar con un bajo valor de CRF, por ejemplo, 16.
Aumentar a continuación el valor de CRF en pasos de uno, hasta que la calidad se vuelve
intolerable. De esta forma se encuentra el valor más alto posible de CRF que todavía le
da una calidad aceptable para sus ojos. Una vez que lo encuentre, puede utilizar ese
valor para toda su futura codificación.
Single Pass - Bitrate: Este modo codificará el vídeo a una tasa de bits promedio con
sólo un paso. Así que este modo sólo requiere la mitad de tiempo que una codificación "a
dos pasadas". En contraste con el modo CRF (y el modo QP) la tasa de bits promedio
resultante se conoce de antemano. Por lo tanto es fácil predecir el tamaño final del
archivo. Una mayor tasa de bits se traducirá en una mejor calidad visual, pero por
supuesto también resultará en un archivo más grande. Una menor tasa de bits se traduce
en un archivo más pequeño, pero también dará lugar a una peor calidad visual. Por
desgracia, el codificador no "conoce" el contenido del vídeo con anticipación cuando se
codifica a un solo paso. Por lo tanto, ¡la capacidad del codificador para ajustar la tasa de
bits con respecto al contenido del vídeo es extremadamente limitada en este modo! Sólo
son posibles optimizaciones "locales". Esto se traduce en una mala calidad de vídeo (en
comparación con una codificación "A Dos Pasadas"), ¡especialmente en bitrates medio y
bajos! Por lo tanto se recomienda encarecidamente no utilizar este modo, a menos que
realmente necesite hacerlo en una sola pasada.
Two Pass - Average Bitrate: Este modo codificará el vídeo a una tasa de bits promedio
y se utilizarán dos pasadas de codificación. Por consiguiente, este modo requiere el doble
de tiempo que una codificación de "paso único" (aproximadamente). En contraste con el
modo CRF (y el modo QP) la tasa de bits promedio resultante se conoce de antemano.
Por lo tanto es fácil predecir el tamaño final del archivo. Una mayor tasa de bits se
traducirá en una mejor calidad visual, pero por supuesto también resultará en un archivo
más grande. Una menor tasa de bits se traduce en un archivo más pequeño, pero
también dará lugar a una peor calidad visual. Durante la primera pasada el codificador
llevará a cabo un análisis detallado del vídeo y creará lo que se denomina un fichero
"stats" (estadísticas). Luego, durante la segunda pasada, se lleva a cabo la codificación
efectiva y se crea el archivo final. La ventaja de utilizar dos pasadas es que durante la
segunda pasada el codificador puede confiar en los datos recogidos durante el primer
paso. Esto permite al codificador distribuir los bits disponibles entre todo el vídeo. Por
ejemplo, las escenas de "mucho movimiento" obtendrán una tasa de bits
significativamente mayor que las escenas "estáticas". Esto se hace con el fin de
mantener la calidad visual constante a lo largo de toda la película. Se evita así el feo
"efecto bloque" en los movimientos rápidos/espontáneos (como se ve en la codificación
de "paso único"). Por lo tanto una codificación "A Dos Pasadas" ofrece la calidad visual
máxima para una tasa de bits objetivo determinada (tamaño del archivo). ¡Se recomienda
usar siempre este modo si se apunta hacia un bitrate medio seguro!
Two Pass - File Size: Este modo utilizará realmente el modo "Two Pass - Average
Bitrate". La diferencia única es que Avidemux calculará automáticamente por usted la
tasa de bits requerida. De esta manera puede alcanzarse fácilmente un objetivo de
tamaño de archivo específico. Sólo tiene que introducir el tamaño deseado del archivo
(por ejemplo, "700 MB" para un CD-R o "4700 MB" para un DVD-R) ¡y eso es todo! El resto
funciona exactamente como se describe para el modo "Two Pass - Average Bitrate".
Tenga en cuenta: x264 no tomará en cuenta la tasa de bits de audio y la sobrecarga
del contenedor. Por lo tanto el tamaño de destino especificado en el diálogo x264 sólo
afecta a la parte de vídeo del archivo. Si el archivo contiene al menos una pista de
audio, el archivo real saldrá más grande que el tamaño especificado. También el
contenedor agrega algún tamaño adicional al archivo. Así que por favor, ¡utilice la
herramienta "Calculadora" de Avidemux para configurar el tamaño del archivo de
destino correctamente!
Observaciones: La elección de la tasa de bits destino apropiada para un codificador
basado en la tasa de bits (modos "Two Pass" o "Single Pass") ¡no es trivial en absoluto!
Esto se debe a que la tasa de bits necesaria para obtener resultados satisfactorios
depende en gran medida de la "compresibilidad" del vídeo concreto y también de sus
preferencias personales. Por ejemplo, fuentes "limpias" pueden resolverse con una tasa
de bits significativamente menor que otras fuentes “ruidosas” o “granuladas”. También
las escenas de animación, por lo general, pueden resolverse con bitrates mucho más
pequeños que metrajes de la "vida real". De todos modos, en la mayoría de los casos una
tasa de bits promedio en el rango de entre 500 Kbps y 2500 Kbps debería dar
resultados aceptables para la mayoría del material SD, como copias de seguridad de
DVD-Vídeo. Promedios de tasas de bits por encima de 2500 kbps se consideran
"excesivas" para material SD. Desde luego, ¡la salida es excepcional! También tenga en
cuenta que cuando se trata de material HD (720p o 1080p) se requerirán bitrates
significativamente mayores. Bitrates de 10 Mbps y superiores no son inusuales para
codificación HD. Tenga en cuenta que el pre-procesamiento, tal como eliminación de
ruido, puede reducir los requerimientos de tasa de bits de una fuente.
Nota: Puesto que es bastante difícil de decidir sobre un bitrate específico, suelen ser
mejor si se utiliza el modo CRF en lugar de uno de los modos basados en tasa de bits.
Lossless Mode: x264 también soporta "verdadera" compresión sin pérdida. El uso de
este modo no provocará absolutamente ninguna degradación de los datos de vídeo. Sin
embargo, la compresión sin pérdida tomará tasas de bits significativamente mayores que
ningún tipo de compresión con pérdida. Así que la conversión de un formato con pérdida
(por ejemplo, MPEG-2 o MPEG-4 ASP) a compresión sin pérdida ¡producirá un archivo
mucho más grande que la fuente! De todos modos, x264 en modo "lossless", por lo
general, necesitará menos tasa de bits que otros codificadores sin pérdidas como
HuffYUV o FFV1. Y es mucho más pequeña que la de vídeo sin comprimir (por ejemplo,
datos crudos YUV/RGB), por supuesto. Con el fin de forzar la compresión sin pérdida se
debe elegir el modo de cuantificación constante y debe configurar el cuantificador a un
valor de 0. Tenga en cuenta que la reproducción sin pérdida de H.264 requiere un
decodificador capaz del perfil "Predictive Lossless". Los decodificadores que soportan esto
incluyen libavcodec/ffmpeg (ffdshow, MPlayer, etc) y el descodificador CoreAVC. Otros
decodificadores pueden mostrar una salida incorrecta (o ninguna salida en absoluto).
Macroblock-Tree Rate Control
El ajuste habilita Macroblock-Tree Rate Control (también llamado "MB-Tree"). Realiza un
seguimiento de la propagación de la información desde bloques futuros a bloques pasados a
través de vectores de movimiento. Se podría describir como la localización qcomp (quantizer
curve compression) para actuar en bloques individuales en lugar de escenas enteras. Así, en
lugar de bajar la calidad en escenas de alta complejidad (como x264 hace sin MB-Tree), sólo
va a disminuir la calidad en la parte compleja de la escena, mientras que por ejemplo un
fondo estático seguirá siendo de alta calidad. También tiene muchos otros efectos más
sutiles, algunos potencialmente negativos, la mayoría probablemente no. Esto ayuda a
todos los bitrates, pero incluso puede ayudar fenomenalmente a bajas tasas de bits donde el
vídeo, de lo contrario, se desmoronaría por completo. Tenga en cuenta que MB-Tree maneja
ahora mucho mejor los fundidos gracias a Weight-P. Por cuanto MB-Tree mejora en gran
medida la calidad general, debería estar siempre habilitado. Vea el hilo x264 "Macroblock
Tree Ratecontrol" testing para obtener más información sobre cómo trabaja MB-Tree.
Frametype Lookahead: Esta configuración especifica el número de fotogramas para
frame-type lookahead (predicción de tipo fotograma), es decir, la distancia (en
fotogramas) que MB-Tree mira hacia el futuro. Cuantos más fotogramas utiliza MB-Tree
para la búsqueda hacia delante, más eficaz resulta su funcionamiento. En otras palabras:
A mayor valor mejorará el resultado, mientras que un valor menor lo perjudicará. Por lo
tanto, usted debe utilizar el valor más alto que pueda permitirse. Desafortunadamente
una búsqueda hacia delante mayor ralentizará la velocidad de codificación y al mismo
tiempo aumentará el uso de memoria. El valor por defecto es 40, que estaría bien
equilibrado para la mayoría de los propósitos. Si la calidad es más importante que la
velocidad de codificación, debe aumentar el valor. Sin embargo ir más alto de 60 no es
recomendable, ya que los valores aún más altos sólo le darán una mejora adicional muy
pequeña (a lo sumo). Si la velocidad es más importante que la calidad puede disminuir el
valor. Pero ir por debajo de 30 no se recomienda.
Advertencia: Si se encuentra con cuelgues usando valores altos de frame-type
lookahead, ¡entonces esto es probablemente debido a que se quedó sin memoria! En ese
caso, debe disminuir el valor con el fin de evitar el problema.
Multi-Threading
Esta configuración controla cuántos hilos utilizará x264 para la codificación. Gracias a su
implementación multi-hilo, x264 es capaz de aprovechar al máximo la potencia de
procesamiento de los modernos procesadores multi-core. Esto se logra mediante la
codificación de varios fotogramas en paralelo (ver http://git.videolan.org/gitweb.cgi?
p=x264.git, un blob =, f = doc / threads.txt para más detalles). Las pruebas han demostrado
que x264 escala extremadamente bien hasta al menos 16 núcleos. De todos modos, para
hacer un uso óptimo del multi-núcleo de la máquina, ha de seleccionarse el número correcto
de hilos. Las opciones disponibles son las siguientes:
Disabled: Desactiva el multi-hilo. Se utilizará un solo hilo. Esto no introduce ninguna
diferencia para las máquinas de un solo núcleo, pero ralentizará significativamente x264
en máquinas multi-core.
Auto-Detect: x264 decidirá el número óptimo de subprocesos. La fórmula utilizada es:
hilos = cpu_cores * 3/2. Las pruebas han demostrado que esta fórmula (por lo general) da
el rendimiento óptimo. ¡Es muy recomendable mantener esta configuración!
Custom: sobrescribir manualmente la detección automática x264. Sólo use esta opción si
tiene una buena razón para desconfiar de la detección de x264.
Observaciones: Muchas personas se quejan de que la carga de la CPU no alcanza el
100% en el Gestor de Tareas al codificar un vídeo con x264, incluso con multi-hilo
habilitado. Esto puede tener varias razones. Muy probablemente cuellos de botella en la
cadena de procesamiento de x264. Por ejemplo, un subproceso único descodificador y/o
de cálculo intensivo de filtros vídeo fácilmente puede convertirse en el cuello de botella
del rendimiento. En ese caso x264 tiene que esperar por la entrada y se vuelve inactivo.
Así que en realidad no es un problema en sí mismo de x264. Otro "problema" es la
tecnología Intel Hyperthreading, como la usada por el procesador Pentium 4 y el
procesador Core i7 (Nehalem). Con Hyperthreading hay dos núcleos virtuales por cada
núcleo físico. Por lo tanto una carga de CPU de 50% indica que todos los núcleos físicos
están ocupados (que es igual al 100% de carga en una CPU sin Hyperthreading). Por
último, pero no menos importante, la eficiencia de multi-hilos no debe medirse con la
carga de CPU mostrada por el Gestor de Tareas. En cambio, lo que debe medirse es el
rendimiento (esto es: el número de fotogramas codificados por segundo). ¡Así que por
favor tenga en cuenta que la carga de la CPU por sí sola no implica un buen rendimiento!
Motion
Motion Estimation
ME Method: La compresión de vídeo funciona descartando información redundante entre
fotogramas consecutivos. Por ejemplo, los fotogramas P se predicen a partir de fotogramas
previos. Así, sólo la diferencia entre el fotograma predicho y el fotograma fuente original se
guarda en el flujo de bits. A esto se le llama "residuo". Cuanto más precisa sea la predicción
de un fotograma, menos son los datos que tienen que ser almacenados. Dado que los
objetos tienden a moverse entre fotogramas vecinos, ¡la detección y compensación de
movimiento es esencial para una predicción exacta! El método ME determina qué algoritmo
se utiliza para buscar movimiento y para calcular los llamados "vectores de movimiento". El
uso de un método de búsqueda más exacto resultará en una mejor calidad visual, pero
también llevará más tiempo de codificación. El uso de un método más rápido acelerará el
proceso de codificación, pero también dará lugar a una peor calidad visual. Dado que el
método ME tiene un gran impacto en la velocidad de codificación y la calidad visual del
vídeo, ¡debe decidir cuidadosamente! Es muy recomendable no ir por debajo del valor
predeterminado. Debe considerar un modo aún más lento si la calidad es más importante
que el tiempo de codificación. Los siguientes métodos están disponibles:
Diamond Search (DIA): Análisis rectangular - Este es el método más rápido, pero
también ofrece la peor calidad. Utilice este método sólo si la velocidad de codificación es
más importante que la calidad.
Complejidad: O(n) en el peor de los casos, más rápido en casos promedio.
Hexagonal Search (HEX): Análisis hexagonal - Es el método por defecto. Proporciona
una calidad razonable y todavía funciona muy rápido.
Complejidad: O(n) en el peor de los casos, más rápido en casos promedio.
Uneven Multi-Hexagon Search (UMH): versión más detallada de búsqueda Hexagonal
(búsqueda multi-hexagonal desigual). Este método ofrece una alta calidad, pero funciona
más lento que el simple método "HEX". Si prefiere la calidad sobre la velocidad,
consecuentemente, utilice este método.
Complejidad: O(n).
Exhaustive Search (ESA): Análisis completo y extenso - Este método de fuerza bruta
funciona muy lento, pero la calidad resultante generalmente es sólo un poco mejor en
comparación con el método "UMH" (a lo sumo).
Complejidad: O(n²).
Hadamard Exhaustive Search (TESA): Versión mejorada del método "ESA" que utiliza
la transformada Hadamard - Este método funciona incluso más lento que el método
"ESA". Use este método si tiene un montón de tiempo que perder.
Complejidad: O(n²).
Observaciones: Las pruebas han demostrado que "Exhaustive Search" es
significativamente más lento que "Uneven Multi-Hexagon Search", pero no
necesariamente produce una mejor calidad percibida. Además "Hadamard Exhaustive
Search" se llevará por lo menos el doble de tiempo que "Uneven Multi-Hexagon Search".
Por lo tanto, utilizando un método más lento que "Uneven Multi-Hexagon Search" en
general, no compensa el tiempo de codificación adicional.
Subpixel Refinement:
Este ajuste (también conocido como "Sub ME") controla la precisión del proceso de
estimación de movimiento. Cuanto mayor sea la precisión, mejores son los resultados. Por lo
tanto debe utilizar siempre el modo más alto que pueda permitirse. Por supuesto, una mayor
precisión requiere más tiempo para la codificación. Tenga en cuenta que
independientemente de la configuración, la estimación de movimiento Qpel siempre se
utiliza. RDO es igual al uso de la configuración VHQ del codificador Xvid. Es muy
recomendable no ir por debajo del valor predeterminado de 6, porque Psy-RDO requiere por
lo menos Sub ME 6. Si dispone de tiempo, quizás debería considerar el uso de un valor aún
mayor. En caso de que la calidad visual sea más importante que el tiempo de codificación,
¡debería ir al máximo! El modo 9 (o incluso 10) ofrece la mejor calidad. Si prefiere velocidad
sobre calidad utilice el modo 2. Nunca se debe ir por debajo de modo 2, incluso para una
codificación "rápida y sucia". Los siguientes modos Sub ME están disponibles actualmente:
1.
2.
3.
4.
5.
6.
7.
8.
QPel SAD (la más rápida, la peor calidad)
QPel SATD
HPel en MB, a continuación QPel
Siempre QPel
Qpel & bidireccional ME
RD en I- y P-frames (Por defecto, el modo más bajo que soporta Psy-RDO)
RD en todos los frames
RD refinamiento en I- y P-frames
9. RD refinamiento en todos los frames
10. RD refinamiento en todos los frames + QPRD (más lento, mejor calidad)
Motion Vector
Range: Este ajuste define el número de píxeles que se analizan para la estimación de
movimiento. Un valor de rango más alto resulta en un análisis más preciso, pero también se
ralentizará la velocidad de codificación de manera significativa. Los valores bajos aceleran el
proceso de codificación, pero también dan lugar a un análisis menos preciso. Tenga en
cuenta que el material de alta resolución generalmente se beneficia más de los ajustes de
rango superior que el material de baja resolución. Eso es porque los objetos tienden a
moverse más lejos (con respecto a los píxeles) en vídeo HD. De todos modos, ¡el valor
predeterminado de 16 es suficiente para la mayoría de vídeos! Los métodos “Diamond
Search” y “Hexagonal Search” están incluso limitados al rango máximo de 16. Si la calidad
es más importante que la velocidad de codificación y si está utilizando el método “Uneven
Multi-Hexagon Search” (o un método aún más lento), es posible que desee aumentar el
rango a un valor de 24 o incluso 32. Dependiendo del método ME seleccionado, el valor
range puede ser redondeado a un múltiplo de dos o cuatro.
Maximum Motion Vector Length: Esta opción se puede utilizar para limitar la duración
máxima de cada vector de movimiento. Por defecto x264 limitará la longitud máxima del
vector de movimiento basándose en el nivel detectado. Puede utilizar esta opción para
sobrescribir la decisión de x264. Es muy recomendable no usar esta opción, ¡a menos que
tenga una muy buena razón para hacerlo!
Minimum Buffer Between Threads: x264 utiliza un método multi-hilo basado en
fotogramas. Para permitir la codificación de múltiples fotogramas en paralelo, x264 tiene
que asegurarse de que cualquier macrobloque determinado usa vectores de movimiento
sólo a partir de piezas de los fotogramas de referencia que han sido codificadas ya. Esto no
suele ser notable, pero puede volverse importante en movimientos hacia arriba muy
rápidos. Por defecto x264 decidirá el espacio mínimo entre hilos basado en el número de
hilos. Puede utilizar esta opción para sobrescribir la decisión de x264. Es muy recomendable
no usar esta opción, ¡a menos que tenga una muy buena razón para hacerlo!
Prediction
B-Frame Direct Mode: Esta característica permite a los fotogramas B usar vectores de
movimiento "estimados" en lugar de codificar realmente el movimiento de cada fotograma.
Esto debería ahorrar algo de bitrate y mejorar la compresión. Por lo tanto se recomienda
mantener siempre esta opción habilitada. Hay cuatro modos diferentes disponibles:
None: Desactivado. Para pruebas únicamente. No se recomienda.
Auto: Deja que el codificador decida la configuración óptima de cada fotograma. Muy
recomendado para todos los modos de RC, pero más eficiente en el modo de dos
pasadas.
Temporal: Fuerza la predicción desde fotogramas vecinos.
Spatial: Fuerza la predicción desde bloques vecinos al fotograma actual (por lo general
preferible a Temporal).
Weighted Prediction for B-Frames: Esta característica permite al codificador producir BFrames más precisos por "ponderación" de los fotogramas de referencia de una manera
asimétrica. Esto penaliza algo la velocidad de codificación. Por cuanto weighted B-Frames
generalmente mejora la calidad visual, se recomienda tener esta opción habilitada
siempre, excepto si la velocidad de codificación es más importante que la calidad.
Weighted Prediction for P-Frames: Esta característica permite al codificador detectar los
fundidos y pondera los P-Frames en consecuencia. ¡Esto mejora considerablemente la
calidad en los fundidos y por lo tanto se debe utilizar siempre!
Blind Offset: Utiliza un "contrapesado ciego" sin realizar ningún análisis. Proporciona
sólo una pequeña mejora de la calidad en fundidos.
Smart Mode: Detección de fundido. Proporciona una mejora total de la calidad en
fundidos. Especialmente útil con MB-Tree. ¡Este es el modo recomendado!
Disabled: No utiliza Weight-P en absoluto. No se recomienda.
Advertencia: Algunos decodificadores H.264 se sabe que no funcionan con respecto a
Weight-P . Ver spec-violation hall of shame (salón de la vergüenza de violación de
especificaciones) para una lista de decodificadores afectados. ¡Con Weight-P habilitado
obtendrá una salida distorsionada si se utiliza uno de los decodificadores afectados! El
más notable es el decodificador CoreAVC 1.9.x, tiene un reconocido fallo Weight-P que no
arreglan. O bien actualiza a CoreAVC 2.0, o utiliza un descodificador diferente (por
ejemplo ffdshow o DivX H.264 decoder), o desactivar Weight-P. La última solución es la
peor, por supuesto.
Partition
Partition Search
8×8 Adaptive DCT Transform: Esta configuración habilita una Transformación DCT 8×8
adaptativa. Esto mejorará significativamente la calidad visual a un pequeño costo de
velocidad. De hecho, esta opción es conocida por dar la mejor relación velocidad/calidad de
todas las opciones. Por desgracia, requiere un decodificador H.264 capacitado para "perfil
alto". ¡Es muy recomendable mantener esta opción activada, si es posible!
8×8, 8×16 y 16×8 P-Frame Search: Esta configuración habilita las particiones 8×8 en
fotogramas P y por lo tanto mejora la calidad visual de estos fotogramas. ¡Se recomienda
mantener esta opción activada!
8×8, 8×16 y 16×8 B-Frame Search: Esta configuración habilita las particiones 8×8 en
fotogramas B y por lo tanto mejora la calidad visual de estas fotogramas. ¡Se recomienda
mantener esta opción activada!
4x4, 4x8 y 8×4 P-Frame Search: Esta configuración permite que las particiones 4×4 en
fotogramas P pero, por lo general, la mejora de calidad será insignificante. Por lo tanto esta
opción no compensa el tiempo de codificación adicional y en consecuencia y con seguridad
se puede desactivar.
8×8 I-Frame Search: Esta configuración permite las particiones 8×8 en los fotogramas I y
por lo tanto mejora la calidad visual de estos fotogramas, pero requiere de 8×8 Adaptive
DCT Transform. ¡Se recomienda mantener esta opción activada, si es posible!
4×4 I-Frame Search: Esta configuración habilita las particiones 4×4 en fotogramas I y por
lo tanto mejora la calidad visual de estos fotogramas. ¡Se recomienda mantener esta opción
activada!
Observaciones: Durante el proceso de codificación, el codificador divide el vídeo en los
llamados "macrobloques". Entonces buscará bloques similares para descartar los datos
redundantes (véase Motion Estimation -estimación de movimiento-). Los macrobloques se
pueden subdividir en particiones 16×8, 8×16, 8×8, 4x8, 8x4 y 4x4. Analizando más de
estas particiones resulta en una predicción más precisa y por lo tanto mejora la calidad
visual. Lamentablemente esto es a costa de tiempo de codificación adicional. Por lo general
se recomienda mantener todos los tipos de particiones habilitadas, excepto el de las
particiones "4×4 P-Frame". Esto es porque la búsqueda de particiones 4×4, 4×8 y 8×4 en PFrames cuesta una cantidad significativa de tiempo de codificación, pero la ganancia en
calidad, por lo general, es insignificante (sólo podrían beneficiarse vídeos de baja
resolución). ¡Tenga en cuenta que algunas de las opciones de partición dependen unas de
otras! Además hay que considerar que 8×8 adaptable DCT Transform (y por lo tanto 8×8 IFrame Search) requieren características de "perfil alto" y necesitará un decodificador H.264
adecuado, tal como MPlayer, ffdshow o CoreAVC. Sin embargo, 8×8 adaptable DCT
Transform y 8×8 I-Frame Search son características muy útiles.
Frame
Frame Encoding
CABAC: Este ajuste permite la codificación entrópica CABAC, una de las características más
impresionantes de x264. CABAC (Context Adaptive Binary Arithmetic Coding -Código
Aritmético Binario Adaptable al Contexto) funciona absolutamente sin pérdida, pero le da un
aumento extra de compresión de aproximadamente un 15%. A cuantificadores altos CABAC
puede ahorrar incluso más bitrate -hasta un 50% y más es posible (ver
http://akuvian.org/src/x264/entropy.png)-. Consecuentemente, con CABAC habilitado obtendrá o
bien un archivo más pequeño con una calidad igual (modos CRF y QP) o bien mejor calidad
en el mismo tamaño de archivo (modos de 2-pasadas). Por lo tanto es muy recomendable
mantener CABAC habilitado en todos los casos! Sin embargo CABAC requiere tiempo
adicional de CPU tanto para la codificación como para la decodificación! El tiempo adicional
de CPU que requiere CABAC depende en gran medida de la tasa de bits. ¡Tenga en cuenta
que CABAC puede convertirse fácilmente en la parte de cálculo más intensivo de la
decodificación H.264! Si decide desactivar CABAC (lo que normalmente no se debe hacer),
entonces el menos eficiente pero más rápido CAVLC (Context Adaptive Variable Length
Coding -Codificación de Longitud Variable Adaptable al Contexto) será utilizado.
Observaciones: Note que CABAC requiere un descodificador H.264 capacitado para al
menos un perfil "Main". Si su objetivo es para perfil "Baseline" o "Extended", entonces
¡debería utilizar CAVLC !
Pure Interlaced Mode: Esta configuración permite la codificación entrelazada, así que
active esta opción sólo si su vídeo es entrelazado. En caso de vídeo progresivo (o sea: no
entrelazado) o si usted no sabe lo que significa "entrelazado", ¡manténgase alejado de este
entorno! Tenga en cuenta que ¡codificar un vídeo entrelazado como progresivo destruirá el
contenido! Al mismo tiempo codificar uno progresivo como entrelazado es factible, pero
¡perjudica significativamente la eficiencia de codificación! Una última nota, pero no menos
importante, la implementación de la codificación entrelazada de x264 no es tan eficiente
como debería. Por lo tanto si se trata de una fuente entrelazada, es mucho mejor usar un
filtro de desentrelazado y codificar el vídeo como progresivo.
Observaciones: Ahora que las pantallas CRT están en vías de desaparición y las
pantallas LCD/Plasma empiezan a dominar el mundo, los contenidos entrelazados deben
desentrelazarse en tiempo de reproducción de todos modos. Lamentablemente, algunas
pantallas utilizan desentrelazados bastante pobres, lo que resulta en una imagen
inestable/desenfocada. Por lo tanto, la forma preferida es desentrelazar antes de codificar
el vídeo, usando un deinterlacer/bobber de alta calidad, tales como Yadif o TDeint.
Loop Filter: Controla una de las características más importantes de x264: el filtro Inloop
Deblocking. En contraste con MPEG-4 ASP (DivX, Xvid, etc) el Inloop Deblocking es una
característica obligatoria de la norma H.264. Así el codificador, x264 en este caso, puede
confiar en el decodificador para llevar a cabo una eliminación apropiada del efecto bloque.
Además, todos los P- y B-Frames en flujos H.264 remiten a fotogramas sin bloques en lugar
de a su estado en bruto, lo que mejora la compresibilidad. No hay absolutamente ninguna
razón para que desactive por completo el Inloop Deblocking, por lo que es muy
recomendable mantenerlo activado en todos los casos. Hay dos opciones disponibles para
configurar el filtro Inloop Deblocking:
Strength: Este ajuste también se llama "Alpha Deblocking". Controla cuánto el filtro
Deblocking suavizará el vídeo, por lo que tiene un efecto importante en la nitidez general
de su vídeo. El valor por defecto es 0 y debería ser suficiente para suavizar todos los
bloques de su vídeo, especialmente en los modos cuantificadores (QP o CRF). Los valores
negativos dan un vídeo más nítido, pero también aumenta el peligro de artefactos de
bloque visibles! En contraste los valores positivos resultarán en un vídeo más suave, pero
también eliminará más detalles.
Threshold: Este valor también se llama "Beta Deblocking", y es más difícil de manejar
que el "Alpha Deblocking". Controla el umbral para la detección de bloques. El valor
predeterminado es 0 y debe ser suficiente para detectar todos los bloques del vídeo. Los
valores negativos "salvarán" más detalles, pero podrían quedarse atrás más bloques
(especialmente en las áreas planas). En contraste los valores positivos eliminarán más
detalles y capturarán más bloques.
Observaciones: Por lo general no hay necesidad de cambiar la configuración por defecto
de 0:0 para Strength:Threshold, ya que da muy buenos resultados para una amplia gama
de vídeos. Sin embargo, puede querer probar diferentes configuraciones hasta encontrar
la óptima para sus ojos. Si le gusta un vídeo más nítido y no le importan unos pocos
bloques aquí y allá, quizás podría ser feliz con -2:-1. ¡Esto también podría valer la pena
probarlo a los usuarios de MPEG-4 ASP (DivX, Xvid, etc)! Si le gusta una imagen suave y
limpia o codificar un montón de cosas Anime, entonces puede intentar algo como 1:2. Sin
embargo, ¡no debería salirse del rango -3 y +2 para ambos ajustes!
Max. Ref. frames: En contraste con MPEG-4 ASP, H.264 permite múltiples fotogramas de
referencia. Este ajuste controla cuántos fotogramas pueden ser referenciados por P- y BFrames. Los valores más altos generalmente resultarán en una compresión más eficiente, lo
que significa mejor calidad visual en un mismo tamaño de archivo. Desafortunadamente
más fotogramas de referencia requerirá más tiempo para codificar (y también un poco más
de potencia de CPU para la reproducción). Por defecto, el número de fotogramas de
referencia se limita a 1. Es muy recomendable aumentar el número de referencias a por lo
menos 3. Sin embargo, el uso de más de 4 o 5 fotogramas de referencia para imágenes de
la "vida real" debe evitarse, ya que ¡no mejorará más los resultados! Al mismo tiempo,
anime y caricaturas se beneficiarán mucho de los fotogramas de referencia adicionales. A
veces incluso el máximo de 16 fotogramas de referencia puede ser útil para dicho material.
Observaciones: Aunque los reproductores "software" suelen soportar cualquier número
de fotogramas de referencia, ¡los reproductores "hardware" están limitados a un número
máximo de ellos! El número máximo de fotogramas de referencia puede calcularse a
partir de “Max Decoded Picture Buffer Size” (MaxDPB) y la resolución del vídeo. El valor
MaxDPB queda definido por el Perfil H.264 particular compatible con el reproductor (para
más detalles véase el anexo A de las especificaciones H.264).
B-Frames
Max Consecutive: Esta configuración controla el número máximo de B-Frames
consecutivos. B-Frames se refiere a ambos, el anterior y el siguiente I-Frame (o P-Frame). De
esta manera los B-Frames pueden comprimir aún más eficientemente que los P-Frames. Los
B-Frames pueden mejorar significativamente la calidad visual del vídeo para un mismo
tamaño de archivo. Por lo tanto usar B-Frames es muy recomendable. También tenga en
cuenta que permitir más B-Frames nunca dañará la calidad: Puede incluso elegir con
seguridad el máximo de 16 B-Frames consecutivos. Esto se debe a que sólo estará
especificando el límite superior para el número de B-Frames consecutivos . x264 todavía
decidirá cuántos B-Frames consecutivos se utilizarán efectivamente. Así que incluso si usted
permite hasta 16 B-Frames consecutivos, el codificador rara vez irá tan alto. No obstante la
limitación del número máximo de B-Frames a menos de 16 es razonable, ¡porque la mayoría
de los vídeos, de todos modos, no se beneficiarán del uso de más de ~4 B-Frames
consecutivos! Elevar el límite de B-Frames consecutivos por encima de eso lo único que
haría seria ralentizar el proceso de codificación ¡sin ningún beneficio real! Si se establece el
límite de B-Frames a 0 (por defecto), B-Frames se desactivará. Por supuesto, ¡deshabilitar BFrames no es recomendable!
B-Frame Bias: Este ajuste controla la probabilidad de que se utilice un B-Frame en lugar de
un P-Frame. El valor por defecto es 0, lo que también es el valor recomendado. Un valor
positivo aumenta la probabilidad de que un B-Frame sea utilizado. En contraste, un valor
negativo disminuye esa probabilidad. Por supuesto, el codificador nunca violará el límite
Max Consecutive, sin importar la configuración Bias utilizada.
Adaptive B-Frame Decision: Esta opción controla cómo el codificador elige el número de
B-Frames consecutivos. Sin importar cuál sea la configuración que elija, el codificador nunca
violará el límite de máximos B-Frame consecutivos (pero puede decidir utilizar un menor
número de B-Frames). Los siguientes modos están disponibles:
Fast: Este modo utiliza un rápido y subóptimo algoritmo de decisión B-Frame. Por lo
general, utiliza un número muy bajo de B-Frames, incluso con un límite muy alto de BFrames. ¡Use este modo sólo si está a favor de la velocidad sobre la calidad!
Optimal: Este modo se conoce también como "Trellis B-Frame decision", pero no está
relacionado con la opción de cuantificación Trellis en absoluto. Es significativamente más
lento que el método de decisión B-Frame "Fast", pero encontrará el número óptimo de BFrames y por lo tanto es muy recomendable. Especialmente los fundidos se manejan
mucho mejor con este método. Puesto que la velocidad de este método depende en gran
medida del límite B-Frame, ¡se debe limitar el número máximo de B-Frames consecutivos
a un valor razonable!
Disabled: Esta opción desactivará el Adaptive B-Frame decision. ¡Utilícelo solo para
pruebas!
B-Frames as reference: esta característica se conoce como "B-Pyramid". Si habilita esta
configuración, a los B-Frames se les permite hacer referencias no lineales con el fin de
mejorar el uso del bitrate y la calidad. Así los B-Frames pueden hacer referencias a otros BFrames. Por lo general, se recomienda mantener esta función activada, ya que debe
mejorar el resultado. Sin embargo hay que tener en cuenta que se trata de una
característica de "perfil alto" y por lo tanto requiere un decodificador adecuado, como
libavcodec (MPlayer, ffdshow, etc) o CoreAVC. Los modos disponibles son las siguientes:
Strict: Estricta jerarquía B-Pyramid. Este modo es totalmente compatible BluRay.
Non-Strict: Modo normal B-Pyramid. Da mejores resultados que el modo "Strict", pero no
es BluRay compatible (por cuanto BluRay cuenta con especificaciones extrañas).
Disabled: No utiliza B-Frames como referencia. No se recomienda.
I-Frames
Minimum GOP Size: Esta configuración controla el número mínimo de fotogramas entre
dos fotogramas IDR. Los fotogramas IDR son similares a los Keyframes en vídeos MPEG-4
ASP: La reproducción sólo puede iniciarse en un fotograma IDR, ya que ningún fotograma
después del fotograma IDR puede hacer referencia a un fotograma anterior al fotograma
IDR. En H.264 esto no es posible con los I-Frames "normales", debido a las referencias
múltiples. Así, los fotogramas IDR son necesarios para permitir la búsqueda en el vídeo. Sin
embargo demasiados fotogramas IDR causarían una codificación ineficiente, por lo que hay
un intervalo mínimo de fotogramas IDR. Como regla general, este valor debe ser igual a la
tasa de fotogramas del vídeo. Por ejemplo, un vídeo de 25 fps debe utilizar un valor de 25,
un vídeo de 29,97 fps debe utilizar un valor de 30 y así sucesivamente.
Maximum GOP Size: En contraste con el "Min IDR frame interval”, este parámetro controla
el número máximo de fotogramas entre dos fotogramas IDR. Un valor más alto dará lugar a
un intervalo de fotogramas IDR más grande y en consecuencia una búsqueda más lenta; un
valor inferior tendrá como resultado un intervalo de fotogramas IDR más corto y por lo tanto
mejora la búsqueda. Como regla general, el intervalo de fotogramas IDR no debe ser inferior
a la tasa de fotogramas del vídeo multiplicado por un factor de 10. Por ejemplo, un vídeo de
25 fps debe usar al menos un valor de 250, un vídeo de 29,97 fps debe usar al menos un
valor de 300 y así sucesivamente. El uso de valores aún más elevados mejorará la
compresión a costa de algo menos de rendimiento en la búsqueda. Por supuesto, material
con muchas "tomas largas" y largos "travellings" se beneficiarán mucho más de largos GOPs
que material que consiste principalmente en escenas muy cortas. Tenga en cuenta que
largos GOP perjudicarán la corrección de errores, lo que puede ser un problema para la
reproducción de streamings (y también para autoría de Blu-ray).
Scene Cut Threshold: Controla el umbral de detección de cambio de escena de x264 . De
esta manera el codificador puede poner un I-Frame en cada cambio de escena (en vez de un
P- o B-Frame), que debería conducir a mejores búsquedas de cortes de escena. Un Threshold
más bajo resulta en una detección de cambio de escena más agresiva, lo que podría ser útil
para vídeos muy oscuros. En contraste, un umbral más alto detectará menos cambios de
escena. El valor por defecto es 40 y debería ser adecuado para la mayoría de vídeos.
Analysis
Analysis Configuration
Mixed Refs: Si esta opción está activada, cada macrobloque de 16×16 puede elegir su
propio (óptimo) fotograma de referencia. Esto ralentizará el proceso de codificación, pero
permite una compresión más eficiente. Sobre todo si utiliza un gran número de fotogramas
de referencia, este ajuste le dará una gran mejoría y vale la pena el tiempo de codificación
adicional. Si utiliza pocos fotogramas de referencia, Mixed Refs será menos eficaz. Debe
tener esta opción habilitada si la calidad visual es más importante que la velocidad de
codificación.
Chroma ME (Motion Estimate): Si esta opción está activada, la información de color
(croma) será tomada en cuenta para la detección de movimiento, de lo contrario no se hará.
Con "Chroma ME" activado la detección de movimiento será más lenta pero más precisa.
Consecuentemente suele producir una mayor calidad visual a costa de algún tiempo de
codificación. Por lo tanto se recomienda mantener siempre este ajuste está habilitado,
excepto si la velocidad de codificación es más importante que la calidad visual.
Trellis Quantization: Este ajuste permite Trellis RD quantization. Básicamente, Trellis
llevará a cabo una etapa de cuantificación adicional: mantendrá ciertos "detalles" que
habrían sido eliminados de otra manera. Al mismo tiempo, eliminará otros "detalles" que de
otra manera se habrían mantenido. Por lo general, Trellis mejorará la calidad general de una
manera notable, pero causará una ralentización significativa del proceso de codificación.
Antes de que las optimizaciones Psy se añadieran a x264, se decía que Trellis 2 tenía
tendencia a eliminar los detalles finos y mejorar los bordes. Así que a menudo Trellis 1 se
consideraba la mejor opción. Pero ahora, cuando se utiliza Psy RDO, es altamente
recomendable utilizar Trellis 2, aunque es significativamente más lento que Trellis 1. Si la
velocidad es más importante que la calidad, establecer Trellis a 0 para desactivarlo. Tenga
en cuenta que Psy-Trellis requiere Trellis quantization, por lo que Psy-Trellis se desactivará
cuando Trellis se establece a 0. También tenga en cuenta que Trellis requiere CABAC. Los
modos disponibles son las siguientes:
2: Always On (Lento, la mejor calidad)
1: Final Makroblock only (Rápido, calidad media)
0: Disabled (El más rápido, peor calidad)
Fast P-Skip: Si esta opción está activada, se usará "Fast P-Skip". Fast P-Skip es una
optimización que acelerará el proceso de codificación a costa de una cierta calidad visual.
Sin embargo, la pérdida de calidad causada por Fast P-Skip normalmente es insignificante,
mientras que el aumento de velocidad es inequívoco. Por lo tanto se recomienda mantener
Fast P-Skip marcado. Por desgracia, en raros casos Fast P-Skip provoca artefactos en
escenas "planas", por lo que es posible que desee desactivar Fast P-Skip cuando la calidad
visual sea más importante que la velocidad de codificación.
DCT Decimate: Si esta opción está activada, se utilizará diezmado DCT. Esta característica
permite a x264 descartar bloques DCT "innecesarios". Esos bloques DCT no se escriben en
el flujo de bits, lo que ahorra algo de bitrate y mejora la eficiencia de codificación. Por
supuesto, habrá una pérdida sutil en la calidad, pero por lo general el efecto es
insignificante. Por cuanto DCT Decimate conduce a archivos significativamente más
pequeños en modos basados en Cuantificadores (QP o CRF) se recomienda mantener esta
configuración habilitada. No debe desactivar DCT Decimate, a menos que tenga una muy
buena razón para hacerlo. Los rumores dicen que DCT Decimate no se debe utilizar junto
con Trellis Quantization, ¡pero esto ha sido refutado!
Noise Reduction: Este ajuste controla el filtro interno x264 de eliminación de ruido. Tenga
en cuenta que ¡la eliminación de ruido no es parte de las especificaciones H.264! Así que
esto ha ser considerado como una característica adicional de pre-procesamiento. El valor
predeterminado es 0, que apagará completamente el filtro de eliminación de ruido en x264.
No hay necesidad de cambiar este ajuste, salvo que explícitamente se desee aplicar
eliminación de ruido adicional a su vídeo antes de codificarlo. Por lo general, los valores
buenos para la reducción de ruido no son mayores que 1000. Sin embargo, lo normal es que
quedara mejor con un buen filtro de eliminación de ruido "independiente" como FluxSmooth
o MPlayer denoise3d. ¡Si utiliza uno de estos, por favor, asegúrese de que la eliminación de
ruido x264 está inhabilitado!
Psycho-visually optimized RDO & Trellis
El ojo humano no busca sólo que la imagen tenga un aspecto similar a la original, busca que la
imagen tenga una complejidad similar. Así, preferimos ver un bloque un poco distorsionado,
pero todavía detallado que un bloque sin distorsiones pero borroso por completo. El resultado
es una tendencia hacia una imagen de salida detallada y/o granulada, un poco como xvid
excepto en sus detalles realistas en lugar de feos bloques (ver http://x264dev.multimedia.cx/?
p=164 y http://forum.doom9.org/showpost.php?p=1144270&postcount=1 para más información).
El propósito de Psy RDO es mantener la complejidad de un bloque codificado similar a la
complejidad del bloque original. De esta manera Psy RDO produce una imagen que parece
mucho más nítida y detallada en muchos casos (en comparación con ningún Psy RDO).
¡También ayuda a conservar mucho la granularidad de la película! Tenga en cuenta que Psy
RDO, inherentemente, perjudicará las métricas, tales como PSNR y SSIM. En cuanto estén
involucradas optimizaciones psico-visuales, ¡las métricas clásicas se vuelven inútiles! También
tenga en cuenta que Psy RDO trabajará solamente con modos RDO: Si Partition Decision se
establece a 6 (o superior), entonces Psy RDO se activará por defecto, de lo contrario, se
desactivará. Además de Psy RDO también tenemos ahora Psy-Trellis. Esto todavía se
considera una característica "experimental" y deshabilitada por defecto, pero parece de gran
ayuda para mantener las texturas en el vídeo. Tenga en cuenta que Psy Trellis se basa en Trellis
quantization. En consecuencia, sólo será eficaz con Trellis quantization activado también (Trellis
1 es ahora suficiente, pero 2 será más eficaz).
Psy RDO Strength: Este ajuste controla la fuerza de Psy RDO. ¡Tenga en cuenta que el
último parche Psy RDO escalará automáticamente la fuerza de Psy RDO basado en el
cuantificador del fotograma! Así que el ajuste "strength" es simplemente un factor adicional,
que se multiplicará con el factor de escalado interno. El valor predeterminado de Psy RDO
Strength es 1,0, lo que debería ser suficiente para material tipo "film". ¡El uso de valores
aún más altos puede introducir artefactos! Además, se recomienda reducir Psy-RDO a un
valor de 0,4 para "animaciones" . Esto no significa que Psy-RDO sea generalmente
perjudicial para "animaciones" , únicamente tiene que disminuir la fuerza para tal material.
Psy Trellis Strength: Este ajuste controla la fuerza de Psy Trellis. El valor por defecto
actualmente es de 0,0, por lo que Psy Trellis estará inicialmente desactivado. De todos
modos, puede ser beneficioso utilizar Psy Trellis para la codificación de material tipo "Film".
¡Pero tenga cuidado! Las pruebas han demostrado que un valor de 1,0 por lo general es
demasiado fuerte para Psy Trellis. Para la mayoría de fuentes un valor de 0,15 debería ser
suficiente. ¡Si bien valores más altos pueden introducir artefactos! Además el uso de PsyTrellis para imágenes "animadas" no se recomienda.
Nota: De momento Psy Trellis Strength no está disponible en Avidemux. Se utilizará la
fuerza predeterminada 0,0. Sin embargo, compilaciones parcheadas de libx264 pueden
comportarse de manera diferente.
Luma Quantization Deadzones
Intra Luma Quantization Deadzone
[TO-DO] Si sabe qué tipo de información poner aquí, ¡por favor póngase en contacto con
nosotros!
Inter Luma Quantization Deadzone
[TO-DO] Si sabe qué tipo de información poner aquí, ¡por favor póngase en contacto con
nosotros!
Quantization Matrix
Flat Matrix: La cuantificación es la parte con pérdidas en la compresión de vídeo: Los
coeficientes se dividen a través de la matriz de cuantificación y luego redondeados. “Flat
Matrix” es la matriz de cuantificación por defecto en las especificaciones H.264 - todas las
entradas son simplemente rellenadas con 16. Es sabido que esta matriz da muy buenos
resultados para una amplia gama de vídeos y bitrates. Esto significa calidad subjetiva tanto
como valores de PSNR.
JVT Matrix: Esta es la matriz de cuantificación alternativa de las especificaciones H.264.
Las pruebas han demostrado que "JVT Matriz" funciona pobremente, aunque es parte de las
especificaciones oficiales. Por lo tanto se recomienda no utilizar esta matriz, salvo para
pruebas y comparaciones! Estará mucho mejor con "Flat Matrix" en casi todos los casos.
Custom Matrix: Esta opción le permite cargar sus propias matrices de cuantificación. La
creación de matrices de cuantificación es una tarea compleja que necesita un conocimiento
profundo y en detalle de cómo funciona la compresión de vídeo. Por lo tanto la creación de
nuevas matrices de cuantificación se debe reservar para los gurús de H.264. Sin embargo,
puede encontrar una lista de matrices adecuadas en este lugar y este otro. ¡Tenga en
cuenta que el ajuste "Deblocking Filter” tiene un gran impacto en cómo de bien/mal rinde
una matriz de cuantificación! Igualmente, la mayoría de matrices personalizadas están
enfocadas a un rango de bitrate determinado (por ejemplo, tasas de bits ultra altas o ultra
bajas) y funcionarán mal fuera de este rango. Por último, pero no menos importante, no
debe utilizar matrices personalizadas, a menos que sepa lo que está haciendo. En la
mayoría de los casos se obtienen resultados satisfactorios simplemente con "Flat Matrix"
(por defecto).
Observaciones: Ahora que x264 contiene varias optimizaciones psico-visuales (Adaptive
Quantization, Psy-RDO, Psy-Trellis) ¡las matrices de cuantificación personalizadas se han
tornado obsoletas! La mayoría de las cosas que la gente trató de alcanzar con matrices
personalizadas, como detalle y granularidad, ahora se pueden lograr mediante
optimizaciones Psy de una manera más sofisticada. Además, las optimizaciones Psy están
sintonizadas para la matriz plana predeterminada. ¡Así que el uso de matrices
personalizadas "extremas" pueden dar lugar a efectos no deseados cuando están
involucradas optimizaciones Psy! Por lo tanto es muy recomendable seguir con la matriz
plana, a menos que tenga una muy buena razón para utilizar una matriz personalizada.
Quantizer
Quantizer Control
Minimum Quantizer: especifica el cuantificador mínimo forzado. Esto significa que cada
fotograma tendrá al menos esta cantidad de pérdida de datos. El valor por defecto es 10,
que asegura que no se desperdicia bitrate en cuantificadores demasiado bajos. Este valor
debe estar bien incluso para vídeos de alta calidad.
Maximum Quantizer: especifica el cuantificador máximo permitido. Esto significa que
ninguno de los fotogramas tendrá una mayor cantidad de pérdida de datos que esto. El valor
por defecto es 51, que es el cuantificador máximo posible. Así que "Max Qp" no está
limitado de forma predeterminada. Por supuesto, el codificador sólo irá tan alto cuando sea
realmente necesario ¡así que no se preocupe!
Maximum Quantizer Step: Especifica cuánto puede cambiar el cuantificador entre dos
fotogramas consecutivos. El valor por defecto es 4. Esto asegura que dos fotogramas
consecutivos no tendrá cuantificadores demasiado diferentes. Si permite “QP Steps”
significativamente mayores podría dar lugar a “saltos” de calidad visibles entre fotogramas,
así que no haga eso.
Average Bitrate Tollerance: Este ajuste afecta únicamente al modo basado en bitrate y
"Single Pass". Controla el grado de precisión del codificador para alcanzar la tasa de bits
objetivo (o el tamaño del archivo de destino). El objeto de "Bitrate Variance" es llegar lo más
cerca posible a la calidad de un modo de codificación CRF, sin dejar de estar cerca del
tamaño deseado del archivo. Un valor de 0,0 limitará al codificador para obtener
exactamente el bitrate deseado. El valor por defecto de 1,0 permite una diferencia del 1%,
lo que sigue siendo bastante restrictivo pero ya es mucho mejor que el puro CBR. Tenga en
cuenta que la discrepancia debería estar normalmente dentro de un rango del 30%. Además
el modo CRF todavía da resultados mucho mejores que el modo basado en bitrate ¡por lo
que es el método recomendado!
Factor between I- and P-Frame Quants: Este ajuste controla cuánto más intensamente
serán comprimidos los P-Frames en comparación con los I-Frames. Un valor de 1,0 asignaría
los mismos cuantificadores a P-Frames y I-Frames, mientras que el valor por defecto de 1,4
asigna cuantificadores un 40% mayores a los P-Frames (en comparación con los I-Frames).
Esto equivale a la opción de Xvid "I-Frame Boost". La compresión más intensa de P-Frames
frente a I-Frames se recomienda, por cuanto los I-Frames sirven como referencia inicial de
una escena y por lo tanto tienen un gran impacto en la calidad de los fotogramas siguientes.
En consecuencia, ¡no debe cambiar el valor por defecto, a menos que tenga una muy buena
razón para hacerlo!
Factor between P- and B-Frame Quants: Este ajuste controla cuánto más intensamente
serán comprimidos los B-Frames en comparación con los P-Frames. Un valor de 1,0
asignaría los mismos cuantificadores a B-Frames y P-Frames, mientras que el valor por
defecto de 1,3 asigna cuantificadores un 30% mayores a los B-Frames (en comparación con
los P-Frames). La compresión más intensa de B-Frames frente a P-Frames se recomienda, por
cuanto los B-Frames no son referenciados por otros fotogramas (excepto por la B-Pyramid),
mientras que los P-Frames sirven como referencia para los fotogramas siguientes. Por lo
tanto, ¡no debe cambiar el valor por defecto, a menos que tenga una muy buena razón para
hacerlo!
Chroma to Luma Quantizer Offset: Este ajuste controla cuánto más intensamente será
comprimida la información de color (croma) en comparación con la información de brillo
(luma). A veces tiene sentido comprimir la información de color más intensamente que la
información de brillo, por cuanto la pérdida de datos en la información de color es menos
apreciable por el ojo humano que la pérdida de datos en la información de brillo. El
desplazamiento especificado se añadirá a los cuantificadores de crominancia. Se puede
configurar entre -12 y +12. El valor por defecto es 0 y por lo general ¡se recomienda
mantener el valor por defecto! Tenga en cuenta que ambos, Psy-RDO y Psy-Trellis, si están
activados, disminuyen el desplazamiento en una o dos unidades. Así que puede terminar
con un desplazamiento de -4 usando optimizaciones Psy.
Quantizer Curve Compression
Quantizer Curve Compression (%): Este ajuste también se llama "qcomp" o "bitrate
variability" (no confundir con bitrate variance). Controla cuánto puede fluctuar el bitrate a lo
largo de todo el vídeo . Un valor de 0% forzaría a aplicar un bitrate constante, mientras que
un valor de 100% resultaría en un flujo de cuantificador constante. El valor predeterminado
es de 60%, lo que da buenos resultados para la mayoría de los vídeos. Así que no cambie el
valor predeterminado ¡a menos que tenga una muy buena razón para hacerlo! Tenga en
cuenta que la cuantificación adaptativa (AQ) sustituye parcialmente el efecto de qcomp y
x264 internamente aumentará qcomp para compensar en base a adaptive quantization
strength. Tenga en cuenta también que utilizar el modo CRF junto con un qcomp de 100% es
técnicamente equivalente al modo de QP, excepto que el modo CRF todavía es capaz de
utilizar AQ (cosa que el modo QP no puede hacer). De ahí que tanto cuanto más suba
qcomp, tanto más próximo estará el modo CRF a una codificación QP.
Reduce Fluctuation Before Curve Compression: Esta configuración aplicará un
desenfoque gaussiano temporal a la curva de cuantificación antes del paso "Quantizer
Compression". Esto se hace con el fin de aplanar las fluctuaciones no deseadas del
cuantificador, lo que debería hacer la calidad visual más estable, especialmente en
contenido animado. El valor predeterminado es 20,0 y generalmente no necesita ser
cambiado.
Reduce Fluctuation After Curve Compression: Esta configuración aplicará un
desenfoque gaussiano temporal a la curva de cuantificación después del paso "Quantizer
Compression". Esto se hace con el fin de aplanar aún más las fluctuaciones no deseadas del
cuantificador. El valor predeterminado es 0,5 y normalmente no necesita ser cambiado.
Observaciones: Para más información sobre cómo trabaja en detalle el control de tasa de
x264 diríjase a esta ubicación.
Adaptive Quantization
La Cuantificación Adaptativa (AQ) permite a cada macrobloque dentro del fotograma elegir un
cuantificador diferente, en lugar de asignar el mismo cuantificador para todos los bloques del
mismo fotograma. El propósito de AQ es mover más bits a macrobloques "planos". Esto se
realiza adaptativamente reduciendo los cuantificadores de determinados bloques (y subiendo
los cuantificadores de otros bloques). Sin AQ, las áreas planas y oscuras de la imagen tienden a
mostrar feos efectos de bloque o bandeado. Gracias al nuevo algoritmo AQ ¡los efectos de
bloque y bandeado se pueden reducir considerablemente! Con AQ habilitado, se puede esperar
un aumento significativo(!) en la calidad de la imagen en general. Sobre todo en las escenas
oscuras y escenas con fondos "planos" (cielo, hierba, paredes, etc) pueden conservarse
muchos más detalles. No obstante AQ parece funcionar menos eficientemente con material de
"Animación" de lo que lo hace con material tipo "Film", pero aún ayuda a prevenir las bandas.
Tenga en cuenta que AQ se puede utilizar con los modos basados en bitrate ( Simple Pasada y
Doble Pasada), así como con el modo CRF. ¡No se puede utilizar con el modo QP! Eso es
porque el modo QP utiliza cuantificadores constantes por definición, que es una de las razones
por las que el modo de QP, en general, debe evitarse en la actualidad.
AQ Strength: Este ajuste controla la cantidad de AQ que se aplica a los fotogramas. El valor
por defecto de AQ Strength es ahora de 1,0, por lo que AQ estará activado por defecto. El
valor por defecto debería estar bien equilibrado y dar buenos resultados AQ para la mayoría
de fuentes . Si cree que su vídeo requiere más intensidad AQ, entonces puede aumentarla.
Un valor de 1,5 se considera un AQ "fuerte". Si cree que el efecto AQ es demasiado fuerte,
puede disminuir su intensidad. Un valor de 0,5 se considera un AQ "débil". Mientras que
apegarse a un valor de AQ de 1,0 es lo recomendado para material tipo "Film", debería
bajarse a 0,6 para material de "Animación".
AQ Mode: Este ajuste selecciona el algoritmo AQ. Los siguientes modos están disponibles:
Variance AQ: El algoritmo AQ por defecto. Recomendado.
Auto-Variance AQ: Nuevo algoritmo AQ experimental que trata de adaptar la intensidad
AQ por fotograma (ahora mejorado por MB-Tree).
Disabled: No usar AQ en absoluto. No se recomienda.
Ejemplo: x264 con VAQ-vs-No AQ (imagen animada GIF)
Advanced
Video Buffer Verifier
VBV (Video Buffering Verifier) define un modelo de búfer de vídeo específico. En este modelo el
decodificador (el reproductor) lee los datos de entrada desde un búfer. Este búfer tiene un
tamaño limitado. También el búfer se llena a una tasa de transferencia de datos limitada. VBV
se asegura de que el búfer nunca se quedará sin datos, es decir, que se asegura de que
siempre hay suficientes datos en la memoria intermedia para decodificar el fotograma
siguiente. Por lo tanto VBV obliga a un bitrate adicional y restricciones al almacenamiento en
búfer desde el codificador. Es muy recomendable no usar VBV, a menos que no pueda evitarlo.
¡VBV puede perjudicar la calidad del vídeo, pero nunca va a mejorarla! Lamentablemente los
reproductores hardware (incluyendo los dispositivos móviles) pueden necesitar VBV para una
reproducción apropiada. Tendrá que buscar los requisitos particulares de VBV para cada
dispositivo específico. En particular, BluRay tiene requisitos estrictos de VBV. Tenga en cuenta
que la implementación VBV de x264 funciona ahora muy bien con ambos modos, 1-Pasada y 2Pasadas. Ya no hay necesidad de forzar el modo 2-Pasadas para VBV. (para detalles sobre VBV
ver http://en.wikipedia.org/wiki/Video_buffering_verifier).
Maximum VBV Bitrate: Especifica la tasa de bits máxima (en kbit/s) a la que los datos
entran en la memoria intermedia. Esto es igual al ancho de banda de la red (para streaming
media) o a la velocidad máxima de lectura de disco (para reproducción local). Tenga en
cuenta que esta opción no restringe el máximo bitrate (local) de vídeo. La tasa de bits (local)
de vídeo puede exceder el máximo bitrate de VBV, siempre y cuando haya suficientes datos
disponibles en el búfer. Un valor de 0 indica que VBV no se utiliza (por defecto).
Maximum Buffer Size: especifica el tamaño del búfer del dispositivo/reproductor (en
kilobits). Esta es la cantidad máxima de datos que pueden mantenerse en el interior del
búfer. Normalmente esto está predefinido por el dispositivo/reproductor particular para el
que está codificando. Un valor de 0 indica que VBV no se utiliza (por defecto).
Initial VBV Buffer Occupancy: Especifica el nivel de llenado del búfer del dispositivo al
inicio de la reproducción. 90% es el valor predeterminado.
Nota: VBV no se puede utilizar sin especificar tanto Maximum VBV Bitrate como Maximum
Buffer Size. ¡Especificando sólo uno de ellos (mientras que el otro es 0) no hace nada!
Slicing
H.264 permite segmentar cada fotograma en varias partes. Estas partes se llaman "lonchas".
La ventaja de usar múltiples lonchas (por fotograma) es que las rodajas se pueden procesar de
forma independiente y en paralelo. Esto permite una fácil implementación multi-threading en
codificadores y decodificadores H.264. Desafortunadamente ¡utilizar múltiples rebanadas
perjudica la eficiencia de compresión! ¡Y cuantas más rodajas se usan peor resultado! Así que
no debería usar Slicing si no tiene porqué hacerlo. Pero si su decodificador H.264 utiliza multithreading basado en slice (es decir, varias lonchas se decodifican en paralelo), entonces este
sólo utilizará multi-threading si el vídeo fue codificado con Slicing. Afortunadamente la mayoría
de los decodificadores de software no requieren Slicing, debido a que utilizan multi-hilo basado
en fotograma (es decir, varios fotogramas se decodifican en paralelo). Sin embargo los
descodificadores de hardware podrían requerir Slicing. En particular, las especificaciones Bluray dicen que deben utilizarse al menos 4 rebanadas.
Maximum Size per Slice: Especifica el tamaño máximo por rodaja (en bytes). x264 usará
tantas lonchas como sean necesarias para cumplir con esa restricción. Un valor de 0
significa que no se utilizarán múltiples lonchas.
Maximum Macroblocks per Slice: especifica el número máximo de macrobloques por
rebanada. x264 usará tantas lonchas como sean necesarias para cumplir con esa
restricción. Un valor de 0 significa que no se utilizarán múltiples lonchas.
Slices per Frame: Especifica el número de rebanadas por fotograma. Un valor de 0
significa que no se utilizarán múltiples lonchas.
Nota: x264 no requiere múltiples rebanadas para tomar ventaja de procesadores múltinúcleos. Desde r607 x264 utiliza multi-hilo basado en fotograma.
Zones
Add: Agregar una nueva zona a la lista.
Edit: Editar una zona existente.
Delete: Eliminar una zona de la lista.
Las zonas pueden utilizarse para asignar manualmente una tasa de bits más baja o más alta a
una determinada sección del vídeo (por ejemplo, imponer un bitrate inferior para los créditos
finales). Hay dos modos de controlar la velocidad de bits de una zona: Usando un "Factor
Bitrate" se puede cambiar el bitrate relativo a la decisión del codificador y el uso de un
"Cuantificador" puede sobrescribir la decisión del codificador con un valor de cuantificación
constante.
Output
Output Settings
IDC Level:
Por defecto x264 detectará el Nivel del flujo H.264 resultante basado en la configuración
elegida del codificador (y en base a las propiedades de su vídeo). Esta opción se puede
utilizar para sobrescribir la decisión x264. ¡Tenga en cuenta que x264 no forzará el nivel
seleccionado por usted! Sólo está especificando qué nivel se indicará en la cabecera de
su flujo H.264. ¡Pero esto no significa que su flujo realmente cumple con ese nivel! Así
que puede fácilmente producir un stream no válido al especificar un nivel inadecuado. Por
lo tanto es muy recomendable mantener la configuración del nivel IDC en modo Auto y
dejar que x264 detecte el nivel adecuado. Si desea que su flujo H.264 cumpla con un
determinado nivel H.264, entonces debe elegir la configuración del codificador en
consecuencia. También debe asegurarse de que la resolución del vídeo y la tasa de
fotogramas por segundo no rebasan los límites del nivel. En resumen: ¡no cambie esta
opción, a menos que tenga una muy buena razón para hacerlo!
Sequence Parameter Set Identifier:
[TO-DO] Si sabe qué tipo de información poner aquí, por favor ¡póngase en contacto con
nosotros!
Enforce Repeatability:
[TO-DO] Si sabe qué tipo de información poner aquí, por favor ¡póngase en contacto con
nosotros!
Use Access Unit Delimiters:
[TO-DO] Si sabe qué tipo de información poner aquí, por favor ¡póngase en contacto con
nosotros!
Pixel Aspect Ratio
Este valor define la "Relación de Aspecto de los Píxeles" (PAR) del vídeo. No cambie el valor por
defecto de 1:1 (también conocido como "píxeles cuadrados"), a menos que esté codificando
vídeo anamórfico! En caso de que desee codificar material anamórfico y desea mantenerlo
anamórfico, tendrá que establecer el PAR correcto. De lo contrario el vídeo se mostrará con una
relación de aspecto errónea! Si tiene una fuente anamórfica y desea convertirla en "Píxeles
Cuadrados" (PAR = 1:1), entonces debe invocar el filtro Redimensionar y cambiar el tamaño del
vídeo en consecuencia. Tenga en cuenta que la "Relación de Aspecto de los Píxeles" no es igual
a la "Relación de Aspecto de la Pantalla" (DAR). De todos modos, el DAR se calcula a partir del
PAR con esta fórmula: DAR = Anchura / Altura * PAR. Por ejemplo: 720/576 * 64/45 = 16/9. La
ventaja de trabajar con los valores PAR es que el PAR de un vídeo no cambiará al recortar el
vídeo, mientras que el DAR es muy probable que lo cambie. Las opciones PAR disponibles son
las siguientes:
Custom: Introducir un valor PAR definido por el usuario
Predefined Aspect Ratio: Seleccionar uno de los valores PAR más comunes de la lista
As Input: Mantener el PAR del vídeo original
Video Usability Information
Estos ajustes son sólo sugerencias para el equipo de reproducción. Úselos bajo su propio
riesgo!
Overscan
Video Format
Color Primaries
Transfer Characteristics
Color Matrix
Chroma Sample Location
Full Range Samples
Opciones x264 no disponibles en Avidemux
AQ Mode - actualmente Avidemux sólo negocia con AQ modo 1, el modo 2 aun no está
disponible.
Sub-ME 10 - actualmente el modo Sub-Me más alto disponible en Avidemux es 9, el modo
10 (también conocido como "QPRD") aun no está disponible.
Psy-Trellis - actualmente Psy-Trellis se desactivará en Avidemux (¡aunque Psy-RDO está
disponible!).
Progressive Intra Refresh
Cálculos PSNR y SSIM
Opciones x264 Obsoletas
B-RDO: decisión RD basada en el modo de B-Frames. Esta opción se ha eliminado desde
r996. Ahora está habilitada implícitamente en Sub ME 7 o superior.
Pre-Scenecut: Desde r1117 x264 siempre utilizará Pre-Scenecut, porque generalmente es
mejor que el scenecut ordinario en términos de precisión y este no funciona de ninguna
manera en modos compactos.
Bidireccional ME: Optimizar conjuntamente ambos vectores de movimiento en B-Frames.
Esta opción se ha eliminado desde r996. Ahora está habilitada implícitamente en Sub ME 5 o
superior.
AQ Sensitivity: Esta opción nunca existió en x264 oficiales. Sólo se usó en parches
experimentales de Adaptive Quantization. Actualmente AQ no la usa.
Perfiles y Niveles H.264/AVC
Las especificaciones H.264/AVC definen un número de perfiles diferentes. Cada perfil
especifica qué características de H.264 se permiten (o no se permiten). Si desea que su flujo de
vídeo H.264 sea compatible con un perfil determinado, entonces sólo puede activar funciones
permitidas en este perfil. Los perfiles son necesarios para asegurarse de que el archivo de
vídeo se reproducirá correctamente en un decodificador determinado. Por ejemplo, un vídeo
compatible con el perfil "Main" rodará 100% fino en todo decodificador/reproductor capacitado
para perfil "Main". Cuando se trabaja con el codificador x264, hay básicamente dos perfiles a
tener en cuenta: el perfil "Main" y el perfil "High". Sin embargo x264 carece de
la
característica de Resistencia a los Errores del perfil "Baseline", así como soporte de entrelazado
del Perfil "Extended". Si lo que busca es reproducir su vídeo en reproductores de software,
entonces no necesita preocuparse mucho acerca de perfiles. El decodificador H.264 de
"libavcodec", que se utiliza en MPlayer, VLC Player, ffdshow y muchos más, soporta todas las
características de x264 ', incluyendo el perfil "High" y la característica “Predictive Lossless” del
mismo. Otro tanto para los decodificadores propietarios, como CoreAVC. Sin embargo, si el
objetivo es un reproductor hardware, los perfiles se tornan muy importantes, ya que los
reproductores hardware son muy restrictivos en los perfiles que soportan.
Adicionalmente a los perfiles, las especificaciones H.264/AVC también definen un número de
niveles. Mientras que los perfiles definen qué características de compresión de H.264 pueden
(o no) ser usadas, los niveles imponen restricciones adicionales sobre otras propiedades del
vídeo. Estas restricciones incluyen la resolución máxima, la tasa de bits máxima, la tasa de
fotogramas máxima (para una resolución dada) y el número máximo de fotogramas de
referencia (aunque limitado indirectamente por MaxDPB). Para reproducir su vídeo H.264 en un
reproductor de hardware específico, ese reproductor no sólo debe ser compatible con el perfil
de su vídeo, sino también con el nivel de su vídeo (o uno más alto). Por contra, los
reproductores software generalmente no tienen tales restricciones, siempre y cuando la CPU
sea lo suficientemente potente.
Nota: La notación común para los perfiles y niveles es "Profile@Level", por ejemplo [email protected].
Además no hay ninguna manera de codificar directamente el vídeo a un perfil y/o nivel
específico. Si desea que el vídeo cumpla con a un cierto perfil/nivel, debe elegir la
configuración del codificador en consecuencia. Los preajustes pueden ser útiles para encontrar
la configuración correcta. De todos modos, todavía puede ser necesario cambiar el tamaño de
vídeo y/o la tasa de fotogramas.
Lista de todos los perfiles H.264/AVC
Baseline
Extended
Main
High
High 10
High
4:2:2
High 4:4:4
Predictive
I and P Slices
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
B Slices
NO
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SI and SP Slices
Multiple Reference
Frames
In-Loop Deblocking
Filter
CAVLC Entropy
Coding
CABAC Entropy
Coding
Flexible Macroblock
Ordering (FMO)
Arbitrary Slice
Ordering (ASO)
NO
SÏ
NO
NO
NO
NO
NO
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
NO
NO
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
NO
NO
NO
NO
NO
SÏ
SÏ
NO
NO
NO
NO
NO
Redundant Slices (RS) SÏ
SÏ
NO
NO
NO
NO
NO
Data Partitioning
Interlaced Coding
(PicAFF, MBAFF)
NO
SÏ
NO
NO
NO
NO
NO
NO
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
4:2:0 Chroma Format
Monochrome Video
Format (4:0:0)
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
NO
NO
NO
SÏ
SÏ
SÏ
SÏ
4:2:2 Chroma Format
NO
NO
NO
NO
NO
SÏ
SÏ
4:4:4 Chroma Format
NO
NO
NO
NO
NO
NO
SÏ
8 Bit Sample Depth
9 and 10 Bit Sample
Depth
11 to 14 Bit Sample
Depth
8×8 vs. 4×4
Transform Adaptivity
Quantization Scaling
Matrices
Separate Cb and Cr
QP control
Separate Color Plane
Coding
Predictive Lossless
Coding
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
SÏ
NO
NO
NO
NO
SÏ
SÏ
SÏ
NO
NO
NO
NO
NO
NO
SÏ
NO
NO
NO
SÏ
SÏ
SÏ
SÏ
NO
NO
NO
SÏ
SÏ
SÏ
SÏ
NO
NO
NO
SÏ
SÏ
SÏ
SÏ
NO
NO
NO
NO
NO
NO
SÏ
NO
NO
NO
NO
NO
Baseline
Extended
Main
High
High 10
NO
High
4:2:2
SÏ
High 4:4:4
Predictive
De Wikipedia, la enciclopedia libre
Lista de todos los niveles H.264/AVC
Level
number
Max
macroblocks
per second
Max frame size
(macroblocks)
Max video bit rate
(VCL) for Baseline,
Extended and Main
Profiles
Max video bit
rate (VCL) for
High Profile
Max video bit
rate (VCL) for
High 10 Profile
Max video bit rate
(VCL) for High 4:2:2
and High 4:4:4
Predictive Profiles
Examples for high
resolution @ frame rate
(max stored frames) in
Level
1
1485
99
64(nbsp)kbit/s
80(nbsp)kbit/s
192(nbsp)kbit/s
256(nbsp)kbit/s
128×[email protected](nbsp)(8)
176×[email protected](nbsp)(4)
1b
1485
99
128(nbsp)kbit/s
160(nbsp)kbit/s
384(nbsp)kbit/s
512(nbsp)kbit/s
128×[email protected](nbsp)(8)
176×[email protected](nbsp)(4)
1.1
3000
396
192(nbsp)kbit/s
240(nbsp)kbit/s
576(nbsp)kbit/s
768(nbsp)kbit/s
176×[email protected](nbsp)(9)
320×[email protected](nbsp)(3)
352×[email protected](nbsp)(2)
1.2
6000
396
384(nbsp)kbit/s
480(nbsp)kbit/s
1152(nbsp)kbit/s
1536(nbsp)kbit/s
320×[email protected](nbsp)(7)
352×[email protected](nbsp)(6)
1.3
11880
396
768(nbsp)kbit/s
960(nbsp)kbit/s
2304(nbsp)kbit/s
3072(nbsp)kbit/s
320×[email protected](nbsp)(7)
352×[email protected](nbsp)(6)
2
11880
396
2(nbsp)Mbit/s
2.5(nbsp)Mbit/s
6(nbsp)Mbit/s
8(nbsp)Mbit/s
320×[email protected](nbsp)(7)
352×[email protected](nbsp)(6)
2.1
19800
792
4(nbsp)Mbit/s
5(nbsp)Mbit/s
12(nbsp)Mbit/s
16(nbsp)Mbit/s
352×[email protected](nbsp)(7)
352×[email protected](nbsp)(6)
2.2
20250
1620
4(nbsp)Mbit/s
5(nbsp)Mbit/s
12(nbsp)Mbit/s
16(nbsp)Mbit/s
3
40500
1620
10(nbsp)Mbit/s
12.5(nbsp)Mbit/
30(nbsp)Mbit/s
s
40(nbsp)Mbit/s
3.1
108000
3600
14(nbsp)Mbit/s
14(nbsp)Mbit/s
42(nbsp)Mbit/s
56(nbsp)Mbit/s
3.2
216000
5120
20(nbsp)Mbit/s
25(nbsp)Mbit/s
60(nbsp)Mbit/s
80(nbsp)Mbit/s
4
245760
8192
20(nbsp)Mbit/s
25(nbsp)Mbit/s
60(nbsp)Mbit/s
80(nbsp)Mbit/s
4.1
245760
8192
50(nbsp)Mbit/s
62.5(nbsp)Mbit/
150(nbsp)Mbit/s
s
200(nbsp)Mbit/s
4.2
522240
8704
50(nbsp)Mbit/s
62.5(nbsp)Mbit/
150(nbsp)Mbit/s
s
200(nbsp)Mbit/s
5
589824
22080
135(nbsp)Mbit/s
168.75(nbsp)Mb
405(nbsp)Mbit/s
it/s
540(nbsp)Mbit/s
5.1
983040
36864
240(nbsp)Mbit/s
300(nbsp)Mbit/s 720(nbsp)Mbit/s
960(nbsp)Mbit/s
Level
number
Max
macroblocks
per second
Max frame size
(macroblocks)
Max video bit rate
(VCL) for Baseline,
Extended and Main
Profiles
Max video bit
rate (VCL) for
High Profile
Max video bit rate
(VCL) for High 4:2:2
and High 4:4:4
Predictive Profiles
Max video bit
rate (VCL) for
High 10 Profile
352×[email protected](nbsp)(10)
352×[email protected](nbsp)(7)
720×[email protected](nbsp)(6)
720×[email protected](nbsp)(5)
352×[email protected](nbsp)(12)
352×[email protected](nbsp)(10)
720×[email protected](nbsp)(6)
720×[email protected](nbsp)(5)
720×[email protected](nbsp)(13)
720×[email protected](nbsp)(11)
1280×[email protected](nbsp)(5)
1280×[email protected](nbsp)(5)
1280×[email protected](nbsp)(4)
1280×[email protected](nbsp)(9)
1920×[email protected](nbsp)(4)
2048×[email protected](nbsp)(4)
1280×[email protected](nbsp)(9)
1920×[email protected](nbsp)(4)
2048×[email protected](nbsp)(4)
1920×[email protected](nbsp)(4)
2048×[email protected](nbsp)(4)
1920×[email protected] (13)
2048×[email protected] (13)
2048×[email protected] (12)
2560×[email protected] (5)
3680×[email protected](nbsp)(5)
1920×[email protected] (16)
4096×[email protected] (5)
4096×[email protected] (5)
Examples for high
resolution @ frame rate
(max stored frames) in
Level
De Wikipedia, la enciclopedia libre
¡Para obtener más información, consulte el "Anexo A" de las especificaciones oficiales de la UITT H.264!
Soporte GPU
Desde que GPGPU se convirtió en tema candente, la gente comenzó a pedir soporte de GPU en
Avidemux. Esta gente tiene que entender que Avidemux no puede ofrecer soporte GPU en
codificación H.264 hasta que el soporte GPU está implementado en la biblioteca x264. Hay un
proyecto programado para añadir soporte CUDA en x264 , pero no hay resultados aún (mayo
de 2009) (ver http://wiki.videolan.org/SoC_x264_2009#GPU_Motion_Estimation). Sabemos que
hay codificadores H.264 comerciales con GPU disponible ya. Pero si nos fijamos en estos
codificadores de cerca, notará que sus afirmaciones sobre incrementos significativos de
velocidad son charlatanería de marketing. Estos codificadores puede ser rápidos, ¡pero su
calidad no alcanza ni de lejos a la calidad de x264! También tenga en cuenta que el gremio del
marketing tienden a comparar sus codificadores con el codificador de referencia H.264
completamente sin optimizar. x264 es más rápido que el codificador de referencia en varios
órdenes de magnitud, lo que hace que estas comparaciones de velocidad carezcan de sentido.
x264 puede correr muy rápido en una CPU y escala hasta al menos 16 núcleos. ¡Así que no te
creas todo lo que clama el marketing!
IDR-frames
Los IDR-frames son: Un fotograma IDR es lo que se conoce tradicionalmente como un
fotograma I. Un fotograma IDR, al igual que un fotograma I en formato MPEG-1/2 y MPEG-4
ASP, comienza con un borrón y cuenta nueva, y todos los fotogramas siguientes harán
referencia al fotograma IDR y los fotogramas subsiguientes. Deberían ser poco comunes los Iframes no IDR, pero como no se puede descartar, la aplicación de un intervalo IDR mínimo
puede ayudar a mejorar la compresión en algunas escenas de mucho movimiento. En
H.264/AVC también puede tener fotogramas I dentro de un GOP, que no son “buscables”, por
cuanto las referencias de tiempo largo introducidas en H.264/AVC podrían resultar en un Pframe después de un I-frame haciendo referencia a un P-frame anterior al I-frame.
Max IDR-keyframe interval indica la distancia máxima entre dos fotogramas IDR. Del mismo
modo, Min IDR- keyframe interval indica la distancia mínima entre dos fotogramas IDR.
Lista de Referencias
Official ITU-T H.264 Specifications - provided by Neuron2
x264 - A high performance H.264/AVC encoder - by Loren Merritt and Rahul Vanam
H.264/AVC Thread on Doom9's Forum - especially posts by akupenguin, Dark Shikari and
*.mp4 guy
A qualitative overview of x264's ratecontrol methods - by Loren Merritt
The x264 multi-threading threading method - by Loren Merritt
x264 ffmpeg mapping and options guide
Wikipedia, the free encyclopedia - article about the “x264” encoder (German version)
DeathTheSheep's AVC VfW Guide
MeWiki - x264 settings
Selur's man x264 (Hilfe zum x264 CLI) - German documentation
Digital Digest - x264 Options Explained
Ver también
Compilando x264
Descargar