miércoles, 8 de abril de 2009

x264 (H264/AVC)

x264 (H264/AVC)

RATE CONTROL

Antes de realizar las compresiones, es aconsejable configurar las opciones avanzadas, tal como se explica a continuación.

IFrame boost (%): 40 | Aplica un incremento del bitrate prefijado en los I-Frames, mejorando asi su calidad. Con un valor de 40, aplica hasta un 40% de bitrate extra en cada I-Frame. Un valor alto puede ser beneficioso debido a que tanto P-Frames como B-Frames hacen referencia de I-Frames, con lo cual puede resultar hasta beneficioso. Un valor 40 es el recomendado.

B-Frames reduction (%): 30 | Indica la proporción de bitrate que se podrá ahorrar a la hora de asignar bitrate a los B-frames. Con un valor 30 tendremos mas que suficiente para no reducir en exceso la calidad.

Bitrate variability (%): 60 | Indica el máximo y mínimo bitrate por el que se moverá la distribución de bitrate a lo largo de la compresión. Un valor 0% indicaría un bitrte constante y un valor 100% sería un VBR puro, haciendo en ocasiones desajustes demasiados grandes entre frames, de ahi que lo aconsejable sea 60%.

Min QP: 10 | Indica el quantizer mínimo que se utilizará a lo largo de la compresión. Un valor menor aplicaría frames de mejor calidad y mayor tamaño.

Max QP: 51 | Indica el quantizer máximo que se utilizará a lo largo de la compresión.

Max QP Step: 4 | Esto es un limitador de quantizer. Con un valor 4 indicamos que entre frame y frame nunca habrá un salto mayor de 4, impidiendo que se produzcan saltos demasiado grandes de calidad.

Scene Cut Threshold: 40 | Esto sirve para modificar el dato sobre la diferencia entre frames, para determinar si es necesario introducir un I-Frame. De esta forma, un valor muy alto indicará una mayor sensibilidad en las comparaciones y el codec introducirá I-Frames cada poco. Un valro 40 es lo adecuado para la mayoría de los casos.

Min IDR-frame interval: 25 | Esto es la distancia minima entre dos I-Frames. Se utiliza esta limitación para que no haya ningun abuso de I-Frames seguidos (lo cual consumiría bitrate). En este caso, nunca habrá mas de 2 durante 25 frames.

Max IDR-frame interval: 250 | Estos no son mas que I-Frames y se indica la distancia máxima permitida entre dos de ellos. En este caso, cada 250 frames, se meterá como mínimo un Iframe para asegurar la busqueda y un deterioro de calidad mínimo.

Direct mode: Tmporal | Indica el modo de trabajar de los B-frames. Por ahora es aconsejable el uso del modo temporal, ya que es con el que se obtiene mejor calidad. El spacial se ampara en funcionar dentro del mismo frame, en lugar de frames anteriores y posteriores, y por ahora su calidad es inferior al temporal (en dibujos quizas si pueda ser superior al temporal, debido al mayor indice de pixels similares en un mismo frame).

8x8 transform: Activado | Esta opción sirve para activar la función de 8x8 en cuanto al profil de Alta Definición. Esta característica permite mejorar la forma de comprimir, mejorando la calidad en la misma. Como posible defecto es que algunos decoders no son compatibles con este modo.

Max ref. frames: 2~4 | Indica el numero de frames a los cuales los P-frames y B-frames harán referencia. Cuanto mayor sea este número, mayor consumo tendrá a la hora de comprimir y reproducir, pero tambien puede implicar un menor uso de bitrate. Entre 3 y 10 estan los valores aconsejables.

Mixed Ref: Activado | Esta opción es totalmente novedosa y permite realizar una mezcla de frames de referencia entre 8x8 y 16x8. Esto mejora la compresibilidad y calidad final y como toda opción especial, implica menor velocidad de comprsión.

8x16 16x8 8x8 pframes| 8x16 16x8 8x8 Bframes | 4x8 8x4 4x4 pframes: Activadas | Esto son analisis de bloques que permiten mejorar la calidad de la compresión. Con todas estas opciones activadas, lograremos la máxima calidad permitida por el codec.

Uses as references: Desactivado | Una de las particularidades en los codecs H264 es la posibilidad de tener referencia con frames no adyacentes, aunque en teoria solo con pframes. Con esta opción activaremos la opción de poder usar un bframe como referencia, aunque es un sistema un poco inestable a la hora de su reproducción y solo va bien bien con el codec del Nero. Aconsejado desactivarlo.

