Descarga Gratis ya!

30 may. 2007

Configuración del codec x264

Configuración del codec x264: este codec es la implementación libre del estándar de compresión H.264. El manual que aquí puedes ver te mostrará cómo configurar el codec para comprimir vídeo con él a través de un programa de compresión, así como la instalación de un decodificador (pues este codec es sólo compresor y no permite abrir vídeos comprimidos en este formato).

Configuración del codec x264 VfW

x264 es un codec gratuito y libre para comprimir pistas de vídeo utilizando el estándar H.264 AVC (Advanced Video Coding). H.264 pertenece a MPEG, pues es un estándar. Existen varias implementaciones de este estándar: Apple tiene una, Nero otra, Microsoft otra... La implementación libre es x264. Podemos encontrar este codec en dos versiones, una de tipo VfW (Video for Windows), que permite utilizar el codec en cualquier programa de compresión que admita codecs (por ejemplo en VirtualDubMod), y otra en forma de interfaz de línea de comandos, a la cual se puede agregar alguna interfaz gráfica que facilite su uso (como MeGUI). Aquí trataremos la primera.

x264 VfW es un codec compresor, por lo que no permite reproducir archivos comprimidos en este formato. En este manual, además de ver cómo configurar el codec para comprimir vídeo con él, trataremos la instalación de un decodificador para x264 y h264 que permita reproducir los vídeos creados en el ordenador.

Descargar x264 VfW

A continuación vamos a ver cómo configurar este codec para hacer compresiones con otros programas, pues un codec por sí mismo no es capaz de comprimir vídeo: tiene que ser usado a través de otro programa que le vaya proporcionando el contenido a comprimir. Así, podremos hacer por ejemplo conversiones de DVD a AVI con DVD2AVI o Gordian Knot, recomprimir un vídeo con VirtualDubMod, etc., de manera que este manual nos va a servir de referencia en otros manuales de MundoDivX.

¿Qué vamos a ver?

Vamos a dividir el manual en tres partes diferenciadas. La primera será una configuración general aplicable siempre que deseemos hacer una compresión, y en ella describiremos la mayoría de opciones que tiene este codec. Después trataremos la configuración particular para hacer compresiones a una o dos pasadas. Por último, veremos cómo instalar un decodificador para x264 y h264. Bien, empecemos.

Importante Nota: Cómo hacer una configuración general rápidamente.
En este manual se explicarán en detalle la mayoría de opciones de este codec, que son muchísimas. Si deseas hacer una configuración rápida del mismo, puedes fijarte en las imágenes que acompañan las explicaciones y configurar tu codec de la misma manera, pues la configuración utilizada en dichas imágenes es la que MundoDivX recomienda. No debemos olvidar que esto sólo aplica a la configuración general y no a la de las pasadas, que es distinta en cada caso.

Configuración general

Cuando abrimos la ventana de configuración del codec vemos que arriba hay cuatro pestañas desde las que se accede a todas las opciones de configuración. Por defecto aparecemos en la pestaña Bitrate. En esta pestaña es recomendable hacer clic sobre Load Defaults antes de empezar una configuración nueva, ya que así se borran las configuraciones anteriores que pudiera tener el codec y queda como recién instalado. Veremos las principales opciones que nos brinda esta pestaña al final.

x264

Rate Control

