Bewegungs-JPEG - Motion JPEG

Motion JPEG ( M-JPEG oder MJPEG ) ist ein Videokomprimierungsformat, bei dem jedes Videobild oder Zeilensprungfeld einer digitalen Videosequenz separat als JPEG- Bild komprimiert wird .

Motion JPEG wurde ursprünglich für Multimedia-PC-Anwendungen entwickelt und genießt eine breite Client-Unterstützung: Die meisten gängigen Webbrowser und Player bieten native Unterstützung, und für den Rest sind Plug-Ins verfügbar. Software und Geräte, die den M-JPEG-Standard verwenden, umfassen Webbrowser, Mediaplayer, Spielkonsolen, Digitalkameras, IP-Kameras, Webcams, Streaming-Server, Videokameras und nichtlineare Videoeditoren.

Geschichte

Motion JPEG wurde ursprünglich für Multimedia-PC-Anwendungen entwickelt.

MJPEG wurde erstmals Mitte der 1990er Jahre vom QuickTime Player verwendet .

Design

M-JPEG ist ein Nur-Intraframe-Kompressionsschema (im Vergleich zu der rechenintensiveren Technik der Interframe-Vorhersage ). Während moderne Interframe-Videoformate wie MPEG1 , MPEG2 und H.264/MPEG-4 AVC reale Komprimierungsraten von 1:50 oder besser erreichen, beschränkt M-JPEG die fehlende Interframe-Vorhersage seine Effizienz auf 1:20 oder niedriger , abhängig von der Toleranz gegenüber räumlichen Artefakten in der komprimierten Ausgabe. Da Frames unabhängig voneinander komprimiert werden, stellt M-JPEG geringere Verarbeitungs- und Speicheranforderungen an Hardwaregeräte.

Als reines Intraframe-Kompressionsschema ist die Bildqualität von M-JPEG direkt eine Funktion der statischen (räumlichen) Komplexität jedes Videoframes. Frames mit großen glatten Übergängen oder monotonen Oberflächen lassen sich gut komprimieren und behalten eher ihre ursprünglichen Details mit wenigen sichtbaren Kompressionsartefakten bei. Frames mit komplexen Texturen, feinen Kurven und Linien (wie das Schreiben auf einer Zeitung) sind anfällig für diskrete Cosinustransformations- (DCT)-Artefakte wie Ringing , Verschmieren und Macroblocking . M-JPEG-komprimiertes Video ist auch unempfindlich gegenüber Bewegungskomplexität, dh Variation über die Zeit. Es wird weder durch stark zufällige Bewegungen (wie die Turbulenzen an der Wasseroberfläche in einem großen Wasserfall) behindert noch durch das Fehlen von Bewegung (wie statische Landschaftsaufnahmen mit einem Stativ) unterstützt, die zwei gegensätzliche Extreme sind, die häufig zum Testen von Interframe-Videos verwendet werden Formate.

Für QuickTime- Formate hat Apple zwei Codierungsarten definiert: MJPEG-A und MJPEG-B. MJPEG-B behält keine gültigen JPEG-Interchange-Dateien mehr darin, daher ist es nicht möglich, einen Frame in eine JPEG-Datei zu übernehmen, ohne die Header geringfügig zu ändern.

JPEG ist ineffizient und verwendet mehr Bits, um eine ähnliche Qualität zu liefern, im Vergleich zu moderneren Formaten (wie JPEG 2000 und H.264/MPEG-4 AVC ). Seit der Entwicklung des ursprünglichen JPEG-Standards in den frühen 1990er Jahren wurden nicht nur das JPEG-Format, sondern auch die möglichen Interframe- Kompressionsschemata technologisch verbessert .

Eigenschaften

Motion JPEG ist einfach zu implementieren, da es einen ausgereiften Komprimierungsstandard (JPEG) mit gut entwickelten Bibliotheken verwendet und eine Intraframe-Komprimierungsmethode ist.

Es toleriert sich schnell ändernde Bewegungen im Videostream, wohingegen Komprimierungsschemata mit Interframe-Komprimierung oft einen inakzeptablen Qualitätsverlust erfahren können, wenn sich der Videoinhalt zwischen den einzelnen Frames erheblich ändert.

Es ist nur minimale Hardware erforderlich, da sie nicht rechenintensiv ist.

Standardisierung

