Kako deluje format JPEG

Slike JPEG so vseprisotne v naših digitalnih življenjih, toda za tem videzom zavedanja so algoritmi, ki odstranijo podrobnosti, ki jih človeško oko ne zazna. Rezultat je najvišja vizualna kakovost v najmanjši velikosti datoteke - toda kako točno vse skupaj deluje? Poglejmo, česa točno naše oči ne vidijo!

Kako deluje format JPEG

Preprosto je vzeti za samoumevno možnost pošiljanja fotografije prijatelju in ne skrbeti, katero napravo, brskalnik ali operacijski sistem uporablja – vendar ni bilo vedno tako. Do začetka osemdesetih let prejšnjega stoletja so lahko računalniki shranjevali in prikazovali digitalne slike, vendar je bilo veliko konkurenčnih zamisli o najboljšem načinu za to. Ne bi mogli samo poslati slike iz enega računalnika v drugega in upati, da bo delovala.

Za rešitev tega problema je bil leta 1986 sestavljen odbor strokovnjakov z vsega sveta, imenovan "Skupna skupina strokovnjakov za fotografijo» (Joint Photographic Experts Group, JPEG), ustanovljeno kot skupno prizadevanje Mednarodne organizacije za standardizacijo (ISO) in Mednarodne elektrotehnične komisije (IEC), dveh mednarodnih organizacij za standardizacijo s sedežem v Ženevi v Švici.

Skupina ljudi, imenovana JPEG, je leta 1992 ustvarila standard za stiskanje digitalnih slik JPEG. Vsakdo, ki je uporabljal internet, se je verjetno srečal s slikami, kodiranimi v JPEG. To je najpogostejši način za kodiranje, pošiljanje in shranjevanje slik. Od spletnih strani do e-pošte do družbenih medijev se JPEG uporablja več milijard krat na dan – tako rekoč vsakič, ko si ogledamo sliko v spletu ali jo pošljemo. Brez JPEG bi bil splet manj barvit, počasnejši in verjetno bi imel manj slik mačk!

Ta članek govori o tem, kako dekodirati sliko JPEG. Z drugimi besedami, kaj je potrebno za pretvorbo stisnjenih podatkov, shranjenih v računalniku, v sliko, ki se prikaže na zaslonu. To je vredno vedeti, ne le zato, ker je pomembno za razumevanje tehnologije, ki jo uporabljamo vsak dan, ampak tudi zato, ker z odklepanjem stopenj stiskanja izvemo več o zaznavanju in vidu ter podrobnostih, na katere so naše oči najbolj občutljive.

Poleg tega je poigravanje s slikami na ta način zelo zanimivo.

Kako deluje format JPEG

Pogled v JPEG

V računalniku je vse shranjeno kot zaporedje binarnih števil. Običajno so ti biti, ničle in enice, združeni v skupine po osem, da sestavljajo bajte. Ko odprete sliko JPEG v računalniku, mora nekaj (brskalnik, operacijski sistem, nekaj drugega) dekodirati bajte in obnoviti izvirno sliko kot seznam barv, ki jih je mogoče prikazati.

Če prenesete to sladko fotografija mačke in ga odprete v urejevalniku besedila, boste videli kup nepovezanih znakov.

Kako deluje format JPEG
Tukaj uporabljam Notepad++ za pregled vsebine datoteke, saj bodo običajni urejevalniki besedil, kot je Notepad v sistemu Windows, po shranjevanju poškodovali binarno datoteko in ne bo več ustrezala formatu JPEG.

Odpiranje slike v urejevalniku besedil zmede računalnik, tako kot zmedete možgane, ko podrgnete oči in začnete videti barvne lise!

Ta mesta, ki jih vidite, so znana kot fosfeni, in niso posledica svetlobnega dražljaja ali halucinacije, ki jo ustvari um. Pojavijo se, ker vaši možgani mislijo, da kakršni koli električni signali v optičnih živcih prenašajo informacije o svetlobi. Možgani morajo narediti te predpostavke, ker ni mogoče vedeti, ali je signal zvok, vizija ali kaj drugega. Vsi živci v telesu prenašajo popolnoma enake električne impulze. S pritiskom na oči pošiljate signale, ki niso vizualni, ampak aktivirajo očesne receptorje, ki jih vaši možgani interpretirajo – v tem primeru napačno – kot nekaj vizualnega. Dobesedno lahko vidite pritisk!

