Articulo de referencia

Motion JPEG

Motion JPEG ( M-JPEG o MJPEG ) es un formato de compresión de vídeo en el que cada fotograma o campo entrelazado de una secuencia de vídeo digital se comprime por separado como ...

Motion JPEG ( M-JPEG o MJPEG ) es un formato de compresión de vídeo en el que cada fotograma o campo entrelazado de una secuencia de vídeo digital se comprime por separado como una imagen JPEG .

Originalmente desarrollado para aplicaciones multimedia de PC, Motion JPEG cuenta con una amplia compatibilidad entre usuarios: la mayoría de los navegadores web y reproductores ofrecen soporte nativo, y existen complementos para el resto. Entre el software y los dispositivos que utilizan el estándar M-JPEG se incluyen reproductores multimedia, consolas de videojuegos, cámaras digitales, cámaras IP, webcams, servidores de streaming, videocámaras y editores de vídeo no lineal.

Historia

Motion JPEG se desarrolló originalmente para aplicaciones multimedia de PC.

Las primeras implementaciones de MJPEG se realizaban generalmente en hardware. C-Cube fue uno de los primeros defensores, y su códec JPEG CL550 se utilizó en varias implementaciones de hardware. Se anunció [ 1 ] que el NeXTdimension de NeXT incluiría un CL550 integrado para implementar MJPEG. Sin embargo, posteriormente se descartó y no se incluyó en el producto final. [ 2 ]

Apple proporcionó una implementación de software de MJPEG en su reproductor QuickTime a mediados de la década de 1990. [ 3 ]

Diseño

M-JPEG es un esquema de compresión intraframe únicamente (en comparación con la técnica de predicción interframe , que requiere mayor capacidad de cálculo ). Mientras que los formatos de vídeo interframe modernos, como MPEG1 , MPEG2 y H.264/MPEG-4 AVC , alcanzan relaciones de compresión reales de 1:50 o mejores, la falta de predicción interframe de M-JPEG limita su eficiencia a 1:20 o menos, dependiendo de la tolerancia a los artefactos espaciales en la salida comprimida. Dado que los fotogramas se comprimen independientemente unos de otros, M-JPEG impone menores requisitos de procesamiento y memoria a los dispositivos de hardware. [ 4 ]

Como esquema de compresión puramente intraframe, la calidad de imagen de M-JPEG es directamente función de la complejidad estática (espacial) de cada fotograma de vídeo. Los fotogramas con transiciones suaves o superficies monocromáticas se comprimen bien y es más probable que conserven sus detalles originales con pocos artefactos de compresión visibles. Los fotogramas que muestran texturas complejas, curvas finas y líneas (como la escritura en un periódico) son propensos a mostrar artefactos de la transformada discreta del coseno (DCT), como el efecto ringing , el emborronamiento y el macrobloqueo . El vídeo comprimido con M-JPEG también es insensible a la complejidad del movimiento, es decir, a la variación en el tiempo. No se ve perjudicado por movimientos altamente aleatorios (como la turbulencia de la superficie del agua en una gran cascada), ni favorecido por la ausencia de movimiento (como un paisaje estático grabado con trípode), que son dos extremos opuestos que se utilizan habitualmente para probar formatos de vídeo interframe.

Para los formatos QuickTime , Apple ha definido dos tipos de codificación: MJPEG-A y MJPEG-B. MJPEG-B ya no conserva archivos de intercambio JPEG válidos, por lo que no es posible convertir un fotograma a un archivo JPEG sin modificar ligeramente los encabezados.

JPEG es ineficiente, ya que utiliza más bits para ofrecer una calidad similar, en comparación con formatos más modernos (como JPEG 2000 y H.264/MPEG-4 AVC ). Desde el desarrollo del estándar JPEG original a principios de la década de 1990, se han realizado mejoras tecnológicas no solo en el formato JPEG, sino también en los esquemas de compresión entre fotogramas posibles. [ 5 ]

Características

Motion JPEG es sencillo de implementar porque utiliza un estándar de compresión consolidado (JPEG) con bibliotecas bien desarrolladas, y es un método de compresión intraframe.

Tolera cambios de movimiento rápidos en el flujo de vídeo, mientras que los esquemas de compresión que utilizan compresión entre fotogramas a menudo pueden experimentar una pérdida de calidad inaceptable cuando el contenido del vídeo cambia significativamente entre cada fotograma.

Se requiere un hardware mínimo, ya que no exige mucha capacidad de procesamiento.

Normalización

A diferencia de los formatos de vídeo especificados en estándares internacionales como MPEG-2 y el formato especificado en el estándar de codificación de imágenes fijas JPEG, no existe un documento que defina un único formato exacto universalmente reconocido como una especificación completa de "Motion JPEG" para su uso en todos los contextos. Esto plantea problemas de compatibilidad con las salidas de archivos de diferentes fabricantes. Sin embargo, cada formato de archivo particular suele tener algún estándar sobre cómo se codifica M-JPEG. Por ejemplo, Microsoft documenta su formato estándar para almacenar M-JPEG en archivos AVI, [ 6 ] Apple documenta cómo se almacena M-JPEG en archivos QuickTime, RFC 2435 describe cómo se implementa M-JPEG en una transmisión RTP , y se está planificando un CodecID de M-JPEG para el formato de archivo Matroska . [ 7 ] 

