Analisis Perbandingan Kinerja Kompresi Wavelet Haar dan Daubechies 9/7 Berbasis MATLAB, Compiler GCC dan Mikrokontroler Arduino M Normansyah, Prima Dewi Purnamasari Fakultas Teknik Elektro, Fakultas Teknik, Universitas Indonesia,
[email protected]
Abstrak Tulisan ini berisi perancangan dan pembuatan kompresi wavelet serta analisis distorsi citra hasil kompresi menggunakan MATLAB, Compiler GCC dan Mikrokontroler Arduino. Penelitian ini bertujuan untuk mencari distorsi citra kompresi yang dapat diterima oleh mata manusia. Penelitian ini menggunakan algoritma wavelet Daubechies 9/7 dan Haar sebagai algoritma kompresi. Pada penelitian ini, mikrokontroler digunakan untuk mengukur waktu performa program kompresi pada spesifikasi mesin pengolah dengan kecepatan sebesar 16 MHz, RAM internal sebesar 8 KByte dan RAM eksternal sebesar 512 KByte. Sedangkan, program kompresi pada GCC untuk mengetahui efek dari format Q terhadap waktu kompresi. Adapun kompresi wavelet Haar dan Daubechies 9/7 menggunakan format Q mengoptimalkan waktu kompresi hingga berlangsung selama kurang dari 0,2 detik untuk citra berresolusi 256 × 256 dan 512 × 512. Distorsi yang dihasilkan kompresi Haar lebih tampak dibandigkan dengan kompresi Daubechies 9/7 oleh mata manusia. Pengurangan bit dengan fungsi left bit shifting atau right bit shifting berbasis compiler GCC dan mikrokontroler Arduino dan fungsi rounding pada MATLAB serta zone thresholding diaplikasikan untuk mengurangi jumlah bit pada citra yang disimpan pada divais penyimpanan seperti SD Card. Kata kunci: Daubechies 9/7, Haar, Wavelet, Format Q, GCC I. PENDAHULUAN
Citra dijital menjadi bagian penting dari komputasi modern. Sebuah citra lebih berharga dari ribuan kata. Citra dijital memiliki ukuran data sesuai dengan resolusi dan jumlah informasi yang ditampilkan. Dalam menyimpan citra dijital, dibutuhkan divais penyimpanan sesuai dengan ukuran dan jumlah citra dijital. Perkembangan kualitas citra dijital yang terus berkembang telah membawa aplikasi inovatif dalam dunia komputasi. Dengan perkembangan kualitas citra dijital membuat ukuran semakin meningkat sesuai tingkat resolusi yang digunakan. Namun, Keterbatasan divais penyimpanan seperti SDCard dan uSD, membutuhkan metode untuk mereduksi jumlah citra dijital yang disimpan. Untuk mereduksi besar ukuran citra djital, digunakan metode wavelet. Metode wavelet adalah suatu metode untuk mendekomposisi citra menjadi detail-detail yang mencerminkan objek 1 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
pada citra. Jika pada detail citra dijital tersebut memiliki informasi yang tidak relevan (dapat diacuhkan oleh manusia), maka detail tersebut dapat dihilangkan[1]. Sehingga penggunaan metode wavelet tersebut diharapkan mampu mereduksi besar ukuran citra dijital dan jumlah citra dijital yang disimpan dapat dioptimalkan. Pada penelitian ini, Metode wavelet yang digunakan adalah wavelet Daubechies 9/7 dan Haar. Format Q digunakan dalam penelitian ini untuk mengkonversi bilangan decimal (float) menjadi bilangan bulat (integer) sehingga mempercepat waktu komputasi untuk mengurangi beban komputasi pada divais. Penelitian ini menggunakan Arduino Mega 2560 sebagai mikrokontroller, seluruh sistem komputer yang terkandung dalam suatu integrated circuit atau chip, yang memiliki operasi integer 16 bit dan random access memory (RAM sebesar 8 Kbyte. Memory Eksternal sebesar 512 Kbyte ditambahkan untuk menambah besar random access memory (RAM) dan SDCard sebagai divais penyimpan citra dijital. Sedangkan MATLAB dan GCC digunakan sebagai software untuk mensimulasikan algoritma wavelet dan pemanfaat format Q untuk mempercepat komputasi.
II. TEORI ALGORITMA HAAR DAN DAUBECHIES 9/7 A.
Algoritma Wavelet Haar Pada wavelet Haar, nilai filter l lowpass = [0.5, 0.5] dan h highpass = [0,5, -0,5] dan untuk
menghemat energi maka digunakan koefisien filter
*
√
√
+ dan filter
*
√
√
+, filter
tersebut disebut filter orthonormal. Dengan filter l lowpass = [0,5 , 0,5] dan h highpass = [0,5,0,5], tahap predict, sinyal genap dikalikan dengan -1 dan ditambahkan dengan sinyal ganjil masukan. Setelah itu, sinyal hasil predict pada tahap update dikalikan dengan 0,5 dan ditambahkan dengan sinyal ganjil masukan sehingga didapatkan approximation dari sinyal genap dan detail dari sinyal ganjil. Sebaliknya untuk membangun kembali sinyal tersebut, sinyal detail dikalikan dengan 0,5 dan mengurangi sinyal approximation dan sinyal approximation dikalikan dengan -1 dan mengurangi sinyal detail kemudian digabungkan sinyal keduanya, sinyal approximation berada pada indeks genap dan sinyal detail berada pada indeks ganjil.[2]
Contoh berikut ini untuk perhitungan transformasi Haar menggunakan koefisien transformasi orthonormal: 2 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
approximation =
detail = Dengan B.
√
√
(
)
(
)
(1)
(2)
dan
Algoritma Wavelet Daubechies 9/7 [
Jika sebuah sinyal
] dengan panjang sinyal sebesar N maka sinyal
tersebut menghasilkan 2 sinyal, approximation dan details dikonvolusi dengan koefisien Daubechies 9/7 dengan panjang sinyal N/2. Approximation ke-i pada sinyal hasil didapatkan dari: ∑ Dengan i = 0,1,...,N-1 dan koefisien
,
(3)
dalah koefisien analisis lowpass filter pada Tabel 1.
Detail ke-i didapatkan dari: ∑
(4)
Dengan i = 0,1,..,N-1. Setelah itu, sinyal approximation dan detail di downsampling dari a0, a1,…, aN-1 menjadi a0, a2,…, aN-2 dan a1, a3,…, aN-1 sehingga sinyal masukan berindeks genap dan ganjil dapat di nomor ulang di formula approximation dan detail menjadi
Dengan
(
∑
(5)
∑
(6)
).
Untuk menghindari efek perbatasan(boundary effect), biasanya dilakukan sebuah pointsymmetrical extension pada perbatasan sinyal, sebagai contoh perbatasan sinyal yakni indeks
3 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
[
ke-0, 1, 2, 3 dan (N-4), (N-3), (N-2), (N-1). Misalkan sinyal
] di extend untuk
highpass filtering dan lowpass filtering menjadi
dan . Table 1 Koefisien Daubechies 9/7[2]
j
C.
analysis lowpass
analysis highpass
lj
hj -
synthesis lowpass lj
-
synthesis highpass hj
-4
0.037828
-3
-0.023849
0.064539
-0.064539
0.023849
-2
-0.110624
-0.040689
-0.040689
-0.110624
-1
0.377403
-0.418092
0.418092
-0.377403
0
0.852699
0.788486
0.788486
0.852699
1
0.377403
-0.418092
0.418092
-0.377403
2
-0.110624
-0.040689
-0.040689
-0.110624
3
-0.023849
0.064539
-0.064539
0.023849
4
0.037828
-
0.037828
-
Desain Mikrokontroler Kompresi Wavelet Adapun Spesifikasi mikrokontroler kompresi: 1.
Arduino Mega 2560 berfungsi sebagai pusat komputasi.
2.
Kabel mini USB tipe B.
4 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
0.037828
3.
Breadboard solderless.
4.
SD Card shield berfungsi sebagai interface SD Card Sandisk 2 GB.
5.
Kabel jumper sebagai connector antara breadboard solderless dengan Arduino Mega 2560.
6.
QuadRAM berfungsi sebagai RAM eksternal sebesar 512 Kbyte.
7.
SD Card Sandisk 2GB berfungsi sebagai divais penyimpanan.
Secara umum, alur proses kompresi citra pada Arduino Mega 2560 yaitu: 1.
Arduino Mega 2560 mengakses citra masukan berformat Comma Separated Value (CSV) yang berada pada SD Card dan menyimpan nilai pixel-pixel tersebut pada RAM eksternal.
2.
Setiap baris citra yang berada pada RAM eksternal dikompresi dengan algoritma wavelet haar atau daubechies 9/7 kemudian disimpan di RAM eksternal.
3.
Output kompresi diambil dari RAM ekternal dan disimpan dengan ekstensi CSV dan disimpan pada SD Card
4.
Citra dijital dengan ekstensi CSV yang berada di SD Card dikonversi menjadi citra berformat TIFF pada GNU Octave atau MATLAB untuk mengukur nilai PSNR dan menampilkan citra hasil kompresi.
Gambar 1. Blok diagram sistem kompresi mikrokontroler
5 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
D.
Algoritma Perangkat Lunak
Gambar 2. Diagram Alir Kompresi Citra Implementasi sistem ini didasarkan pada Gambar 7. Gambar tersebut menjelaskan bahwa untuk dapat mengkompresi citra masukan berupa standard test image dengan format CSV diperlukan 3 tahapan, antara lain pemberian supply daya antara kisaran 7 hingga 12 Volt, pengecekan citra masukan dan pengkompresian citra tersebut dengan metode wavelet Haar dan Daubechies 9/7. Untuk melihat bahwa algoritma wavelet Haar dan Daubechies 9/7 menciptakan sparse, maka digunakan program versi MATLAB. Compiler C AVR digunakan untuk mengukur performa kompresi. Arduino sebagai mikrokontroler digunakan untuk mengetahui apakah spesifikasi minimum dapat melakukan kompresi. Metode wavelet Haar dan Daubechies 9/7 versi MATLAB memiliki masukan dengan jangkauan 0 hingga 255 dengan koefisien wavelet desimal. MATLAB memiliki aritmatika internal dalam presisi nilai dibelakang koma sebanyak 16 digit.[3] Pseudocode metode Haar dan Daubechies 9/7 secara berturut-turut ditunjukkan pada Gambar 3 dan Gambar 4.
6 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
D.A.1 Wavelet Haar /* transformasi baris Haar */ w = banyak kolom citra; while (w != (kolom citra/2)){ Lakukan averaging pada pixel-pixel yang bersebelahan Lakukan differencing pada nilai averanging dengan nilai pixel asli w = w/2; } /* transformasi kolom Haar */ w = banyak baris citra; while (w != (baris citra/2)){ Lakukan averaging pada pixel-pixel yang bersebelahan Lakukan differencing pada nilai averanging dengan nilai pixel asli w = w/2; } Gambar 3. Pseudocode metode kompresi wavelet Haar [4] averaging: differerencing:
(
)
( )
( )
dengan x adalah indeks pixel citra. dengan a adalah nilai averaging.
Informasi pada citra adalah nilai pixel yang diekstrak dari citra. Zona aproksimasi (LL) berisi informasi mengenai sifat-sifat global dari citra yang dianalisis, zona horizontal (HL) berisi informasi mengenai baris vertikal yang tersembunyi pada citra, zona vertical (LH) berisi informasi mengenai baris horizontal yang tersembunyi pada citra dan zona diagonal (HH) berisi informasi mengenai detail diagonal yang tersembunyi pada citra.[13] Untuk menciptakan sparse pada Haar di MATLAB, maka zona-zona tertentu selain zona aproksimasi LL pada struktur dekomposisi wavelet hasil kompresi seperti ditunjukkan pada Gambar 5 dihilangkan atau dithresholding.
7 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
E.
Wavelet Daubechies 9.7
Alokasikan buffer LL_HL sebanyak N elemen Alokasikan buffer LH_HH sebanyak N elemen alokasikan buffer masukan s sebanyak N elemen for i=N/2-1, N/2-2,...,0 inisialisasi buffer LL_HL dan LH_HH dengan nilai 0 for m = 0,1,....,N-1:LL_HL(m)=0, LH_HH(m)=0 for j = -4,-3,...,4: indeks baris l=2*i + j symmetric extension jika l < 0: l = l *(-1) lainnya jika l > N-1: l = 2N-2-l baca N elemen pada posisi N. l(sebab 1 baris) ke citra masukan (SRAM) ke buffer s untuk k=0,1,...,N/2-1: L = konvolusi( buffer s, koefisien lowpass, posisi indeks 2k) LL_HL(k) += lowpass filter(indeks j) * L // update nilai LL LL_HH(k) += highpass filter(indeks j-1) * L // update nilai LH H = konvolusi(buffer s, koefisien highpass,posisi indeks 2k+1) // update nilai HL LL_HL(k+N/2) +=lowpass filter(indeks j)*H // update nilai HH LL_HH(k+N/2) +=highpass filter(indeks j-1)*H tulis N elemen dari buffer LL_HL ke SRAM pada posisi i*N tulis N elemen dari buffer LH_HH ke SRAM pada posisi (i+N/2)*N Gambar 4. Pseudocode metode kompresi daubechies 9/7[2] Untuk menciptakan sparse pada algoritma wavelet Daubehies 9/7 diatas maka proses pembulatan atau pengurangan bilangan bit pada format Q. Hal tersebut diimplementasikan pada lowpass filter pada Gambar 4. Algoritma pada penelitian menggunakan bit shitfing ke kanan
8 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
untuk mengurangi bit dan bit shifting ke kiri untuk menambah bit. Bit shifting tersebut, dilakukan pada setiap environment pemograman yang digunakan pada penelitian ini.
Gambar 5. Struktur dekomposisi wavelet III. HASIL PENGUJIAN DAN PEMBAHASAN A.
Pengujian Kompresi Wavelet berbasis MATLAB Pengujian kompresi wavelet pada citra menggunakan perangkat lunak MATLAB dengan
metode Haar dan Daubechies 9/7 bertujuan untuk mengetahui apakah algoritma metode Haar dan Daubechies 9/7 dengan format floating point dapat menciptakan sparse pada proses kompresi citra. Pengujian algoritma menggunakan MATLAB menggunakan masukan Standard Test Image seperti diperlihatkan pada Gambar 6.
Gambar 6. Standard Test Image sebagai masukan untuk kompresi citra [5] Software MATLAB memiliki presisi bit 16 bit untuk bit-bit di belakang bilangan bulat. Sehingga untuk menciptakan sparse pada citra yang di dekomposisi digunakan proses zone thresholding pada Haar dan pengurangan bit pada Daubechies 9/7 dengan menjadikan nilai tersebut 0 dan melakukan pembulatan nilai pixel citra.
9 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
Sebelum citra masukan yang diperlihatkan pada Gambar 6 dikompresi, citra tersebut dikonversi menjadi citra monochrome, citra berdimensi satu, kemudian dikompresi menggunakan metode Haar dan Daubechies 9/7. Hal ini dilakukan untuk memudahkan komputasi pada mesin pengolah. Zona Vertikal thresholding 40,0
PSNR(dB)
35,0
level 1
30,0
level 2
25,0
level 3
20,0
level 4 level 5
15,0
level 6
10,0 1
2
3
4
5
6
7
8
citra ke-
Gambar 7. Grafik PSNR vs order-x citra untuk zona vertikal dihilangkan Gambar 7, 8, 9 adalah grafik hasil kompresi berupa parameter-parameter keluaran PSNR metode wavelet Haar. Gambar 7 menunjukkan besar PSNR untuk 8 citra Standard Test Image yang dikompresi per masing-masing level berada di bawah 40 dB. Penurunan kualitas citra dengan citra dengan PSNR dibawah 40 dB atau lebih biasanya mustahil terlihat untuk manusia.[6] Sedangkan nilai PSNR pada setiap level citra yang dikompresi menciptakan degradasi kualitas citra sebesar 9,105% per tiap level . Kompresi citra Haar level satu dengan vertical zone thresholding memiliki nilai rata-rata PSNR terbesar dibandingkan dengan Kompresi citra Haar level lainnya. Citra dengan nilai PSNR terkecil adalah citra ke-6 dan citra dengan nilai PSNR terbesar adalah citra ke-7.
10 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
Zona Horizontal Thresholding (metode Haar) 40,0 level 1 35,0
PSNR(dB)
level 2 30,0 level 3 25,0
level 4
20,0
level 5
15,0
level 6 1
2
3
4
5
6
7
8
citra ke-
Gambar 8. Grafik PSNR vs order-x citra untuk zona horizontal dihilangkan Pada Gambar 8 menunjukkan rata-rata besar PSNR untuk 8 citra Standard Test Image yang dikompresi per masing-masing level berada di bawah 40 dB. Hal ini mengindikasikan bahwa nilai PSNR pada setiap level citra yang dikompresi menciptakan degradasi kualitas citra sebesar 9,787% per tiap level. Kompresi citra Haar level 1 dengan horizontal zone thresholding memiliki nilai rata-rata PSNR terbesar dibandingkan dengan Kompresi citra Haar level lainnya. Citra dengan detail horizontal terbesar adalah citra ke-3 dan citra dengan pengaruh detail terbesar adalah citra ke-4. Dibawah ini adalah tabel persentase penurunan PSNR horizontal zone thresholding.
Zona Diagonal thresholding 50,0
level 1
PSNR(dB)
45,0
level 2
40,0 35,0
level 3
30,0
level 4
25,0
level 5
20,0
level 6 1
2
3
4
5
6
7
8
9
citra ke-
Gambar 9. Grafik PSNR (dB) vs order-x citra untuk zona diagonal dihilangkan 11 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
Pada Gambar 9 menunjukkan rata-rata besar PSNR untuk 8 citra Standard Test Image yang dikompresi per masing-masing level berada di jangkauan PSNR sebesar 24 dB hingga 47 dB. Hal ini mengindikasikan bahwa detail diagonal pada setiap level citra yang dikompresi menciptakan degradasi kualitas citra yang tidak signifikan. Kompresi citra Haar level 1 dengan diagonal zone thresholding memiliki nilai rata-rata PSNR terbesar dibandingkan dengan Kompresi citra Haar level lainnya. Citra dengan pengaruh detail diagontal terkecil adalah citra ke-7 dan pengaruh detail diagonal terbesar pada citra ke-6.
PSNR(dB)
Daubechies 9/7 50,0 49,5 49,0 48,5 48,0 47,5 47,0 46,5 46,0 45,5 45,0
level 1 level 2 level 3 level 4 level 5 1
2
3
4
5
6
7
8
level 6
citra ke-
Gambar 10. Grafik PSNR (dB) vs order-x citra untuk Daubechies 9/7 Gambar 10 menunjukkan rata-rata nilai PSNR untuk delapan citra Standard Test Image yang dikompresi dari tingkat kompresi pertama hingga ke lima berada diatas 40 dB. Gambar 10 menunjukkan bahwa kualitas citra terkompresi menghasilkan distorsi citra yang tidak tampak oleh manusia. Hal tersebut ditunjukkan oleh nilai rata-rata PSNR diatas 40. Gambar 18 memiliki penurunan kualitas citra tersebar terjadi pada citra ke-1. Pengujian Kompresi Wavelet berbasis Compiler GCC Compiler GCC yang digunakan pada skripsi ini bertujuan menganalisis efek format Q pada
B.
metode kompresi wavelet Haar dan Daubechies 9/7. . Untuk mengukur performa program kompresi GCC, digunakan time yang merupakan program bawaan dari MinGW seperti diperlihatkan pada Gambar 11. 12 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
Gambar 11 Program time untuk mengukur waktu komputasi Waktu yang digunakan untuk mengkomputasi pada program kompresi wavelet adalah waktu user ditambahkan dengan waktu sys. Sehingga pada Gambar 11, waktu yang digunakan adalah 0,015 detik (15 ms). Sedangkan real disebut juga wall clock time, waktu dari mulai hingga selesai pemanggilan. Sebagai contoh, ketika program yang dieksekusi perlu melakukan interrupt I/O, maka waktu tersebut disimpan oleh real. Performa GCC Daubechies 9/7 0,12 citra ke-1 detik
0,11 citra ke-2 0,1 citra ke-3
0,09
citra ke-4
0,08 1
2 3 4 5 tingkat kompresi ke-
Gambar 12 Grafik waktu komputasi Daubechies 9/7 GCC Pada Gambar 12, Data diuji selama 10 iterasi terhadap 4 citra dengan tingkat kompresi. Gambar 12 memperlihatkan bahwa waktu komputasi tidak selalu bertambah seiring pertambahan tingkat kompresi. Sebagai contoh, waktu kompresi citra ke-1 tingkat 1 sebesar 0,094 detik, lebih besar dibandingkan dengan waktu kompresi tingkat ke-2 sebesar 0,0092. Hal ini dikarenakan karena setiap waktu eksekusi program, kondisi program yang berjalan di-backgroud OS pada mesin pengolah atau netbook berbeda-beda sehingga dari Gambar 12 hanya dapat disimpulkan bahwa jangkauan waktu komputasi yang diperlukan rata-rata kurang dari 0,115 detik dan lebih besar dari 0,08 detik.
13 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
Performa Haar GCC Diagonal 0,14 0,13 0,12 0,11 0,1 0,09 0,08 0,07
citra ke-1
detik
citra ke-2 citra ke-3 citra ke-4
1 2 3 4 5 tingkat kompresi ke-
Gambar 13 Grafik waktu komputasi haar zona diagonal Pada Gambar 13 diperlihatkan bahwa waktu komputasi tidak selalu bertambah seiring pertambahan tingkat kompresi. Hal ini dikarenakan karena setiap waktu eksekusi program, kondisi mesin berbeda-beda seperti assign RAM ketika program sedang dieksekusi, OS Process Scheduler. Waktu komputasi yang diperlukan rata-rata kurang dari 0,14 detik dan lebih besar dari 0,07 detik. Pengujian Kompresi Wavelet berbasis Arduino Mega 2560 Pengujian performa kompresi wavelet menggunakan Arduino Mega 2560 bertujuan untuk
C.
mengetahui apakah program wavelet GCC dapat diimplementasikan pada sistem dengan spesifikasi terbatas. Adapun Spesifikasi Arduino Mega 2560 sebagai berikut : 1.
Kecepatan Pemroses Sebesar 16 MHz
2.
Internal Static RAM sebesar 8 Kbyte
3.
Eksternal RAM sebesar 448 Kbyte
Pengujian dilakukan dengan cara melakukan perhitungan terhadap sebuah citra standard (Standard Test Image) dengan resolusi sebesar 8 × 8 pixel. Pengujian untuk mengetahui apakah dapat diimplementasikan pada Arduino Mega 2560 dilakukan dengan membaca hasil debugging yang digunakan pada metode kompresi wavelet Daubechies 9/7. Pada pengujian awal, program yang di-upload ke Arduino Adalah program input output management seperti diperlihatkan hasil debugging pada gambar 14. Setelah itu, fungsi-fungsi dengan metode kompresi Haar dan Daubechies 9/7 ditambahkan dan hasil debugging diperlihatkan oleh gambar 15. Setelah itu, penggunaan memory eksternal digunakan untuk 14 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
menyimpan baris citra yang telah diproses atau hasil dan citra asli seperti diperlihatkan oleh gambar 16.
Gambar 14 Hasil Debugging Input Output pada kompresi wavelet Arduino Gambar 14 memperlihatkan bahwa keluaran berupa sebuah file berekstensi CSV. Masukan bernama G88.CSV berisi nilai-nilai citra dengan jangkauan nilai -128 hingga 127 seperti diperlihatkan pada bagian tengah Gambar 14. Gambar 14 memperlihatkan bahwa Arduino Mega 2560 telah berhasil mengambil nilai pixel citra Standard Test Image beresolusi 8 x 8 dan menyimpan kembali pada SD Card. Setelah itu, pengujian dilakukan dengan meng-upload program kompresi untuk 1 baris dari citra berresolusi 8 × 8 ke Arduino. Gambar 15 memperlihatkan hasil kompresi dengan nilai LL_LH dan HL_HH yang sama antara program versi Arduino dengan program versi GCC. Program kompresi GCC dalam skripsi ini dijadikan referensi untuk program kompresi Arduino Mega 2560. Baris pertama atau indeks ke-0 digunakan sebagai masukan kemudian diproses oleh lowpass dan highpass filter serta ditampilkan pada serial monitor pada Arduino.
Gambar 15 (a) hasil kompresi Arduino dan (b)hasil kompresi GCC
15 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
Kemudian pengujian dilakukan dengan seluruh baris masukan berresolusi 8 × 8 dengan tingkat kompresi 1 dan metode daubechies 9/7 serta hasil kompresi disimpan dalam file bernama G8x8.CSV.
Gambar 16 hasil kompresi Arduino baris ke-1 Waktu Komputasi yang dibutuhkan untuk menyelesaikan kompresi Daubechies 9/7 adalah 36,4 detik dengan menampilkan hasil debug ke serial monitor dan penambahan delay untuk mengecek hasil kompresi dan kurang dari 1 detik untuk kompresi tanpa menampilkan hasil debug dan delay. D. Pengujian Kompresi Wavelet berbasis Arduino Mega 2560 Survei berikut ini bertujuan untuk mengetahui seberapa besar citra kompresi wavelet Haar dan Daubechies 9/7 dapat diterima oleh manusia. Pengukuran kualitas citra berdasarkan persepsi manusia dapat dinilai dengan metode Mean Opinion Score (MOS). Untuk mendapatkan nilainilai tersebut, citra hasil kompresi dibandingkan dengan citra referensi, citra asli. Manusia sebanyak 20 orang mensurvei memberikan nilai dengan skala: 5 (sangat bagus), 4 (cukup bagus), 3 (bagus), 2 (tidak bagus), 1 (tidak dapat digunakan). Dengan MOS dikalkulasikan dengan formula: ∑
()
(7)
16 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
Dengan i adalah nilai dan p(i) adalah probabilitas nilai atau satu per jumlah nilai. Pada survei ini digunakan 2 kompresi yaitu haar diagonal zone dan daubechies 9/7 serta 2 citra seperti diperlihatkan pada Gambar 17.
Gambar 17. citra ke-1 dan ke-2 sebagai masukan untuk survei persepsi citra kompresi [5] Tabel 2. Hasil survei persepsi kualitas citra kompresi Haar Zona Diagonal citra ke-1
citra ke-2
tingkat kompresi 1
3,9
4,3
tingkat kompresi 2
3,35
3,95
tingkat kompresi 3
2,85
3,45
tingkat kompresi 4
2,2
2,8
tingkat kompresi 5
1,8
2,35
Daubechies 9/7 citra ke-1
citra ke-2
tingkat kompresi 1
4
4,05
tingkat kompresi 2
3,85
3,8
tingkat kompresi 3
3,75
3,85
tingkat kompresi 4
3,5
3,75
tingkat kompresi 5
3,65
3,75
Berdasarkan Tabel 2, metode kompresi wavelet Daubechies 9/7 memiliki penerimaan yang baik dari penilai survei dibandingkan haar diagonal. Tingkat kompresi 1 hingga 5 daubechies 9/7 dan tingkat kompresi 1 hingga 2 dapat diterima oleh manusia. Pada haar diagonal, peningkatan
17 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
tingkat kompresi menyebabkan distorsi citra semakin tampak sehingga tingkat 3 hingga 5 dinilai tidak dapat dipergunakan sebagai citra yang baik untuk pandangan manusia. IV. KESIMPULAN Kesimpulan analisis perbandingan kinerja kompresi wavelet haar dan daubechies 9/7 berbasis MATLAB, compiler GCC dan arduino mikrokontroler: 1.
Distorsi pada citra hasil kompresi disebabkan oleh proses zone thresholding pada wavelet haar dan proses rounding pada wavelet daubechies 9/7.
2.
Metode kompresi daubechies 9/7 tingkat satu hingga lima dan haar diagonal zone tingkat satu menghasilkan citra kompresi dengan distorsi yang tidak tampak.
3.
Performa kompresi citra wavelet Haar dan Daubechies 9/7 pada GCC tidak dipengaruhi oleh peningkatan level kompresi dan citra masukan yang berbeda-beda dengan resolusi citra sama, melainkan spesifikasi mesin pengolah dan RAM (Random Access Memory).
4.
Rata-rata kecepatan program kompresi wavelet Haar dan Daubechies 9/7 pada GCC kurang dari 0,2 detik.
5.
Distorsi yang disebabkan oleh wavelet Haar vertical, horizontal tingkat satu hingga lima dan haar diagonal tingkat dua hingga lima memperlihatkan bahwa detail –detail citra banyak terdapat pada zona detail citra horizontal dan vertikal.
6.
Menurut hasil survei terhadap 20 orang, kompresi daubechies 9/7 tingkat 1-5 dan haar tingkat 1-2 dapat diterima dengan baik oleh manusia. Hal tersebut berbeda dengan Pengukuran nilai PSNR yang menunjukkan bahwa haar tingkat 1 saja yang dapat diterima oleh manusia.
7.
Penurunan PSNR pada Haar zona diagonal, horizontal dan vertikal secara berturut-turut sebesar 8,757 %, 9,378 % dan 9,105 %.
8.
Penurunan PSNR rata-rata pada Daubechies 9/7 sebesar 0,318 %.
9.
Mikrokontroler Arduino dengan keterbatasan resource dapat mengkompresi citra berresolusi 8 x 8 selama 36,4 detik untuk metode wavelet daubechies 9/7 dan detik untuk metode waveket haar dengan menampilkan hasil debug pada serial monitor dan delay untuk mempermudah melihat hasil kompresi untuk setiap baris.
10.
RAM yang tersisa dengan proses debug pada arduino mega 2560 sebesar 32730 Byte dari 52 KByte yang dapat diakses dari RAM Eksternal. Hal tersebut menyimpulkan bahwa 18 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013
proses debug menggunakan Serial.monitor membutuhkan hampir setengah dari RAM eksternal yang dapat diakses. V. SARAN Filesystem pada penelitian ini adalah FAT32. Sehingga filesystem independent yang khusus menangani citra akan mempercepat dan mengurangi jumlah konsumsi RAM. Platform yang digunakan dapat KEPUSTAKAAN [1] Gonzalez, Rafael & Woods, Richard. (2007). Digital Image Processing Third Edition. Pearson. [2] Rein S., & Reisslein, M. (2011). Low-Memory Wavelet Transforms for WirelessSensor Networks: A Tutorial. IEEE Comm. Surveys & Tutorials, vol. 13, no. 2. [3] http://www.gnu.org/software/octave/, [Online], (diakses 21 Oktober 2012 pkl. 15.58 WIB). [4] http://ruggedcircuits.com/html/quadram.html, [Online], (diakses 6 September 2012 pkl. 7.36 WIB). [5] Talukder, K., & Harada, K. (2009). Haar Wavelet Based Approach for Image Compression and Quality Assessment of Compressed Image. IAENG Int. Journal of Applied Math. [6] Rao, K. & Yip, P., (2001). The Transform and Data Compression Handbook, CRC Press.
19 Analisis perbandingan..., M. Normansyah Pnd, FT UI, 2013