Ruch JPEG — Motion JPEG

Motion JPEG ( M-JPEG lub MJPEG ) to format kompresji wideo, w którym każda klatka wideo lub pole z przeplotem cyfrowej sekwencji wideo jest kompresowane oddzielnie jako obraz JPEG .

Pierwotnie opracowany dla multimedialnych aplikacji PC, Motion JPEG cieszy się szeroką obsługą klienta: większość głównych przeglądarek internetowych i odtwarzaczy zapewnia natywną obsługę, a dla pozostałych dostępne są wtyczki. Oprogramowanie i urządzenia korzystające ze standardu M-JPEG obejmują przeglądarki internetowe, odtwarzacze multimedialne, konsole do gier, aparaty cyfrowe, kamery IP, kamery internetowe, serwery strumieniowe, kamery wideo i nieliniowe edytory wideo.

Historia

Motion JPEG został pierwotnie opracowany dla multimedialnych aplikacji komputerowych.

MJPEG został po raz pierwszy użyty przez QuickTime Player w połowie lat 90-tych.

Projekt

M-JPEG to schemat kompresji tylko wewnątrzramkowej (w porównaniu z bardziej intensywną obliczeniowo techniką przewidywania międzyramkowego ). Podczas gdy współczesne formaty wideo międzyramkowego, takie jak MPEG1 , MPEG2 i H.264/MPEG-4 AVC , osiągają rzeczywiste współczynniki kompresji 1:50 lub lepsze, brak przewidywania międzyramkowego w M-JPEG ogranicza jego wydajność do 1:20 lub mniej , w zależności od tolerancji na artefakty przestrzenne w skompresowanych danych wyjściowych. Ponieważ ramki są kompresowane niezależnie od siebie, M-JPEG nakłada na urządzenia sprzętowe mniejsze wymagania w zakresie przetwarzania i pamięci.

Jako czysto wewnątrzramkowy schemat kompresji, jakość obrazu M-JPEG jest bezpośrednio funkcją statycznej (przestrzennej) złożoności każdej klatki wideo. Klatki z dużymi, gładkimi przejściami lub jednostajnymi powierzchniami dobrze się kompresują i są bardziej skłonne do zachowania oryginalnych szczegółów z kilkoma widocznymi artefaktami kompresji. Ramki przedstawiające złożone tekstury, drobne krzywe i linie (takie jak pisanie na gazecie) mogą wykazywać artefakty dyskretnej transformacji kosinusowej (DCT), takie jak dzwonienie , rozmazywanie i makroblokowanie . Wideo skompresowane w formacie M-JPEG jest również niewrażliwe na złożoność ruchu, tj. zmienność w czasie. Nie przeszkadzają w tym wysoce losowe ruchy (takie jak turbulencje na powierzchni wody w dużym wodospadzie) ani brak ruchu (tak jak statyczny krajobraz kręcony ze statywu), które są dwiema przeciwstawnymi skrajnościami powszechnie używanymi do testowania wideo międzyklatkowego formaty.

W przypadku formatów QuickTime firma Apple zdefiniowała dwa rodzaje kodowania: MJPEG-A i MJPEG-B. MJPEG-B nie zachowuje już poprawnych plików wymiany JPEG, dlatego nie jest możliwe przeniesienie klatki do pliku JPEG bez nieznacznej modyfikacji nagłówków.

JPEG jest nieefektywny i wykorzystuje więcej bitów do zapewnienia podobnej jakości w porównaniu do bardziej nowoczesnych formatów (takich jak JPEG 2000 i H.264/MPEG-4 AVC ). Od czasu opracowania oryginalnego standardu JPEG na początku lat 90. ulepszenia technologiczne zostały wprowadzone nie tylko do formatu JPEG, ale także do możliwych schematów kompresji międzyramkowej .

funkcje

Motion JPEG jest prosty w implementacji, ponieważ wykorzystuje dojrzały standard kompresji (JPEG) z dobrze rozwiniętymi bibliotekami i jest metodą kompresji wewnątrzramkowej.

Toleruje szybko zmieniający się ruch w strumieniu wideo, podczas gdy schematy kompresji wykorzystujące kompresję międzyramkową mogą często doświadczać niedopuszczalnej utraty jakości, gdy zawartość wideo zmienia się znacząco między każdą ramką.

Wymagany jest minimalny sprzęt, ponieważ nie wymaga dużych obliczeń.

Normalizacja

