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.

No hicieron pruebas con Theora?
Hola amigo! muchas gracias por traducir tan interesante articulo, por cierto que estoy escribiendo un libro electronico sobre dispositivos moviles y me gustaria pedirte permiso para incluir comentarios basados en esta informacion, no pienso incluir tu texto literal, sino mas bien un destaque de tu traduccion.
Nuevamente gracias y espero tu respuesta! Atentamente,
Joel Zerpa
Caracas – Venezuela
(+58) 416 723 4921
¨Una interesante comparativa de codecs de vídeo XVID, DIVX, H264 y WMV con los vídeos extraídos 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. Los mejores codecs son H264 y WMV, aunque el primero funciona mejor a bitrates altos y el segundo a bitrates bajos.¨ Publicada en meneame
Ahora faltaría comparar el tipo de maquina necesaria para poder correr un stream con cada codec. Que bonito es para quien tenga un PC comprado hace un mes….
Gracias por todos los codecs…se los he pasado a mi mama, y me dijo que eran los mismos que usaban en Italia durante la guerra.
Desde que empecé a hacer vídeos suelo utilizar el códec WMV con un bitrate mínimo de 1600, que es el que un conocido me recomendó abiertamente, ya que daba los mejores resultados, como en efecto ha sido. El códec de Microsoft tiene un comportamiento excelente, con un gran brillo en la imagen, y eso el propietario de este sitio lo sabe muy bien, porque ha visto varios de mis vídeos.
Lo del H264 no lo tenía yo muy estudiado, pero ya le echaré un vistazo.
En cuanto al tema DIVX y XVID, lo de la cuadrícula en la que se convierten muchas secuencias es algo que siempre me ha tocado la bolsa escrotal de manera inapropiada, por lo que, desde 2004, decidí prescindir de esos códecs para los montajes.
Muy buen artículo, Monti. Es reconfortante saber que uno toma la decisión adecuada en según qué cosas, aparte de que los vídeos en WMV ocupan menos que en DIVX, y la calidad, para mi gusto (y por lo que pone en el análisis, en realidad), es mucho mejor.
Para mí hablar de códecs es hablar de códecs que se puedan ver en un reproductor de divx. H264 la última vez que probé, no lo llevaban, y wmv (al menos el vc-1 que se menciona) tampoco creo que lo lleven.
Entonces, de los dos que quedan, xvid y divx, pues me gusta más divx porque xvid produce unas películas algo más oscuras que divx. Aunque veo que quizás porque el códec no sea tan libre como divx, al final muchas películas están en xvid.
Resultado: al final, el hecho importante no es la calidad final, sino la disponibilidad de un códec “genérico”.
Interesante la inicio. habría que puntualizar al respecto la propiedad de dichos codecs y saber que algunos son software propietario y otros software libre y tenerlo en cuenta a la hora de utilizarlos o no utilizarlos nunca (wmv o divx por ejemplo).
Como dijo Ordago, no aparecen referencias sobre Ogg Vorbis Theora que deberían tenerse muy en cuenta al parecer la alternativa más viable.
De lo mejorcito que he probado es matroska aunque no estoy muy ducho en la materia todo lo que he visto codificado en MKV ha sido brutal en calidad…
Muy buena comparativa aunque sería interesante también ver los tiempos de codificación, etc…
Estoy de acuerdo con morpheo en que sería interesante saber los tiempos de codificación, a lo mejor podemos sacrificar algo de calidad si ganamos tiempo a la hora de codificar los vídeos.
Hola
Lamento discordar pero el lugar del que el autor sacó el artículo en cuestión incluye comentarios, varios, como éste:
Yes, the article is really poor. There are already so many myths in this video codecs area and this article spreads yet another misinformation. It’s funny that the author tries to teach the readers about codecs when he doesn’t even know what a codec is. He confuses specifications (standards) with implementations (codecs) and like someone already said, for example the reverse-engineered x264 part is ridiculous – x264 is not “H.264’s open source equivalent” as the article says (which again proves that the author has no notion of the most basic concepts and terms – apparently he thinks H.264 is a software product), x264 is an implementation of the H.264 specification. Just like the DivX and Xvid (and FFmpeg MPEG-4, 3ivx etc.) codecs are implementations of MPEG-4 ASP. Codec is a piece of software or hardware that encodes/decodes data to/from some format. MPEG-1, MPEG-2 MPEG-4 ASP, MPEG-4 AVC (H.264) are specifications (standards, formats), the codec authors then read the specifications of these formats and develop software (or hardware) implementations that work with the formats. That’s why when a standard like MPEG-4 is publicly available, the codec authors don’t “reverse-engineer” anything.
Y como éste:
I completely agree!! As an electrical engineer I’ve actually studied and implemented many of these algorithms… The author clearly shows that he has zero understanding of many of the basic concepts and algorithms used in A/V encoding schemes.
At the very least, read wikipedia and try to understand these things. It looks a lot better when you just say that you have no idea what your talking about, rather than BS your way through and get everything wrong.
Firstly, DCT. It’s just a discrete single sided fourier transform. “Take half the number and throw away the remainder” What?! No! In this case, the fourier transform takes data from the spatial domain to the frequency domain. Because much of the information in audio & video is very low frequency, you can get away with only storing the low-frequency data and dropping the high freqs “low-pass filtering”. etc,etc
Y uno mas, de entre los que hay:
The “theory” part of this article is very poor. It confuses fundamental concepts such as temporal compression (a generic term), delta compression (what the author apparently calls “temporal compression”) and motion compensation (which the author doesn’t seem to understand at all). It treats several concepts present in MPEG-1 (ex., BMC) as “new MPEG-4 features”, and does not explain why certain approaches (ex., lossless delta) can’t work with certain types of footage (ex., video).
The description of the DCT is so completely wrong that it’s offensive. You don’t “need a degree in computer science” to understand it (first of all, because Fourier transforms are a field of mathematics, they have nothing to do with computer science), all you need is an IQ above room temperature. The third link at the end of this message does a pretty good job of explaining it.
The codec comparison part of this article is interesting, but one has to wonder how meaningful the comments are, when the author apparently doesn’t understand the fundamental theory behind the main compression algorithms.
It’s really depressing to see articles so full of misconceptions and plain nonsense, when accurate information about these subjects is available for free on the web. I feel sorry for the people who read this and think they’ve gained some sort of insight into these subjects (“ah, DCT, yes, I know what that is, it’s dividing numbers by two”… sigh).
I would strongly recommend that people read a more technical (and more accurate!) book or article about compression, before trying to form theories about why codex “X” handles some situations better than codec “Y”.
These should get you started:
http://en.wikipedia.org/wiki/MPEG-2
http://en.wikipedia.org/wiki/Video_compression
http://postproduction.digitalmedianet.com/articles/viewarticle.jsp?id=109739
http://postproduction.digitalmedianet.com/articles/viewarticle.jsp?id=125089
Creo que antes de ser tan voluntarioso a la hora de ayudar a otros conviene dedicar un poco mas de tiempo a comprobar lo que se traduce no sea quye el autor original resulte que tiene poca idea de lo que habla.
Yo lo siento que esté en Inglés pero no tengo tiempo de traducir esas cosas y sí me tomo la molestia de avisar de que no estan fiable como pudiera parecer a quien no sabe.
Phil.
Completamente de acuerdo, el que escribe esto no tiene ni idea del asunto. Con el solo hecho de que confunde claramente el H.264 con el x264, ya no puede entender demasiado de que va la cosa.
“Esta claro que los mejores codecs son H264 y WMV”
(esta frase lo dice todo)
[...] Através de barrapunto encontré la siguiente traducción a una interesante comparativa de los más códecs de compresión de video más utilizados. [...]
[...] Através de barrapunto encontré la siguiente traducción a una interesante comparativa de los más códecs de compresión de video más utilizados. [...]
Me resulto interesante y bueno su articulo, hace poco me encontre con el h264 y sus resultados has sido muy buenos, y ahora que subo pelis a mi sitio me resulta muy util y puedo subir películas de poco mas de 100 megas facilitando la subida y la bajada, la calidad es decente (sorprendente para el tamaño), uso el ” mediacoder ” para la conversión que resulta sencilla rapida y de calidad. Solo falta que se haga generico, que los reproductores lo admitan, para la pc es ideal.
¿de qué estais hablando?
¿cómo teneis tanto tiempo para saber qué d
emonio es eso delcodec?
¿yo tengo que currar todo el día y no tengo tiempo para investigar esas cosas tan raras.Sólo sé que no puedo pasar música que me bajo con Emule(por lo visto es 1 programa que sirve para bajar música y otras cosas de internet que 1 amigo me ha instalado)a 1 cd normal.
VAYA veo que no estoy loco, pues me he pasado todo el dia codificando videos pequeños 30MB a muchos bitrates, y casi siempre en WMV9 (vc-1) siempre salia victorioso, despues le seguian mpeg-4 AVC que supongo es el h264, esto lo realice con el tmpgEnc, xvid y divx eran buenos pero por detras de WMV9.