Sida qaabka JPEG u shaqeeyo

Sawirada JPEG waa kuwo ku baahsan nolosheena dhijitaalka ah, laakiin gadaasha wacyigelintan waxaa ka mid ah algorithms kuwaas oo meesha ka saaraya tafaasiisha aan la fahmi karin isha aadanaha. Natiijadu waa tayada muuqaalka ugu sareysa ee cabbirka faylka ugu yar - laakiin sidee ayay u wada shaqeeyaan? Aynu aragno waxa dhabta ah ee aanay indhaheenu arkin!

Sida qaabka JPEG u shaqeeyo

Way fududahay in si dhab ah loo qaato awoodda sawir loogu diri karo saaxiib oo ha ka welwelin aaladda, browserka ama nidaamka hawlgalka ay isticmaalayaan - laakiin taasi had iyo jeer may ahayn kiiska. Horraantii 1980-aadkii, kombuyuutarada ayaa kaydin kara oo soo bandhigi kara sawirro dhijitaal ah, laakiin waxaa jiray fikrado badan oo tartamaya oo ku saabsan habka ugu wanaagsan ee tan loo sameeyo. Kaliya kama soo diri karin sawir kombuyuutar kale oo aad rajaynayso inuu shaqayn doono.

Si loo xaliyo dhibaatadan, guddi khubaro ah oo ka kala yimid adduunka oo dhan ayaa la isugu keenay 1986-kii oo la yiraahdo "Kooxda Wadajirka ah ee Khubarada Sawir qaadista» (Kooxda Khubarada Sawirada ee Wadajirka ah, JPEG), oo loo aasaasay dadaal wadajir ah oo u dhexeeya Ururka Caalamiga ah ee Halbeega (ISO) iyo Guddiga Farsamada Caalamiga ah ee Electrotechnical (IEC), oo ah laba hay'adood oo heer caalami ah oo xaruntoodu tahay Geneva, Switzerland.

Koox dad ah oo loo yaqaan JPEG ayaa sameeyay heerka isku-buufinta sawirka dhijitaalka ah ee JPEG sannadkii 1992-kii. Qofkasta oo isticmaalay intarneedka waxa ay u badantahay in uu la kulmay sawirada JPEG ku xidhan. Tani waa habka ugu badan ee lagu koodka, dirida iyo kaydinta sawirada Laga soo bilaabo boggaga internetka ilaa iimaylka ilaa warbaahinta bulshada, JPEG waxa la isticmaalaa balaayiin jeer maalintii - ku dhawaad ​​​​mar kasta oo aan sawir ku aragno khadka ama dirno. JPEG la'aanteed, shabku wuu yaraan lahaa midab, gaabis, oo malaha wuxuu yeelan lahaa sawiro bisado ka yar!

Maqaalkani waxa uu ku saabsan yahay sida loo dejiyo sawirka JPEG. Si kale haddii loo dhigo, waxa loo baahan yahay si loogu beddelo xogta cufan ee ku kaydsan kombuyuutarka loona beddelo sawir ka soo muuqda shaashadda. Tani waxay mudan tahay in la ogaado, ma aha oo kaliya sababtoo ah waa muhiim in la fahmo tignoolajiyada aan isticmaalno maalin kasta, laakiin sidoo kale sababtoo ah furitaanka heerarka cadaadiska, waxaan wax badan ka baranaa aragtida iyo aragga, iyo faahfaahinta ay indhaheenu u nugul yihiin.

Intaa waxaa dheer, ku ciyaarista sawirada qaabkan waa mid aad u xiiso badan.

Sida qaabka JPEG u shaqeeyo

Eegitaanka gudaha JPEG

Kumbiyuutarka, wax walba waxaa loo kaydiyaa sida isku xigxiga lambarrada binary. Caadi ahaan kuwan bits, eber iyo kuwa, ayaa loo qaybiyaa kooxo siddeed ah si ay u sameeyaan bytes. Marka aad furto sawirka JPEG kombayutarka, wax (browser, Operating system, wax kale) waa in ay go'aamiyaan byteska, soo celinta sawirka asalka ah sida liiska midabada la soo bandhigi karo.

Haddii aad soo dejiso tan macaan sawir bisad oo ku fur tifaftiraha qoraalka, waxaad arki doontaa jilayaal badan oo aan is-khilaafsaneyn.