Im Gegensatz zu den in internationalen Standards wie MPEG-2 spezifizierten Videoformaten und dem Format, das im JPEG-Standbild-Codierungsstandard spezifiziert ist, gibt es kein Dokument, das ein einzelnes exaktes Format definiert, das allgemein als vollständige Spezifikation von „Motion JPEG“ für in allen Zusammenhängen verwenden. Dies wirft Kompatibilitätsbedenken hinsichtlich der Dateiausgaben verschiedener Hersteller auf. Jedes bestimmte Dateiformat hat jedoch normalerweise einen Standard für die Codierung von M-JPEG. Microsoft dokumentiert beispielsweise ihr Standardformat zum Speichern von M-JPEG in AVI-Dateien, Apple dokumentiert, wie M-JPEG in QuickTime-Dateien gespeichert wird, RFC 2435 beschreibt, wie M-JPEG in einem RTP-Stream implementiert wird , und eine M-JPEG-CodecID ist für das Matroska- Dateiformat geplant.

Anwendungen

M-JPEG wird jetzt von Videoaufnahmegeräten wie Digitalkameras , IP-Kameras und Webcams sowie von nichtlinearen Videobearbeitungssystemen verwendet. Es wird nativ vom QuickTime Player, der PlayStation- Konsole und Webbrowsern wie Safari , Google Chrome , Mozilla Firefox und Microsoft Edge unterstützt .

Videobearbeitung

M-JPEG wird häufig in nichtlinearen Videobearbeitungssystemen verwendet . Moderne Desktop-CPUs sind leistungsstark genug, um mit High-Definition-Video zu arbeiten, sodass keine spezielle Hardware erforderlich ist, und sie bieten wiederum nativen Direktzugriff auf jeden Frame.

Spielekonsole

Die PlayStation -Spielkonsole integrierte M-JPEG-ähnliche Dekompressionshardware für FMV- Sequenzen im Spiel , während die tragbare PlayStation Portable -Spielekonsole M-JPEG vom Memory Stick Pro Duo unter der .avi-Erweiterung mit einer Auflösung von 480×272 abspielen kann . Beide können mit ihrer Go!Cam- Kamera Clips in M-JPEG aufnehmen .

Nintendo ‚s Wii Spielkonsole, sowie V-Tech InnoTab kann M-JPEG-kodierte Videos auf spielen SD-Karte mit seinem Fotokanal . Die SanDisk Sansa e200 und die digitalen Audioplayer Zen V spielen kurze M-JPEG-Videos ab. Jüngste Firmware-Updates für den Nintendo 3DS können jetzt "3D-AVI" M-JPEG-codierte Dateien, die das gleiche Format haben, das in der Fujifilm FinePix Real 3D-Serie verwendet wird , von einer SD-Karte in einer Auflösung von 320 × 240 aufnehmen und abspielen , solange die Videodauer beträgt 10 Minuten oder weniger.

Digitalkameras

Vor dem jüngsten Anstieg der MPEG-4- Codierung in Consumer-Geräten wurde eine Progressive-Scan- Form von M-JPEG in den „Film“-Modi digitaler Standbildkameras weit verbreitet eingesetzt und ermöglichte die Videocodierung und -wiedergabe durch die integrierte JPEG-Kompressionshardware mit nur Software-Änderung. Die resultierende Qualität ist im Vergleich zu einem ähnlich großen MPEG immer noch unterlegen, insbesondere da der Ton (sofern enthalten) unkomprimiertes PCM war und mit einer niedrigen Abtastrate oder mit niedriger Komprimierung und niedrigem Prozessorbedarf ADPCM aufgezeichnet wurde .

Um die Dateigrößen und Übertragungsraten unter Kontrolle zu halten, werden die Bildgrößen und -raten zusammen mit den Tonabtastraten relativ niedrig gehalten, wobei für jeden einzelnen Bild ein sehr hoher Kompressionsgrad verwendet wird. Auflösungen von 160×120 oder 320×240 sind gängige Größen, typischerweise bei 10, 12 oder 15 Bildern pro Sekunde, wobei die Bildqualität einer JPEG-Einstellung von „50“ mit Mono-ADPCM-Ton mit ~8 kHz entspricht. Dies führt zu einer sehr einfachen, aber brauchbaren Videoausgabe bei ähnlichen Speicherkosten wie MPEG (~120 kB/s Videorate, ~8 kB/s Audio – oder ca. 1 Mbit/s bei 320×240 Auflösung), aber mit minimalem Verarbeitungsaufwand. Dieses Video wird normalerweise in den beliebten Windows AVI- oder Apple QuickTime MOV-Containerdateien gespeichert, die in den meisten Versionen des jeweiligen Betriebssystems im Allgemeinen nativ (oder nach der Installation eines einfachen Codecs ) angezeigt werden können.

