A Comparation Between SVD and SSVD Method on Image Compression

121  15  Download (0)

Teks penuh

(1)

PERBANDINGAN METODE SVD DAN SSVD

PADA KOMPRESI CITRA

KHAERONI

SEKOLAH PASCA SARJANA

INSTITUT PERTANIAN BOGOR

(2)
(3)

PERYATAAN MENGENAI TESIS DAN

SUMBER INFORMASI

Dengan ini saya menyatakan bahwa tesis dengan judul Perbandingan Metode SVD dan SSVD pada Kompresi Citra adalah karya saya sendiri dengan arahan dari komisi pembimbing, dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir tesis ini.

Bogor, Februari 2012

(4)
(5)

ABSTRACT

KHAERONI. A Comparation Between SVD and SSVD Method on Image Compression. Supervised by SRI NURDIATI and SISWADI.

Data compression is the process of converting an input data into other data which has a smaller size. The data can be a file on a computer or a buffer in the computer’s memory. Compression is useful because it helps reduce the consumption of resources such as data space or transmission capacity. The use of singular value decomposition (SVD) in image compression has been widely studied. If the image, when considered as a matrix, has low rank, or can be approximated sufficiently well by a matrix of low rank, then SVD can be used to find this approximation. That is, by not include some elements of the image, the approximation has been able to represents the original image. This thesis presents a variation for SVD image compression technique proposed by Ranade et al. called SSVD. This variation can be viewed as a preprocessing step in which the input image is permuted by independent data permutation after it is fed to the standard SVD algorithm. Likewise, this decompression algorithm can be viewed as the standard SVD algorithm followed by a postprocessing step which applies the inverse permutation. On experimenting with some standard images, SSVD performs substantially better than SVD. This thesis also presents experiment evidence with other simulated images, which appears that SSVD isn’t better than SVD.

(6)
(7)

RINGKASAN

KHAERONI. Perbandingan Metode SVD dan SSVD pada Kompresi Citra. Dibimbing oleh SRI NURDIATI dan SISWADI.

Kompresi data adalah proses mengubah sebuah data masukan menjadi data yang lain yang memiliki ukuran yang lebih kecil. Data tersebut bisa berupa file di komputer atau sebuah buffer di dalam memori komputer. Tujuan kompresi pada citra adalah untuk mengurangi ketidakrelevanan dan redundansi data citra dengan maksud agar disimpan atau dikirimkan dalam bentuk yang lebih efisien.

Pemanfaatan singular value decomposition (SVD) atau dekomposisi nilai singular untuk mengompres citra telah cukup lama dipelajari. Jika suatu matriks citra berpangkat rendah atau dapat diaproksimasi cukup baik oleh suatu matriks yang juga berpangkat rendah, maka SVD dapat digunakan untuk menentukan aproksimasi tersebut (Ranade et al. 2006). Artinya, dengan tidak menyertakan beberapa elemen dari citra aproksimasi tersebut sudah dapat merepresentasikan citra aslinya.

Ranade et al. (2006) menjelaskan salah satu modifikasi dari proses atau metode kompresi menggunakan SVD dan dari beberapa percobaan memberikan hasil kompresi yang lebih baik dibandingkan dengan metode kompresi SVD. Metode modifikasi ini dikenal dengan nama shuffle-SVD (SSVD). Dinamakan demikian karena sebelum dilakukan dekomposisi, matriks A terlebih dahulu dipermutasi dengan sebuah data permutasi independen.

Ranade et al. (2006) mengklaim bahwa teknik shuffle yang diterapkan terhadap metode SVD untuk mengompres citra selalu memberikan hasil yang lebih baik daripada tanpa menerapkan shuffle. Demikian juga dengan Hafsah et al. (2007) menyatakan bahwa metode SSVD selalu lebih baik daripada metode SVD dalam mengompres citra.

Tujuan dari penelitian ini adalah untuk menyusun algoritme kompresi citra menggunakan SVD dan SSVD kemudian mengetahui efektivitas penerapan teknik shuffle terhadap metode SVD dan mengetahui benar atau tidaknya klaim bahwa teknik shuffle yang diterapkan pada metode SVD selalu memberikan hasil yang lebih baik daripada tanpa di-shuffle sebelumnya.

Penelitian ini menggunakan metode studi literatur dan kemudian mengimplementasikan metode kompresi citra ke dalam program komputer menggunakan software MATLAB. Pada bagian awal, diberikan contoh implementasi metode SVD dan SSVD pada beberapa matriks. Langkah ini dilakukan untuk melihat apakah SSVD selalu bekerja lebih baik daripada metode SVD. Selain itu pada penelitian ini kedua metode juga diterapkan pada beberapa citra yang direpresentasikan oleh sebuah matriks. Tujuan dari langkah ini adalah untuk mengetahui apakah metode SSVD selalu memberikan hasil yang lebih baik dibandingkan dengan metode SVD.

(8)
(9)

menggunakan bahasa pemrograman MATLAB. Tahap kedua adalah membandingkan efektivitas teknik shuffle yang diajukan oleh Ranade et al. (2006) dengan cara menerapkan teknik tersebut terhadap metode SVD untuk beberapa citra dan kemudian menghitung MSE yang dihasilkan oleh setiap metode. Tahap ketiga adalah memberikan contoh kontra ketidakefektifan teknik shuffle tersebut.

Untuk membandingkan perbedaan metode SVD dan SSVD dilakukan dengan cara mengukur kualitas citra hasil kompresi dari masing-masing metode. Untuk menentukan kualitas citra yang telah dikompres digunakan pengukuran baku yaitu MSE. Semakin kecil nilai MSE antara citra asli dan citra hasil kompresi, semakin baik kompresi citra tersebut (Hafsah 2007).

Kompresi citra menggunakan SVD pertama kali dilakukan dengan mengambil nilai piksel citra melalui MATLAB. Kemudian ditentukan SVD matriks A dengan menggunakan built in function MATLAB yaitu svd() untuk menentukan matriks U,  dan V. Langkah berikutnya adalah memotong nilai U,  dan V sesuai dengan rank yang diinginkan, misalnya p, sehingga diperoleh nilai Up, p dan Vp. Terakhir matriks Ap diperoleh dengan cara merekonstruksi Up, p dan Vp.

Langkah kompresi citra menggunakan SSVD didahului dengan melakukan permutasi terhadap matriks citra A dengan suatu permutasi independen P yang disebut dengan shuffle (Ranade et al. 2006). Matriks yang dihasilkan, misalkan X = P(A) kemudian didekomposisi menggunakan SVD. Misalkan

1 T

p p p p

XPUV merupakan aproksimasi untuk A.

Proses shuffle ini dilakukan dengan harapan bahwa rank matriks citra akan berkurang dari rank sebelumnya. Pada beberapa citra, proses shuffle yang diterapkan tidak mengurangi nilai rank atau justru menjadi lebih besar dari rank sebelumnya walau dengan tingkat ketelitian atau toleransi yang cukup besar.

Dari hasil pengujian terhadap citra lena484.jpg, dapat disimpulkan bahwa teknik shuffle yang diterapkan pada metode SVD bekerja cukup efektif. Terbukti bahwa, selain mengurangi MSE teknik shuffle yang diterapkan juga mampu mengurangi ukuran file citra menjadi lebih kecil daripada metode SVD sendiri. Akan tetapi, untuk citra sample_101.jpg, pada beberapa kasus, teknik shuffle yang diterapkan baik pada metode SVD maupun SSVD memperlihatkan perilaku yang berbeda dengan sebelumnya. Penerapan teknik shuffle justru memperbesar MSE dan ukuran file citra walaupun dengan perbedaan yang sangat kecil. Demikian juga untuk citra sample_900.jpg.

Secara umum dapat disimpulkan bahwa teknik shuffle yang diterapkan pada metode SVD tidak selalu bekerja lebih baik daripada metode SVD sendiri. Pada beberapa citra, metode SSVD bekerja lebih baik. Akan tetapi pada citra yang lain metode SSVD tidak bekerja lebih baik. Jadi efektivitas metode SSVD juga ditentukan oleh pemilihan sampel citra yang digunakan. Selain itu, metode SSVD juga bergantung pada pemilihan rank (parameter kompresi). Dengan demikian justifikasi bahwa metode SSVD bekerja selalu lebih baik daripada metode SVD tidak dapat dibenarkan.

(10)
(11)

© Hak Cipta milik IPB, tahun 2012 Hak Cipta dilindungi Undang-undang

1. Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan atau menyebutkan sumbernya

a. Pengutipan hanya untuk kepentingan pendidikan, penelitian, penulisan karya ilmiah, penyusunan laporan, penulisan kritik, atau tinjauan suatu masalah.

b. Pengutipan tersebut tidak merugikan kepentingan yang wajar IPB. 2. Dilarang mengumumkan dan memperbanyak sebagian atau seluruh karya

(12)
(13)

PERBANDINGAN METODE SVD DAN SSVD

PADA KOMPRESI CITRA

KHAERONI

Tesis

sebagai salah satu syarat untuk memperoleh gelar Magister Sains pada

Program Studi Matematika Terapan

SEKOLAH PASCA SARJANA

INSTITUT PERTANIAN BOGOR

(14)
(15)

Judul Tesis : Perbandingan Metode SVD dan SSVD pada Kompresi Citra Nama : Khaeroni

NRP : G551090341

Disetujui Komisi Pembimbing :

