JPEG. Alugoridimu funmorawon

Hello lẹẹkansi! Mo rii nkan yii ti a kọ pada ni May 2019. Eyi jẹ itesiwaju lẹsẹsẹ awọn nkan nipa WAVE ati JPEG, nibi akọkọ. Atẹjade yii yoo pẹlu alaye nipa algorithm fifi koodu aworan ati ọna kika funrararẹ lapapọ.

A fun pọ ti itan

Sibi kan ti nkan Wikipedia:

JPEG (Ẹgbẹ Awọn amoye Aworan Ijọpọ) jẹ ọkan ninu awọn ọna kika eya aworan raster olokiki ti a lo fun titoju awọn fọto ati awọn aworan ti o jọra.

Iwọnwọn yii jẹ idagbasoke nipasẹ Ẹgbẹ Awọn amoye Aworan Ajọpọ pada ni ọdun 1991 fun funmorawon aworan daradara.

Bawo ni awọn aworan ṣe lọ lati aise si JPEG?

Diẹ ninu awọn eniyan ro pe awọn aworan JPEG jẹ data aise fisinuirindigbindigbin ni lilo ọna Huffman, ṣugbọn eyi kii ṣe otitọ. Ṣaaju iṣakoso funmorawon, data rin irin-ajo pipẹ.

Ni akọkọ, awoṣe awọ ti yipada lati RGB si YCbCr. Paapaa algorithm pataki kan wa fun eyi - nibi. Y ko fọwọkan, niwon o jẹ iduro fun imọlẹ, ati iyipada rẹ yoo jẹ akiyesi.

Ohun akọkọ lati ṣe pẹlu aworan ni "tinrin" (subampling). O rọrun lati ni oye: a mu titobi awọn piksẹli 2x2, lẹhinna Cb ati Cr ni a mu - awọn iye apapọ ti ọkọọkan awọn paati YCbCr ti awọn piksẹli 4 wọnyi. Nitorina, a gba 6 baiti, dipo 4 Y, 4 Cb, 4 Cr a ni 4 Y ati Cb kanna ati Cr fun ọkọọkan wọn (4 + 4 + 4 = 12; 4 + 1 + 1 = 6; 12 - 6 = 6). Ni paapaa iwọn 2x2, funmorawon pipadanu pẹlu ipin funmorawon 2:1 dun ohun to lagbara. Eyi kan si gbogbo aworan naa. Ati bẹ - wọn lọ silẹ idaji iwọn. Ati pe a le lo ilana yii o ṣeun si akiyesi awọ wa. Eniyan yoo ni irọrun ṣe akiyesi iyatọ ninu imọlẹ, ṣugbọn kii ṣe ni awọ, ti o ba jẹ aropin lori bulọọki kekere ti awọn piksẹli. Tinrin tun le ṣee ṣe ni laini kan, awọn piksẹli 4 ni petele ati ni inaro. Aṣayan akọkọ ni a lo diẹ sii nigbagbogbo. Ti didara aworan ba ṣe pataki, lẹhinna decimation ko ṣe rara.
Apejuwe wiwo ti tinrin (Habr ko gba mi laaye lati fi gif sii) - https://i.ibb.co/Rg5Th9H/150953010617579181.gif

Awọn ifilelẹ ti awọn apa ti awọn igbaradi

Dkp

Bayi ni apakan ti o nira julọ ati pataki julọ wa. Gbogbo aworan ti pin si awọn bulọọki 8x8 (a lo kikun ti ipinnu ko ba jẹ ọpọ ti ẹgbẹ bulọọki).

Bayi waye si kọọkan Àkọsílẹ DCT (Iyipada Cosine Oye). Ni apakan yii, ohun gbogbo ti ko wulo ni a yọ kuro ninu aworan naa. Lilo DCT, o nilo lati ni oye boya bulọọki ti a fun (8 × 8) ṣe apejuwe eyikeyi apakan monotonous ti aworan: ọrun, odi; tabi o ni awọn eka be (irun, aami, ati be be lo). O jẹ ọgbọn pe awọn piksẹli 64 ti iru awọ le jẹ apejuwe nipasẹ 1 nikan, nitori awọn Àkọsílẹ iwọn ti wa ni tẹlẹ mọ. Pupọ pupọ fun funmorawon: 64 si 1.

DCT yi bulọọki naa pada si iwoye kan, ati nibiti awọn kika ti yipada ni didan, olusọdipúpọ di rere, ati pe iyipada ti o pọ si, abajade ti o ga julọ yoo jẹ. Nibo olusọdipúpọ ti ga julọ, aworan naa ṣe afihan awọn iyipada ti o han gbangba ni awọ ati imọlẹ, nibiti o ti wa ni isalẹ - ailagbara (dan) awọn iyipada ninu awọn iye ti awọn paati YCbCr ninu bulọki naa.

Quantization

Awọn eto funmorawon ti wa ni lilo tẹlẹ nibi. Olukuluku awọn onisọdipúpọ ni ọkọọkan awọn matiriki 8x8 ti pin nipasẹ nọmba kan. Ti o ko ba dinku didara aworan lẹhin gbogbo awọn iyipada rẹ, lẹhinna olupin yẹ ki o jẹ ọkan. Ti o ba jẹ pe iranti ti o wa nipasẹ fọto yii jẹ pataki julọ fun ọ, lẹhinna olupin yoo tobi ju 1 lọ, ati pe ipin naa yoo yika. O wa ni pe lẹhin iyipo o nigbagbogbo pari pẹlu ọpọlọpọ awọn odo.

Quantization ti wa ni ṣe lati ṣẹda awọn seese ti paapa ti o tobi funmorawon. Eyi ni ohun ti o dabi nipa lilo apẹẹrẹ ti pipo iwọn iwọn y = ẹṣẹ (x):

JPEG. Alugoridimu funmorawon

Funmorawon

Ni akọkọ a lọ nipasẹ matrix ni apẹrẹ zig-zag:

JPEG. Alugoridimu funmorawon

A gba titobi onisẹpo kan pẹlu awọn nọmba. A rii pe ọpọlọpọ awọn odo wa ninu rẹ, wọn le yọ kuro. Lati ṣe eyi, dipo ọna ti ọpọlọpọ awọn odo, a tẹ 1 odo ati lẹhin rẹ nọmba ti o nfihan nọmba wọn ni ọkọọkan. Ni ọna yii o le tunto si 1/3 iwọn ti gbogbo orun. Ati lẹhinna a rọra rọpọ akojọpọ yii ni lilo ọna Huffman ki o kọ sinu faili funrararẹ.

Nibo ni a ti lo

Nibi gbogbo. Bii PNG, JPEG ni a lo ninu awọn kamẹra, OSes (gẹgẹbi awọn aami ile-iṣẹ, awọn aami ohun elo, eekanna atanpako) ati ni gbogbo awọn agbegbe ti o ṣeeṣe nibiti awọn aworan nilo lati wa ni ipamọ daradara.

ipari

Ni akoko yii, imọ nipa JPEG jẹ bayi niyelori nikan fun awọn idi ẹkọ, nitori pe o ti kọ tẹlẹ ni ibi gbogbo ati iṣapeye nipasẹ awọn ẹgbẹ nla ti eniyan, ṣugbọn granite ti imọ-jinlẹ tun dun.

Awọn orisun

Nkan nipa YCbCr lori Wikipedia
Nkan Wikipedia lori JPEG
Diẹ diẹ nipa PrEP lati ifiweranṣẹ Pikabu
Nkan Wikipedia lori PrEP

orisun: www.habr.com

Fi ọrọìwòye kun