JPEG. I-algorithm yoxinzelelo

Molo kwakhona! Ndifumene eli nqaku libhalwe ngoMeyi ka-2019. Oku kukuqhubela phambili koluhlu lwamanqaku malunga ne-WAVE kunye neJPEG, apha kuqala. Olu papasho luya kubandakanya ulwazi malunga ne-algorithm ye-encoding yomfanekiso kunye nefomathi ngokwayo iyonke.

Ipinki yembali

Icephe lenqaku leWikipedia:

I-JPEG (Iqela leeNgcali zeeFoto eziDityanisiweyo) yenye yeefomati zegraphic raster ezidumileyo ezisetyenziselwa ukugcina iifoto kunye nemifanekiso efanayo.

Lo mgangatho waphuhliswa liQela leeNgcali zeeFoto eziHlangeneyo emva ngo-1991 ukwenzela ucinezelo lomfanekiso olusebenzayo.

Ihamba njani imifanekiso ukusuka eluhlaza ukuya kwiJPEG?

Abanye abantu bacinga ukuba imifanekiso yeJPEG yidatha ekrwada icinezelwe kusetyenziswa indlela yeHuffman, kodwa oku akuyonyani. Ngaphambi koxinzelelo lolawulo, idatha ihamba indlela ende.

Okokuqala, imodeli yombala itshintshiwe ukusuka kwi-RGB ukuya kwiYCbCr. Kukho i-algorithm ekhethekileyo yale nto - apha. I-Y ayichukunyiswa, kuba inoxanduva lokukhanya, kwaye utshintsho lwayo luya kubonakala.

Into yokuqala yokwenza nomfanekiso "ukubhitya" (iisampulu). Kulula ukuyiqonda: uluhlu lwe-2x2 lweepikseli luthathiwe, emva koko i-Cb kunye ne-Cr zithathwe - amaxabiso aphakathi kwinxalenye nganye ye-YCbCr yezi pikseli ezi-4. Ngoko, siphumelele iibytes ezi-6, endaweni ye-4 Y, 4 Cb, 4 Cr sifumene i-4 Y kunye ne-Cb efanayo kunye ne-Cr nganye kuzo (4 + 4 + 4 = 12; 4 + 1 + 1 = 6; 12 - 6 = 6). Kwisikali se-2x2, ukunyanzeliswa kwelahleko nge-2: 1 yomlinganiselo woxinzelelo kuvakala kuqinile. Oku kusebenza kuwo wonke umfanekiso. Kwaye ke - bawisa isiqingatha sobukhulu. Kwaye sinokusebenzisa obu buchule bubonga kumbono wethu wombala. Umntu uya kuqaphela ngokulula umahluko ekukhanyeni, kodwa kungekhona ngombala, ukuba ulinganiswe ngaphezu kwebhloko encinci yeepikseli. Ukuthina kunokwenziwa emgceni, iipixels ezi-4 ngokuthe tye nathe nkqo. Inketho yokuqala isetyenziswa rhoqo. Ukuba umgangatho womfanekiso ubalulekile, ke ukuchithwa akwenziwanga kwaphela.
Umzekeliso obonakalayo wokuncipha (uHabr akazange andivumele ukuba ndifake i-gif) - https://i.ibb.co/Rg5Th9H/150953010617579181.gif

Inxalenye ephambili yamalungiselelo

I-PrEP

Ngoku kuza eyona nxalenye inzima neyimfuneko. Umfanekiso wonke uhlukaniswe kwiibhloko ze-8x8 (ukuzaliswa kusetyenziswa ukuba isisombululo asiyiyo i-multiple of block block).

Ngoku sebenzisa kwibhloko nganye DCT (Discrete Cosine Transform). Kule nxalenye, yonke into engeyomfuneko ikhutshwe emfanekisweni. Ukusebenzisa i-DCT, kufuneka uqonde ukuba ibhloko enikiweyo (8 Γ— 8) ichaza nayiphi na inxalenye ye-monotonous yomfanekiso: isibhakabhaka, udonga; okanye iqulethe isakhiwo esinzima (iinwele, iimpawu, njl.). Kusengqiqweni ukuba iipixels ezingama-64 zombala ofanayo zinokuchazwa ngu-1 nje, kuba ubungakanani bebhloko sele busaziwa. Kakhulu kuxinzelelo: 64 ukuya ku-1.

I-DCT ijika ibhloko ibe yi-spectrum, kwaye apho ufundo lutshintsha ngokukhawuleza, i-coefficient iba positive, kwaye inguqu ibukhali, imveliso iya kuba phezulu. Apho i-coefficient iphezulu, umfanekiso ubonisa utshintsho olucacileyo kumbala kunye nokukhanya, apho uphantsi-ubuthathaka (obugudileyo) utshintsho kumaxabiso amacandelo e-YCbCr kwibhloko.

Ubungakanani

Useto locinezelo sele lusetyenziswa apha. I-coefficients nganye kwi-matrices ye-8x8 ihlulwe ngenani elithile. Ukuba awuyi kunciphisa umgangatho womfanekiso emva kokuguqulwa kwayo yonke into, ke isahluli kufuneka sibe sinye. Ukuba imemori ethathwe yile foto ibaluleke kakhulu kuwe, ke isahluli siya kuba sikhulu kuno-1, kwaye i-quotient iya kujikelezwa. Kuyavela ukuba emva kokusondezwa uhlala uphela ngooziro abaninzi.

Ubungakanani benziwa ukwenza ukubakho koxinzelelo olukhulu ngakumbi. Nantsi indlela ekhangeleka ngayo usebenzisa umzekelo wokulinganisa igrafu y = isono(x):

JPEG. I-algorithm yoxinzelelo

Uxinzelelo

Okokuqala sidlula kwi-matrix kwipateni ye-zig-zag:

JPEG. I-algorithm yoxinzelelo

Sifumana uluhlu lwe-dimensional enamanani. Siyabona ukuba zininzi zero kuyo, zinokususwa. Ukwenza oku, endaweni yokulandelelana kwamaqanda amaninzi, sifaka u-1 zero kwaye emva kwayo inani elibonisa inani labo ngokulandelelana. Ngale ndlela unokuseta kwakhona ku-1/3 ubukhulu beqela lonke. Kwaye ke sicinezela olu luhlu sisebenzisa indlela ye-Huffman kwaye siyibhale kwifayile ngokwayo.

Apho isetyenziswa

Kuyo yonke indawo. Njenge-PNG, i-JPEG isetyenziswe kwiikhamera, ii-OS (njengee-logos zenkampani, iimpawu zesicelo, izithonjana) nakuzo zonke iindawo ezinokwenzeka apho imifanekiso kufuneka igcinwe ngokufanelekileyo.

isiphelo

Okwangoku, ulwazi malunga neJPEG ngoku luxabiseke kuphela kwiinjongo zemfundo, kuba sele lwakhiwe kuyo yonke indawo kwaye luphuculwe ngamaqela amakhulu abantu, kodwa i-granite yesayensi isamnandi.

Imithombo

Inqaku malunga neYCbCr kwiWikipedia
Inqaku leWikipedia kwiJPEG
Kancinci malunga ne-PrEP kwisithuba sePikabu
Inqaku leWikipedia kwi-PrEP

umthombo: www.habr.com

Yongeza izimvo