Smešno je razmišljati o tem, kako podobni so računalniki možganom, a je tudi uporabna analogija za ponazoritev, koliko je pomen podatkov – ne glede na to, ali jih po telesu prenašajo živci ali so shranjeni v računalniku – odvisen od tega, kako se interpretirajo. Vsi binarni podatki so sestavljeni iz 0 in 1, osnovnih komponent, ki lahko prenašajo kakršne koli informacije. Vaš računalnik pogosto ugotovi, kako jih interpretirati z uporabo namigov, kot so datotečne pripone. Zdaj ga prisilimo, da jih interpretira kot besedilo, ker to pričakuje urejevalnik besedil.

Da bi razumeli, kako dekodirati JPEG, moramo videti same izvirne signale - binarne podatke. To lahko storite s šestnajstiškim urejevalnikom ali neposredno spletna stran izvirnega članka! Obstaja slika, poleg katere so v besedilnem polju vsi njeni bajti (razen glave), predstavljeni v decimalni obliki. Lahko jih spremenite, skript pa bo znova kodiral in sproti ustvaril novo sliko.

Kako deluje format JPEG

Z igranjem s tem urejevalnikom se lahko veliko naučite. Ali lahko na primer poveste, v kakšnem vrstnem redu so shranjene slikovne pike?

Nenavadno pri tem primeru je, da sprememba nekaterih številk sploh ne vpliva na sliko, če pa na primer številko 17 zamenjate z 0 v prvi vrstici, bo fotografija popolnoma uničena!

Kako deluje format JPEG

Druge spremembe, kot je zamenjava 7 on line 1988 s številko 254, spremenijo barvo, vendar le naslednjih slikovnih pik.

Kako deluje format JPEG

Morda najbolj nenavadno je, da nekatere številke ne spremenijo le barve, ampak tudi obliko slike. Spremenite 70 v vrstici 12 v 2 in poglejte zgornjo vrstico slike, da vidite, kaj mislim.

Kako deluje format JPEG

In ne glede na to, katero sliko JPEG uporabljate, boste med urejanjem bajtov vedno našli te skrivnostne šahovske vzorce.

Ko se igrate z urejevalnikom, je težko razumeti, kako je fotografija poustvarjena iz teh bajtov, saj je stiskanje JPEG sestavljeno iz treh različnih tehnologij, ki se uporabljajo zaporedno v ravneh. Preučili bomo vsakega posebej, da bi odkrili skrivnostno vedenje, ki ga opažamo.

Tri stopnje stiskanja JPEG:

  1. Barvno podvzorčenje.
  2. Diskretna kosinusna transformacija in vzorčenje.
  3. Kodiranje dolžine, delta и Huffman

Za lažjo predstavo o obsegu stiskanja upoštevajte, da zgornja slika predstavlja 79 številk ali približno 819 KB. Če bi ga shranili brez stiskanja, bi vsak piksel zahteval tri številke - za rdečo, zeleno in modro komponento. To bi zneslo 79 številk ali cca. 917 KB. Zaradi kompresije JPEG se je končna datoteka zmanjšala za več kot 700-krat!

Pravzaprav je to sliko mogoče stisniti veliko bolj. Spodaj sta dve sliki ena poleg druge - fotografija na desni je stisnjena na 16 KB, torej 57-krat manj kot nestisnjena različica!

Kako deluje format JPEG

Če pogledate natančno, boste videli, da te slike niso enake. Obe sta sliki s kompresijo JPEG, le da je desna veliko manjša. Tudi izgleda malo slabše (poglejte barvne kvadratke ozadja). Zato se JPEG imenuje tudi stiskanje z izgubo; Med postopkom stiskanja se slika spremeni in izgubi nekatere podrobnosti.

1. Barvno podvzorčenje

Tukaj je slika z uporabljeno samo prvo stopnjo stiskanja.

Kako deluje format JPEG
(Interaktivna različica - v original članki). Odstranitev ene številke uniči vse barve. Če pa odstranimo natanko šest številk, to praktično ne vpliva na sliko.

Zdaj je številke nekoliko lažje razbrati. To je skoraj preprost seznam barv, pri katerem vsak bajt spremeni natanko en piksel, hkrati pa je že za polovico manjši od nestisnjene slike (ki bi v tej zmanjšani velikosti zavzela približno 300 KB). Lahko uganeš zakaj?