Aplicaciones

M-JPEG se utiliza actualmente en dispositivos de captura de vídeo como cámaras digitales , cámaras IP y webcams , así como en sistemas de edición de vídeo no lineal . Es compatible de forma nativa con QuickTime Player, la consola PlayStation y navegadores web como Safari , Google Chrome , Mozilla Firefox y Microsoft Edge .

Edición de vídeo

M-JPEG se usa frecuentemente en sistemas de edición de video no lineal . Las CPU de escritorio modernas son lo suficientemente potentes como para trabajar con video de alta definición, por lo que no se requiere hardware especial, y a su vez ofrecen acceso aleatorio nativo a cualquier fotograma.

consolas de videojuegos

La consola PlayStation integra hardware de descompresión tipo M-JPEG para secuencias FMV dentro del juego , mientras que la consola portátil PlayStation Portable puede reproducir M-JPEG desde la Memory Stick Pro Duo con la extensión .avi y una resolución de 480 × 272. Ambas pueden grabar clips en M-JPEG con su cámara Go!Cam .

La consola Wii de Nintendo , así como la InnoTab de VTech , pueden reproducir vídeos codificados en M-JPEG desde una tarjeta SD mediante su canal de fotos . Los reproductores de audio digital SanDisk Sansa e200 y Zen V reproducen vídeos cortos en formato M-JPEG. Las recientes actualizaciones de firmware de la Nintendo 3DS permiten grabar y reproducir archivos "3D-AVI" codificados en M-JPEG, el mismo formato utilizado en la serie Fujifilm FinePix Real 3D , desde una tarjeta SD con una resolución de 320 × 240, siempre que la duración del vídeo sea de 10 minutos o menos.

Cámaras digitales

Antes del auge de la codificación MPEG-4 en dispositivos de consumo, una versión de escaneo progresivo de M-JPEG se utilizaba ampliamente en los modos de vídeo de las cámaras digitales, lo que permitía la codificación y reproducción de vídeo mediante el hardware de compresión JPEG integrado con solo una modificación de software. La calidad resultante sigue siendo inferior a la de un MPEG de tamaño similar, sobre todo porque el sonido (cuando se incluía) era PCM sin comprimir y se grababa a una baja frecuencia de muestreo o en formato ADPCM de baja compresión y baja demanda de procesador .

Para mantener bajo control el tamaño de los archivos y las tasas de transferencia, el tamaño y la velocidad de los fotogramas, junto con las tasas de muestreo de audio, se mantienen relativamente bajos con niveles de compresión muy altos para cada fotograma individual. Las resoluciones de 160×120 o 320×240 son tamaños comunes, generalmente a 10, 12 o 15 fotogramas por segundo, con una calidad de imagen equivalente a una configuración JPEG de "50" con sonido ADPCM mono muestreado a ~8  kHz. Esto da como resultado una salida de video muy básica, pero funcional, con un costo de almacenamiento similar al de MPEG (tasa de video de ~120 kB/s, audio de  ~8 kB/s, o aproximadamente 1 Mbit/s a una resolución de 320×240), pero con sobrecargas de procesamiento mínimas. Este video generalmente se almacena en archivos contenedores AVI de Microsoft o QuickTime Movie de Apple . Estos archivos se pueden ver de forma nativa en la mayoría de los sistemas operativos, sin embargo, a veces es necesario instalar un códec adicional .  

El formato de vídeo AMV , común en los reproductores "MP4" baratos, es una versión modificada de M-JPEG.

Además de los reproductores portátiles (que son principalmente "consumidores" del vídeo), muchas cámaras digitales con capacidad de vídeo utilizan M-JPEG para la captura de vídeo. Por ejemplo:

  • En agosto de 2008, Nikon anunció la D90 , la primera cámara réflex digital capaz de grabar vídeo. El formato utilizado es M-JPEG. La D90 utiliza tres formatos diferentes de Motion JPEG: 320 × 216 píxeles, 640 × 424 píxeles y 1280 × 720 píxeles.
  • En junio de 2009, Pentax anunció que la entonces próxima cámara K-7 utilizaría M-JPEG en resoluciones de 640×416, 1280×720 y 1536×1024. La velocidad de datos para los archivos M-JPEG creados puede alcanzar hasta 74  Mbit/s.
  • En agosto de 2016, Canon anunció que la cámara 5D Mark IV grabaría vídeo 4K en M-JPEG, [ 8 ] con una tasa de datos de aproximadamente 500 Mbit/s. [ 9 ]
Un vídeo grabado con una Canon 5D Mark IV en DCI 4K utilizando Motion JPEG.

