Ka usoro JPEG si arụ ọrụ

Onyonyo JPEG dị ebe niile na ndụ dijitalụ anyị, mana n'azụ ihe ngosi a bụ algọridim na-ewepụ nkọwa ndị na-adịghị aghọta n'anya mmadụ. Nsonaazụ bụ àgwà a na-ahụ anya kachasị na nha faịlụ kacha nta - mana kedu ka ihe niile si arụ ọrụ? Ka anyị hụ kpọmkwem ihe anya anyị na-adịghị ahụ!

Ka usoro JPEG si arụ ọrụ

Ọ dị mfe ịnara ikike iziga enyi gị foto ma ghara ichegbu onwe ya maka ngwaọrụ, ihe nchọgharị ma ọ bụ sistemụ arụmọrụ ha na-eji - mana nke ahụ abụghị mgbe niile. Ka ọ na-erule mmalite 1980s, kọmputa nwere ike ịchekwa ma gosipụta onyonyo dijitalụ, mana enwere ọtụtụ echiche na-asọmpi maka ụzọ kacha mma isi mee nke a. Ị nweghị ike izipu foto site n'otu kọmputa gaa na nke ọzọ ma nwee olileanya na ọ ga-arụ ọrụ.

Iji dozie nsogbu a, otu kọmitii ndị ọkachamara si gburugburu ụwa gbakọtara na 1986 akpọrọ "Otu ndị ọkachamara na-ese foto jikọtara ọnụ»(Joint Photographic Experts Group, JPEG), tọrọ ntọala dị ka njikọ aka n'etiti International Organisation for Standardization (ISO) na International Electrotechnical Commission (IEC), òtù abụọ mba ụkpụrụ ụkpụrụ nke hiwere isi na Geneva, Switzerland.

Otu ndị mmadụ a na-akpọ JPEG mepụtara ọkọlọtọ JPEG dijitalụ mkpakọ onyonyo na 1992. Onye ọ bụla ejirila ịntanetị ahụla ihe oyiyi JPEG echekwabara. Nke a bụ ụzọ a na-ahụkarị iji tinye koodu, zipu na chekwaa onyonyo. Site na ibe weebụ gaa na email gaa na mgbasa ozi ọha, JPEG na-eji ọtụtụ ijeri ugboro kwa ụbọchị-ihe fọrọ nke nta ka ọ bụrụ oge ọ bụla anyị na-ele ihe oyiyi n'ịntanetị ma ọ bụ zipu ya. Na-enweghị JPEG, webụsaịtị ahụ ga-adị obere ka ọ mara mma, dị nwayọ, ma eleghị anya ọ nwere foto nwamba ole na ole!

Edemede a bụ maka otu esi ewepụta onyonyo JPEG. N'ikwu ya n'ụzọ ọzọ, ihe a chọrọ iji gbanwee data agbakwunyere na kọmputa ka ọ bụrụ ihe oyiyi na-egosi na ihuenyo. Nke a bara uru ịmara, ọ bụghị naanị n'ihi na ọ dị mkpa ịghọta teknụzụ anyị na-eji kwa ụbọchị, kamakwa n'ihi na site na imeghe ọkwa mkpakọ, anyị na-amụtakwu banyere nghọta na ọhụụ, yana nkọwa ndị anya anyị na-enwekarị mmetụta.

Tụkwasị na nke a, iji ihe oyiyi egwu egwu n'ụzọ dị otú a na-adọrọ mmasị.

Ka usoro JPEG si arụ ọrụ

Na-ele anya n'ime JPEG

Na kọmputa, a na-echekwa ihe niile dị ka usoro ọnụọgụ ọnụọgụ abụọ. A na-achịkọta ibe n'ibe ndị a, efu na ndị ahụ n'otu dị iche iche nke asatọ iji mejupụta bytes. Mgbe imepere onyonyo JPEG na kọmpụta, ihe (ihe nchọgharị, sistemụ arụmọrụ, ihe ọzọ) ga-enwerịrị decode bytes, weghachi onyonyo mbụ dị ka ndepụta agba nwere ike igosipụta.

Ọ bụrụ na ị download a ụtọ foto nke nwamba ma mepee ya na nchịkọta ederede, ị ga-ahụ ụyọkọ mkpụrụedemede na-enweghị njikọ.

Ka usoro JPEG si arụ ọrụ
N'ebe a, m na-eji Notepad++ nyochaa ọdịnaya dị na faịlụ ahụ, ebe ọ bụ na ndị na-edezi ederede oge niile dị ka Notepad na Windows ga-emebi faịlụ ọnụọgụ abụọ mgbe echekwara ya, ọ gaghịkwa emeju usoro JPEG.

