Digitalne slike in računalniška grafika - dodatek 1

Slike in računalniška grafika
Ločljivost digitalnih slik
•
• Standardi za predstavitev slike na računalniškem zaslonu:
•
Slika je največkrat predstavitev (projekcija) objektov v prostoru v dveh
dimenzijah.
Abstraktno bi lahko sliko opisali kot zvezno funkcijo, ki definira (pravokotno)
področje neke ravnine:
– pri fotografiji je vrednost posamezne točke sorazmerna prejeti energiji v spektru, ki
ga detektor (film) zaznava (slika intenzivnosti),
– pri tipalnih senzorjih je slika sorazmerna deformaciji senzorja ob stiku z otipanim
objektom.
•
•
•
Slika je lahko posneta kot fotografija, analogni video signal ali v digitalni
obliki.
Pri digitalizaciji je slika v posameznih točkah vzorčena na diskretnih intervalih
in je predstavljena kot matrika numeričnih vrednosti, ki predstavljajo
intenzivnost (in barvo).
Točke vzorčenja se imenujejo slikovni elementi (picture elements - pixels) in
ponavadi predstavljajo povprečje okoliških vrednosti - ločljivost digitalnih slik
je zaenkrat bistveno slabša od realnosti!
© doc.dr. Jože Rugelj
Hipertekst in hipermedia
IV-1
VGA (640 x 480, 16 barv), …
• Format - predstavitev slike na zaslonu in ob zajemu:
– ločljivost oz velikost slike (v pixlih - slikovnih točkah)
– kodiranje barve (1, 8, 24 bitov)
• Format slike za shranjevanje in prenos:
– zaradi velike količine podatkov potrebno stiskanje (kodiranje),
– neposredno ali posredno shranjevanje RGB komponente ali shranjevanje
indeksa barve v ‘paleti’.
• Uporaba znanj o človekovih čutilih pri zmanjševanju količine
informacij (frekvenca, zaznavanje sprememb svetlosti in barv,
interpolacija, ločljivost človeškega vida)
© doc.dr. Jože Rugelj
Hipertekst in hipermedia
IV-2
Predstavitev slik - grafični načini
Predstavitev slik - grafični načini II
• True Color Mode: vsaka od treh osnovnih barv (RGB -redgreen-blue) je predstavljena z 1 zlogom, skupaj torej 24
bitov/pixel, 224 = 16,7 milijona barv (uporablja JPEG),
podpirajo mnoge grafične kartice.
• High Color Mode: podobno kot TCM, vendar samo 5 ali 6
bitov za barvo (MSB biti); že cenene grafične kartice podpirajo
HCM ločljivosti 800 x 600.
• Uporaba palet: barve so določene z indeksom v paleti, tj. tabeli
RGB kombinacij; za indeks 1 zlog informacij, torej 256 barv; za
prikaz 24 bitnih barv uporabijo kvantizacijo (iskanje najbližje
barve v paleti); S-VGA v ‘paletnem načinu’ ločljivosti 640 x
480 (kartice z 1MB do 1024x 768).
• 16-barvna grafika: 4 biti za barvo, ta način podpira VGA; v
Windows za sliko ne moremo prilagoditi niti vseh teh barv, ker
nekatere potrebujejo za svoje grafične elemente (drsniki,
gumbi,…)
• Barvna kvantizacija: to je prilagajanje barv iz izvirnega zapisa
slike možnostim grafične kartice - iskanje najbližje podobne
barve.
• Dithering (stresanje): metoda za kombiniranje majhnega
nabora barv tako, da dobimo učinek mešanja barv; uporaba obeh
tehnik skupaj.
© doc.dr. Jože Rugelj
© doc.dr. Jože Rugelj
Hipertekst in hipermedia
IV-3
Hipertekst in hipermedia
Bitmap (.BMP) format
BMP grafični načini
• V operacijskih sistemih Windows so bitne slike shranjene v
formatu, ki je neodvisen od naprav za prikazovanje
• Vrednost BitCount je lahko:
–
–
–
–
(DIB - Device Independent Bitmap).
• Struktura .BMP:
–
–
–
–
bitmap-file header (tip, velikost, struktura datoteke),
bitmap-info header (dimenzija slike, tip stiskanja, barvni format),
barvna tabela (informacije o barvah, pomembnejše najprej),
bitna slika (opis slike, začetek levo spodaj).
Hipertekst in hipermedia
1: monokromatska slika, slikovna točka predstavljena z 1 bitom;
4: 16 barv, točko predstavlja 4-bitni indeks v barvni tabeli (0x1f);
8: 256 barv, točko predstavlja 8-bitni indeks v barvni tabeli (0x1f);
24: 16,7 miljonov barv, točke predstavljene kot zaporedje treh zlogov RGB komponente;
• Kodiranje:
• Pri 24-bitni RGB ni barvne tabele, uporablja kar zapis s tremi
RGB zlogi.
• Od Win 3.0 so bitne slike stisnjene po principu RLE (run-length
encoding), 4 ali 8 bitov za slikovno točko.
© doc.dr. Jože Rugelj
IV-4
IV-5
– zapis informacije o točkah z dvema zlogoma, prvi število ponovitev,
drugi pa indeks v tabeli;
– vrednost 0 v prvem zlogu predstavlja ubežno zaporedje, drugi zlog potem
pomeni:
•
•
•
•
0 konec vrstice,
1 konec slike,
2 odmik naslednje točke (vodoravno, navpično),
3-ffh absolutni način: vrednost pomeni število točk, ki sledijo.
© doc.dr. Jože Rugelj
Hipertekst in hipermedia
IV-6
Kodiranje podatkov
GIF - Graphics Interchange Format
• S pomočjo kodiranja zmanjšamo količino podatkov.
• Tri vrste kodiranja:
• To je format za definicijo barvnih rasterskih slik.
• GIF omogoča učinkovito kodiranje slik visoke ločljivosti in
kakovosti in na različnih računalnikih.
• Temelji na uporabi LZW (Lempel-Ziv-Welch) algortima za
kodiranje (kot program arj).
• LZW izkorišča za zmanjšanje količine podatkov dejstvo, da se
določena zaporedja ponavljajo.
• Trije tipi podatkov: zaporedje vhodnih znakov, zaporedje kod in
tabela nizov (vhodnih znakov) - indeksi te tabele predstavljajo
kode.
• Začetne vrednosti tabele nizov predstavljajo posamezni vhodni
znaki (razvrščeni po ‘abecedi’).
– entropijsko kodiranje: uporabno ne glede na značilnosti medija, brez
izgub (npr. Huffmanovo ali aritmetično, RLE);
– izvorno (angl. source) kodiranje: upoštevanje semantike podatkov,
stopnja stiskanja odvisna od vsebine, izguba informacij pri kodiranju enosmerni postopki; postopki temeljijo na napovedovanju (angl.
prediction) in transformacijah (FFT, DCT);
– hibridno je kombinacija prejšnjih dveh.
• Dekodiranje je inverzni proces.
• Različne zahteve glede zahtevnosti kodiranja in dekodiranja:
– sprotno ali z zakasnitvijo
– različne pogostnosti izvajanja.
© doc.dr. Jože Rugelj
Hipertekst in hipermedia
IV-7
LZW kodiranje
•
IV-8
Hipertekst in hipermedia
Zaporedje vhodnih znakov: ABACABA, abeceda: A,B,C,D
V hodni
znak
N iz
Izhodne
kode
[ ]
IV-9
LZW dekodiranje
Hipertekst in hipermedia
K o dna tabela
#0= A , #1= B ,
#2= C , # 3=D
A
[A ]
B
[A ]B → [B ]
#0
#4= A B
A
[B ]A→ [A ]
#1
#5= B A
C
[A ]C → [C ]
#0
#6= A C
A
[C ]A→ [A ]
#2
#7= C A
B
[A ]B → [A B ]
A
[A B ]A → [A ]
#4
#8= A B A
-
[A ]→ [ ]
#0
© doc.dr. Jože Rugelj
Hipertekst in hipermedia
Značilnosti GIF
[1] Initialize string table;
[2] get first code: <code>;
[3] output the string for <code> to the charstream;
[4] <old> = <code>;
[5] <code> <- next code in codestream;
[6] does <code> exist in the string table?
(yes: output the string for <code> to the charstream;
[...] <- translation for <old>;
K <- first character of translation for<code>;
add [...]K to the string table;
<old> <- <code>; )
(no: [...] <- translation for <old>;
K <- first character of [...];
output [...]K to charstream and add it to string table;
<old> <- <code>)
[7] go to [5];
© doc.dr. Jože Rugelj
Hipertekst in hipermedia
LZW kodiranje - primer
[1] Initialize string table;
[2] [.c.] <- empty;
[3] K <- next character in charstream;
[4] Is [.c.]K in string table?
(yes: [.c.] <- [.c.]K;
go to [3];
)
(no: add [.c.]K to the string table;
output the code for [.c.] to the codestream;
[.c.] <- K;
go to [3];
)
[.c.] …… niz
K
…… vhodni znak
© doc.dr. Jože Rugelj
© doc.dr. Jože Rugelj
• Zelo učinkovito stiskanje:
odvisno od št. barv (2..256)
• Prozornost:
izbrano barvo spremenimo
tako, da je skoznjo vidno
ozadje.
Image Format
GIF
JPEG with 15% cmpr.
TIFF with LZW cmpr.
PCX
BMP with compr.
TIFF
BMP
IV-10
File size
11.6 kb (11,879 )
15.6 kb (16,042 )
20.0 kb (20,558 )
31.5 kb (32,293 )
84.1 kb (49,308 )
86.6 kb (88,750 )
173 kb (177,254 )
• GIF uporablja samo 256 barv.
• Prepletanje (angl. interlacing): slika se postopno izboljšuje medtem
ko jo pregledovalnik nalaga (žaluzije - rolete).
• Možnost shranjevanja več slik v eni datoteki: osnova za
enostavne animacije (omogoča novejša verzija GIF 89a).
• Problem LZW licence - od 1995 Unisys zahteva patentnino od
proizvajalcev programske opreme za GIF - alternativa PNG format.
IV-11
© doc.dr. Jože Rugelj
Hipertekst in hipermedia
IV-12
Razvoj GIF
TIFF - Tagged Image File Format
• Prva verzija razvita v letu 1987 (GIF 87a):
• To je format, ki omogoča izmenjavo slik med različnimi
programi in delovnimi okolji (operacijski sistemi).
• Poudarek na podpori namiznega založništva - format za optične
čitalce in shranjevanje računalniško generiranih slik.
• Podobno kot GIF ima lahko vgrajeno LZW stiskanje, vendar
podpira tudi True Color (24 bitne barve).
• Format je zasnovan tako, da se razvija glede na potrebe dodajanje novih polj s podatki.
• Osnova za shranjevanje je ‘datoteka zlogov’.
• Problem različnih verzij TIFF, vendar večina aplikacij podpira
verzijo 5.0.
–
–
–
–
LZW
več slik (angl. frames) v eni datoteki
pozicija slike v logičnem oknu,
prepletanje.
• Izboljšave v letu 1989 (GIF 89a):
–
–
–
–
–
zakasnitev (v stotinkah) med predvajanimi slikami,
prozorna barva,
izpis besedila,
način odstranitve prikazane slike po izteku določenega časa,
kodiranje informacij za druge aplikacije in komentarjev.
© doc.dr. Jože Rugelj
Hipertekst in hipermedia
IV-13
© doc.dr. Jože Rugelj
Hipertekst in hipermedia
Struktura TIFF datoteke
Struktura TIFF datoteke II
• Glava (Image File Header) ima 8 zlogov:
• Polje s podatki o sliki ima 12 zlogov:
zlog
0-1
2-3
4-7
zlog
0-1
2-3
4-7
8-11
vsebina
format zapisa vrednosti: II (hex 4949), MM (hex 4D4D)
verzija (vedno 42 ?!)
kazalec na prvi IFD (Image File Directory)
• IFD (Image File Directory):
zlog
0-1
N*12
zadnji 4
© doc.dr. Jože Rugelj
vsebina
oznaka polja (angl. tag)
tip polja
dolžina polja
kazalec (odmik) na vrednosti (nekje v datoteki)
• Primeri podatkov o slikah: dimenzija slike, način stiskanja,
ločljivost, število bitov/točko, palete, barvne krivulje, faksimile
podatki, …
• Podatki urejeni po vrednostih oznak.
• Organizacija slike v trakove (angl. strip)
vsebina
število polj (N)
polja s podatki o sliki
kazalec na naslednji IFD ali 0, če je zadnji
Hipertekst in hipermedia
IV-14
IV-15
© doc.dr. Jože Rugelj
Hipertekst in hipermedia
IV-16
Stiskanje v TIFF datotekah
Stiskanje v TIFF datotekah II
• CCITT Group3 (1d) modificiran Huffman se uporablja za
črno-bele slikovne datoteke vrste TIFF.
• LZW (Lempel-Ziv-Welch) se uporablja za True Color in 256
barvne slikovne datoteke vrste TIFF in za TIFF slikovne
datoteke v sivinah. Pri LZW stiskanju ne pride do izgube
podatkov, tako da zagotavlja natančno reprodukcijo izvirne
slike.
• CCITT Group3 (1d) faks se uporablja za črno-bele slikovne
datoteke vrste TIFF, ki so namenjene faksnemu prenosu.
• CCITT Group4 (2d) faks se uporablja za črno-bele slikovne
datoteke vrste TIFF, ki potujejo po zanesljivih podatkovnih
povezavah, kot je npr. ISDN ali X.25. V primerjavi s stiskanjem
vrste Group3 (1d) zagotavlja za slike brez barvnega stresanja
boljše stiskanje.
• JPEG (Joint Photographics Experts Group) se uporablja za True
Color TIFF slikovne datoteke in TIFF slikovne datoteke v 256
sivinah. JPEG doseže visoko razmerje stiskanja, vendar med
stiskanjem pride do izgube nekaterih podatkov za sliko.
• Pakirani biti je naslednja vrsta stiskanja za črno-bele slikovne
datoteke vrste TIFF (Macintosh).
© doc.dr. Jože Rugelj
Hipertekst in hipermedia
IV-17
© doc.dr. Jože Rugelj
Hipertekst in hipermedia
IV-18