Instalación y configuración de Computadores y Periféricos
Escuela Técnica de Ingeniería Informática de Gijón
3º Ingeniería Técnica en Informática de Sistemas

Codecs de vídeo

Leandro Fernández Baldó y Sergio Fernández Alonso

Fecha: 23 de Mayo de 2008

Objetivos

El objetivo es hacer una comparación entre los codecs más usados en la actualidad: Divx, Xvid y H.264.

Para ello se realizarán distintas pruebas de compresión, variando la resolución y el bitrate, para cada codec.

Finalmente se hará una comparación entre los tiempos invertidos, tamaños de archivo, uso de CPU y calidad de imagen obtenida.

Teoría básica

Divx:

Es un codec basado en los estándares MPEG-4 Parte 2. Aunque inicialmente estaba pensado para transmitir televisión digital en alta definición, fueron los sistemas multimedia en internet los que realmente le sacaron provecho. Actualmente sigue en uso, pero su utilización en dichos sistemas se ha visto relegada por otros codecs, como el Xvid.

Xvid:

Ofrece una alternativa gratuita a otros codecs de pago. Es similar al Divx, aunque ofrece una calidad ligeramente superior. Actualmente es el codec más utilizado a la hora de rippear películas, series, etc.

H.264:

Es como se conoce comunmente al MPEG-4 parte 10. Inicialmente se desarrolló para crear vídeos de baja calidad, enfocado a la transmisión en tiempo real por Internet. En la actualidad, ha acabdo siendo el gran referente para vídeos en alta definición. También ha sido adoptado por plataformas como el iPod o la PSP. Existe una versión alternativa a este codec, gratuita, conocida como x264.

Resolución:

La resolución de imagen indica cuánto detalle puede observarse en una imagen y viene expresada en nº de pixels a lo ancho por nº de pixels a lo alto.

Bitrate:

El bitrate mide la velocidad de transferencia de datos y se expresa en bits por segundo (bps, Kbps)

Configuración de partida

Ordenador con el que se realizaron las compresiones: Core 2 Duo 2.2, 4GB de RAM, GeForce 8800GT, Windows Vista 64x.

Codecs y Filtros intalados: Divx 6.8, Xvid 1.1.3, FFDShow, Haali Media Splitter.

Programas utilizados: VirtualDubMod, BSPlayer.

Desarrollo

Compresión de los videos

Para comprimir los vídeos, utilizaremos el programa VirtualDubMod.

Abrimos el vídeo de partida. Nosostros probaremos con el trailer de la nueva película de Indiana Jones. Como está codificado en H.264 debemos activar la opción "Use AviSynth template - DirectShowSource".

Abrimos el fichero

(Pinchar en la imagen para agrandarla)


Para eliminar el audio vamos a "Streams/Stream list". Seleccionamos la pista y le damos a "Disable".

Eliminamos el audio

(Pinchar en la imagen para agrandarla)


Para cambiar la resolución vamos a "Video/Filters" y escogemos el filtro "Resize".

Seleccionr el filtro resize

(Pinchar en la imagen para agrandarla)


Ponemos los parámetros de la resolución a nuestro gusto.

Especificamos la resolución

(Pinchar en la imagen para agrandarla)


Para escoger el codec vamos a Video/Compression y seleccionamos el que queramos de la lista.

Seleccionamos el codec

(Pinchar en la imagen para agrandarla)


Para configurar el codec vamos a "Configure" y escogemos el bitrate y el método de compresión deseado.

Para obtener una calidad mejor, usamos el método de doble pasada. Para hacer esto seleccionamos primeramente "Twopass - 1st pass" en "Encoding Type". Esto nos creará un vídeo intermedio al codificarlo. Luego volvemos a configurar el codec, y seleccionamos "Twopass - 2nd pass". Volvemos a codificar el vídeo, y el arvhivo obtenido es el vídeo final.

Configuramos el codec

(Pinchar en la imagen para agrandarla)


Para codificar el vídeo, asegurarse de que está seleccionada la opción "Video/Full processing mode".

Full processing mode

(Pinchar en la imagen para agrandarla)


Vamos a "File/Save as" y seleccionamos la ruta, el nombre del fichero y le damos a guardar.

Guardamos el archivo

