Kif jaħdem il-format JPEG

Immaġini JPEG huma kullimkien fil-ħajja diġitali tagħna, iżda wara din il-fuljetta ta 'kuxjenza hemm algoritmi li jneħħu dettalji li mhumiex perċettibbli għall-għajn tal-bniedem. Ir-riżultat huwa l-ogħla kwalità viżiva fl-iżgħar daqs tal-fajl - imma kif jaħdem eżattament kollu? Ejja naraw eżattament x'ma jarawx għajnejna!

Kif jaħdem il-format JPEG

Huwa faċli li tieħu for granted l-abbiltà li tibgħat ritratt lil ħabib u ma tinkwieta dwar liema apparat, browser jew sistema operattiva qed tuża - iżda dan mhux dejjem kien il-każ. Sal-bidu tas-snin tmenin, il-kompjuters setgħu jaħżnu u juru immaġini diġitali, iżda kien hemm ħafna ideat kompetituri dwar l-aħjar mod biex isir dan. Inti ma tistax sempliċement tibgħat immaġni minn kompjuter għal ieħor u tittama li taħdem.

Biex issolvi din il-problema, kumitat ta’ esperti minn madwar id-dinja ġie mmuntat fl-1986 imsejjaħ "Grupp Konġunt ta' Esperti tal-Fotografija» (Joint Photographic Experts Group, JPEG), imwaqqfa bħala sforz konġunt bejn l-Organizzazzjoni Internazzjonali għall-Istandardizzazzjoni (ISO) u l-Kummissjoni Elettroteknika Internazzjonali (IEC), żewġ organizzazzjonijiet ta 'standards internazzjonali li għandhom kwartjieri ġenerali f'Ġinevra, l-Isvizzera.

Grupp ta 'nies imsejjaħ JPEG ħoloq l-istandard tal-kompressjoni tal-immaġni diġitali JPEG fl-1992. Kull min uża l-Internet x'aktarx iltaqa' ma' stampi kodifikati JPEG. Dan huwa l-aktar mod komuni biex tikkodifika, tibgħat u taħżen immaġini. Minn paġni tal-web għal email għall-midja soċjali, JPEG jintuża biljuni ta’ drabi kuljum—virtwalment kull darba li naraw immaġini onlajn jew nibagħtuha. Mingħajr JPEG, il-web ikun inqas ikkulurit, aktar bil-mod, u probabbilment ikollu inqas stampi tal-qtates!

Dan l-artikolu huwa dwar kif tiddekodifika immaġni JPEG. Fi kliem ieħor, dak li huwa meħtieġ biex tikkonverti data kompressata maħżuna fuq kompjuter f'immaġni li tidher fuq l-iskrin. Dan ta 'min ikun jaf, mhux biss għaliex huwa importanti li nifhmu t-teknoloġija li nużaw kuljum, iżda wkoll għaliex billi nisfruttaw il-livelli ta' kompressjoni, nitgħallmu aktar dwar il-perċezzjoni u l-viżjoni, u liema dettalji l-għajnejn tagħna huma l-aktar sensittivi għalihom.

Barra minn hekk, il-logħob bl-immaġini b'dan il-mod huwa interessanti ħafna.

Kif jaħdem il-format JPEG

Ħarsa ġewwa JPEG

Fuq kompjuter, kollox huwa maħżun bħala sekwenza ta 'numri binarji. Tipikament dawn il-bits, żerijiet u dawk, huma miġbura fi gruppi ta 'tmienja biex jiffurmaw bytes. Meta tiftaħ immaġni JPEG fuq kompjuter, xi ħaġa (browser, sistema operattiva, xi ħaġa oħra) trid tiddekodifika l-bytes, u tirrestawra l-immaġni oriġinali bħala lista ta 'kuluri li jistgħu jintwerew.

Jekk tniżżel dan il-ħelu ritratt ta' qattus u tiftaħha f'editur tat-test, tara mazz ta 'karattri inkoerenti.

Kif jaħdem il-format JPEG
Hawnhekk qed nuża Notepad ++ biex neżamina l-kontenut tal-fajl, peress li edituri tat-test regolari bħal Notepad fuq Windows se jikkorrompi l-fajl binarju wara li jsalva u mhux se jibqa' jissodisfa l-format JPEG.