Dr. Ir. Sri Nurdiati, M.Sc Dr. Ir. Siswadi, M.Sc

Ketua Anggota

Diketahui :

Ketua Program Studi Dekan Sekolah Pascasarjana

Matematika Terapan

Dr. Ir. Endar H. Nugrahani, M.S. Dr. Ir. Dahrul Syah, M.Sc.Agr.

(16)
(17)

PRAKATA

Segala puja dan puji syukur hanya pantas bermuara pada Allah SWT. Dia– lah yang memberikan kita sebanyak–banyak kenikmatan. Sebesar apapun kesyukuran kita, tidak akan pernah bisa menyamai kenikmatan yang telah Dia berikan. Maha Suci Engkau dengan segala Kuasa-Mu. Atas Kuasa-Nya pula, tesis yang berjudul Perbandingan Metode SVD dan SSVD pada Kompresi Citra ini dapat penulis selesaikan.

Penulis mengakui dan menyadari bahwa selama proses penulisan tugas akhir ini tidak luput dari bantuan banyak pihak. Mulai dari material, moral, spiritual, dan juga psikologis. Karena itu, dalam kesempatan kali ini penulis hendak menyampaikan sebanyak-banyak terima kasih kepada:

1. Allah SWT yang telah menganugerahi kita hikmah. Sehingga kita diberi pemahaman melebihi malaikat. Kasih Sayang-Nya yang tiada batas, menghindarkan kita dari kejahiliahan.

2. Istri tercinta, Sri Apriatni, S.Pd atas do’a, dukungan, dan kesabarannya.

3. Bapak Rektor dan Dekan Fakultas Tarbiyah dan Adab serta Bapak EkoWahyu Wibowo, M.Si selaku atasan penulis di Pusat Komputer IAIN “SMH” Banten yang telah memberikan izin untuk melanjutkan studi di SPs IPB.

4. Ibu Dr. Ir. Sri Nurdiati, M.Sc dan Bapak Dr. Ir. Siswadi, M.Sc, selaku komisi pembimbing yang telah memberikan pengarahan, masukan, dan bimbingan, serta bersedia untuk direpotkan.

5. Bapak Dr. Sugi Guritman sebagai penguji luar komisi yang telah memberikan masukan dan koreksi yang sangat berharga saat ujian tesis.

6. Segenap dosen Program Studi Matematika Terapan SPs IPB.

7. Bapak, ibu, kakak, dan adik-adikku tercinta atas doanya untuk penulis.

8. Teman-teman mahasiswa Program Studi Matematika Terapan SPs IPB, khususnya angkatan 2009.

9. Serta semua pihak yang tidak bisa penulis sebutkan satu-per-satu. Semoga setiap yang penulis libatkan dalam penyusunan tesis ini dibalas setiap kebaikannya dengan kebaikan yang lain secara berlipat.

Sebuah kenyataan bahwa tesis ini masih terdapat banyak kekurangan. Oleh karena itu, saran dan kritik demi perbaikan dan kemajuan penulis dalam penyusunan karya ilmiah dikesempatan yang akan datang sangat penulis nantikan melalui e-mail khaeroni@iainbanten.ac.id atau web site www.khaeroni.net. Semoga karya yang sederhana ini dapat bermanfaat bagi ummat. Khoirunnas an fa ahum linnas. In tansurullaha yan surkum wa yu tsabbit aqdaa ma kum. Sebaik-baik manusia adalah yang paling bermanfaat bagi manusia. Barang siapa yang menolong agama Allah, niscaya Allah akan menolongnya dan meneguhkan pijakannya.

Bogor, Februari 2012

(18)
(19)

RIWAYAT HIDUP

Penulis dilahirkan di Serang pada tanggal 18 Maret 1983 dari Bapak Abdul Adim dan Ibu Yumnah. Penulis merupakan anak kelima dari tujuh bersaudara.

Tahun 2001 penulis lulus dari SMA Negeri 1 Serang dan lulus seleksi masuk Universitas Gadjah Mada melalui jalur Ujian Masuk Perguruan Tinggi Negeri (UMPTN) pada Program Studi Matematika Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam dan selesai pada tahun 2005.

(20)
(21)

DAFTAR ISI

Halaman

DAFTAR TABEL ... ... xi

DAFTAR GAMBAR ... ... xii

DAFTAR LAMPIRAN ... ...xiv

I. PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Penelitian ... 3

1.3 Tujuan Penelitian ... 3

II. TINJAUAN PUSTAKA ... 5

2.1 Nilai Singular ... 5

2.5 Dekomposisi Nilai Singular ... 7

2.6 Ruang Null dan Ruang Kolom ... 8

2.7 Rayleigh Quotient ... 9

2.8 Diagonalisasi ... 10

2.9 Karhunen–Loève Transform ... 10

2.10 Konsep Dasar Kompresi Data ... 11

2.10.1 Principal Component Basis ... 13

2.11 Konsep Teori Informasi ... 14

2.12 Aproksimasi Matriks Rank Rendah ... 15

2.13 Citra Digital ... 15

2.13.1 Representasi Citra Digital ... 15

2.13.2 Menyimpan dan Menampilkan Citra Digital ... 18

2.13.3 Tipe Citra Digital pada MATLAB ... 20

2.14 Kompresi Citra Digital ... 21

2.14.1 Teknik Kompresi Citra Digital ... 23

2.14.2 Kompresi Citra dengan SVD ... 26

2.14.3 Kompresi Citra dengan SSVD ... 27

2.14.4 Atribut Kompresi Citra Digital ... 29

2.15 Citra dan Pengolahan Citra di MATLAB ... 30

2.15.1 Membaca dan Menulis File Citra ... 30

2.15.2 Menampilkan Citra di MATLAB ... 32

III. METODE PENELITIAN ... 35

(22)

3.3.2 Membandingkan Efektivitas Teknik Shuffle ... 37 IV. HASIL DAN PEMBAHASAN ... 43

(23)

DAFTAR TABEL

Halaman 2.1 Fungsi untuk membaca dan menulis file citra pada MATLAB ... 30 2.2 Fungsi untuk menampilkan citra ... 33 4.1 Nilai-nilai MSE dan rank dari matriks A, A1, X1, dan X1–1 ... 49

4.2 Nilai-nilai MSE dan rank dari matriks B, B1, Y1, dan Y1–1 ... 49

(24)
(25)

DAFTAR GAMBAR

Halaman 2.1 Vektor data didekati dalam terminologi arahnya. ... 11 2.2 The Pixel Coordinate System. ... 16 2.3 Contoh Vector Image. ... 16 2.4 Contoh bentuk rasterized dari huruf ‘a’ diperbesar 16 kali dan

menggunakan piksel dengan ketelitian ganda. ... 17 2.5 Bidang warna RGB Image dengan class double. ... 21

2.6 Citra format bitmap yang ditampilkan dengan penampil citra IrfanView. ... 22 2.7 Informasi detail file citra lena.bmp melalui IrfanView. ... 22 2.8 Contoh Run-length Encoding. ... 23 2.9 Contoh hasil Run-length Encoding. ... 24 2.10 Contoh informasi file citra dengan format JPEG. ... 25 2.11 Menampilkan file citra dalam MATLAB. ... 33 2.12 Menggunakan subplot. ... 34 3.1 Skema pemrosesan metode SVD untuk citra berwarna. ... 38 3.2 Skema pemrosesan metode SSVD. ... 39 3.3 Diagram penghitungan MSE antara citra asli dengan citra hasil

(26)

4.7 Citra SVD_r20_lena484.jpg. ... 57 4.8 Citra SSVD_r20_lena484.jpg. ... 58 4.9 Citra SVD_r65_lena484.jpg. ... 59 4.10 Citra SSVD_r65_lena484.jpg. ... 59 4.11 Grafik respon perubahan rank terhadap MSE dari kedua metode untuk

citra lena484.jpg. Rank/term yang digunakan adalah 1, 2, 3, 4, 5, 10, 20, 40, 65, 80, 100, 120, 140, 180, dan 200. ... 62 4.12 Citra simulasi. ... 64 4.13 Hasil kompresi citra sample_101.jpg dengan parameter kompresi

65 . ... 65 4.14 Hasil kompresi citra sample_900.jpg dengan parameter kompresi

(27)

DAFTAR LAMPIRAN

(28)
(29)

1 BAB I

PENDAHULUAN

1.1 Latar Belakang

Internet kini menjadi media yang efektif dan efisien untuk memperoleh

informasi. Baik itu berupa teks biasa (plain text) seperti artikel maupun berupa gambar. Salah satu jenis gambar yang sering disertakan dalam suatu laman web

(web page) adalah citra (image). Besar kecilnya ukuran citra akan memengaruhi cepat lambatnya laman tersebut terbuka. Oleh karena itu, dilakukan beberapa cara

untuk mempercepat terbukanya sebuah laman yang memuat citra. Salah satu cara

mempercepatnya adalah dengan mengompres citra tersebut. Tujuannya adalah

agar citra yang disertakan ukurannya menjadi lebih kecil sehingga beban yang

diberikan kepada browser dalam membuka laman tersebut menjadi lebih kecil dengan tanpa kehilangan kelayakan citra untuk dilihat secara kasat mata. Selain

itu, juga dapat mengurangi ruang penyimpanan di dalam media penyimpanan.

Kompresi data adalah proses mengubah sebuah data masukan menjadi data yang