Das auf billigen "MP4"-Playern übliche AMV-Videoformat ist eine modifizierte Version von M-JPEG.

Zusätzlich zu tragbaren Playern (die hauptsächlich "Konsumenten" des Videos sind) verwenden viele videofähige Digitalkameras M-JPEG für die Videoaufnahme. Beispielsweise:

  • Im August 2008 kündigte Nikon die D90 an , die erste D-SLR, die Videos aufzeichnet. Das verwendete Format ist M-JPEG. Die D90 verwendet drei verschiedene Motion-JPEG-Formate: 320×216 Pixel, 640×424 Pixel und 1280×720 Pixel.
  • Im Juni 2009 kündigte Pentax an, dass die damals kommende K-7- Kamera M-JPEG in den Auflösungen 640×416, 1280×720 und 1536×1024 verwenden würde. Die Datenrate für die erstellten M-JPEG-Dateien kann bis zu 74 Mbit/s betragen.
  • Im August 2016 gab Canon bekannt, dass die 5D Mark IV- Kamera 4K-Videos in M-JPEG mit einer Datenrate von etwa 500 Mbit/s aufzeichnen wird .

Viele netzwerkfähige Kameras bieten M-JPEG-Streams, mit denen sich Netzwerk-Clients verbinden können. Mozilla- und Webkit- basierte Browser bieten native Unterstützung für die Anzeige dieser M-JPEG-Streams.

Einige netzwerkfähige Kameras bieten als Teil des normalen Funktionsumfangs ihre eigenen M-JPEG-Schnittstellen. Bei Kameras, die diese Funktion nicht nativ bieten, kann ein Server verwendet werden, um die Kamerabilder in einen M-JPEG-Stream zu transkodieren und diesen Stream dann anderen Netzwerk-Clients bereitzustellen.

Mediaplayer

Apple gab am 1. September 2010 bekannt, dass seine neueste Version des Apple TV M-JPEG bis zu 35 Mbit/s, 1280 x 720 Pixel, 30 Bilder pro Sekunde, Audio im μlaw-Format, PCM-Stereo-Audio im .avi-Dateiformat unterstützen wird.

Bestimmte Mediaplayer wie der Netgear NeoTV 550 unterstützen die Wiedergabe von M-JPEG nicht.

Video Streaming

HTTP-Streaming trennt jedes Bild in einzelne HTTP-Antworten auf einen bestimmten Marker. HTTP-Streaming erstellt Pakete einer Sequenz von JPEG-Bildern, die von Clients wie QuickTime oder VLC empfangen werden können .

Als Antwort auf eine GET-Anforderung für eine MJPEG-Datei oder einen MJPEG-Stream streamt der Server die Sequenz von JPEG-Frames über HTTP . Ein spezieller Mime-Type- Inhaltstyp multipart/x-mixed-replace;boundary=<boundary-name> informiert den Client, mehrere Teile (Frames) als durch <boundary-name> begrenzte Antwort zu erwarten. Dieser Grenzname wird ausdrücklich in der MIME-Typ-Deklaration selbst offengelegt. Solange der Client neue Frames empfangen möchte und der Server neue Frames bereitstellen möchte, wird die TCP-Verbindung nicht geschlossen. Zwei grundlegende Implementierungen eines M-JPEG-Streaming-Servers sind cambozola und MJPG-Streamer . Der robustere ffmpeg-Server bietet auch M-JPEG-Streaming-Unterstützung.

Die Unterstützung für native Webbrowser umfasst: Safari , Google Chrome , Microsoft Edge und Firefox . Andere Browser wie der Internet Explorer können mit Hilfe externer Plugins M-JPEG-Streams anzeigen. Cambozola ist ein Applet, das M-JPEG-Streams in Java-fähigen Browsern anzeigen kann. M-JPEG wird auch von PlayStation und QuickTime nativ unterstützt.

Nachfolger

Technologische Verbesserungen finden sich in den Designs von H.263v2 Annex I und MPEG-4 Part 2 , die die Frequenzbereichsvorhersage von Transformationskoeffizientenwerten verwenden, und in H.264/MPEG-4 AVC , die räumliche Vorhersage und adaptive Transformation verwenden Blockgrößentechniken. Es gibt auch ausgefeiltere Entropie-Codierung, als es bei der Entwicklung des ersten JPEG-Designs praktisch war. All diese neuen Entwicklungen machen M-JPEG zu einem ineffizienten Aufnahmemechanismus.

Siehe auch

Verweise

Externe Links