01 Kompresi Dan RLE
-
Upload
windy-putra -
Category
Documents
-
view
216 -
download
0
Transcript of 01 Kompresi Dan RLE
2/23/2011
Kompresi Memampatkan / mengecilkan raw data Kompresi Multimedia: memampatan raw data multimedia Kompresi multimedia adalah mutlak mengingat ukuran raw data media yang sangat besar: sinyal suara, image maupun video
1
2/23/2011
Tujuan Kompresi Memperkecil ukuran file / data -> penyimpanan maupun transmisi
Kompresi Berdasarkan Output1. 2.
Kompresi Lossless (Non-Lossy) Hasil dekompres dari data terkompresi akan tepat sama persis dengan data sebelum dikompres Kompresi Lossy Hasil dekompres dari data terkompresi tidak tepat sama persis, tetapi persepsi terhadap semantik data tetap sama
2
2/23/2011
Kompresi Berdasarkan PenerimaanDialoque Mode: proses penerimaan data secara real time, mis: video conference. Kompresi data harus berada dalam batas penglihatan dan pendengaran manusia. 2. Retrieval Mode: proses penerimaan data tidak real time. Dapat dilakukan fast forward dan fast rewind di client. Dapat dilakukan random access terhadap data dan dapat bersifat interaktif1.
Kriteria Algoritma & Aplikasi Kompresi Kualitas data hasil enkoding: ukuran lebih kecil, data tidak rusak (untuk kompresi lossy) Ketepatan proses dekompresi data: data hasil dekompresi tetap sama dengan data sebelum dikompres (kompresi loseless) Kecepatan, ratio, dan efisiensi proses kompresi &
dekompresi
3
2/23/2011
Klasifikasi Teknik Kompresi Entropy Encoding Source Coding Hybrid Coding
Entropy Encoding Bersifat lossless Tekniknya tidak berdasarkan media dengan spesifikasi dan karakteristik tertentu namun berdasarkan urutan data. Statistical encoding, tidak memperhatikan semantik data. Misalnya: Run-length coding, Huffman coding,
Arithmetic coding
4
2/23/2011
Source Coding Bersifat lossy Berkaitan dengan data semantik (arti data) dan media. Misalnya: Prediction (DPCM, DM), Transformation (FFT, DCT), Layered Coding (Bit position, subsampling, sub-band coding), Vector quantization
Hybrid Coding Gabungan antara lossy + lossless Misalnya: JPEG, MPEG, H.261, DVI
5
2/23/2011
Informasi dan Entropy Set event: S = {x1, .., xn} S disebut alphabet jika xi sebuah simbol (huruf) digunakan
utk membangun pesan (message) Probabilitas kemunculan masing-masing event, p(xi) = pi n i1 pi 1 P = {p1, .., pn}, dimana pi 0, Untuk sumber memoryless: Nilai self-information yg berhub. dg event xi digunakan definisi
I(xi) = -logkpi Fungsi di atas adalah ukuran informasi (surprise atau
unexpectedness) dari kemunculan event xi
ENTROPI : Menurut Shannon, entropi dari sebuah informasi adalah minimum bit yang dibutuhkan untuk mengkodekan sebuah simbol
Dimana
pi
= probabilitas kemunculan simbol Si. = jumlah bit yang dibutuhkan untuk kode Si
For example, in an image with uniform distribution of gray-level intensity, i.e. pi = 1/256, then the number of bits needed to code each gray level is 8 bits. The entropy of this image is 8.
6
2/23/2011
Terminology Enkoder / Compresor : software (atau hardware)
yang mengkodekan data orisinal menjadi data terkompres Dekoder / Decompresor: software (atau hardware) yang mendekode data terkompres menjadi data orisinal Codec: software (atau hardware) yang mengkodekan dan mendekodekan data Algoritma : teknik yang digunakan dalam proses pengkodean/kompresi
Code Word
Code word : kombinasi bit yang merupakan representasi dari suatu simbol data orisinalMisalnya: 1 = 001; 2 = 010; 5 = 101; 7 = 111;
Codeword yang dibuat harus unik, tidak ambigu, relasi 1-1 (uniquely decodable): unik sehingga sumber orisinal dapat dikodekan kembali secara sempurna dari deretan biner code word-nya Natural Binary Code (NBC): panjang codeword sama untuk semua simbol Variable Length Code (VLC): panjang cw bervariasi
7
2/23/2011
Background
Run length encoding (RLE) is a simple technique
to compress digital data by representing successive runs of the same value in the data as the value followed by the count, rather than the original run of values. The goal is to reduce the amount of data needed to be stored or transmitted.
8
2/23/2011
The Idea Behind RLE Compression technique : Represents data using value and run length Run length defined as number of consecutive equal values e.g RLE 1110011111 1 3 0 2 1 5
Values
Run Lengths
Basic Encode Algorithm (http://www.fileformat.info)
9
2/23/2011
Encoding Algorithm Examine next value If same as previous value
Start on the first element of input
Keep a counter of consecutive values Keep examining the next value until a different value or end of input then output the value followed by the counter. Repeat
If not same as previous value Output the previous value followed by 1 (run length). Repeat
Encoder Matlab Code% Run Length Encoder % EE113D Project function encoded = RLE_encode(input) my_size = size(input); length = my_size(2); run_length = 1; encoded = []; for i=2:length if input(i) == input(i-1) run_length = run_length + 1; else encoded = [encoded input(i-1) run_length]; run_length = 1; end end if length > 1 % Add last value and run length to output encoded = [encoded input(i) run_length]; else % Special case if input is of length 1 encoded = [input(1) 1]; end
10
2/23/2011
Encoder Matlab Result>> RLE_encode([1 0 0 0 0 2 2 2 1 1 3]) ans = 1 1 0 4 2 3 1 2 3 1 >> RLE_encode([0 0 0 0 0 0 0 0 0 0 0]) ans = 0 11 >> RLE_encode([0 1 2 3 4 5 6 7 8 9])
ans = 0 1 1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
Run Length Encoding Scanning
11
2/23/2011
Decoder Matlab Codemy_size = size(encoded); length = my_size(2); index = 1; decoded = []; % iterate through the input while (index > RLE_decode([0 12]) ans = 0 0 0 0 0 0 0 0 0 0 0 0 >> RLE_decode([0 1 1 1 2 1 3 1 4 1 5 1]) ans = 0 1 2 3 4 5 >> RLE_decode(RLE_encode([0 0 3 1 4 4 5 6 10])) ans = 0 0 3 1 4 4 5 6 10
12
2/23/2011
Analysis Useful for compressing data that contains repeated values, Very simple compared with other compression techniques, Reversible (Lossless) compression decompression is just as easy
Conclusion
Compression effectiveness depends on input Must have consecutive runs of values in order to maximize compression Best case: all values same
Can represent any length using two values Compressed data twice the length of original!!
Worst case: no repeating values
Should only be used in situations where we know for sure have repeating values
13
2/23/2011
Range Recursive Reduction
Range ReductionAlgoritma :1. 2.
3.
4. 5.
Buat header di aliran pertama kompres, dengan panjang L dari integer pertama, Jika nilai integer di baris ke-1, bit pertamanya = 1 (MSB =1), maka eliminasi bit tsb, dan dapat dimulai penulisan hasilnya pada output dari L - 1. Dengan demikian, encoder tidak akan membaca secara ambigu, Decoder lalu cek MSB pada baris ke-2, jika nilai yang terbanyak dikiri k bit adalah 0, maka decoder akan mengenali bit selanjutnya adalah yang akan ditulis di output tanpa k terbanyak di kiri 0 yang menempati L k bit selanjutnya, Jika tidak, maka tuliskan nilainya pada aliran output seperti input, Ulangi langkah ke-3 sampai selesai.
14
2/23/2011
Contoh Range ReductionData 1000010 1000001 1000000 0111111 0111110 0111101 0111100 49 RR code 0101 = 6 000010 1000001 1000000 0111111 111110 111101 111101 49 Data 10011100010000 00001111101000 00000001100100 00000000001010 00000000000001 RR code 1101 = 13 0011100010000 00001111101000 0001100100 0001010 0001
70
52
Kelemahan dan Kelebihan Kelebihan :
1. 2. 3. 4.
Membangkitkan kompresi yang baik Mudah untuk memprogram Performansi terbebas dari data yang akan di kompres Penerapannya akan baik pada aplikasi dimana data tidak berada di beberapa standar distribusi dan data yang random
Kelemahan : 1. Penggunaannya hanya untuk nilai integer yang tidak
negative 2. Encoder mensyaratkan dua phase pertama untuk membangun tree, kedua melintasi dan mengumpulkan node-nodenya
15
2/23/2011
Contoh image kompresi dengan data tidak random
Binary tree dengan 3RA+B+C+D+E A+B A B C C+D+E D+E D E
16
2/23/2011
Binary tree Algoritma 3R melibatkan binary tree dimana setelah bagian dari akar
ke daun merupakan daftar yang tidak menaik, setiap bagian disandikan dengan 3R dengan terpisah, syarat rekursif. Binary tree dibangun dimana setiap pasang integer yang berurutan menjadi subtree di level dibawahnya. Setiap 5bagian dari akar ke daun merupakan daftar yang terurut dan dikompres dengan 3R. Hanya note di awal yang ditulis di output. Aturannya : ikuti bagian dari akar lalu pilih node-node sepanjang sisi yang menuju kekiri. Sehingga nilai yang di peroleh di output : 1. header dengan panjang di root 2. encode 3R dengan bagian ter-encode (akar, A+B, A) 3. nilai dari node [setelah bagian(akar, C+D+E, C)] 4. nilai dari node D [setelah bagian(root, C+D+E, D+E, D)]
17