W przeciwieństwie do formatów wideo określonych w międzynarodowych standardach, takich jak MPEG-2 i formatu określonego w standardzie kodowania obrazów nieruchomych JPEG, nie istnieje dokument określający pojedynczy dokładny format, który byłby powszechnie uznawany za kompletną specyfikację „Motion JPEG” dla używać we wszystkich kontekstach. Rodzi to obawy dotyczące zgodności plików wyjściowych pochodzących od różnych producentów. Jednak każdy konkretny format pliku ma zwykle pewien standard kodowania M-JPEG. Na przykład Microsoft dokumentuje swój standardowy format przechowywania M-JPEG w plikach AVI, Apple dokumentuje sposób przechowywania M-JPEG w plikach QuickTime, RFC 2435 opisuje, jak M-JPEG jest implementowany w strumieniu RTP , a M-JPEG CodecID jest planowane dla formatu pliku Matroska .

Aplikacje

M-JPEG jest obecnie wykorzystywana przez urządzenia przechwytywania wideo, takich jak aparaty cyfrowe , kamery IP oraz kamer , jak również nieliniowych edycji wideo systemów. Jest natywnie obsługiwany przez QuickTime Player, konsolę PlayStation i przeglądarki internetowe, takie jak Safari , Google Chrome , Mozilla Firefox i Microsoft Edge .

Edytowanie wideo

M-JPEG jest często używany w nieliniowych systemach edycji wideo . Nowoczesne procesory do komputerów stacjonarnych są wystarczająco wydajne, aby obsługiwać wideo w wysokiej rozdzielczości, więc nie jest wymagany żaden specjalny sprzęt, a z kolei oferują natywny dostęp losowy do dowolnej klatki.

Konsole gier

PlayStation konsola zintegrowana M-JPEG jak sprzęt do dekompresji w grze FMV sekwencji, natomiast przenośne PlayStation przenośna konsola gier wideo może odtwarzać M-JPEG z Memory Stick PRO Duo pod .avi rozbudowy o rozdzielczości 480 × 272. Oba mogą nagrywać klipy w formacie M-JPEG za pomocą kamery Go!Cam .

Nintendo „s Wii konsola do gier, a także V-Tech InnoTAB, może odgrywać M-JPEG, filmów zapisanych na karcie SD przy użyciu jego zdjęciem kanał . SanDisk Sansa e200 i Zen V odtwarzacze audio, cyfrowe odgrywają krótkie filmy M-JPEG. Ostatnie aktualizacje oprogramowania dla konsoli Nintendo 3DS mogą teraz nagrywać i odtwarzać pliki zakodowane w formacie M-JPEG „3D-AVI”, który jest tym samym formatem, który jest używany w serii Fujifilm FinePix Real 3D , z karty SD w rozdzielczości 320×240, o ile czas trwania filmu wynosi 10 minut lub mniej.

Aparaty cyfrowe

Przed niedawnym wzrostem kodowania MPEG-4 w urządzeniach konsumenckich, progresywna forma skanowania M-JPEG była szeroko stosowana w trybach „filmowych” cyfrowych aparatów fotograficznych, umożliwiając kodowanie i odtwarzanie wideo za pomocą zintegrowanego sprzętu do kompresji JPEG przy użyciu tylko modyfikacja oprogramowania. Uzyskana jakość jest wciąż gorsza w porównaniu z MPEG o podobnej wielkości, szczególnie, że dźwięk (jeśli jest uwzględniony) był nieskompresowany PCM i nagrany z niską częstotliwością próbkowania lub ADPCM o niskim skompresowaniu i niskim zapotrzebowaniu procesora .

Aby zachować kontrolę nad rozmiarami plików i szybkościami przesyłania, rozmiary i szybkości klatek wraz z częstotliwościami próbkowania dźwięku są utrzymywane na stosunkowo niskim poziomie, przy bardzo wysokim poziomie kompresji dla każdej pojedynczej klatki. Rozdzielczości 160×120 lub 320×240 są powszechnymi rozmiarami, zwykle przy 10, 12 lub 15 klatkach na sekundę, z jakością obrazu odpowiadającą ustawieniu JPEG na „50” z dźwiękiem mono ADPCM próbkowanym z częstotliwością ~8 kHz. Skutkuje to bardzo prostym, ale użytecznym wyjściem wideo przy podobnym koszcie przechowywania jak MPEG (szybkość wideo ~120 kB/s, dźwięk ~8 kB/s – lub około 1 Mbit/s przy rozdzielczości 320×240), ale przy minimalnym przetwarzanie kosztów ogólnych. Ten film jest zwykle przechowywany w popularnych plikach kontenerów Windows AVI lub Apple QuickTime MOV, które można zazwyczaj oglądać natywnie (lub po zainstalowaniu prostego kodeka ) w większości wersji odpowiedniego systemu operacyjnego.

