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