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
Signal-to-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.
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
1
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 mPENDAHULUAN
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 m2
baris dan kolom matriks tersebut sepertidiilustrasikan pada Gambar 1.
y
f(x1,y1) f(x1,y2) . . . f(x1,yn)
f(x2,y1) . . . . . .
f(xm,y1) . . . f(xm,yn)
x 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).
2
1 1 1
( , )
'( , )
m n r
i
i j i k
A i j
A i j
λ
= = = +
−
=
∑∑
∑
1,
k k i iε
λ
==
∑
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):T
A U
= ∑
V
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.11 1 1
1
k n
m mk mn
a
a
a
A
a
a
a
⎛
⎞
⎜
⎟
= ⎜
⎜
⎟
⎟
⎝
⎠
K
K
M
O
M
L
L
(
1 2...
k...
m)
U
=
u u
u
u
(
1... ...
2)
T T
k n
V
=
v v
v
v
Σ = 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 ciri-vektor 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:
'
Tk k k
A
=
U
∑
V
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<r.
Seringkali aproksimasi matriks yang sangat baik
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) :
dimana
T T
2
akar ciri dari AA atau A A
i i
λ σ
=
=
Sedangkan Square Error antara matriks A
dengan matriks aproksimasi A’ adalah hasil penjumlahan dari akar ciri yang diabaikan,yaitu (Dapena & Ahalt,2004) :
dimana
λ σ
i=
i2.
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. Nilai-nilai 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
l-level 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):
0 l
d
d
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.
0
a d
i
= ⎢
⎢
−
⎥
⎥
∆
4
Sedangkan proses dekuantisasimenerjemahkan nilai indeks i ke dalam level rekonstruksi ri yang merupakan rataan dari interval yang relevan, menggunakan rumus :
1
2
i i
i
d
d
r
=
+
+,
0
i
d
=
d
+ ∆
i
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 nilai-nilai dalam satu waktu. VQ memetakan vektor-vektor berdimensi u pada ruang vektor Ru ke dalam sebuah himpunan terhingga vektor-vektor 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 :
2
1
( , ) ( )
u
i j ij
j
d x y x y
=
=
∑
−dimana xj adalah elemen ke-j dari vektor input x,
yijadalah 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.
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.
∑
==
m j ij ix
m
y
11
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
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 dalamPemampatan Citra Sebuah citra digital dapat direpresentasikan dengan sebuah matriks m
×
npixel. 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
×
8pixel, 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
a)
b)
Gambar 3. Multistage VQ. a) encoder,
6
ukuran file termampatkanbpp = =
banyaknya pada citra
C
pixel N
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 nilai-nilai 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):
10
255
20 log
PSNR
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):
(
)
21 1 ' = m n ij ij i j a a rms m n = = − ×
∑∑
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.
Ukuran file termampatkan C yaitu dalam satuan bit.
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 yangdipertahankan. Namun jika tidak,
8
2 2
1 1
dimana 1,...,8 dan 0.95 atau 0.99
k
k i i
i i k
ε
σ
β σ
β
= = = ≥ = =∑
∑
energi atau informasi. Seperti yang terlihat pada rumus :
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. Nilai-nilai 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 SVDmengacu pada ukuran codebook yang dipakai oleh Wongsawat
et al (2004). Vektor singular kiri dan vektor
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 elemen-elemen 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-bitgrayscale. 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.
Tabel 1. Ukuran codebook
Vektor Singular
I (u1&v1)
Vektor Singular
II (u2&v2)
Vektor Singular
III (u3&v3)
Vektor Singular
I V (u4&v4)
Vektor Singular
V (u5&v5)
Vektor Singular
VI (u6&v6)
Vektor Singular
VI I (u7&v7)
Alokasi ukuran codebook Adaptive Multistage 256,64,32 Adaptive Multistage 128,64 Multistage 128,64
32 32 16 4 Nilai Singular Vektor Singular Citra Asli Multistage VQ Transformasi SVD dan pemilihan rank dari blok
8x8 SQ Nilai Singular Vektor Singular Rekonstruksi Citra Hasil Pemampatan Multistage VQ-1 Rekonstruksi Blok 8x8 SQ-1 Codebook ENCODER DECODER Hitung MSE dari Vektor Singular output Codebook SQ-1 SQ Vektor Singular
8
Decoder SVDDecoder 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 singularpertama. 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,ΣkdanVkT direkonstruksi. Perkalian Uk
×
Σk×
VkT 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 inikemudian dikelompokkan berdasarkan nomor vektornya. Dalam hal ini u dan v
tidak dipisahkan, sehingga didapat 8 kelompok vektor singular.
2. Lakukan training VQ terhadap masing-masing kelompok vektor training, bentuk
codebook dengan ukuran tertentu sesuai
nomor vektor dengan menggunakan algoritma LBG.
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.
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 fungsi-fungsi 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
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
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 singularpertama. 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,ΣkdanVkT direkonstruksi. Perkalian Uk
×
Σk×
VkT 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 inikemudian dikelompokkan berdasarkan nomor vektornya. Dalam hal ini u dan v
tidak dipisahkan, sehingga didapat 8 kelompok vektor singular.
2. Lakukan training VQ terhadap masing-masing kelompok vektor training, bentuk
codebook dengan ukuran tertentu sesuai
nomor vektor dengan menggunakan algoritma LBG.
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.
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 fungsi-fungsi 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
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
9
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.
Tabel 2. PSNR dan BPP hasil pemampatan citra
SVD JPEG
β Citra
BPP PSNR BPP PSNR
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 0.95
Peppers 0.912 30.700 0.908 35.965 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 0.99
Peppers 1.059 32.848 1.043 36.453
0.8 0.9 1 1.1 1.2 1.3 1.4
Airplane Barbara Bridge Camera Lena Peppers
BP
P
Beta=0,95 Beta=0,99
Gambar 5. Grafik Beta terhadap BPP.
24 26 28 30 32 34
Airplane Barbara Bridge Camera Lena Peppers
P S NR ( d B ) Beta=0,95 Beta=0,99
Gambar 6. Grafik Beta terhadap PSNR.
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
0 5 10 15 20 25
Airplane Barbara Bridge Camera Lena Peppers
Wakt u P en g ko d ean (d et ik) Beta=0,95 Beta=0,99
Gambar 7. Grafik Beta terhadap Waktu Pengkodean.
0 1 2 3 4 5 6 7 8 9
Airplane Barbara Bridge Camera Lena Peppers
Wa kt u P en d eko d e an ( d et ik) Beta=0,95 Beta=0,99
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: Gambar 9. Citra hasil pemampatan Lena. a) SVD 95% energi, b) SVD 99% energi
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
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
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
Signal-to-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.
Judul Skripsi : PEMAMPATAN CITRA DENGAN METODE
SINGULAR VALUE DECOMPOSITION
(SVD)
Nama :
Tb.
Moch.
Yulia
Rahman
NIM :
G06400036
Menyetujui,
Pembimbing I
Ir. Fahren Bukhari, M.Sc.
NIP 131430803
Pembimbing II
Yeni Herdiyeni, S.Si., M.Kom.
NIP 132282665
Mengetahui,
Dekan Fakultas Matematika Dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor
Prof. Dr. Ir. Yonny Koesmaryono, M.S.
NIP 131473999
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.
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, C-14, 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
vii
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 GAMBAR
Halaman
1 Representasi citra mxn ...2 2 Encoder dan decoder dalamVQ ...4 3 Multistage VQ...5 4 Skema Penelitian ...7 5 Grafik Beta terhadap BPP ...9 6 Grafik Beta terhadap PSNR ...9 7 Grafik Beta terhadap waktu pengkodean ...9 8 Grafik Beta terhadap waktu pendekodean ...9 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
1
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 mbaris dan kolom matriks tersebut seperti diilustrasikan pada Gambar 1.
y
f(x1,y1) f(x1,y2) . . . f(x1,yn)
f(x2,y1) . . . . . .
f(xm,y1) . . . f(xm,yn)
x 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).
3
2
1 1 1
( , )
'( , )
m n r
i
i j i k
A i j
A i j
λ
= = = +
−
=
∑∑
∑
1,
k k i iε
λ
==
∑
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):T
A U
= ∑
V
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.11 1 1
1
k n
m mk mn
a
a
a
A
a
a
a
⎛
⎞
⎜
⎟
= ⎜
⎜
⎟
⎟
⎝
⎠
K
K
M
O
M
L
L
(
1 2...
k...
m)
U
=
u u
u
u
(
1... ...
2)
T T
k n
V
=
v v
v
v
Σ = 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 ciri-vektor 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:
'
Tk k k
A
=
U
∑
V
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<r.
Seringkali aproksimasi matriks yang sangat baik
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) :
dimana
T T
2
akar ciri dari AA atau A A
i i
λ σ
=
=
Sedangkan Square Error antara matriks A
dengan matriks aproksimasi A’ adalah hasil penjumlahan dari akar ciri yang diabaikan,yaitu (Dapena & Ahalt,2004) :
dimana
λ σ
i=
i2.
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. Nilai-nilai 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
l-level 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):
0 l
d
d
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.
0
a d
i
= ⎢
⎢
−
⎥
⎥
∆
Sedangkan proses dekuantisasi menerjemahkan nilai indeks i ke dalam level rekonstruksi ri yang