Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehVerawati Sumadi Telah diubah "6 tahun yang lalu
1
PENGKODEAN DAN KOMPRESI DATA (CEH4A3)
2
Huffman Coding
3
Huffman Coding Dikembangkan oleh David Huffman ketika kuliah
Dikembangkan sebagai bagian dari tugas kuliahnya (class- assignment) Ciri utama: Karakter yang sering muncul akan mendapat representasi bit pendek Karakter yang jarang muncul akan mendapat representasi bit panjang Untuk sebuah pesan tertentu, dapat dihasilkan beberapa kode Huffman yang berbeda, tergantung aturan yang digunakan pada algoritmanya. Aturan tersebut bersifat optional namun harus konsisten.
4
Algoritma Dasar Huffman Coding
Urutkan symbol berdasarkan probabilitasnya Jika probabilitas sama, urutkan symbol/karakter berdasarkan indeks symbol. Ambil dua symbol dengan probabilitas terkecil, gabungkan menjadi symbol baru, dan jumlahkan probabilitasnya Urutkan kembali symbol-symbol seperti langkah 1 dengan menyertakan symbol baru yang diperoleh di langkah 2 Simbol baru ditempatkan di bawah simbol lama jika probabilitasnya sama Ulangi langkah 2 dan 3 berulang-ulang hingga diperoleh jumlah probabilitas = 1 Tentukan codewords setiap symbol dengan penelusuran bit
5
Representasi Huffman Coding
Dapat menggunakan skema panah, atau pohon biner Probabilitas dapat diurut naik (ascending) atau pun menurun (descending), yang penting konsisten pada saat melakukan coding Indeks huruf juga dapat diurut menaik atau menurun, yang penting konsisten pada saat melakukan coding Constraint pada Kode Huffman adalah panjang codeword (banyaknya bit/codeword), bukan nilai bit nya Sangat mungkin diperoleh representasi kode Huffman yang berbeda jika kesepakatan pada algoritma diubah (asal konsisten)
6
Contoh Rancanglah sebuah kode Huffman untuk
A = {a1, a2, a3, a4, a5}, dengan P(a1) = P(a3) = 0.2, P(a2) = 0.4, P(a4) = P(a5) = 0.1. Entropi? Average Length? Redundancy? Efisiensi? Rasio kompresi?
7
Jawaban Kode Huffman yang diperoleh = {111, 0, 10, 1100, 1101}
Entropi = 2,122 bits/simbol Average Length = 2.2 bits/simbol Redundancy = 2.2 β bit/simbol = bits/simbol Efisiensi = (Entropi/Average Length)x100% = 96.45% Rasio Kompresi = πππ‘ πππ‘π π‘πππππ’ππ π πππ‘ πππ‘π π πππππ’π πππππππ π π₯100% Data tereduksi = data sebelum kompresi β data hasil kompresi Misal jumlah simbol yang muncul adalah 10 simbol: Jumlah bit data hasil kompresi = 22 bits; Jumlah bit data sebelum kompresi = 80 bits; Rasio kompresi = 72.5%
8
Minimum Variance Huffman Coding
Kode Huffman dengan variansi panjang codewords minimum Average length pada kode Huffman versi minimum variance = average length kode Huffman biasa Kelebihannya adalah variansi panjang codeword minimum sehingga lebih optimal di dalam proses transmisi data
9
Algoritma Minimum Variance Huffman Coding
Urutkan symbol berdasarkan probabilitasnya Jika probabilitas sama, urutkan symbol/karakter berdasarkan indeks symbol. Ambil dua symbol dengan probabilitas terkecil, gabungkan menjadi symbol baru, dan jumlahkan probabilitasnya Urutkan kembali symbol-symbol seperti langkah 1 dengan menyertakan symbol baru yang diperoleh di langkah 2 Simbol baru ditempatkan di atas simbol lama jika probabilitasnya sama Ulangi langkah 2 dan 3 berulang-ulang hingga diperoleh jumlah probabilitas = 1 Tentukan codewords setiap symbol dengan penelusuran bit
10
Contoh Rancanglah sebuah kode Huffman untuk
A = {a1, a2, a3, a4, a5}, dengan P(a1) = P(a3) = 0.2, P(a2) = 0.4, P(a4) = P(a5) = 0.1. Entropi? Average Length? Redundancy?
11
Jawaban Kode Huffman yang diperoleh = {00, 11, 01, 100, 101}
Entropi = 2,122 bits/simbol Average Length = 2.2 bits/simbol Redundancy = 2.2 β bit/simbol = bits/simbol
12
Extended Huffman Code Jika probabilitas kemunculan antara simbol yang berbeda sangat timpang, nilai probabilitas maksimum (pmax) bisa sangat besar dan kode huffman yang dihasilkan menjadi tidak efisien Alternatif solusi: menggunakan Extended Huffman Coding Sebuah codeword tidak merepresentasikan satu simbol, melainkan sekumpulan simbol (lebih dari 1) atau block of symbols Bertujuan untuk mendapatkan nilai average length yang mendekati entropi
13
Contoh Diketahui A = {a1, a2, a3}, dengan P(a1) = 0.8, P(a2) = 0.02, P(a3) = 0.18. Entropi source = bits/symbol Huffman code yang dihasilkan: Average length = 1.2 bits/symbol Redundancy = bits/symbol (47% dari entropi) Simbol Kode Huffman a1 1 a2 00 a3 01
14
Jawaban Average Length = 0.8614 bits/symbol
Simbol Probabilitas Kode Huffman a1a1 0.64 1 a1a2 0.016 010111 a1a3 0.144 011 a2a1 01010 a2a2 0.0004 a2a3 0.0036 a3a1 00 a3a2 a3a3 0.0324 0100 A = {a1, a2, a3}, dengan P(a1) = 0.8, P(a2) = 0.02, P(a3) = 0.18. Dapat dibuat codeword yang merepresentasikan rangkaian 2 simbol Karena banyaknya simbol pada source = 3, maka akan diperoleh 32 = 9 simbol baru yang akan dicari codewordsnya Average Length = bits/symbol Redundancy = bits/symbol (5.5% dari entropi)
15
LATIHAN Diketahui A = {a1, a2, a3, a4, a5}, dengan P(a1) = 0.15, P(a2) = 0.04, P(a3) = 0.26, P(a4) = 0.05, dan P(a5) = 0.5 Cari Kode Huffman Hitung entropi source, average length dan redundancy-nya Diketahui A = {a1, a2, a3, a4}, dengan P(a1) = 0.1, P(a2) = 0.3, P(a3) = 0.25, P(a4) = 0.35. Cari Minimum Variance Huffman Coding nya Terdapat string βrumah makan murah meriahβ (10 huruf termasuk spasi, asumsi indeks spasi lebih dulu dari huruf βaβ) Cari kode Huffman nya Hitung average length dan redundancy nya
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.