En esta pestaña encontraremos las opciones necesarias para ajustar la calidad y la velocidad de compresión del codec. Encontramos tres apartados con distintas opciones que describimos a continuación. En el apartado Quantizers tenemos algunas opciones que están sólo activas en un modo de compresión con control de bitrate, y hacen referencia a los límites de cuantificación. En general no será necesario modificarlas. Por tanto en este apartado encontramos:

  • Min QP: mínimo cuantificador que el vídeo puede tener en cualquier momento. Valores más bajos indican mayor calidad y tamaño. Un valor entre 10 y 15 es lo ideal para evitar obtener un vídeo de gran tamaño.
  • Max QP: similar al anterior, pero ahora estableciendo el máximo. Valores más altos indican menor calidad y tamaño. El valor 51 que viene por defecto puede servir.
  • Max QP Step: establece el máximo salto de cuantificador que el codec puede realizar entre dos frames, evitando así cambios bruscos de calidad. Valores bajos hacen que el codec reaccione lento a los cambios en la complejidad de la imagen a comprimir, y por el contrario valores altos pueden provocar continuos saltos en la calidad. El valor 4 es un término medio.
  • Keyframe boost (%): esta opción permite mejorar la calidad de los keyframes (frames tipo I) a base de aumentar el bitrate que se les asigna respecto al que se usa en frames predictivos (frames tipo P). Así, por ejemplo, un valor 40 significa que se aplicará un 40% más de bitrate en cada keyframe. Los frames que se construyen tomando como referencia los keyframes, es decir los P (predictivos) y B (bidireccionales), verán así aumentada su calidad. Un valor 0 significa que no habrá ningún aumento de bitrate en los keyframes y por tanto todos los frames adquieren la misma importancia. Se recomienda usar un valor entre 30 y 40.
  • B-frames reduction (%): la contraria de la anterior. Permite disminuir la cantidad de bitrate que se asigna a los frames bidireccionales (tipo B) respecto de los predictivos (tipo P). Un valor 30 asignará un 30% menos de bitrate a los frames bidireccionales. Esta disminución no es fácilmente apreciable por el ojo humano, pero nos permite reducir el tamaño final del vídeo. Valores por encima de 30 aumentan la compresión, pero pueden provocar la aparición de artefactos y pérdida de detalle en la reproducción. Para compresiones con bitrates altos se recomienda usar un valor entre 20 y 25; para dibujos animados y anime (donde predominan los colores planos) se puede aumentar hasta el 50%; en el caso general, usar un valor de 30%.
  • Chroma QP offset: desviación del croma (componente a color del vídeo) respecto del luma (componente blanco y negro). Puede tomar valores desde -12 hasta +12, pero por defecto lo dejaremos en cero.
  • Inter / Intra luma quantization deadzone: permiten especificar el nivel de detalle que se puede descartar y que el codec no va a tener en cuenta. Valores bajos permiten descartar menos información, y por tanto el codec puede manejar una cantidad de datos más compleja. El objetivo de estas opciones es establecer un umbral de detalle: cifras bajas pueden ayudar a la reducción de grano, y cifras altas pueden reducir el ruido en la imagen. No son modificables así que no tenemos que preocuparnos de ellas, dejando entonces los valores que vienen por defecto.

En el siguiente apartado, Scene Cuts, tenemos estas opciones:

  • Scene Cut Threshold: esta opción permite ajustar la sensibilidad del codec ante los cambios de escena para determinar si es necesario o no introducir un keyframe. Valores altos implican una mayor sensibilidad y por tanto un aumento del número de keyframes. El valor 40 está bien para la mayoría de casos. Si el vídeo a comprimir tiene cambios de escena poco notorios habrá que aumentar este valor por ejemplo hasta 50, y si por el contrario los cambios de escena son bastante evidentes entonces conviene disminuir el valor a 30 ó 35.
  • Min IDR-frame interval: distancia (medida en cantidad de frames) que debe separar dos keyframes. Esta opción permite que no se usen varios keyframes seguidos. Valores altos hacen que los keyframes estén más separados y que el codec tenga que esperar más antes de poder introducir un keyframe en caso de haber un cambio de escena. Valores bajos hacen que aumente el número de keyframes y por tanto un consumo extra de bitrate. Se recomienda usar el mismo valor que el framerate del vídeo, así la distancia mínima medida en tiempo será de un segundo: para vídeos a 25 fps, usamos 25; para vídeos a 29.97 fps, usamos 30 (redondeando); etc.
  • Max IDR-frame interval: si la anterior es la distancia mínima, ésta es la distancia máxima que puede haber entre dos keyframes. Si no se ha detectado un cambio de escena pasados el número de frames establecido se insertará automáticamente un keyframe para evitar la pérdida de calidad y facilitar la búsqueda de escenas. Valores bajos suponen una saturación de keyframes en el vídeo, y valores altos disminuyen la calidad (las imperfecciones que haya durante la reproducción entre dos keyframes durarán más tiempo) y empeoran la búsqueda de escenas. Se suele utilizar el valor del framerate multiplicado por 10, así por ejemplo para un vídeo a 25 fps se utilizará el valor 250 y para un vídeo a 29.97 fps se utilizará 300. Así, la distancia máxima en tiempo será de 10 segundos.