Vidite lahko, da te številke ne predstavljajo standardne rdeče, zelene in modre komponente, saj če zamenjamo vse številke z ničlami, bomo dobili zeleno sliko (namesto bele).

Kako deluje format JPEG

To je zato, ker ti bajti pomenijo Y (svetlost),

Kako deluje format JPEG

Cb (relativna modrina),

Kako deluje format JPEG

in slike Cr (relativna rdečina).

Kako deluje format JPEG

Zakaj ne bi uporabili RGB? Navsezadnje tako deluje večina sodobnih zaslonov. Vaš monitor lahko prikaže katero koli barvo, vključno z rdečo, zeleno in modro, z različnimi intenzivnostmi za vsako slikovno piko. Belo dobimo tako, da vklopimo vse tri na polno svetilnost, črno pa tako, da jih izklopimo.

Kako deluje format JPEG

Tudi to je zelo podobno delovanju človeškega očesa. Barvni receptorji v naših očeh se imenujejo "stožci“, in so razdeljeni v tri vrste, od katerih je vsaka bolj občutljiva na rdečo, zeleno ali modro barvo [stožci tipa S so občutljivi v vijolično-modri barvi (S iz angleškega kratkega - kratkovalovnega spektra), M -tip - v zeleno-rumenem (M iz angleščine Medium - srednji val) in L-tip - v rumeno-rdečih (L iz angleščine Long - dolgovalovni) delih spektra. Prisotnost teh treh vrst stožcev (in paličic, ki so občutljive v smaragdno zelenem delu spektra) daje človeku barvni vid. / pribl. prevod]. Palice, druga vrsta fotoreceptorja v naših očeh, je sposoben zaznati spremembe v svetlosti, vendar je veliko bolj občutljiv na barvo. Naše oči imajo približno 120 milijonov paličic in le 6 milijonov stožcev.

Zato naše oči veliko bolje zaznavajo spremembe svetlosti kot spremembe barve. Če ločite barvo od svetlosti, lahko odstranite malo barve in nihče ne bo ničesar opazil. Kromatsko podvzorčenje je postopek predstavitve barvnih komponent slike pri nižji ločljivosti kot komponente svetilnosti. V zgornjem primeru ima vsaka slikovna pika natanko eno komponento Y in vsaka posamezna skupina štirih slikovnih pik ima natanko eno Cb in eno Cr komponento. Zato slika vsebuje štirikrat manj barvnih informacij kot izvirnik.

Barvni prostor YCbCr se ne uporablja samo v JPEG. Prvotno so ga izumili leta 1938 za televizijske programe. Vsakdo nima barvnega televizorja, zato je ločevanje barve in svetlosti vsem omogočilo enak signal, televizorji brez barv pa so preprosto uporabljali samo komponento svetlosti.

Torej odstranitev ene številke iz urejevalnika popolnoma uniči vse barve. Komponente so shranjene v obliki Y Y Y Y Cb Cr (pravzaprav ne nujno v tem vrstnem redu - vrstni red shranjevanja je določen v glavi datoteke). Če odstranite prvo številko, bo prva vrednost Cb zaznana kot Y, Cr kot Cb, na splošno pa boste imeli učinek domin, ki zamenja vse barve slike.

Specifikacija JPEG ne zahteva uporabe YCbCr. Toda večina datotek ga uporablja, ker ustvarja boljše slike z zmanjšanim vzorčenjem kot RGB. Vendar mi ni treba verjeti na besedo. V spodnji tabeli si sami oglejte, kako bo videti podvzorčenje vsake posamezne komponente v RGB in YCbCr.

Kako deluje format JPEG
(Interaktivna različica - v original članki).

Odstranjevanje modre ni tako opazno kot rdeče ali zelene. To je zato, ker je od šestih milijonov stožcev v vaših očeh približno 64 % občutljivih na rdečo, 32 % na zeleno in 2 % na modro.

Najbolje se vidi znižanje vzorčenja komponente Y (spodaj levo). Že majhna sprememba je opazna.

Pretvorba slike iz RGB v YCbCr ne zmanjša velikosti datoteke, vendar olajša iskanje manj vidnih podrobnosti, ki jih je mogoče odstraniti. V drugi fazi pride do stiskanja z izgubo. Temelji na ideji predstavitve podatkov v bolj stisljivi obliki.