Muchas cámaras con conexión de red proporcionan transmisiones M-JPEG a las que los clientes de red pueden conectarse. Los navegadores basados ​​en Mozilla y Webkit ofrecen soporte nativo para visualizar estas transmisiones M-JPEG.

Algunas cámaras con conexión de red incluyen interfaces M-JPEG integradas. Para las cámaras que no ofrecen esta función de forma nativa, se puede usar un servidor para transcodificar las imágenes a un flujo M-JPEG y luego proporcionarlo a otros clientes de la red.

Reproductores multimedia

Apple anunció el 1 de septiembre de 2010 que su versión más reciente del Apple TV sería compatible con M-JPEG de hasta 35  Mbit/s, 1280×720 píxeles, 30 fotogramas por segundo, audio en μlaw y audio estéreo PCM en .aviformato de archivo.

Algunos reproductores multimedia, como el Netgear NeoTV 550, no son compatibles con la reproducción de M-JPEG.

Transmisión de vídeo

La transmisión HTTP separa cada imagen en respuestas HTTP individuales en un marcador específico. La transmisión HTTP crea paquetes de una secuencia de imágenes JPEG que pueden ser recibidas por clientes como QuickTime o VLC .

En respuesta a una solicitud GET de un archivo o flujo MJPEG, el servidor transmite la secuencia de fotogramas JPEG a través de HTTP . Un tipo de contenido MIME especial, `multipart/x-mixed-replace;boundary=<boundary-name>` , informa al cliente que espere varias partes (fotogramas) como respuesta, delimitadas por `<boundary-name>`. Este nombre de límite se divulga expresamente dentro de la propia declaración del tipo MIME. La conexión TCP no se cierra mientras el cliente desee recibir nuevos fotogramas y el servidor desee proporcionarlos. Dos implementaciones básicas de un servidor de transmisión M-JPEG son Cambozola y MJPG-Streamer . El servidor ffmpeg, más robusto, también ofrece soporte para la transmisión M-JPEG.

La compatibilidad nativa con navegadores web incluye: Safari , Google Chrome , Microsoft Edge [ 10 ] y Firefox [ 11 ] . Otros navegadores, como Internet Explorer, pueden mostrar transmisiones M-JPEG con la ayuda de complementos externos. Cambozola es un applet que puede mostrar transmisiones M-JPEG en navegadores compatibles con Java. PlayStation y QuickTime también admiten M-JPEG de forma nativa. Su uso más común es en cámaras de seguridad basadas en IP [ 12 ] .

Sucesores

Las mejoras tecnológicas se aprecian en los diseños de H.263v2 Anexo I y MPEG-4 Parte 2 , que utilizan la predicción en el dominio de la frecuencia de los valores de los coeficientes de transformación, y en H.264/MPEG-4 AVC , que emplea la predicción espacial y técnicas de tamaño de bloque de transformación adaptativa. Además, se emplean técnicas de codificación de entropía más sofisticadas que las que resultaban prácticas cuando se desarrolló el primer diseño de JPEG. Todos estos avances hacen que M-JPEG sea un mecanismo de grabación ineficiente.

Véase también

Referencias

  1. "Nuevas máquinas de NeXT (Noticias de informática de la UM, Volumen 5, enero de 1990)" . 1990.
  2. "El compendio de NeXTdimension (compilado de junio a agosto de 1993)" .
  3. "Guía del desarrollador: QuickTime para Macintosh versión 2.5" (PDF) . Archivado del original (PDF) el 16 de julio de 2022.
  4. Poynton, Charles (2003). Vídeo digital y HDTV: algoritmos e interfaces . Morgan Kaufmann. págs. 119–120 . ISBN  9781558607927.
  5. Richardson, Iain EG (2003). Compresión de vídeo H.264 y MPEG-4: Codificación de vídeo para multimedia de próxima generación . John Wiley & Sons. págs. 95–96 . ISBN  9780470848371.
  6. "BMPDIB.TXT" . www.fileformat.info .
  7. "Asignaciones de códecs" .
  8. "Detalles del comunicado de prensa" . www.usa.canon.com . Archivado del original el 16 de septiembre de 2016. Consultado el 6 de noviembre de 2016 .
  9. "Especificaciones y características - Canon EOS 5D Mark IV - Canon UK" . www.canon.co.uk . 19 de septiembre de 2016. Consultado el 6 de noviembre de 2016 .
  10. "Guía para desarrolladores: Vídeo - Desarrollo de Microsoft Edge" . developer.microsoft.com . Consultado el 25 de agosto de 2016 .
  11. Las secuencias M-JPEG enviadas a versiones anteriores de Mozilla Firefox debían ir dentro de un documento HTTP para evitar el parpadeo. Véase el error 625012 (corregido en 2014).
  12. Martins, Claudemir (25 de abril de 2017). "Cómo funcionan los códecs de CCTV (códec de CCTV explicado fácilmente) por Learn CCTV" . Learn CCTV.com . Consultado el 22 de octubre de 2023 .
  • Formato Apple QuickTime, incluyendo especificaciones para MJPEG-A y MJPEG-B, pág. 96