El concepto de alta definición está acaparando cada vez más atención. Recientemente, el Mundial de Fútbol de Alemania fue el último suceso transmitido en este formato, pero en EE.UU., Reino Unido y Francia, estas transmisiones han ido en aumento desde el 2005, principalmente para eventos deportivos.
Y no es para menos. La alta definición consiste en una mayor densidad de la pantalla de TV, lo cual permite que las imágenes sean más nítidas (hasta cinco veces). Y tomando en cuenta que va necesariamente de la mano con la TV digital, los resultados mejoran aún más. Esto, debido a que la digitalización permite un uso eficiente del ancho de banda, lo cual favorece la entrega de contenidos adicionales a las típicas señales de video y audio, como transmisión de datos, interactividad, contenido para teléfonos móviles, internet, etc.
Si la definición estándar consiste en 525 líneas horizontales para NTSC (625 para PAL), de las cuales sólo son visibles 480 (576 para PAL), para la TV de alta definición, en adelante
HDTV, esa resolución aumenta en ambos casos: a 720 líneas, con barrido progresivo (1280x720 = 720p), y hasta 1080 líneas con barrido progresivo o entrelazado (1920x1080 = 1080p ó 1080i). En caso de señal entrelazada, se utilizan frecuencias de refresco de 60Hz (60 cuadros por segundo, NTSC) y 50Hz (50 cuadros por
segundo, PAL), similares a la TV convencional. Para ambos casos (720 y 1080 líneas) la relación de aspecto es de 16:9 (pantalla ancha).
La diferencia entre HDTV con la TV convencional puede apreciarse en el siguiente gráfico:
En él se compara lo que abarca cada formato.
Aquí hay una captura de pantalla de una transmisión a 720p (tamaño real, grande):
y aquí la misma a 1080p (tamaño real, más grande todavía):
Como formato digital, la HDTV, requiere de codecs que compriman las señales. Se estableció que podría elegirse entre
MPEG-2 (el mismo de los DVD),
H.264 y
VC-1 (WMV-HD). Estos mismos codecs se utilizarían en la fabricación de los nuevos reproductores de video de alta definición HD-DVD y Bluray Disc, que buscan reemplazar al formato DVD.
En Chile, el CNTV está preocupado por comenzar de una buena vez el proceso de migración hacia esta tecnología. Tomando en cuenta que aún falta definir las especificaciones y lineamientos que adoptará el formato aunque todo parece indicar que se adoptará el formato norteamericano), parece ser que Chile se está quedando atrás en HDTV. Hay que considerar que EE.UU. y el bloque europeo ya ha comenzado su proceso de transición: desde 1998 que comenzaron la migración hacia HDTV y varios países europeos piensan finalizar sus procesos en 2012, mientras que EE.UU. pretende hacerlo en 2009 e Italia a fines de este año. Latinoamérica en general está fuera de este tema, salvo México (2021) y Brasil (2013-2018).
Dada la progresiva popularidad del formato H.264, y su futura implementación en HDTV, he preparado una guía de uso del único codec abierto de este tipo capaz de competir con los que se desarrollan en forma comercial:
x264.
El codec x264 viene en dos interfaces:
VfW y
CLI. En esta sección se analizarán los dos, sus pro y sus contras y el uso de cada interfaz.
La versión más conocida de x264 es la de
Video for Windows (VfW) y es la más usada debido a su interfaz gráfica y su integración con el contenedor estándar de Microsoft (AVI), el cual es posible encontrar en casi cualquier software de edición de video. Sin embargo, esta versión presenta limitaciones debido a la antigüedad del estándar de Microsoft en cuanto a aplicación de la nueva tecnología. La versión "adecuada" es la versión
Command Line Interface (CLI), ya que por defecto almacena la película en MP4, el contenedor definido en la especificación H.264, y cuenta con todas las mejoras incluidas en el codec. Por lo tanto, la sugerencia para grabar películas en x264 es utilizar el CLI para codificarlas y así hacer un uso eficiente del espacio en disco.
Conceptos relevantes
Bitrate: tasa de transferencia de datos en unidad de tiempo. Se usará la denominación kbps ue indica kilobits por segundo (1.000 bits por segundo).
Cuadros: cualquier imagen de una secuencia de video. Estos pueden ser:
- I: son imágenes completas (intra), suelen utilizarse en los cambios de escena.
- P: se llaman predictivas y almacenan sólo los cambios que se dan a partir de un cuadro I y otros cuadros P anteriores.
- B: se llaman bidireccionales, y son similares a los cuadros P, pero también hacen referencia a cuadros I y P futuros, dando más precisión a la codificación.
Línea de comandos: interfaz computacional en el cual el PC recibe instrucciones a través de comandos tipeados por el usuario. En Windows XP, se puede ingresar a este modo haciendo clic en
Inicio ->
Ejecutar y tipeando
cmd.
Video real: no es la definición más adecuada, pero se refiere a contenido de video en que se muestra la vida tal como es (películas filmadas, no dibujadas).
Video for Windows (VfW)
Ésta es la primera pestaña de la ventana de configuración del codec. En ella se puede especificar la forma de codificación:
- Single Pass - Bitrate: codificación de una pasada, sólo se especifica el bitrate promedio del video, similar a XviD.
- Single Pass - Quantizer: igual que el anterior, pero se especifica el cuantizador para cada bloque de la imagen (más info sobre cuantizador y bloques aquí), similar a XviD, pero con escala logarítmica en vez de lineal. Se considera que 15/40 dan la mejor/peor calidad, mientras que 20/30 es buena/mala.
- Multipass - First Pass: se procesa el video para obtener el flujo de datos, de forma que en posteriores pasadas, se utilice para codificar con mayor precisión (en VirtualDub conviene hacer uso de la opción File -> Run video analysis pass en vez de Save as). Similar a XviD.
- Multipass - First Pass (fast): igual que el anterior, pero con modo Turbo activado.
- Multipass - Nth pass: codifica el video utilizando lo datos recabados por la anterior pasada (puede recoger nuevos datos para una pasada posterior si Update Statsfile está activado).
- Update Statsfile: se utiliza junto con opciones Multipass para almacenar/actualizar los datos de video.
- Statsfile name: nombre y ruta del archivo de datos de video.