2. Diskretna kosinusna transformacija in vzorčenje

Ta stopnja stiskanja je večinoma tisto, kar je JPEG. Po pretvorbi barv v YCbCr se komponente stisnejo posamezno, tako da se lahko nato osredotočimo samo na komponento Y. In tukaj je videti, kako so videti bajti komponente Y po uporabi te plasti.

Kako deluje format JPEG
(Interaktivna različica - v original članki). V interaktivni različici klik na slikovno piko pomakne urejevalnik do vrstice, ki jo predstavlja. Poskusite odstraniti številke s konca ali določeni številki dodati nekaj ničel.

Na prvi pogled je videti kot zelo slaba kompresija. Na sliki je 100 slikovnih pik in potrebnih je 000 števil, ki predstavljajo njihovo svetlost (Y-komponente) – to je slabše, kot če ne bi stisnili ničesar!

Vendar upoštevajte, da je večina teh številk nič. Poleg tega je mogoče vse te ničle na koncu vrstic odstraniti, ne da bi spremenili sliko. Ostalo je približno 26 številk, to pa je skoraj 000-krat manj!

Ta raven vsebuje skrivnost šahovskih vzorcev. Za razliko od drugih učinkov, ki smo jih videli, videz teh vzorcev ni napaka. So gradniki celotne podobe. Vsaka vrstica urejevalnika vsebuje natančno 64 števil, koeficientov diskretne kosinusne transformacije (DCT), ki ustrezajo intenzivnosti 64 edinstvenih vzorcev.

Ti vzorci so oblikovani na podlagi kosinusne krivulje. Nekatera izmed njih izgledajo takole:

Kako deluje format JPEG
8 od 64 kvot

Spodaj je slika, ki prikazuje vseh 64 vzorcev.

Kako deluje format JPEG
(Interaktivna različica - v original članki).

Ti vzorci so še posebej pomembni, ker tvorijo osnovo slik 8x8. Če niste seznanjeni z linearno algebro, to pomeni, da je mogoče iz teh 8 vzorcev narediti katero koli sliko 8x64. DCT je postopek delitve slik na bloke 8x8 in pretvorbo vsakega bloka v kombinacijo teh 64 koeficientov.

Zdi se kot čarovnija, da je lahko katera koli slika sestavljena iz 64 specifičnih vzorcev. Vendar je to enako, kot če bi rekli, da je kateri koli kraj na Zemlji mogoče opisati z dvema številoma - zemljepisno širino in dolžino [ki označuje poloble / pribl. prevod]. Zemeljsko površje si pogosto predstavljamo kot dvodimenzionalno, zato potrebujemo le dve števili. Slika 8x8 ima 64 dimenzij, zato potrebujemo 64 številk.

Ni še jasno, kako nam to pomaga pri stiskanju. Če potrebujemo 64 številk za predstavitev slike 8 x 8, zakaj bi bilo to bolje kot samo shranjevanje 64 komponent svetlosti? To počnemo iz istega razloga, kot smo tri številke RGB spremenili v tri številke YCbCr: omogoča nam, da odstranimo subtilne podrobnosti.

Težko je natančno videti, katere podrobnosti so odstranjene na tej stopnji, ker JPEG uporablja DCT za bloke 8x8. Vendar nam nihče ne prepoveduje, da ga uporabimo za celotno sliko. Tukaj je videti DCT za komponento Y, ki se uporablja za celotno sliko:

Kako deluje format JPEG

Več kot 60 številk je mogoče odstraniti s konca brez opaznih sprememb na fotografiji.

Kako deluje format JPEG

Vendar upoštevajte, da bo razlika očitna, če izničimo prvih pet številk.

Kako deluje format JPEG

Številke na začetku predstavljajo nizkofrekvenčne spremembe slike, ki jih naše oko najbolje zazna. Številke proti koncu označujejo spremembe v visokih frekvencah, ki jih je težje opaziti. Da bi »videli, česar oko ne vidi«, lahko izoliramo te visokofrekvenčne podrobnosti tako, da prvih 5000 številk izničimo na ničlo.

Kako deluje format JPEG

Vidimo vsa področja slike, kjer pride do največjih sprememb od piksla do piksla. Izstopajo mačje oči, njegovi brki, frotirna odeja in sence v spodnjem levem kotu. Lahko greste še dlje, tako da izničite prvih 10 številk:

