MJPEG

MJPEG (Motion JPEG) je  metoda komprese videa snímek po snímku , jejíž hlavní funkcí je komprese každého jednotlivého snímku video streamu pomocí algoritmu komprese obrazu JPEG .

Při kompresi metodou MJPG se mezisnímkový rozdíl nebere v úvahu.

Aplikace

MJPEG je široce používán v následujících oblastech:

Kódování

Motion JPEG využívá ztrátovou intra-frame kompresi založenou na diskrétní kosinové transformaci (DCT). Tato matematická operace transformuje každý snímek/pole obrazu z prostorové domény do frekvenční domény. Psycho-vizuální model, založený na charakteristikách lidského vnímání obrazů, obvykle využívá hrubé kvantování vysokofrekvenční složky obrazu a přesnější kvantování nízkofrekvenční složky, čímž se snižuje přesnost přenosu ostré přechody v jasech a barevných odstínech. Kvantované bezeztrátové DCT koeficienty jsou sbaleny do výstupního bitového toku pomocí buď Huffmanových kódů nebo aritmetického kódování . Téměř všechny implementace softwaru MJPEG umožňují uživatelům řídit míru komprese (stejně jako další parametry) a měnit kvalitu obrazu a velikost souboru. U hardwarových řešení jsou parametry kódování obvykle předem vybrány a pevně stanoveny.

Záhlaví každého zakódovaného MJPEG obvykle odpovídá standardu JPEG, nicméně některé nekonzistence se standardem jsou přijatelné. Takže například nemusí mít značku DHT, která definuje tabulky pro Huffmanovo dekódování. V tomto případě by měly být v procesu dekódování použity tabulky uvedené v sekci K.3 standardu JPEG (CCITT Rec. T.81).

MJPEG používá pouze schéma komprese uvnitř snímku (ve srovnání se složitějšími schématy výpočtu s kompresí mezi snímky). Zatímco moderní video formáty s mezisnímkovou kompresí, jako je MPEG1, MPEG2, H.264/MPEG-4 AVC a podobně, dosahují průměrného kompresního poměru 1:50 nebo více, nedostatek mezisnímkové komprese MJPEG obecně neumožňuje získat kompresní poměry. větší než 1:20, v závislosti na přípustnosti prostorového zkreslení v dekódovaných snímcích videosekvence. Vzhledem k tomu, že snímky jsou komprimovány nezávisle na sobě, MJPEG vyžaduje méně výpočetních zdrojů a RAM ve fázi kódování. Dekódování MJPEG však může být dražší než použití mezisnímkové komprese, protože za prvé zahrnuje kompletní dekódování každého makrobloku obrazu do MJPEG, zatímco při použití mezisnímkových kompresních schémat se některé makrobloky označené jako „přeskočit“ nedekódují, ale je převzato z předchozích snímků. Za druhé, doba provádění Huffmanova dekódování a inverzních DCT procedur závisí na informační saturaci dekódovaného obrazového makrobloku, která se při absenci mezisnímkové komprese ukáže být mnohem delší než v případě její přítomnosti (v prvním případě , je dekódován celý obrázek, ve druhém rozdílový obrázek, tedy nikoli obrázek, ale pouze jeho rozdíl od toho, který předpověděly předchozí snímky).

Se schématem komprese uvnitř snímku v MJPEG závisí kvalita obrazu přímo na statické (prostorové) složitosti každého snímku videa. Snímky s velkými plynulými přechody nebo monotónními plochami jsou dobře komprimované, ale při příliš vysokých kompresních poměrech obsahují kromě původních detailů i viditelné kompresní artefakty v podobě bloků 8x8 pixelů, mírně odlišných jasem a barevným tónem. Jejich vzhled je spojen s hrubou kvantizací nízkofrekvenčních DCT koeficientů. Snímky se složitými texturami, tenkými zakřivenými liniemi kromě blokujících artefaktů obsahují také artefakty, které se projevují jako šum kolem tenkých linek a ostré hranice (tzv. Gibbsův efekt) spojené s hrubou kvantizací vysokofrekvenčních DCT koeficientů.

Pro formáty QuickTime definoval Apple dva typy kódování: MJPEG-A a MJPEG-B. MJPEG-B nezachovává strukturu souborů JPEG ve video souboru, a proto není možné extrahovat snímek do souboru JPEG bez rekonstrukce hlavičky JPEG.

Výhody a nevýhody

Hlavní výhodou komprese videa Motion JPEG je její snadná implementace, díky čemuž je MJPEG vhodný pro implementaci v zařízeních s omezenými výpočetními zdroji.

Extrémně rychlá nelineární úprava videa  – pokud je jakýkoli snímek zcela (beze změn) odebrán z jednoho zdroje MJPEG, lze jej zapsat do výstupního proudu MJPEG tak, jak je, bez dekódování-komprese.

Při vysokém bitrate produkuje MJPEG kvalitní statické snímky, což umožňuje jeho použití např. ve video monitorovacích systémech (tam je nutné např. zjistit číslo projíždějícího auta nebo detailně prozkoumat tvář zločince). Při absenci mezisnímkové komprese však dosažení daného datového toku vyžaduje použití větší komprese snímek po snímku než v případě MPEG , což vede ke znatelným kompresním artefaktům .

Nevýhody MJPEG jsou nižší kompresní poměr ve srovnání s metodami komprese streamování (například MPEG-4 ) a artefakty, které se objevují při vysokých kompresních poměrech.

Viz také

Odkazy