En esta sección se especifican las opciones del control de datos de video.
- Keyframe Boost (%): cuánto se aumenta la calidad de la imagen de los cuadros I respecto de los cuadros P. Similar al indicador de compresión en archivos JPG. Por defecto 40.
- B-frames reduction (%): cuánto se reduce la calidad de los cuadros B respecto de los cuadros P. Más efectivo en secuencias de anime donde los cambios de cuadro no requieren movimiento tan uniforme. Por
defecto 30; en anime, hasta 60.
- Bitrate variability (%): cuánto se puede desviar el bitrate a partir del promedio que se especificó. Por defecto 60.
- Min QP: mínima calidad alcanzable. Por defecto 10.
- Max QP: máxima calidad alcanzable. Por defecto 51.
- Max QP Step: máxima tasa de cambio de una calidad a otra. Por defecto 4.
- Scene Cut Threshold: nivel de agresividad en la detección de un cambio de escena para introducir un nuevo cuadro I. Por defecto 40.
- Min IDR-frame interval: mínimo número de cuadros para introducir un nuevo cuadro I. Se recomienda fijarlo al frame rate del video, o sea cada 1 segundo (30 fps NTSC, 25 fps PAL). Por defecto 25.
- Max IDR-frame interval: máximo número de cuadros para introducir un nuevo cuadro I. Se recomienda fijarlo a 10 veces el frame rate (cada 10 segundos). Por defecto 250.

