| 
> 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
 |