Anda di halaman 1dari 14

Teknik Pengkodean Shanon-Fano

Shannon Fano Coding


Tiap kode berbeda informasi bitnya.
Kode simbol yang probabilitasnya rendah mempunyai jumlah
bit yang lebih banyak, dan yang probabilitasnya tinggi
mempunyai jumlah bit yang lebih sedikit.
Proses decoding tetap dapat dilakukan walaupun panjang
kode tiap simbol berbeda.
Proses kompresi terjadi karena simbol yang sering keluar
dikodekan dengan jumlah bit yang sedikit.
0
0

1
1

0
C

Shannon-Fano Coding
Suboptimal code
Shannon code
Shannon-Fano code
Optimal code
Huffman code
Arithmetic coding
Efisiensi macam-macam code diukur dengan:

H (S )
effisiensi
.100%
Lavg

Shannon Coding
S = {x1, , xn}
P = {p1, .., pn}
pi = p(xi) dari semua simbol sumber xi diurut dari yang paling
besar: p1 p2 pn
Cumulative prob didefinisikan: Pi = p1 + + pi-1
Codeword utk simbol xi didp dg mengambil li = |-lg pi | digit
pertama dari ekspansi biner Pi
Pi = 0.b1b2b3b4 = b1/21 + b2/22 + b3/23 +

Algoritma Shannon
Fano

Buat daftar probabilitas kemunculan setiap simbol.


Urutkan daftar dari yang paling sering keluar.
Bagi daftar menjadi 2, dengan ketentuan jumlah probabilitas
setengah bagian atas mendekati setengah bagian bawah.
Setengah bagian atas diberi nilai 0 setengah bagian bawah
diberi nilai 1.
Lakukan secara rekursif langkah terakhir pada setengah
bagian atas dan setengah bagian bawah.

Shannon Coding
Contoh:
S = {A, B, C, D, E}
P = {0.35, 0.17, 0.17, 0.16, 0.15}

Contoh: Shannon Fano Coding (1)


Diberikan simbol:
AAAAAAAAAAAAAAABBBBBBCCCCCDDDDDDEEEEEEE
Jika ditabelkan menjadi:
A 15
E7
B6
D6
C5

0
0
1
1
1

Pembagian pertama
Karena menghasilkan selisih
Atas dan Bawah terkecil
(=5)

Selanjutnya semua bagian atas diberi lambang 0 dan semua bagian bawah diberi
lambang 1

Contoh: Shannon Fano Coding (2)


A 15

E7
B6
D6
C5

0 0
0 1
1
1
1

Pembagian kedua
Untuk membagi setengah
bagian atas

Selanjutnya untuk setengah bagian atas: bagian atas pembagian lambang 0 dan
bagian bawah pembagian diberi lambang 1

Contoh: Shannon Fano Coding (3)


A 15

E7
B6
D6
C5

0
0
1
1
1

0
1
0
1
1

Pembagian ketiga
Karena menghasilkan selisih
Atas dan Bawah terkecil
(=5)

Selanjutnya semua bagian atas diberi lambang 0 dan semua bagian bawah diberi
lambang 1

Contoh: Shannon Fano Coding (4)


A 15

E8
B5
D3
C2

0
0
1
1
1

0
1
0
1
1

Sehingga dapat dikodekan:

Pembagian keempat
Merupakan pembagian terakhir

0
1
A = 00

B
C
D
E

=
=
=
=

01
10
110
111

Shannon-Fano Coding
Contoh
S = {A, B, C, D, E}
P = {0.35, 0.17, 0.17, 0.16, 0.15}
Pengkodean Shannon-Fano:
Bagi S kedalam s1 dan s2 (pilih yang memberikan
perbedaan p(s1) dan p(s2) terkecil
s1 = (A,B) p(s1) = p(A) + p(B) = 0,52
s2 = (C,D,E) p(s2) = p(C) + p(D) + p(E) = 0,48
Panggil ShannonFano()

Shannon-Fano Coding

Panjang code rata-rata:


Lsh = 0,35*2 + 0,17*2 + 0,17*2 + 0,16*3+0,15*3 = 2,31
Efisiensi = (2,23284/2,31)*100 = 96,66 %

Anda mungkin juga menyukai