Por último, en VBV Buffer, tenemos algunas opciones que permiten jugar con la distribución de bitrate del archivo generado, a saber:

  • VBV Maximum Bitrate: indica el máximo bitrate que puede alcanzar el archivo al hacer una compresión de tipo VBR (bitrate variable). Si el decodificador que vamos a usar para ver el vídeo es lento, conviene hacer una limitación para evitar que durante una escena de acción, donde se usa un bitrate superior al medio, el vídeo vaya a saltos, al tardar más tiempo del normal en decodificarlo. Normalmente podemos dejarlo en 0 y que no haya limitación, o en caso contrario poner por ejemplo entre 1'5 y 2 veces el bitrate medio que utilicemos.
  • VBV Buffer Size: tamaño (kbits) del buffer de almacenamiento. Por ejemplo, un valor de 3000 kbits quiere decir que el buffer es capaz de almacenar dos segundos de vídeo a 1500 Kbps, o un segundo a 3000 Kbps. Normalmente no necesitaremos usar esta opción y podemos dejarlo en 0 para que sea el propio codec quien decida el valor ideal.
  • VBV Initial Buffer (%): es la ocupación inicial para este buffer, por defecto en el 90%.
x264

MBs & Frames

Tiene dos apartados, Partitions y B Frames. En el primero de ellos las diferentes opciones sirven para aumentar la exactitud y por tanto la eficiencia en la compresión del codec, resultando un vídeo de mejor calidad. Como regla general, cuantos más análisis de la información visual haga el codec, más eficientemente podrá comprimirla, por lo que se recomienda marcar todas las casillas. Sin embargo, hay que mencionar que el uso de 8x8 Transform y 8x8 Intra search (esta última sólo disponible si se activa la primera) aumentan la calidad de forma notable, pero hacen que el vídeo siga el perfil High Profile AVC en vez del Main Profile AVC. Algunos decodificadores no soportan el perfil High Profile AVC, lo que imposibilitaría reproducir el vídeo. Sin embargo, actualmente la mayoría lo soportan, por lo que es seguro utilizar esta opción.

Dentro del apartado B Frames tenemos lo siguiente:

  • Max consecutive y Adaptative: la primera indica el máximo número de frames bidireccionales seguidos que puede haber. Estos frames, situados entre frames predictivos (tipo P), mejoran la compresión del vídeo con un mínimo impacto visual en la calidad. Si la opción Adaptative está activada, pondremos un valor de 3 ó superior, para que sea el propio codec quien decida cuál es el mejor número de frames B a utilizar.
  • Bias: sensibilidad de x264 ante el uso de frames B. Cuanto más alto sea, más frames de este tipo serán utilizados. Un valor 100 fuerza a x264 a utilizar el máximo número especificado en la opción anterior. Un valor -100 hace que raramente se utilicen frames B. El valor recomendado es 0.
  • Use as references: hace que los frames B puedan ser utilizados como referencia para otros frames B consecutivos, aumentando la calidad ligeramente ya que los frames B pueden ser construidos tomando cualquier frame como referencia y no sólo frames P. Esta opción es más eficiente con el valor 3 en Max consecutive. Como es obvio, se recomienda activarla.
  • Weighted biprediction: hace que los frames B se predizcan dando mayor importancia a un frame P u otro. El resultado son unos frames más exactos y mejor comprimidos, por tanto con mejor calidad. Activarla.
  • Bidirectional ME: permite que x264 predizca los frames B usando una estimación del movimiento antes y después de ellos, lo que aumenta la calidad y hace que recomendemos activarla.
  • Direct mode: permite utilizar vectores de predición de movimiento en vez de limitarse sólo al movimiento del frame actual. Esto ahorra espacio y aumenta la eficacia de la compresión. Normalmente bastará elegir Auto en modos de compresión a dos pasadas. El Temporal es ideal cuando se comprime con bitrates bajos por su mejor estimación del movimiento, mientras que el Spatial permite reducir posibles artefactos en la imagen y es ideal para dibujos animados.