Il-ftuħ ta’ immaġni fi word processor iħawwad il-kompjuter, bħalma tħawwad moħħok meta togħrok għajnejk u tibda tara tikek ta’ kulur!

Dawn it-tikek li tara huma magħrufa bħala fosfeni, u mhumiex ir-riżultat ta 'stimolu ħafif jew alluċinazzjoni ġġenerata mill-moħħ. Jiġru minħabba li moħħok jaħseb li kwalunkwe sinjal elettriku fin-nervituri ottiċi jwassal informazzjoni dwar id-dawl. Il-moħħ jeħtieġ li jagħmel dawn is-suppożizzjonijiet għax m'hemm l-ebda mod biex tkun taf jekk sinjal huwiex ħoss, viżjoni, jew xi ħaġa oħra. In-nervituri kollha fil-ġisem jittrasmettu eżattament l-istess impulsi elettriċi. Billi tapplika pressjoni fuq għajnejk, tibgħat sinjali li mhumiex viżwali, iżda tattiva r-riċetturi tal-għajn, li moħħok jinterpreta - f'dan il-każ, b'mod żbaljat - bħala xi ħaġa viżwali. Tista' tara litteralment il-pressjoni!

Huwa umoristiku li wieħed jaħseb dwar kif il-kompjuters huma simili għall-moħħ, iżda hija wkoll analoġija utli biex turi kemm it-tifsira tad-data—kemm jekk tinġarr minn ġol-ġisem min-nervituri jew maħżuna fuq kompjuter—tiddependi minn kif tiġi interpretata. Id-dejta binarja kollha hija magħmula minn 0s u 1s, il-komponenti bażiċi li jistgħu jwasslu informazzjoni ta 'kull tip. Il-kompjuter tiegħek spiss jifhem kif jinterpretahom billi juża ħjiel bħal estensjonijiet tal-fajls. Issa nġiegħluha tinterpretahom bħala test, għax dak hu li jistenna l-editur tat-test.

Biex nifhmu kif jiddekowdja JPEG, irridu naraw is-sinjali oriġinali nfushom - id-data binarja. Dan jista 'jsir bl-użu ta' editur eżadeċimali, jew direttament fuq paġna web tal-artiklu oriġinali! Hemm immaġini, li ħdejn fil-qasam tat-test hemm il-bytes kollha tagħha (ħlief għall-header), ippreżentati f'forma deċimali. Tista 'tbiddelhom, u l-iskrittura terġa' tikkodifika u tipproduċi immaġni ġdida fuq il-fly.

Kif jaħdem il-format JPEG

Tista 'titgħallem ħafna billi tilgħab ma' dan l-editur. Per eżempju, tista 'tgħid f'liema ordni huma maħżuna l-pixels?

Il-ħaġa stramba dwar dan l-eżempju hija li t-tibdil ta 'xi numri ma jaffettwax l-immaġni għal kollox, iżda, pereżempju, jekk tissostitwixxi n-numru 17 b'0 fl-ewwel linja, ir-ritratt ikun kompletament imħassar!

Kif jaħdem il-format JPEG

Tibdil ieħor, bħas-sostituzzjoni tas-7 fuq il-linja 1988 bin-numru 254, jibdel il-kulur, iżda biss tal-pixels sussegwenti.

Kif jaħdem il-format JPEG

Forsi l-aktar ħaġa stramba hija li xi numri jbiddlu mhux biss il-kulur, iżda wkoll il-forma tal-immaġni. Ibdel is-70 fil-linja 12 għal 2 u ħares lejn il-filliera ta 'fuq ta' l-immaġni biex tara xi ngħid.

Kif jaħdem il-format JPEG

U tkun xi tkun l-immaġni JPEG li tuża, dejjem issib dawn il-mudelli taċ-ċess misterjużi meta teditja l-bytes.