Aquí se decide el análisis de los cuadros.
- Partitions: las diferentes opciones se refieren a la forma en que se dividirán (particionarán) los cuadros para su análisis. Como regla general, a mayores particiones, mejor calidad y mayor compresión. Por lo tanto se recomienda dejar todos los cuadros chequeados.
- Max consecutive: cantidad máxima de cuadros B consecutivos. Favorece la compresión, pero perjudica la calidad cuando el número es muy alto. Se recomienda dejarlo en 3. Por defecto 2.
- Bias: cuánto desviarse del valor especificado anteriormente. Ej: 100, utilizaría siempre el indicado en Max consecutive, mientras que -100 utilizaría siempre 0. Requiere que Adaptive esté desactivado. Por defecto 0.
- Use as references: permite al codec utilizar también cuadros B como referencia de otros cuadros B (no sólo cuadros P), lo cual mejora la calidad. Por defecto desactivado.
- Bidirectional ME: permite predecir cuadros B mediante estimación de movimiento (motion estimation), aumentando así la calidad. Por defecto desactivado.
- Adaptive: deja a criterio del codec cuándo utilizar cuadros B. Por defecto activado.
- Weighted prediction: permite la predicción de cuadros B a partir de más de un cuadro P, lo cual los hace más precisos. Por defecto, activado.
- Direct mode: activa el uso de vectores de predicción de movimiento en cuadros B. Se recomienda Spatial para anime y Temporal para video real.