Sida qaabka JPEG u shaqeeyo
Halkan waxaan isticmaalaya Notepad++ si aan u baadho waxa ku jira faylka, mar haddii tifaftirayaasha caadiga ah sida Notepad ee Windows ay kharribi doonaan faylka binary ka dib markii ay kaydiyaan oo ma qancin doonto qaabka JPEG.

Sawirka oo aad ka furto processor-ka word-ka waxa ay jahawareerisaa kombiyuutarka, sida aad maskaxdaada u wareerto marka aad indhahaaga xoqdo oo aad bilowdo in aad aragto dhibco midab leh!

Meelahan aad aragto waxaa loo yaqaan phosphenes, oo aan ahayn natiijada kicinta iftiinka ama dhalanteed ay maskaxdu dhaliso. Waxay u dhacaan sababtoo ah maskaxdaadu waxay u malaynaysaa in calaamadaha korantada ee dareemayaasha indhaha ay gudbiyaan macluumaadka ku saabsan iftiinka. Maskaxdu waxay u baahan tahay inay samayso malo-awaalkan sababtoo ah ma jirto si loo ogaado haddii calaamaduhu tahay dhawaaq, aragti, ama wax kale. Dhammaan neerfayaasha jidhku waxay gudbiyaan dareen koronto oo isku mid ah. Adigoo cadaadis saaraya indhahaaga, waxaad soo dirtaa calaamado aan muuqaal ahayn, laakiin waxaad dhaqaajisaa daaweeyayaasha isha, taasoo maskaxdaadu u fasirto - kiiskan, si khaldan - wax muuqaal ah. Waxaad dhab ahaantii arki kartaa cadaadiska!

Waa wax lagu qoslo in laga fikiro sida kombuyuutarku ula mid yihiin maskaxda, laakiin sidoo kale waa isbarbar faa'iido leh si loo muujiyo inta macnaha xogta - haddii ay jidhka ku qaadaan neerfayaasha ama lagu kaydiyo kombiyuutarka - waxay ku xiran tahay sida loo fasiro. Dhammaan xogta binary waxay ka kooban tahay 0s iyo 1s, qaybaha aasaasiga ah ee gudbin kara macluumaadka nooc kasta. Kumbuyuutarkaaga ayaa inta badan xisaabiya sida loo fasiro iyaga oo isticmaalaya tilmaamo sida kordhinta faylka. Hadda waxaan ku qasbanahay inay u fasirto qoraal ahaan, sababtoo ah taasi waa waxa tafatiraha qoraalka uu filayo.

Si loo fahmo sida loo go'aamiyo JPEG, waxaan u baahanahay inaan aragno calaamadaha asalka ah laftooda - xogta binary. Tan waxaa lagu samayn karaa iyadoo la isticmaalayo tifaftiraha hexadecimal, ama si toos ah bogga maqaalka asalka ah! Waxa jira sawir, kaas oo ku xiga goobta qoraalka ay ku yaalliin dhammaan bytes (marka laga reebo madaxa), oo lagu soo bandhigay qaab jajab tobanle. Waad bedeli kartaa iyaga, oo qoraalka ayaa dib-u-dejin doona oo soo saari doona sawir cusub oo duullimaad ah.

Sida qaabka JPEG u shaqeeyo

Waxaad wax badan ka baran kartaa adigoo la ciyaaraya tafatirahan. Tusaale ahaan, ma sheegi kartaa sida ay pixels-ku u kala horreeyaan?

Waxyaabaha la yaabka leh ee tusaalahan ku saabsan ayaa ah in beddelidda tirooyinka qaarkood aysan wax saameyn ah ku yeelan sawirka gabi ahaanba, laakiin, tusaale ahaan, haddii lambarka 17 lagu beddelo 0 ee safka hore, sawirku gabi ahaanba wuu burburayaa!

Sida qaabka JPEG u shaqeeyo

Isbeddellada kale, sida ku beddelka 7 ee xariiqda 1988 ee lambarka 254, ayaa beddela midabka, laakiin kaliya pixels xiga.

Sida qaabka JPEG u shaqeeyo

Waxaa laga yaabaa in waxa ugu yaabka leh ay tahay in tirooyinka qaarkood ay beddelaan midabka oo kaliya, laakiin sidoo kale qaabka sawirka. U beddel 70 ka safka 12 ilaa 2 oo eeg safka sare ee sawirka si aad u aragto waxa aan ula jeedo.

Sida qaabka JPEG u shaqeeyo