Kako deluje format JPEG

20 000:

Kako deluje format JPEG

40 000:

Kako deluje format JPEG

60 000:

Kako deluje format JPEG

Te visokofrekvenčne podrobnosti JPEG odstrani med stopnjo stiskanja. Pri pretvorbi barv v koeficiente DCT ni izgube. Izguba se pojavi v koraku vzorčenja, kjer se odstranijo visokofrekvenčne ali skoraj ničelne vrednosti. Ko znižate kakovost shranjevanja JPEG, program poveča prag za število odstranjenih vrednosti, kar zmanjša velikost datoteke, vendar naredi sliko bolj slikovito. Zato je slika v prvem delu, ki je bil 57-krat manjši, izgledala takole. Vsak blok 8x8 je bil predstavljen z veliko manj koeficienti DCT v primerjavi z različico višje kakovosti.

Ustvarite lahko tako kul učinek, kot je postopno pretakanje slik. Prikažete lahko zamegljeno sliko, ki postaja vse bolj podrobna, ko se prenaša vedno več koeficientov.

Tukaj, samo za zabavo, je tisto, kar dobite z uporabo samo 24 številk:

Kako deluje format JPEG

Ali samo 5000:

Kako deluje format JPEG

Zelo zamegljen, a nekako prepoznaven!

3. Kodiranje dolžine niza, delta in Huffman

Doslej so bile vse stopnje stiskanja z izgubo. Zadnja stopnja, nasprotno, poteka brez izgub. Ne izbriše informacij, vendar znatno zmanjša velikost datoteke.

Kako lahko nekaj stisnete, ne da bi zavrgli informacije? Predstavljajte si, kako bi opisali preprost črn pravokotnik 700 x 437.

JPEG za to uporablja 5000 številk, vendar je mogoče doseči veliko boljše rezultate. Si predstavljate shemo kodiranja, ki bi tako sliko opisala v čim manj bajtih?

Minimalna shema, ki sem jo lahko iznašel, uporablja štiri: tri za predstavitev barve in četrto za označevanje števila pikslov, ki jih ima ta barva. Zamisel o predstavljanju ponavljajočih se vrednosti na ta zgoščen način se imenuje kodiranje po dolžini. Je brez izgube, ker lahko kodirane podatke obnovimo v prvotno obliko.

Datoteka JPEG s črnim pravokotnikom je veliko večja od 4 bajtov - ne pozabite, da se na ravni DCT stiskanje uporablja za bloke pikslov 8x8. Zato potrebujemo vsaj en koeficient DCT za vsakih 64 slikovnih pik. Potrebujemo ga, ker nam namesto shranjevanja enega koeficienta DCT, ki mu sledi 63 ničel, kodiranje dolžine niza omogoča shranjevanje ene številke in nakazuje, da so "vsi drugi ničle."

Delta kodiranje je tehnika, pri kateri vsak bajt vsebuje razliko od neke vrednosti namesto absolutne vrednosti. Zato urejanje določenih bajtov spremeni barvo vseh drugih slikovnih pik. Na primer, namesto shranjevanja

12 13 14 14 14 13 13 14

Lahko začnemo z 12 in nato preprosto označimo, koliko moramo dodati ali odšteti, da dobimo naslednje število. In to zaporedje v delta kodiranju ima obliko:

12 1 1 0 0 -1 0 1

Pretvorjeni podatki niso manjši od izvirnih podatkov, vendar jih je lažje stisniti. Uporaba delta kodiranja pred kodiranjem po dolžini lahko veliko pomaga, medtem ko je še vedno stiskanje brez izgub.

Delta kodiranje je ena redkih tehnik, ki se uporablja zunaj blokov 8x8. Od 64 koeficientov DCT je eden preprosto konstantna valovna funkcija (polna barva). Predstavlja povprečno svetlost vsakega bloka za luma komponente ali povprečno modrino za Cb komponente itd. Prva vrednost vsakega bloka DCT se imenuje vrednost DC in vsaka vrednost DC je delta kodirana glede na prejšnje. Zato bo sprememba svetlosti prvega bloka vplivala na vse bloke.

Zadnja skrivnost ostaja: kako sprememba ednine popolnoma uniči celotno sliko? Doslej stopnje kompresije niso imele takšnih lastnosti. Odgovor je v glavi JPEG. Prvih 500 bajtov vsebuje metapodatke o sliki – širino, višino itd., in z njimi še nismo delali.

