PEMAMPATAN CITRA DENGAN METODE SINGULAR VALUE DECOMPOSITION (SVD)
Oleh : TB. MOCH. YULIA RAHMAN G06400036
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR 2007
PEMAMPATAN CITRA DENGAN METODE SINGULAR VALUE DECOMPOSITION (SVD)
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor
Oleh : TB. MOCH. YULIA RAHMAN G06400036
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR 2007
ABSTRAK TB. MOCH. YULIA RAHMAN. Pemampatan Citra dengan Metode Singular Value Decomposition (SVD). Dibimbing oleh FAHREN BUKHARI dan YENI HERDIYENI. Citra digital semakin banyak dibutuhkan sebagai pembawa informasi. Namun data citra membutuhkan jumlah bit yang cukup besar. Pemampatan citra dilakukan agar biaya penyimpanan dan biaya transmisi citra digital bisa dikurangi, dengan cara mengurangi data yang dibutuhkan untuk merepresentasikan citra. Metode pemampatan citra yang banyak dikembangkan yaitu berbasis Transform Coding. Pada penelitian ini dilakukan implementasi metode pemampatan citra berbasis Transform Coding yang menggunakan transformasi SVD. Bahasa Pemrograman yang dipakai adalah MATLAB 7.0. Proses pertama dalam menghasilkan file citra termampatkan adalah transformasi SVD, yang akan menghasilkan data penting dan data tidak penting berupa vektor-vektor dan nilai-nilai singular berdasarkan skema energi. Dalam penelitian ini digunakan dua nilai presentase energi citra yang dipertahankan, yaitu 95% dan 99%. Hanya data yang dianggap penting yang akan disimpan dalam file citra termampatkan. Namun sebelumnya data-data berupa nilai singular dan vektor singular ini dikuantisasi terlebih dahulu dengan kuantisasi skalar ataupun kuantisasi vektor (VQ), agar jumlah bit yang dibutuhkan untuk penyimpanan data penting ini menjadi kecil. File citra asli yang dimampatkan pada penelitian ini adalah file citra Grayscale dengan format BMP atau Bitmap. Pengujian dilakukan pada enam citra uji dengan parameter pengujian β, presentase energi citra yang dipertahankan yaitu 95% atau 0.95 dan 99% atau 0.99. Hasil percobaan yang dicatat berupa nilai Bit Per Pixel (BPP) yang menunjukkan efisiensi pemampatan, nilai kualitas citra berupa Peak Signalto-Noise Ratio (PSNR) dan waktu pemampatan citra. Hasil pemampatan citra SVD juga dibandingkan dengan hasil pemampatan citra JPEG pada BPP yang mendekati. Pemampatan citra JPEG disini dihasilkan oleh fungsi MATLAB imwrite. Sistem dibangun dengan graphical user interface (GUI) agar lebih mudah digunakan. Hasil penelitian menunjukkan bahwa SVD telah berhasil digunakan dalam upaya memampatkan citra secara lossy, dengan β adalah parameter yang digunakan untuk menentukan kualitas citra dan efisiensi pemampatan. Nilai β yang rendah menyebabkan efisiensi pemampatan semakin baik, sedangkan nilai β yang tinggi menghasilkan citra hasil pemampatan yang lebih baik dari sisi kualitas. Perbandingan dengan metode pemampatan citra JPEG menunjukkan bahwa JPEG masih lebih baik. Pada BPP yang mendekati, kualitas citra hasil pemampatan JPEG selalu lebih baik dibandingkan dengan kualitas citra hasil pemampatan SVD. Ini disebabkan JPEG menerapkan pemampatan data lebih lanjut untuk mengkodekan data hasil transformasi dan kuantisasi dengan menggunakan pemampatan data lossless. Kata kunci : pemampatan citra, transform coding, singular value decomposition.
Judul Skripsi :
PEMAMPATAN CITRA DENGAN METODE SINGULAR VALUE DECOMPOSITION (SVD)
Nama
:
Tb. Moch. Yulia Rahman
NIM
:
G06400036
Menyetujui, Pembimbing I
Pembimbing II
Ir. Fahren Bukhari, M.Sc.
Yeni Herdiyeni, S.Si., M.Kom.
NIP 131430803
NIP 132282665
Mengetahui, Dekan Fakultas Matematika Dan Ilmu Pengetahuan Alam Institut Pertanian Bogor
Prof. Dr. Ir. Yonny Koesmaryono, M.S. NIP 131473999
Tanggal Lulus:
RIWAYAT HIDUP Penulis dilahirkan di Pandeglang pada tanggal 26 Juli 1982 dari pasangan Tb. Husein Amin dan Rt. Chadidjah. Penulis merupakan anak kelima dari enam bersaudara. Penulis menyelesaikan pendidikan Sekolah Dasar pada tahun 1994 di SDN Saruni 1, Pandeglang, kemudian melanjutkan pendidikan ke SLTP Negeri 2 Pandeglang yang diselesaikan pada tahun 1997, dilanjutkan dengan pendidikan di SMU Negeri 1 Pandeglang dan lulus pada tahun 2000. Di tahun yang sama diterima masuk IPB melalui jalur Undangan Seleksi Masuk IPB (USMI). Penulis memilih Program Studi Ilmu Komputer, Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam. Pada bulan Januari sampai dengan Maret 2004 penulis berkesempatan melakukan Praktek Lapang (PL) selama dua bulan di Divisi Teknologi Informasi Puslit LIPI Biologi, Bogor .
KATA PENGANTAR Alhamdulillah, puji dan syukur penulis panjatkan kehadirat Allah SWT, karena hanya dengan izin dan kehendak-Nya penulis dapat menyelesaikan skripsi yang berjudul Pemampatan Citra Dengan Metode Singular Value Decomposition (SVD) ini. Penulis menyadari bahwa selesainya tugas akhir ini tidak terlepas dari pihak-pihak yang telah banyak membantu. Oleh karena itu penulis ingin mengucapkan terima kasih kepada : 1.
Bapak Ir. Fahren Bukhari, M.Sc., Ibu Yeni Herdiyeni S.Si., M.Kom., dan Ibu Shelvie Nidya Neyman S.Kom., M.Si. sebagai dosen pembimbing dan dosen penguji yang telah memberikan bimbingan, motivasi dan saran dalam pengerjaan tugas akhir ini. 2. Seluruh staf pengajar dan pegawai Departemen Ilmu Komputer. 3. Yudi, Adit, Yuyun, Dini, Sony, Mushtofa, Yufit, Asep, Galih, HR, Wanto, dan semua rekan Ilkomerz atas segala bantuan dan kebersamaan yang telah terjalin. 4. Fajar, Uus, Ipul, Mas Yoqi, Wisnu, Wiken, Darmawan, Restu, Tabah, Ibu Safni, Yusuf, Edwin, Anwar, Mas dimas, Nandar, Edo, dan teman-teman ex Villma, Riverside, SBR, Jagorawi 42, C14, Elbios, dan Pondok Sengked. 5. Ibu, kakak-kakak dan adik penulis, yang memberikan dorongan dan doa demi terselesaikannya tugas akhir ini. 6. Teguh, Endin, Lili, Iid, Gunawan, Haris, juga semua sahabat di Banten. Semoga tugas akhir ini dapat bermanfaat dan semoga Allah SWT membalas budi baik semua pihak yang telah membantu penulis. Amin. Bogor, Juli 2007
Tb. Moch. Yulia Rahman
DAFTAR ISI Halaman DAFTAR GAMBAR .................................................................................................................................. viii DAFTAR LAMPIRAN............................................................................................................................... viii PENDAHULUAN...........................................................................................................................................1 Latar Belakang..............................................................................................................................1 Tujuan ...........................................................................................................................................1 Ruang Lingkup .............................................................................................................................1 Manfaat .........................................................................................................................................1 TINJAUAN PUSTAKA .................................................................................................................................1 Citra Digital ..................................................................................................................................1 Pemampatan Citra.........................................................................................................................2 Singular Value Decomposition (SVD).........................................................................................2 Kuantisasi Skalar Seragam ...........................................................................................................3 Vector Quantization (VQ) ............................................................................................................4 Algoritma Linde-Buzo-Gray (LBG).............................................................................................4 Multistage VQ ...............................................................................................................................5 Penerapan SVD dalam Pemampatan Citra...................................................................................5 Metode Pemampatan Citra JPEG .................................................................................................5 Kriteria Pengukuran Hasil Pemampatan ......................................................................................6 METODE PENELITIAN................................................................................................................................6 Encoder SVD ................................................................................................................................7 Decoder SVD................................................................................................................................7 Pembentukan Codebook ...............................................................................................................8 Implementasi.................................................................................................................................8 HASIL DAN PEMBAHASAN......................................................................................................................8 Pembentukan Codebook ...............................................................................................................8 PSNR dan BPP..............................................................................................................................8 Waktu Pemampatan Citra.............................................................................................................9 Perbandingan Pemampatan Citra SVD dengan JPEG .................................................................9 KESIMPULAN DAN SARAN................................................................................................................... 10 Kesimpulan .................................................................................................................................10 Saran............................................................................................................................................10 DAFTAR PUSTAKA .................................................................................................................................. 11
vii
DAFTAR GAMBAR Halaman 1 2 3 4 5 6 7 8 9
Representasi citra mxn ....................................................................................................................2 Encoder dan decoder dalam VQ .....................................................................................................4 Multistage VQ..................................................................................................................................5 Skema Penelitian .............................................................................................................................7 Grafik Beta terhadap BPP ...............................................................................................................9 Grafik Beta terhadap PSNR ............................................................................................................9 Grafik Beta terhadap waktu pengkodean .......................................................................................9 Grafik Beta terhadap waktu pendekodean .....................................................................................9 Citra hasil pemampatan Lena .......................................................................................................10
DAFTAR LAMPIRAN Halaman 1 Citra yang digunakan dalam pembentukan codebook...................................................................13 2 Gambar antar muka program pemampatan citra SVD. (a) Menu pemampatan citra (b) Menu rekonstruksi citra ..........................................................................................................14 3 Citra Airplane dan hasil-hasil pemampatan ..................................................................................15 4 Citra Barbara dan hasil-hasil pemampatan....................................................................................16 5 Citra Bridge dan hasil-hasil pemampatan ....................................................................................17 6 Citra Cameraman dan hasil-hasil pemampatan.............................................................................18 7 Citra Peppers dan hasil-hasil pemampatan ...................................................................................19
viii
PENDAHULUAN Latar Belakang Pada saat ini penampilan informasi dalam bentuk citra semakin banyak dibutuhkan. Hal ini tidak lepas dari karakteristik citra yang cenderung mudah dipahami. Surat kabar, televisi, dan situs web di internet adalah sebagian contoh media yang banyak menampilkan informasi dalam bentuk citra. Dibandingkan dengan citra dalam media konvensional seperti kertas, citra digital lebih mudah untuk diproses sesuai kebutuhan. Selain itu citra digital lebih mudah dalam hal transmisinya ke tempat lain. Namun demikian, jumlah bit yang dibutuhkan oleh data citra cukup besar, dan akibatnya waktu yang dibutuhkan dalam transmisinya ke tempat lain melalui saluran komunikasi juga cukup lama. Oleh karena itu upaya untuk memperkecil kebutuhan ruang penyimpanan dari citra digital menjadi sangat penting, agar dalam transmisinya melalui saluran komunikasi juga menjadi lebih cepat. Pemampatan citra bertujuan meminimalkan kebutuhan ruang penyimpanan untuk merepresentasikan citra digital. Prinsip umum yang digunakan pada proses pemampatan citra adalah mengurangi redundansi data di dalam citra sehingga ruang penyimpanan yang dibutuhkan untuk merepresentasikan citra menjadi lebih sedikit daripada representasi citra semula (Munir, 2004). Salah satu metode pemampatan citra yang banyak diterapkan adalah Transform Coding. Pada pemampatan citra berbasis Transform Coding, matriks citra didekomposisi dengan tujuan untuk memadatkan sebanyak mungkin informasi citra ke dalam sejumlah kecil koefisien transformasi. Dengan demikian koefisien-koefisien transformasi lain yang kurang penting yaitu koefisien transformasi yang memuat sedikit informasi citra dapat dikuantisasi secara kasar atau bahkan diabaikan, sehingga efisiensi pemampatan bisa lebih baik. Singular Value Decomposition (SVD) merupakan suatu teknik transformasi yang penting dalam pemampatan citra, karena transformasi ini memungkinkan efisiensi pemadatan informasi yang optimal untuk sembarang citra (Jain, 1989). Namun selain koefisien transformasi yang berupa nilai singular, proses transformasi citra dengan SVD juga menghasilkan vektor-vektor singular yang juga perlu disimpan bersama dengan koefisien transformasi. Vector Quantization (VQ) adalah teknik kuantisasi yang bekerja pada vektor. Pada VQ, pemampatan data vektor didapat
dengan hanya menyimpan indeks dari vektor tersebut, dimana dalam pengkodean dan pendekodeannya mengacu pada sejenis tabel yang disebut codebook . Pemampatan citra SVD yang Hybrid dengan DCT dikembangkan oleh Wongsawat et al (2004), menggunakan Adaptive Multistage Vector Quantization (AMVQ) dalam pengkodean vektor-vektor singular SVD. Karya ilmiah ini akan membahas dan mendemonstrasikan kerja pemampatan citra SVD berdasarkan skema yang diperkenalkan oleh Wongsawat et al. (2004). Tujuan Adapun tujuan dilakukannya penelitian ini adalah : 1. Mempelajari dan mengimplementasikan metode pemampatan citra berbasiskan transformasi Singular Value Decomposition (SVD). 2. Menganalisa kinerja metode pemampatan citra SVD yang diukur dari kualitas citra hasil pemampatan (Peak Signal To Noise Ratio) dan efisiensi pemampatan (Bit Per Pixel), serta membandingkannya dengan kinerja metode pemampatan citra Joint Photographic Experts Group (JPEG). Ruang Lingkup Dalam penelitian ini dibuat suatu sistem yang dapat memampatkan citra dan merekonstruksi citra hasil pemampatan dengan metode SVD, dimana citra asli yang akan dimampatkan adalah citra dengan format bitmap (BMP) 8-bit per pixel skala keabuan (grayscale). Pemampatan citra terutama difokuskan pada citra digital fotografi. Manfaat Hasil penelitian ini diharapkan dapat memberikan alternatif dalam pemilihan metode pemampatan citra yang terbaik.
TINJAUAN PUSTAKA Citra Digital Sebuah citra dapat didefinisikan sebagai sebuah fungsi dua dimensi f(x,y), dimana x dan y menunjukkan koordinat spasial, dan nilai f pada sembarang koordinat (x,y) disebut intensitas atau kecerahan citra pada titik tersebut. Ketika x, y, dan nilai f berbentuk diskret berhingga, maka citra itu disebut sebuah citra digital (Gonzales & Woods, 2002). Sebuah citra digital dapat ditampilkan dalam bentuk matriks berdimensi m × n, dengan m dan n masing-masing menunjukkan jumlah
1
baris dan kolom matriks tersebut seperti diilustrasikan pada Gambar 1. y f(x1,y1) f(x1,y2)
. .
.
f(x2,y1)
. . . f(xm,y1) x
f(x1,yn)
.
Citra m × n
. .
.
.
.
f(xm,yn)
1 pixel
Gambar 1. Representasi citra m × n Setiap elemen matriks tersebut menunjukkan nilai elemen citra (pixel). Suatu citra dengan format 8 bit memiliki 256 intesitas warna pada setiap elemen citranya, nilai 0 untuk tingkat paling gelap dan 255 untuk tingkat yang paling terang (Gonzales & Woods 2002). Pemampatan Citra Pada umumnya representasi citra digital membutuhkan ruang penyimpanan yang cukup besar. Sebagai contoh sebuah citra bitmap 1024 × 768 pixel dengan format 8-bit membutuhkan 768 KB ruang penyimpanan. Besarnya jumlah data yang berkaitan dengan informasi citra digital merupakan sebuah masalah yang bisa mengakibatkan mahalnya biaya penyimpanan, misalnya space dalam harddisk, dan biaya transmisi. Pemampatan citra dapat mengatasi masalah besarnya kebutuhan ruang penyimpanan citra dan lamanya waktu transmisi. Hal utama dalam proses pengurangan jumlah data citra adalah penghilangan redundansi data (Gonzales & Woods, 2002). Dua buah citra digital dengan jumlah data yang berbeda dapat merepresentasikan satu informasi yang sama. Ini artinya salah satu citra mengandung redundansi data, yaitu memuat data yang tidak memiliki informasi yang relevan atau data yang hanya mengulang sesuatu yang telah diketahui sebelumnya. Pemampatan citra dicapai dengan mengurangi ataupun menghilangkan satu atau lebih diantara ketiga jenis redundansi data sebagai berikut (Gonzales & Woods, 2002) : 1. Coding Redundancy, adalah redundansi yang terjadi karena jumlah bit yang
digunakan untuk merepresentasikan sebuah kode terlalu banyak. 2. Interpixel Redundancy, adalah redundansi yang terjadi karena tingginya korelasi antara satu pixel dengan pixel lainnya, artinya nilai intensitas warna pixel yang saling bersebelahan seringkali sama. Sehingga sebenarnya nilai intensitas warna pixel dapat diprediksi dari intensitas warna pixel tetangganya. 3. Psychovisual Redundancy, adalah redundansi yang terjadi karena mata manusia tidak merespon dengan kepekaan yang sama terhadap semua informasi visual. Beberapa informasi memiliki tingkat kepentingan yang lebih rendah dibandingkan dengan informasi lain. Sehingga bisa dihilangkan tanpa berpengaruh signifikan terhadap pemahaman atas citra secara keseluruhan. Metode pemampatan citra dapat diklasifikasikan ke dalam dua kelompok besar yaitu (Munir, 2004) : 1. Metode lossless, adalah metode pemampatan citra yang merekonstruksi citra hasil pemampatan identik pixel demi pixel dengan citra semula yang belum dimampatkan. Tidak ada informasi yang hilang akibat pemampatan. Metode ini cocok untuk memampatkan citra yang mengandung informasi penting yang tidak boleh rusak akibat pemampatan. Misalnya memampatkan gambar hasil diagnosa medis. 2. Metode lossy, adalah metode pemampatan citra yang merekonstruksi citra hasil pemampatan hampir sama dengan citra semula. Biasanya ada sedikit informasi yang hilang akibat pemampatan, tetapi dapat ditolerir oleh persepsi mata. Dengan menggunakan metode ini, efisiensi pemampatan bisa lebih baik. Singular Value Decomposition (SVD) SVD adalah suatu teknik untuk mentransformasi matriks. Pada pemampatan citra berbasiskan Transform Coding, transformasi matriks citra dilakukan untuk memetakan sinyal citra menjadi representasi lain yang lebih cocok untuk pemampatan. Dalam hal ini matriks citra ditransformasi sehingga sebagian besar dari informasi citra terkonsentrasi ke dalam koefisien-koefisien transformasi yang jumlahnya relatif kecil, untuk kemudian dikuantisasi dan dikodekan (Jain, 1989). Tujuan dari proses transformasi adalah untuk menemukan korelasi antar pixel, atau untuk memadatkan sebanyak mungkin
2
informasi kedalam sejumlah kecil koefisien transformasi. Proses kuantisasi kemudian secara selektif mengeliminasi atau mengkuantisasi secara lebih kasar koefisien yang membawa informasi paling sedikit. Koefisien-koefisien ini memiliki pengaruh yang paling kecil terhadap kualitas citra yang akan direkonstruksi (Gonzales & Woods, 2002). Transformasi SVD memungkinkan sebagian besar informasi citra termuat dalam sedikit koefisien transformasi, sedangkan sebagian besar koefisien lain menjadi tidak penting. Jika A adalah sebuah matriks dengan dimensi m × n, maka SVD dari A adalah (Wongsawat et al, 2004):
bisa didapatkan hanya dengan menggunakan sebagian kecil nilai singular, atau dengan k yang jauh lebih kecil dari r. Besarnya energi atau informasi yang dikandung oleh matriks aproksimasi dapat dihitung (Wongsawat et al, 2004) : k
ε k = ∑ λi , i =1
dimana
λi = σ i 2 = akar ciri dari AA
n
∑∑
2
A(i, j ) − A '(i, j ) =
i =1 j =1
dimana U dan V adalah matriks orthogonal yang masing-masing berdimensi m × m dan n × n, dan Σ adalah matriks koefisien transformasi m × n yang semua elemen selain diagonalnya bernilai 0.
⎛ a11 K a1k K a1n ⎞ ⎜ ⎟ A=⎜ M O M ⎟ ⎜a ⎟ ⎝ m1 L amk L amn ⎠ U = ( u1 u2 ... uk ... um )
V T = ( v1 v2 ... vk ... vn )
T
Σ = diag (σ1, ... ,σmin(m,n)) Dimana σi adalah nilai singular ke-i. ui adalah vektor kolom ke-i dari U dan vi adalah vektor kolom ke-i dari V. Vektor ui disebut vektor singular kiri dari σi, sedangkan vektor vi disebut vektor singular kanan dari σi. Vektor-vektor singular kiri tidak lain adalah vektor ciri-vektor ciri dari AAT,, sedangkan vektor-vektor singular kanan adalah vektor cirivektor ciri dari ATA. Akar ciri-akar ciri dari AAT atau ATA adalah kuadrat dari nilai-nilai singular untuk matriks A. Nilai-nilai singular σi ini tidak lain adalah elemen-elemen diagonal dari matriks Σ dan tersusun dalam urutan dari besar ke kecil. Oleh karena itu kita bisa mendapatkan aproksimasi A dengan menggunakan SVD sebagian:
A ' = U k ∑ k Vk
T
Dalam hal ini A’ adalah matriks aproksimasi rank-k untuk matriks A. Uk dan Vk adalah matriks yang diambil dari k kolom pertama U dan V dan Σk = diag (σ1, ... ,σk) dengan k
T
atau A A
Sedangkan Square Error antara matriks A dengan matriks aproksimasi A’ adalah hasil penjumlahan dari akar ciri yang diabaikan, yaitu (Dapena & Ahalt,2004) : m
A = U ∑V T
T
dimana
r
∑λ
i = k +1
i
λi = σ i 2 .
Kuantisasi Skalar Seragam Nilai singular-nilai singular hasil transformasi SVD yang akan disimpan nilainya bersifat kontinu dan intervalnya cukup besar. Ini mengakibatkan besarnya jumlah bit yang dibutuhkan dalam penyimpanan. Oleh karena itu perlu dilakukan kuantisasi. Kuantisasi skalar merupakan proses pemetaan sebuah nilai skalar terhadap nilai tertentu yang dianggap mewakilinya, dimana nilai yang mungkin mewakili menjadi terbatasi banyaknya. Nilainilai ini disebut level rekonstruksi. Selanjutnya nilai ini diperkecil menjadi suatu nilai indeks sehingga bit yang diperlukan untuk menyimpannya menjadi berkurang. Indeks inilah yang dapat digunakan pada proses dekuantisasi untuk mengetahui level rekonstruksi mana yang mewakili skalar awal tadi. Sebuah pengkuantisasi skalar seragam llevel memiliki l+1 level keputusan d0, d1, ... , dl, dan l level rekonstruksi r0, r1, ... , rl-1. di membagi range data ke dalam l interval [d0, d1) [d1, d2) ... [dl-1, dl), dengan panjang interval yang sama yaitu (Spielman, 1996):
∆=
dl − d 0 l
dimana dl dan d0 masing-masing adalah nilai maksimum dan nilai minimum dari data yang dikuantisasi. Kuantisasi terhadap sebuah nilai a artinya menemukan interval [di, di+1) yang memuat a dan mengganti a dengan indeks i.
⎢ a − d0 ⎥ i=⎢ ⎥ ⎣ ∆ ⎦
3
Sedangkan proses dekuantisasi menerjemahkan nilai indeks i ke dalam level rekonstruksi ri yang merupakan rataan dari interval yang relevan, menggunakan rumus :
di + di +1 , 2 d i = d 0 + i∆
ri =
Vector Quantization (VQ) Selain nilai singular, pemampatan citra SVD juga mensyaratkan pengkodean vektor-vektor singular yang bersesuaian. Vektor-vektor ini dikodekan dengan sebuah teknik kuantisasi yang disebut Vector Quantization (VQ). VQ merupakan teknik kuantisasi yang dilakukan pada sebuah blok, atau sebuah vektor, dari nilainilai dalam satu waktu. VQ memetakan vektorvektor berdimensi u pada ruang vektor Ru ke dalam sebuah himpunan terhingga vektorvektor Y = {yi : i = 1, 2,...,N} dalam Ru. Setiap vektor yi disebut codevector atau codeword, dan himpunan dari semua codeword disebut codebook. VQ terdiri dari dua operasi, yaitu encoder dan decoder. Encoder menerima vektor input dan menghasilkan output berupa indeks dari codeword yang memberikan distorsi paling minimum. Distorsi paling minimum ini ditentukan berdasarkan jarak euclid antara vektor input dengan setiap codeword dalam codebook. Jarak euclid antara vektor input x dengan codeword yi didefinisikan sebagai :
d ( x, yi ) =
u
∑ (x j =1
j
− yij ) 2
dimana xj adalah elemen ke-j dari vektor input x, yij adalah elemen ke-j dari codeword yi, dan u adalah dimensi vektor. Setelah codeword terdekat ditemukan, indeks dari codeword inilah
yang akan disimpan dalam media penyimpanan data digital atau dikirimkan melalui saluran komunikasi (Qasem, 2005). Indeks yang menunjukkan codeword membutuhkan ruang penyimpanan yang lebih kecil, sehingga terjadilah pemampatan data. Ketika decoder menerima indeks ini, decoder akan mengubahnya kembali menjadi codeword yang bersesuaian dengan menggunakan codebook yang identik dengan codebook pada encoder. Sebagai contoh, encoder dan decoder VQ dapat dilihat pada Gambar 2. Algoritma Linde-Buzo-Gray (LBG) Codebook yang akan diacu dalam proses VQ dibentuk berdasarkan algoritma LBG. Algoritma ini diperkenalkan oleh Linde, Buzo, dan Gray pada tahun 1980. LBG merupakan salah satu algoritma iteratif dalam pembentukan codebook dari sebuah himpunan vektor training. Adapun langkah-langkahnya adalah sebagai berikut (Qasem, 2005): 1. Tentukan jumlah codeword N atau ukuran codebook yang akan dibuat. 2. Bentuk codebook awal dengan cara memilih N codeword secara acak dari training vector. 3. Dengan menggunakan jarak euclid, kelompokkan vektor input pada codeword. Vektor input menjadi satu kelompok dengan codeword yang memiliki jarak euclid minimum. Rata–rata dari jarak euclid setiap vektor terhadap codewordnya disebut dengan distorsi rata–rata dari codebook tersebut. Variabel inilah yang akan digunakan untuk menentukan tingkat kecocokan dari sebuah codebook.
Gambar 2. Encoder dan Decoder dalam VQ (Qasem, 2005)
4
4. Hitung himpunan codeword yang baru berdasarkan kelompok–kelompok yang sudah terbentuk. Codeword baru dibentuk dengan mencari rata–rata dari tiap elemen dari seluruh vektor yang merupakan anggota dari kelompok tersebut.
yi =
1 m ∑ xij m j =1
dimana i merupakan indeks komponen dari tiap–tiap vektor, dan m adalah banyaknya vektor yang berada pada kelompok tersebut. 5. Ulangi langkah 3 dan 4 sampai codebok tidak berubah atau perubahannya kecil. Perubahan codebook dilihat dari rataan distorsi antara training vector dengan codebook. Jika selisih distorsi ternormalisasi dari sebuah iterasi dengan iterasi selanjutnya lebih kecil dari suatu nilai batas, maka algoritma dihentikan (Khan & Smith, 2000). Seringkali dalam pengelompokkan vektor input menghasilkan satu atau lebih codeword tidak memiliki anggota. Keadaan ini dapat diatasi dengan beberapa cara, diantaranya dengan memecah codeword yang memiliki anggota paling banyak menjadi dua untuk menggantikan codeword yang tidak memiliki anggota (Khan & Smith, 2000). Multistage VQ Ide dasar Multistage VQ adalah untuk membagi tugas pengkodean VQ menjadi beberapa tingkat berurutan. Tingkat pertama melakukan aproksimasi level pertama dari vektor input. Aproksimasi kemudian diperbaiki oleh aproksimasi level kedua yang muncul pada tingkat kedua, untuk kemudian diperbaiki lagi pada tingkat ketiga, dan seterusnya (Khan & Smith, 2000). Pembentukan codebook adalah sebagai berikut: sebuah himpunan vektor training digunakan untuk membentuk codebook pertama. Dengan menggunakan codebook ini, sebuah himpunan vektor error dihitung dari
a)
b)
Gambar 3. Multistage VQ. a) encoder, b) decoder
aproksimasi vektor training oleh codebook. Himpunan vektor error ini kemudian digunakan untuk membentuk codebook untuk tingkat 2, dan seterusnya. Prosedur pengkodeannya dijelaskan dalam gambar 3. Dalam algoritma encoder, pada awalnya vektor input x akan diaproksimasi dengan menggunakan codebook pertama C1 . Selanjutnya vektor error r1 dihitung dan codebook tingkat kedua C2 digunakan untuk mengaproksimasi vektor error tingkat pertama r1, dan seterusnya. Algoritma decoder merekonstruksi vektor aproksimasi xˆ secara sederhana dengan penjumlahan vektor. Penerapan SVD dalam Pemampatan Citra Sebuah citra digital dapat direpresentasikan dengan sebuah matriks m × n pixel. Oleh karena itu maka matriks citra dapat pula ditransformasi SVD dan diaproksimasi rank-k oleh sebuah matriks baru yang dibangun dengan memakai hanya sebagian kecil nilai singular (yaitu sebanyak k) dan vektor singular yang bersesuaian. Aproksimasi ini adalah pemampatan selama jumlah bit yang dibutuhkan untuk menyimpan nilai-nilai singular dan vektor-vektor singular yang relevan lebih kecil dibandingkan dengan jumlah bit yang dibutuhkan oleh citra aslinya. Konsep dasar pemampatan citra dengan SVD adalah penggunaan rank-k sekecil mungkin dalam membangun matriks aproksimasi dan pengkodean vektor singular dengan ukuran codebook yang tidak terlalu besar dalam VQ, sehingga diharapkan efisiensi pemampatan yang baik bisa dicapai. Namun demikian dalam penerapannya harus diperhitungkan secara bijak agar kualitas citra hasil pemampatan masih cukup baik. Metode Pemampatan Citra JPEG JPEG adalah metode pemampatan citra standar yang umum digunakan pada citra fotografi. Nama JPEG merupakan singkatan dari Joint Photographic Experts Group, nama dari komite yang melakukan standarisasi terhadap metode ini (Wikipedia, 2007). Struktur Encoder JPEG adalah sebagai berikut (Bovik, 2000): 1. Unit transformasi sinyal DCT. Pada bagian ini dilakukan penghitungan matriks koefisien DCT dari setiap blok 8 × 8 pixel, sehingga informasi citra dipadatkan kedalam sejumlah kecil koefisien DCT. 2. Pengkuantisasi. Pengkuantisasi memetakan setiap koefisien DCT ke dalam sebuah level dari bilangan berhingga. Ini dilakukan dengan membagi
5
setiap elemen dari matriks koefisien DCT dengan sebuah elemen yang bersesuaian dari sebuah matriks kuantisasi 8 × 8 yang ditentukan dengan sebuah faktor kualitas. Semakin kecil faktor kualitas maka nilainilai elemen matriks kuantisasi semakin besar, sehingga nilai koefisien DCT yang berubah menjadi 0 akan semakin banyak. 3. Unit pemetaan koefisien-ke-simbol. Koefisien yang telah dikuantisasi dipetakan ke simbol agar pengkodeannya efektif. Matriks koefisien DCT yang telah di kuantisasi dibaca secara zigzag scan, sehingga menghasilkan rangkaian nilai 0 yang bisa dikodekan secara efisien dengan menggunakan Run Length Coding. 4. Unit pengkodean entropy. Bagian ini menentukan codeword yang tepat bagi simbol input, dan menghasilkan aliran bit yang harus disimpan. Prinsipnya adalah simbol yang sering muncul diwakili oleh codeword yang lebih pendek, agar bit yang dibutuhkan bisa lebih kecil. Pengkodean yang dilakukan yaitu menggunakan Huffman Coding. Agar dapat menampilkan citra hasil pemampatan JPEG, decoder JPEG melakukan fungsi-fungsi kebalikan dari fungsi-fungsi pada Encoder. Kriteria Pengukuran Hasil Pemampatan Parameter yang akan diamati untuk mengukur efisiensi algoritma pemampatan adalah: • Kualitas pemampatan. Kualitas sebuah citra bersifat subyektif dan relatif, bergantung pada pengamatan orang yang menilainya. Kualitas hasil pemampatan citra dapat diukur secara kuantitatif dengan menggunakan besaran PSNR (Peak Signal To Noise Ratio) dalam satuan decibles (dB). PSNR dihitung untuk mengukur perbedaan antara citra asli dengan citra hasil pemampatan, dengan rumus (Munir, 2004):
⎛ 255 ⎞ PSNR = 20 × log10 ⎜ ⎟ ⎝ rms ⎠ dengan nilai 255 menunjukkan nilai sinyal terbesar pada citra digital dan rms adalah akar pangkat dua dari selisih antara citra asli dengan citra hasil pemampatan. Nilai rms dihitung dengan rumus (Munir, 2004): m
n
∑∑ ( a
ij
rms =
− a 'ij
i =1 j =1
m×n
)
2
yang dalam hal ini a dan a’ masing-masing menyatakan nilai pixel citra asli dan nilai pixel citra hasil pemampatan, sedangkan m dan n masing-masing adalah dimensi baris dan dimensi kolom dari matriks citra. Semakin besar nilai PSNR, semakin bagus kualitas pemampatannya. Nilai PSNR yang umum dalam pemampatan citra berkisar antara 30-40 dB (Wikipedia, 2007). • Efisiensi Pemampatan. Keefisienan pemampatan dapat dilihat dari jumlah rata-rata bit per pixel (BPP) pada sebuah citra hasil pemampatan. C ukuran file termampatkan = banyaknya pixel pada citra N Ukuran file termampatkan C yaitu dalam satuan bit. bpp =
METODE PENELITIAN Tahapan pemrosesan yang dilakukan dalam pemampatan citra adalah pengkodean (encoding), yang memiliki fungsi untuk memetakan citra menjadi kode, dan pendekodean (decoding) dengan fungsi memetakan kembali kode menjadi citra. Adapun skema penelitian yang dilakukan dapat dilihat pada Gambar 4. Encoder SVD Encoder SVD memilah citra asli ke dalam blok-blok subbagian citra berukuran 8 × 8 pixel. Selain karena lebih umum, ukuran blok ini juga dipilih dengan pertimbangan langkah VQ akan bekerja pada vektor 1 × 8. Ukuran lebih kecil dari ini mengurangi efisiensi pemampatan vektor, sementara jika lebih besar sangat memberatkan proses pembentukan codebook. Langkah selanjutnya akan menentukan kualitas citra hasil pemampatan dan BPP yang dibutuhkan. Ini dilakukan dengan cara memilih nilai singular mana saja yang perlu disimpan dan nilai singular mana yang dapat diabaikan (selanjutnya dianggap nol). Pemilihan nilai singular yang dianggap penting adalah berdasarkan presentase informasi. Tingkat kepentingan nilai singular dihitung mulai dari nilai singular pertama dengan acuan nilai batas. Jika kuadrat dari nilai nilai singular pertama melebihi nilai batas, maka hanya nilai singular pertama yang dipertahankan. Namun jika tidak, jumlah nilai dari kuadrat nilai singular pertama dan kuadrat nilai singular kedua dihitung. Proses ini berlanjut sampai penjumlahan nilainilai singular kuadrat melebihi nilai batas. Nilai batas disini adalah 95% atau 99% dari total
6
ENCODER Nilai Singular SQ Transformasi SVD dan pemilihan rank dari blok 8x8
Citra Asli
SQ
Hitung MSE dari Vektor Singular output
Multistage VQ Vektor Singular
Codebook
DECODER Nilai Singular SQ-1
Rekonstruksi Citra Hasil Pemampatan
SQ-1
Rekonstruksi Blok 8x8
Vektor Singular
Multistage VQ-1 Vektor Singular
Codebook
Gambar 4. Skema penelitian energi atau informasi. Seperti yang terlihat pada rumus : k
8
i =1
i =1
ε k = ∑σ i2 ≥ β ∑σ i2 dimana k = 1,...,8 dan β = 0.95 atau 0.99 Proses ini menghasilkan berapa banyak nilai singular yang signifikan agar blok aproksimasi memiliki 95% atau 99% informasi. Banyaknya nilai singular signifikan menunjukkan rank k yang akan dipakai dalam aproksimasi matriks blok citra. Langkah selanjutnya adalah menyimpan k dengan menggunakan 3 bit. Nilainilai singular yang bersesuaian dikodekan dengan menggunakan kuantisasi skalar seragam, masing-masing 8, 7, 7, 6, 4, 4, 4 bit. Dalam penelitian ini besarnya ukuran codebook untuk pengkodean vektor-vektor singular hasil transformasi SVD mengacu pada ukuran codebook yang dipakai oleh Wongsawat et al (2004). Vektor singular kiri dan vektor Tabel 1. Ukuran codebook Vektor Singular I (u1&v1) Alokasi ukuran codebook
Adaptive Multistage 256,64,32
singular kanan dikodekan dengan menggunakan codebook yang sama yang ditraining dengan menggunakan algoritma LBG. Adapun alokasi ukuran codebook dapat dilihat pada Tabel 1. Khusus untuk vektor-vektor singular pertama dan kedua dipakai adaptive multistage VQ. Pada pengkodean vektor singular pertama, jika MSE antara vektor input dengan vektor yang akan mewakilinya lebih dari 0.01, maka VQ tidak jadi digunakan. Selanjutnya elemenelemen vektor akan dikodekan dengan kuantisasi skalar 8 bit. Untuk vektor singular kedua, jika MSE pengkodean vektor dengan VQ melebihi 0.1, maka elemen-elemen vektor akan dikodekan dengan kuantisasi skalar 7 bit. Percobaan dilakukan pada enam file citra uji bitmap 8-bit grayscale. Pada percobaan tadi, akan dicatat hasil-hasil berupa nilai-nilai PSNR dan BPP. Dari hasil-hasil yang didapat ini diharapkan dapat ditarik kesimpulan mengenai keefektifan metode pemampatan citra menggunakan SVD.
Vektor Singular II (u2&v2)
Vektor Singular III (u3&v3)
Vektor Singular IV (u4&v4)
Vektor Singular V (u5&v5)
Vektor Singular VI (u6&v6)
Vektor Singular VI I (u7&v7)
Adaptive Multistage 128,64
Multistage 128,64
32
32
16
4
7
Decoder SVD Decoder menerjemahkan data citra termampatkan dan bekerja merekonstruksi satu demi satu blok citra 8 × 8 pixel dari informasi yang didapatkan. Untuk masing-masing blok, pada awalnya decoder membaca nilai yang menunjukkan banyaknya nilai singular penting. Bit selanjutnya adalah indeks dari VQ untuk vektor singular pertama. Selanjutnya indeks ini dipakai untuk merekonstruksi aproksimasi dari vektor singular pertama. Untuk nilai singular, proses rekonstruksinya menggunakan invers dari kuantisasi skalar. Proses seperti ini berulang untuk masing-masing vektor singular dan nilai singularnya sampai matriks Uk, Σk dan Uk × Σk × VkT VkT direkonstruksi. Perkalian menghasilkan rekonstruksi blok 8 × 8 pixel. Pada akhirnya citra hasil pemampatan yang direkonstruksi tidak sama persis dengan citra asli. Pembentukan Codebook Semua codebook yang dipakai dalam penelitian ini dibentuk dari vektor-vektor training yang berasal dari empat buah citra, yaitu couple.bmp, boat.bmp, goldhill.bmp, dan mountain.bmp. Keempat citra tersebut dapat dilihat pada Lampiran 1. Prosedur training dijelaskan sebagai berikut : 1. Vektor-vektor singular u dan v dari keempat citra training dihitung pada ukuran blok 8 × 8 pixel. Vektor-vektor singular ini kemudian dikelompokkan berdasarkan nomor vektornya. Dalam hal ini u dan v tidak dipisahkan, sehingga didapat 8 kelompok vektor singular. 2. Lakukan training VQ terhadap masingmasing kelompok vektor training, bentuk codebook dengan ukuran tertentu sesuai nomor vektor dengan menggunakan algoritma LBG.
Implementasi dari metode ini dilakukan pada komputer dengan spesifikasi sebagai berikut: 1. Perangkat keras: • Prosesor Intel Celeron 1.8 GHz • Memori DDR 256 MB • Harddisk 80 GB 7200 rpm 2. Perangkat lunak: • Sistem Operasi Windows XP • Matlab 7.0 Matlab digunakan sebagai lingkungan pemrograman untuk penelitian ini karena Matlab dilengkapi dengan berbagai fungsifungsi yang diperlukan untuk mengimplementasikan metode pada penelitian ini. Fungsi-fungsi Matlab yang penting dalam penelitian ini antara lain: • Fungsi imread, digunakan untuk membaca file citra input yang akan dimampatkan, berformat BMP menjadi sebuah data matriks. • Fungi imshow yang dipakai untuk menampilkan citra hasil pemampatan. • Fungsi svd, untuk penghitungan matriks-matriks svd. • Fungsi-fungsi yang berkaitan dengan pembacaan dan penulisan file data biner yang merupakan data citra termampatkan, seperti: fungsi fopen, fclose, fwrite, fread, dan ftell. Fungsi pembentukan codebook menggunakan progam buatan Roger Jang yang menerapkan algoritma LBG. Program ini didownload dari alamat http://neural.cs.nthu.edu.tw/jang/matlab/toolbox /DCPR/vqLBG.m. Adapun tampilan antar muka program pemampatan citra ini dapat dilihat pada Lampiran 1.
HASIL DAN PEMBAHASAN Implementasi Untuk mengimplementasikan metode pemampatan citra ini, akan digunakan perangkat lunak Matlab 7.0 sebagai lingkungan pemrogramannya. Alasan digunakannya perangkat lunak ini karena Matlab merupakan bahasa pemrograman yang dirancang untuk memudahkan operasi dengan data-data numerik dan matriks. Dalam penelitian ini, akan dicoba untuk dibuat fungsi dan aplikasi yang mencoba memampatkan ukuran data citra dari input file citra asli yang diberikan menggunakan metode yang telah dijelaskan di atas.
Pembentukan Codebook Dari keempat citra training didapatkan 8 kelompok vektor singular yang masing-masing sebanyak 34992 buah. Waktu total yang dibutuhkan dalam pembentukan codebook adalah + 21 menit. Codebook disimpan dalam format .mat dan dipandang sebagai satu kesatuan dengan program encoder-decoder pemampatan citra SVD. PSNR dan BPP Citra yang digunakan adalah citra Lena, Barbara, Peppers, dan Airplane (resolusi 512 × 512), serta Bridge dan Camera (resolusi 256 × 256), semua citra dalam format bitmap 8-bit
8
Tabel 3 Waktu pemampatan dan pengembalian citra β = 0.95 β = 0.99 Citra Enc.(s) Dec.(s) Enc.(s) Dec.(s) Airplane 17.6 6.0 18.8 6.5 Barbara 18.1 6.2 22.3 7.8 Bridge 4.9 1.5 6.8 2.3 Camera 5.0 1.6 5.7 1.9 Lena 19.3 6.7 22.0 7.7 Peppers 18.1 6.2 21.3 7.2 Waktu Pengkodean (detik)
Tabel 2. PSNR dan BPP hasil pemampatan citra β Citra SVD JPEG BPP PSNR BPP PSNR 0.95 Airplane 0.879 28.882 0.881 37.467 Barbara 0.916 25.919 0.909 32.967 Bridge 0.919 24.989 0.908 27.245 Camera 0.960 27.055 0.959 32.340 Lena 0.935 29.860 0.938 35.336 Peppers 0.912 30.700 0.908 35.965 0.99 Airplane 0.942 31.300 0.941 37.843 Barbara 1.159 29.658 1.141 34.937 Bridge 1.339 27.610 1.321 28.899 Camera 1.124 29.306 1.116 33.436 Lena 1.147 32.349 1.141 36.176 Peppers 1.059 32.848 1.043 36.453
25 20 15 10 5 0 Airplane Barbara
1.4
1.1 1 0.9 0.8 Airplane Barbara
Bridge Beta=0,95
Camera
Lena
Peppers
Beta=0,99
Gambar 5. Grafik Beta terhadap BPP.
Waktu Pendekodean (detik)
BPP
Camera
Lena
Peppers
Beta=0,99
Gambar 7. Grafik Beta terhadap Waktu Pengkodean.
1.2
9 8 7 6 5 4 3 2 1 0 Airplane
34
Barbara
Bridge
Beta=0,95
32 PSNR (dB)
Bridge
Beta=0,95
1.3
Camera
Lena
Peppers
Beta=0,99
Gambar 8. Grafik Beta terhadap Waktu Pendekodean.
30 28 26 24 Airplane Barbara
Bridge
Beta=0,95
Camera
Lena
Peppers
Beta=0,99
Gambar 6. Grafik Beta terhadap PSNR. grayscale. Untuk setiap citra uji, digunakan 2 nilai β yang berbeda yaitu 0.95 dan 0.99, seperti yang terlihat pada Tabel 2. Hasil percobaan disajikan pula dalam bentuk grafik. Hubungan Beta dan BPP dapat dilihat pada Gambar 5. Sedangkan grafik pengaruh Beta terhadap PSNR disajikan pada Gambar 6. Dari kedua grafik tersebut terlihat bahwa nilai β yang semakin tinggi mengakibatkan kualitas citra hasil pemampatan semakin baik, namun bit yang dibutuhkan citra semakin banyak. Sebaliknya untuk nilai β yang semakin rendah, maka jumlah bit pada setiap pixel citra semakin sedikit namun nilai PSNR sebagai indikator kualitas citra semakin rendah. Hasil percobaan juga menunjukkan bahwa
pemampatan citra SVD dengan 95% informasi (β = 0.95) menghasilkan citra yang kualitasnya sangat berkurang. Sedangkan pada pemampatan citra SVD 99% informasi (β = 0.99), kualitas citra hasil pemampatan masih cukup baik karena nilai PSNR yang dihasilkan rata-rata sebesar 30dB. Waktu pemampatan citra Waktu yang dibutuhkan oleh pemampatan citra SVD dapat dilihat pada Tabel 3. Dalam bentuk grafik disajikan pada Gambar 7 dan Gambar 8. Terlihat bahwa waktu yang dibutuhkan untuk proses pengkodean citra relatif lebih lama dibandingkan dengan waktu pendekodeannya. Jika kita hubungkan dengan grafik Beta terhadap PSNR, secara umum untuk menghasilkan nilai PSNR yang lebih tinggi dalam proses pemampatan sebuah citra, dibutuhkan waktu pengkodean dan pendekodean yang semakin lama.
9
Gambar 9. Citra hasil pemampatan Lena. a) SVD 95% energi, b) SVD 99% energi c) JPEG Quality = 66, d) JPEG Quality = 75 Dimensi citra juga mempengaruhi waktu proses, semakin besar dimensi cira maka semakin lama waktu proses pemampatan citra Perbandingan Pemampatan Citra SVD dengan JPEG Hasil-hasil pemampatan citra SVD dibandingkan dengan hasil-hasil pemampatan citra JPEG yang ukuran file-nya mendekati, seperti disajikan pada Tabel 2. Citra JPEG disini dihasilkan oleh fungsi MATLAB imwrite. Jika dibandingkan dengan hasil pemampatan citra SVD, terlihat jelas bahwa JPEG masih lebih baik dibandingkan dengan SVD. Pada BPP yang sama, PSNR citra hasil pemampatan JPEG selalu lebih tinggi untuk semua citra uji, yang berarti kualitasnya selalu diatas kualitas citra hasil pemampatan SVD. Secara visual
dapat pula diamati bahwa citra hasil pemampatan SVD menunjukkan kesan terkotak-kotak di beberapa blok citra, akibat dari rendahnya nilai PSNR di blok tersebut, sedangkan pada JPEG masih dapat dipertahankan bentuk alaminya. Pengamatan secara visual pada citra Lena disajikan pada gambar 9, sedangkan untuk citra yang lain terdapat pada Lampiran 3 sampai dengan lampiran 7.
KESIMPULAN DAN SARAN Kesimpulan Dari hasil penelitian yang telah dilakukan dapat diambil beberapa kesimpulan mengenai pemampatan citra dengan metode SVD, yaitu:
10
1. Transformasi SVD telah berhasil digunakan dalam upaya memampatkan citra secara lossy. 2. Sifat citra yang pada umumnya memiliki struktur dan tidak acak (artinya terjadi interpixel redundancy) dapat dimanfaatkan oleh pemampatan citra SVD dengan hanya mengkodekan sedikit nilai singular dan vektor-vektor singularnya. 3. Nilai β yang semakin rendah menyebabkan jumlah bit yang dibutuhkan citra menjadi berkurang, artinya ukuran file citra semakin kecil. Sedangkan nilai β yang tinggi menghasilkan citra hasil pemampatan yang lebih baik dari sisi kualitas. 4. Nilai β = 0.99 menghasilkan citra dengan kualitas masih cukup baik, sedangkan pada β = 0.95 kualitas citra banyak berkurang. Namun, pemilihan nilai β tergantung pada kebutuhan. 5. Pemampatan citra JPEG masih lebih baik dari pemampatan citra SVD, karena dalam pemampatan citra JPEG dipakai juga teknik pemampatan lossless untuk mengkodekan data hasil transformasi dan kuantisasi.
Khan MA, Smith MJT. 2000. Fundamentals of Vector Quantization. Georgia: Academic Press. Munir R. 2001. Pengolahan Citra Digital Dengan Pendekatan Algoritmik. Bandung: Penerbit Informatika. Qasem M. Vector Quantization. http://us.geocities.com/mohamedqasem/ vectorquantization/vq.html [18 juli 2005]. Wikipedia. 2007. JPEG. en.wikipedia.org/wiki/ JPEG. [12 Juni 2007]. Wikipedia. 2007. Peak Signal-To-Noise Ratio. en.wikipedia.org/wiki/Peak_signal-tonoise_ratio. [31 Mei 2007]. Wongsawat Y, Ochoa H, Rao KR, Oraintara S. 2004. A Modified Hybrid DCT-SVD Image-Coding For Color Image. IEEE ISCIT, vol. 2, pp.766-769.
Saran Untuk pengembangan metode ini lebih lanjut, hal-hal berikut ini dapat dilakukan untuk penelitian-penelitian selanjutnya: 1. Teknik transformasi citra SVD dapat dikombinasikan dengan teknik transformasi lain seperti DCT untuk mengembangkan sebuah metode pemampatan citra hybrid, seperti yang dilakukan oleh Dapena & Ahalt (2002) dan Wongsawat et al (2004). 2. Menggunakan teknik VQ yang lebih baik dalam kuantisasi vektor-vektor singular untuk meningkatkan kualitas citra hasil pemampatan. 3. Pemampatan data lebih lanjut setelah proses transformasi dan kuantisasi dengan menggunakan metode pemampatan data lossless, sehingga BPP semakin kecil.
DAFTAR PUSTAKA Bovik, Al. 2000. Handbook Of Image And Video Processing. San Diego: Academic Press. Dapena A, Ahalt S. 2002. A Hybrid DCT-SVD Image-Coding Algorithm. IEEE Trans. CSVT, vol. 12, pp.114-121. Gonzalez RC, Woods RE. 2002. Digital Image Processing. Ed-ke-2. New Jersey: PrenticeHall. Jain AK. 1989. Fundamentals of Digital Image Processing. New Jersey: Prentice-Hall.
11
LAMPIRAN
Lampiran 1. Citra yang digunakan dalam pembentukan codebook
Couple.bmp
Boat.bmp
Goldhill.bmp
Mountain.bmp
13
Lampiran 2. Gambar antar muka program pemampatan citra SVD. (a) Menu pemampatan citra (b) Menu rekonstruksi citra
(a)
(b)
14
Lampiran 3. Citra Airplane dan hasil-hasil pemampatan
Citra hasil pemampatan SVD 95% energi (β = 0.95)
Citra hasil pemampatan SVD 99% energi (β = 0.99)
Citra hasil pemampatan JPEG, Quality = 67
Citra hasil pemampatan JPEG, Quality = 70
15
Lampiran 4. Citra Barbara dan hasil-hasil pemampatan
Citra hasil pemampatan SVD 95% energi (β = 0.95)
Citra hasil pemampatan SVD 99% energi (β = 0.99)
Citra hasil pemampatan JPEG, Quality = 51
Citra hasil pemampatan JPEG, Quality = 67
16
Lampiran 5. Citra Bridge dan hasil-hasil pemampatan
Citra hasil pemampatan SVD 95% energi (β = 0.95)
Citra hasil pemampatan SVD 99% energi (β = 0.99)
Citra hasil pemampatan JPEG, Quality = 26
Citra hasil pemampatan JPEG, Quality = 47
17
Lampiran 6. Citra Cameraman dan hasil-hasil pemampatan
Citra hasil pemampatan SVD 95% energi (β = 0.95)
Citra hasil pemampatan SVD 99% energi (β = 0.99)
Citra hasil pemampatan JPEG, Quality = 57
Citra hasil pemampatan JPEG, Quality = 67
18
Lampiran 7. Citra Peppers dan hasil-hasil pemampatan
Citra hasil pemampatan SVD 95% energi (β = 0.95)
Citra hasil pemampatan SVD 99% energi (β = 0.99)
Citra hasil pemampatan JPEG, Quality = 69
Citra hasil pemampatan JPEG, Quality = 75
19