Todo sobre DivX

Cuando los hackers Jerome Rota y Max Morice pusieron a punto el códec DivX nadie podía imaginar que muy poco tiempo después se transformaría en el estándar de intercambio de vídeo más utilizado en Internet. Desde entonces, han surgido muchas otras propuestas, aunque el futuro inmediato pertenece a los algoritmos de codificación de alta definición

Todo sobre DivX

3 diciembre 2007

Con este Tema de portada hemos pretendido dejar muy claro todo los que rodea al vídeo digital, dando un marcado protagonismo al códec DivX por ser el más utilizado, aunque, por supuesto, respetando el espacio que merecen otros. Estos códecs no son otra cosa que pequeños programas o implementaciones hardware concebidos para extraer la información de un fichero multimedia o fuente de vídeo y comprimirla o descomprimirla (de ahí proviene su nombre, COmpression/DECompression) con el objetivo de generar un archivo de tamaño sensiblemente inferior, pero de la máxima calidad posible. Para lograrlo, grosso modo, recurren a la eliminación de la información redundante, inútil o poco significativa. De aquí puede deducirse que la mayor parte de los códecs degrada en mayor o menor medida la calidad del fichero original (son los conocidos como algoritmos con pérdida o lossy).

 

También hay procedimientos sin pérdida de calidad o lossless, pero sufren una importante desventaja: no suelen ofrecer una merma importante del tamaño del material original, mientras que los algoritmos con pérdida sí lo hacen. Por esta razón, son estos últimos los utilizados, por ejemplo, para publicar vídeo en Internet y también para emitir la señal de televisión vía satélite, dos ámbitos en los que el tamaño y el bitrate resultan decisivos.
Un poco de historia
Aunque la popularización real de esta tecnología es relativamente reciente, para conocer el origen de los primeros códecs debemos remontarnos a los inicios de la microinformática, a principios de la década de los 80. Uno de los primeros estándares que surgió en esa época fue H.120, un compresor de vídeo que utilizaba una variante de la codificación PCM empleada, por ejemplo, en los CD-Audio, denominada DPCM.

 

Durante esos años también nació el formato de compresión de imágenes digitales JPEG y, en 1989, el códec H.261, el sucesor de H.120. A lo largo de los 90 se produjo el advenimiento de los primeros estándares propuestos por el grupo de trabajo MPEG (Motion Picture Experts Group), de los que el conocido como MPEG-1 se posicionó como el estándar de codificación de vídeo digital durante mucho tiempo. Durante esta década también aparecieron los formatos AVI, de Microsoft, y, sobre todo, MPEG-2, sin duda, el contenedor más importante de todos debido a que es el utilizado, entre otros ámbitos, en la codificación del vídeo de las películas en DVD.
¿Códec o contenedor?
Durante el proceso de reproducción de un vídeo estamos manejando dos cadenas de datos: la imagen en movimiento y el sonido. Como es lógico, no resultaría práctico almacenar esta información de diferente naturaleza en dos archivos distintos que después tendríamos que reproducir simultáneamente, por lo que la mejor opción es combinar ambas cadenas o streams en un solo fichero. Ésta es, precisamente, la función de los contenedores, como los AVI (Audio Video Interleave), VOB (utilizados en los DVD-Vídeo para almacenar información acerca de los subtítulos, los capítulos, los menús, etc.), MPE, QuickTime...
La codificación en detalle
Como hemos explicado, los códecs con pérdida de calidad consiguen reducir el tamaño del fichero original eliminando la información redundante o poco significativa. Para detallar su funcionamiento tomaremos como ejemplo el procedimiento de codificación del códec MPEG-1. El vídeo original está compuesto por fotogramas que cabe clasificar en tres categorías diferentes: B-frames (Bidirectional), I-frames (Intraframes) y P-frames (Predicted). Además, cada frame contiene macrobloques, constituidos por aquella información de entidad que puede ser utilizada para comparar unos con otros. Los fotogramas clave o keyframes (en nuestro ejemplo esta posición la ocuparían los I-frames) son los que contienen los datos esenciales, por lo que, utilizándolos y combinándolos con la información proporcionada por los P-frames y los B-frames, el descodificador puede reproducir la secuencia de vídeo completa.

 