La última pestaña hace referencia a la estimación de movimiento y otras opciones misceláneas.
- Partition decision: las opciones se refieren a la mejor decisión respecto de la estimación de movimiento. Están ordenadas de menor a mayor calidad. Se recomienda usar la última opción (RDO on B-frames), pero en favor del tiempo que pudiera tomar codificar con ella, se sugiere no bajar de la quinta, a menos que se cuente con un procesador rápido y mucho tiempo disponible.
- Method: decide el método de estimación de movimiento a utilizar. En general, se sugiere utilizar la opción Uneven Multi-Hexagon, pero si se cuenta con poco procesador y poco tiempo, Hexagonal Search será suficiente. Exhaustive search, utiliza la búsqueda pixel por pixel, lo cual aumenta inútilmente el tiempo de codificación y entrega resultados poco satisfactorios.
- Range: máximo rango empleado para los vectores en la estimación de movimiento. Se recomiendan valores entre 16 y 32. Por defecto, 16.
- Chroma ME: activa el análisis de la información cromática (colores) en la estimación de movimiento. Favorece la calidad, sobre todo en animaciones. Por defecto activado.
- Max Ref. frames: activa la codificación mediante referencias a cuadros previamente codificados, lo cual mejora la compresión. Se recomienda para video real un valor de 3-5, y para animación, 8-10. Por defecto 1.
- Mixed Refs: otorga mayor libertad al codec para hacer referencias en particiones de los macrobloques. Se recomienda activar si el valor de la opción anterior es mayor a 2.
- Sample AR: relación de aspecto. Se recomienda dejarlo en 1:1, a menos que se sepa lo que se hace. Por defecto 1:1.
- Threads: reduce el tiempo en procesadores con múltiples núcleos (Intel HT/Duo Core, AMD 64 X2/HT, etc.). Por defecto 1.
- CABAC: algoritmo de compresión que aumenta la eficiencia sin pérdidas en calidad, pero que requiere de mayor complejidad en la decodificación, sobre todo a bitrates altos. Se recomienda activarlo. Por defecto activado.
- Trellis: aumenta la calidad visual de la codificación, decidiendo qué datos quedarán finalmente. Se recomienda desactivarlo en modo Single pass - Quantizer y activarlo en los modos Multipass en PCs rápidos.
- Noise reduction: nivel de ruido a reducir, tiende eliminar detalles. Por defecto 0.
- Deblocking filter: activa el filtro de deblocking que busca eliminar los bloques en el video. Se recomienda dejarlo activado a menos que el video tenga ciertas características, como ruido, lo cual podría suavizar demasiado la imagen, causando pérdidas de detalle.
- Strength: agresividad con que será eliminado el blocking. Por defecto 0.
- Threshold: sensibilidad de detección de blocking. Por defecto 0.
- Log level: registra información de la codificación. Por defecto Error.
- FourCC: indica el tipo de video que el archivo AVI registrará internamente. Por defecto H264.
Command Line Interface (CLI)
La versión CLI de x264 es mucho más flexible, no obstante se ejecuta desde la línea de comandos. Como se trata de un interfaz más simple, su compilación como ejecutable también lo es, lo cual hace que los desarrolladores creen algunas variantes, de entre las que destaca la que proporciona cuantización adaptativa (AQ). Además considera muchas más opciones que VfW, ya que los archivos de salida se basan en el contenedor MP4.
Debido a la poca cercanía del público general con la línea de comandos, se utilizará en esta guía la aplicación
MeGUI, la cual estaba incluida dentro del instalador del codec hasta mayo de este año, y que consiste en un interfaz gráfico intérprete de la línea de comandos, o sea, traduce a gráficas lo que debe tipearse en la línea de comandos. Otra aplicación similar apoyada por el codec es
StaxRip.
MeGUI es una aplicación destinada a utilizar la mayoría de las opciones de los CLI de los codecs XviD, x264, Snow (ffdshow libavcodec) y LMP4 (ffdshow libavcodec). Como funciona con los CLI, requiere de otras aplicaciones para lograr resultados completos. Éstas son
mencoder,
mp4box,
mkvmerge,
avimux_gui,
divxmux,
avc2avi,
x264,
xvid_encraw,
DGIndex,
oggenc2,
faac,
NeroAacEnc,
lame,
enc_AudX_CLI,
enc_aacPlus,
ffmpeg y
AVISynth, todas descargables desde el mismo MeGUI.
En la pestaña Input se muestra la información de Video y Audio necesaria para la codificación. Nótese que pide scripts de AVISynth como archivos de entrada de video, pero pueden introducirse archivos AVI en general. Para los archivos que no sean aceptados será necesario crear un script. En el caso del audio, es posible introducir 2 flujos en un mismo archivo. Los perfiles de video y audio (
profiles) son configuraciones preestablecidas que pueden encontrarse en el Internet para su descarga.
En la pestaña principal están las opciones referentes a bitrate, deblocking y de estructura de archivos MPEG-4 AVC.
- Mode: modo de bitrate en la codificación. Cuenta con más opciones que VfW, de las que podemos destacar las de 3 pasadas (3 pass), pasadas múltiples automatizadas y calidad constante (const. quality).
- Turbo: se utiliza para apurar la primera pasada de análisis en los modos de 2 y 3 pasadas. Por defecto desactivado.
- Bitrate/Quantizer/Quality: especifica el valor asignado en modos de bitrate (ABR, X pass)/quantizer/quality. Por defecto ABR (Average Bitrate = Single Pass).
- Lossless: activa la codificación sin pérdidas de calidad, la cual utiliza enormes cantidades de espacio en disco. Sólo disponible cuando se activa High Profile en AVC Profiles. Por defecto desactivado.
- Logfile: ubicación del archivo de estadísticas de video en codificación de más de una pasada.
- Enable PSNR calculation: habilita el cálculo de calidad de video (en caso que se quiera analizar), el cual no influye en la codificación, pero resta velocidad. Se recomienda desactivarlo.
- Number of Threads: reduce el tiempo en procesadores con múltiples núcleos (Intel HT/Duo Core, AMD 64 X2/HT, etc.). Por defecto 1.
- Enable Deblocking: activa el filtro de deblocking. Por defecto desactivado.
- Deblocking Strength: agresividad con que será eliminado el blocking. Por defecto 0.
- Deblocking Threshold: sensibilidad de detección de blocking. Por defecto 0.
- AVC Profiles: especifica el perfil del archivo AVC. Se recomienda High Profile. Por defecto Main Profile.
- AVC Level: especifica el nivel del archivo AVC. Se recomienda su valor por defecto Unrestricted.
- FourCC: indica el tipo de video que el archivo MP4 registrará internamente. Se recomienda utilizar H264 para asegurar compatibilidad con los reproductores. Por defecto VSSH.