Imepe onyonyo na igwe okwu na-agbagwoju anya kọmputa, dị ka ị na-emegharị ụbụrụ gị mgbe ị na-ehicha anya gị wee malite ịhụ ntụpọ agba!

Amara ntụpọ ndị a ị na-ahụ phosphenes, ọ bụghịkwa nsonaazụ nke mkpali ọkụ ma ọ bụ ihe nhụsianya nke uche na-emepụta. Ha na-eme n'ihi na ụbụrụ gị na-eche na ọkụ eletrik ọ bụla dị na irighiri akwara anya na-enye ozi gbasara ìhè. Ụbụrụ kwesịrị ime echiche ndị a n'ihi na ọ nweghị ụzọ isi mara ma mgbaàmà ọ bụ ụda, ọhụụ, ma ọ bụ ihe ọzọ. Ụbụrụ niile dị n'ahụ na-ebunye kpọmkwem otu mkpali eletrik. Site n'itinye nrụgide n'anya gị, ị na-eziga mgbaàmà ndị na-adịghị ahụ anya, ma mee ka ndị na-anabata anya anya, nke ụbụrụ gị na-akọwa - na nke a, na-ezighị ezi - dị ka ihe anya. Ị nwere ike ịhụ nrụgide n'ezie!

Ọ bụ ihe na-atọ ọchị iche echiche banyere otú kọmpụta yiri nke ụbụrụ si dị, ma ọ bụkwa ihe atụ bara uru iji gosi otú ihe data pụtara—ma akwara na-ebufe ya n’ahụ́ ma ọ bụ na-echekwa ya na kọmputa—na-adabere n’otú e si akọwa ya. Ihe ndekọ ọnụọgụ abụọ niile bụ 0s na 1s, ihe ndị bụ isi nwere ike ibuga ozi n'ụdị ọ bụla. Kọmputa gị na-achọpụtakarị otu esi akọwa ha site na iji akara dị ka ndọtị faịlụ. Ugbu a, anyị na-amanye ya ịkọwa ha dị ka ederede, n'ihi na nke ahụ bụ ihe nchịkọta ederede na-atụ anya.

Iji ghọta otu esi achọpụta JPEG, anyị kwesịrị ịhụ akara ngosi mbụ n'onwe ha - data ọnụọgụ abụọ. Enwere ike ime nke a site na iji ndezi hexadecimal, ma ọ bụ ozugbo na ibe weebụ edemede mbụ! Enwere onyonyo, n'akụkụ ya na mpaghara ederede bụ bytes ya niile (ma ewezuga nkụnye eji isi mee), gosipụtara n'ụdị iri. Ị nwere ike ịgbanwe ha, na script ga-re-encode na-emepụta ọhụrụ oyiyi na ofufe.

Ka usoro JPEG si arụ ọrụ

Ị nwere ike ịmụta ọtụtụ ihe naanị site n'ịkpọ onye nchịkọta akụkọ a. Dịka ọmụmaatụ, ị nwere ike ịkọ ụdị usoro echekwara pikselụ ahụ?

Ihe dị ịtụnanya banyere ihe atụ a bụ na ịgbanwe nọmba ụfọdụ adịghị emetụta ihe oyiyi ahụ ma ọlị, ma, dịka ọmụmaatụ, ọ bụrụ na ị dochie nọmba 17 na 0 na nke mbụ, foto ahụ ga-emebi kpamkpam!

Ka usoro JPEG si arụ ọrụ

Mgbanwe ndị ọzọ, dị ka iji nọmba 7 dochie 1988 na ahịrị 254, na-agbanwe agba, mana ọ bụ naanị pikselụ na-esote.

Ka usoro JPEG si arụ ọrụ

Ikekwe ihe dị ịtụnanya bụ na ọnụọgụ ụfọdụ na-agbanwe ọ bụghị naanị agba, kamakwa ọdịdị nke onyinyo ahụ. Gbanwee 70 n'ahịrị 12 ruo 2 wee lelee ahịrị elu nke onyonyo a ka ịhụ ihe m na-ekwu.

Ka usoro JPEG si arụ ọrụ

Na agbanyeghị ihe onyonyo JPEG ị na-eji, ị ga-ahụ usoro chess ndị a dị omimi mgbe ị na-edezi bytes.

Mgbe gị na onye nchịkọta akụkọ na-egwu egwu, ọ na-esiri ike ịghọta ka esi emepụta foto site na bytes ndị a, ebe ọ bụ na mkpakọ JPEG nwere teknụzụ atọ dị iche iche, etinyere n'usoro na ọkwa. Anyị ga-amụ nke ọ bụla iche iche iji kpughee omume dị omimi anyị na-ahụ.

