Calidad del Video

[Nota: Todos los enlaces en esta página te llevarán a una página generada automáticamente con resultados de los codecs que se ejecutaron. Desde esa página puedes descargar el resultado o ver capturas de imágenes individuales (haciendo clic). Además, al principio de cada página hay un enlace a una o más páginas adicionales. Cada una de esas páginas es para comparar diferentes versiones de una captura de imagen en el mismo momento (2 seg, 5 seg, etc.). En esas páginas hay un programa de JavaScript que puedes usar para alternar automáticamente entre las diferentes versiones para compararlas.]

La calidad del video que piras depende de dozenas o hasta cientos de parámetros diferentes que se pueden (a veces) establecer al codificar el video. Los dos parámetros más importantes son (usualmente) el codec usado y el bit-rate en el que el video es codificado.

Para ver el efecto que bit-rates diferentes pueden tener en un mismo archivo, ve a esta página, la cual contiene codificaciones (todas en h.264, 1080p) con bit-rates que oscilan entre 250kbps-10,000kpbs.

Para ilustrar las diferencias entre diferentes codec tenemos esta página en la que mostramos los resultados de codificar el mismo clip (480p) con distintos codecs. Sin embargo, el bit-rate no cambia en estos ejemplos y está fijado a 4,000kbps.

Calidad Perfecta/Calidad Buena

Para cada codec usado para codificar video, uno quisiera asumir que siempre habrá una regla simple para determinar el bit-rate que te dará una calidad "casi perfecta" o una sólo "buena" a tu video. Desafortunadamente ese no es el caso, y hay muchas variables que hacen que cada video sea un poco diferente. Sin embargo, para un clip puedes comparar todos los codecs y encontrar una especificación que se buena para ese clip en específico, que es lo que hemos hecho a continuación. Estos valores no se mantienen para otros clips con mayor/menor movimiento, color, opacidad, etc, pero pueden ser una buena regla básica para comenzar a aprender sobre este proceso.

En la siguiente tabla mostramos los resultados de ejecutar diferentes codecs al mismo clip para la película animada sintel. Para cada colmna, la codificación de cada video con el bit-rate mostrado va a producir un video con aproximadamente la misma calidad para cada línea. Todos los resultados se presentan en kbps (miles de bits por segundo).

El clip original usado para todas las codificaciones se construyó basado en archivos .png sin pérdida da cada imagen. El video es 1920x816 (lo llamaremos 1080p aunque en realidad no lo es) y 960x480 (llamaremos a esto 480p aunque en realidad no lo es). Cada imagen de video 480p tiene 1/4 del tamaño (en pixeles) de una imagen de video 1080p.

Los valores en la siguiente table fueron todos determinados viendo los videos creados usando muchos bit-rates distintos para cada codificador. De todos los videos, se seleccionó el que tuvo el bit-rate más bajo posible para una calidad "Casi Perfecta" o "Buena". Para determinar qué era "Casi Perfecto", vimos los clips y los comparamos con capturas de imágenes individuales de video (disponibles en las páginas para cada edición al hacer clic en la columna de cabecera), y luego tratamos de escojer un nivel que fuera el mismo a través de todos los videos. Muchos de los codificadores no pudieron alcanzar un nivel de calidad que fuera "Casi Perfecto", por lo que están listados como "no posible". Para determinar qué era "Bueno" usamos el mimo método, pero esta vez nos enfocamos más en ver el video y menos en compararlo con las imágenes individuales, ya que todas las imágenes individuales tenían artefactos notables del codificador.

Ya que todos los resultados se determinaron simplemente mirando los clips de video y las capturas de imágenes, los resultados son subjetivos, pero te deben dar una buena impresi del poder de los varios codecs al ser usados con sus especificaciones estándares.

Para construir estos clips se usaron formatos de video puro, ffv1, mpg4, mjpeg, y mpeg2 y se codificaron con codecs dentro de la herramienta ffmpeg. Los otros codificadores usados son: libx264 (con varias configuraciones pre-establecidas: lossless_max, lossless_medium, lossless_ultrafast, veryslow, medium, y ultrafast), libvpx, y libtheora. el signo de "-2p" o "-1p" luego de cada línea significa codificación de un paso o de doble paso.

Codec
1080p Casi Perfecto
1080p Bueno
480p Casi Perfecto
480p Bueno
raw video
(880000)
n/a
(234000)
n/a
ffv1 (lossless)
(107000)
n/a
(31500)
n/a
h.264-lossless_max
(48000)
n/a
(18000)
n/a
h.264-lossless_medium
(50000)
n/a
(15000)
n/a
h.264-lossless_ultrafast
(61000)
n/a
(14000)
n/a
h.264-veryslow-2p
7000
2000
4000
1000
h.264-medium-2p
8000
2500
4500
1500
h.264-ultrafast-2p
not possible
6000
8000
3000
h.264-veryslow-1p
11000
2500
4500
1500
h.264-medium-1p
12000
3000
5000
2000
h.264-ultrafast-1p
no posible
7000
10000
4000
vp8-2p
no posible 3000
no posible 2000
vp8-1p
no posible 4000
no posible 2500
theora-2p
no posible 6000
no posible 4000
theora-1p
no posible 9000
no posible 4500
mpeg4-2p (part 2)
no posible 6000
no posible 5000
mpeg4-1p (part 2)
no posible 8000
no posible 6000
mjpeg-2p
no posible 15000
no posible 8000
mjpeg-1p
no posible 17000
no posible 8000
mpeg2-2p
no posible 8000
no posible 6000
mpeg2-1p
no posible 10000
no posible 7000