lain yang memiliki ukuran yang lebih kecil. Data tersebut bisa berupa file di komputer atau sebuah buffer di dalam memori komputer. Tujuan kompresi pada citra adalah untuk mengurangi ketidakrelevanan dan redundansi data citra dengan

maksud agar disimpan atau dikirimkan dalam bentuk yang lebih efisien.

Pemanfaatan singular value decomposition (SVD) atau dekomposisi nilai singular untuk mengompres citra telah cukup lama dipelajari. Beberapa di

antaranya seperti yang dituliskan oleh Scheick (1997) dalam Linear Algebra with Applications dan Khaeroni (2005) dalam Pemampatan Citra Menggunakan Dekomposisi Nilai Singular.

Jika suatu citra (yang juga merupakan matriks) berpangkat rendah (low rank) atau dapat diaproksimasi cukup baik oleh suatu matriks yang juga berpangkat rendah, maka SVD dapat digunakan untuk menentukan aproksimasi

tersebut (Ranade et al. 2006). Artinya, dengan tidak menyertakan beberapa elemen dari citra aproksimasi tersebut sudah dapat merepresentasikan citra

(30)

Ranade et al. (2006) menjelaskan salah satu modifikasi dari proses atau metode kompresi menggunakan SVD dan dari beberapa percobaan memberikan

hasil kompresi yang lebih baik dibandingkan dengan metode kompresi SVD.

Metode modifikasi ini dikenal dengan nama shuffle-SVD (SSVD). Dinamakan demikian karena sebelum dilakukan dekomposisi, matriks A terlebih dahulu dipermutasi dengan sebuah data permutasi independen P.

Misalkan X adalah matriks hasil permutasi sedemikian sehingga X = P(A).

Matriks X kemudian didekomposisi menggunakan SVD. Misalkan rank dari A

adalah r dan aproksimasi rank p dari X adalah Xp dengan pr. Secara empiris diperoleh bahwa untuk nilai p yang sama, P–1(Xp) akan menghasilkan aproksimasi yang lebih baik untuk A dibandingkan Ap, di mana P–1 menyatakan permutasi balikan (re-shuffle) dari P. Dengan melakukan shuffle (SSVD) diharapkan akan diperoleh hasil kompresi yang lebih baik dibandingkan bila tidak di-shuffle

sebelumnya (SVD).

Sementara Hafsah et al. (2007) membandingkan hasil penerapan metode SSVD pada pemrosesan secara global dengan pemrosesan secara blocking dimana

block yang digunakan adalah square-block pada pemrosesan citra dan dengan teknik blocking dan ukuran block-nya seragam (uniform). Dari penelitian yang dilakukan dapat disimpulkan bahwa melalui pemrosesan secara global SSVD

lebih unggul dibandingkan SVD, tetapi melalui pemrosesan terhadap block yang dipilah-pilah (blocking) SSVD tidak terbukti lebih unggul dibandingkan SVD.

Ranade et al. (2006) dan Hafsah et al. (2007) menerapkan metode SVD dan SSVD terhadap citra keabuan (grayscale image), baik dengan teknik global maupun teknik blocking. Penelitian ini menerapkan metode SVD dan SSVD terhadap citra berwarna (color image) dengan teknik global kemudian membandingkan hasil kompresi dari kedua metode tersebut secara empiris.

Ranade et al. (2006) mengklaim bahwa teknik shuffle yang diterapkan terhadap metode SVD untuk mengompres citra selalu memberikan hasil yang lebih baik

daripada tanpa menerapkan shuffle. Demikian juga dengan Hafsah et al. (2007)

menyatakan bahwa metode SSVD selalu lebih baik daripada metode SVD dalam

(31)

3

1.2 Rumusan Penelitian

Untuk memudahkan langkah-langkah dan metode penelitian, maka dibuat

rumusan dari penelitian ini, yaitu sebagai berikut:

1. Bagaimana algoritme kompresi citra menggunakan SVD dan SSVD.

2. Bagaimana efektivitas penerapan teknik shuffle terhadap metode SVD. 3. Bagaimana kebenaran klaim bahwa teknik shuffle yang diterapkan pada

metode SVD selalu memberikan hasil yang lebih baik daripada tanpa

di-shuffle sebelumnya.

1.3 Tujuan Penelitian

Berdasarkan latar belakang masalah di atas, maka tujuan dari penelitian ini

adalah untuk menyusun algoritme kompresi citra menggunakan SVD dan SSVD

kemudian mengetahui efektivitas penerapan teknik shuffle terhadap metode SVD dan mengetahui benar atau tidaknya klaim bahwa teknik shuffle yang diterapkan pada metode SVD selalu memberikan hasil yang lebih baik daripada tanpa

(32)
(33)

5

Norm vektor (vector norm) pada n didefinisikan sebagai fungsi

: n

Untuk selanjutnya norm vektor x ditulis  x  (Golub dan Loan 1996). Salah satu jenis dari norm vektor adalah p-norm vektor dan didefinisikan sebagai

1

Dengan menggunakan definisi di atas, diperoleh norm 1, 2, dan ∞ untuk

sebarang n

Untuk selanjutnya, jika tidak disebutkan secara jelas, simbol x digunakan untuk

(34)

setiap ,A Bmxn dan  memenuhi ketiga aksioma berikut: (1) f A

 

0 dan f A

 

  0 A 0

(2) f A B

f A

 

f B

 

(3) f

 

A  f A

 

Untuk memudahkan penulisan, norm matriks A ditulis A sehingga Af A

 

(Golub dan Loan 1996).

2.3.1 Norm Frobenius

Untuk sebarang matriks A berukuran m x n, norm Frobenius (Frobenius

Norm) dari matriks A didefinisikan sebagai (Meyer 2000)

didefinisikan sebagai (Golub dan Loan 1996)

1

Untuk selanjutnya, jika tidak disebutkan secara jelas, simbol A digunakan untuk

menyatakan 2

A .

2.4 Mean Square Error

Mean Square Error (MSE) merupakan salah satu ukuran yang dapat

digunakan untuk menentukan kualitas suatu aproksimasi. Misalkan matriks A

(35)

7

Dari sini MSE dapat dinyatakan dalam norm Frobenius, yaitu

 

2.5 Dekomposisi Nilai Singular

Misalkan A sebarang matriks berukuran m x n dengan rank(A) = r.

Singular Value Decomposition (SVD) atau dekomposisi nilai singular dari A

adalah faktorisasi dalam bentuk

T

nilai ciri dari matriks ATA. Selanjutnya digunakan notasi sedemikian sehingga

1 2 3 n.

   

Misalkan x y, menyatakan hasil kali dalam baku antara vektor x dan

vektor y. Diambil sebarang {V1, . . ., Vn} basis ortonormal untuk n dan Vi

merupakan vektor ciri yang bersesuaian dengan nilai ciri dari ATA, yaitu i untuk

setiap i. Dengan kata lain {V1, . . ., Vn} merupakan basis ciri ortonormal untuk

Perhatikan bahwa untuk setiap i dan j

, ( )T T( T ) T( ) , .

i j i j i j i j j j i j j ij

AV AVAV AVV A AVVV  V V   (2.3)

(36)

2

2.6 Ruang Null dan Ruang Kolom

Misalkan A sebarang matriks berukuran m x n dengan A = [A1 A2 . . . An]

Lemma 2.1 (Nicholson 2001)

Misalkan A sebarang matriks berukuran m x n dan rank(A) = r dan {V1, . . ., Vn}

merupakan basis ciri ortonormal untuk ATA.

1) Matriks A memiliki tepat r nilai singular.

2) {AV1, AV2, . . ., AVr} merupakan basis ortogonal untuk CS(A).

Bukti pada Lampiran 1, sub 1.1.

Dari Lemma di atas, diperoleh AVi i 0, i = 1, 2, . . ., r. Jika didefinisikan vektor unit

1

yang ortonormal. Kemudian ditentukan sebanyak m – r vektor yang saling

ortogonal dengan {U1, U2, . . ., Ur} dan Uj 1, j = r + 1, . . ., m. Sehingga {U1,

(37)

9

Teorema 2.1 (Goldberg 1991)

Diberikan A sebarang matriks berukuran m x n dengan rank(A) = r dan nilai

singular 1r. Jika didefinisikan U, , dan V seperti uraian di atas, maka U

dan V matriks ortogonal dan A dapat didekomposisikan sebagai

T

A U V (2.6)

Bukti pada Lampiran 1, sub 1.2.

2.7 Rayleigh Quotient

Teorema 2.2 (Scheick 1997)

(38)

1) Jika x adalah vektor ciri dari A yang bersesuaian dengan i maka R(x) =i,

untuk suatu i.

2) 1R x( )n.

3) λ1 = max{R(x) dan λn = min{R(x) .

Bukti pada Lampiran 1, sub 1.3.

Teorema 2.3 Extended Maximal Principle (Scheick 1997)

Diberikan A matriks simetri berukuran n x n dengan nilai ciri  12 n dan

 

1 n k k

e merupakan basis ciri ortogonal untuk A, maka:

1) 1max{ ( ) :R x x0} (2.7)

2) i max{ ( ) :R x x0,xe e1, 2,,ei1} untuk i2,,n. (2.8) Bukti pada Lampiran 1, sub 1.4.

2.8 Diagonalisasi

Diberikan matriks A berukuran n x n. Matriks A dikatakan dapat

didiagonalkan (diagonalizable) jika terdapat matriks invertibel  sedemikian sehingga 1A  merupakan matriks diagonal atau A 1. Dalam hal ini dikatakan  mendiagonalkan matriksA (Nicholson 2001).

