Implementasi Algoritma Perbandingan Kualitas Citra Hasil Kompresi Metode Run Length Encoding Dengan Transformasi Wavelet Daubechies Pada Citra Digital

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi Sistem

Tahap implementasi merupakan tahap penerapan sistem untuk mengimplementasikan metode Run Length Encoding dan Transformasi Wavelet Daubechies dalam proses kompresi citra digital. Pada tahap ini dijelaskan mengenai Implementasi Algoritma Run Length Encoding dan Transformasi Wavelet Daubechies.

4.1.1 Implementasi Algoritma

Implementasi teknik kompresi digunakan untuk mengurangi jumlah duplikasi data pada citra sehingga memori yang dibutuhkan untuk merepresentasikan citra tersebut lebih sedikit daripada representasi citra semula. Terdapat dua metode kompresi yang akan dibandingkan, yaitu metode Run Length Encoding RLE dengan Transformasi Wavelet Dauebechies. Adapun citra yang akan diproses adalah citra bertipe warna grayscale dengan format Bitmap .BMP.

4.1.1.1 Implementasi Algoritma Kompresi Run Length Encoding

Penerapan metode kompresi Run Length Encoding pada sistem adalah salah satu metode yang akan dibandingkan yang bertujuan untuk mengurangi jumlah data redundan berulang-ulang pada citra masukkan, sehingga diharapkan dapat menghasilkan citra yang lebih hemat dalam penggunaan memori. Berikut adalah simulasi proses kompresi citra menggunakan metode Run Length Encoding dengan mengambil sampel matriks citra grayscale 5 bit berukuran 8x8 yang ditunjukkan pada Tabel 4.1 sebagai berikut. Tabel 4.1 Matriks Citra 8x8 Proses kompresi menggunakan Run Length Encoding dilakukan dengan cara memindahkan pengulangan byte yang sama berturut-turut secara terus menerus. Nilai pada setiap piksel akan dibaca dan sederetan karakter yang sesuai dengan deretan karakter yang sudah ditentukan sebelumnya disubstitusi dengan kode tertentu. Proses kompresi Run Length Encoding dapat dilihat pada Tabel 4.2 sebagai berikut. Tabel 4.2 Proses Kompresi Run Length Encoding 8,2 7,1 10,4 2,1 4,1 6,2 4,4 3,2 13,6 5,1 23,1 32,4 1,4 5,3 8,5 3,5 6,3 7,3 6,1 4,4 8,5 5,3 Adapun proses pengkodean Run Length Encoding adalah sebagai berikut : 8. Dua nilai piksel awal pada citra dibaca. Angka pertama pada setiap data menunjukkan nilai piksel, sedangkan angka kedua menunjukkan jumlah piksel dari nilai piksel tersebut. 9. Periksa apakah nilai piksel pertama sama dengan nilai piksel kedua. 8 8 7 10 10 10 10 2 4 6 6 4 4 4 3 3 13 13 13 13 13 13 5 23 32 32 32 32 1 1 1 1 5 5 5 8 8 8 8 8 3 3 3 3 3 6 6 6 7 7 7 6 4 4 4 4 8 8 8 8 8 5 5 5 10. Jika nilai piksel pertama berbeda dengan nilai piksel kedua, maka akan dituliskan nilai piksel pertama diikuti dengan nilai 1, sedangkan nilai piksel kedua akan dijadikan piksel pertama, kemudian piksel selanjutnya menjadi piksel kedua dan melakukan perulangan seperti pada langkah 2. 11. Jika nilai piksel pertama sama dengan nilai piksel kedua, maka akan diperiksa nilai piksel selanjutnya, sampai ditemukan nilai piksel yang berbeda dengan nilai piksel pertama. 12. Nilai piksel pertama akan dituliskan dan diikuti dengan jumlah piksel yang memiliki nilai yang sama dengan piksel pertama. 13. Dua nilai piksel selanjutnya akan dibaca dan dilakukan perulangan pada langkah 2 sampai dengan langkah 5, hingga semua piksel pada citra diperiksa. 14. Piksel yang telah terbentuk akan menjadi citra hasil kompresi RLE. Citra hasil kompresi disusun kedalam satu baris matriks seperti pada Gambar 4.1 sebagai berikut. Gambar 4.1 Matriks Hasil Pengkodean Setelah dilakukan pengkodean, maka didapatkan hasil akhir dari kompresi metode Run Length Encoding berupa matriks berukuran 1 x N, dimana 1 adalah banyak baris dan N adalah banyak kolom pada matriks citra hasil kompresi.