x264

More...

Por último, en esta pestaña tenemos otro buen puñado de opciones para configurar. Dentro del apartado Motion estimation encontramos:

  • Partition decision: controla hasta dónde puede llegar x264 para tomar la mejor decición en cuanto a estimación de movimiento. Existen 7 opciones en orden creciente de calidad, desde la menor 1 (Fastest) hasta la máxima 7 (RDO - Insane), siendo esta última la que lleva más tiempo para comprimir. Los valores 6 y 7 activan la tasa de distorsión (rate distortion), una opción extremadamenta beneficiosa para la compresión, a costa de usar un mayor tiempo de procesador. La casilla RDO for B-frame activa esta tasa también en los frames bidireccionales. Se recomienda usar 6 (RDO - Slow) y marcar la casilla citada.
  • Method: qué método de estimación de movimiento va a usar x264. Cuanto mejor sea, x264 será capaz de determinar mejor el movimiento y por tanto mejorar la calidad y eficiencia de la compresión. El método Hexagonal Search busca el movimiento en dirección horizontal, vertical y diagonal, y es el mejor si no queremos que la compresión tarde demasiado, por tanto el recomendado. Uneven Multi-Hexagon es superior, pero aumenta el tiempo de compresión. La opción Exhaustive Search es una búsqueda píxel a píxel y por tanto extremadamente lenta, a pesar de que la mejora de calidad respecto a la anterior opción no es muy significativa.
  • Range: sólo estará activa en caso de que hayamos seleccionado una de las dos opciones de mayor calidad en Method. Establece la distancia en píxeles para la búsqueda y estimación. El algoritmo fue optimizado para un valor de 16 por lo que de usarlo, pondremos esta cantidad. Lo aumentaremos a 24 para comprimir vídeos con alta resolución y framerates bajos (15 fps o menos), y lo disminuiremos a 10 para comprimir vídeos con baja resolución y framerates altos (más de 60 fps).
  • Max Ref. Frames y Mixed Refs: x264 puede comprimir nuevos frames utilizando como referencia otros frames que haya comprimido previamente. El máximo número de frames que puede tomar como referencia queda determinado por esta opción. A mayor valor, mejor calidad pero también más tiempo de compresión. En general un valor entre 3 y 5 es suficiente, pudiendo subirlo entre 8 y 10 para dibujos animados. Si se elige un valor superior a 1, se activa la opción Mixed Refs para permitir al codec hacer una mezcla de las referencias.
  • No DCT Decimate: cuando x264 determina que un cambio en un bloque de la imagen no es significativo, lo ignora y evita comprimirlo, ahorrando bitrate que de otra forma hubiera sido utilizado para comprimir información inútil. Esta casilla sirve para desactivar dicha característica, pero como es interesante disponer de ella, la vamos a dejar desmarcada.
  • Chroma ME: incrementa la exactitud y calidad de la estimación de movimiento al considerar la información de color del vídeo, especialmente con dibujos animados y anime. Recomendado activarla.
  • No Fast P Skip: es un método con el cual x264 aumenta la velocidad de compresión, pero a veces lleva a la aparición de artefactos en la imagen. Desactivando esta opción la reducción del tiempo de compresión es pequeña pero significativa, mientras que la calidad no suele verse afectada. Lo normal por tanto será desactivarla.

