Inter frame prediction es una técnica que explota la correlación temporal entre frames consecutivos para poder codificar con el mínimo número de bits posibles. Para codificar, lo que se hace es predecir un frame a partir de frames anteriores y/o futuros, aplicando sobre éstos un movimiento dictado por unos vectores de movimiento. Esta técnica ya se utilizaba en anteriores estándares como el MPEG-2.
H.264/MPEG-4 AVC es un estándar de codificación de vídeo que sustituirá el MPEG-2. De hecho, el H.264 es una parte de MPEG4 (parte 10) que solamente se ocupa de la codificación de vídeo. Es un estándar creado colaborativamente por ITU-T VCEG y ISO/IEC organizaciones.
Las mejoras más importantes de esta técnica en H.264 respecto a anteriores estándares son:
Particiones de bloques de luminancia de 16×16 (MPEG2), 16×8, 8×16, 8×8. En este último caso nos permitirá dividirlo en nuevos bloques de 4×8, 8×4, 4×4.
El frame a codificar se divide en bloques de igual medida a la de algunos de los mostrados en la figura. La predicción de cada bloque serán bloques de la misma medida que las imágenes de referencia, aplicando un pequeño desplazamiento.
Los píxeles a las half-pixel posiciones se obtienen aplicando un filtro de longitud 6.
H=[1 -5 20 20 -5 1]
Por ejemplo:
b=A - 5B + 20C+20D+E
Los píxeles a las quarter-pixel posiciones se obtienen mediante interpolación bilineal.
Mientras el MPEG-2 permitía una resolución de ½ píxel, el inter-frame nos permite una resolución de hasta ¼. Ello quiere decir que podremos buscar un bloque del frame a codificar en otros frames de referencia, o podremos interpolar píxeles que no existen para encontrar bloques que se adapten aún mejor al bloque actual. Si el vector de movimiento es un número entero de unidades de muestras, significa que podemos encontrar en las imágenes de referencia el bloque compensado en movimiento. Si el vector de movimiento no es un número entero, la predicción la obtendremos a partir de píxeles interpolados aplicando un filtro interpolador en la dirección horizontal y vertical.
Múltiples referencias para poder hacer una estimación del movimiento. Permite buscar la mejor referencia en 2 los posibles buffers (List 0 para imágenes pretéritas, List 1 para imágenes futuras) que contienen hasta 16 frames cada uno. La predicción del bloque se haría mediante una suma ponderada de los bloques de las imágenes de referencia. Permite mejorar la calidad de la imagen en escenas donde hay cambios de plano, zooms o cuando se descubren nuevos objetos de secuencia.
Los modelos Skip Mode y Direct Mode se usan con mucha frecuencia, sobre todo con las B-pictures, y permiten reducir significativamente los bits a codificar. Nos referiremos a estos modos cuando codificamos un bloque sin enviar error residual ni vectores de movimiento. El codificador solo señalará que se trata de un Skip macroblock. El descodificador deducirá el vector de movimiento del bloque codificado con Direct/Skip Mode a partir de otros macroblocks ya descodificados.
Hay dos maneras de deducir el movimiento:
En la figura, los bloques de color rosa corresponden a bloques codificados con Direct/Skip Mode. Como podemos observar se utilizan con mucha frecuencia, sobre todo con las B-pictures.
Escribe un comentario o lo que quieras sobre Inter frame (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)