Professional Documents
Culture Documents
Shannon-Fano Coding
Shannon-Fano Coding
Contoh
Contoh
AB CDE
1 C DE 1 B C 0 D 1 E 0 1 DE
0 AB
0 A
Shannon-Fano Coding
Shannon-Fano Algorithm
Dikembangkan oleh Shannon (Bell Labs) dan Robert Fano (MIT).
Algoritma :
1. Urutkan simbol berdasarkan frekuensi kemunculannya 2. Bagi simbol menjadi 2 bagian secara rekursif, dengan jumlah yang kira-kira sama
pada kedua bagian, sampai tiap bagian hanya terdiri dari 1 simbol. binary tree.
. The Shannon-Fano method produces better code when the splits are better,
i.e. , when the two subsets in every split have very close total probabilities.
Latihan
Rancang code word untuk 7 simbol (S0, S1, S2, S3,
S4,S5,S6) dengan probabiliti sbb: S0=0,25; S1=0,20; S2=0,15; S3=0,15; S4=0.10, S5=0.10,S6=0,05.
Hitung Panjang kode rata-rata dan Entropi dari pengkodean
Latihan
H(S) = - i pi log 2 pi
-(0.25log20.25 + 0.20 log2 0.20 + 0.15 log2 0.15 + 0.15 log2 0.15 + 0.10 log2 0.10 + 0.10 log2 0.10 + 0.05 log2 0.05) 2,67 bits/symbol.
Huffman Coding
Optimal code pertama dikembangkan oleh David Huffman Utk sumber S = {x1, , xn}; Probabilitas P = {p1, .., pn};
Codewords {c1, .., cn}; dan Panjang {l1, .., ln}. Terdapat optimal binary prefix code dengan karakteristik: Teorema: (a) Jika pj > pi, maka lj li (b) Dua codeword dari dua simbol dg probabilitas terendah mempunyai panjang yg sama (c) Dua codeword terpanjang identik kecuali pada digit terakhir
Pengkodean Huffman
Pengkodean Huffman bertujuan untuk mengkodekan
setiap simbol dengan panjang kode berbeda, simbol yg paling sering muncul akan memiliki kode lebih pendek
2. Dua simbol terbawah tadi dijumlahkan dan menjadi kode sumber 3. Proses tersebut diurutkan sehingga urutannya hanya tinggal 2
baru dan probabilitasnya dijumlahkan. Diurutkan menjadi stage 2 baris dengan assign 0 dan 1. terjadi, dilihat dari belakang
Huffman Coding
Huffman Coding
Contoh: xi pi ---------------------------A B C D E 0,35 0,17 0,17 0,16 0,15
Huffman Coding
Dari Huffman tree dapat dibuat tabel codeword:
A 1 B 011 C 010 D 001 E 000 LHuff = 0,35*1 + 0,17*3 + 0,17*3 + 0,16*3 + 0,15*3 = 2,3 H(S) = 2,23284 Efisiensi = (2,23284/2,3) x 100 % = 97,08%
Huffman Coding
Tergantung pada bagaimana memilih probabilitas terendah saat membangun Huffman tree
Latihan
Rancang code word untuk 5 simbol (S0, S1, S2, S3, S4)
Latihan
Rancang kode word untuk 5 simbol (S0, S1, S2, S3, S4) dengan probabiliti sbb:
simbol-simbol tersebut
Simbol
Jawaban:
S0 S1 S2 S3 S4
Huffman Coding
Proses coding: mentransmisikan codeword sesuai dg simbol-simbol yg akan
Huffman Coding
Bagaimana encoder memberi tahu decoder utk menggunakan code yang mana: Baik encoder dan decoder sudah sepakat sebelumnya utk menggunakan Huffman tree tertentu sebelum terjadi pengiriman message Encoder membangun Huffman tree yang baru (fresh) setiap message baru akan dikirimkan, dan mengirimkan tabel konversi bersama-sama dg message Keuntungannya terasa jika digunakan utk message yang besar
Huffman Coding
Apakah masih ada ruang perbaikan utk Huffman Coding?
Semua kemungkinan Huffman tree akan
Contoh:
Huffman Coding
Menggunakan pasangan simbol
Jika message besar dan simbol sedikit penambahan ukuran tabel tidak signifikan Namun utk jumlah simbol yang banyak ukuran tabel akan sangat besar
26 huruf Inggris 676 pasangan 96 karakter (dari 126 kode ASCII) 9216 pasangan Tidak semua pasangan mungkin muncul (mis. XQ, ZK) pasangan dp dieliminir
group yg paling sering muncul, (III) Single character + 512 group yg paling sering muncul (Rubin, 1976) Compression Rate English Text PL/I Program Photograpic Image 40% I II III 55% 73% 52% 7 1% 62%