2009-02-27 18 views
18

¿Alguien puede explicar de una manera simple y clara cómo funciona MPEG4 para comprimir datos? Estoy más interesado en el video. Sé que hay diferentes estándares o partes de él. Solo estoy buscando el método de compresión general predominante, si hay uno con MPEG4.¿Cómo funciona la compresión MPEG4?

Respuesta

35

MPEG-4 es un estándar enorme, y emplea muchas técnicas para lograr las altas tasas de compresión que es capaz de hacer.

En general, la compresión de video se refiere a tirar tanta información como sea posible mientras que tiene un efecto mínimo en la experiencia de visualización para el usuario final. Por ejemplo, el uso de YUV submuestreado en lugar de RGB reduce el tamaño de video a la mitad directamente. Esto es posible ya que el ojo humano es menos sensible al color que al brillo. En YUV, el valor Y es el brillo, y los valores U y V representan el color. Por lo tanto, puede descartar parte de la información de color que reduce el tamaño del archivo, sin que el espectador note ninguna diferencia.

Después de eso, la mayoría de las técnicas de compresión aprovechan 2 redundancias en particular. El primero es la redundancia temporal y el segundo es la redundancia espacial.

La redundancia temporal indica que los fotogramas sucesivos en una secuencia de video son muy similares. Normalmente, un video sería del orden de 20-30 fotogramas por segundo, y nada cambia en 1/30 de segundo. Tome cualquier DVD y deténgalo, muévalo en un cuadro y observe lo similares que son las 2 imágenes. Por lo tanto, en lugar de codificar cada fotograma independientemente, MPEG-4 (y otros estándares de compresión) solo codifica la diferencia entre fotogramas sucesivos (usando motion estimation para encontrar la diferencia entre fotogramas)

La redundancia espacial aprovecha el hecho de que, en general, el color que se extiende a través de las imágenes tiende a ser de baja frecuencia. Con esto quiero decir que los píxeles vecinos tienden a tener colores similares. Por ejemplo, en una imagen tuya con un jumper rojo, todos los píxeles que representan tu jumper tendrán un color muy similar. Es posible utilizar el DCT para transformar los valores de píxel en el espacio de frecuencia, donde puede descartarse parte de la información de alta frecuencia. Luego, cuando se realiza el DCT inverso (durante la decodificación), la imagen ahora no tiene la información de alta frecuencia desechada.

Para ver los efectos de descartar información de alta frecuencia, abra MS paint y dibuje una serie de líneas negras superpuestas horizontales y verticales. Guarde la imagen como JPEG (que también usa DCT para la compresión). Ahora amplíe el patrón, observe cómo los bordes de las líneas ya no son tan nítidos y están un poco borrosos. Esto se debe a que parte de la información de alta frecuencia (la transición de negro a blanco) se descartó durante la compresión.Read this for an explanation with nice pictures

Para obtener más información, this book es bastante bueno, aunque un poco pesado en las matemáticas.

+3

Los bordes agudos no son de alta frecuencia, porque no se repiten. En realidad, son una suma de todas las frecuencias a la vez, por lo que la compresión DCT y algunos modificadores de imagen agregarán ruido alrededor de las líneas en lugar de difuminarlas. –

+0

Se debe agregar que DCT (Transformación de Coseno Discreto) no se realiza en la imagen como un todo. La imagen se divide en bloques de 8x8 o 16x16 píxeles, y la DCT se realiza en cada bloque. Esto se debe a que el rendimiento de DCT disminuye rápidamente para imágenes más grandes. Como MPEG debe transmitirse, la decodificación debe ser muy rápida. – rcz

1

MPEG4 usa una variedad de técnicas para comprimir video.

Si aún no has mirado en wikipedia, esta sería una buena starting point.

También hay este artículo del IEEE que explica estas técnicas con más detalle.

4

Como cualquier otro códec de video popular, MPEG4 usa una variación de discrete cosine transform y una variedad de técnicas de compensación de movimiento (que puede pensar como predicción de movimiento si eso ayuda) que reducen la cantidad de datos necesarios para fotogramas posteriores. This page tiene una visión general de lo que hace MPEG4 simple.

No es totalmente diferente a las técnicas utilizadas por JPEG.

1

Los bordes agudos ciertamente contienen altas frecuencias. La reducción o eliminación de altas frecuencias reduce la nitidez de los bordes. Los detalles finos, incluidos los bordes filosos, se eliminan con la remoción de alta frecuencia, lo que permite eliminar dos objetos pequeños con altas frecuencias, y luego solo uno.

Cuestiones relacionadas