JPEG. Þjöppunaralgrím

Halló aftur! Ég fann þessa grein skrifaða aftur í maí 2019. Þetta er framhald af greinaröð um WAVE og JPEG, hér fyrst. Þetta rit mun innihalda upplýsingar um myndkóðunalgrímið og sniðið sjálft í heild sinni.

Smá sögu

Matskeið af Wikipedia grein:

JPEG (Joint Photographic Experts Group) er eitt af vinsælustu raster grafíksniðunum sem notuð eru til að geyma ljósmyndir og svipaðar myndir.

Þessi staðall var þróaður af Joint Photographic Experts Group aftur árið 1991 fyrir skilvirka myndþjöppun.

Hvernig fara myndir úr hráum yfir í JPEG?

Sumir halda að JPEG myndir séu hrá gögn þjöppuð með Huffman aðferð, en það er ekki satt. Áður en stjórna þjöppun, fara gögn um langan veg.

Í fyrsta lagi er litalíkaninu breytt úr RGB í YCbCr. Það er meira að segja til sérstakt reiknirit fyrir þetta - hér. Y er ekki snert, þar sem það er ábyrgt fyrir birtustigi, og breyting þess verður áberandi.

Það fyrsta sem þarf að gera við myndina er "þynning" (undirsýni). Það er auðvelt að skilja: 2x2 fylki af pixlum er tekið, síðan eru Cb og Cr tekin - meðalgildi hvers YCbCr íhluta þessara 4 pixla. Svo, við unnum 6 bæti, í stað 4 Y, 4 Cb, 4 Cr fengum við 4 Y og sama Cb og Cr fyrir hvert þeirra (4 + 4 + 4 = 12; 4 + 1 + 1 = 6; 12 - 6 = 6). Á jöfnum mælikvarða 2x2 hljómar tapandi þjöppun með 2:1 þjöppunarhlutfalli traust. Þetta á við um alla myndina. Og svo - þeir lækkuðu um hálfa stærð. Og við getum notað þessa tækni þökk sé litaskynjun okkar. Einstaklingur mun auðveldlega taka eftir mun á birtustigi, en ekki á lit, ef meðaltalið er miðað yfir litla blokk af punktum. Einnig er hægt að þynna í línu, 4 pixlar lárétt og lóðrétt. Fyrsti kosturinn er notaður oftar. Ef myndgæði skipta máli, þá er afmáning alls ekki framkvæmd.
Sjónræn mynd af þynningu (Habr leyfði mér ekki að setja inn gif) - https://i.ibb.co/Rg5Th9H/150953010617579181.gif

Meginhluti undirbúnings

PrEP

Nú kemur erfiðasti og nauðsynlegasti þátturinn. Öll myndinni er skipt í 8x8 kubba (fylling er notuð ef upplausnin er ekki margfeldi af kubbahliðinni).

Sækja nú um hverja blokk DCT (Discrete Cosine Transform). Í þessum hluta er allt óþarft tekið út úr myndinni. Með því að nota DCT þarftu að skilja hvort tiltekin blokk (8×8) lýsir einhverjum einhæfum hluta myndarinnar: himininn, vegginn; eða það inniheldur flókna uppbyggingu (hár, tákn osfrv.). Það er rökrétt að hægt sé að lýsa 64 pixlum af svipuðum lit með aðeins 1, vegna þess að blokkastærðin er þegar þekkt. Svo mikið fyrir þjöppunina: 64 til 1.

DCT breytir kubbnum í litróf og þar sem aflestrar breytast verulega verður stuðullinn jákvæður og því skarpari sem umskiptin eru því meiri verður úttakið. Þar sem stuðullinn er hærri sýnir myndin skýr umskipti í lit og birtustigi, þar sem hann er lægri - veikar (sléttar) breytingar á gildum YCbCr íhlutanna í blokkinni.

Magngreining

Þjöppunarstillingar eru þegar notaðar hér. Hverjum stuðlunum í hverju 8x8 fylki er deilt með ákveðinni tölu. Ef þú munt ekki draga úr myndgæðum eftir allar breytingar hennar, þá ætti deilirinn að vera einn. Ef minnið sem þessi mynd tekur upp er mikilvægara fyrir þig, þá verður deilirinn stærri en 1 og stuðullinn verður rúnnaður. Það kemur í ljós að eftir námundun endar þú oft með fullt af núllum.

Magngreining er gerð til að skapa möguleika á enn meiri þjöppun. Svona lítur það út með því að nota dæmið um að magngreina grafið y = sin(x):

JPEG. Þjöppunaralgrím

Þjöppun

Fyrst förum við í gegnum fylkið í sikk-sakk mynstri:

JPEG. Þjöppunaralgrím

Við fáum einvíddar fylki með tölum. Við sjáum að það eru fullt af núllum í því, hægt er að fjarlægja þau. Til að gera þetta, í stað röð með mörgum núllum, sláum við inn 1 núll og á eftir því tölu sem gefur til kynna fjölda þeirra í röðinni. Þannig geturðu endurstillt í 1/3 af stærð alls fylkisins. Og þá þjöppum við einfaldlega þessu fylki með Huffman aðferðinni og skrifum það inn í skrána sjálfa.

Þar sem það er notað

Alls staðar. Eins og PNG er JPEG notað í myndavélum, stýrikerfi (sem fyrirtækismerki, forritatákn, smámyndir) og á öllum mögulegum svæðum þar sem myndir þarf að geyma á skilvirkan hátt.

Output

Í augnablikinu er þekking um JPEG nú aðeins dýrmæt í fræðslutilgangi, vegna þess að hún er nú þegar innbyggð alls staðar og fínstillt af stórum hópum fólks, en granít vísindanna er enn bragðgóður.

Heimildir

Grein um YCbCr á Wikipedia
Wikipedia grein um JPEG
Smá um PrEP úr Pikabu færslunni
Wikipedia grein um PrEP

Heimild: www.habr.com

Bæta við athugasemd