Iz vsebine

21
http://vision.fe.uni-lj.si Komunikacije v avtomatiki Zgoščevanje podatkov Stanislav Kovačič Univerza v Ljubljani Fakulteta za elektrotehniko 2007/08

description

Iz vsebine. Osnovno o zgoščevanju podatkov Entropijsko kodiranje, Huffmanov kod Kodiranje nizov, algoritem LZW. Zgoščevanje podatkov – osnovni cilj. Čimkrajše zapisati dano informacijsko vsebino zmanjšamo potrebni pomnilniški prostor povečamo informacijski pretok Osnovna pristopa: - PowerPoint PPT Presentation

Transcript of Iz vsebine

Page 1: Iz vsebine

http://vision.fe.uni-lj.si

Komunikacije v avtomatikiZgoščevanje podatkov

Stanislav Kovačič

Univerza v Ljubljani

Fakulteta za elektrotehniko

2007/08

Page 2: Iz vsebine

Iz vsebineIz vsebine

• Osnovno o zgoščevanju podatkov

• Entropijsko kodiranje, Huffmanov kod

• Kodiranje nizov, algoritem LZW

Page 3: Iz vsebine

Zgoščevanje podatkov – osnovni ciljZgoščevanje podatkov – osnovni cilj

• Čimkrajše zapisati dano informacijsko vsebino

• zmanjšamo potrebni pomnilniški prostor

• povečamo informacijski pretok

• Osnovna pristopa:

• brezizgubno kodiranje:

• vsa informacijska vsebina ostane popolnoma neokrnjena

• izgubno kodiranje:

• nekaj informacije se izgubi, bistvena pa ostane

Page 4: Iz vsebine

Količina informacije Količina informacije

• Kolikšna je informacijska vsebina sporočila ?

• Na primer sporočila: a b a b a b a a c a a c a b d d ?