4.1.1.2 Implementasi Algoritma Dekompresi Run Length Encoding

Penerapan metode dekompresi Run Length Encoding pada sistem bertujuan untuk mengembalikan bentuk citra hasil kompresi Run Length Encoding. Proses dekompresi citra Run Length Encoding dilakukan dengan cara me-decoding citra hasil kompresi seperti terlihat pada Gambar 4.2 sebagai berikut. Gambar 4.2 Matriks Hasil Kompresi 8 2 7 1 10 4 2 1 4 1 6 2 4 4 3 2 13 6 5 1 23 1 32 4 1 4 5 3 8 5 3 5 6 3 7 3 6 1 4 4 8 5 5 3 8 2 7 1 10 4 2 1 4 1 6 2 4 4 3 2 13 6 5 1 23 1 32 4 1 4 5 3 8 5 3 5 6 3 7 3 6 1 4 4 8 5 5 3 Adapun proses decoding Run Length Encoding adalah sebagai berikut : 1. Proses dekompresi Run Length Encoding dilakukan dengan mengambil dua piksel pertama pada citra hasil kompresi, yaitu piksel 1,1 dan 1,2. Nilai pada piksel 1,1 menunjukkan nilai dari piksel itu sendiri, sedangkan nilai piksel 1,2 menunjukkan banyaknya nilai untuk piksel 1,1. 2. Ambil kembali dua piksel hasil kompresi yang belum di-decoding, yaitu piksel 1,3 dan 1,4. 3. Lakukan juga proses tersebut pada piksel 1,5,1,6,…,1,j. 4. Nilai piksel hasil decoding dimasukkan kedalam matriks dimana ukuran matriks sesuai dengan ukuran matriks citra awal sebelum dikompresi. Hasil dari proses decoding dapat dilihat pada Tabel 4.3 sebagai berikut. Tabel 4.3 Matriks Hasil Dekompresi

4.1.1.3 Implementasi Algoritma Kompresi Transformasi Wavelet Daubechies

Penerapan metode kompresi Transformasi Wavelet Daubechies pada sistem merupakan salah satu metode yang bertujuan untuk mengurangi penggunaan jumlah memori yang dibutukan untuk penyimpanan citra digital. Hasil dari proses kompresi menggunakan metode Transformasi Wavelet Daubechies akan dibandingkan dengan hasil kompresi mengggunakan metode Run Length Encoding. Adapun proses Transformasi Wavelet Daubechies adalah sebagai berikut : 1. Langkah pertama dari metode ini dengan melakukan transformasi citra menggunakan matriks Daubechies seperti yang terlihat pada Tabel 4.4 dan Tabel 4.5 sebagai berikut. Tabel 4.4 a Matriks Transformasi Wavelet Daubechies b Matriks Citra Awal x x a b Tabel 4.5 Matriks Hasil Transformasi 2. Setelah citra hasil transformasi didapatkan, selanjutnya dilakukan proses kuantisasi terhadap citra tersebut. Proses kuantisasi menggunakan matriks kuantisasi 8x8. Untuk memperoleh matriks hasil kuantisasi, matriks hasil transformasi Daubechies dibagi dengan matriks kuantisasi. Proses tersebut dapat dilihat pada Tabel 4.6 sebagai berikut. Tabel 4.6 a Matriks Hasil Transformasi b Matriks Kuantisasi c Matriks Hasil Kuantisasi ÷ a b = c 3. Pada matriks hasil kuantisasi, nilai piksel masih dalam bentuk bilangan desimal, maka diperlukan pembulatan nilai dari piksel tersebut agar dapat dilakukan proses encoding. Matriks citra dengan nilai piksel yang telah dibulatkan dapat dilihat pada Tabel 4.7 sebagai berikut. Tabel 4.7 Matriks Hasil Pembulatan Nilai Kuantisasi 1 -1 -1 -2 4 -1 -1 1 -1 1 -1 -1 2 1 1 -3 1 4. Selanjutnya dilakukan proses encoding terhadap matriks citra hasil kuantisasi. Proses encoding dapat dilihat pada Tabel 4.8 sebagai berikut. Tabel 4.8 Proses Encoding Citra Hasil Kuantisasi 0,6 1,1 0,1 0,3 -1,2 -2,1 4,1 -1,1 0,8 0,5 -1,3 0,8 1,1 -1,2 2,1 1,2 -3,1 1,1 0,8 0,8 5. Kemudian, hasil encoding diurutkan dalam matriks berukuran 1xN, seperti ditunjukkan pada Gambar 4.3 sebagai berikut. Gambar 4.3 Matriks Hasil Encoding

