компресија података

Download Report

Transcript компресија података

KOMPRESIJA
Profesor:
Milorad K.Banjanin
PODATAKA
Student:
Jelena Popara
KOMPRESIJA PODATAKA
dimenzije A4:
2
8,27in x 11,69in= 96,68in
ukupan broj piksela:
96,68in 2x 3002 =
8701200
četiri bajta po pikselu
(CMYK)
ukupna veličina slike
iznosi: 8701200 x 4 =
34804800 ≈33.2 MB
frekvencija
uzorkovanja:
44.1 kHz –44100
uzoraka u sekundi
16-bitna kvantizacija:
2 bajta po uzorku
2 kanala (stereo)
potrebno je 2 x 44100 x
2 x 60 = 10584000
bajta ≈ 10 MB
rezolucija: 768x576
RGB model: 3 bajta po
pikselu
25 frejmova u sekundi
potrebno je 768 x 576
x 3 x 25 x 60 ≈1.85 GB
PAL
audio
frejm
frekvencija
uzorkovanje
in=intch;
1in=2.54cm.
kvantizacija
RGB
KOMPRESIJA PODATAKA
Primjene
Uštede
–skladištenje podataka
•hard disk,
razni optički / prenosni
mediji
–prenos podataka
•web, email, itd.
–nekompresovana slika →JPEG
•veličina kompresovane slike je manja
nekoliko puta
–nekompresovani CD audio →MP3
•veličina kompresovanog fajla je manja i do
10 puta
–nekompresovani PAL video →DivX
•veličina kompresovanog videa je manja
oko 230 puta.
KOMPRESIJA PODATAKA
skladištenje
kompresija
obrada slike u memoriji
(nekompresovana forma)
skladištenje slike –hard disk
(kompresovana forma)
dekompresija
prenos
izvor video
zapisa
kompresija
prenos
dekompresija
korisnik
video zapisa
KOMPRESIJA PODATAKA
•kada gubitak podataka
prilikom
kompresije/dekompresije nije
prihvatljiv
–tekstualni podaci (sadržaj
tekstualnih dokumenata)
–numerički podaci (podaci o
finansijskim transakcijama)
•kada je gubitak podataka
prilikom
kompresije/dekompresije
prihvatljiv u odrđenoj meri
–statične slike –ako sadržaj
dekompresovane slike dovoljno
dobro odražava originalni
–audio snimci –ako
dekompresovani snimak dovoljno
dobro odražava originalni
–video snimci –ako
dekompresovani snimak dovoljno
dobro odražava originalni
•prihvatljivost gubitaka ocenjuje
korisnik
LOSSLESS KOMPRESIJA
Klasični algoritmi za lossless
kompresiju:
 Run-length encoding
 Huffmanovi kodovi
 LZW (Lempel-Ziv-Welch) algoritam
LZW
primene:
GIF
format
RUN-LEGHT ENCODING
Primer crno bele slike:
Vizuelni prikaz slike
Interna reprezentacija slike
Internu reprezentaciju slike predstavimo kao niz, vrstu po vrstu:
RUN-LEGHT ENCODING
Kodiranje
 isti brojevi se ponavljaju u dugačkim nizovima
umesto da memorišemo svaku vrednost
posebno, memorisaćemo vrednost i broj njenih ponavljanja
pre prve promene vrednosti.
0 se ponavlja 6 puta; 1 se ponavlja 7 puta; 0 se ponavlja 5 puta;
NAZIV ALGORITMA :
 run = niz uzastopnih jednakih
vrednosti;
 length = dužina;
