Respuesta corta: falta de cuantización.
Respuesta larga: lea a continuación.
Antes de proporcionar la respuesta a su pregunta exacta, echemos un vistazo al diagrama de bloques del codificador y decodificador del reconocido estándar de compresión de video H.264.
- ¿Cómo se realiza la detección en el procesamiento de imágenes?
- ¿Qué hace que un gran motor de 'recomendación de personas'?
- Traté de hacer este problema: 1984 - Pesadilla de navegación, pero obtengo TLE. ¿Cómo puedo mejorar mi algoritmo? ¿Cuál es la explicación de esta tarea?
- ¿Dónde puedo encontrar una biblioteca de estructura de datos de gráficos dirigida, implementada en Javascript?
- Cómo aprender qué algoritmo usar en un conjunto de problemas en particular
Si miramos los dos diagramas de bloques con cuidado, podemos notar que todas las operaciones en la parte del codificador, excepto QUANTIZATION, tienen una operación inversa correspondiente en el decodificador.
La cuantización redondea los valores de píxeles al nivel predefinido más cercano. Consideremos un ejemplo de juguete aquí:
Considere el conjunto de números {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Considere dos niveles de cuantización: 1 y 10
Entonces la salida sería la siguiente: {1, 1, 1, 1, 1, 10, 10, 10, 10, 10}
Si tenemos que realizar la compresión del flujo de salida, es fácil comprimirlo si lo denotamos como PASOS DE 1 Y PASOS DE 10. Esta representación requiere menos número de bits en comparación con la compresión de la secuencia original. Por lo tanto, al aplicar la operación de cuantización, podemos reducir el número de bits necesarios para representar el flujo de números. Entonces, la cuantización es precisamente el punto donde ocurre la compresión.
Esta misma lógica también se aplica durante la compresión de video. Los coeficientes DCT de los bloques se cuantifican para que obtengamos un flujo continuo de números antes de la compresión.
Sin embargo, la cuantización es un proceso irreversible. Perdemos los números originales una vez que los cuantificamos. No hay forma de recuperarlos. Este es precisamente el punto donde se produce la pérdida de información.
Ahora, volviendo a la pregunta, cualquier algoritmo que realice una compresión sin pérdida de videos no puede (y no lo hará) cuantificar flujos de bits. Pero como se mencionó anteriormente, la compresión eficiente se logra solo cuando cuantificamos los coeficientes DCT. Esta es la razón por la cual los algoritmos de compresión sin pérdida no funcionan bien en archivos de video.