Iz vsebine
description
Transcript of Iz vsebine
http://vision.fe.uni-lj.si
Komunikacije v avtomatikiZgoščevanje podatkov
Stanislav Kovačič
Univerza v Ljubljani
Fakulteta za elektrotehniko
2007/08
Iz vsebineIz vsebine
• Osnovno o zgoščevanju podatkov
• Entropijsko kodiranje, Huffmanov kod
• Kodiranje nizov, algoritem LZW
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
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
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.
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
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
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
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
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
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.
Huffmanov kod - primerHuffmanov kod - primer
Huffmanov kod - primerHuffmanov kod - primer
Huffmanov kod – primer 1Huffmanov kod – primer 1
Huffmanov kod – primer 2Huffmanov kod – primer 2
Huffmanov kod – primer 3Huffmanov kod – primer 3
H(S) = H(0.9, 0.1) = 0.469
2 n
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)
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)
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
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).
LZW (Lempel, Ziv, Welch)LZW (Lempel, Ziv, Welch)