encoding = kodiranje
Stepen kompresije zavisi od
podataka:
što su duži nizovi istih vrednosti
kompresija je bolja.
HUFFMANOVI KODOVI
HUFFMANOVI KODOVI
–alfabet: {a,b,c,d,e}
–verovatnoće:
{ P(a)=0.2, P(b)=0.4, P(c)=0.2,
P(d)=0.1, P(e)=0.1 }.
Tabela kodova:
–uočimo dva simbola sa najmanjom verovatnoćom: d, e
–njihov kod je : c(d) = a1*0 ; c(e) = a1*1
–gde je a1 niz binarnih cifara, a * je operacija nadovezivanja (konkatenacije).
Novi simbol koji obuhvata d i e označimo sa f:
•njegova verovatnoća je P(f) = P(d) + P(e)=0.1+0.1=0.2
•njegov kod je c(f) = a1
HUFFMANOVI KODOVI
Tabela kodova:
–uočimo dva simbola sa najmanjom verovatnoćom: c, f
–njihov kod je: c(c) = a2*0 c(f) = a2*1
–kako je c(f) = a1 i c (f) = a 2*1, tada je a1 = a2 *1
HUFFMANOVI KODOVI
–uočimo dva simbola sa najmanjom verovatnoćom: g, a
–njihov kod je:
•c(g) = a3*0
•c(a) = a3*1
–kako je c(g) = a2 i c(g) = a3*0, tada je a2= a3*0
-novi simbol koji obuhvata g i a označimo sa h
•njegova verovatnoća je P(h) = P(g) + P(a)
•njegov kod je a3
HUFFMANOVI KODOVI
–uočimo dva simbola sa najmanjom verovatnoćom: h, b
–nema više od dva simbola!
–da bismo razlikovali dva simbola dovoljna je jedna binarna cifra,
dakle:
•c(h) = 0 ; •c(b) = 1
–kako je c(h) = a3 i c(h) = 0, tada je a3= 0
“odmotavanje”
•kako je a2= a3*0, tada je a2= 00
•kako je a1= a2*1, tada je a1= 001
HUFFMANOVI KODOVI
HUFFMANOVI KODOVI
tekst: abdcdeceabd
kod: 01100100000010001100000110110010
Ovakav kod možemo probati da dodatno kompresujemo
run-length algoritmom.
Isplati se samo u slučaju dugačkih nizova 0 i/ili 1.
Uz kompresovani sadržaj mora se dati i tabela kodova za simbole.
HUFFMANOVI KODOVI
jednako je verovatna pojava teksta “bacade”i “abcdea”
 pokušava da iskoristi informacije sadržane u samom tekstu o verovatnoći
pojavljivanja nizova simbola.
 na taj način postigne još bolju kompresiju.
LZW = Lempel-Ziv-Welch
kompresija
•predstavnik familije algoritama zasnovanih na rečniku
•pre kompresije i dekompresije mora biti poznat alfabet
–alfabet: {a,e,g,m,x}
–tekst za kompresiju:
–početni sadržaj rečnika čine simboli alfabeta:
LZW kompresija
Polazimo od početka teksta.
Posmatramo tekući simbol:
m u rečniku? –postoji, sa indeksom 4
Na tekući simbol dodamo naredni – me
•postoji li sekvenca me u rečniku?
-Postoji li
–ne postoji
»dodajemo je na kraj rečnika
»na izlaz pišemo onaj kod koji smo poslednje
pronašli,
a to je indeks 4 za simbol m
» naredni simbol (e) postaje tekući
Ulaz:
Izlaz:
LZW kompresija
Posmatramo tekući simbol:
–postoji li e u rečniku? –postoji, sa indeksom 2
–na tekući simbol dodamo naredni – eg
postoji li sekvenca eg u rečniku?
–ne postoji
»dodajemo je na kraj rečnika
»na izlaz pišemo onaj kod koji smo poslednje pronašli,
a to je indeks 2 za simbol e
»naredni simbol g postaje tekući
Ulaz:
Izlaz:
LZW kompresija
Posmatramo tekući simbol:
–postoji li g u rečniku? –postoji, sa indeksom 3
–na tekući simbol dodamo naredni –ga
•postoji li sekvenca ga u rečniku?
–ne postoji
»dodajemo je na kraj rečnika
»na izlaz pišemo onaj kod koji smo
poslednje pronašli,
a to je indeks 3 za simbol g
 »naredni simbol (a) postaje tekući