La pestaña
Zones indica las zonas de excepción del video que tendrán un bitrate distinto al del resto de la película (ej: los créditos no requieren tanto bitrate).
- Start frame: cuadro que iniciará una zona de excepción.
- End frame: cuadro que dará fin a la zona de excepción.
- Quantizer/Bitrate: indica la calidad/bitrate (en % del promedio) de la zona de excepción. En créditos, puede utilizarse hasta un 20% del bitrate promedio.
- Mode: modo de codificación utilizado en la zona de excepción. Puede ser Quantizer si se especifica en términos de calidad, o Weighted como ponderado del bitrate promedio.
- Custom Commandline Options: permite introducir otras opciones no listadas en las pestañas o de otras compilaciones de x264 mediante la línea de comandos. Por ejemplo, la compilación de ChronoCross introduce la cuantización adaptativa AQ (Adaptive Quantization), que no está presente en MeGUI, pero que puede incluirse utilizando la sintaxis correcta (ej: --aq-strength 0.6 --aq-sensitivity 16.0).
La pestaña
RC and ME se refiere al control de la tasa de bitrate y la estimación de movimiento.
- VBV Buffer Size: tamaño del búfer VBV (verificador del búfer de video), que especifica el máximo de memoria que utilizará el decodificador para comenzar la reproducción del video. Se recomienda el valor por defecto 0 (automático).
- VBV Maximum Bitrate: máximo bitrate que se puede almacenar en el búfer VBV. Por defecto 0.
- VBV Initial Buffer: nivel de memoria inicial del búfer VBV para dar comienzo a la reproducción. Se recomienda su valor por defecto 0,9.
Bitrate Variance: cuánto se puede desviar el bitrate a partir del promedio que se especificó. Por defecto 0,6.
- Quantizer Compression: cuánto se puede desviar la calidad a partir del promedio especificado en el bitrate. Se recomienda su valor por defecto 0,6 para uso general (video con poco y mucho movimiento).
- Temp. Blur of est. Frame complexity: cuánto reducir las fluctuaciones en la calidad utilizada antes de la curva de compresión. Se recomienda su valor por defecto 20.
- Temp. Blur of Quant after CC: cuánto reducir las fluctuaciones en la calidad utilizada después de la curva de compresión. Se recomienda su valor por defecto 0,5.
- Chroma ME:activa el análisis de la información cromática (colores) en la estimación de movimiento. Por defecto activado.
- M.E. Range: máximo rango empleado para los vectores en la estimación de movimiento. Se recomiendan valores entre 16 y 32. Por defecto, 16.
- Scene Change Sensitivity: nivel de agresividad en la detección de un cambio de escena para introducir un nuevo cuadro I. Por defecto 40.
- M.E. Algorithm: decide el método de estimación de movimiento a utilizar. En general, se sugiere utilizar la opción Uneven Multi-Hexagon, pero si se cuenta con poco procesador y poco tiempo, Hexagonal Search será suficiente. Exhaustive search utiliza la búsqueda pixel por pixel, lo cual aumenta inútilmente el tiempo de codificación y entrega resultados poco satisfactorios.
- Subpixel Refinement: las opciones se refieren a la mejor decisión respecto de la estimación de movimiento. Están ordenadas de menor a mayor calidad. Se recomienda usar la sexta opción (RDO) o séptima (RDO level 2, sólo si está disponible en la compilación), pero en favor del tiempo que pudiera tomar codificar con ella, se sugiere no bajar de la quinta, a menos que se cuente con un procesador rápido y mucho tiempo disponible.
- Keyframe interval: máximo número de cuadros para introducir un nuevo cuadro I. Se recomienda fijarlo a 10 veces el frame rate (cada 10 segundos). Por defecto 250.
- Min GOP Size: mínimo número de cuadros para introducir un nuevo cuadro I. Se recomienda fijarlo al frame rate del video, o sea cada 1 segundo (30 fps NTSC, 25 fps PAL). Por defecto 25.
- Noise Reduction: nivel de ruido a reducir, tiende eliminar detalles. Por defecto 0.