Si kastaba ha ahaatee sawirka JPEG ee aad isticmaasho, waxaad had iyo jeer ka heli doontaa qaababkan chess-ka ee dahsoon markaad tafatirayso bytes-ka.

Marka aad la ciyaareyso tifaftiraha, way adag tahay in la fahmo sida sawir looga sameeyay bytes-kan, maadaama JPEG-gu ka kooban yahay saddex tignoolajiyad oo kala duwan, oo si isdaba joog ah loogu dabaqay heerar. Mid walba si gaar ah ayaan u baran doonaa si aan u daaha ka qaadno dhaqanka dahsoon ee aan aragno.

Saddexda heer ee cadaadiska JPEG:

  1. Midabka qaybinta.
  2. Isbedelka cosine Discrete iyo muunad.
  3. Orod dhererka codaynta, delta и Huffman

Si aad fikrad ku siiso baaxadda cadaadiska, ogow in sawirka kore uu ka dhigan yahay 79 lambar, ama qiyaastii 819 KB. Haddii aan ku kaydinno iyada oo aan la riixin, pixel kastaa wuxuu u baahan yahay saddex lambar - qaybaha casaanka, cagaarka iyo buluugga. Tani waxay noqon doontaa 79 lambar, ama qiyaastii. 917 KB. Natiijadu tahay cadaadis JPEG, faylka ugu dambeeya ayaa la dhimay in ka badan 700 jeer!

Dhab ahaantii, sawirkan waxaa lagu cadaadin karaa in ka badan. Hoos waxaa ku yaal laba sawir oo dhinac ah - sawirka midigta ayaa la isku dhejiyay ilaa 16 KB, taas oo ah, 57 jeer ka yar nooca aan la isku dhejin!

Sida qaabka JPEG u shaqeeyo

Haddii aad si dhow u eegto, waxaad arki doontaa in sawiradani aanay isku mid ahayn. Labaduba waa sawirro leh cadaadis JPEG, laakiin kan saxda ah ayaa aad uga yar mugga. Waxa kale oo ay u muuqataa mid ka sii xun (fiiri afargeesyada midabka asalka ah). Taasi waa sababta JPEG sidoo kale loogu yeero cadaadis lumis; Inta lagu jiro habka isku-buufinta, sawirku wuu isbedelaa oo lumiyaa faahfaahinta qaarkood.

1. Midab hoosaadka

Halkan waxaa ah sawir leh kaliya heerka koobaad ee cadaadiska.

Sida qaabka JPEG u shaqeeyo
(Nooca is dhexgalka - in asalka ah maqaallo). Ka saarida hal lambar waxay burburisaa dhammaan midabada. Si kastaba ha ahaatee, haddii lixda lambar la saaro, wax saameyn ah kuma laha sawirka.

Hadda tirooyinka ayaa yara fudud si loo kala saaro. Tani waxay ku dhowdahay liis fudud oo midabyo ah, kaas oo byte kastaa uu si sax ah u beddelayo hal pixel, laakiin isla markaaba waa kala badh cabbirka sawirka aan la isku dhejin (kaas oo qaadan doona qiyaastii 300 KB cabbirkan la dhimay). Ma qiyaasi kartaa sababta?

Waxaad arki kartaa in tirooyinkani aysan matalin qaybaha caadiga ah ee casaanka, cagaarka iyo buluugga, maadaama haddii aan ku beddelno dhammaan tirooyinka eber, waxaan heli doonnaa sawir cagaaran (halkii caddaan).

Sida qaabka JPEG u shaqeeyo

Tani waa sababta oo ah baytayadani waxay u taagan yihiin Y (iftiin),

Sida qaabka JPEG u shaqeeyo

Cb (buluug qaraabo ah),

Sida qaabka JPEG u shaqeeyo

iyo Cr (casaan qaraabo) sawiro.

Sida qaabka JPEG u shaqeeyo

Waa maxay sababta aan loo isticmaalin RGB? Ka dib oo dhan, tani waa sida ugu badan ee shaashadaha casriga ah u shaqeeyaan. Kormeerahaagu wuxuu soo bandhigi karaa midab kasta, oo ay ku jiraan casaan, cagaar iyo buluug, oo leh xoogaa kala duwan pixel kasta. Caddaan waxaa lagu helaa iyadoo saddexdaba la shido oo dhalaal buuxa leh, iyo madow marka la damiyo.

Sida qaabka JPEG u shaqeeyo