Brez glave je skoraj nemogoče (ali zelo težko) dekodirati JPEG. Videti bo, kot da vam poskušam opisati sliko in začnem izumljati besede, da bi izrazil svoj vtis. Opis bo verjetno precej zgoščen, saj si lahko izmislim besede s točno takim pomenom, kot ga želim sporočiti, za vse ostale pa ne bodo imele smisla.

Sliši se neumno, a zgodi se točno to. Vsaka slika JPEG je stisnjena z zanjo značilnimi kodami. Slovar kod je shranjen v glavi. Ta tehnika se imenuje Huffmanova koda, besedišče pa Huffmanova tabela. V glavi je tabela označena z dvema bajtoma - 255 in nato 196. Vsaka barvna komponenta ima lahko svojo tabelo.

Spremembe tabel bodo radikalno vplivale na katero koli sliko. Dober primer je sprememba 15. vrstice v 1.

Kako deluje format JPEG

To se zgodi, ker tabele določajo, kako je treba brati posamezne bite. Do sedaj smo delali le z binarnimi števili v decimalni obliki. Toda to nam prikrije dejstvo, da če želite številko 1 shraniti v bajt, bo ta videti kot 00000001, saj mora imeti vsak bajt natanko osem bitov, tudi če je potreben le eden od njih.

To je potencialno velika izguba prostora, če imate veliko majhnih številk. Huffmanova koda je tehnika, ki nam omogoča omilitev te zahteve, da mora vsako število zavzemati osem bitov. To pomeni, da če vidite dva bajta:

234 115

Potem, odvisno od Huffmanove tabele, so to lahko tri številke. Če jih želite ekstrahirati, jih morate najprej razdeliti na posamezne dele:

11101010 01110011

Nato pogledamo tabelo, da ugotovimo, kako jih združiti. Na primer, to je lahko prvih šest bitov (111010) ali 58 v decimalki, sledi pet bitov (10011) ali 19 in nazadnje zadnji štirje biti (0011) ali 3.

Zato je zelo težko razumeti bajte na tej stopnji stiskanja. Bajti ne predstavljajo tega, kar se zdijo. V tem članku se ne bom spuščal v podrobnosti dela s tabelo, ampak materiali o tem vprašanju na spletu zadostuje.

Zanimiv trik, ki ga lahko naredite s tem znanjem, je, da ločite glavo od JPEG in jo shranite ločeno. Pravzaprav se izkaže, da lahko samo vi preberete datoteko. Facebook to počne, da bi datoteke še zmanjšal.

Kaj drugega lahko naredimo je, da Huffmanovo tabelo precej spremenimo. Za druge bo videti kot polomljena slika. In samo vi boste poznali čarobni način, kako to popraviti.

Povzemimo: kaj je torej potrebno za dekodiranje JPEG? Potrebno:

  1. Izvlecite Huffmanovo tabelo(e) iz glave in dekodirajte bite.
  2. Ekstrahirajte koeficiente diskretne kosinusne transformacije za vsako barvno in svetilno komponento za vsak blok 8x8, pri čemer izvedete inverzne transformacije kodiranja dolžine in delta.
  3. Združite kosinuse na podlagi koeficientov, da dobite vrednosti slikovnih pik za vsak blok 8x8.
  4. Barvne komponente lestvice, če je bilo izvedeno podvzorčenje (te informacije so v glavi).
  5. Pretvorite nastale vrednosti YCbCr za vsako slikovno piko v RGB.
  6. Prikaži sliko na zaslonu!

Resno delo za preprosto gledanje fotografije z mačko! Kar pa mi je pri njem všeč, je, da kaže, kako je tehnologija JPEG osredotočena na človeka. Temelji na posebnostih našega zaznavanja, kar nam omogoča veliko boljšo kompresijo kot običajne tehnologije. In zdaj, ko razumemo, kako deluje JPEG, si lahko predstavljamo, kako je mogoče te tehnologije prenesti na druga področja. Na primer, delta kodiranje v videu lahko zagotovi znatno zmanjšanje velikosti datoteke, saj se pogosto celotna področja ne spreminjajo od okvirja do okvirja (na primer ozadje).

Koda, uporabljena v članku, je odprt in vsebuje navodila, kako zamenjati slike s svojimi.

Vir: www.habr.com

Dodaj komentar