En el otro apartado, Misc. options, vemos las siguientes opciones:

  • Sample AR: sirve para modificar la relación de aspecto del vídeo. Normalmente dejarlo en 1:1.
  • Threads: opción muy útil si disponemos de una máquina con un procesador multitarea, bien con tecnología HT (Hyper Threading), bien un procesador con más de un núcleo. Permite seleccionar el número de hilos en que se dividirá el proceso de compresión. Cada procesador HT cuenta como dos hilos, y cada núcleo del procesador es un hilo. Por ejemplo para un procesador Pentium IV HT o un Core 2 Duo pondríamos 2; para un procesador con 4 núcleos pondríamos 4. Si no sabemos el número de hilos que nuestro procesador soporta, lo dejamos en 1. Esta opción sólo afecta a la velocidad de compresión.
  • Log level: recolecta información sobre el proceso de compresión. Es una opción poco útil para la mayoría de usuarios. La dejaremos en Error.
  • FourCC: código fourcc que identificará el codec de vídeo, necesario para que los reproductores sepan qué decodificador usar. Se sugiere dejarlo como viene, con la opción H264
  • CABAC: siglas de Context Adaptive Binary Arithmetic Coding (codificación aritmética binaria adaptable al contexto). Permite predecir elementos del vídeo por contexto. En definitiva aumenta la eficiencia en la compresión en torno al 10-15% sin pérdida de calidad, aunque la velocidad de decodificación se hará más lenta. Como esto normalmente no supone un problema, la activamos.
  • Trellis: sólo disponible si la opción anterior está activada. Sirve para incrementar la calidad de la imagen al manipular qué datos se guardan finalmente durante el proceso de compresión, haciendo así una utilización mejor del bitrate. Dado su impacto sobre la velocidad de compresión (10% más lenta) y la mínima ganancia que se consigue, se recomienda dejarla desactivada. Si la opción No DCT Decimate está activada, entonces puede ser recomendable activar el Trellis.
  • Deblocking filter: filtro que permite reducir el impacto de macrobloques en la imagen. Las opciones Strength y Threshold permiten ajustar el nivel de actuación del filtro. La segunda determina la cantidad de vídeo que debe ser filtrado, mientras que la primera ajusta un mayor o menor nivel de filtrado a los bloques detectados. Nos moveremos en el rango entre -3 y 2. Para anime, un valor de 1 en ambos puede ser buena opción, mientras que en general un valor de -1 ó -2 suele bastar.
  • Noise Reduction: aplica un filtro de reducción de ruido, útil si el vídeo que queremos comprimir tiene mucho grano fílmico o algún tipo de ruido en la imagen. Permite escribir un valor numérico que indica el nivel de reducción a aplicar. 0 es desactivado, y será lo habitual. Si necesitamos usarlo, podemos probar valores entre 1 y 3.
  • Interlacing: sólo activar esta opción si el vídeo original está entrelazado y no hemos añadido algún filtro de desentrelazado. En este caso, conviene desmarcar Trellis y poner el máximo número de frames B consecutivos a 0 en la pestaña anterior. En general, dejarla desactivada.
x264

Configuración de las pasadas

Una vez realizada la configuración general del codec, haremos la configuración particular según el número de pasadas elegido, desde la pestaña Bitrate. La ventaja que tiene hacer dos pasadas es que durante la primera se analiza el vídeo y se determina dónde hace falta un bitrate más alto (escenas de gran detalle o mucho movimiento), y en la segunda se comprime, mejorando así la calidad con respecto a la compresión directa a una sola pasada. Pero esto no es gratuito: el tiempo total empleado se duplica.

