MJPEG (Motion JPEG) es un método de compresión de video cuadro por cuadro , cuya característica principal es la compresión de cada cuadro individual del flujo de video utilizando el algoritmo de compresión de imágenes JPEG .
Al comprimir con el método MJPG, no se tiene en cuenta la diferencia entre fotogramas.
MJPEG se aplica ampliamente en las siguientes áreas:
Motion JPEG utiliza compresión intracuadro con pérdida basada en la transformada de coseno discreta (DCT). Esta operación matemática transforma cada cuadro/campo de la imagen del dominio espacial al dominio de la frecuencia. El modelo psicovisual, basado en las características de la percepción humana de las imágenes, suele utilizar una cuantificación basta del componente de alta frecuencia de la imagen y una cuantificación más precisa del componente de baja frecuencia, lo que reduce la precisión de la transmisión de la imagen. transiciones nítidas en brillo y tonos de color. Los coeficientes DCT sin pérdidas cuantificados se empaquetan en el flujo de bits de salida utilizando códigos Huffman o codificación aritmética . Casi todas las implementaciones de software MJPEG permiten a los usuarios controlar la cantidad de compresión (así como otros parámetros) y compensar la calidad de la imagen y el tamaño del archivo. Con las soluciones de hardware, los parámetros de codificación suelen estar preseleccionados y fijados.
El encabezado de cada MJPEG codificado generalmente se ajusta al estándar JPEG; sin embargo, se aceptan algunas inconsistencias con el estándar. Entonces, por ejemplo, es posible que no tenga un marcador DHT que defina tablas para la decodificación de Huffman. En este caso, las tablas proporcionadas en la sección K.3 del estándar JPEG (CCITT Rec. T.81) deben usarse en el proceso de decodificación.
MJPEG utiliza solo un esquema de compresión intra-frame (en comparación con esquemas de cálculo más complejos con compresión entre fotogramas). Mientras que los formatos de video modernos con compresión entre cuadros como MPEG1, MPEG2, H.264/MPEG-4 AVC y similares logran una relación de compresión promedio de 1:50 o más, la falta de compresión entre cuadros de MJPEG generalmente no le permite obtener relaciones de compresión. mayor a 1:20, dependiendo de la admisibilidad de distorsión espacial en los cuadros decodificados de la secuencia de video. Dado que los fotogramas se comprimen independientemente unos de otros, MJPEG requiere menos recursos informáticos y RAM en la etapa de codificación. Sin embargo, la decodificación MJPEG puede ser más costosa que el uso de la compresión entre fotogramas porque, en primer lugar, implica la decodificación completa de cada macrobloque de imagen en MJPEG, mientras que cuando se utilizan esquemas de compresión entre fotogramas, algunos de los macrobloques marcados como "saltar" no se decodifican, pero está tomado de fotogramas anteriores. En segundo lugar, el tiempo de ejecución de los procedimientos de decodificación Huffman y DCT inversa depende de la saturación de información del macrobloque de la imagen decodificada, que, en ausencia de compresión interframe, resulta mucho mayor que en presencia de ella (en el primer caso , se decodifica la imagen completa, en la segunda, la imagen diferencia, es decir, no la imagen, sino sólo su diferencia con respecto a la predicha por los fotogramas anteriores).
Con el esquema de compresión intracuadro en MJPEG, la calidad de la imagen depende directamente de la complejidad estática (espacial) de cada cuadro de video. Los fotogramas con grandes transiciones suaves o áreas monótonas están bien comprimidos, pero a tasas de compresión demasiado altas, contienen, además de los detalles originales, artefactos de compresión visibles en forma de bloques de 8x8 píxeles, ligeramente diferentes en brillo y tono de color. Su apariencia está relacionada con la cuantificación aproximada de los coeficientes DCT de baja frecuencia. Los fotogramas con texturas complejas, líneas curvas finas, además de artefactos de bloqueo, también contienen artefactos que aparecen como ruido alrededor de líneas finas y límites nítidos (el llamado efecto Gibbs) asociados con la cuantificación aproximada de los coeficientes DCT de alta frecuencia.
Para los formatos QuickTime, Apple ha definido dos tipos de codificación: MJPEG-A y MJPEG-B. MJPEG-B no conserva la estructura de los archivos JPEG dentro de un archivo de video, por lo tanto, no es posible extraer un cuadro en un archivo JPEG sin reconstruir el encabezado JPEG.
La principal ventaja de la compresión de video Motion JPEG es su facilidad de implementación, lo que hace que MJPEG sea adecuado para la implementación en dispositivos con recursos informáticos limitados.
Edición de video no lineal extremadamente rápida : si cualquier cuadro se toma por completo (sin cambios) de una fuente MJPEG, se puede escribir en el flujo MJPEG de salida tal cual, sin decodificación ni compresión.
A una alta tasa de bits, MJPEG produce imágenes fijas de alta calidad, lo que permite su uso, por ejemplo, en sistemas de videovigilancia (allí es necesario, por ejemplo, averiguar el número de un automóvil que pasa o examinar en detalle el rostro de un criminal). Sin embargo, en ausencia de compresión entre cuadros, lograr una tasa de bits dada requiere el uso de más compresión cuadro por cuadro que en el caso de MPEG , lo que conduce a artefactos de compresión notables .
Las desventajas de MJPEG son una relación de compresión más baja en comparación con los métodos de compresión de transmisión (por ejemplo, MPEG-4 ) y los artefactos que aparecen con relaciones de compresión altas.
Compresión de video | |
---|---|
Recomendaciones UIT-T | |
Normas ISO / IEC |
|
estándares SMPTE | |
Códecs MPEG-4 |
|
sin pérdidas |
|
Cine digital | |
Otros códecs | |
ver también |