4.1.1.4 Implementasi Algoritma Dekompresi Transformasi Wavelet Daubechies

Penerapan metode dekompresi Transformasi Wavelet Daubechies pada sistem bertujuan untuk mengembalikan bentuk citra hasil kompresi Transformasi Wavelet Daubechies kembali ke bentuk citra awal sebelum dikompresi. Proses dalam dekompresi Transformasi Wavelet Daubechies adalah dengan me-decoding citra awal hasil kompresi seperti terlihat pada Gambar 4.4 sebagai berikut. Gambar 4.4 Matriks Hasil Kompresi 0 6 1 1 0 1 0 3 -1 2 -2 1 4 1 -1 1 0 8 0 5 -1 3 0 8 1 1 -1 2 2 1 1 2 -3 1 1 1 0 8 0 8 0 6 1 1 0 1 0 3 -1 2 -2 1 4 1 -1 1 0 8 0 5 -1 3 0 8 1 1 -1 2 2 1 1 2 -3 1 1 1 0 8 0 8 Adapun proses Transformasi Wavelet Daubechies adalah sebagai berikut : 1. Proses decoding dilakukan dengan mengambil dua piksel pertama pada citra hasil kompresi, yaitu piksel 1,1 dan 1,2. Nilai pada piksel 1,1 menunjukkan nilai dari piksel itu sendiri, sedangkan nilai piksel 1,2 menunjukkan banyaknya nilai untuk piksel 1,1. 2. Ambil kembali dua piksel hasil kompresi yang belum di-decoding, yaitu piksel 1,3 dan 1,4. 3. Lakukan juga proses tersebut pada piksel 1,5,1,6,…,1,j. 4. Nilai piksel hasil decoding dimasukkan kedalam matriks dimana ukuran matriks sesuai dengan ukuran matriks citra awal sebelum dikompresi. Hasil dari proses decoding dapat dilihat pada Tabel 4.9 sebagai berikut. Tabel 4.9 Matriks Hasil Decoding 1 -1 -1 -2 4 -1 -1 1 -1 1 -1 -1 2 1 1 -3 1 5. Setelah matriks hasil proses decoding didapat, selanjutnya dilakukan proses dekuantisasi seperti ditunjukkan pada Tabel 4.10 sebagai berikut. Tabel 4.10 a Matriks Hasil Decoding b Matriks Kuantisasi c Matriks Hasil Dekuantisasi X a b c 6. Setelah proses dekuantisasi selesai, dilanjutkan dengan proses inverse Transformasi Wavelet Daubechies. Proses tersebut dapat dilihat pada Tabel 4.11 sebagai berikut. 49 64 78 87 103 121 120 101 44 55 48 37 19 -20 -32 -18 -47 -63 -72 -75 -90 -83 -96 -90 -15 -23 -23 -12 12 49 41 39 Tabel 4.11 a Matriks Hasil Dekuantisasi b Matriks Inverse Transformasi Wavelet Daubechies c Matriks Hasil Inverse Transformasi a b c 7. Pada matriks hasil inverse transformasi dekompresi, nilai piksel masih dalam bentuk bilangan desimal. Oleh karena itu, nilai piksel harus diubah ke dalam bentuk bilangan integer. Hasilnya dapat dilihat pada Tabel 4.12 sebagai berikut. Tabel 4.12 Matriks Hasil Dekompresi Transformasi Wavelet Daubechies 24,5 32 39 43,5 51,5 60,5 60 50,5 24,5 32 39 43,5 51,5 60,5 60 50,5 14,5 16 12,5 12,5 15,5 14,5 4,5 10,5 29,5 39 35,5 24,5 3,5 -34,5 -36,5 -28,5 23,5 -31,5 -36 -37,5 -45 -41,5 -48 -45 23,5 -31,5 -36 -37,5 -45 -41,5 -48 -45 25 32 39 44 52 61 60 51 25 32 39 44 52 61 60 51 15 16 13 13 16 15 5 11 30 39 36 25 4 24 0 24 0

4.2 Pengujian Sistem