Ọkwa atọ nke mkpakọ JPEG:

  1. Ntụle agba.
  2. Mgbanwe cosine pụrụ iche na nlele.
  3. Gbaa ngbanwe koodu ogologo, Delta и Huffman

Iji nye gị echiche nke ịdị ukwuu nke mkpakọ, mara na oyiyi n'elu na-anọchi anya 79 nọmba, ma ọ bụ banyere 819 KB. Ọ bụrụ na anyị echekwa ya na-enweghị mkpakọ, pikselụ ọ bụla ga-achọ ọnụọgụ atọ - maka akụkụ uhie, akwụkwọ ndụ akwụkwọ ndụ na acha anụnụ anụnụ. Nke a ga-abụ ọnụọgụ 79, ma ọ bụ ihe ruru. 917 KB. N'ihi mkpakọ JPEG, faịlụ ikpeazụ belatara karịa ugboro 700!

N'ezie, ihe oyiyi a nwere ike ịgbakọ karịa. N'okpuru ebe a bụ ihe oyiyi abụọ n'akụkụ n'akụkụ - foto dị n'aka nri ejikọtala na 16 KB, ya bụ, ugboro 57 dị ntakịrị karịa ụdị enweghị ike!

Ka usoro JPEG si arụ ọrụ

Ọ bụrụ na i leruo anya nke ọma, ị ga-ahụ na onyonyo ndị a abụghị otu. Ha abụọ bụ onyonyo nwere mkpakọ JPEG, mana nke ziri ezi pere mpe na olu. Ọ na-elekwa anya ka njọ (lee anya n'azụ agba agba). Ọ bụ ya mere JPEG ji na-akpọkwa mkpakọ ọnwụ; N'oge usoro mkpakọ, ihe oyiyi na-agbanwe ma tụfuo ụfọdụ nkọwa.

1. Agba subsampling

Nke a bụ onyonyo nwere naanị ọkwa mkpakọ mbụ etinyere.

Ka usoro JPEG si arụ ọrụ
(ụdị mmekọrịta - in mbụ akụkọ). Iwepu otu nọmba na-emebi agba niile. Agbanyeghị, ọ bụrụ na ewepụrụ ọnụọgụ isii kpọmkwem, ọ nweghị mmetụta ọ bụla na onyonyo a.

Ugbu a ọnụ ọgụgụ ahụ dị ntakịrị mfe ịkọwapụta. Nke a fọrọ nke nta ka ọ bụrụ ndepụta dị mfe nke agba, nke byte ọ bụla na-agbanwe kpọmkwem otu pixel, ma n'otu oge ahụ ọ dịlarị ọkara nke ihe oyiyi ahụ na-adịghị agwụ agwụ (nke ga-ewe ihe dị ka 300 KB na nha a belatara). Ị nwere ike ịma ihe kpatara ya?

Ị nwere ike ịhụ na ọnụ ọgụgụ ndị a anaghị anọchi anya ọkọlọtọ uhie, akwụkwọ ndụ akwụkwọ ndụ na-acha anụnụ anụnụ, ebe ọ bụrụ na anyị ejiri efu dochie nọmba niile, anyị ga-enweta ihe oyiyi akwụkwọ ndụ akwụkwọ ndụ (kama ịcha ọcha).

Ka usoro JPEG si arụ ọrụ

Nke a bụ n'ihi na bytes ndị a na-anọchi anya Y (ìhè),

Ka usoro JPEG si arụ ọrụ

Cb (acha anụnụ anụnụ metụtara),

Ka usoro JPEG si arụ ọrụ

na foto Cr (ihe na-acha ọbara ọbara).

Ka usoro JPEG si arụ ọrụ

Gịnị kpatara na ị gaghị eji RGB? E kwuwerị, nke a bụ otú ọtụtụ ihuenyo ọgbara ọhụrụ si arụ ọrụ. Ihe nleba anya gị nwere ike igosipụta agba ọ bụla, gụnyere uhie, akwụkwọ ndụ akwụkwọ ndụ na acha anụnụ anụnụ, nwere ike dị iche iche maka pikselụ ọ bụla. A na-enweta ọcha site na ịgbanwuo atọ ahụ na nchapụta zuru oke, yana ojii site na ịgbanyụ ha.

Ka usoro JPEG si arụ ọrụ

Nke a dịkwa nnọọ ka otú anya mmadụ si arụ ọrụ. A na-akpọ ndị na-anabata agba na anya anyị "cones", ma kewara n'ime ụdị atọ, nke ọ bụla n'ime ha na-enwe mmetụta karịa ma ọ bụ uhie, akwụkwọ ndụ akwụkwọ ndụ, ma ọ bụ acha anụnụ anụnụ [S-ụdị cones na-enwe mmetụta na violet-blue (S from the English Short - short-wave spectrum), M. -ụdị - na akwụkwọ ndụ akwụkwọ ndụ-edo edo (M si English Medium - ọkara-wave), na L-ụdị - na odo-acha ọbara ọbara (L si English Long - ogologo-wave) akụkụ nke ụdịdị dị iche iche. Ọnụnọ nke ụdị cones atọ a (na mkpanaka, nke na-enwe mmetụta na akụkụ nke emerald green nke ụdị dị iche iche) na-enye mmadụ ọhụụ agba. / ihe ruru. ntụgharị.]. Mkpisi, ụdị ọzọ nke photoreceptor na anya anyị, nwere ike ịchọpụta mgbanwe na nchapụta, ma ọ na-enwe mmetụta nke ọma na agba. Anya anyị nwere ihe dị ka nde mkpanaka 120 na naanị cones nde isii.

Nke a bụ ya mere anya anyị ji dị mma n'ịchọpụta mgbanwe na nchapụta karịa mgbanwe na agba. Ọ bụrụ na ị kewapụ agba na nchapụta, ị nwere ike wepu obere agba na ọ dịghị onye ga-ahụ ihe ọ bụla. Chroma subsampling bụ usoro nke na-anọchi anya akụkụ agba nke onyonyo na mkpebi dị ala karịa ihe ndị na-enwu ọkụ. N'ihe atụ dị n'elu, pikselụ ọ bụla nwere kpọmkwem otu akụrụngwa Y, na otu ọ bụla nke pikselụ anọ nwere kpọmkwem otu Cb na otu Cr. Ya mere, ihe oyiyi ahụ nwere ozi agba dị okpukpu anọ karịa nke mbụ.

A na-eji oghere agba YCbCr ọ bụghị naanị na JPEG. Emere ya na mbụ na 1938 maka mmemme telivishọn. Ọ bụghị onye ọ bụla nwere TV agba, yabụ ikewa agba na nchapụta mere ka onye ọ bụla nweta otu mgbaama, na TV na-enweghị agba na-eji naanị akụkụ nchapụta.

Ya mere iwepụ otu nọmba site na onye nchịkọta akụkọ na-emebi kpamkpam agba niile. A na-echekwa ihe ndị ahụ n'ụdị YYYY Cb Cr (n'ezie, ọ bụchaghị n'usoro ahụ - akọwapụtara usoro nchekwa na isi faịlụ). Iwepu nọmba mbụ ga-eme ka a ghọta uru Cb mbụ dị ka Y, Cr dị ka Cb, na n'ozuzu, ị ga-enwe mmetụta domino nke na-agbanwe agba niile nke foto a.

Nkọwa JPEG anaghị amanye gị iji YCbCr. Mana ọtụtụ faịlụ na-eji ya n'ihi na ọ na-emepụta ihe oyiyi ala ala karịa RGB. Mana ịkwesighi ịnara okwu m maka ya. Hụ onwe gị na tebụl dị n'okpuru ihe nlele nke akụrụngwa nke ọ bụla ga-adị ka ma RGB na YCbCr.

Ka usoro JPEG si arụ ọrụ
(ụdị mmekọrịta - in mbụ akụkọ).

Mwepụ nke acha anụnụ anụnụ abụghị ihe a na-ahụ anya dị ka nke uhie ma ọ bụ akwụkwọ ndụ akwụkwọ ndụ. Nke ahụ bụ n'ihi nde cones isii dị n'anya gị, ihe dịka 64% na-enwe mmetụta na-acha uhie uhie, 32% na akwụkwọ ndụ akwụkwọ ndụ na 2% na-acha anụnụ anụnụ.

Mbelata nke akụrụngwa Y (n'okpuru aka ekpe) ka a na-ahụ nke ọma. Ọbụna obere mgbanwe a na-ahụ anya.

Ịtụgharị ihe oyiyi site na RGB gaa na YCbCr anaghị ebelata nha faịlụ, mana ọ na-eme ka ọ dịkwuo mfe ịchọta nkọwa na-adịghị ahụ anya nke enwere ike iwepụ. Mkpakọ na-efunahụ na-eme na ọkwa nke abụọ. Ọ dabere n'echiche nke ịnye data n'ụdị mpikota onu karịa.

2. Discrete cosine mgbanwe na sampling

Ọkwa mkpakọ a bụ, maka ọtụtụ akụkụ, ihe JPEG bụ ihe niile. Mgbe n'ịtụgharị agba na YCbCr, components na-abịakọrọ n'otu n'otu, otú anyị nwere ike mgbe ahụ lekwasị anya na naanị Y akụrụngwa na-ele anya mgbe itinye a oyi akwa.

Ka usoro JPEG si arụ ọrụ
(ụdị mmekọrịta - in mbụ akụkọ). Na ụdị mmekọrịta, ịpị pikselụ mpịakọta na-edezi onye na-edezi na ahịrị na-anọchi anya ya. Gbalịa wepụ nọmba site na njedebe ma ọ bụ tinye ntakịrị efu na nọmba ụfọdụ.

Na ilele mbụ, ọ dị ka mkpakọ dị oke njọ. Enwere pikselụ 100 na onyonyo, ọ na-ewe nọmba 000 iji gosipụta nchapụta ha (ihe ndị mejupụtara Y) - nke ahụ dị njọ karịa ịkpakọba ihe ọ bụla ma ọlị!

Agbanyeghị, mara na ọtụtụ n'ime ọnụọgụ ndị a bụ efu. Ọzọkwa, ndị niile efu na njedebe nke ahịrị nwere ike wepụ na-enweghị ịgbanwe oyiyi. Enwere ihe dị ka ọnụọgụ 26 fọdụrụ, nke a fọrọ nke nta ka ọ bụrụ okpukpu anọ!

Ọkwa a nwere ihe nzuzo nke usoro chess. N'adịghị ka mmetụta ndị ọzọ anyị hụworo, ọdịdị nke usoro ndị a abụghị ihe na-adịghị mma. Ha bụ ihe ndọbanyere ihe oyiyi ahụ dum. Ahịrị ọ bụla nke onye ndezi nwere ọnụọgụ 64, ọnụọgụ cosine mgbanwe (DCT) dabara na ike nke ụkpụrụ 64 pụrụ iche.

A na-emepụta ụkpụrụ ndị a dabere na nkata cosine. Nke a bụ ka ụfọdụ n'ime ha dị:

Ka usoro JPEG si arụ ọrụ
8 n'ime 64

N'okpuru bụ onyonyo na-egosi ụkpụrụ 64 niile.

Ka usoro JPEG si arụ ọrụ
(ụdị mmekọrịta - in mbụ akụkọ).

Usoro ndị a dị ezigbo mkpa n'ihi na ha na-etolite ntọala nke onyonyo 8x8. Ọ bụrụ na ị maghị algebra linear, nke a pụtara na enwere ike ịme onyonyo ọ bụla 8x8 site na usoro 64 ndị a. DCT bụ usoro nke kewaa onyonyo ka ọ bụrụ ngọngọ 8 × 8 na ịtụgharị ngọngọ ọ bụla ka ọ bụrụ ngwakọta nke ọnụọgụ 64 ndị a.

Ọ dị ka anwansi na ihe oyiyi ọ bụla nwere ike ịgụnye usoro 64 kpọmkwem. Otú ọ dị, nke a bụ otu ihe ahụ na-ekwu na ebe ọ bụla n'ụwa nwere ike ịkọwa site na ọnụọgụ abụọ - latitude na longitude [na-egosi hemispheres / approx. ntụgharị.]. Anyị na-echekarị maka elu ụwa dị ka akụkụ abụọ, yabụ naanị ọnụọgụ abụọ ka anyị chọrọ. Onyonyo 8x8 nwere akụkụ 64, yabụ anyị chọrọ ọnụọgụ 64.

Amabeghị ka nke a si enyere anyị aka n'ihe gbasara mkpakọ. Ọ bụrụ na anyị chọrọ nọmba 64 iji nọchite anya onyonyo 8 × 8, gịnị kpatara nke a ga-eji dị mma karịa naanị ịchekwa ngwa 64 nchapụta? Anyị na-eme nke a maka otu ihe mere anyị ji tụgharịa ọnụọgụ RGB atọ ka ọ bụrụ nọmba YCbCr atọ: ọ na-enye anyị ohere iwepu nkọwa aghụghọ.

Ọ na-esiri ike ịhụ kpọmkwem nkọwa ndị ewepụrụ n'oge a n'ihi na JPEG na-emetụta DCT na 8x8 blocks. Otú ọ dị, ọ dịghị onye na-amachibido anyị itinye ya na foto dum. Nke a bụ ihe DCT dị maka akụrụngwa Y etinyere na foto niile:

Ka usoro JPEG si arụ ọrụ

Enwere ike iwepụ ihe karịrị ọnụọgụ 60 na njedebe na-enweghị mgbanwe ọ bụla na foto ahụ.

Ka usoro JPEG si arụ ọrụ

Agbanyeghị, rịba ama na ọ bụrụ na anyị ewepụ ọnụọgụ ise mbụ, ọdịiche ahụ ga-apụta ìhè.

Ka usoro JPEG si arụ ọrụ

Ọnụọgụ ndị dị na mmalite na-anọchi anya mgbanwe dị ala ugboro ugboro na oyiyi ahụ, nke anya anyị na-ewere nke ọma. Ọnụọgụ na-aga n'isi njedebe na-egosi mgbanwe n'ogo dị elu nke siri ike ịhụ. Iji “hụ ihe anya na-apụghị ịhụ,” anyị nwere ike kewapụ nkọwa ndị a dị elu site na iwepu nọmba 5000 mbụ.

Ka usoro JPEG si arụ ọrụ

Anyị na-ahụ akụkụ niile nke onyonyo a ebe mgbanwe kachasị ukwuu sitere na pikselụ gaa na pikselụ. Anya nwamba, afụ ọnụ ya, blanketị terry na onyinyo dị n'akụkụ aka ekpe nke ala pụtara pụtara ìhè. Ị nwere ike ịga n'ihu site n'iwepụ nọmba 10 mbụ:

Ka usoro JPEG si arụ ọrụ

20: 000: XNUMX

Ka usoro JPEG si arụ ọrụ

40: 000: XNUMX

Ka usoro JPEG si arụ ọrụ

60: 000: XNUMX

Ka usoro JPEG si arụ ọrụ

JPEG na-ewepụ nkọwa ndị a dị elu n'oge oge mkpakọ. Enweghị mfu na ịtụgharị agba ka ọ bụrụ ọnụọgụ DCT. Ọnwụ na-apụta n'usoro nlele, ebe ewepụrụ ụkpụrụ dị elu ma ọ bụ nso efu. Mgbe ị na-agbada àgwà nchekwa JPEG, mmemme ahụ na-abawanye ọnụ ụzọ maka ọnụ ọgụgụ nke ụkpụrụ ewepụrụ, nke na-ebelata nha faịlụ, mana na-eme ka foto ahụ dịkwuo pixel. Ọ bụ ya mere ihe oyiyi dị na ngalaba nke mbụ, nke dị okpukpu 57 dị ntakịrị, yiri nke a. Nchikota 8 × 8 ọ bụla bụ ọnụọgụ DCT dị ole na ole ma e jiri ya tụnyere ụdị dị elu dị elu.

Ị nwere ike ịmepụta mmetụta dị mma dị ka iji nwayọọ nwayọọ na-agbanye ihe oyiyi. Ị nwere ike igosipụta foto na-adịghị ahụkebe nke na-aghọwanye nkọwa karịa ka ebudatara ọnụ ọgụgụ ndị ọzọ.

Ebe a, naanị maka ntụrụndụ, bụ ihe ị na-enweta site na iji naanị nọmba 24:

Ka usoro JPEG si arụ ọrụ

Ma ọ bụ naanị 5000:

Ka usoro JPEG si arụ ọrụ

Ọ na-agba agba nke ukwuu, mana n'ụzọ ụfọdụ a na-amata ya!

3. Gbaa ngbanwe ogologo oge, delta na Huffman

Ka ọ dị ugbu a, usoro mkpakọ niile adịla n'iyi. Oge ikpeazụ, n'ụzọ megidere nke ahụ, na-aga n'ihu na-enweghị mfu. Ọ naghị ehichapụ ozi, mana ọ na-ebelata nha faịlụ nke ukwuu.

Kedu ka ị ga-esi mpikota ihe na-atụfughị ​​ozi? Cheedị otú anyị ga-esi kọwaa akụkụ anọ ojii dị mfe 700 x 437.

JPEG na-eji ọnụọgụ 5000 maka nke a, mana enwere ike nweta nsonaazụ kacha mma. Ị nwere ike ichetụ n'echiche atụmatụ ntinye koodu nke ga-akọwa ihe oyiyi dị otú ahụ na ole na ole bytes dị ka o kwere mee?

Obere atụmatụ m nwere ike iwepụta na-eji anọ: atọ na-anọchi anya agba, na nke anọ iji gosi ole pikselụ agba ahụ nwere. Echiche nke na-anọchi anya ụkpụrụ ugboro ugboro n'ụzọ a condensed a na-akpọ ọsọ-ogologo encoding. Ọ bụ enweghị efu n'ihi na anyị nwere ike iweghachi data etinyere n'ụdị mbụ ya.

Faịlụ JPEG nwere akụkụ anọ ojii buru ibu karịa 4 bytes - cheta na na ọkwa DCT, a na-etinye mkpakọ na 8 × 8 pixel blocks. Ya mere, na opekempe, anyị chọrọ otu ọnụọgụ DCT maka pikselụ 64 ọ bụla. Anyị chọrọ otu n'ihi na kama ịchekwa otu ọnụọgụ DCT na-esote zeros 63, ịgba ọsọ ogologo na-enye anyị ohere ịchekwa otu nọmba ma gosi na "ndị ọzọ niile bụ efu."

Delta ngbanwe bụ usoro nke byte ọ bụla nwere ihe dị iche na uru ụfọdụ karịa uru zuru oke. Ya mere, idezi ụfọdụ bytes na-agbanwe agba nke pikselụ ndị ọzọ niile. Dịka ọmụmaatụ, kama ịchekwa

12 13 14 14 14 13 13 14

Anyị nwere ike ịmalite na 12 wee gosi naanị ole anyị kwesịrị ịgbakwunye ma ọ bụ wepụ iji nweta nọmba na-esote. Na usoro a na koodu delta na-ewere ụdị a:

12 1 1 0 0 -1 0 1

The converted data adịghị nta karịa nke mbụ data, ma ọ dị mfe mpikota onu ya. Itinye ngbanwe delta tupu ịgba ọsọ ngbanwe ogologo nwere ike inye aka nke ukwuu mgbe ọ ka na-enwe mkpakọ na-enweghị atụ.

Delta nzuzo bụ otu n'ime usoro ole na ole ejiri na mpụga nke 8x8 blocks. N'ime ọnụọgụ 64 DCT, otu bụ naanị ọrụ ebili mmiri na-adịgide adịgide (agba siri ike). Ọ na-anọchi anya nkezi nchapụta nke ngọngọ ọ bụla maka akụkụ luma, ma ọ bụ nkezi blueness maka ihe ndị Cb, na ndị ọzọ. Uru mbụ nke ngọngọ DCT ọ bụla ka a na-akpọ uru DC, na ọnụ ahịa DC ọ bụla bụ delta nke etinyere n'ihe gbasara ndị gara aga. Ya mere, ịgbanwe nchapụta nke ngọngọ mbụ ga-emetụta ihe mgbochi niile.

Ihe omimi ikpeazụ ka dị: kedu ka ịgbanwe otu onye si emebi foto niile kpamkpam? Ka ọ dị ugbu a, ọkwa mkpakọ enwebeghị ihe ndị dị otú ahụ. Azịza ya dị na nkụnye eji isi mee JPEG. Bytes 500 nke mbụ nwere metadata gbasara onyonyo a - obosara, ịdị elu, wdg, anyị na ha arụbeghị ọrụ.

Enweghị nkụnye eji isi mee ọ fọrọ nke nta ka ọ gaghị ekwe omume (ma ọ bụ ihe siri ike) ịtọpụta JPEG. Ọ ga-adị ka a ga-asị na m na-agbalị ịkọwara gị foto a, m na-amalite chepụta okwu iji gosi echiche m. Ọ ga-abụ na nkọwa ahụ ga-agbakọ nke ọma, ebe m nwere ike chepụta okwu nwere kpọmkwem ihe m chọrọ ịkọwa, mana maka onye ọ bụla ọzọ, ha agaghị enwe isi.

Ọ na-ada nzuzu, mana nke ahụ bụ kpọmkwem ihe na-eme. A na-ejikọta onyonyo JPEG ọ bụla na koodu akọwapụtara maka ya. A na-echekwa akwụkwọ ọkọwa okwu koodu na nkụnye eji isi mee. A na-akpọ usoro a koodu Huffman na okwu a na-akpọ tebụl Huffman. Na nkụnye eji isi mee, a na-eji tebụl abụọ akara - 255 na mgbe ahụ 196. Akụkụ agba ọ bụla nwere ike inwe tebụl nke ya.

Mgbanwe na tebụl ga-emetụta ihe oyiyi ọ bụla kpamkpam. Ezi ihe atụ bụ ịgbanwe ahịrị 15 ka ọ bụrụ 1.

Ka usoro JPEG si arụ ọrụ

Nke a na-eme n'ihi na tebụl na-akọwapụta ka ekwesịrị ịgụta ibe n'otu n'otu. Ruo ugbu a, anyị ejirila ọnụọgụ ọnụọgụ abụọ rụọ ọrụ n'ụdị iri. Mana nke a na-ezochi anyị eziokwu ahụ bụ na ọ bụrụ na ịchọrọ ịchekwa nọmba 1 na byte, ọ ga-adị ka 00000001, ebe ọ bụ na ọ bụla byte ga-enwerịrị nkenke asatọ, ọ bụrụgodị na ọ bụ naanị otu n'ime ha chọrọ.

Nke a nwere ike ịbụ nnukwu mkpofu ohere ma ọ bụrụ na ị nwere ọnụ ọgụgụ dị nta. Koodu Huffman bụ usoro nke na-enye anyị ohere izu ike nke a chọrọ na ọnụọgụ ọ bụla ga-enwerịrị nkeji asatọ. Nke a pụtara na ọ bụrụ na ị hụ bytes abụọ:

234 115

Mgbe ahụ, dabere na tebụl Huffman, ndị a nwere ike ịbụ ọnụọgụ atọ. Iji wepụ ha, ị ga-ebu ụzọ kewaa ha n'ime ibe n'otu n'otu:

11101010 01110011

Mgbe ahụ, anyị na-eleba anya na tebụl iji chọpụta otú e si achịkọta ha. Dịka ọmụmaatụ, nke a nwere ike ịbụ nkeji isii mbụ, (111010), ma ọ bụ 58 na nkeji iri, na-esote ibe n'ibe ise (10011), ma ọ bụ 19, na n'ikpeazụ nkeji anọ ikpeazụ (0011), ma ọ bụ 3.

Ya mere, ọ na-esiri ike ịghọta bytes n'oge a nke mkpakọ. Bytes anaghị anọchi anya ihe ha dị. Agaghị m abanye nkọwa nke ịrụ ọrụ na tebụl n'isiokwu a, ma ihe na nke a online zuru ezu.

Otu aghụghọ na-adọrọ mmasị ị nwere ike iji ihe ọmụma a mee bụ ikewapụ nkụnye eji isi mee na JPEG ma chekwaa ya iche. N'ezie, ọ na-apụta na ọ bụ naanị gị nwere ike ịgụ faịlụ ahụ. Facebook na-eme nke a iji mee ka faịlụ dị ntakịrị.

Ihe ọzọ enwere ike ime bụ ịgbanwe tebụl Huffman ntakịrị. Maka ndị ọzọ ọ ga-adị ka foto agbajiri agbaji. Na naanị gị ga-ama ụzọ anwansi iji dozie ya.

Ka anyị chịkọta: yabụ kedu ihe achọrọ iji decode JPEG? Ọ dị mkpa:

  1. Wepụ tebụl Huffman na nkụnye eji isi mee wee dekọọ ibe n'ibe.
  2. Wepụ ọnụọgụ mgbanwe cosine pụrụ iche maka agba ọ bụla yana ihe na-enwu ọkụ maka ngọngọ 8 × 8 ọ bụla, na-eme mgbanwe mgbanwe ogologo ogologo na delta.
  3. Jikọta cosines dabere na ọnụọgụgụ iji nweta ụkpụrụ pikselụ maka ngọngọ 8 × 8 ọ bụla.
  4. Gbanwee ihe mejupụtara agba ma ọ bụrụ na emere subsampling (ozi a dị na nkụnye eji isi mee).
  5. Tụgharịa ụkpụrụ YCbCr ga-apụta maka pixel ọ bụla ka ọ bụrụ RGB.
  6. Gosipụta onyonyo na ihuenyo!

Ọrụ siri ike maka naanị ile foto na pusi! Otú ọ dị, ihe na-amasị m banyere ya bụ na ọ na-egosi otú nkà na ụzụ JPEG si dị na mmadụ. Ọ dabeere na peculiarities nke anyị nghọta, ikwe ka anyị nweta nnọọ mma mkpakọ karịa ot teknụzụ. Ma ugbu a na anyị ghọtara ka JPEG si arụ ọrụ, anyị nwere ike iche n'echiche otú e nwere ike isi nyefee teknụzụ ndị a na mpaghara ndị ọzọ. Dịka ọmụmaatụ, ntinye koodu delta na vidiyo nwere ike inye mbelata dị ukwuu na nha faịlụ, ebe ọ bụ na a na-enwekarị mpaghara niile na-adịghị agbanwe site na etiti gaa na etiti (dịka ọmụmaatụ, ndabere).

Koodu eji n'ime edemede, meghere, ma nwee ntuziaka maka otu esi edochi foto nke gị.

isi: www.habr.com

Tinye a comment