¿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
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.
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.
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.
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.
- 1. ¿Cómo funciona la compresión de archivos Zip?
- 2. ¿Cómo funciona el método de compresión LZMA?
- 3. Detectar MPEG4/H264 I-Frame (IDR) en la secuencia RTP
- 4. Compresión dinámica no funciona IIS 7.5
- 5. ¿Por qué la compresión gzip con Internet Explorer no funciona?
- 6. mysqldump compresión
- 7. ¿Cómo implementar la compresión GZip en ASP.NET?
- 8. ¿Cómo funciona la compresión de imagen sin pérdida de velocidad de página de Google?
- 9. Compresión IIS
- 10. ¿Admite iOS la compresión TLS?
- 11. ¿por qué la compresión estática/dinámica de IIS7 solo funciona para 200 respuestas?
- 12. ¿Cómo especificar la tasa de bits para la compresión JPEG?
- 13. compresión componente
- 14. iPhone, JSon y Compresión
- 15. La compresión falla al usar cremallera iónica
- 16. compresión TDD y JPEG
- 17. compresión Zlib en MSP430
- 18. ¿Detecta la tasa de compresión JPG?
- 19. Node.js: compresión Gzip?
- 20. WCF REST Compresión
- 21. Cómo automatizar la compresión de archivos JavaScript con YUI Compressor?
- 22. ¿Cómo sabes si la compresión HTTP está funcionando?
- 23. ¿Cómo puedo hacer que funcione la compresión gzip en IIS7?
- 24. Cómo desactivar la compresión de jar en Maven
- 25. Cómo habilitar la compresión GZip en el servidor XAMPP
- 26. ¿Cómo puedo omitir la compresión de un archivo PNG?
- 27. ¿Cómo deshabilitar la compresión en el lado del servidor git?
- 28. Compresión HTML y SEO?
- 29. SignalR wth compresión gzip
- 30. Desea habilitar la compresión GZip en Weblogic
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. –
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