JPG oz. JPEG

JPG oz. JPEG je rastrski slikovni format.  Format se najpogosteje uporablja pri fotografijah, slikah in podobno, saj vsebuje veliko število barv. To je najbolj primeren format za spletne strani, saj podatke o sliki zgosti, zaradi česar je datoteka zelo majhna in je zaradi tega tudi lažje prenosljiva. Definiran je predvsem za črno-bele slike, saj ima črne, bele in pa tudi sive točke. Če pa imamo barvne slike pa se pri stiskanju stiska vsaka komponenta RGB posebej [4].

S formatom JPEG lahko določimo faktor kakovosti. To pomeni, da se lahko del podatkov pri stiskanju izgubi, vendar imamo možnost, da si lahko sami izberemo kateri podatki se lahko izgubijo. Temu pravimo izgubno stiskanje. Potrebno je poiskati pravo mero med stiskanjem in kvaliteto, da je naša zajeta slika podobna originalu oz. razlika med njima skoraj ni opazna. Če pa pretiravamo s stiskanjem potem naša slika ni več podobna originalu [1].

 

Postopki kodiranja

Vir:Rugelj, © Postopki JPEG kodiranja

Vir: Rugelj, © Postopki kodiranja JPEG formata

Najprej razdelimo sliko na bloke 8×8 točk (to pomeni na bloke z 64 biti). Nato za vsak blok posebej izračunamo DCT – Diskretna kosinusna preslikavo (transformacijo). Gre predvsem  za neko razbitje v vrsto. Vzamemo vhodno matriko A(i, j), izračunamo vrednost posameznega bloka in dobimo novo vrednost matrike B (i, j). DCT izraža končno zaporedje podatkovnih točk v smislu vsote kosinusnih funkcij, ki nihajo na različnih frekvencah.  Ta model spremeni sliko v komponente z različno pomembnostjo glede na vidno kakovost. To pomeni, da imajo visoko frekvenčne informacije nizko vrednost oz. le manjši vpliv na sliko in jih zato lahko zanemarimo [1].

CCO Public Domane: Wikipedia, Diskretna kosinusna preslikava

CCO Public Domane: Wikipedia

V naslednjem koraku izvedemo kvantizacijo. Kvantizacija je postopek, kjer s krajšim zapisom ustvarimo zaokroževanja in s tem  izgubimo nekaj podatkov. Velikost kvantizacijskega koraka  določa faktor stiskanja in faktor poslabšanja kakovosti. Kvaliteto slike določamo s pomočjo kvantizacijskih matrik. To so matrike, ki vsebujejo koeficiente pomembnosti in sicer majhni koeficienti predstavljajo visoke frekvence, veliki koeficienti pa nizke frekvence [1].

Po kvantizaciji dobijo številni DCT koeficienti, ki ustrezajo višjim frekvencam vrednost 0. Po kvantizacijskem koraku imamo v zapisu matrike veliko ničel, ki jih z RLE kodiranjem ne pišemo, za neničelna števila pa uporabimo Huffmanovo kodiranje. Huffmanovo kodiranje je vrsta kodiranja, ki se uporablja predvsem za stiskanje podatkov, kjer za pogostejše pojavljanje znakov uporablja daljšo kodo, za redkeje uporabljene znake pa krajšo kodo [1].

Vir:Rugelj, © Binarno kodiranje.

Vir: Rugelj, © Binarno kodiranje

V spodnjem posnetku, pa si lahko bolj podrobno in nazorno ogledate kodiranje JPEG formata.

Viri

[1] Hladnik, A. (b.d.). Stiskanje slike. Pridobljeno dne 10.11.2019 s https://www.ntf.uni-lj.si/igt/wp-content/uploads/sites/8/2017/11/7-Stiskanje-slike.pdf

[2] Rugelj, J. (2019). Zapiski predavanj pri predmetu Večpredstavnost in hipertekst. Ljubljana: Pedagoška fakulteta

[3] Žerovnik, A. (2019). Zapiski iz vaj pri predmetu Večpredstavnost in hipertekst. Ljubljana: Pedagoška fakulteta.