Tani waxay sidoo kale aad ugu egtahay sida ay u shaqeyso isha bini'aadamka. Dareemayaasha midabka indhahayaga waxaa loo yaqaan "koollada", waxaana loo qaybiyaa saddex nooc, kuwaas oo mid kastaa uu aad ugu nugul yahay midabada casaanka, cagaarka, ama buluugga ah [Koojiyeyaasha nooca S-du waxay xasaasi u yihiin buluug-buluuga (S ka Ingiriisi Gaaban - gaaban-mawjada gaaban), M nooca - ee cagaar-jaalle (M ka Ingiriisi Dhexdhexaad - hir dhexdhexaad ah), iyo nooca L - ee jaalaha-cas (L ka Ingiriisi Long - hir-dheer) qaybaha spectrum. Joogitaanka saddexdan nooc ee koollada (iyo ulo, kuwaas oo xasaasi u ah qaybta cagaarka ah ee emerald ee spectrum) waxay siinaysaa qofka aragtida midabka. / qiyaastii. turjumi.]. Ulaha, nooc kale oo sawir-qaade ah oo indhaheenna ah, ayaa awood u leh inuu ogaado isbeddellada dhalaalka, laakiin aad ayuu u nugul yahay midabka. Indhahayagu waxay leeyihiin ilaa 120 milyan oo ulo ah iyo 6 milyan oo koon oo keliya.

Tani waa sababta ay indhaheenu aad ugu fiican yihiin ogaanshaha isbeddelada dhalaalka marka loo eego isbeddellada midabka. Haddii aad kala soocdo midabka iyo dhalaalka, waxaad ka saari kartaa midab yar oo qofna waxba ma dareemi doono. Qayb-hoosaadka Chroma waa habka lagu matalo qaybaha midabka sawirka oo ka hooseeya qaybaha iftiinka. Tusaalaha kore, pixel kastaa wuxuu leeyahay hal qayb oo Y ah, koox kasta oo ka kooban afar pixels waxay leedahay hal Cb iyo hal Cr. Sidaa darteed, sawirku wuxuu ka kooban yahay afar jeer ka yar macluumaadka midabka asalka ah.

Meesha midabka YCbCr looma isticmaalo JPEG oo keliya. Waxaa markii hore la alifay 1938-kii oo loogu talagalay barnaamijyada telefishinka. Qof kastaa ma haysto TV midab leh, markaa kala soocida midabka iyo dhalaalka ayaa u ogolaatay qof walba inuu helo calaamad isku mid ah, iyo TV-yada aan midabka lahayn waxay si fudud u isticmaali jireen kaliya qaybta iftiinka.

Markaa ka saarida hal lambar oo tifaftiraha ayaa gebi ahaanba burburisay dhammaan midabada. Qaybaha waxaa lagu kaydiyaa qaabka YYYY Cb Cr (xaqiiqda, maahan sida ay u kala horreeyaan - nidaamka kaydinta ayaa lagu qeexay madaxa faylka). Ka saarida nambarka koowaad waxay keenaysaa in qiimaha ugu horreeya ee Cb loo arko Y, Cr sida Cb, iyo guud ahaan waxaad yeelan doontaa saameyn domino ah oo beddeleysa dhammaan midabada sawirka.

Tilmaamaha JPEG kuguma qasbi doono inaad isticmaasho YCbCr. Laakiin faylasha intooda badani way isticmaalaan sababtoo ah waxay soo saartaa sawiro la soo koobay oo ka wanaagsan RGB. Laakin uma baahnid inaad hadalkayga u qaadato. Naftaadu u fiirso shaxda hoose sida qayb-hoosaadka qayb kasta oo gaar ahi u ekaan doono RGB iyo YCbCr labadaba.

Sida qaabka JPEG u shaqeeyo
(Nooca is dhexgalka - in asalka ah maqaallo).

Ka saarista buluuga maaha mid la dareemo sida casaanka ama cagaarka. Taasi waa sababta oo ah lixda milyan ee koon ee indhahaaga, qiyaastii 64% waxay u nugul yihiin casaan, 32% cagaar iyo 2% buluug.

Hoos u dhigista qaybta Y (bidix hoose) ayaa si fiican loo arkay. Xitaa isbeddel yar ayaa la dareemi karaa.

Ka beddelashada sawirka RGB una beddelo YCbCr ma dhimayso cabbirka faylka, laakiin waxay sahlaysaa in la helo tafaasiil yar oo muuqda oo meesha laga saari karo. Isku-buufinta luminta waxay dhacdaa marxaladda labaad. Waxay ku salaysan tahay fikradda ah soo bandhigida xogta qaab badan oo cadaadis leh.