Meta tilgħab mal-editur, huwa diffiċli li wieħed jifhem kif ritratt jiġi rikrejat minn dawn il-bytes, peress li l-kompressjoni JPEG tikkonsisti fi tliet teknoloġiji differenti, applikati b'mod sekwenzjali f'livelli. Aħna ser nistudjaw kull wieħed separatament biex niskopru l-imġieba misterjuża li qed naraw.

Tliet livelli ta' kompressjoni JPEG:

  1. Subkampjunar tal-kulur.
  2. Trasformazzjoni u kampjunar tal-kosinnu diskreti.
  3. Kodifika tat-tul tal-ġirja, delta и Huffman

Biex tagħtik idea tal-kobor tal-kompressjoni, innota li l-immaġni ta 'hawn fuq tirrappreżenta 79 numri, jew madwar 819 KB. Jekk aħna maħżuna mingħajr kompressjoni, kull pixel ikun jeħtieġ tliet numri - għall-komponenti aħmar, aħdar u blu. Dan jammonta għal 79 numru, jew madwar. 917 KB. Bħala riżultat tal-kompressjoni JPEG, il-fajl finali tnaqqas b'aktar minn 700 darbiet!

Fil-fatt, din l-immaġni tista 'tiġi kkompressata ħafna aktar. Hawn taħt hemm żewġ stampi ħdejn xulxin - ir-ritratt fuq il-lemin ġie kkompressat għal 16 KB, jiġifieri 57 darba iżgħar mill-verżjoni mhux kompressata!

Kif jaħdem il-format JPEG

Jekk tħares mill-qrib, tara li dawn l-immaġini mhumiex identiċi. It-tnejn huma immaġini b'kompressjoni JPEG, iżda dik it-tajba hija ħafna iżgħar fil-volum. Jidher ukoll ftit agħar (ħares lejn il-kwadri tal-kulur tal-isfond). C'est pourquoi JPEG jissejjaħ ukoll kompressjoni lossy; Matul il-proċess ta 'kompressjoni, l-immaġni tinbidel u titlef xi dettalji.

1. Subkampjunar tal-kulur

Hawnhekk hawn immaġni bl-ewwel livell ta 'kompressjoni applikat biss.

Kif jaħdem il-format JPEG
(Verżjoni interattiva - in oriġinali artikoli). It-tneħħija ta' numru wieħed jeqred il-kuluri kollha. Madankollu, jekk jitneħħew eżattament sitt numri, prattikament m'għandu l-ebda effett fuq l-immaġni.

Issa n-numri huma ftit aktar faċli biex jiġu deċifrati. Din hija kważi lista sempliċi ta 'kuluri, li fiha kull byte jinbidel eżattament pixel wieħed, iżda fl-istess ħin huwa diġà nofs id-daqs tal-immaġni mhux kompressata (li tieħu madwar 300 KB f'dan id-daqs imnaqqas). Tista raden għaliex?

Tista 'tara li dawn in-numri ma jirrappreżentawx il-komponenti standard ħomor, ħodor u blu, peress li jekk nissostitwixxu n-numri kollha b'żerijiet, se nġibu immaġni ħadra (minflok abjad).

Kif jaħdem il-format JPEG

Dan għaliex dawn il-bytes jirrappreżentaw Y (luminożità),

Kif jaħdem il-format JPEG

Cb (blu relattiv),

Kif jaħdem il-format JPEG

u stampi Cr (ħmura relattiva).

Kif jaħdem il-format JPEG

Għaliex ma tużax RGB? Wara kollox, dan huwa kif jaħdmu l-biċċa l-kbira tal-iskrins moderni. Il-monitor tiegħek jista' juri kwalunkwe kulur, inkluż aħmar, aħdar u blu, b'intensitajiet differenti għal kull pixel. L-abjad jinkiseb billi jinxtegħlu t-tlieta bi luminożità sħiħa, u iswed billi jintfew.

Kif jaħdem il-format JPEG

