> Felado : [Hungary]
> Temakor: shannon-fano/environment ( 10 sor )
> Idopont: Wed May 1 21:23:35 CEST 2002 CODER #1509
> 1, mi a kulonbseg a Shannon-Fano fele kodolasi eljaras, es
> a huffman fele kodolas kozott?
Hali,
remelem, nem fogok melle, mert emlekezetbol valaszolok, most nincs
idom megkeresni az idevagot.
Alapveto kulonbseg nincsen, az eljaras ugyanaz, csak a Huffman egy
"mindenre jo" tablat hasznal, a Shannon-Fano pedig az adatokbol
allitja elo a tablajat. Emiatt a Shannon-Fano lassabb, de tomorebb.
Rx
|
> 1, mi a kulonbseg a Shannon-Fano fele kodolasi eljaras, es
> a huffman fele kodolas kozott?
Mind a ketto eloszor sorbarakja a szimbolumokat gyakorisag szerint.
Legyen ez a tablank:
SYM p(%)
A 40
B 20
C 10
D 10
E 10
F 5
G 5
Ezek utan:
Shannon-Fano:
A rendezett listaban megkeressuk a valoszinusegi medianst, ami
alapjan a szimbolumokat ket csoportra osztjuk.
Az elso csoport kodszavainak elso bitje 0 -lesz, a masodike
'1'. Az eljarast rekurzivan ismeteljuk, amig a csoportok el nem
fogynak:
Az 50% A es B kozott van, az elso csoport az A, a masodik a B-G.
Az A kodja ezek alapjan '0', a maradek majd '1'-el kezd.
A maradek mediansa (30%) a C/D -nel vagja el a tablat. A B-C es a
D-E alkotja a ket csoportot. A B-C nyilvan B-re es C-re esik szet.
A D-G eloszor D/E -nel valik el, majd az E-G E/F -nel es vegul
az F-G is szetesik. Ennek megfeleloen a kod:
Tehat a folyamat:
ABCDEFG
A BCDEFG
A BC DEFG
A B C DEFG
A B C D EFG
A B C D E FG
A B C D E F G
A 0
B 100
C 101
D 110
E 1110
F 11110
G 11111
amint latszik, ez a kodszavakat az elejukrol epiti fel.
Huffman:
A tabla ket utolso elemet a kodszo utolso bitje fogja
megkulonboztetni. Ezt feljegyezzuk. A ket utolso elemet kivesszuk
a tablabol, osszevonjuk oket es beszurjuk a tablaba. Ezt
ismetelgetjuk, amig a tabla el nem fogy.
Tehat:
40 20 10 10 10 5 5
A B C D E F G F=?0 G=?1
40 20 10 10 10 10
A B C D E FG E=?0 FG=?1 -> F=?10 G=?11
40 20 20 10 10
A B EFG C D C=?0 D=?1
40 20 20 20
A B EFG CD EFG=?0 CD=?1
40 40 20
A EFGCD B EFGCD=?0 B=?1
60 40
EFGCDB A EFGCDB=?0 A=?1
es nincs tovabb (az osszevonas utan mar csak egy elem van).
A kodszavak a veguk felol epultek fel, es a vegso kod:
A 1
B 01
C 0010
D 0011
E 0000
F 00010
G 00011
Namost, ha a ket kodolas kodhosszait megszorozzuk az elofordulasi
valoszinusegekkel, akkor
SF = 40*1 + 20*3 + 10*3 + 10*3 + 10*4 + 5*5 + 5*5 = 250
H = 40*1 + 20*2 + 10*4 + 10*4 + 10*4 + 5*5 + 5*5 = 250
azaz mindket eljaras atlagosan 2.5 biten kodol egy szimbolumot.
Tisztesseges elemzessel megmutathato (de en mar reg nem tudnam
megmutatni :-), hogy a Huffman statisztikailag jobb, mint a
Shannon-Fano, de amugy eleg hasonloak. A gyakorlatban (pl. MPEG)
a Huffmant hasznaljak inkabb.
Zoltan
|