Estimación y compensación para codificación de vídeo H.263
Transformada de coseno discreta (DCT) La DCT transforma un valor de píxel (o valor de cuadro residual) en una serie de "coeficientes de dominio de frecuencia". Esto es como convertir una señal del dominio del tiempo al dominio de la frecuencia mediante una Transformada Rápida de Fourier (FFT). DCT opera en bloques bidimensionales de píxeles (en lugar de señales unidimensionales) y es particularmente bueno para comprimir la energía del bloque en una serie de coeficientes. Esto significa que, con unos pocos coeficientes DCT, podemos reconstruir una copia del bloque de píxeles original.
Cuantización Para un bloque de píxeles típico, la mayoría de los coeficientes obtenidos por DCT son cercanos a 0. El módulo cuantificador reduce la precisión de cada coeficiente de modo que los valores cercanos a 0 se establecen en 0 y solo quedan algunos valores distintos de cero. En la práctica, dividimos el valor del coeficiente por un factor entero y truncamos el resultado. Un punto importante es que "desperdiciamos" cierta información en el proceso de cuantificación.
Codificación de entropía Los codificadores de entropía (como los codificadores Huffman) utilizan códigos binarios más cortos para representar valores que ocurren con frecuencia y códigos binarios más largos para representar valores que ocurren con poca frecuencia. La codificación de entropía en H.263 se basa en esta técnica y se utiliza para comprimir coeficientes DCT cuantificados. El resultado es una secuencia binaria de longitud variable. Estos códigos se combinan con información de sincronización y control (como los vectores de movimiento necesarios para reconstruir cuadros de referencia con compensación de movimiento) y se introducen en el tren codificado H.263 codificado. El almacén de cuadros debe almacenar el cuadro actual para que pueda usarse como cuadro de referencia al codificar el siguiente cuadro. En lugar de simplemente almacenar la memoria actual, almacenamos el factor de cuantificación inverso, la transformación inversa después de la operación DCT inversa y la información del bloque de referencia agregada a la compensación de movimiento en el área de memoria para reconstruir el cuadro. Esto asegura que el contenido de la memoria de cuadros en el lado del codificador sea idéntico al contenido de la memoria del decodificador. Cuando se codifica el siguiente cuadro, la estimación de movimiento utiliza el contenido del área de almacenamiento de cuadros para determinar el área que mejor coincide para la compensación de movimiento.