Untuk setiap matriks simetri R, terdapat matriks ortogonal  sedemikian sehingga    TR atau R   dimana  merupakan matriks diagonal yang entrinya merupakan nilai ciri dari matriks R (Jain 1989). Dengan demikian

dapat ditulis

k k k

R   , 1 ≤ kn

dimana k merupakan vektor ciri dari R yang bersesuaian dengan nilai ciri k.

2.9 Karhunen–Loève Transform

Definisi lebih lengkap mengenai Karhunen–Loève Transform dapat dilihat

pada Jain (1989). Misalkan x adalah vektor acak berukuran n x 1, dengan x[k]

(39)

11

E[xxT] adalah matriks autokorelasi dari x, jelas bahwa R = RT atau R merupakan

matriks simetri. Misalkan vk adalah vektor ciri matriks R yang bersesuaian

dengan nilai ciri k. Himpunan {k} dibentuk dari {vk} dengan terlebih dahulu

melakukan proses ortogonalisasi dan normalisasi sehingga tetap berlaku (Jain

1989)

k k k

R   , untuk 1 ≤ kn

Jika   

12  n

maka  merupakan matriks ortogonal (uniter) sehingga   T 1

.

Karhunen–Loève Transform (KLT) dari x didefinisikan sebagai (Jain

1989)

T

y  x

2.10 Konsep Dasar Kompresi Data

Diberikan n vektor data X1, X2, . . ., Xn m. Kemudian dicari

vektor-vektor e1, e2, . . . dengan arah yang terbaik untuk vektor data tersebut.

Gambar 2.1 Vektor data didekati dalam terminologi arahnya.

Untuk suatu vektor unit e maka f e e, merupakan proyeksi vektor dari f

pada span{e}. Pada Gambar 2.1, misalkan proyeksi vektor Xk pada ruang yang

dibangun oleh e1 adalah a, begitu juga untuk proyeksi vektor Xk pada ruang yang

dibangun oleh e2 dan e3 adalah b dan c. Terlihat pada gambar di atas,

dibandingkan dengan vektor a dan b, vektor c merupakan vektor yang arahnya

(40)

aproksimasi, jarak antara Xk dengan vektor proyeksi ini adalah yang paling dekat.

Sehingga masalah yang timbul adalah meminimumkan Xkc atau sama dengan meminimumkan Xkc 2, maka

kali dipilih vektor unit e = e1, maka vektor arah ini akan memaksimumkan

jumlahan tersebut. Untuk mendapatkan arah terbaik berikutnya, dicari suatu

vektor ee1 dengan D(e) maksimum, katakan vektor ini e2. Secara umum,

Permasalahan di atas dapat disajikan sebagai berikut:

Memaksimumkan eTQe dengan e 1. Jika diberikan e1, . . ., ep-1, permasalahan di atas menjadi

Memaksimumkan eTQe dengan e 1, dan ee1, . . ., ep-1.

Permasalahan tersebut tidak lain merupakan extended maximal principle

(41)

13

Menurut Teorema 2.3 vektor pemaksimal R(e) merupakan vektor ciri dari Q yang

ortogonal, sebut e1, e2, . . .em. Menurut Teorema 2.2, diperoleh barisan nilai ortonormal karena U ortogonal. Dengan demikian, setiap xm dapat ditulis

2

Permasalahan yang muncul dalam kompresi data adalah berapa banyak i

yang diperlukan untuk merepresentasikan x? Misalkan

1

Jika residu ini diabaikan maka sp bisa diterima sebagai aproksimasi untuk

x. Kemudian ditentukan berapa banyak term yang dibutuhkan jika x adalah salah

satu dari Xk. Perhatikan bahwa

Jika diambil x = Xk dan dijumlahkan semua atas k serta dari kenyataan bahwa

i i i

(42)

2 dengan memilih p sedemikian sehingga

1

Selanjutnya, proyeksi suatu vektor x dapat dihitung dengan memotong

ekspansi principal components-nya

1 1

Jika dengan mengambil nilai p seperti di atas dapat diterima, berarti sub-ruang

span

 

1 p k k

e memuat sebagian besar informasi sebenarnya.

2.11 Konsep Teori Informasi

Teori informasi pertama kali diperkenalkan oleh Shannon (1948). Teori

tersebut dianggap sebagai dasar teori penelitian kompresi data (Zadeh 1965;

Acharya dan Ray 2005). Shannon membuktikan bahwa terdapat batas pada

kompresi data lossless. Batas itu disebut entropy rate yang disimbolkan dengan H.

Nilai H bergantung pada sumber informasi, sehingga memungkinkan untuk

melakukan kompresi sumber informasi secara lossless dengan nilai kompresi

mendekati H (Hafsah 2007).

Shannon juga menemukan teori kompresi data lossy yang dikenal dengan

teori rate-distortion. Pada kompresi data lossy, data yang telah diekstrak tidak

harus sama dengan data asli (original). Meskipun demikian, sejumlah distorsi

(43)

15

2.12 Aproksimasi Matriks Rank Rendah

Misalkan A matriks berukuran m x n dengan rank(A) = r dan SVD dari A dengan ‘membuang’ sebanyak rp term pada (2.14) akan memberikan

aproksimasi untuk A dan memiliki rank yang lebih kecil daripada r (Greenacre

1984). Teorema aproksimasi dengan rank rendah (low rank approximation)

pertama kali dinyatakan dan dibuktikan oleh Eckart dan Young (1936) dan pada

beberapa jurnal disebut dengan Eckart-Young Theorem. Teorema tersebut

menyebutkan bahwa jika matriks A berukuran m x n dengan rank(A) = r dan SVD

merupakan aproksimasi

terbaik dengan rankp untuk A, yaitu Ap meminimumkan 

untuk setiap matriks X dengan rankp atau kurang (Greenacre 1984).

2.13 Citra Digital

2.13.1 Representasi Citra Digital

Komputer menampilkan citra sebagai koleksi titik-titik (dot) yang disebut

dengan pixel (picture element) atau piksel. Informasi visual disimpan dalam

struktur data array atas bit-bit bilangan. Setiap titik dari gambar dipetakan ke satu

atau lebih bit dalam memori komputer.

Citra digital dibangun oleh piksel-piksel yang dapat dianggap sebagai

sebuah titik kecil pada layar. Citra dengan ukuran m x n adalah citra yang

dibangun oleh m piksel pada arah vertikal dan n piksel pada arah horisontal. Citra

digital direpesentasikan dengan suatu matriks atas bilangan-bilangan di mana

setiap bilangan tersebut merepresentasikan nilai intensitas di suatu titik. Titik pada

(44)

levels.

Jika C adalah matriks citra berukuran m x n maka Crc adalah nilai

intensitas pada posisi yang bersesuaian dengan entri pada baris r dan kolom c citra

yang direpresentasikan oleh matriks tersebut.

Gambar 2.2 The Pixel Coordinate System.

Salah satu cara untuk merepresentasikan sebuah citra menggunakan

komputer adalah dengan menyatakan sebuah citra menggunakan angka-angka

untuk merepresentasikan entri-nya berdasarkan posisi dan ukuran bentuk

geometris dan bentuk seperti garis, kurva, persegi, atau lingkaran. Citra seperti ini

disebut dengan citra vektor (vector image).

(45)

17

Citra yang disimpan dan ditampilkan dengan cara yang sama disebut

bitmapped image atau bitmap (Sutopo 2002). Citra bitmap (atau raster images)

adalah “foto digital”, bentuk yang paling sering digunakan untuk

merepresentasikan citra alami dan juga merupakan bentuk grafis dengan detail

yang sangat banyak. Citra bitmap bisa juga menyatakan bagaimana suatu grafis

disimpan ke dalam memori video komputer. Terminologi bitmap merujuk pada

bagaimana memberikan pola bit-bit di dalam peta piksel ke suatu warna yang

spesifik.

Gambar 2.4 Contoh bentuk rasterized dari huruf ‘a’ diperbesar 16 kali dan

menggunakan piksel dengan ketelitian ganda.

Citra bitmap berbentuk sebuah larik (array) di mana nilai pada setiap

elemen disebut dengan piksel (pixelpicture element) yang bersesuaian dengan

warna yang diberikan oleh citra tersebut. Setiap garis horisontal di dalam citra

disebut dengan garis pindai (scan line). Huruf ‘a’ direpresentasian dengan sebuah

matriks berukuran 12 x 14 sebagaimana yang diperlihatkan pada Gambar 2.3,

bilangan-bilangan di dalam matriks menggambarkan tingkat kecerahan

(brightness) dari pikselnya. Bilangan yang lebih besar bersesuaian dengan area

(46)

2.13.2 Menyimpan dan Menampilkan Citra Digital

Citra digital memerlukan ruang penyimpanan yang besar. Untuk

merepresentasikan citra berukuran 640 x 480 piksel, di mana setiap piksel

direpresentasikan dengan 1 byte memori (merepresentasikan bilangan 0–255),

memerlukan 640 x 480 x 1 byte = 307.200 byte = 300 KB = 0.29 MB memori.

Komputer menyimpan sebuah file citra ke dalam disk atau media

penyimpanan lainnya dalam bentuk biner (binary). Komputer menyimpan

informasi data piksel dan metadata yang berisi informasi pendukung tambahan,

seperti dimensi dan tag. Menyimpan sebuah file citra erat kaitannya dengan