• Množica simbolov

},....,,....,,,{ i321 NsssssS • Verjetnosti simbolov (pogostost pojavljanja):

},....,,....,,,{ i321 NpppppP • Entropija – merilo nedoločenosti in količine informacije

i1

i log)( ppSHN

i

Page 5: Iz vsebine

Primer 1/3Primer 1/3

• Za prejšnji primer, vseh simbolov v nizu: 16

• a – 8, pa = 8/16 = 0.5 (to je seveda ocena verjetnosti)

• b – 4, pb = 4/16 = 0.25

• c – 2, pc = 2/16 = 0.125

• d – 2, pd = 2/16 = 0.125

• Entropija:

• H = - (0.5 x log 0.5 + 0.25 x log 0.25 + 0.125 x log 0.125 + 0.125 x log 0.125)

• H = 1.75 bitov/simbol

• Razlaga:

Če želimo z binarnimi simboli (biti) zakodirati osnovne simbole a, b, c d,

rabimo v povprečju vsaj 1.75 binarnih simbolov (bitov) na osnovni simbol.

Z manj biti se tega ne da narediti.

Page 6: Iz vsebine

Primer 2/3Primer 2/3

• Vprašanje: kako ?

• a wa = 00

• b wb = 01

• c wc = 10

• d wd = 11

• (Povprečno) število bitov na simbol,

• To je več, kot bi bilo nujno potrebno

• Nekaj binarnih simbolov je torej odveč

• To imenujemo odvečnost ali redundanca:

2 n

125.02

75.11

n

H(S)-1 R

Page 7: Iz vsebine

Primer 3/3Primer 3/3

• Druga možnost – različno število bitov na simbol:

• a wa = 0

• b wb = 10

• c wc = 110

• d wd = 111

• (Povprečno) število bitov na simbol:

• Redundanca:

1.75 0.125 x 3 0.125 x 3 0.25 x 2 0.5 x 1 n

075.1

75.11

n

H(S)-1 R

• Boljše se s kodiranjem posameznih osnovnih simbolov ne da zakodirati

Page 8: Iz vsebine

Kodiranje - splošnoKodiranje - splošno

• Imamo:

},....,,....,,,{ i321 NsssssS

},....,,....,,,{ i321 NpppppP

• Iščemo kod - kodne besede:

},....,,....,,,{ i321 NwwwwwW

• Kod je pravilo za prirejanje kodnih besed osnovnim simbolom:

ii ws

• Želimo, da bi bila redundanca čim manjša:

Povprečna dolžina kodnih besed čim manjša

Page 9: Iz vsebine

Kodiranje - splošnoKodiranje - splošno

• Velja (!):

• Ampak tudi

n H(S)

1H(S)n H(S)

i1

i logH(S) ppN

i

• Pri tem je:

||n,nn iii1

i wpN

i

Page 10: Iz vsebine

Huffmanov kodHuffmanov kod

• Bolj pogostim (verjetnim) simbolom priredimo krajše kodne besede

jiji nn pp

• Simbol z najmanjšo verjetnostjo ima najdaljšo kodno besedo

• Simbola z najmanjšima verjetnostima imata enako dolgi kodni besedi

• Pomembno:

• Zakodirano sporočilo se da ‘sproti’ odkodirati

Page 11: Iz vsebine

Huffmanov kod - postopekHuffmanov kod - postopek

• Simbole uredimo po padajočih verjatnostih

• Združimo simbola z najmanjšo verjetnostjo v nov simbol z

verjetnostjo, ki je enaka vsoti verjetnosti posameznih simbolov

• Ponavljamo zgornja koraka, dokler se da – imamo samo dva simbola

• Dobljena simbola zakodiramo, priredimo enemu 0 in drugemu 1

• Razdružimo združeni simbol

• Pripišemo prejšnjemu binarnemu simbolu enkrat 0 in drugič 1

• Ponavljamo zgornja dva koraka, dokler se da.

Page 12: Iz vsebine

Huffmanov kod - primerHuffmanov kod - primer

Page 13: Iz vsebine

Huffmanov kod - primerHuffmanov kod - primer

Page 14: Iz vsebine

Huffmanov kod – primer 1Huffmanov kod – primer 1

Page 15: Iz vsebine

Huffmanov kod – primer 2Huffmanov kod – primer 2

Page 16: Iz vsebine

Huffmanov kod – primer 3Huffmanov kod – primer 3

H(S) = H(0.9, 0.1) = 0.469

2 n

Page 17: Iz vsebine

Huffmanov kod – primer 3Huffmanov kod – primer 3

H(S2) = H(0.81, 0.09, 0.09, 0.01) = 0.938

H (S2) = 2 H(S)

Page 18: Iz vsebine

Huffmanov kod – primer 3Huffmanov kod – primer 3

H(S2) = H(0.81, 0.09, 0.09, 0.01) = 0.938

H (S2) = 2 H(S)

Page 19: Iz vsebine

Huffmanov kod – primer 3Huffmanov kod – primer 3

H(S2) = H(0.81, 0.09, 0.09, 0.01) = 0.938

H (S2) = 2 H(S)

Na en simbol torej 1.29/2 = 0.645

Na ta način se spodnji meji lahko poljubno pribljižamo

Page 20: Iz vsebine

LZW (Lempel, Ziv, Welch)LZW (Lempel, Ziv, Welch)

Daljše in različno dolge nize vhodnih simbolov nadomestimo s krajšimi in enako dolgimi nizi izhodnih simbolov.

Algoritem se sproti prilagaja statističnim zakonitostim vhodnega niza

Sprva kodni slovar sestavljajo osnovni simboli, s kodiranjem se slovar dopolnjuje tako, da se vhodnim nizom prireja nove simbole.

Kodni slovar, ki je potreben za dekodiranje, se da pridobiti iz sprejetega zakodiranega niza.

Za dekodiranje kodnega slovarja torej ni potrebno poznati (prenašati).

Page 21: Iz vsebine

LZW (Lempel, Ziv, Welch)LZW (Lempel, Ziv, Welch)