Ulaz:
Izlaz:
LZW kompresija
Posmatramo tekući simbol:
–postoji li a u rečniku? –postoji, sa indeksom 1
–na tekući simbol dodamo naredni –ax
•postoji li sekvenca ax u rečniku?
–ne postoji
»dodajemo je na kraj rečnika
»na izlaz pišemo onaj kod koji smo
poslednji pronašli,
a to je indeks 1 za simbol a
»naredni simbol (x) postaje tekući
Ulaz:
Izlaz:
LZW kompresija
Posmatramo tekući simbol:
–postoji li x u rečniku? –postoji, sa indeksom 5
–na tekući simbol dodamo naredni –xm
•postoji li sekvenca xm u rečniku?
–ne postoji
»dodajemo je na kraj rečnika
»na izlaz pišemo onaj kod koji smo
poslednje
pronašli, a to je indeks 5 za simbol x
»naredni simbol (m) postaje tekući
Ulaz:
Izlaz:
LZW kompresija
Posmatramo tekući simbol:
–postoji li m u rečniku? –postoji, sa indeksom 4
–na tekući simbol dodamo naredni –me
•postoji li sekvenca meu rečniku? –postoji, sa indeksom 6
–na tekuću sekvencu dodamo naredni simbol –meg
•postoji li sekvenca meg u rečniku?
–ne postoji
»dodajemo je na kraj rečnika
»na izlaz pišemo onaj kod koji smo poslednje
pronašli, a to je indeks 6 za sekvencu me
»naredni simbol (g) postaje tekući.
Ulaz:
Izlaz:
LZW kompresija
Posle izvesnog vremena:
Ulaz:
Izlaz:
LZW
Polazimo od početka koda:
Posmatramo tekući broj: 4
–indeks 4 odgovara simbolu m
•pišemo ga na izlaz
–posmatramo naredni broj –2
•spojimo simbole koji odgovaraju tekućem i narednom
broju
–me
•ako sekvenca mene postoji u rečniku, dodamo je
–naredni broj postaje tekući
Ulaz:
Izlaz:
LZW dekompresija
Posmatrajmo tekući broj 2:
–indeks 2 odgovara simbolu e
•pišemo ga na izlaz
–posmatramo naredni broj –3
•spojimo simbole koji odgovaraju tekućem i
narednom broju –eg
•ako sekvenca eg ne postoji u rečniku, dodamo je
–naredni broj postaje tekući
Ulaz:
Izlaz:
e
LZW dekompresija
Posle izvesnog vremena:
Izlaz:
Ulaz:
LZW kompresija
sadržaj rečnika odslikava stvarni sadržaj teksta
–nalaze se samo oni parovi, trojke, četvorke, itd koji se
zaista javljaju u tekstu
za kodiranje broja u opsegu 1-18 (koliko ima
stavki u rečniku) potrebno je 5 bita
•24 = 16
•25 = 32
LZW primene
JPEG
Joint Photographic Experts Group
Format definiše četiri tipa kompresije
Sekvencijalna
(Sequential)
kompresija
Progresivna
(progressive)
kompresija
•ono što se
najčešće
podrazumeva
pod “JPEG
kompresijom”
•kompresija sa
gubicima
•slično kao sequential
•format prilagođen
učitavanju velikih
slika: slika se
pojavljuje u više
prolaza
Bez gubitka
(lossless)
kompresija
•jedna
varijanta
kompresije
bez
gubitaka,
retko se koristi
Hijerarhijska
(hierarchical)
kompresija
•slika se kodira u
više rezolucija, tako
da korisnik može
da gleda slike u
niskoj rezoluciji
bez dekompresije
visokorezolucijskih
slika.
je proces promene
podataka koji obavlja softver ili
hardver.
JPEG
Konverzija kolornih modela: RGB →YUV
RGB model
•sve tri komponente(red,green,blue) jednako utiču na vizuelne
karakteristike slike
YUV model
•ljudsko oko mnogo bolje razlikuje varijacije u osvetljenosti
(Y komponenta-osvijetljenost) nego u boji (U i V komponente-informacije o bojama)
•U i V komponente se mogu kompresovati sa većim stepenom
gubitaka bez vidljivih efekata
JPEG
Sekvencijalna kompresija:
Dekompozicija na
blokove od 8x8
piksela
JPEG
Diskretna Kosinusna Transformacija –DCT
Blok od 8×8 piksela posmatramo kao diskretnu funkciju dve
promenljive datu u 64 tačke .
DCT predstavlja transformaciju kojom se funkcija data u
prostornom domenu reprezentuje sumom funkcija u frekventnom
domenu.
F(i,j)
F(u,v)
JPEG
Diskretna Kosinusna Transformacija –DCT
–rezultat transformacije je suma osnovnih funkcija u frekventnom
domenu
–izgled 64 osnovne funkcije preslikanih u prostorni domen
JPEG
Diskretna Kosinusna Transformacija –DCT
–rezultat transformacije bloka 8×8 piksela je matrica 8×8 sa
vrednostima pridruženim pojedinim osnovnim funkcijama u
frekventnom domenu
–karakteristike dobijene matrice
•u gornjem levom uglu definisana je dominantna boja celog bloka
(konstantna komponenta)
•udaljavanjem od gornjeg levog ugla definisane su komponente sa
višim frekvencijama.
Polazna matrica
DCT matrica
•za sada nikakva ušteda –naprotiv
•više memorije treba za smeštanje rezultata nego originala.
JPEG
Kvantizacija
–ljudsko oko je osetljivije na promene u nižim frekvencijama nego u
višim
–podelićemo svaki element dobijene DCT matrice različitim
koeficijentom
–koeficijente kvantizacije smeštamo u Q matricu.
–cilj kvantizacije je da anulira (ili približi nuli) što više koeficijenata
pridruženih visokim frekvencijama
–što više elemenata anuliramo to je veća kompresija
–koeficijente kvantizacije biramo empirijski
•po pravilu rastu sa udaljavanjem od gornjeg levog ugla
–primer (preporuka JPEG komiteta)
Q matrica:
JPEG
Kvantizacija
JPEG
Huffmanovo kodiranje
–način formiranja niza koji će se kompresovati je
karakterističan –“cik cak”
•time se formira niz u kome će većina nula biti jedna do druge
OCR=Optical
character recognition
Obrada slike
uklanjanje “salt and pepper” šuma
jednostavno rešenje
•maska 3×3 se primeni na svaki piksel
•ako je boja centralnog piksela različita od boje svih susednih
piksela,centralnom pikselu se promeni boja
parametar: veličina šuma koji će biti uklonjen
maska veličine k
•iterativni algoritam
–postavljanje crnih
piksela
–postavljanje belih
piksela
Ako važi: (c=1) and [(n>3k-4) or (n=3k-4) and r=2]
svi pikseli jezgra se postavljaju na crnu boju.
•kraj rada je kada nema promene boje nijednog piksela u oba prolaza
Rotacija slike
detekcija naginjanja
(skew detection)
•uočimo podnožje svakog znaka
•podnožja povežemo linijama
•rotiramo za izračunati nagib
Algoritam skeniranja
Omogućava
pregled
dokumenta
da bismo
dalje mogli
odrediti
parametre
podešavanja
kako bismo
dobili željeni
rezultat.
Pozivanje programa za
skeniranje komandom
File-Import
Postavljanje dokumenta
koji želimo skenirami
Komanda PRESCAN
Scan Mode,
Original,
Pos/Neg,
Frame Set,
Scan Tupe,
Filter,
Descreening,
Intesity, ...
Izbor površine skeniranja
Podešavanje parametara
skeniranja
Proces skeniranje
NE
Rezultat
zadovolj
avajući?
DA
Čuvanje rezultata skeniranja
Izdvajanje znakova
–projekcija na x osu
–prebrojavanje crnih piksela u
svakoj koloni
Prepoznavanje
znakova
Korekcija prepoznatog teksta pomoću rečnika
podrazumeva pretvaranje
podataka u oblik koji zauzima sto manje memorije.