2. Isbedelka cosine Discrete iyo muunad

Heerkan cadaadisku waa, inta badan, waxa JPEG ku saabsan yahay. Ka dib marka loo beddelo midabada YCbCr, qaybaha si gaar ah ayaa loo cufan, markaa waxaan markaas xoogga saari karnaa kaliya qaybta Y Oo waa kan sida ay u egyihiin qaybta Y ka dib marka la isticmaalo lakabkan.

Sida qaabka JPEG u shaqeeyo
(Nooca is dhexgalka - in asalka ah maqaallo). Nooca isdhexgalka, gujinta pixel waxay u rogi tifaftiraha xariiqda matalaysa. Isku day inaad ka saarto nambarada dhamaadka ama ku darto dhawr eber nambar gaar ah.

Jaleecada hore, waxay u egtahay cadaadis aad u xun. Sawirka waxa ku jira 100 pixels, waxaanay qaadataa 000 nambar si ay u muujiyaan dhalaalkooda (Qaybaha Y)—taasi ayaa ka sii xun in aan waxba la cadaadin!

Si kastaba ha ahaatee, ogow in badi tirooyinkan ay yihiin eber. Waxaa intaa dheer, dhammaan eberyada dhamaadka xariiqyada waa laga saari karaa iyada oo aan la beddelin sawirka. Waxaa hadhay ilaa 26 oo tirooyinka, tanina waa ku dhawaad ​​000 jeer ka yar!

Heerkani wuxuu ka kooban yahay sirta qaababka shaxanka. Si ka duwan saameynaha kale ee aan aragnay, muuqaalka qaababkaan ma aha cillad. Waxay yihiin dhismooyinka sawirka oo dhan. Xariiq kasta oo tifaftiruhu wuxuu ka kooban yahay 64 lambar oo sax ah, isku-duwayaasha isbeddelka cosine-ka ee discrete (DCT) oo u dhiganta xoojinta 64 qaab oo gaar ah.

Qaababkaan waxaa loo sameeyay iyadoo lagu salaynayo goobta kosinka. Waa kuwan sida ay qaarkood u egyihiin:

Sida qaabka JPEG u shaqeeyo
8 ka mid ah 64

Hoos waxaa ku yaal sawir muujinaya dhammaan 64 qaab

Sida qaabka JPEG u shaqeeyo
(Nooca is dhexgalka - in asalka ah maqaallo).

Nidaamyadani waxay leeyihiin muhiimad gaar ah sababtoo ah waxay aasaas u yihiin sawirada 8x8. Haddii aadan aqoon u lahayn aljabrada toosan, tani waxay la macno tahay in sawir kasta oo 8x8 ah laga samayn karo 64-kan qaab. DCT waa habka loo qaybiyo sawirada 8x8 blocks oo loogu badalo baloog kasta isku-darka 64-tan.

Waxay u egtahay sixir in sawir kasta uu ka koobnaan karo 64 qaab oo gaar ah. Si kastaba ha ahaatee, tani waxay la mid tahay in la yiraahdo meel kasta oo dhulka ah waxaa lagu tilmaami karaa laba lambar - latitude iyo longitude [oo tilmaamaya hemispheres / qiyaastii. turjumi.]. Inta badan waxaynu ka fikirnaa oogada dhulka inay tahay laba-cabbir, markaa waxaan u baahanahay laba tiro oo keliya. Sawirka 8x8 wuxuu leeyahay 64 cabbir, markaa waxaan u baahanahay 64 lambar.

Ilaa hadda ma cadda sida ay tani nooga caawiso dhinaca cufnaanta. Haddii aan u baahanahay 64 nambar si aan u matalo sawirka 8x8, maxay tani uga fiicnaan lahayd kaydinta 64 qaybood oo dhalaalka ah? Waxaan tan u sameynaa isla sababta aan seddex lambar RGB u rognay saddex lambar oo YCbCr ah: waxay noo ogolaaneysaa inaan ka saarno faahfaahinta qarsoon.

Way adagtahay in si sax ah loo arko tafaasiisha meeshan laga saaray sababtoo ah JPEG waxay qusaysaa DCT ilaa 8x8 blocks. Si kastaba ha ahaatee, qofna ma mamnuucayo inaan ku dabaqno sawirka oo dhan. Waa kan sida ay DCT u egtahay qaybta Y ee lagu dabaqay sawirka oo dhan:

