En muchas secuencias de video, varias de las escenas son fijas o varían muy poco; esto se denomina redundancia temporal.
Cuando sólo se mueven los labios del actor, casi los únicos píxeles que se van a modificar de una imagen a la otra son los de la boca; por lo tanto, es suficiente describir el cambio de una imagen a la otra. Esta es la principal diferencia entre MPEG (Moving Pictures Experts Group, Grupo de expertos en imágenes en movimiento) y M-JPEG. Sin embargo, este método tendrá mucho menos impacto en una escena de acción.
El grupo MPEG se creó en 1988 con el fin de desarrollar estándares internacionales de compresión, descompresión, procesamiento y codificación de imágenes animadas y datos de audio.
Existen varios estándares MPEG:
El estándar MPEG-1 representa cada imagen como un conjunto de bloques de 16 X 16. Permite obtener una resolución de:
El MPEG-1 permite alcanzar velocidades de alrededor de 1,2 Mbps (que se pueden leer en un CD-ROM).
El MPEG-1 permite codificar videos a través de varias técnicas:
Estas imágenes se codifican usando únicamente la codificación JPEG, sin tener en cuenta las imágenes que las rodean. Dichas imágenes son necesarias en un video MPEG porque aseguran la cohesión de imágenes (ya que las otras imágenes se describen en relación con las imágenes que las rodean); son especialmente útiles para el flujo de video que se puede cambiar a gusto en cualquier momento (televisión) y son esenciales en el caso de cualquier error de recepción. Por lo tanto, en un video MPEG hay una o dos de estas por segundo.
Estas imágenes se describen por su diferencia en relación con la imagen precedente. El codificador busca las diferencias de la imagen comparada con la imagen precedente y define bloques, llamados macrobloques (16 x 16 píxeles), que se superponen a la imagen precedente.
El algoritmo compara ambas imágenes bloque por bloque y, partiendo de un umbral de cierta diferencia, considera que el área de la imagen precedente sea diferente de la imagen en progreso y le aplica una compresión JPEG.
Lo que determina la velocidad de la codificación es la búsqueda de macrobloques, porque cuantos más bloques "buenos" busque el algoritmo, más tiempo pierde.
A diferencia de los marcos I (comprimidos directamente), los marcos P requieren que la imagen precedente siempre esté en la memoria.
Al igual que los marcos P, los marcos B se basan en diferencias con respecto a la imagen de referencia, excepto que en el caso de los marcos B, esta diferencia se puede llevar a cabo ya sea en la imagen precedente (como en el caso de los marcos P) o en la siguiente, lo que permite una mejor compresión. Pero en este caso se genera un retraso (porque es necesario conocer la imagen siguiente) y se requiere mantener tres imágenes en la memoria (la precedente, la actual y la siguiente).
Estas imágenes ofrecen una calidad de resolución muy baja pero permiten una descompresión muy veloz, que resulta particularmente útil en visualizaciones de avance rápido, ya que la decodificación "normal" usa demasiados recursos del procesador.
En la práctica, para optimizar la codificación MPEG, las secuencias de imágenes se codifican según una sucesión de imágenes I, B y P (las D, como se menciona arriba, se reservan para visualizaciones de avance rápido), cuyo orden se determina de forma experimental. La secuencia conocida como GOP (Group Of Pictures, grupo de imágenes) es la siguiente:
IBBPBBPBBPBBI