Aquí hay un desglose de los componentes clave y los algoritmos comunes involucrados:
1. Compresión espacial (codificación intra-marco): Esto se ocupa de comprimir marcos individuales. Las técnicas utilizadas incluyen:
* Transformación de coseno discreto (DCT): Este es un componente central de muchos códecs como MPEG, H.264 y H.265. Transforma los datos espaciales (valores de píxeles) en coeficientes de frecuencia. Los coeficientes de alta frecuencia, que representan detalles finos, a menudo son menos significativos y se pueden cuantificar (reducirse en precisión) o descartarse, lo que lleva a la compresión.
* Wavelet Transforms: Una alternativa a DCT, que ofrece una compresión potencialmente mejor en algunos casos.
* Compresión fractal: Explota la auto-similitud dentro de una imagen para lograr la compresión. Menos común en la compresión de video debido a un mayor costo computacional.
2. Compresión temporal (codificación entre marco): Esto explota la redundancia entre los marcos consecutivos. Las técnicas incluyen:
* Estimación y compensación de movimiento (MEC): Esto identifica áreas de movimiento entre marcos. En lugar de codificar todo el nuevo cuadro, solo se codifican las diferencias (vectores de movimiento y datos residuales). Esto reduce significativamente la cantidad de datos necesarios.
* Codificación predictiva: Predice el siguiente cuadro basado en cuadros anteriores y codifica solo el error de predicción.
3. Codificación de entropía: Este es el paso final, reduciendo aún más el tamaño de los datos comprimidos mediante la asignación de códigos más cortos a símbolos más frecuentes (por ejemplo, utilizando la codificación de Huffman o la codificación aritmética).
Códecos de video populares y sus algoritmos:
* MPEG-1, MPEG-2: Estándares anteriores, utilizando DCT y compensación de movimiento. MPEG-2 todavía se usa para la televisión de transmisión.
* MPEG-4 PARTE 2 (DIVX, XVID): Mejoró sobre MPEG-1/2, utilizando una estimación de movimiento más sofisticada y mejores técnicas de cuantización.
* H.264/AVC (codificación de video avanzada): Un códec altamente eficiente, ampliamente utilizado en discos Blu-ray, video en línea y muchas otras aplicaciones. Utiliza DCT, estimación de movimiento sofisticada y otras técnicas avanzadas.
* H.265/HEVC (codificación de video de alta eficiencia): El sucesor de H.264, que ofrece relaciones de compresión aún mejores a costa de una mayor complejidad computacional.
* VP8, VP9, AV1: Los códecs libres de regalías desarrollados por Google (VP8, VP9) y una alianza de código abierto (AV1). AV1 se considera un fuerte competidor de H.265.
descompresión: El proceso de descompresión esencialmente invierte estos pasos. Implica decodificar los datos codificados por la entropía, realizar transformaciones inversas de DCT o wavelet, aplicar la compensación de movimiento (si corresponde) y reconstruir los marcos.
En resumen, la compresión de video es un proceso multifacético que implica una combinación de técnicas de compresión espacial y temporal, junto con la codificación de entropía. Los algoritmos exactos empleados dependen en gran medida del códec elegido, que dicta las compensaciones específicas entre la eficiencia de compresión, la calidad y las demandas computacionales.