JPG

                                     JPG

Lastnosti:

JPEG (Joint Photographic Experts Group) je standardiziran mehanizem za stiskanje rastrskih slik [17]. Ta format omogoča prikaz v 24-bitni True Color tehniki [6]. Kjer je vsaka izmed treh osnovnih barv (RGB – red-green-blue) predstavljena z 1 zlogom, skupaj torej 24 bitov na pixel, 224 = 16,7 milijona barv [13].

Podatki v taki datoteki so močno stisnjeni in zasedejo le 10% svoje prave velikosti, kar je čudovita lastnost predvsem, ko govorimo o prenosu po modemih [4]. Vendar pa ima dobra stisljivost visoko ceno. JPEG namreč uporablja kompresijo z izgubo (lossy compression). Kar se posledično opaža na kvaliteti slik [18]. Ko je slika stisnjena in shranjena pod tem formatom, se nekateri podatki izgubijo, zato kakovosti ni mogoče obnoviti [4].

Opomba: Vedno ko sliko v formatu JPEG ponovno stisnemo in shranimo, se izgubi še večje število podatkov. Zato je dobro, da v tem formatu shranjujemo le končne fotografije/izdelke in jih kasneje ne spreminjamo več [13].

Večina drugih formatov za fotografije je brez izgub (lossless), saj so lahko podatki obnovljivi bit za bitom. Tak je tudi TIFF. Ta zahteva integritete omejuje stiskanje podatkov in učinkovitost. Vendar je pri večini formatov kompresija brez izgube prva zahteva [4].

Kot smo že omenili JPEG uporablja stiskanje z izgubo, kar torej pomeni, da shranjena slika, ni povsem enaka originalu. Če sliko preveč stisnemo, bodo razlike v barvah in detajlih opazne (slika bo popačena), zato je potrebno poiskati pravo mejo med stiskanjem in kvaliteto [6]. Načeloma je dobro uporabiti 60%-75% kompresijo, saj tako velikost slike/datoteke očitno zmanjšamo,  kljub temu pa ta ostane primerne kakovosti za večino ekranov [14].

 

original (velikost 150 Kb)

podrobneje si oglejmo, kako izgleda del slike, po kompresiji različne velikosti:

original   (velikost 14 Kb)                                                     velikost 4,3 Kb (70% kompresija)

     

velikost 3Kb (79% kompresija)                                          velikost 1,2 Kb (92% kompresija)

        

Avtor: erev ©

Če želite stisniti svojo sliko, sledite naslednji povezavi:  https://compressjpeg.com/

 

Uporaba:

Kot smo že omenili, je prioriteta formata JPEG čim boljše stiskanje in ne kakovost slike [4]. Torej moramo na to paziti tudi pri sami uporabi tega formata.

JPEG je predvsem primeren za shranjevanje fotografij in slik realističnih prizorov. Manj pa za risanje geometrijskih objektov, črk, risank, zajemanje računalniških zaslonov in podobnih slik, ki imajo velike razlike med sosednjimi odtenki pixlov. Za le te sta bolj primerna formata PNG ali GIF [17].

Poleg tega pa so datoteke slik v JPEG formatu bistveno manjše, kar je seveda pomembno pri njihovem shranjevanju in prenašanju [17]. Datoteke, za katere želimo, da preko modemov potujejo hitro, morajo biti čim manjše [4], zato se ta format uporablja predvsem za prikazovanje slik na spletnih straneh, elektronski pošti [18],..

Prav tako pa je JPEG format velikokrat uporabljen na pomnilniških karticah digitalnih fotoaparatov, saj pri fotografijah navadno ne potrebujemo slik popolne kakovosti  želimo pa , da so te čim manjše, da se pomnilniške kartice ne napolnijo prehitro [17].

Kodiranje:

Ta metoda deluje na dejstvu, da človeško oko natančneje opazi razlike na svetlejših površinah kot na temnejših. Posledično so svetlejši odtenki, bolj natančni (manj stisnjeni), temnejši pa manj natančni (bolj stisnjeni)  [17, 13].

Čeprav se ta standard na splošno obravnava kot ena specifikacija, je v resnici sestavljen iz štirih ločenih delov:

Avtor: erev ©

1.Del RAZDELITEV

Ta del je zelo preprost in sicer se slika le razdeli na kvadrate velikosti 8×8 točk(pikslov)  kot je prikazano spodaj.

Torej je vsak tak kvadrat sestavljen iz 8×8=64 pikslov. Vsakemu takemu kvadratku pa na koncu pripada neka koda.

Avtor: erev ©

2.DEL Diskretna kosinusna transformacija (DCT)

DCT spremeni sliko v komponente z različno pomembnostjo. Pri tem si pomagamo s  spodnjo tabelo, ki prikazuje 64 osnovnih vzorcev kosinusnih frekvenc.

CC0, wikipedia

 

Tu sta pomembni dve stvari:

  • katere izmed teh vzorčkov moramo združiti, da dobimo točno tak vzorec kot na ga imamo na sliki (kvadratek 8×8 točk)
  • in kakšno intenzivnost ima posamezen vzorec oz. v kolikšni meri je prisoten.

Na podlagi tega dobimo neko matriko, kjer so na mestu vzorca, zapisane njihove pomembnosti  za našo sliko velikosti 8×8 pikslov. Nekateri vzorci imajo tako veliko pomembnost, drugi pa ne.

3.DEL Kvantizacija

Nato vsako vrednost v naši tabeli pogostosti delimo z pripadajočo vrednostjo v  kvantizacijski tabeli  (te tabele so lahko različne odvisno od faktorja stiskanja, ki ga želimo pri tem uporabiti) in količnik zaokrožimo.  Na spodnji sliki je standardna kvantizacijska tabela, ki se najpogosteje uporablja pri JPEG.

 

Ko to izračunamo ponovno dobimo matriko, ki pa vsebuje veliko število ničel. Torej ti deli na našo sliko nimajo vpliva in jih lahko zato odstranimo. Odstranitvi teh podatkov pravimo kvantizacija.

4.DEL Binarno kodiranje

Pri zadnjem delu pa gre za binarno kodiranje, kjer posamezne vrednosti preberemo po principu cik-cak, kot je prikazano na sliki.  Tako, na koncu našega niza dobimo veliko število ničel.

To pa lahko enostavno skrajšamo in sicer uporabimo RLE kodiranje, kjer namesto dolgega niza ničel pišemo npr. 100×0.

 Za konec:

Tako se zakodira vsak kvadrat na naši sliki in zato dobimo dolg niz nekih števil. Da pa ta niz ni preveč dolg, ga skrajšamo še s pomočjo Hufmanovega kodiranja [13].

Seveda pa smo sedaj postopek opisovali le za črno-bele slike, vendar gre pri barvnih pravzaprav za isto stvar. Razlika je le v tem, da je ta proces potrebno narediti za vse tri barvne komponente (rdeča, modra, zelena) [13].

Opomba: Če bi poskusili dobljeno kodo dekodirati, tega ne bi mogli, saj smo pri kvantizaciji nekatere podatke zavrgli in jih tako za vedno izgubili.

Če želite izvedeti več o kodiranju JPEG, si oglejte naslednji posnetek:

Preveri svoje znanje: