MJPEG

MJPEG (Motion JPEG) on kehys kuvalta -pakkausmenetelmä  , jonka pääominaisuus on videovirran jokaisen yksittäisen kehyksen pakkaaminen JPEG -kuvanpakkausalgoritmilla .

Kun pakkaat MJPG-menetelmällä, kehysten välistä eroa ei oteta huomioon.

Sovellukset

MJPEG:tä käytetään laajasti seuraavilla alueilla:

Koodaus

Motion JPEG käyttää häviöllistä kehyksen sisäistä pakkausta, joka perustuu diskreettiin kosinimuunnokseen (DCT). Tämä matemaattinen operaatio muuttaa kuvan jokaisen kehyksen/kentän spatiaalisesta alueesta taajuusalueeseen. Psykovisuaalinen malli, joka perustuu ihmisen kuvien havainnoinnin ominaisuuksiin, käyttää yleensä kuvan korkeataajuisen komponentin karkeaa kvantisointia ja matalataajuisen komponentin tarkempaa kvantisointia, mikä vähentää kuvan lähetyksen tarkkuutta. terävät siirtymät kirkkaudessa ja värisävyissä. Kvantisoidut häviöttömät DCT - kertoimet pakataan ulostulobittivirtaan käyttäen joko Huffman - koodeja tai aritmeettista koodausta . Melkein kaikki MJPEG-ohjelmistototeutukset antavat käyttäjien hallita pakkauksen määrää (sekä muita parametreja) ja tehdä kompromisseja kuvanlaadussa ja tiedostokoon. Laitteistoratkaisuissa koodausparametrit on yleensä ennalta valittu ja kiinteä.

Jokaisen koodatun MJPEG:n otsikko on yleensä JPEG-standardin mukainen, mutta jotkin epäjohdonmukaisuudet standardin kanssa ovat hyväksyttäviä. Joten siinä ei ehkä ole esimerkiksi DHT-merkkiä, joka määrittelee taulukot Huffman-dekoodausta varten. Tässä tapauksessa dekoodausprosessissa tulee käyttää JPEG-standardin (CCITT Rec. T.81) kohdassa K.3 annettuja taulukoita.

MJPEG käyttää vain kehysten sisäistä pakkausmenetelmää (verrattuna monimutkaisempiin laskentamenetelmiin, joissa on kehysten välinen pakkaus). Vaikka nykyaikaiset videomuodot, joissa on kehysten välinen pakkaus, kuten MPEG1, MPEG2, H.264/MPEG-4 AVC ja vastaavat, saavuttavat keskimääräisen pakkaussuhteen 1:50 tai enemmän, MJPEG:n kehysten välisen pakkauksen puute ei yleensä mahdollista pakkaussuhteiden saamista. suurempi kuin 1:20, riippuen tilavääristymän hyväksyttävyydestä videosekvenssin dekoodatuissa kehyksissä. Koska kehyksiä pakataan toisistaan ​​riippumatta, MJPEG vaatii vähemmän laskentaresursseja ja RAM-muistia koodausvaiheessa. MJPEG-dekoodaus voi kuitenkin olla kalliimpaa kuin kehysten välinen pakkaus, koska ensinnäkin se sisältää jokaisen kuvan makrolohkon täydellisen dekoodauksen MJPEG:ksi, kun taas kehystenvälisiä pakkausmenetelmiä käytettäessä joitain "ohitatuksi" merkittyjä makrolohkoja ei pureta, vaan on otettu aikaisemmista kehyksistä. Toiseksi Huffman-dekoodauksen ja käänteisten DCT-proseduurien suoritusaika riippuu dekoodatun kuvan makrolohkon informaatiokylläisyydestä, joka kehysten välisen pakkauksen puuttuessa osoittautuu paljon suuremmiksi kuin sen läsnä ollessa (ensimmäisessä tapauksessa , koko kuva dekoodataan, toisessa erokuva, eli ei kuva, vaan vain sen ero edellisten ruutujen ennustamaan).

MJPEG:n kehyksen sisäisessä pakkausmenetelmässä kuvan laatu riippuu suoraan kunkin videokehyksen staattisesta (tilallisesta) monimutkaisuudesta. Kehykset, joissa on suuria sileitä siirtymiä tai yksitoikkoisia alueita, ovat hyvin pakattuja, mutta liian korkeilla pakkaussuhteilla ne sisältävät alkuperäisten yksityiskohtien lisäksi näkyviä pakkausartefakteja 8x8 pikselin lohkoina, joiden kirkkaus ja värisävy eroavat hieman toisistaan. Niiden esiintyminen liittyy matalataajuisten DCT-kertoimien karkeaan kvantisointiin. Kehykset, joissa on monimutkaisia ​​tekstuureja, ohuita kaarevia viivoja, estävät artefakteja, sisältävät myös artefakteja, jotka näkyvät kohinana ohuiden viivojen ja terävien rajojen ympärillä (niin sanottu Gibbs-efekti), jotka liittyvät korkeataajuisten DCT-kertoimien karkeaan kvantisointiin.

Apple on määrittänyt QuickTime-muodoille kaksi koodaustyyppiä: MJPEG-A ja MJPEG-B. MJPEG-B ei säilytä videotiedoston JPEG-tiedostojen rakennetta, joten JPEG-tiedostoon ei ole mahdollista purkaa kehystä rekonstruoimatta JPEG-otsikkoa.

Edut ja haitat

Motion JPEG -videopakkauksen tärkein etu on sen helppokäyttöisyys, mikä tekee MJPEG:stä soveltuvan toteutukseen laitteissa, joissa on rajoitetut laskentaresurssit.

Äärimmäisen nopea epälineaarinen videoeditointi  - jos jokin kehys otetaan kokonaan (ilman muutoksia) yhdestä MJPEG-lähteestä, se voidaan kirjoittaa lähtö-MJPEG-virtaan sellaisenaan ilman dekoodausta-pakkausta.

Korkealla bittinopeudella MJPEG tuottaa korkealaatuisia still-kuvia, mikä mahdollistaa sen käytön esimerkiksi videovalvontajärjestelmissä (siellä on tarpeen esimerkiksi selvittää ohi kulkevan auton numero tai tutkia yksityiskohtaisesti rikollisen kasvot). Jos kehysten välistä pakkausta ei kuitenkaan ole, tietyn bittinopeuden saavuttaminen vaatii enemmän kehyskohtaista pakkausta kuin MPEG :n tapauksessa , mikä johtaa havaittaviin pakkausvirheisiin .

MJPEG:n haittoja ovat alhaisempi pakkaussuhde verrattuna suoratoistopakkausmenetelmiin (esimerkiksi MPEG-4 ) ja artefaktit, jotka näkyvät korkeilla pakkaussuhteilla.

Katso myös

Linkit