Articulo original en :http://www.atomicmpc.com.au/article.asp?CIID=82898
Citar
Todo lo que querías saber sobre codecs
Publicado 20-Jul-2007 por monti
Leo en atomicmpc una interesante comparativa de codecs de vídeo. El artículo se alarga bastante, debido a que su autor explica de forma muy detallada el método utilizado para realizar el análisis; a continuación traduzco las conclusiones finales, que es la parte realmente interesante.
Los codecs comparados son: XVID, DIVX, H264 y WMV. Para hacer la comparación el autor ha cogido tres secuencias, una procedente de “Futurama“, otra de “Firefly” y otra de “Troya” y las ha codificado a 300, 700, 1500 y 3000kb/s, observando los resultados en cada caso. Para cada una de las secuencias que acompañan a este test el autor del artículo ofrece un fotomontaje donde se muestra un fotograma de la secuencia elegida, acompañada de una muestra ampliada de un fragmento de dicho fotograma comprimido con cada codec y a cada velocidad.
FUTURAMA
Se trata de una serie de animación de dibujo muy simple, donde el movimiento se produce cada dos fotogramas y amplias zonas de la imagen están rellenas de color sólido.
Para ver un fotograma de la secuencia utilizada y muestras del resultado obtenido Pulsar aquí
* XVID: Maneja muy bien los fondos, pero tiene a bitrates bajos tiene problemas con los bordes, problemas que persisten hasta los 1500kb/s, pero los gradientes no se ven bien hasta los 3000kb/s.
* DIVX: A bitrates bajos aparecen cuadrículas, pero desaparecen a los bitrates propios de las líneas de datos del mundo real.
* H264: A 300kb/s el resultado es basura, pero a 700kb/s el salto de calidad es espectacular. Su sistema de macrobloques de tamaño variable le permite manejar el complicado perfil de Fry mucho mejor que los otros codecs. Curiosamente, a bitrates elevados las líneas se ven suaves y borrosas.
* WMV: Este codec es el que proporciona mejores resultados a bitrates bajos, reproduciendo perfectamente los gradientes a costa de la definición de las líneas. La aparición de cuadrículas no es tan acentuada como en otros codecs, y al igual que H264 tiende a suavizar las líneas.
FIREFLY
La mayoría de los codecs de vídeo no tratan bien los negros debido a su tendencia a aproximar los colores. Esto lo podemos apreciar en los vídeos de youtube, donde podemos ver como las superficies negras se convierten en gradientes de gris. Esta secuencia también nos sirve para testear los planos cercanos, para observar como maneja el codec las caras humanas.
Para ver un fotograma de la secuencia utilizada y muestras del resultado obtenido Pulsar aquí
* XVID: Destroza multitud de detalles en las zonas oscuras de la imagen, especialmente a bitrates bajos. A 700kb/s se sigue observando un gradiente de gris muy feo, mientras el resto de codecs manejan la imagen correctamente. Los detalles de la piel se observan pixelados incluso a 3000kb/s, aunque el resto de la imagen se ve perfecta
* DIVX: En promedio, se comporta mejor que XVID, mostrando menos cuadriculas y mejores gradientes, pero sigue fallando en los detalles de la piel. En escenas mas brillantes este problema es menor.
* H264: No funciona muy bien a bitrates pequeños, pero a partir de 700kb/s desaparecen casi todos lo defectos, a excepción de los detalles de la piel y las áreas oscuras. A 3000kb/s, la imagen se ve casi perfecta; es la mas parecida a la original
* WMV: A bitrates bajos elimina los defectos de codificación mediante suavizado; por ejemplo, el reflejo del fuego en la cara se ve muy estático a bitrates bajos. A medida que aumentamos el bitrate, la calidad va mejorando aunque no llega a alcanzar a H264; eso si, es mejor que XVID/DIVX
TROYA
La escena elegida es una prueba muy dura para cualquier codec. A bitrates bajos, las personas que avanzan por la playa se convierten en sprites que se deslizan por la imagen. En parte, los malos resultados se deben a la fuente, un stream MPEG-2 que intenta ofrecer buenos resultados.
Para ver un fotograma de la secuencia utilizada y muestras del resultado obtenido Pulsar aquí
* DIVX: A bitrates bajos los resultados son horribles, lo único que se mueve de forma fluida son las velas de los barcos. A 700kb/s se empieza a apreciar un movimiento suave, pero solo empieza a ser remotamente aceptable a 1.500kb/s. A 3.000kb/s el movimiento es correcto, pero se siguen observando ejes cuadriculados alrededor de los objetos pequeños.
* XVID: Aunque a bitrates bajos la imagen es menos borrosa que con DIVX y el movimiento es mas fino, se siguen perdiendo demasiados detalles
* H264: Es el único en el que se aprecia el movimiento de los personajes. Incluso codificando a 150kb/s se sigue apreciando el movimiento, pero amplias secciones de la imagen se muestran difusas. A bitrates altos es el ganador.
* WMV: A bitrates bajos, el nivel de detalle no es el mismo que en H264, pero zonas de la playa que H264 se ven borrosas, WMV las muestra correctamente. El movimiento no lo renderiza tan bien como H264, pero hace un excelente trabajo.
CONCLUSIONES
Esta claro que los mejores codecs son H264 y WMV, aunque el primero funciona mejor a bitrates altos y el segundo a bitrates bajos.
El autor del artículo original nos recuerda que la compresión de vídeo es una ciencia y un arte; todos los codecs tienen multitud de parámetros de configuración y podemos observar unas variaciones enormes en el resultado final según como configuremos dichos parámetros (en esta comparativa, todos los codecs han funcionado bajo los parámetros por defecto).
En resumen, el codec es solo una de las piezas; una aplicación de codificación buena es aquella que sea capaz de utilizar todas las opciones del codec y ajustarlas correctamente.
Publicado 20-Jul-2007 por monti
Leo en atomicmpc una interesante comparativa de codecs de vídeo. El artículo se alarga bastante, debido a que su autor explica de forma muy detallada el método utilizado para realizar el análisis; a continuación traduzco las conclusiones finales, que es la parte realmente interesante.
Los codecs comparados son: XVID, DIVX, H264 y WMV. Para hacer la comparación el autor ha cogido tres secuencias, una procedente de “Futurama“, otra de “Firefly” y otra de “Troya” y las ha codificado a 300, 700, 1500 y 3000kb/s, observando los resultados en cada caso. Para cada una de las secuencias que acompañan a este test el autor del artículo ofrece un fotomontaje donde se muestra un fotograma de la secuencia elegida, acompañada de una muestra ampliada de un fragmento de dicho fotograma comprimido con cada codec y a cada velocidad.
FUTURAMA
Se trata de una serie de animación de dibujo muy simple, donde el movimiento se produce cada dos fotogramas y amplias zonas de la imagen están rellenas de color sólido.
Para ver un fotograma de la secuencia utilizada y muestras del resultado obtenido Pulsar aquí
* XVID: Maneja muy bien los fondos, pero tiene a bitrates bajos tiene problemas con los bordes, problemas que persisten hasta los 1500kb/s, pero los gradientes no se ven bien hasta los 3000kb/s.
* DIVX: A bitrates bajos aparecen cuadrículas, pero desaparecen a los bitrates propios de las líneas de datos del mundo real.
* H264: A 300kb/s el resultado es basura, pero a 700kb/s el salto de calidad es espectacular. Su sistema de macrobloques de tamaño variable le permite manejar el complicado perfil de Fry mucho mejor que los otros codecs. Curiosamente, a bitrates elevados las líneas se ven suaves y borrosas.
* WMV: Este codec es el que proporciona mejores resultados a bitrates bajos, reproduciendo perfectamente los gradientes a costa de la definición de las líneas. La aparición de cuadrículas no es tan acentuada como en otros codecs, y al igual que H264 tiende a suavizar las líneas.
FIREFLY
La mayoría de los codecs de vídeo no tratan bien los negros debido a su tendencia a aproximar los colores. Esto lo podemos apreciar en los vídeos de youtube, donde podemos ver como las superficies negras se convierten en gradientes de gris. Esta secuencia también nos sirve para testear los planos cercanos, para observar como maneja el codec las caras humanas.
Para ver un fotograma de la secuencia utilizada y muestras del resultado obtenido Pulsar aquí
* XVID: Destroza multitud de detalles en las zonas oscuras de la imagen, especialmente a bitrates bajos. A 700kb/s se sigue observando un gradiente de gris muy feo, mientras el resto de codecs manejan la imagen correctamente. Los detalles de la piel se observan pixelados incluso a 3000kb/s, aunque el resto de la imagen se ve perfecta
* DIVX: En promedio, se comporta mejor que XVID, mostrando menos cuadriculas y mejores gradientes, pero sigue fallando en los detalles de la piel. En escenas mas brillantes este problema es menor.
* H264: No funciona muy bien a bitrates pequeños, pero a partir de 700kb/s desaparecen casi todos lo defectos, a excepción de los detalles de la piel y las áreas oscuras. A 3000kb/s, la imagen se ve casi perfecta; es la mas parecida a la original
* WMV: A bitrates bajos elimina los defectos de codificación mediante suavizado; por ejemplo, el reflejo del fuego en la cara se ve muy estático a bitrates bajos. A medida que aumentamos el bitrate, la calidad va mejorando aunque no llega a alcanzar a H264; eso si, es mejor que XVID/DIVX
TROYA
La escena elegida es una prueba muy dura para cualquier codec. A bitrates bajos, las personas que avanzan por la playa se convierten en sprites que se deslizan por la imagen. En parte, los malos resultados se deben a la fuente, un stream MPEG-2 que intenta ofrecer buenos resultados.
Para ver un fotograma de la secuencia utilizada y muestras del resultado obtenido Pulsar aquí
* DIVX: A bitrates bajos los resultados son horribles, lo único que se mueve de forma fluida son las velas de los barcos. A 700kb/s se empieza a apreciar un movimiento suave, pero solo empieza a ser remotamente aceptable a 1.500kb/s. A 3.000kb/s el movimiento es correcto, pero se siguen observando ejes cuadriculados alrededor de los objetos pequeños.
* XVID: Aunque a bitrates bajos la imagen es menos borrosa que con DIVX y el movimiento es mas fino, se siguen perdiendo demasiados detalles
* H264: Es el único en el que se aprecia el movimiento de los personajes. Incluso codificando a 150kb/s se sigue apreciando el movimiento, pero amplias secciones de la imagen se muestran difusas. A bitrates altos es el ganador.
* WMV: A bitrates bajos, el nivel de detalle no es el mismo que en H264, pero zonas de la playa que H264 se ven borrosas, WMV las muestra correctamente. El movimiento no lo renderiza tan bien como H264, pero hace un excelente trabajo.
CONCLUSIONES
Esta claro que los mejores codecs son H264 y WMV, aunque el primero funciona mejor a bitrates altos y el segundo a bitrates bajos.
El autor del artículo original nos recuerda que la compresión de vídeo es una ciencia y un arte; todos los codecs tienen multitud de parámetros de configuración y podemos observar unas variaciones enormes en el resultado final según como configuremos dichos parámetros (en esta comparativa, todos los codecs han funcionado bajo los parámetros por defecto).
En resumen, el codec es solo una de las piezas; una aplicación de codificación buena es aquella que sea capaz de utilizar todas las opciones del codec y ajustarlas correctamente.
Fuente http://teleobjetivo.monteagudo.net/archives/2007/07/20/todo-lo-que-querias-saber-sobre-codecs/