Sida qaabka JPEG u shaqeeyo

In ka badan 60 oo nambar ayaa laga saari karaa dhammaadka iyada oo aan wax isbeddel ah lagu arkin sawirka.

Sida qaabka JPEG u shaqeeyo

Si kastaba ha ahaatee, ogow haddii aan eber ka saarno shanta lambar ee hore, faraqa u dhexeeyaa wuu muuqan doonaa.

Sida qaabka JPEG u shaqeeyo

Nambarada bilowga ah waxay matalaan isbeddellada soo noqnoqda ee hooseeya ee sawirka, kuwaas oo indhaheennu ay si fiican u qaataan. Nambarada u dhow dhamaadka waxay muujinayaan isbeddelada soo noqnoqda sare ee ay adagtahay in la dareemo. Si aan u aragno waxa ay indhuhu arki karin, waxa aanu go'doomin karnaa tafaasiishan soo noqnoqoshada badan inagoo meesha ka saarayna 5000 nambar ee ugu horeeya.

Sida qaabka JPEG u shaqeeyo

Waxaan aragnaa dhammaan aagagga sawirka halkaasoo isbeddelka ugu weyn uu ka dhaco pixel ilaa pixel. Indhaha bisadda, shabaqiisa, bustaha terry-ga ah iyo hadhyada geeska bidix ee hoose ayaa taagan. Waxaad ku sii socon kartaa adigoo eber ka dhigaya 10 lambar ee ugu horreeya:

Sida qaabka JPEG u shaqeeyo

20:

Sida qaabka JPEG u shaqeeyo

40:

Sida qaabka JPEG u shaqeeyo

60:

Sida qaabka JPEG u shaqeeyo

Faahfaahinta soo noqnoqoshada sare waxaa meesha ka saaray JPEG inta lagu jiro marxaladda cadaadisku. Ma jiro wax khasaare ah oo ku saabsan u beddelashada midabada isku-dhafka DCT. Khasaaruhu wuxuu ku dhacaa tallaabada muunad-qaadista, halkaasoo qiimaha-soo noqnoqda sare ama eber-ku dhow meesha laga saaro. Markaad hoos u dhigto tayada kaydinta JPEG, barnaamijku wuxuu kordhiyaa marinka tirada qiyamka laga saaray, taas oo yaraynaysa cabbirka faylka, laakiin ka dhigaya sawirka mid aad u pixeled. Sidaa darteed sawirka qaybta hore oo 57 jeer ka yaraa sidan ayuu u ekaa. Baloog kasta oo 8x8 ah waxa uu matalayey isku-xireyaasha DCT oo aad uga yar marka loo eego nooca tayada sare leh.

Waxaad abuuri kartaa saameyn qabow sida sawirada si tartiib tartiib ah. Waxaad soo bandhigi kartaa sawir blur ah oo noqda mid aad u faahfaahsan marka la soo dejiyo tiro badan oo iskudhaf ah.

Halkan, kaliya madadaalo, waa waxa aad ka heli karto adigoo isticmaalaya 24 oo lambar:

Sida qaabka JPEG u shaqeeyo

Ama kaliya 5000:

Sida qaabka JPEG u shaqeeyo

Aad u wareersan, laakiin si uun ayaa loo aqoonsan karaa!

3. Orod dhererka codaynta, delta iyo Huffman

Ilaa hadda, dhammaan heerarka cadaadisku way lumeen. Marxaladda ugu dambeysa, liddi ku ah, waxay ku socotaa khasaare la'aan. Ma tirtirto macluumaadka, laakiin waxay si weyn u yaraynaysaa cabbirka faylka.

Sidee wax u cadaadin kartaa adiga oo aan iska tuurin macluumaadka? Bal qiyaas sida aan u qeexi karno leydi madow oo fudud 700 x 437.

JPEG waxay u isticmaashaa 5000 nambar tan, laakiin natiijooyin aad u wanaagsan ayaa la gaari karaa. Ma qiyaasi kartaa nidaam codayn ah oo ku sifayn kara sawirkan in yar oo bytes ah intii suurtogal ah?

Nidaamka ugu yar ee aan la imaan karo wuxuu adeegsadaa afar: saddex si uu u matalo midabka, iyo kan afraad si loo muujiyo inta pixels ee midabkaasi leeyahay. Fikradda ah in lagu matalo qiyamka soo noqnoqda ee habkan cufan waxaa loo yaqaannaa codaynta dhererka orodka. Waa khasaare la'aan sababtoo ah waxaan ku soo celin karnaa xogta ku-meel-gaarka ah qaabkeedii asalka ahaa.