format penyimpanan yang digunakan. Biasanya file citra disimpan oleh software

tertentu yang akan menerapkan algoritme sesuai dengan format digunakan. Salah

satu format penyimpanan yang sering digunakan adalah JPEG (Joint

Photographic Experts Group).

Format JPEG merupakan skema kompresi file bitmap. Awalnya, file yang

menyimpan hasil foto digital memiliki ukuran yang besar sehingga tidak praktis.

Dengan format baru ini, hasil foto yang semula berukuran besar berhasil

dikompresi sehingga ukurannya kecil.

Format ini dikembangkan pada awal tahun 1980 oleh Joint Photographic

Experts Group (JPEG). JPEG merupakan format yang paling sering digunakan di

internet. Implementasi format JPEG terbaru dimulai sejak tahun 1996 dan

semakin berkembang dengan inovasi format baru yang menyertai perkembangan

teknologi yang memanfaatkan format JPEG lebih luas. Walaupun format JPEG

merupakan metode kompresi gambar yang gratis, sebuah perusahaan bernama

Forgent pada tahun 2002 mempatenkan format ini dan akan menarik biaya lisensi.

Segera grup JPEG mengumumkan sebuah format JPEG 2000 sebagai sebuah

format pengganti. Namun dua hal di atas terlambat, karena JPEG sudah digunakan

secara luas dan hak paten belum ditetapkan oleh pengadilan.

Standar kompresi file gambar yang dibuat oleh kelompok JPEG ini

menghasilkan kompresi yang sangat besar tetapi dengan akibat berupa adanya

distorsi pada gambar yang hampir selalu tidak terlihat. JPEG adalah sebuah

(47)

19

berkualitas tinggi dalam ukuran file yang sangat kecil. Format file grafis ini telah

diterima oleh Telecommunication Standardization Sector atau ITU-T dan

Organisasi Internasional untuk Standardisasi atau ISO. JPEG kebanyakan

digunakan untuk melakukan kompresi gambar menggunakan analisis Discrete

Cosine Transform (DCT). Meskipun kompresi gambar JPEG sangatlah efisien dan

selalu menyimpan gambar dalam kategori warna true color (24 bit), format ini

bersifat lossy yang berarti bahwa kualitas gambar dikorbankan bila tingkat

kompresi yang dipilih semakin tinggi.

Ketika ada file citra berukuran 100 x 100 piksel dan disimpan dengan

format JPEG maka file tersebut akan dimanipulasi dengan suatu algoritme yang

membuang nilai di posisi-posisi tertentu karena memang tidak dilihat manusia.

Format penyimpanan JPEG bisa lebih kecil daripada ukuran file sebenarnya

karena ia membuang beberapa data warna yang tidak terlalu tampak secara visual

oleh indera mata manusia. Intinya, jika mata manusia sulit melihatnya maka

komputer tidak perlu menyimpannya. Dengan tingkat kompresi moderat dan jika

dilihat sepintas, secara visual, citra berformat JPEG sulit dibedakan dengan citra

asli. Bagaimana JPEG melakukan hal tersebut dapat dilihat pada

referensi-referensi terkait.

Terdapat perbedaan terminologi antara ‘menyimpan’ dan ‘menampilkan’.

Format JPEG, BMP, PNG, DWF, GIF, dan adalah format penyimpanan. Supaya

bisa dilihat, format penyimpanan itu harus dibuka, dibaca, dan direkonstruksi ke

dalam format penampilan. Lazimnya format penampilan adalah bitmap. Oleh

karena itu, semua format penyimpanan itu akan selalu menampilkan citra dalam

format bitmap yang berarti bahwa ukuran citra di memori akan selalu tetap sesuai

dengan resolusinya. Dalam hal ini harus ada mekanisme rekonstruksi dari

menyimpan ke menampilkan, kemudian dari menampilkan ke menyimpan.

Mekanisme ini disebut algoritme. Algoritme ini biasanya yang membedakan

(48)

2.13.3 Tipe Citra Digital pada MATLAB

MATLAB menyimpan citra sebagai larikan (array) dua dimensi, yaitu

matriks. Setiap elemen dari matriks ini bersesuaian dengan satu piksel dalam citra

yang ditampilkan. Sebagai contoh, suatu citra yang terdiri atas 200 baris dan 300

kolom atas titik-titik warna yang berbeda, disimpan oleh MATLAB sebagai

matriks berukuran 200 x 300. Oleh karena itu, bekerja dengan citra di MATLAB

serupa dengan bekerja terhadap sebarang matriks data yang lain. Sebagai contoh,

untuk mengambil piksel tunggal dari suatu matriks citra digunakan operasi

pengacuan matriks biasa, misal I(2,15). Perintah ini mengembalikan nilai piksel

pada baris ke-2 dan kolom ke-15 citra I.

MATLAB mampu mengolah banyak tipe citra digital, salah satunya adalah

RGB image. RGB (Red, Green, Blue) image atau dikenal dengan nama truecolor

image, di dalam MATLAB disimpan sebagai larikan data berukuran m x n x 3

yang menggambarkan komponen-komponen warna merah, hijau, dan biru untuk

setiap piksel. Warna pada tiap piksel ditentukan dengan kombinasi intensitas

warna merah, hijau, dan biru yang disimpan dalam tiap bidang warna pada lokasi

piksel tersebut. Format file RGB, menyimpan RGB images sebagai citra 24-bit

dengan masing-masing komponen warna merah, hijau, dan biru adalah 8-bits.

Dari sini diperoleh kemungkinan 16 juta kombinasi warna untuk satu piksel.

Suatu larikan RGB MATLAB bisa dari class double, uint8, atau uint16.

Larikan RGB dari class double setiap komponennya warna merupakan

suatu nilai di antara 0 and 1. Piksel yang komponen warnanya (0,0,0) ditampilkan

sebagai hitam, dan piksel yang komponen warnanya (1,1,1) ditampilkan sebagai

putih. Ketiga komponen warna dari tiap piksel disimpan sepanjang dimensi ketiga

dari larikan data. Sebagai contoh komponen warna merah, hijau, dan biru dari

piksel (10,5) disimpan dalam RGB(10,5,1), RGB(10,5,2), dan RGB(10,5,3).

(49)

21

Gambar 2.5 Bidang warna RGB Image dengan class double.

2.14 Kompresi Citra Digital

Kompresi citra merupakan salah satu bentuk kompresi data. Kompresi

citra digital adalah proses digital dimana jumlah data (dalam ukuran bit) pada citra

direduksi sesuai dengan yang diinginkan (Thyagarajan 2006). Pada kompresi

citra, pengodean entropy biasanya didahului oleh dekorelasi untuk mengurangi

redundansi pada data citra dan kompresi lossy didahului oleh kuantisasi.

Keefektifan kompresi citra dapat diikur melalui kuantitas kompresi yang dicapai

dan melalui kualitas citra yang direkonstruksi (Hafsah 2007).

Citra bitmap mengambil banyak memori, kompresi citra mengurangi

jumlah memori yang dibutuhkan untuk menyimpan sebuah citra di dalam disk.

Secara sederhana, citra RGB 8 bit berukuran 1600 x 1200 membutuhkan 1600 x

1200 x 3 bytes = 5760000 bytes = 5.5 MB di memori. Ini adalah ukuran citra

tanpa kompresi. Citra bitmap merepresentasikan setiap piksel dengan setiap

bilangan satu per satu. Hal ini membuat citra yang disimpan dalam format bitmap

sangat bergantung dengan ukuran (resolusi). Gambar 2.6 menampilkan citra

dengan format bitmap yang ditampilkan dengan penampil citra IrfanView.

Rasio kompresi (compression ratio) adalah perbandingan antara citra hasil

kompresi dengan citra sebelum dilakukan kompres, sebagai contoh untuk citra

yang disebutkan di atas, disimpan sebagai file JPEG dengan ukuran 512 KB dan

(50)

Gambar 2.6 Citra format bitmap yang ditampilkan dengan penampil citra IrfanView.

Citra di atas berukuran 512 pada arah vertikal dan 512 piksel pada arah

horisontal, merupakan citra RGB dengan kedalaman warna 8 bit setiap bidang

warna, sehingga kedalaman warna untuk setiap piksel adalah 24 bit. Oleh karena

itu, ukuran file citra di memori adalah 512 x 512 x 24 = 6291456 bit = 786432

byte = 768 KB. Informasi detail citra ini ditampilkan dalam Gambar 2.7.

(51)

23

Dari gambar di atas, terlihat bahwa citra tersebut membutuhkan ruang

penyimpanan yang sama besar dengan memori yang dibutuhkan oleh citra

tersebut untuk ditampilkan, yaitu 768 KB karena citra disimpan dalam format

bitmap.

2.14.1 Teknik Kompresi Citra Digital

Ada dua macam teknik untuk mengompres citra, yaitu lossless dan lossy

(Castleman 1996). Teknik lossless memberikan jaminan bahwa citra yang telah

di-decompress benar-benar identik dengan citra sebelum dikompres, misalnya Run

Length encoding, Huffman encoding, Entropy coding (Lempel/Ziv), dan area

coding (Hafsah 2007). Ketika sebuah citra dikompres secara lossless maka

pengulangan dan kemungkinan-kemungkinan digunakan untuk merepresentasikan

semua informasi menggunakan memori yang lebih sedikit. Citra asli juga

kemudian dapat dikembalikan (decompress). Salah satu metode kompresi lossless