(Pinchar en la imagen para agrandarla)


El programa codifica el vídeo.

Codificación del vídeo

(Pinchar en la imagen para agrandarla)


Resultados

Para la visualización de los vídeos y la captura de fotogramas hemos usado el programa BSPlayer.

Hemos escogido 3 resoluciones distintas:

320x136: Encaja en el estándar 320x240. Es la resolución menor de las utilizadas y se suele usar en dispositivos portátiles, como el iPod.

640x272: Encaja en el estándar 640x480. Es una resolución intermedia, utilizada a la hora de rippear películas (aproximadamente).

1920x818: Encaja en el estándar 1920x1080. Es la mayor de las resoluciones utilizada para la alta definición.

Para los bitrates, hemos escogido cuatro opciones. Los tres primeros (500 Kbps, 1000 Kbps, 2000 Kbps) son representativos de los normalmente utilizados. Para la resolución más alta, puesto que se trata de alta definición, hemos añadido un bitrate más acorde con lo utilizado (5000 Kbps).

Divx 320x136

Bitrate (Kbps) Tiempo (min) Tamaño (MB) CPU (%) Calidad
500 3 6,85 0-2 Imagen
1000 4 13,5 0-2 Imagen
2000 4 26,8 0-3 Imagen

Xvid 320x136

Bitrate (Kbps) Tiempo (min) Tamaño (MB) CPU (%) Calidad
500 2 6,74 0-2 Imagen
1000 2 13,5 0-3 Imagen
2000 2 27,1 0-4 Imagen

H.264 320x136

Bitrate (Kbps) Tiempo (min) Tamaño (MB) CPU (%) Calidad
500 2 6,88 0-5 Imagen
1000 2 13,6 0-5 Imagen
2000 2 27,4 0-7 Imagen

Divx 640x272

Bitrate (Kbps) Tiempo (min) Tamaño (MB) CPU (%) Calidad
500 4 6,84 0-3 Imagen
1000 3 13,6 0-5 Imagen
2000 4 27,0 0-5 Imagen

Xvid 640x272

Bitrate (Kbps) Tiempo (min) Tamaño (MB) CPU (%) Calidad
500 2 6,43 0-4 Imagen
1000 3 13,1 0-5 Imagen
2000 3 26,9 0-5 Imagen

H.264 640x272

Bitrate (Kbps) Tiempo (min) Tamaño (MB) CPU (%) Calidad
500 3 10,5 0-7 Imagen
1000 3 13,9 0-8 Imagen
2000 4 27,0 0-9 Imagen

Divx 1920x818

Bitrate (Kbps) Tiempo (min) Tamaño (MB) CPU (%) Calidad
500 7 24,0 6-16 Imagen
1000 8 23,9 6-17 Imagen
2000 7 27,0 5-18 Imagen
5000 8 67,8 7-21 Imagen

Xvid 1920x818

Bitrate (Kbps) Tiempo (min) Tamaño (MB) CPU (%) Calidad
500 6 22,2 7-16 Imagen
1000 7 23,1 9-16 Imagen
2000 6 29,7 8-18 Imagen
5000 19 66,4 8-22 Imagen

H.264 1920x818

Bitrate (Kbps) Tiempo (min) Tamaño (MB) CPU (%) Calidad
500 16 42,0 10-44 Imagen
1000 17 42,6 8-43 Imagen
2000 17 44,1 12-49 Imagen
5000 19 68,7 12-51 Imagen

Conclusiones

Para codificar vídeos que no sea en alta definición, la mejor opción es el Xvid. Obtiene calidades superiores al Divx en tiempos algo menores y consume menos recursos que el H.264.

Para vídeos en alta definición la mejor opción, sin duda, es el H.264. Aunque tarda algo más en codificar los videos, éstos suelen ocupar algo más y consumen más CPU a la hora de reproducirlos, obtenemos mejor calidad de imagen que con los otros codecs. Y puesto que se trata de alta definición, éstos no deberían ser factores determinantes.

Como deficiencia a señalar, comentar que los filtros FFDShow no permiten codificar H.264 con el método de doble pasada.

Enlaces

Manuales:

Información:

Recursos:

Licencia

Creative Commons License
Este trabajo utiliza una Licencia Creative Commons.