Aaptative: Activado | Esto permite realizar un ajuste adaptativo a la hora de asignar b-frames contiguos. Con esta opción activada, lograremos una mayor optimización a la hora de insertar bframes.

Weighted biprediction: Activado| Mejora la asignación de bframes mediante el control del tamaño del frame.

Bias: 15 | Permite controlar la sensibilidad a la hora de asignar bfrmes. En cuanto mas alto sea el valor, mayor cantidad de bframes se irán asignando a la compresión.

more...

Partition decision: 6 (RDO - Slowest) | Este grupo de opciones permite controlar la manera en la cual el codecrealiza la estimación de movimiento. Desde 1 - fastest hasta 6 - RDO. El aconsejado es el 6, mas lento y con el que se lograra una mayor calidad.

ME Method: Hexagonal Search | La estimación de movimiento tiene 4 modos, desde el mas simple y mas rapido (diamond search), hasta el mas complejo y lento (Exhaustive search). El recomendado es el Hexagonal search debido a que los dos siguientes son demasiado lentos.

ME Range: 16 | Indica el rango de los vectores a analizar (desde 4 a 64), siendo recomendable 16. Valores mucho mayores implican menor velocidad.

Cabac (Codificación de la aritmética binaria adaptativa al contexto): ACTIVADO | Activado permite utilizar esta avanzada técnica de codificación. Estando desmarcado, se activaría el modo CAVLC.

Deblocking filter: Activado | Permite aplicar un filtrado deblocking. Es aconsejable tenerlo con valores negativos, los cuales aplican un menor filtrado al video a comprimir.

SINGLE PASS - Bitrate

Esta opción es similar al XviD u otros codecs y sirve para comprimir en una pasada unica con un bitrate medio (modo CBR). Realmente con este modo no obtenemos el mejor de los resultados, pero sirve para entablar un primer contacto con el codec o para hacer pequeñas compresiones. Para ello se activa el Single Pass - Bitrate y se ajusta al bitrate deseado (no tiene mucho misterio).

SINGLE PASS - Quantizer

Esta opción cambia en algunos aspectos con respecto a codecs conocidos, ya que los valores de quantización son muy distintos a los ya vistos. Esto es debido a que los quants de H264 estan en una escala logarítmica (de ahí esos valores tan elevados).

MULTIPASS

La opción de la cual se obtendrá la mejor calidad, ya que como en otros codecs, este realiza una 1º pasada de obtención de la curva del bitrate del video y en la 2º pasada (y consecutivas), se hace una distribución de bitrate en función de estos datos.

Lo primero es activar la opción multipass (como se observa en la imagen inferior).

1º Pasada

Fast first pass: Activado | Permite realizar una primera pasada rápida (similar al XviD).

Statsfile name: Nombre del archivo del stats.

Y con estas opciones configuradas, ya se podrá guardar los datos y empezar a comprimir la primera pasada.

2º Pasada y consecutivas

Una vez realizada la primera pasada sin problemas, es cuando se configura la 2º (y las siguientes si queremos realizar mas pasadas). Para poder utilizar esta característica, es necesario activar la pestaña Nth pass (como en la imagen inferior).

Target Bitrate (kbps): Bitrate medio final que tendrá el video a comprimir.

Update statsfile: Si vamos a realizar mas de una pasada, es necesario activar esta opción para ir actualizando los stats. Si solo vamos a realizar las 2 pasadas de toda la vida, no es necesario tenerlo activado.

En caso de que vayamos hacer mas de dos pasadas, el sistema es sencillo. Basta unicamente con ir comprimiendo con la opción Update statsfile una y otra vez, eso si, yo no aconsejaría mas de 3 porque la ganancia sería poco significativa.

Finalizando y visualización del video

Y con todo esto ya estaría listo el codec para comprimir. Hay que tener presente que es necesario tener instalado los codecs adecuados para visualizar videos creados con el X264. Aconsejable echar un vistazo al manual de "Como ver cualquier video" o simplemente instalar el CoreAVC o el SMPLAYER.

Gracias por tus comentarios ya que esto nos hace trabajar mejor.
Si Algo no va bien favor de avisar para corregirlo gracias.
Si quieren poner estas descargas en otro sitio pueden hacerlo solo con la condición que pongan los créditos de que sitio y uploader los están poniendo o el link del mismo gracias.