AMV Video , powszechne na tanie „MP4” graczy, jest zmodyfikowaną wersją M-JPEG.

Oprócz przenośnych odtwarzaczy (które są głównie „odbiorcami” wideo), wiele aparatów cyfrowych obsługujących wideo używa M-JPEG do przechwytywania wideo. Na przykład:

  • W sierpniu 2008 roku firma Nikon zaprezentowała model D90 , pierwszą cyfrową lustrzankę do nagrywania filmów. Używany format to M-JPEG. D90 wykorzystuje trzy różne formaty motion JPEG: 320×216 pikseli, 640×424 pikseli i 1280×720 pikseli.
  • W czerwcu 2009 roku Pentax ogłosił, że nadchodzący aparat K-7 będzie wykorzystywał M-JPEG w rozdzielczościach 640×416, 1280×720 i 1536×1024. Szybkość transmisji danych dla utworzonych plików M-JPEG może wynosić do 74 Mbit/s.
  • W sierpniu 2016 roku firma Canon ogłosiła, że aparat 5D Mark IV będzie nagrywał wideo 4K w formacie M-JPEG, z szybkością transmisji danych około 500 Mbit/s.

Wiele kamer sieciowych zapewnia strumienie M-JPEG, z którymi mogą łączyć się klienci sieci. Przeglądarki oparte na Mozilli i Webkit mają natywną obsługę przeglądania tych strumieni M-JPEG.

Niektóre kamery sieciowe udostępniają własne interfejsy M-JPEG w ramach standardowego zestawu funkcji. W przypadku kamer, które nie zapewniają tej funkcji natywnie, można użyć serwera do transkodowania obrazów z kamer na strumień M-JPEG, a następnie udostępnienia tego strumienia innym klientom sieci.

Odtwarzacze multimedialne

Apple ogłosił 1 września 2010 roku, że ich najnowsza wersja Apple TV będzie obsługiwać M-JPEG do 35 Mbit/s, 1280 na 720 pikseli, 30 klatek na sekundę, dźwięk w formacie μlaw, dźwięk stereo PCM w formacie .avi.

Niektóre odtwarzacze multimedialne, takie jak Netgear NeoTV 550, nie obsługują odtwarzania M-JPEG.

Obraz na żywo

Strumieniowanie HTTP rozdziela każdy obraz na indywidualne odpowiedzi HTTP dotyczące określonego znacznika. Strumieniowanie HTTP tworzy pakiety sekwencji obrazów JPEG, które mogą być odbierane przez klientów, takich jak QuickTime lub VLC .

W odpowiedzi na żądanie GET dotyczące pliku lub strumienia MJPEG serwer przesyła strumieniowo sekwencję ramek JPEG przez HTTP . Specjalny typ zawartości typu MIME multipart/x-mixed-replace;boundary=<nazwa-granicy> informuje klienta, że ​​oczekuje kilku części (ramek) jako odpowiedzi oddzielonych przez <nazwa-granicy>. Ta nazwa granicy jest wyraźnie ujawniana w samej deklaracji typu MIME. Połączenie TCP nie jest zamykane tak długo, jak klient chce odbierać nowe ramki, a serwer chce dostarczać nowe ramki. Dwie podstawowe implementacje serwera strumieniowego M-JPEG to cambozola i MJPG-Streamer . Bardziej niezawodny serwer ffmpeg zapewnia również obsługę przesyłania strumieniowego M-JPEG.

Natywna obsługa przeglądarek internetowych obejmuje: Safari , Google Chrome , Microsoft Edge i Firefox . Inne przeglądarki, takie jak Internet Explorer, mogą wyświetlać strumienie M-JPEG za pomocą zewnętrznych wtyczek. Cambozola to aplet, który może wyświetlać strumienie M-JPEG w przeglądarkach obsługujących język Java. M-JPEG jest również natywnie obsługiwany przez PlayStation i QuickTime.

Następcy

Udoskonalenia technologiczne można znaleźć w projektach H.263v2 Annex I i MPEG-4 Part 2 , które wykorzystują przewidywanie w dziedzinie częstotliwości wartości współczynników transformacji, oraz w H.264/MPEG-4 AVC , które wykorzystują przewidywanie przestrzenne i transformację adaptacyjną techniki wielkości bloków. Istnieje również bardziej wyrafinowane kodowanie entropijne niż to, co było praktyczne, gdy opracowano pierwszy projekt JPEG. Wszystkie te nowe rozwiązania sprawiają, że M-JPEG jest nieefektywnym mechanizmem nagrywania.

Zobacz też

Bibliografia

Linki zewnętrzne