Teknik Pengkodean Shanon-Fano · PDF filekode tiap simbol berbeda. ... • Huffman code...

14
Teknik Pengkodean Shanon-Fano

Transcript of Teknik Pengkodean Shanon-Fano · PDF filekode tiap simbol berbeda. ... • Huffman code...

Page 1: Teknik Pengkodean Shanon-Fano · PDF filekode tiap simbol berbeda. ... • Huffman code • Arithmetic coding Efisiensi macam-macam code diukur dengan: .100% ( ) L avg H S effisiensi.

Teknik Pengkodean Shanon-Fano

Page 2: Teknik Pengkodean Shanon-Fano · PDF filekode tiap simbol berbeda. ... • Huffman code • Arithmetic coding Efisiensi macam-macam code diukur dengan: .100% ( ) L avg H S effisiensi.
Page 3: Teknik Pengkodean Shanon-Fano · PDF filekode tiap simbol berbeda. ... • Huffman code • Arithmetic coding Efisiensi macam-macam code diukur dengan: .100% ( ) L avg H S effisiensi.

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

0

0

1 1

1

1 A

E D

C B

Page 4: Teknik Pengkodean Shanon-Fano · PDF filekode tiap simbol berbeda. ... • Huffman code • Arithmetic coding Efisiensi macam-macam code diukur dengan: .100% ( ) L avg H S effisiensi.

Shannon-Fano Coding

Suboptimal code

• Shannon code

• Shannon-Fano code

Optimal code

• Huffman code

• Arithmetic coding

Efisiensi macam-macam code diukur dengan:

%100.)(

avgL

SHeffisiensi

Page 5: Teknik Pengkodean Shanon-Fano · PDF filekode tiap simbol berbeda. ... • Huffman code • Arithmetic coding Efisiensi macam-macam code diukur dengan: .100% ( ) L avg H S effisiensi.

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

Page 6: Teknik Pengkodean Shanon-Fano · PDF filekode tiap simbol berbeda. ... • Huffman code • Arithmetic coding Efisiensi macam-macam code diukur dengan: .100% ( ) L avg H S effisiensi.

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.

Page 7: Teknik Pengkodean Shanon-Fano · PDF filekode tiap simbol berbeda. ... • Huffman code • Arithmetic coding Efisiensi macam-macam code diukur dengan: .100% ( ) L avg H S effisiensi.
Page 8: Teknik Pengkodean Shanon-Fano · PDF filekode tiap simbol berbeda. ... • Huffman code • Arithmetic coding Efisiensi macam-macam code diukur dengan: .100% ( ) L avg H S effisiensi.

Shannon Coding

• Contoh:

S = {A, B, C, D, E}

P = {0.35, 0.17, 0.17, 0.16, 0.15}

Page 9: Teknik Pengkodean Shanon-Fano · PDF filekode tiap simbol berbeda. ... • Huffman code • Arithmetic coding Efisiensi macam-macam code diukur dengan: .100% ( ) L avg H S effisiensi.

Contoh: Shannon Fano Coding (1)

Diberikan simbol: AAAAAAAAAAAAAAABBBBBBCCCCCDDDDDDEEEEEEE Jika ditabelkan menjadi: A 15 0 E 7 0 B 6 1 D 6 1 C 5 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

Page 10: Teknik Pengkodean Shanon-Fano · PDF filekode tiap simbol berbeda. ... • Huffman code • Arithmetic coding Efisiensi macam-macam code diukur dengan: .100% ( ) L avg H S effisiensi.

Contoh: Shannon Fano Coding (2)

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

A 15 0 0 E 7 0 1 B 6 1 D 6 1 C 5 1

Pembagian kedua Untuk membagi setengah bagian atas

Page 11: Teknik Pengkodean Shanon-Fano · PDF filekode tiap simbol berbeda. ... • Huffman code • Arithmetic coding Efisiensi macam-macam code diukur dengan: .100% ( ) L avg H S effisiensi.

Contoh: Shannon Fano Coding (3)

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

A 15 0 0 E 7 0 1 B 6 1 0 D 6 1 1 C 5 1 1

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

Page 12: Teknik Pengkodean Shanon-Fano · PDF filekode tiap simbol berbeda. ... • Huffman code • Arithmetic coding Efisiensi macam-macam code diukur dengan: .100% ( ) L avg H S effisiensi.

Contoh: Shannon Fano Coding (4)

Sehingga dapat dikodekan: A = 00

B = 01

C = 10

D = 110

E = 111

A 15 0 0 E 8 0 1 B 5 1 0 D 3 1 1 0 C 2 1 1 1

Pembagian keempat Merupakan pembagian terakhir

Page 13: Teknik Pengkodean Shanon-Fano · PDF filekode tiap simbol berbeda. ... • Huffman code • Arithmetic coding Efisiensi macam-macam code diukur dengan: .100% ( ) L avg H S effisiensi.

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

Page 14: Teknik Pengkodean Shanon-Fano · PDF filekode tiap simbol berbeda. ... • Huffman code • Arithmetic coding Efisiensi macam-macam code diukur dengan: .100% ( ) L avg H S effisiensi.

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 %