yang paling sederhana adalah Run-Length Ecoding (RLE). RLE meng-encode

nilai yang sama yang berulang sebagai satu bagian pada data secara keseluruhan.

70,

(52)

Pada Gambar 2.8, gambar rumah hitam putih telah dikompres dengan

menggunakan RLE. Gambar bitmap tersebut terlihat sebagai satu string panjang

dari piksel hitam atau putih, encoding-nya adalah berapa banyak byte warna yang

sama muncul setelah warna yang lain.

70, 15, 0, 15, 0, 15, 0, 10,

Gambar 2.9 Contoh hasil Run-length Encoding.

Pada gambar di atas, hasil encoding yang baru adalah 113 nibbles, satu

nibble adalah 4 bit dan dapat merepresentasikan nilai di antara 0 dan 4, sehingga

hanya dibutuhkan 113 x 4 : 8 = 56.5 byte untuk menyimpan semua nilai-nilai

tersebut. Kapasitas penyimpanan ini lebih kecil dari 93 byte jika citra disimpan

dengan citra 1 bit dan jauh lebih kecil dari 750 byte jika digunakan satu byte untuk

setiap piksel.

Beberapa aplikasi tidak membutuhkan pengembalian data keseluruhan dari

citra aslinya, oleh karena itu digunakan teknik lossy. Contoh teknik ini adalah

transformcoding (SVD/KLT/DCT/Wavelets/ Gabor), vectorquantisation, metode

