Algoritma Elias Delta Code

2.8 Algoritma Elias Delta Code

Algoritma Elias Delta Code adalah sebuah algoritma kompresi yang dibuat oleh Peter Elias menggunakan kode yang telah dia buat sebelumnya, yaitu Elias Gamma Code, sebagai building block Figueiredo, 2009. Dalam kode Gamma, Elias menambah panjang kode dalam unary α. Dalam kode berikutnya, δ delta, ditambahkan pada panjang kode dalam biner β. Dengan demikian, Elias Delta Code, yang juga untuk bilangan bulat positif, sedikit lebih kompleks untuk dibangun Salomon, 2007. Untuk melakukan encode dengan Elias Delta Code dalam bilangan bulat positif n dilakukan dalam langkah-langkah berikut: Salomon, 2007. 1. Tulis n dalam biner. Bit yang paling kiri paling signifikan akan menjadi 1. 2. Hitung bit, hapus bit paling kiri dari n, dan tambahkan hitungan, di dalam biner, apa yang tersisa dari bit n yang paling kiri setelah telah dihapus. 3. Kurangi 1 dari hitungan di langkah 2 ,dan tambahkan jumlah nol sebanyak hasil hitungan tersebut ke awal kode. Contoh kasus pada bilangan integer 5, hasilnya: 5 = 101 2 3 bit. Hapus angka 1 paling kiri dan tambahkan 3 = 11, sehingga menjadi 11 | 01. 2 bit telah ditambahkan, jadi kita tambahkan 1 nol untuk mendapatkan kode delta 0 hasilnya 11|01. 2 bit sudah ditambahkan, kemudian tambahkan 1 nol untuk mendapatkan kode delta 0|11|01. Untuk melakukan decode dengan Elias Delta Code, berikut adalah langkah- langkahnya: 1. Baca bit dari kode sampai proses decode dengan Elias Gamma Code dapat dilakukan. Proses ini dapat dilakukan dengan beberapa langkah berikut ini: a. Hitung jumlah nol terdepan dari kode tersebut lalu gantikan perhitungan tersebut dengan C. b. Periksa bit bagian kiri 2 C + 1 C nol, diikuti dengan 1, lalu diikuti dengan bit C selebihnya. Ini merupakan decode Elias Gamma Code M + 1. 2. Baca bit M berikutnya. Sebut ini sebagai L. 3. Bilangan bulat yang di decode adalah 2M + L. Pada kasus dimana n = 5, kode deltanya adalah 01101. Lewati satu nol, sehingga C = 2. Nilai bit paling kiri dari 2 C + 1 = 3 adalah 00101 = 3, jadi M + 1 = 3. Pembacaan akan dilakukan berikutnya pada M = 1 bit 1, dan diakhirnya dengan nilai decode 2 M + L = 2 2 + 1 = 5. Universitas Sumatera Utara Tabel 2.1 Kode Elias Gamma 1 = 2 + 0 = 1 10 = 2 3 + 2 = 0001010 2 = 2 1 + 0 = 010 11 = 2 3 + 3 = 0001011 3 = 2 1 + 0 = 011 12 = 2 3 + 4 = 0001010 4 = 2 2 + 0 = 00100 13 = 2 3 + 5 = 0001101 5 = 2 2 + 1 = 00101 14 = 2 3 + 6 = 0001010 6 = 2 2 + 2 = 00110 15 = 2 3 + 7 = 0001111 7 = 2 2 + 3 = 00111 16 = 2 4 + 0 = 00001000 8 = 2 3 + 0 = 0001000 17 = 2 4 + 1 = 00001001 9 = 2 3 + 1 = 0001001 18 = 2 4 + 2 = 00001010 Sebagai contoh, jika n = 5, kode deltanya adalah 01101. Hitung dua angka nol, sehingga C = 2. Nilai dari 2 C paling kiri + 1 = 3 bit adalah 011 = 5, sehingga M + 1 = 5. Berikutnya baca M = 1 bit 1, dan berakhir dengan nilai 2 M + L = 2 4 + 1 = 5. Tabel 2.2 Kode Elias Delta 1 = 2 + 0 - |L| = 0 - 1 10 = 2 3 + 2 - |L| = 0 - 00100010 2 = 2 1 + 0 - |L| = 1 - 0100 11 = 2 3 + 3 - |L| = 0 - 00100011 3 = 2 1 + 1 - |L| = 0 - 0101 12 = 2 3 + 4 - |L| = 0 - 00100100 4 = 2 2 + 0 - |L| = 0 - 01100 13 = 2 3 + 5 - |L| = 0 - 00100101 5 = 2 2 + 1 - |L| = 0 - 01101 14 = 2 3 + 6 - |L| = 0 - 00100110 6 = 2 2 + 2 - |L| = 0 - 01110 15 = 2 3 + 7 - |L| = 0 - 00100111 7 = 2 2 + 3 - |L| = 0 - 01111 16 = 2 4 + 0 - |L| = 0 - 001010000 8 = 23 + 0 - |L| = 0 - 00100000 17 = 24 + 1 - |L| = 0 - 001010001 9 = 23 + 1 - |L| = 0 - 00100001 18 = 24 + 2 - |L| = 0 - 001010010

2.9 Kompleksitas Algoritma