Faylka JPEG ee leh leydi madow aad ayuu uga weyn yahay 4 bytes - xasuusnoow in heerka DCT, riixitaanka lagu dabaqo 8x8 pixels. Sidaa darteed, ugu yaraan, waxaan u baahanahay hal iskuxir DCT 64 kasta. Waxaan u baahanahay mid sababtoo ah halkii aan ku kaydin lahayn hal iskudarka DCT oo ay ku xigto 63 eber, codaynta dhererka orodka ayaa noo ogolaanaysa inaan kaydinno hal lambar oo aan muujino "dhammaan kuwa kale waa eber."

Codaynta Delta waa farsamo ay byte kastaa ka kooban tahay farqi ka duwan qiimaha qaar, halkii uu ka ahaan lahaa qiimo dhammaystiran. Sidaa darteed, tafatirka bytes gaar ah ayaa beddela midabka pixels kale oo dhan. Tusaale ahaan, halkii aad kaydin lahayd

12 13 14 14 14 13 13 14

Waxaan ku bilaabi karnaa 12 ka dibna si fudud u muujin karnaa inta aan u baahanahay inaan ku darno ama ka jarno si aan u helno lambarka xiga. Oo taxanahan delta codeing wuxuu qaadanayaa foomka:

12 1 1 0 0 -1 0 1

Xogta la beddelay kama yara xogta asalka ah, laakiin way fududahay in la cadaadiyo. Codsiga codaynta delta ka hor inta aan la ordin codaynta dhererka waxay caawin kartaa wax badan iyadoo weli ay tahay cadaadis aan khasaare lahayn.

Codaynta Delta waa mid ka mid ah farsamooyinka yar ee loo isticmaalo ka baxsan 8x8 blocks. 64 ka mid ah iskuxirayaasha DCT, mid waa si fudud shaqo mawjad joogto ah (midab adag). Waxay ka dhigan tahay celceliska dhalaalka block kasta ee qaybaha luma, ama celceliska buluuga ah ee qaybaha Cb, iyo wixii la mid ah. Qiimaha ugu horreeya ee block kasta oo DCT ah waxaa loo yaqaan qiimaha DC, iyo qiime kasta oo DC ah delta ayaa lagu dhejiyay marka loo eego kuwii hore. Sidaa darteed, beddelidda dhalaalka xannibaadda koowaad waxay saameyn doontaa dhammaan baloogyada.

Qarsoodiga kama dambaysta ah ayaa weli ah: sidee isbeddelka kali-taliska ah u burburiyaa sawirka oo dhan? Ilaa hadda, heerarka cadaadisku may yeelan sifooyinkan. Jawaabtu waxay ku jirtaa madaxa JPEG. 500 ee bytes ee ugu horeeya waxa ku jira xog badan oo ku saabsan sawirka - balac, dherer, iwm., walina lamaanu shaqayn iyaga.

Madax la'aanteed waa wax aan macquul ahayn (ama aad u adag) in la go'aamiyo JPEG. Waxay u ekaan doontaa inaan isku dayayo inaan ku qeexo sawirka, waxaana bilaabay inaan hindiso erayo si aan dareenkayga u gudbiyo. Sharaxaadku waxay u badan tahay inay noqon doonto mid la isku koobay, maadaama aan curin karo ereyo leh macnaha dhabta ah ee aan rabo inaan gudbiyo, laakiin qof kasta oo kale macno uma samayn doonaan.

Waxay u egtahay doqonnimo, laakiin taasi waa sida saxda ah waxa dhacaya. Sawir kasta oo JPEG ah waxaa lagu soo koobay koodh u gaar ah. Qaamuuska kood wuxuu ku kaydsan yahay madaxa. Farsamadan waxaa lagu magacaabaa code Huffman, ereyadana waxaa loo yaqaan miiska Huffman. Madaxa, miiska waxaa lagu calaamadeeyay laba bytes - 255 ka dibna 196. Qayb kasta oo midab leh waxay yeelan kartaa miis u gaar ah.

Isbeddellada miisaska ayaa si weyn u saameyn doona muuqaal kasta. Tusaalaha wanaagsani waa in laynka 15aad loo beddelo 1.

Sida qaabka JPEG u shaqeeyo