Dan huwa wkoll simili ħafna għal kif taħdem l-għajn tal-bniedem. Ir-riċetturi tal-kulur f'għajnejna jissejħu "koni", u huma maqsuma fi tliet tipi, li kull wieħed minnhom huwa aktar sensittiv għal kuluri ħomor, ħodor jew blu [Il-koni tat-tip S huma sensittivi fil-vjola-blu (S mill-Ingliż Short - short-wave spectrum), M -tip - fil-aħdar-isfar (M mill-Ingliż Medju - mewġ medju), u L-tip - fil-isfar-aħmar (L mill-Ingliż Long - mewġ twil) partijiet tal-ispettru. Il-preżenza ta 'dawn it-tliet tipi ta' koni (u vireg, li huma sensittivi fil-parti ħadra Emerald tal-ispettru) tagħti lill-persuna viżjoni bil-kulur. / madwar. trad.]. Stikek, tip ieħor ta 'fotoriċettur fl-għajnejn tagħna, huwa kapaċi li jiskopri bidliet fil-luminożità, iżda huwa ħafna aktar sensittivi għall-kulur. Għajnejna għandhom madwar 120 miljun virga u 6 miljun koni biss.

Huwa għalhekk li l-għajnejn tagħna huma ħafna aħjar biex jiskopru bidliet fil-luminożità milli bidliet fil-kulur. Jekk tissepara l-kulur mill-luminożità, tista 'tneħħi ftit kulur u ħadd ma jinduna xejn. Is-sottokampjunar tal-kroma huwa l-proċess li jirrappreżenta l-komponenti tal-kulur ta 'immaġni b'riżoluzzjoni aktar baxxa mill-komponenti tal-luminanza. Fl-eżempju ta 'hawn fuq, kull pixel għandu eżattament komponent Y wieħed, u kull grupp individwali ta' erba 'pixels għandu eżattament komponent wieħed Cb u wieħed Cr. Għalhekk, l-immaġni fiha erba 'darbiet inqas informazzjoni tal-kulur mill-oriġinal.

L-ispazju tal-kulur YCbCr jintuża mhux biss f'JPEG. Kien oriġinarjament ivvintat fl-1938 għal programmi televiżivi. Mhux kulħadd għandu TV bil-kulur, għalhekk is-separazzjoni tal-kulur u l-luminożità ppermettiet lil kulħadd biex tikseb l-istess sinjal, u televiżjonijiet mingħajr kulur sempliċement użaw biss il-komponent tal-luminożità.

Allura t-tneħħija ta 'numru wieħed mill-editur tħassar kompletament il-kuluri kollha. Il-komponenti huma maħżuna fil-forma YYYY Cb Cr (fil-fatt, mhux neċessarjament f'dik l-ordni - l-ordni tal-ħażna hija speċifikata fl-intestatura tal-fajl). It-tneħħija tal-ewwel numru tikkawża li l-ewwel valur ta 'Cb jiġi pperċepit bħala Y, Cr bħala Cb, u b'mod ġenerali jkollok effett domino li jaqleb il-kuluri kollha tal-istampa.

L-ispeċifikazzjoni JPEG ma jġiegħlekx tuża YCbCr. Iżda l-biċċa l-kbira tal-fajls jużawha minħabba li tipproduċi immaġini inqas kampjuni aħjar minn RGB. Imma m'għandekx għalfejn tieħu kelmti għaliha. Ara għalik innifsek fit-tabella hawn taħt kif se jidher is-sottokampjunar ta 'kull komponent individwali kemm f'RGB kif ukoll f'YCbCr.

Kif jaħdem il-format JPEG
(Verżjoni interattiva - in oriġinali artikoli).

It-tneħħija tal-blu mhix notevoli daqs dik tal-aħmar jew tal-aħdar. Dan minħabba s-sitt miljun koni f'għajnejk, madwar 64% huma sensittivi għall-aħmar, 32% għall-aħdar u 2% għall-blu.