segmentasi dan aproksimasi, metode spline aproksimasi (Interpolasi

Bilinear/Regulariasi), dan Fractal Coding (texture synthesis, iterated function

(53)

25

Teknik kompresi citra lossy mengambil keuntungan dari ketidakmampuan

mata manusia untuk melihat hal-hal yang sangat kecil dan dari fakta bahwa

beberapa jenis informasi jauh lebih penting daripada informasi yang lainnya.

Kompresi lossy ditentukan oleh nilai akurasi citra terekonstruksi yang dapat

diterima sejalan dengan peningkatan kompresi. Jika distorsi yang terjadi dapat

ditolerir maka peningkatan pada kompresi menjadi signifikan (Gonzales dan

Woods 2002). Keuntungan kompresi citra lossy adalah kecacatannya tidak dapat

terdeteksi melalui penglihatan manusia. Contoh kompresi lossy adalah JPEG.

Pada JPEG implementasi format file kompresinya berdasarkan DCT bersama

dengan algoritme lossless akan memberikan rasio kompresi yang sangat bagus.

Cara JPEG bekerja sangat cocok untuk citra dengan rentang tonal yang kontinu

seperti foto, logo, teks hasil pemindaian, dan citra-citra yang lain dengan banyak

kontur ketajaman/garis. Gambar berikut menampilkan informasi detail file citra

dalam format JPEG.

Gambar 2.10 Contoh informasi file citra dengan format JPEG.

Informasi yang tertera pada gambar di atas menyebutkan bahwa citra

berukuran 1156 x 1156 piksel. Ukuran memori yang dibutuhkan untuk

(54)

3915.05 KB = 3.82 MB. Tetapi, dengan menggunakan format JPEG citra tersebut

hanya membutuhkan 114.77 KB untuk disimpan di dalam disk. Penampil

IrfanView melakukan decoding (decompress) terhadap file citra yang disimpan di

dalam disk sebelum ditampilkan sehingga ukurannya di dalam disk yang semula

114.7 KB menjadi 3.82 MB setelah di-load ke dalam memori (RAM) komputer.

2.14.2 Kompresi Citra dengan SVD

Diberikan citra A matriks real dengan ukuran m x n dan rank(A) = r.

Matriks ini tidak dipandang sebagai transformasi linear atau sebuah objek aljabar.

Matriks ini secara sederhana merupakan tabel dengan mn bilangan dan akan

ditentukan aproksimasi yang menangkap tampilan data yang paling signifikan.

Rank matriks menunjukkan banyaknya kolom atau baris yang saling bebas

linear, maka rank juga merupakan ukuran redundansi (Kalman 1996). Matriks

dengan rank rendah memiliki banyak redundansi sehingga dapat diekspresikan

dengan lebih efisien. Sebagai contoh, misalkan B merupakan matriks berukuran m

x n dengan rank 1, maka semua kolom-kolom dari B merupakan kelipatan antara

satu dan lainnya (ruang kolom berdimensi 1). Jika u merupakan basis dari ruang

kolom B, maka setiap kolom merupakan kelipatan dari u. Misalkan kolom ke-j

dari B adalah vju maka

1 2

T n

Bv u v uv uuv . Sebanyak mn entri matriks

B ditentukan oleh m entri pada kolom dan n entri pada baris. Dengan analogi yang

sama dapat diperoleh kompresi yang sangat besar untuk A jika A dapat

diaproksimasi oleh matriks dengan rank 1. Akan lebih sedikit menyimpan m + n

entri untuk merepresentasikan aproksimasi dengan rank 1 untuk A daripada

sebanyak mn entri matriks A (Kalman 1996).

ortogonal dan σi merupakan nilai singular dari A. Aproksimasi dengan rankp dari

A dengan pr adalah Ap = UppVpT di mana p adalah matriks  tetapi hanya

(55)

27

kolom pertama U dan Vp berisi p kolom pertama V. Dekomposisi seperti ini cukup

menarik karena Up, p, dan VpT menghasilkan aproksimasi terbaik dengan rankp

untuk A (Ranade et al. 2006) dalam terminologi bahwa rekonstruksi ketiga

matriks tersebut menghasilkan aproksimasi dengan rank p yang paling baik untuk

A. Ukuran baik atau tidaknya aproksimasi tersebut bisa menggunakan ukuran

secara matematis seperti MSE atau penilaian secara kualitatif, yaitu menurut

pengamatan secara kasat mata.

Jika SVD dari A adalah A = UVT, diperoleh A = σ1U1V1T+ σ2U2V2T+ ... +

σrUrVrT+ 0Ur+1Vr+1T+ 0 + ... Karena nilai singular pada  disusun dengan urutan dari yang terbesar ke yang terkecil (decreasing order) maka suku-suku yang nilai

singularnya sangat kecil tidak banyak berpengaruh pada citra A. Dari sini dapat

ditentukan aproksimasi untuk A dengan rank yang lebih kecil dari r, misalkan Ap

= σ1U1V1T + σ2U2V2T + ... + σpUpVpT, dan p < r. Dengan melakukan seperti ini

matriks citra akan disimpan dengan sejumlah bilangan yang berulang (vektor yang

tidak bebas linear), sehingga ketika disimpan file citra akan mengambil ruang

penyimpanan yang lebih kecil.

Langkah kompresi citra dengan metode SVD seperti yang diuraikan di atas

adalah dengan mengambil sebanyak p (atau kurang) kolom dari U, p kolom dari

V, dan p x p sub-matriks dari . Representasi ini cukup baik jika A memiliki rank

rendah.

2.14.3 Kompresi Citra dengan SSVD

Diberikan A matriks berukuran N x N dengan N = n2 untuk suatu bilangan

bulat n. Kemudian dipilih operator shuffle P untuk A. Ranade et al. (2006)

membentuk X = P(A) dengan langkah sebagai berikut:

(i) Memecah A menjadi blok berukuran n x n

(ii) Mengambil blok ke-i pada urutan mayor baris dan menyusun kembali nilai

pixel citra pada mayor baris menjadi baris ke-i dari X. Untuk lebih jelasnya,

diberikan rumus sebagai berikut:

(56)

Sebagai contoh, diberikan matriks sebagai berikut

Diperoleh empat blok berukuran n x n dengan urutan blok ke-1 adalah 1 2 5 6

Kemudian baris-baris pada blok ke-i disusun kembali menjadi baris ke-i.

Baris-baris blok ke-1 disusun menjadi baris ke-1 dari X. Baris-baris blok ke-2

disusun menjadi baris ke-2 dari X. Baris-baris blok 3 disusun menjadi baris

ke-3 dari X. Terakhir, baris-baris blok ke-4 disusun menjadi baris ke-4 dari X.

Dengan demikian, diperoleh matriks hasil shuffle sebagai berikut:

1 2 5 6

Setiap citra dalam penyusunan ini, yaitu setiap kolom dari X dibangun

dengan mengambil satu elemen dari setiap blok A. Dalam kasus SSVD, citra-citra

penyusunnya merupakan sub-sample dari citra asli yang memiliki resolusi rendah.

Titik ke-j dari setiap sample diambil dari n x n blok tunggal citra asli.

(57)

29

kompresi dilakukan mengambil p kolom dari U, p kolom dari V dan p x p

submatriks dari . Representasi ini akan baik jika X memiliki rank rendah. Dengan melakukan shuffle, Ranade et al. (2006) mengharapkan X memiliki rank

lebih rendah dari sebelumnya.

2.14.4 Atribut Kompresi Citra Digital

Kompresi citra digital ditentukan oleh tiga faktor utama, yaitu:

1. Rasio Kompresi

2. Kecepatan Kompresi

3. Kualitas Citra

Rasio kompresi memberikan indikasi seberapa banyak kompresi yang

dicapai terhadap citra yang telah diproses. Rasio kompresi menunjukkan kinerja

algoritme atau teknik kompresi citra yang digunakan. Hubungan antara rasio

kompresi dengan kualitas citra adalah salah satu hal yang penting untuk dijadikan

bahan pertimbangan dalam pengolahan citra (Hafsah 2007).

Waktu kompresi dan waktu mengekstrak didefinisikan sebagai kuantitas

waktu yang digunakan untuk melakukan kompresi dan mengekstrak sebuah citra.

Ukuran kecepatan tersebut bergantung pada:

- Kompleksitas algoritme kompresi

- Efesiensi implementasi perangkat lunak atau perangkat keras dari

algoritme

- Kecepatan processor atau perangkat keras tambahan/pendukung

Kualitas citra menunjukkan apakah citra kompresi masih sama dengan

citra aslinya atau tidak. Metode kompresi citra dapat dikategorikan sebagai

kompresi lossy dan lossless. Kinerja kedua metode ini dipengaruhi oleh tingkat

kualitas citra yang diinginkan oleh pengguna.

Hubungan antara rasio kompresi berbanding terbalik dengan kecepatan

kompresi dan kualitas citra. Jika rasio kompresinya besar yang menandakan

bahwa rasio baik, maka kecepatan kompresi dan kualitas citra akan rendah,

sedangkan jika kecepatan kompresi dan kualitas citra tinggi, maka rasio kompresi

(58)

kurang baik (Hafsah 2007).

2.15 Citra dan Pengolahan Citra di MATLAB

2.15.1 Membaca dan Menulis File Citra

Sebelum melakukan pengolahan dengan MATLAB, sebuah citra harus

dibaca terlebih dahulu. Setelah selesai melakukan pengolahan, citra hasil

pengolahan dapat disimpan (save) atau ditulis (write) kembali ke dalam sebuah

file dengan format yang sama. Untuk melakukan pembacaan dan penulisan file

citra ke dan dari MATLAB digunakan fungsi imread dan imwrite. Fungsi-fungsi

ini membutuhkan toolbox image processing.

Tabel 2.1 Fungsi untuk membaca dan menulis file citra pada MATLAB

Fungsi Kegunaan

Imread(namafile) Membaca sebuah citra. Nama file citra yang akan dibaca

ditulis dengan diapit tanda petik tunggal ‘ ‘ Imwrite

(namafile,format) Menulis citra ke file. Format diisi dengan format citra

dan ditulis dengan diapit tanda petik tunggal ‘ ‘

Contoh penggunaannya sebagai berikut.

>> rgb=imread('peppers.png');

Sementara, perintah

>> imwrite(rgb,'mypeppers.tif');

memanggil fungsi imwrite untuk menulis citra rgb ke dalam file dengan nama

mypeppers.tif. Fungsi ini menentukan format citra yang digunakan berdasarkan

ekstensi dari nama file-nya, dalam hal ini adalah TIF. Namun, kita juga bisa

menggunakan nama file untuk tujuan yang berbeda. Untuk kasus ini, kita bisa

menambahkan argumen ketiga pada perintah imwrite untuk memberitahu format

citra yang digunakan. Contohnya sebagai berikut:

(59)

31

Perintah di atas digunakan untuk menyimpan file citra dengan nama

test_image.study_013 dalam format TIF.

Kebanyakan format file citra mendukung beberapa bentuk kompresi. Hal

ini berarti bahwa citra akan mengambil ruang penyimpanan yang lebih kecil

daripada ukuran yang diperoleh berdasarkan hasil perhitungan sederhana (seperti

yang pernah dilakukan di atas). Sebagai contoh, array rgb di atas mengambil

memori sebesar 576 KB.

>> bytes_in_memory_peppers = numel(rgb)

bytes_in_memory_peppers =

589824

Jika citra tersebut disimpan dalam format citra yang menggunakan

kompresi maka akan mengambil ruang memori yang lebih kecil. Sebagai contoh,

jika citra di atas disimpan dalam format PNG.

>> imwrite(rgb,'mypeppers.png') >> info = imfinfo('mypeppers.png');

>> bytes_on_disk_peppers_png = info.FileSize

bytes_on_disk_peppers_png =

287589

Kemudian dihitung rasio kompresinya

>> CR=bytes_in_memory_peppers/bytes_on_disk_peppers_png

CR =

2.0509

Format file PNG menggunakan kompresi lossless. Hal ini berarti kita

(60)

>> peppers2=imread('mypeppers.png'); >> isequal(rgb,peppers2)

ans =

1

Format file citra yang lain, seperti JPEG, menggunakan kompresi lossy.

Dengan kompresi lossy, karakteristik sistem penglihatan manusia dieksploitasi

untuk mengurangi ukuran di disk, tetapi piksel asli tidak dapat dikembalikan

dengan tepat.

>> imwrite(rgb,'peppers.jpg'); >> info=imfinfo('peppers.jpg');

>> bytes_on_disk_peppers_jpg = info.FileSize

bytes_on_disk_peppers_jpg =

23509

Kemudian dihitung rasio kompresinya

>> CR=bytes_in_memory_peppers/bytes_on_disk_peppers_jpg

CR =

25.0893

Terlihat bahwa rasio kompresi menggunakan JPEG jauh lebih besar

daripada menggunakan PNG. Akan tetapi, kompresi JPEG akan mengurangi

kualitas citra. JPEG bekerja dengan baik dalam hal mengurangi ruang yang

dibutuhkan untuk menyimpan dengan tanpa memperhitungkan kualitas citra.

2.15.2 Menampilkan Citra di MATLAB

(61)

33

Tabel 2.2 Fungsi untuk menampilkan citra

Fungsi Kegunaan

imagesc(x) Menampilkan citra yang direpresentasikan oleh matriks x

imshow(x) Menampilkan citra yang direpresentasikan oleh matriks

atau file dengan nama x

MATLAB menampilkan citra di dalam sebuah jendela yang disebut dengan

Figure. Contoh penggunaan perintah imshow adalah sebagai berikut.

>> imshow('peppers.jpg')

Perintah di atas digunakan menampilkan citra dalam sebuah jendela. Hasil dari

perintah di atas ditampilkan dalam Gambar 2.11.

Gambar 2.11 Menampilkan file citra dalam MATLAB.

Perintah

>> subplot(1,2,1)

>> imshow('peppers.png') >> limits=[232 276 215 248]; >> axis(limits)

(62)

>> subplot(1,2,2)

>> imshow('peppers.jpg') >> axis(limits)

>> title('JPEG Compression');

Akan menampilkan perbandingan secara detail antara citra asli dengan citra hasil

kompresi menggunakan format JPEG.

Perintah subplot digunakan untuk ‘memecah’ jendela penampil citra pada

MATLAB sesuai dengan keinginan. Perintah subplot(1,2,x) akan membagi

jendela penampil (Figure) sehingga memiliki 1 baris dan 2 kolom. Sementara

argumen x digunakan sebagai pengindeks (lokasi) di mana plot akan ditampilkan.

Hasil dari perintah di atas adalah sebagai berikut.

Gambar 2.12 Menggunakan subplot.

Pada gambar di atas, terlihat bahwa kompresi JPEG membuat kualitas citra

berkurang. Akan tetapi, kemampuan visual manusia masih bisa melihatnya

(63)

35

BAB III

METODE PENELITIAN

Pada bab ini dipaparkan langkah-langkah yang digunakan untuk membahas permasalahan yang diambil dalam penelitian. Di bagian ini juga disebutkan instrumen dan metode yang digunakan untuk melakukan pemampatan data baik menggunakan SVD maupun SSVD.

3.1 Metode Penelitian

Penelitian ini menggunakan metode studi literatur dan kemudian mengimplementasikan metode kompresi citra ke dalam program komputer menggunakan software MATLAB. Pada bagian awal, diberikan contoh implementasi metode SVD dan SSVD pada beberapa matriks. Langkah ini dilakukan untuk melihat apakah SSVD selalu bekerja lebih baik daripada metode SVD. Selain itu pada penelitian ini kedua metode juga diterapkan pada sebuah citra yang direpresentasikan oleh sebuah matriks. Tujuan dari langkah ini adalah untuk mengetahui apakah metode SSVD selalu memberikan hasil yang lebih baik dibandingkan dengan metode SVD. Citra yang digunakan adalah citra tes standar untuk pengolahan citra, yaitu lena484.jpg. Citra ini diunduh dari http://www.imagecompression.info/test_images. Selain citra tersebut, juga digunakan beberapa citra yang lain sebagai alat uji dari sampel citra yang berbeda-beda.

3.2 Instrumen Penelitian

Instrumen yang digunakan dalam penelitian ini terdiri atas dua jenis, yaitu perangkat keras (hardware) dan perangkat lunak (software). Perangkat keras yang digunakan adalah sebuah notebook/laptop dengan spesifikasi sebagai berikut: a. Processor : Intel® Core™ i5-2520M CPU @ 2.50GHz b. Physical Memory : 6144 MB RAM

(64)

Perangkat lunak yang digunakan memiliki spesifikasi sebagai berikut:

a. OS : Windows 7 Professional 32-bit

b. OS Version : 6.1 Service Pack 1, Build 7601 c. MATLAB Version : 7.1.0.246 (R14) Service Pack 3

d. Java VM Version : Java 1.5.0 with Sun Microsystems Inc. Java HotSpot™ Client VM

e. MATLAB Toolbox : Image Processing Toolbox Version 5.1

f. Image Viewer : IrfanView for Windows 9x, NT, 2000, XP, Vista, and 7 Version 4.32.

3.3 Langkah Penelitian

Langkah-langkah yang dilakukan pada penelitian ini terdiri atas dua tahap. Tahap pertama adalah menyiapkan alat uji berupa program yang disusun menggunakan bahasa pemrograman MATLAB. Tahap kedua adalah membandingkan efektivitas teknik shuffle yang diajukan oleh Ranade et al. (2006) dengan cara menerapkan teknik tersebut terhadap metode SVD untuk beberapa citra dan kemudian menghitung MSE yang dihasilkan oleh setiap metode. Tahap ketiga adalah memberikan contoh kontra ketidakefektifan teknik shuffle tersebut.

3.3.1 Menyiapkan Alat Uji

Pada tahap ini, dilakukan langkah-langkah sebagai berikut: 1. Mengidentifikasi masalah

Masalah pada penelitian ini adalah klaim dari Ranade et al. (2006) yang menyatakan bahwa teknik shuffle yang diterapkan pada metode SVD selalu memberikan hasil yang lebih baik daripada tanpa di-shuffle sebelumnya. Ukuran yang digunakan oleh Ranade et al. (2006) adalah MSE antara citra asli dengan citra hasil kompresi oleh setiap metode. 2. Menentukan tujuan

(65)

37

3. Studi literatur

Studi literatur dilakukan untuk mengkaji metode kompresi citra menggunakan SVD dan SSVD. Selain itu, studi literatur juga dilakukan untuk mengkaji penelitian-penelitian terdahulu yang terkait.

4. Menyusun algoritme

Setelah melakukan studi literatur, langkah selanjutnya adalah menyusun algoritme kompresi citra menggunakan metode SVD dan SSVD.

5. Menyusun program komputer

Algoritme yang telah disusun kemudian diimplementasikan ke dalam salah satu bahasa pemrograman komputer yaitu MATLAB. MATLAB dipilih karena fungsi-fungsi yang berkaitan dengan SVD telah tersedia dan siap digunakan. Di samping itu, dengan adanya Image Processing Toolbox, MATLAB juga mendukung pengolahan citra sehingga operasi-operasi pada citra dapat dilakukan. Program yang disusun diharapkan menerima input berupa sebuah citra dan parameter kompresi. Setelah dijalankan, program memberikan output berupa citra hasil kompresi.

Selain program utama, disusun juga script MATLAB lain yang digunakan untuk menentukan nilai MSE antara dua buah matriks dan untuk mengambil informasi ukuran file citra yang tersimpan di dalam hard disk.

3.3.2 Membandingkan Efektivitas Teknik Shuffle

Pertama dijelaskan terlebih dahulu mengenai langkah memperoleh citra hasil kompresi menggunakan program yang telah disusun.

1. Kompresi Citra Berwarna Menggunakan SVD

(66)

Gambar 3.1 Skema pemrosesan metode SVD untuk citra berwarna.

Nilai MSE dihitung antara A dan Ap dengan cara menghitung rata-rata MSE untuk setiap bidang warna.

2. Kompresi Citra Berwarna Menggunakan SSVD

Pada tahap ini diterapkan metode SSVD terhadap citra berwarna. Secara struktur, citra berwarna terdiri atas tiga bidang warna. Sehingga sebuah citra berwarna direpresentasikan dengan tiga buah matriks. Tahap pengerjaannya bisa dilihat pada flowchart berikut:

A= imread(citra) Citra,

p

AR = A(:,:,1) AG = A(:,:,2) AB = A(:,:,3)

Ap

Ap(:,:,1) = ARp

Ap(:,:,2) = AGp

Ap(:,:,3) = ABp

imwrite(Ap, nama_file)

ARp = URpRpVRpT

Tentukan SVD untuk AR, AG, dan AB

(67)

39

Gambar 3.2 Skema pemrosesan metode SSVD.

Nilai MSE dihitung antara A dan Ap (bukan Xp) dengan cara menghitung rata-rata MSE untuk setiap bidang warna.

Untuk membandingkan perbedaan metode SVD dan SSVD dilakukan dengan cara mengukur kualitas citra hasil kompresi dari masing-masing metode. Untuk menentukan kualitas citra yang telah dikompres digunakan pengukuran baku yaitu MSE. Semakin kecil nilai MSE antara citra asli dan citra hasil

A= imread(citra) Citra,

p

AR = A(:,:,1) AG = A(:,:,2) AB = A(:,:,3)

Ap

Ap(:,:,1) = P–1(XRp)

Ap(:,:,2) = P–1(XGp)

Ap(:,:,3) = P–1(XBp)

imwrite(Ap, nama_file)

XRp = URpRpVRpT

Tentukan SVD untuk XR, XG, dan XB

XGp = UGpGpVGpT XBp = UBpBpVBpT

XR = P(AR) XG = P(AG)

XB = P(AB)

shuffle

Figur

Gambar 2.1 Vektor data didekati dalam terminologi arahnya.

Gambar 2.1

Vektor data didekati dalam terminologi arahnya. p.39
Gambar 2.2 The Pixel Coordinate System.

Gambar 2.2

The Pixel Coordinate System. p.44
Gambar 2.3 Contoh Vector Image.

Gambar 2.3

Contoh Vector Image. p.44
Gambar 2.5  Bidang warna RGB Image dengan class double.

Gambar 2.5

Bidang warna RGB Image dengan class double. p.49
Gambar 2.7  Informasi detail file citra lena.bmp melalui IrfanView.

Gambar 2.7

Informasi detail file citra lena.bmp melalui IrfanView. p.50
Gambar 2.6  Citra format bitmap yang ditampilkan dengan penampil citra

Gambar 2.6

Citra format bitmap yang ditampilkan dengan penampil citra p.50
Gambar 2.8 Contoh Run-length Encoding.

Gambar 2.8

Contoh Run-length Encoding. p.51
Gambar 2.9 Contoh hasil Run-length Encoding.

Gambar 2.9

Contoh hasil Run-length Encoding. p.52
Gambar 2.10 Contoh informasi  file citra dengan format JPEG.

Gambar 2.10

Contoh informasi file citra dengan format JPEG. p.53
Gambar 2.11 Menampilkan file citra dalam MATLAB.

Gambar 2.11

Menampilkan file citra dalam MATLAB. p.61
Gambar 2.12 Menggunakan subplot.

Gambar 2.12

Menggunakan subplot. p.62
Gambar 3.1 Skema pemrosesan metode SVD untuk citra berwarna.

Gambar 3.1

Skema pemrosesan metode SVD untuk citra berwarna. p.66
Gambar 3.4 Skema langkah-langkah penelitian.

Gambar 3.4

Skema langkah-langkah penelitian. p.69
Gambar 4.1 Citra lena484.jpg asli.

Gambar 4.1

Citra lena484.jpg asli. p.79
Gambar 4.2 Atribut file citra lena484.jpg.

Gambar 4.2

Atribut file citra lena484.jpg. p.79
Tabel 4.3 Nilai e(p) untuk citra lena484.jpg

Tabel 4.3

Nilai e(p) untuk citra lena484.jpg p.81
Gambar 4.3 Citra SVD_r1_lena484.jpg.

Gambar 4.3

Citra SVD_r1_lena484.jpg. p.82
Gambar 4.4 Atribut file citra SVD_r1_lena484.jpg.

Gambar 4.4

Atribut file citra SVD_r1_lena484.jpg. p.83
Gambar 4.5 Citra SSVD_r1_lena484.jpg.

Gambar 4.5

Citra SSVD_r1_lena484.jpg. p.84
Gambar 4.6 Atribut file citra SSVD_r1_lena484.jpg.

Gambar 4.6

Atribut file citra SSVD_r1_lena484.jpg. p.84
Tabel 4.4 Nilai rank citra lena484.jpg dengan parameter kompresi 1

Tabel 4.4

Nilai rank citra lena484.jpg dengan parameter kompresi 1 p.85
Tabel 4.5 Nilai rank citra lena484.jpg dengan parameter kompresi 20

Tabel 4.5

Nilai rank citra lena484.jpg dengan parameter kompresi 20 p.86
Gambar 4.10 Citra SSVD_r65_lena484.jpg.

Gambar 4.10

Citra SSVD_r65_lena484.jpg. p.87
Gambar 4.9 Citra SVD_r65_lena484.jpg.

Gambar 4.9

Citra SVD_r65_lena484.jpg. p.87
Tabel 4.7 Ukuran citra lena484.jpg dengan parameter kompresi 65

Tabel 4.7

Ukuran citra lena484.jpg dengan parameter kompresi 65 p.89
Grafik respon citra lena484.jpg

Grafik respon

citra lena484.jpg p.90
Tabel 4.10 Nilai rank citra lena484.jpg sebelum dan sesudah shuffle

Tabel 4.10

Nilai rank citra lena484.jpg sebelum dan sesudah shuffle p.91
Tabel 4.15 Ukuran file citra dan rasio hasil kompresi citra sample_101.jpg

Tabel 4.15

Ukuran file citra dan rasio hasil kompresi citra sample_101.jpg p.95
Tabel 4.18 Nilai rank citra sample_900.jpg untuk p = 163 dan toleransi 0.4

Tabel 4.18

Nilai rank citra sample_900.jpg untuk p = 163 dan toleransi 0.4 p.97
Tabel 4.19  Ukuran file citra dan rasio hasil kompresi sample_900.jpg

Tabel 4.19

Ukuran file citra dan rasio hasil kompresi sample_900.jpg p.98

Referensi

Memperbarui...

Outline : Metode Penelitian