Cómo funcionan realmente los algoritmos de compresión de video modernos

Los algoritmos modernos de compresión de video no son los mismos que los algoritmos de compresión de imágenes con los que quizás esté familiarizado. La dimensión y el tiempo adicionales significan que se aplican diferentes técnicas matemáticas y lógicas al archivo de video para reducir el tamaño mientras se mantiene la calidad del video.

En esta publicación usamos H.264 como estándar de compresión arquetípico. Si bien ya no es el formato de compresión de video más nuevo, todavía proporciona un ejemplo suficientemente detallado para explicar conceptos generales sobre la compresión de video.

¿Qué es la compresión de video?

Los algoritmos de compresión de video buscan redundancias espaciales y temporales. Al codificar datos redundantes un número mínimo de veces, se puede reducir el tamaño del archivo. Imagine, por ejemplo, una toma de un minuto de la cara de un personaje que cambia lentamente de expresión. No tiene sentido codificar la imagen de fondo para cada fotograma: en su lugar, puede codificarla una vez y luego volver a consultarla hasta que sepa que el video cambia. Esta codificación de predicción entre cuadros es la responsable de los artefactos desconcertantes de la compresión de video digital: partes de una imagen antigua que se mueven con una acción incorrecta porque algo en la codificación se ha vuelto loco.

I-frames, P-frames y B-frames

Los fotogramas I son imágenes totalmente codificadas. Cada I-frame contiene todos los datos que necesita para representar una imagen. Los fotogramas P están p redicted basan en cómo la imagen cambia de la última trama I. Fotogramas B son b i-direccionalmente predicho, a partir de datos tanto de la última trama P y el siguiente cuadro-I. Los marcos P solo necesitan almacenar la información visual que es exclusiva del marco P. En el ejemplo anterior, necesita rastrear cómo se mueven los puntos a través del marco, pero Pac-Man puede quedarse donde está.

El cuadro B mira el cuadro P y el siguiente cuadro I y “promedia” el movimiento a través de esos cuadros. El algoritmo tiene una idea de dónde “comienza” la imagen (el primer cuadro I) y dónde “termina” la imagen (el segundo cuadro I), y utiliza datos parciales para codificar una buena suposición, omitiendo todos los elementos redundantes. píxeles estáticos que no son necesarios para crear la imagen.

Codificación Intraframe (I-frames)

Los fotogramas I se comprimen de forma independiente, de la misma forma que se guardan las imágenes fijas. Debido a que los fotogramas I no utilizan datos predictivos, la imagen comprimida contiene todos los datos utilizados para mostrar el fotograma I. Todavía están comprimidos por un algoritmo de compresión de imágenes como JPEG. Esta codificación a menudo tiene lugar en el espacio de color YCbCr, que separa los datos de luminosidad de los datos de color, lo que permite que los cambios de movimiento y color se codifiquen por separado.

Para códecs no predictivos como DV y Motion JPEG, ahí es donde nos detenemos. Debido a que no hay cuadros predictivos, la única compresión que se puede lograr es comprimiendo la imagen dentro de un solo cuadro. Es menos eficiente pero produce un archivo de imagen sin procesar de mayor calidad.

En los códecs que utilizan marcos predictivos como H.264, los marcos I se muestran periódicamente para “actualizar” el flujo de datos estableciendo un nuevo marco de referencia. Cuanto más separados estén los fotogramas I, más pequeño puede ser el archivo de vídeo. Sin embargo, si los fotogramas I están demasiado separados, la precisión de los fotogramas predictivos del video se degradará lentamente hasta volverse ininteligible. Una aplicación de ancho de banda optimizado insertaría I-frames con la menor frecuencia posible sin interrumpir la transmisión de video. Para los consumidores, la frecuencia de los fotogramas I a menudo está determinada indirectamente por la configuración de “calidad” en el software de codificación. El software de compresión de video de nivel profesional como ffmpeg permite un control explícito.

Predicción entre cuadros (cuadros P y cuadros B)

Los codificadores de video intentan “predecir” el cambio de un cuadro al siguiente. Cuanto más cercanas sean sus predicciones, más eficaz será el algoritmo de compresión. Esto es lo que crea los marcos P y los marcos B. La cantidad exacta, la frecuencia y el orden de los fotogramas predictivos, así como el algoritmo específico que se utiliza para codificarlos y reproducirlos, está determinado por el algoritmo específico que utilice.

Consideremos cómo funciona H.264, como ejemplo generalizado. La trama se divide en secciones denominadas macrobloques, que normalmente constan de muestras de 16 x 16. El algoritmo no codifica los valores de píxeles sin procesar para cada bloque. En cambio, el codificador busca un bloque similar en un marco más antiguo, llamado marco de referencia. Si se encuentra un marco de referencia válido, el bloque se codificará mediante una expresión matemática llamada vector de movimiento, que describe la naturaleza exacta del cambio del bloque de referencia al bloque actual. Cuando se reproduce el video, el reproductor de video interpretará esos vectores de movimiento correctamente para “retraducir” el video. Si el bloque no cambia en absoluto, no se necesita ningún vector.

Conclusión: compresión de datos

Una vez que los datos se clasifican en sus marcos, se codifican en una expresión matemática con el codificador de transformación. H.264 emplea una DCT (transformada de coseno discreto) para cambiar los datos visuales en expresión matemática (específicamente, la suma de funciones de coseno que oscilan en varias frecuencias). El algoritmo de compresión elegido determina el codificador de transformada. Luego, el cuantificador “redondea” los datos. Finalmente, los bits se ejecutan mediante un algoritmo de compresión sin pérdidas para reducir el tamaño del archivo una vez más. Esto no cambia los datos: simplemente los organiza de la forma más compacta posible. Luego, el video se comprime, es más pequeño que antes y está listo para mirar.

Crédito de la imagen: VC Demo, itu delft

¡Si te ha gustado vota con 5 Estrellas!
(Votos: 0 Promedio: 0)

Escribe Aquí Tu Comentario