It-tnaqqis tal-kampjun tal-komponent Y (ta' isfel fuq ix-xellug) jidher l-aħjar. Anke bidla żgħira hija notevoli.

Il-konverżjoni ta 'immaġni minn RGB għal YCbCr ma tnaqqasx id-daqs tal-fajl, iżda tagħmilha aktar faċli li ssib dettalji inqas viżibbli li jistgħu jitneħħew. Kompressjoni Lossy sseħħ fit-tieni stadju. Hija bbażata fuq l-idea li tiġi ppreżentata d-dejta f'forma aktar kompressabbli.

2. Trasforma u kampjunar tal-kosinju diskreti

Dan il-livell ta 'kompressjoni huwa, fil-biċċa l-kbira, dak li huwa JPEG. Wara li tikkonverti l-kuluri għal YCbCr, il-komponenti huma kkompressati individwalment, sabiex inkunu nistgħu nikkonċentraw biss fuq il-komponent Y U hawn kif jidhru l-bytes tal-komponent Y wara li napplikaw dan is-saff.

Kif jaħdem il-format JPEG
(Verżjoni interattiva - in oriġinali artikoli). Fil-verżjoni interattiva, meta tikklikkja fuq pixel tiskrollja l-editur sal-linja li tirrappreżentah. Ipprova neħħi n-numri mill-aħħar jew żid ftit żerijiet għal ċertu numru.

L-ewwel daqqa t'għajn, tidher qisha kompressjoni ħażina ħafna. Hemm 100 pixel f'immaġini, u jeħtieġ 000 numri biex jirrappreżentaw il-luminożità tagħhom (komponenti Y)—dan huwa agħar milli tikkompressa xejn!

Madankollu, innota li ħafna minn dawn in-numri huma żero. Barra minn hekk, dawk iż-żeri kollha fl-aħħar tal-linji jistgħu jitneħħew mingħajr ma tinbidel l-immaġni. Fadal madwar 26 numru, u dan huwa kważi 000 darbiet inqas!

Dan il-livell fih is-sigriet tal-mudelli taċ-ċess. B'differenza effetti oħra li rajna, id-dehra ta 'dawn il-mudelli mhix glitch. Huma l-blokki tal-bini tal-immaġni kollha. Kull linja ta 'l-editur fiha eżattament 64 numri, koeffiċjenti ta' trasformazzjoni tal-kosinju diskreti (DCT) li jikkorrispondu għall-intensitajiet ta '64 mudell uniku.

Dawn il-mudelli huma ffurmati bbażati fuq il-plott tal-cosine. Hawn kif jidhru xi wħud minnhom:

Kif jaħdem il-format JPEG
8 minn 64 odd

Hawn taħt hemm immaġni li turi l-64 mudell.

Kif jaħdem il-format JPEG
(Verżjoni interattiva - in oriġinali artikoli).

Dawn ix-xejriet huma ta' importanza partikolari għaliex jiffurmaw il-bażi tal-immaġini 8x8. Jekk m'intix familjari mal-alġebra lineari, dan ifisser li kwalunkwe immaġni 8x8 tista' ssir minn dawn l-64 mudell. DCT huwa l-proċess ta 'diviżjoni ta' immaġini fi blokki 8x8 u jikkonvertu kull blokka f'kombinazzjoni ta 'dawn l-64 koeffiċjenti.

Jidher qisu magic li kwalunkwe immaġni tista 'tkun komposta minn 64 mudell speċifiku. Madankollu, dan huwa l-istess bħal li tgħid li kwalunkwe post fid-Dinja jista 'jiġi deskritt b'żewġ numri - latitudni u lonġitudni [li jindikaw emisferi / approx. trad.]. Ħafna drabi naħsbu fil-wiċċ tad-Dinja bħala bidimensjonali, għalhekk għandna bżonn biss żewġ numri. Immaġini 8x8 għandha 64 dimensjoni, għalhekk għandna bżonn 64 numru.

Għadu mhux ċar kif dan jgħinna f'termini ta 'kompressjoni. Jekk għandna bżonn 64 numri biex nirrappreżentaw immaġni 8x8, għaliex dan ikun aħjar milli sempliċement jaħżnu 64 komponenti ta 'luminożità? Nagħmlu dan għall-istess raġuni li dawwarna tliet numri RGB fi tliet numri YCbCr: jippermettilna nneħħu dettalji sottili.

Huwa diffiċli li wieħed jara eżattament liema dettall jitneħħa f'dan l-istadju minħabba li JPEG japplika DCT għal blokki 8x8. Madankollu, ħadd ma jipprojbixxi li napplikawha għall-istampa kollha. Hawn kif jidher id-DCT għall-komponent Y applikat għall-istampa kollha:

Kif jaħdem il-format JPEG

Aktar minn 60 numru jistgħu jitneħħew mill-aħħar mingħajr prattikament l-ebda tibdil notevoli fir-ritratt.

Kif jaħdem il-format JPEG

Madankollu, innota li jekk niżero l-ewwel ħames numri, id-differenza tkun ovvja.

Kif jaħdem il-format JPEG

In-numri fil-bidu jirrappreżentaw bidliet ta 'frekwenza baxxa fl-immaġni, li għajnejna jiġbru l-aħjar. In-numri lejn l-aħħar jindikaw bidliet fil-frekwenzi għoljin li huma aktar diffiċli li wieħed jinnota. Biex "tara dak li l-għajn ma tistax tara," nistgħu niżolaw dawn id-dettalji ta 'frekwenza għolja billi nnaqqsu l-ewwel 5000 numri.

Kif jaħdem il-format JPEG

Naraw iż-żoni kollha tal-immaġni fejn isseħħ l-akbar bidla minn pixel għal pixel. Jispikkaw l-għajnejn tal-qattus, il-whiskers tiegħu, il-kutra tat-terri u d-dellijiet fir-rokna t’isfel tax-xellug. Tista' tmur lil hinn billi tneħħi żero l-ewwel 10 numru:

Kif jaħdem il-format JPEG

20:

Kif jaħdem il-format JPEG

40:

Kif jaħdem il-format JPEG

60:

Kif jaħdem il-format JPEG

Dawn id-dettalji ta 'frekwenza għolja jitneħħew minn JPEG matul l-istadju tal-kompressjoni. M'hemm l-ebda telf fil-konverżjoni tal-kuluri għal koeffiċjenti DCT. It-telf iseħħ fil-pass tat-teħid tal-kampjuni, fejn il-valuri ta 'frekwenza għolja jew kważi żero jitneħħew. Meta tnaqqas il-kwalità tal-iffrankar JPEG, il-programm iżid il-limitu għan-numru ta 'valuri mneħħija, li jnaqqas id-daqs tal-fajl, iżda jagħmel l-istampa aktar pixelated. Huwa għalhekk li l-immaġni fl-ewwel taqsima, li kienet 57 darba iżgħar, dehret hekk. Kull blokka 8x8 kienet rappreżentata b'ħafna inqas koeffiċjenti DCT meta mqabbla mal-verżjoni ta 'kwalità ogħla.

Tista 'toħloq effett frisk bħal streaming gradwali ta' immaġini. Tista 'turi stampa mċajpra li ssir aktar u aktar dettaljata hekk kif aktar u aktar koeffiċjenti jitniżżlu.

Hawnhekk, biss għall-gost, huwa dak li tikseb billi tuża biss 24 numru:

Kif jaħdem il-format JPEG

Jew 5000 biss:

Kif jaħdem il-format JPEG

Imċajpra ħafna, iżda b'xi mod rikonoxxibbli!

3. Mexxi l-kodifikazzjoni tat-tul, delta u Huffman

S'issa, l-istadji kollha ta 'kompressjoni kienu lossy. L-aħħar stadju, għall-kuntrarju, jipproċedi mingħajr telf. Ma tħassarx informazzjoni, iżda tnaqqas b'mod sinifikanti d-daqs tal-fajl.

Kif tista 'tikkompressa xi ħaġa mingħajr ma tarmi l-informazzjoni? Immaġina kif niddeskrivu rettangolu iswed sempliċi 700 x 437.

JPEG juża 5000 numri għal dan, iżda jistgħu jinkisbu riżultati ferm aħjar. Tista 'timmaġina skema ta' kodifikazzjoni li tiddeskrivi immaġni bħal din fl-inqas bytes possibbli?

L-iskema minima li stajt noħroġ biha tuża erbgħa: tlieta biex tirrappreżenta kulur, u r-raba’ biex tindika kemm għandu pixels dak il-kulur. L-idea li tirrappreżenta valuri ripetuti b'dan il-mod ikkondensat tissejjaħ run-length encoding. Huwa lossless għaliex aħna jistgħu jirrestawraw id-data kodifikata għall-forma oriġinali tagħha.

Fajl JPEG b'rettangolu iswed huwa ħafna akbar minn 4 bytes - ftakar li fil-livell DCT, il-kompressjoni hija applikata għal blokki ta 'pixel 8x8. Għalhekk, bħala minimu, għandna bżonn koeffiċjent DCT wieħed għal kull 64 pixel. Neħtieġu wieħed għax minflok ma naħżnu koeffiċjent DCT wieħed segwit minn 63 żerijiet, il-kodifikazzjoni tat-tul tal-ġirja tippermettilna naħżnu numru wieħed u nindikaw li "l-oħrajn kollha huma żerijiet."

Il-kodifikazzjoni Delta hija teknika li fiha kull byte fih differenza minn xi valur, aktar milli valur assolut. Għalhekk, l-editjar ta 'ċerti bytes jibdel il-kulur tal-pixels l-oħra kollha. Per eżempju, minflok taħżen

12 13 14 14 14 13 13 14

Nistgħu nibdew bi 12 u mbagħad sempliċement nindikaw kemm għandna bżonn inżidu jew nnaqqsu biex niksbu n-numru li jmiss. U din is-sekwenza fil-kodifikazzjoni delta tieħu l-forma:

12 1 1 0 0 -1 0 1

Id-dejta kkonvertita mhix iżgħar mid-dejta oriġinali, iżda huwa aktar faċli li tikkompressaha. L-applikazzjoni tal-kodifikazzjoni delta qabel l-kodifikazzjoni tat-tul tal-ġirja tista 'tgħin ħafna filwaqt li tkun kompressjoni mingħajr telf.

Il-kodifikazzjoni Delta hija waħda mill-ftit tekniki użati barra minn blokki 8x8. Mill-64 koeffiċjenti DCT, wieħed huwa sempliċement funzjoni tal-mewġ kostanti (kulur solidu). Jirrappreżenta l-luminożità medja ta 'kull blokka għall-komponenti tal-luma, jew il-blueness medja għall-komponenti Cb, eċċ. L-ewwel valur ta 'kull blokka DCT jissejjaħ il-valur DC, u kull valur DC huwa kodifikat delta fir-rigward ta' dawk ta 'qabel. Għalhekk, il-bidla tal-luminożità tal-ewwel blokk se taffettwa l-blokki kollha.

Il-misteru finali jibqa ': kif it-tibdil tas-singular jħassar kompletament l-istampa kollha? S'issa, il-livelli ta 'kompressjoni ma kellhomx proprjetajiet bħal dawn. It-tweġiba tinsab fl-header JPEG. L-ewwel 500 byte fihom metadata dwar l-immaġni - wisa ', għoli, eċċ., u għadna ma ħdimniex magħhom.

Mingħajr header huwa kważi impossibbli (jew diffiċli ħafna) li jiġi dekodifikat JPEG. Jidher daqslikieku qed nipprova niddeskrivilek l-istampa, u qed nibda nivvinta kliem sabiex inwassal l-impressjoni tiegħi. Id-deskrizzjoni probabbilment se tkun pjuttost ikkondensata, peress li nista' nivvinta kliem bit-tifsira eżatta li rrid inwassal, iżda għal kulħadd mhux se jagħmlu sens.

Jidher stupidu, iżda dan huwa eżattament dak li jiġri. Kull immaġini JPEG hija kkompressata b'kodiċijiet speċifiċi għaliha. Id-dizzjunarju tal-kodiċi huwa maħżun fl-header. Din it-teknika tissejjaħ kodiċi Huffman u l-vokabularju jissejjaħ tabella Huffman. Fl-intestatura, it-tabella hija mmarkata b'żewġ bytes - 255 u mbagħad 196. Kull komponent tal-kulur jista 'jkollu t-tabella tiegħu stess.

Bidliet fit-tabelli se jaffettwaw radikalment kwalunkwe immaġini. Eżempju tajjeb huwa li tinbidel il-15-il linja għal 1.

Kif jaħdem il-format JPEG

Dan jiġri minħabba li t-tabelli jispeċifikaw kif għandhom jinqraw bits individwali. S'issa ħdimna biss b'numri binarji f'forma deċimali. Iżda dan jaħbi minna l-fatt li jekk trid taħżen in-numru 1 f'byte, jidher qisu 00000001, peress li kull byte għandu jkollu eżattament tmien bits, anki jekk wieħed biss minnhom ikun meħtieġ.

Dan huwa potenzjalment ħela kbira ta 'spazju jekk għandek ħafna numri żgħar. Il-kodiċi Huffman hija teknika li tippermettilna nirrilassaw dan ir-rekwiżit li kull numru għandu jokkupa tmien bits. Dan ifisser li jekk tara żewġ bytes:

234 115

Imbagħad, skont it-tabella Huffman, dawn jistgħu jkunu tliet numri. Biex tiġbedhom, l-ewwel trid tkisserhom f'biċċiet individwali:

11101010 01110011

Imbagħad inħarsu lejn it-tabella biex insemmu kif niggruppawhom. Pereżempju, dan jista 'jkun l-ewwel sitt bits, (111010), jew 58 f'deċimali, segwiti minn ħames bits (10011), jew 19, u finalment l-aħħar erba' bits (0011), jew 3.

Għalhekk, huwa diffiċli ħafna li tifhem il-bytes f'dan l-istadju ta 'kompressjoni. Bytes ma jirrappreżentawx dak li jidhru. Mhux se nidħol fid-dettalji ta 'ħidma mat-tabella f'dan l-artikolu, iżda materjali dwar din il-kwistjoni online biżżejjed.

Trick wieħed interessanti li tista 'tagħmel b'dan l-għarfien huwa li tissepara l-header mill-JPEG u taħżenha separatament. Fil-fatt, jirriżulta li inti biss tista 'taqra l-fajl. Facebook jagħmel dan biex jagħmel il-fajls saħansitra iżgħar.

X'iktar jista 'jsir huwa li tinbidel it-tabella ta' Huffman pjuttost ftit. Għal oħrajn se tidher qisha stampa miksura. U int biss tkun taf il-mod maġiku biex tirranġaha.

Ejja nġabru fil-qosor: allura x'inhu meħtieġ biex jiddekowdja JPEG? Meħtieġa:

  1. Oħroġ it-tabella(jiet) ta' Huffman mill-header u tiddekodifika l-bits.
  2. Oħroġ il-koeffiċjenti diskreti tat-trasformazzjoni tal-cosine għal kull komponent tal-kulur u tal-luminanza għal kull blokka 8x8, billi twettaq trasformazzjonijiet inversi ta 'run-length u delta encoding.
  3. Għaqqad il-kosinijiet ibbażati fuq koeffiċjenti biex tikseb valuri tal-pixel għal kull blokka 8x8.
  4. Skala l-komponenti tal-kulur jekk twettaq is-sottokampjunar (din l-informazzjoni tinsab fl-intestatura).
  5. Ikkonverti l-valuri YCbCr li jirriżultaw għal kull pixel għal RGB.
  6. Uri l-immaġni fuq l-iskrin!

Xogħol serju biex sempliċement tara ritratt ma' qattus! Madankollu, dak li jogħġobni dwarha huwa li turi kif it-teknoloġija JPEG iċċentrata fuq il-bniedem hija. Hija bbażata fuq il-partikolaritajiet tal-perċezzjoni tagħna, li tippermettilna niksbu kompressjoni ħafna aħjar minn teknoloġiji konvenzjonali. U issa li nifhmu kif jaħdem JPEG, nistgħu nimmaġinaw kif dawn it-teknoloġiji jistgħu jiġu trasferiti għal oqsma oħra. Pereżempju, kodifikazzjoni delta fil-vidjo tista 'tipprovdi tnaqqis sinifikanti fid-daqs tal-fajl, peress li ħafna drabi jkun hemm żoni sħaħ li ma jinbidlux minn qafas għal qafas (per eżempju, l-isfond).

Kodiċi użat fl-artikolu, hija miftuħa, u fiha struzzjonijiet dwar kif tissostitwixxi l-istampi ma' tiegħek.

Sors: www.habr.com

Żid kumment