Antes explicaremos para qué se usan las opciones Bitrate variance y Quantizer compression, opciones disponibles tanto para configuraciones de una sola pasada como de dos pasadas.

  • Bitrate varience (%): controla la precisión del codec x264 para ajustarse al bitrate medio elegido o el tamaño de archivo requerido. Un valor de 1 significa que el bitrate final puede diferir en un 1% del elegido al configurar el codec, y un valor de 0 significa que se requiere ajustar el bitrate de forma exacta. Nos quedaremos con el valor 1, que es una precisión razonable (si no importa mucho la precisión del tamaño final del vídeo, subirlo hasta el 5% o lo que se desee).
  • Quantizer compression (%): establece la máxima variabilidad del bitrate. Valores bajos hacen que el bitrate tienda a ser más estable, y por tanto se utiliza un bitrate parecido tanto para escenas simples como para escenas complejas: mientras las primeras se verán perfectas, las segundas pueden tener pérdidas de calidad notorias. Un valor 0 implicaría una compresión a bitrate constante (CBR). Un valor 100 haría que x264 aplique la misma calidad a cada frame (VBR puro), pero puede suponer variaciones muy grandes de bitrate entre dos frames. En general, el valor 60 está bien. Cabe añadir que esta opción sólo está activa para compresiones donde se ha seleccionado un modo de control de bitrate (cualquiera menos Single Pass - Quantizer).

Configuración a una pasada

En la pestaña Bitrate tenemos que seleccionar Single Pass - Bitrate en la lista desplegable. El bitrate medio a utilizar lo colocamos en Average Bitrate. Este bitrate lo tenemos que tener ya calculado o apuntado; si no es así, basta revisar este manual.

x264

Con esto ya tenemos configurado el codec a una sola pasada, por lo que hacemos clic en OK para volver al programa de compresión que estemos utilizando.

Configuración a dos pasadas: primera pasada

Para configurar la primera pasada del modo multipasada tenemos que activar la opción Multipass - First Pass en el cuadro desplegable, y colocar el bitrate a utilizar en Target Bitrate. También seleccionaremos Update Statsfile y pondremos dónde guardar el archivo .stats de la primera pasada. Es muy importante esto ya que luego la segunda pasada debe utilizar este archivo, por lo que pondremos una ruta que sea sencilla de encontrar.

x264

Ya podemos hacer clic en OK para volver a nuestro programa de compresión. No olvidemos que en este modo hace falta configurar y realizar después la segunda pasada.

Configuración a dos pasadas: segunda pasada

La segunda pasada se activa con la opción Multipass - Nth Pass del cuadro desplegable. Nuevamente ponemos el bitrate a utilizar en Target Bitrate, y seleccionamos dónde se ha guardado el archivo .stats de la primera pasada.

x264

Ya está configurada la segunda pasada, por lo que podemos volver a nuestro programa de compresión haciendo clic en OK.

Y con esto terminamos la configuración del codec compresor. Recuerda que, además de la configuración general, siempre es necesario hacer la configuración particular correcta según el número de pasadas que vayamos a hacer al vídeo. Si hacemos la primera pasada de un vídeo (Multipass - First Pass) y se nos olvida hacer la segunda, el vídeo no funcionará.

Instalación de un decodificador x264 / H.264

Como se dijo al principio del manual, este codec sólo tiene una versión compresora, que puede usarse para comprimir otros vídeos en este formato. Sin embargo, para poder reproducir los vídeos o abrirlos en programas de edición como VirtualDubMod, necesitaremos un decodificador adicional. El más extendido es aquél incluido en los filtros ffdshow. Para habilitarlo, debemos entrar al acceso directo Video decoder configuration, y en el menú Codecs activar la opción libavcodec para el H.264.

Filtros ffdshow

Esto nos permitirá reproducir los vídeos que utilicen este codec. Para poder abrirlos en VirtualDubMod y editarlos, hacemos lo mismo pero esta vez desde el acceso directo VFW configuration.

No hay comentarios:

Sitio Recomendado

la fuente principal de los manuales que aquí encontrará es: Mundo Divx ¡Entre ya para empezar a descargar los programas!