JPEG. Algorithm ea compression

Lumela hape! Ke fumane sengoloa sena se ngotsoe morao ka Mots'eanong 2019. Ena ke ntšetso-pele ea letoto la lingoliloeng tse mabapi le WAVE le JPEG, mona pele. Sengoliloeng sena se tla kenyelletsa tlhahisoleseling mabapi le algorithm ea khouto ea setšoantšo le sebopeho ka boeona ka kakaretso.

Pale ea histori

Khaba ea sengoloa sa Wikipedia:

JPEG (Joint Photographic Experts Group) ke e 'ngoe ea liforomo tse tsebahalang tsa raster tse sebelisetsoang ho boloka linepe le litšoantšo tse tšoanang.

Tekanyetso ena e ile ea ntlafatsoa ke Joint Photographic Experts Group morao koana ka 1991 bakeng sa ho hatella litšoantšo ka katleho.

Litšoantšo li tloha ho tse tala ho ea ho JPEG joang?

Batho ba bang ba nahana hore litšoantšo tsa JPEG ke data e tala e hatelitsoeng ka mokhoa oa Huffman, empa sena ha se 'nete. Pele ho khatello ea taolo, data e tsamaea haholo.

Taba ea pele, mofuta oa mebala o fetotsoe ho tloha ho RGB ho ea ho YCbCr. Ho na le algorithm e khethehileng bakeng sa sena - mona. Y ha e amehe, kaha e ikarabella bakeng sa khanya, 'me phetoho ea eona e tla bonahala.

Ntho ea pele eo u lokelang ho e etsa ka setšoantšo ke "ho ota" (sampole). Ho bonolo ho utloisisa: ho nkuoa lethathamo la 2x2 la lipikselse, ebe Cb le Cr li nkuoa - litekanyetso tse tloaelehileng tsa karolo ka 'ngoe ea YCbCr ea lipikselse tsena tse 4. Kahoo, re hapile li-byte tse 6, sebakeng sa 4 Y, 4 Cb, 4 Cr re fumane 4 Y le Cb e tšoanang le Cr bakeng sa e mong le e mong oa bona (4 + 4 + 4 = 12; 4 + 1 + 1 = 6; 12 - 6 = 6). Ka tekanyo ea 2x2, khatello ea tahlehelo e nang le tekanyo ea 2: 1 e utloahala e tiile. Sena se sebetsa ho setšoantšo sohle. Mme ka hona - ba theohile halofo ya boholo. Mme re ka sebelisa mokhoa ona ka lebaka la pono ea rona ea mebala. Motho o tla lemoha habonolo phapang ea khanya, empa eseng ka 'mala, haeba e lekantsoe holim'a boloko e nyane ea pixels. Ho tšesaane ho ka etsoa hape ka mohala, lipikselse tse 4 ka holimo le ka holimo. Khetho ea pele e sebelisoa hangata. Haeba boleng ba setšoantšo bo le bohlokoa, joale decimation ha e etsoe ho hang.
Papiso e bonoang ea ho ota (Habr ha a ka a ntumella ho kenya gif) - https://i.ibb.co/Rg5Th9H/150953010617579181.gif

Karolo e ka sehloohong ea ho lokisetsa

Dkp

Joale ho tla karolo e thata ka ho fetisisa le e hlokahalang ka ho fetisisa. Setšoantšo sohle se arotsoe ka li-blocks tsa 8x8 (ho tlatsa ho sebelisoa haeba qeto e se makhetlo a mangata a lehlakoreng la thibela).

Joale sebetsa ho boloko bo bong le bo bong DCT (Discrete Cosine Transform). Karolong ena, ntho e 'ngoe le e' ngoe e sa hlokahaleng e tlosoa setšoantšong. U sebelisa DCT, u lokela ho utloisisa hore na thibela e fanoeng (8 × 8) e hlalosa karolo efe kapa efe e monotonous ea setšoantšo: leholimo, lerako; kapa e na le sebopeho se rarahaneng (moriri, matšoao, joalo-joalo). Hoa utloahala hore lipikselse tse 64 tsa 'mala o tšoanang li ka hlalosoa ke 1 feela, hobane boholo ba boloko bo se bo tsejoa. E ngata haholo bakeng sa compression: 64 ho 1.

DCT e fetola boloko hore e be spectrum, 'me moo lipalo li fetohang haholo, coefficient e ba ntle,' me ha phetoho e le bohale, tlhahiso e tla ba e phahameng. Moo coefficient e phahameng, setšoantšo se bonts'a liphetoho tse hlakileng tsa 'mala le khanya, moo e leng tlase - e fokolang (e boreleli) e fetohang boleng ba likarolo tsa YCbCr ka har'a block.

Quantization

Litlhophiso tsa compression li se li ntse li sebelisoa mona. E 'ngoe le e' ngoe ea li-coefficients ho e 'ngoe le e' ngoe ea matrices a 8x8 e arotsoe ka palo e itseng. Haeba u ke ke ua fokotsa boleng ba setšoantšo ka mor'a liphetoho tsohle tsa eona, joale karohano e lokela ho ba e le 'ngoe. Haeba memori e kentsoeng ke foto ena e bohlokoa ho uena, karohano e tla ba kholo ho feta 1, 'me quotient e tla pota-potiloe. Hoa etsahala hore ka mor'a ho pota-pota hangata u qetella u e-na le li-zero tse ngata.

Quantization e etsoa ho theha monyetla oa ho hatella le ho feta. Mona ke hore na e shebahala joang ha u sebelisa mohlala oa ho bala kerafo y = sin(x):

JPEG. Algorithm ea compression

Khatello

Pele re feta matrix ka mokhoa oa zigzag:

JPEG. Algorithm ea compression

Re fumana palo e le 'ngoe e nang le linomoro. Rea bona hore ho na le li-zero tse ngata ho eona, li ka tlosoa. Ho etsa sena, ho e-na le tatellano ea li-zero tse ngata, re kenya 1 zero ebe ka mor'a eona palo e bontšang palo ea bona ka tatellano. Ka tsela ena o ka seta bocha ho 1/3 boholo ba sehlopha sohle. Ebe re hatella sehlopha sena ka mokhoa oa Huffman ebe re e ngola faeleng ka boeona.

Moo e sebelisoang

Hohle. Joaloka PNG, JPEG e sebelisoa lik'hamera, li-OS (e le li-logos tsa k'hamphani, litšoantšo tsa kopo, li-thumbnails) le libakeng tsohle tse ka khonehang moo litšoantšo li lokelang ho bolokoa ka katleho.

fihlela qeto e

Hona joale, tsebo ka JPEG e se e le ea bohlokoa feela bakeng sa merero ea thuto, hobane e se e hahiloe hohle 'me e ntlafatsoa ke lihlopha tse kholo tsa batho, empa granite ea saense e ntse e le monate.

Mohloli

Sengoloa mabapi le YCbCr ho Wikipedia
Sengoloa sa Wikipedia mabapi le JPEG
Ho se hokae ka PrEP ho tsoa posong ea Pikabu
Sengoloa sa Wikipedia mabapi le PrEP

Source: www.habr.com

Eketsa ka tlhaloso