Tani waxay dhacdaa sababtoo ah jaantusyadu waxay qeexayaan sida loo akhriyo qaniinyada gaarka ah. Ilaa hadda waxa aanu la shaqaynay nambarada binary-ga oo qaab jajab tobanle ah. Laakiin tani waxay naga qarinaysaa xaqiiqda ah in haddii aad rabto inaad ku kaydiso lambarka 1 ee byte, waxay u ekaan doontaa 00000001, sababtoo ah byte kasta waa inuu leeyahay siddeed qaybood oo sax ah, xitaa haddii loo baahan yahay mid ka mid ah.

Tani waxay suurtogal u tahay inay meel luminayso haddii aad leedahay tiro badan oo yaryar. Koodhka Huffman waa farsamo noo ogolaanaysa inaan ku dejinno shuruudahan oo ah in nambar kastaa uu ku jiro siddeed bits. Taas macnaheedu waa haddii aad aragto laba bytes:

234 115

Markaa, iyadoo ku xidhan miiska Huffman, kuwani waxay noqon karaan saddex lambar. Si aad u soo saarto, waxaad u baahan tahay inaad marka hore u kala qaybiso qaybo gaar ah:

11101010 01110011

Kadib waxaan eegi miiska si aan u ogaano sida loo kooxeeyo. Tusaale ahaan, tani waxay noqon kartaa lixda-bit ee ugu horreeya, (111010), ama 58 jajab tobanle, oo ay ku xigto shan-bits (10011), ama 19, iyo ugu dambeyntii afarta qaybood ee ugu dambeeya (0011), ama 3.

Sidaa darteed, aad bay u adag tahay in la fahmo baytyada marxaladdan cadaadiska. Bytes ma matalaan waxa ay u muuqdaan. Ma geli doono faahfaahinta la shaqeynta miiska ee maqaalkan, laakiin qalabka arintaan online waa ku filan.

Hal xeelad oo xiiso leh oo aad ku samayn karto aqoontan ayaa ah inaad ka soocdo madaxa iyo JPEG oo aad si gaar ah u kaydiso. Dhab ahaantii, waxaa soo baxday in adiga oo kaliya aad akhrin kartid faylka. Facebook ayaa tan u sameeya si uu faylalka uga dhigo mid ka sii yar.

Waxa kale oo la samayn karo waa in waxoogaa la beddelo miiska Huffman. Kuwa kale waxay u ekaan doontaa sawir jaban. Oo adiga kaliya ayaa ogaan doona habka sixirka ah ee loo hagaajin karo.

Aan soo koobno: markaa maxaa loo baahan yahay si loo kala saaro JPEG? lagama maarmaan

  1. Ka soo saar miiska Huffman madaxa oo go'aami qaybaha.
  2. Soo saar isku-duwayaasha isbeddelka cosine-ka ee midab kasta iyo qayb kasta oo iftiin ah oo ka mid ah 8x8 block, samaynta dhererka orodka iyo beddelka codaynta delta.
  3. Isku-dubarid cosines oo ku salaysan iskuxirayaasha si aad u hesho qiimayaasha pixel ee 8x8 kasta.
  4. Miisaanka qaybaha midabka haddii qayb-hoosaadyo la sameeyay (macluumaadkani waxay ku yaalaan madaxa).
  5. U beddel qiyamka YCbCr ee soo baxay pixel kasta RGB.
  6. Muuji sawirka shaashadda!

Shaqo culus oo si fudud loogu daawado sawir bisad leh! Si kastaba ha ahaatee, waxa aan ka helay waa in ay muujiso sida tignoolajiyada JPEG udub dhexaad u tahay. Waxay ku saleysan tahay waxyaabaha u gaarka ah aragtidayada, taas oo noo ogolaaneysa inaan gaarno cadaadis aad uga wanaagsan tignoolajiyada caadiga ah. Hadda oo aan fahamnay sida JPEG u shaqeyso, waxaan qiyaasi karnaa sida tignoolajiyadan loogu wareejin karo meelaha kale. Tusaale ahaan, codaynta delta ee fiidyaha waxay ku siin kartaa hoos u dhac weyn oo ku saabsan cabbirka feylka, maadaama ay jiraan inta badan aagag dhan oo aan ka beddelin qaab-dhismeedka (tusaale, asalka).

Koodhka loo adeegsaday maqaalka, wuu furan yahay, wuxuuna ka kooban yahay tilmaamo ku saabsan sida loogu beddelo sawirada adiga.

Source: www.habr.com

Add a comment