No obstante, ésta no es la única técnica utilizada en la actualidad para afrontar el proceso de codificación/descodificación. También se utilizan otras, como la DCT (Discrete Cosine Transform), aunque esta última ha perdido una gran parte de su peso debido a la mayor sofisticación de las WDT (Wavelet Discrete Transforms). Estas técnicas utilizan métodos muy avanzados de compensación del movimiento basados en la predicción de bloques y también complejos algoritmos de cuantización, cuya función es facilitar la conversión de una señal continua descrita por un infinito número de valores a otra discreta y constituida, por tanto, por una cantidad limitada de valores. Las matrices de cuantización se pueden manipular para adecuar el tratamiento de la información a la forma en que el ojo humano capta los colores y percibe el contraste y la definición de las imágenes.
De lo explicado podemos deducir que los mejores códecs son aquellos que recurren a un algoritmo escalable que puede adaptarse a las diferentes condiciones de ancho de banda, resolución, definición y tamaño.
Algunos códecs de vídeo importantes
H.261: Este códec fue desarrollado por el Comité de Normalización de las Telecomunicaciones (UIT-T) a finales de la década de los 90. Fue el sucesor del primer codificador diseñado por este organismo, conocido como H.120, y prácticamente todos los códecs utilizados en la actualidad provienen de él.
MPEG-1: El organismo responsable de esta implementación fue el grupo de trabajo conocido como MPEG (Motion Picture Experts Group). Fue el estándar utilizado en el formato Vídeo CD y su calidad era similar a la ofrecida por el VHS. Sólo era compatible con fuentes de vídeo con exploración progresiva.
MPEG-2: Éste es el códec más utilizado en la actualidad habida cuenta de que es el empleado en las películas en DVD y también en la difusión de algunos contenidos en alta definición. A diferencia de MPEG-1, esta versión también soporta vídeo entrelazado. Hoy en día es un códec superado.
MPEG-4: Considerado el heredero de MPEG-2, ofrece mayor calidad que este último códec y, a la par, una mayor tasa de compresión. Por esta razón, es una de las tecnologías de codificación idóneas para publicar contenidos en Internet. Al igual que MPEG-2, puede lidiar tanto con vídeo progresivo como entrelazado.
DivX y XviD: Éstas son las dos implementaciones más populares de MPEG-4 Parte 2. La primera de ellas es comercial, mientras que la segunda fue desarrollada como un proyecto de software libre bajo licencia GNU como heredero de la iniciativa OpenDivX.
RealVideo: Basado inicialmente en el códec H.263 y desarrollado por Real Networks, está especialmente indicado para la difusión de contenidos vía streaming. Puede utilizarse en la mayor parte de las plataformas implantadas en la actualidad, como Windows, Mac Os X, Linux, Symbian, etc.
WMV: Códec de vídeo creado por Microsoft que destaca por su gran escalabilidad. Puede ser utilizado tanto para codificar vídeo en baja resolución como para comprimir fuentes en alta definición.
VC-1: Estándar de codificación de vídeo derivado de la última versión de WMV y propuesto por la SMPTE (Society of Motion Picture and Television Engineers). Recurre a una sofisticada técnica de compresión que utiliza la transformada de coseno discreta. Los formatos de vídeo en alta definición HD DVD y Blu-ray Disc lo han adoptado como estándar obligatorio.
H.264/MPEG-4 AVC: Propuesto por los organismos MPEG y UIT-T, es uno de los códecs de vídeo más sofisticados de cuantos se utilizan en la actualidad. Por sus prestaciones compite con VC-1, de hecho, al igual que éste, se emplea en la codificación del vídeo de las películas en HD DVD y Blu-ray Disc. También se está popularizando en plataformas de diversa índole, como el iPod, la PSP, cámaras de vídeo, etc.