La última pestaña hace referencia a parámetros más avanzados.
- Minimum Quantizer: mínima calidad alcanzable. Por defecto 10.
- Maximum Quantizer: máxima calidad alcanzable. Por defecto 51.
- Maximum Quantizer Delta: máxima tasa de cambio de una calidad a otra. Por defecto 4.
- Credits Quantizer: calidad utilizada en zonas de introducción y créditos para mejorar la compresión. Por defecto 40.
- Factor between I and P frame Quants: cuánto se aumenta la calidad de la imagen de los cuadros I. Similar al indicador de compresión en archivos JPG. Por defecto 1,4.
- Factor between P and B frame Quants: cuánto se aumenta la calidad de los cuadros P respecto de los cuadros B. Más efectivo en secuencias de animación donde los cambios de cuadro no requieren movimiento tan uniforme. Por defecto 1,3; En anime, hasta 60.
- Chroma QP Offset: ajuste de compensación de calidad entre color y luminosidad. Se recomienda su valor por defecto 0.
- Trellis: aumenta la calidad visual de la codificación, decidiendo qué datos quedarán finalmente. Se recomienda desactivarlo en modo Single pass - Quantizer y activarlo en los modos Multipass en PCs rápidos.
- Number of Reference Frames: activa la codificación mediante referencias a cuadros previamente codificados, lo cual mejora la compresión. Se recomienda para video real un valor de 3-5, y para
animación, 8-10. Por defecto 1.
- Mixed: otorga mayor libertad al codec para hacer referencias en particiones de los macrobloques. Se recomienda activar si el valor de la opción anterior es mayor a 2.
- CABAC: algoritmo de compresión que aumenta la eficiencia sin pérdidas en calidad, pero que requiere de mayor complejidad en la decodificación, sobre todo a bitrates altos. Se recomienda activarlo. Por
defecto activado.
- No Dct Decimation: evita ignorar cuadros en que la diferencia con cuadros anteriores es mínima en cuadros P. Se recomienda su valor por defecto desactivado.
- No Fast P-Skip: da mayor precisión al método Trellis para decidir sobre macrobloques, evitando la detección rápida de saltos. Se recomienda activarlo. Por defecto desactivado.
- Quantization matrix: permite elegir distintas matrices de cuantización (calidad). En general, se recomienda la que viene por defecto None.
- Quantizer Matrix File: permite elegir entre matrices predefinidas en un archivo CFG, cuando en la opción anterior se especifica Custom.
- Macroblock Options: las diferentes opciones se refieren a la forma en que se dividirán (particionarán) los cuadros para su análisis. Como regla general, a mayores particiones, mejor calidad y mayor compresión. Por lo tanto se recomienda dejar todos los cuadros chequeados, lo cual se logra eligiendo High Profile como perfil AVC (primera pestaña).
- Number of B-frames: cantidad máxima de cuadros B consecutivos. Favorece la compresión, pero perjudica la calidad cuando el número es muy alto. Se recomienda dejarlo en 3. Por defecto 2.
- Adaptive B-frames: deja a criterio del codec cuándo utilizar cuadros B. Por defecto activado.
- B-Pyramid: permite al codec utilizar también cuadros B como referencia de otros cuadros B (no sólo cuadros P), lo cual mejora la calidad. Por defecto, desactivado.
- RDO for B-frames: implica mejoras en la estimación de movimiento que se aplicará a las B-Frames, lo cual mejora la calidad de las mismas.
- Weighted B-Prediction: permite que cuadros B tengan en cuenta los datos de "brillo" del vídeo, como los desvanecimientos y las degradaciones, lo cual mejora la calidad visual.
- Bidirectional M.E.: permite predecir cuadros B mediante estimación de movimiento (motion estimation), aumentando así la calidad. Por defecto desactivado.
- B-frame mode: activa el uso de vectores de predicción de movimiento en cuadros B. Se recomienda Spatial para anime y Temporal para video real.
- B-frame bias: cuánto desviarse del valor especificado en Number of B-frames. Ej: 100, utilizaría siempre el indicado en la opción anterior, mientras que -100 utilizaría siempre 0. Requiere que
Adaptive esté desactivado. Por defecto 0.
Una vez configurado el video, se configura el audio: recomiendo codificar en
ND-AAC (
Nero Digital), ya que es el que mejor calidad ofrece hasta el momento, a los menores bitrates (48 KHz/80 kbps es un valor bastante adecuado). Posteriormente se mandan ambos a la lista de procesos pendientes (
Enqueue) se elige que se multiplexen o muxen en un solo archivo MP4 y, finalmente, en la pestaña
Queue seleccionamos Start para que comience la codificación.
Una vez terminada la codificación los archivos pueden ser vistos con el codec
ffdshow (configurado para ver H.264) o con
Nero Showtime.
Eso sería. Saludos.
By
ALEX-KID