MJPEG

MJPEG (ka M-JPEG, Motion JPEG – 'liikuv JPEG') on multimeedia vormingute alamhulk, mille puhul iga videokaader on pakitud eraldi JPEG-pildina (mitte aga eraldi failina). Seetõttu on neil kõigil garanteeritud sama kvaliteet, mis omakorda sõltub tihenduse tasemest. Neid vorminguid kasutatakse sageli mobiilsetes seadmetes, näiteks digitaalfotoaparaatides. Võrgukaamera suudab jäädvustada ja tihendada näiteks 30 sellist pilti sekundis ja teha neist katkematu piltide jada. Kui kaadrid vahetuvad kiirusel 16 kaadrit sekundis (fps – "frames per second") või rohkem, siis näeb vaatleja digitaalvideot.
Kodeerimine.
MJPEG kasutab kadudega kaadrisisest tihendust ("intra-frame compression"), mis põhineb diskreetsel koosinusteisendusel ("discrete cosine transform"). See matemaatiline operatsioon muudab iga videoallika kaadri/välja ruumivallast ("spatial domain") sagedusvalda ("frequency domain" ehk "transform domain"). See on pidev mudel, mis põhineb psühhovisuaalsel süsteemil ja jätab välja kõrgsagedusliku informatsiooni ehk teravad üleminekud erksuses ning värvitoonis. Sagedusvallas informatsiooni vähendamise protsessi nimetatakse kvantimiseks. Kvantimine on meetod, mis optimaalselt vähendab suure ulatusega arvude skaalat (kus iga arv esineb vaid ühe korra). Sagedusvalda kasutatakse, sest see sisaldab kõrgsageduslikke koefitsiente, mis panustavad vähem pildile üldiselt kui muud koefitsiendid, kuid sellised väiksed väärtused on hea pakkimisvõimalusega. Kvanditud koefitsiendid on järjestatud ja kadudeta pakitud väljundi bitivoogu. Peaaegu kõik MJPEG realisatsioonid lubavad kasutaja kontrolli kompressiooni suhte üle (samuti ka muud valitavad parameetrid), lubades kasutajal vahetada pildi kvaliteet väiksema failimahu vastu. Manusrakendustes (nagu näiteks MiniDV, mis kasutab sarnast DCT kompressiooni skeemi) on parameetrid eelnevalt valitud ja kinnistatud.
MJPEG on vaid kaadrisisese tihendusega skeem (võrreldes arvutuslikult intensiivsema kaadritevahelise prognoosi tehnikaga). Tänapäevased kaadritevahelised videovormingud, näiteks MPEG-1, MPEG-2 ja H.264/MPEG-4 AVC, saavutavad tihendusteguri 1:50 (faili mahtu vähendatakse 50 korda) või rohkem. M-JPEG-s videokaadrid ei mõjuta üksteist; see piirab selle efektiivsust ja tekkinud failid on mahukamad. Kuna kaadrid on pakitud üksteisest eraldi, nõuab pakkimine ja lahtipakkimine vähem protsessori tööaega.
Kaadreid, mis on suurte sujuvate üleminekutega või monotoonse pinnaga, on lihtne tihendada ning on suurem tõenäosus, et nende algsed detailid jäävad väiksemate nähtavate pakkimisjälgedega. Kaadrites, millel on kujutatud keerulisi struktuure, peeneid kurve ja jooni (näiteks kiri ajalehel) kipuvad tekkima makroplokid ja ähmastumised. Samuti ei riku M-JPEG pakitud video kvaliteeti erinevad liikumiskeerukused ehk muutused, mis toimuvad aja jooksul. Pilti ei tee halvemaks kiired liikumised (näiteks suure kose pindmise vee tormilisus) ning teda ei paranda ka muutuste puudumine (muutumatu maastik, mida on pildistatud statiivilt).
QuickTime'i vormingutele on Apple defineerinud kahte tüüpi kodeeringud: MJPEG-A ja MJPEG-B. MJPEG-B ei sisalda enam kehtivaid JPEG-vahetusfaile ("interchange files") ja seega ei ole võimalik panna kaadrit JPEG-failivormingut muutmata päist ("header") ehk täiendavat infot iga andmeploki alguses.
Rakendused.
Tarkvara ja seadmed, mis kasutavad MJPEG-standardit:
Videohõive ja töötlus.
MJPEG-d kasutatakse tihti mittelineaarses montaažis. Tänapäeva arvutid suudavad töödelda kõrglahutusega ("High Definition") videoid ja arvutid ei vaja selle vormingu jaoks eraldi riistvara. See vorming lubab ka suvapöördust ükskõik millisele kaadrile. MJPEG-d toetatakse väga laialdaselt videohõive ja -töötluse seadmetes.
Digitaalsed kaamerad.
Enne MPEG-4 kodeeringu esiletõusu tarbekaupade seas leidis MJPEG laialdast kasutust digitaalsete kaamerate "video" režiimis. See võimaldas pärast muudatuse tegemist tarkvaras videoid kodeerida ja taasesitada. Tulemusena saadud kvaliteet on sarnase suurusega MPEG-ga võrreldes madalam, eriti kuna heliks (kui lisada) oli tihti tihendamata, madala diskreetimissagedusega impulss-koodmodulatsioon ("pulse code modulation") või madala tihenduse ja protsessori kasutusega adaptiiv-diferentsiaalne impulss-koodmodulatsioon ("adaptive differential pulse code modulation").
Failimahu ja edastuskiiruse kontrollimiseks hoiti kaadrite suurused ja sagedused koos heli diskreetimissagedustega küllalt väiksed ja iga kaadrit tihendati võimalikult palju. Resolutsioonid 160×120 või 320×240 on levinud suurused – tüüpiliselt 10, 12, või 15 kaadrit sekundis, kus pildikvaliteet on võrdväärne JPEG omaga, mille seadistus "50" ja mono adaptiiv-diferentsiaalne impulss-koodmodulatsiooniga heli diskreeditud ~8 kHz juures.
Selle tulemuseks on väga elementaarne, kuid siiski kasutamiskõlblik videoväljund, mille salvestushind on lähedane MPEG omale (video ~120 kB/s , audio ~8 kB/s – või ~1 Mbit/s 320×240 resolutsiooniga), kuid üldkulud (operatsioonisüsteemi ja rakendusprogramme toetavate utiliitide tööks kuluv aeg) minimaalsed. Seda videot hoitakse tüüpiliselt populaarsetes Windows AVI või Apple QuickTime MOV konteinerfailides, mida saab kohe (või pärast kodekite allalaadimist) vaadata enamikus operatsioonisüsteemide versioonides.
AMV (Anime Music Video) videovorming, mis on levinud odavates MP4-pleierites, on kohandatud MJPEG versioon.
Paljud video salvestamise võimalusega kaamerad kasutavad MJPEG-vormingut. 2008. aasta augustis avalikustas Nikon mudeli D90. See oli esimene digipeegelkaamera (DSLR – Digital Single Lense Reflex), mis salvestas videot. D90 kasutab kolme MJPEG-vormingut: 320×216, 640×424 ja 1280×720 pikslit. 2009. aasta juunis teatas Pentax, et varsti ilmuv K7-kaamera kasutab MJPEG-d resolutsioonidega 640×416, 1280×720, ja 1536×1024. Tekkinud MJPEG-failide andmeedastuskiirus võib olla kuni 74 Mbit/s.
HDTV meediapleierid.
Apple teatas 1. septembril 2010, et nende kõige uuem Apple TV versioon toetab MJPEG-d kuni 35 Mbit/s, 1280×720 pikslit, 30 fps, audio on salvestatud ulav-laiendiga ja PMC stereo audio avi-failivormingus.
Teatud meediapleierid, näiteks Netgear NeroTV 550, ei toeta MJPEG taasesitust.
IP-kaamerad.
Paljud võrguvõimelised kaamerad võimaldavad MJPEG-voogusid, millega võrgu kliendid saavad ühenduse luua. Mozillal ja Webkitil põhinevad veebibrauserid toetavad nende MJPEG-voogude vaatamist.
Mõned kaamerad on varustatud oma MJPEG liidestega. Kui aga see puudub, saab kasutada serverit, mis koodimuunduriga teeb kaamera pildid MJPEG-vooks ja saadab seda edasi teistele võrgu klientidele.
Digitaalne video.
Kuna digitaalne video (Digital Video) on uuem standard, siis kasutab see MJPEG-st erinevat lähenemist diskreetsele koosinusteisenduse algoritmile. Seetõttu on ka kvaliteet märgatavalt parem. Sarnaselt MJPEG-ga kasutab ka DV kaadritevahelist tihendust.
Tarkvara.
MJPEG-d toetavad veebibrauserid on Safari, Google Chrome ja Firefox. Teised brauserid, näiteks Internet Explorer, saavad MJPEG-vooge edastada väliste pluginate abil. Cambozola on aplett, mis suudab näidata MJPEG striime Java-põhistes veebibrauserites. MJPEG-d kasutavad ka Sony PlayStation ja QuickTime.