Ero sivun ”MPEG-2” versioiden välillä

[arvioimaton versio][arvioimaton versio]
Poistettu sisältö Lisätty sisältö
Jozzu (keskustelu | muokkaukset)
Jozzu (keskustelu | muokkaukset)
Ei muokkausyhteenvetoa
Rivi 28:
Ensimmäinen periaatteista on sama, jota käytetään esimerkiksi tietokoneohjelmien pakkauksessa. Menetelmiä on useita ja ne perustuvat erilaisiin matemaattisiin malleihin. Tuloksena on data, jonka avulla voidaan rakentaa täysin identtinen kuva alkuperäisen kanssa. Kyseessä on siten häviötön pakkausmuoto. Häviöttömien menetelmien heikkoutena on rajallinen pakkaussuhde, eivätkä ne siten yksin riitä video-ohjelmaa pakatessa.
 
== I, P ja B -kuvatyypit ==
MPEG-2 video muodostuu erilaisista kuva tyypeistä, joita on kolme kappaletta I(Intra), P(Forward prediction) ja B(Bidirectional prediction). Kukin kuvatyyppi sisältää kuvan tai ennusteen. MPEG-2:ssa kuvanäytteen koko on 16×16 [[pikseli]]ä. Ensin kuvanäyte muokataan [[RGB]]-muodosta [[YCbCr]]-muotoon. Dataa tiivistetään siten, että ensin vertaillaan ajallista toistoa tutkimalla peräkkäisiä kuvia. Tämän jälkeen kuva jaetaan 8×8 pikselin lohkoihin, joille suoritetaan DCT-muunnos. Viimeisenä tehdään [[kvantisointi]], jossa [[informaatio]]ta hukataan. Ajallisessa tiivistämisessä on huomioitava peräkkäisten kuvien sisältävä [[redundanssi]]. Tämä tapahtuu parhaiten siten, että lähetään säännöllisin välein näyte ”aidosta” kuvasta, jonka jälkeen kuvataan tähän referenssikuvaa tulleita muutoksia. Tämä tuo mukanaan I, P ja B-kuvatyypit. Nämä kuvatyypit muodostavat kuvaryhmän GOP (Group Of Pictures), yleisin järjestys kuvaryhmälle on I BB P BB P BB P BB P BB I.
 
[[Kuva:IPB_images_sequence.png|750px|center]]
 
I -kuvien tiivistyssuhde on huonoin, sillä se sisältää vain kuvassa itsessään olevaan tietoa, jonka perusteella koodataan P- ja B-kuvat. I kuvat koodataan [[JPEG]]-tyyppisesti. P-kuva tehdään käyttämällä edellisen P-tai I-kuvan [[informaatio]]ta, tätä kutsutaan eteenpäin ennustamiseksi. P -kuvassa vähennetään sekä ajallista, että paikallista [[redundanssi]]a, jolloin saadaan aikaiseksi I-kuvia parempi tiivistysaste. B -kuvat tarjoavat parhaimman tiivistyssuhteen, sillä ne sisältävät vähiten tietoa. B -kuvat luodaan käyttämällä joko edellisen tai seuraavan I-tai P-kuvan tietoja. Kuvaryhmiä on kahdenlaisia: suljettuja ja avoimia. Suljetussa kuvaryhmässä viimeinen B -kuva voi viitata seuraavan kuvaryhmän I -kuvaan. Avoimessa kuvaryhmässä ei taas ole viitteitä ulkopuolisiin ryhmiin.
 
===Eteenpäin ennustaminen===
Ennusteen laskeminen P -kuvassa toimii seuraavasti. Valitaan 16×16 -pikselin kokoinen lohko, joka muodostuu neljästä [[luminanssi]]lohkosta ja kahdesta [[krominanssi]]lohkosta. Tämän jälkeen sitä verrataan aijemmin siirrettyyn referenssikuvaan, ja pyritään hakemaan referenssikuvasta sellainen 16×16:n [[pikseli]]n alue, joka on mahdollisimman samankaltainen valitun lohkon kanssa. Jos molemmat lohkot sijaitsevat samassa paikassa (x,y), tulee niin sanotun siirtymä[[vektori]]n arvoksi 0. Muussa tapauksessa siirtymävektorin arvo on nollasta poikkeava. Tämän lisäksi referenssikuvan ja koodauksessa olevan kuvan lohkojen erotus lasketaan ja sille suoritetaan DCT-muunnos ja [[kvantisointi]]. Näin saatu P -kuva lähetetään yhdessä siirtymävektorin kanssa vastaanottajalle. Jos vastaavaa ruutua ei referenssi kuvasta löydy, kyseinen lohko koodataan I-kuvaksi, eikä siinä enää käytetä referenssikuvan tietoja.
 
B-kuvat koodataan samalla tavalla, kuin P-kuvat, sillä poikkeuksella, että B-kuvien referenssi ovat kuvaosassa sekä koodattavan B-kuvan edessä, että takana. Tässä saatu tulos menee DCT-muunnokseen, jonka jälkeen se lähetetään vastaan ottajalle kahden siirtymävektorin kanssa.
 
== Katso myös ==
* [[kuvanpakkaus]] (erityisesti DCT-muunnos)
* [[I_P_ja_B_kuvat]] Kuvatyypit
* [http://en.wikipedia.org/wiki/Discrete_cosine_transform DCT muunnos englanniksi]
 
Noudettu kohteesta ”https://fi.wikipedia.org/wiki/MPEG-2