Hollosi Information eXchange /HIX/
HIX CODER 1511
Copyright (C) HIX
2002-05-05
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 TCppWebBrowser (mind)  8 sor     (cikkei)
2 Re: shannon-fano (mind)  14 sor     (cikkei)
3 Shannon-Fano & Huffman (mind)  105 sor     (cikkei)

+ - TCppWebBrowser (mind) VÁLASZ  Feladó: (cikkei)

Hali!

TCppWebBrowser komponest hasznalom bcb5 alatt,
minden ok. De nem mukodnek a copy-paste-cut muveletek...
Nem tudom mi lehet vele... tipp ? esetleg megoldas?

udv
 sm
+ - Re: shannon-fano (mind) VÁLASZ  Feladó: (cikkei)

> 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
+ - Shannon-Fano & Huffman (mind) VÁLASZ  Feladó: (cikkei)

> 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

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS