JPEG. Compression algorithm

Moni kachiwiri! Ndapeza nkhaniyi italembedwa mu Meyi 2019. Uku ndikupitilira mndandanda wankhani za WAVE ndi JPEG, apa Choyamba. Chofalitsachi chikhala ndi zambiri zokhudzana ndi kabisidwe kazithunzi komanso mawonekedwe ake onse.

Mbiri yakale

Supuni ya nkhani ya Wikipedia:

JPEG (Joint Photographic Experts Group) ndi imodzi mwamawonekedwe otchuka a raster omwe amagwiritsidwa ntchito posungira zithunzi ndi zithunzi zofananira.

Muyezo uwu udapangidwa ndi Joint Photographic Experts Group kumbuyo mu 1991 kuti azitha kukanikiza bwino zithunzi.

Kodi zithunzi zimachoka bwanji kuchoka ku JPEG kukhala yaiwisi?

Anthu ena amaganiza kuti zithunzi za JPEG ndi data yaiwisi yoponderezedwa pogwiritsa ntchito njira ya Huffman, koma izi sizowona. Musanayambe kuponderezana ulamuliro, deta amayenda ulendo wautali.

Choyamba, mtundu wamtunduwu umasinthidwa kuchoka ku RGB kupita ku YCbCr. Pali ngakhale algorithm yapadera ya izi - apa. Y sinakhudzidwe, chifukwa ili ndi udindo wowala, ndipo kusintha kwake kudzawoneka.

Chinthu choyamba kuchita ndi chithunzicho "kuchepa" (chitsanzo). Ndizosavuta kumvetsetsa: ma pixel a 2 Γ— 2 amatengedwa, kenako Cb ndi Cr amatengedwa - mtengo wapakati wa gawo lililonse la YCbCr la ma pixel anayi awa. Choncho, tinapambana 6 byte, m'malo mwa 4 Y, 4 Cb, 4 Cr tinapeza 4 Y ndi Cb yofanana ndi Cr kwa aliyense wa iwo (4 + 4 + 4 = 12; 4 + 1 + 1 = 6; 12 - 6 = 6). Pamlingo wa 2x2, kuponderezana kotayika kokhala ndi chiΕ΅erengero cha 2:1 kumamveka kolimba. Izi zikugwira ntchito pa chithunzi chonse. Ndipo kotero - iwo anagwetsa theka la kukula. Ndipo titha kugwiritsa ntchito njira iyi chifukwa cha malingaliro athu amtundu. Munthu amazindikira mosavuta kusiyana kwa kuwala, koma osati mtundu, ngati kuwerengedwera pama pixel ang'onoang'ono. Kupatulira kutha kuchitikanso pamzere, ma pixel 4 molunjika komanso molunjika. Njira yoyamba imagwiritsidwa ntchito nthawi zambiri. Ngati khalidwe lachithunzi ndilofunika, ndiye kuti kuwononga sikuchitika nkomwe.
Chithunzi chowoneka chochepa thupi (Habr sanandilole kuyika gif) - https://i.ibb.co/Rg5Th9H/150953010617579181.gif

Mbali yaikulu ya kukonzekera

PrEP

Tsopano pakubwera gawo lovuta kwambiri komanso lofunika kwambiri. Chithunzi chonsecho chimagawidwa muzitsulo za 8x8 (kudzazidwa kumagwiritsidwa ntchito ngati chisankho sichingachulukitse mbali ya block).

Tsopano gwiritsani ntchito chipika chilichonse DCT (Discrete Cosine Transform). Mu gawo ili, zonse zosafunikira zimachotsedwa pachithunzichi. Pogwiritsa ntchito DCT, muyenera kumvetsetsa ngati chipika chopatsidwa (8 Γ— 8) chikufotokoza mbali iliyonse yachithunzichi: mlengalenga, khoma; kapena ili ndi mawonekedwe ovuta (tsitsi, zizindikiro, etc.). Ndizomveka kuti ma pixel 64 amtundu wofanana amatha kufotokozedwa ndi 1 yokha, chifukwa kukula kwa chipika kumadziwika kale. Zochuluka pakuponderezana: 64 mpaka 1.

DCT imatembenuza chipikacho kukhala sipekitiramu, ndipo pamene zowerengera zimasintha kwambiri, coefficient imakhala yabwino, ndipo kusintha kwakukulu, kutulutsa kwake kudzakhala kwakukulu. Pomwe coefficient ndi yayikulu, chithunzichi chikuwonetsa kusintha kowoneka bwino kwa utoto ndi kuwala, komwe kumakhala kotsika - kufooka (kosalala) kusintha kwazinthu za YCbCr mu block.

Quantization

Makanema oponderezedwa ayikidwa kale pano. Chilichonse mwa ma coefficients mumtundu uliwonse wa 8x8 matrices amagawidwa ndi nambala inayake. Ngati simungachepetse mtundu wa chithunzi pambuyo pa zosintha zake zonse, ndiye kuti chogawacho chiyenera kukhala chimodzi. Ngati kukumbukira komwe kuli ndi chithunzichi kuli kofunika kwambiri kwa inu, ndiye kuti gawolo lidzakhala lalikulu kuposa 1, ndipo quotient idzazunguliridwa. Zimakhala kuti mutatha kuzungulira nthawi zambiri mumakhala ndi ziro zambiri.

Quantization imachitika kuti pakhale mwayi wopanikizana kwambiri. Izi ndi momwe zimawonekera pogwiritsa ntchito chitsanzo chowerengera graph y = sin(x):

JPEG. Compression algorithm

Kupanikizika

Choyamba timadutsa matrix mu ndondomeko ya zigzag:

JPEG. Compression algorithm

Timapeza mndandanda wamtundu umodzi wokhala ndi manambala. Tikuwona kuti pali ziro zambiri momwemo, zimatha kuchotsedwa. Kuti tichite izi, m'malo motsatizana ndi ziro zambiri, timalowetsa 1 zero ndipo pambuyo pake nambala yosonyeza nambala yawo motsatizana. Mwanjira iyi mutha kukonzanso ku 1/3 kukula kwa gulu lonse. Kenako timangopondereza gululi pogwiritsa ntchito njira ya Huffman ndikulemba mufayilo yokha.

Kumagwiritsidwa ntchito

Kulikonse. Monga PNG, JPEG imagwiritsidwa ntchito mu makamera, OSs (monga ma logos a kampani, zizindikiro zogwiritsira ntchito, tizithunzi) ndi m'madera onse zotheka kumene zithunzi ziyenera kusungidwa bwino.

Pomaliza

Pakalipano, chidziwitso cha JPEG tsopano ndi chofunikira pa maphunziro okha, chifukwa chamangidwa kale paliponse ndikukonzedwa ndi magulu akuluakulu a anthu, koma granite ya sayansi idakali yokoma.

Zotsatira

Nkhani za YCbCr pa Wikipedia
Nkhani ya Wikipedia pa JPEG
Zambiri za PrEP kuchokera ku positi ya Pikabu
Nkhani ya Wikipedia pa PrEP

Source: www.habr.com

Kuwonjezera ndemanga