• Tidak ada hasil yang ditemukan

KOMPRESI CITRA MENGGUNAKAN METODE DISCRETE COSINE TRANSFORM ( DCT )

N/A
N/A
Protected

Academic year: 2019

Membagikan "KOMPRESI CITRA MENGGUNAKAN METODE DISCRETE COSINE TRANSFORM ( DCT )"

Copied!
124
0
0

Teks penuh

(1)

KOMPRESI CITRA MENGGUNAKAN METODE

DISCRETE COSINE TRANSFORM ( DCT )

SKRIPSI

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains

Program Studi Ilmu Komputer

Oleh:

Albertus Guritno Noviardhi NIM : 033124001

PROGRAM STUDI ILMU KOMPUTER JURUSAN MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA

(2)

IMAGE COMPRESSION USING

DISCRETE COSINE TRANSFORM (DCT) METHOD

THESIS

Presented As Partial Fulfillment of The Requirenets To Obtain The Sarjana Sains Degree

In Computer Science

By:

Albertus Guritno Noviardhi Student Number : 033124001

STUDY PROGRAM OF COMPUTER SCIENCE DEPARTEMENT OF MATHEMATICS FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY YOGYAKARTA

(3)
(4)
(5)
(6)

vi

Teman... 

Jika di ambang kesedihan  terpikirkah kita tentang bgmn ia  bermula? 

"Kesedihan yg mendatang  bukanlah pengakhiran sebuah  kehidupan" 

kata yg mudah diluncurkan dr bibir  yg blm pasti seikhlas hati yg merasa 

 

Teman... 

Jika mentari menyinari alam  terpikirkah dikau tentang diri  temanmu 

yg mungkin merindukan dirimu  tapi gagal utk bertemu 

lantaran batasan jarak & waktu 

 

Teman... 

sesungguhnya aku amat  menyayangimu 

sebagaimana batasan kasih sayang  seorang teman kepada temannya  Taukah dikau? Setiap kerutan di 

Tetapi,jika kejujuran,kesetiaan,dan  keakraban sebagai seorang teman,  moga2 hati ini belum keras 

 

Teman... 

Air mata ini pasti akan menetes  bila mengingat saat‐saat bersamamu  keriangan dan senda gurau 

menjadi sulaman indah dari hari‐hari  kita keakraban yg terjadi 

kadangkala mengobati kerinduan  diri ini 

pd keluarga yg jauh 

 

Teman... 

Percayalah,dirimu telah banyak  menyadarkan diri 

tentang arti kehidupan  tentang pribadi manusia yg  berpendirian 

tentang arti persahabatan utuh  tentang apa itu arti rindu dan kasih  sayang 

tentang emosi dan perasaan  yg kadang kala 

berubah dan datang tak diundang  Bagaimana aku habiskan tulisan ini  sedangkan cerita bersamamu  seperti tidak akan habis  Ada saja persoalan 

yg bakal tercerna di pikiran ini  bila mengenang dirimu 

 

Yang pastinya... 

sering melakarkan senyum paling  indah, 

bila saja bibir ini menyebutkan  namamu 

aku pasti akan merindukan dirimu... 

 

(Album kenangan IKAMUDIKA 2002-2004)

Kupersembahkan karya ini untuk

(7)

vii ABSTRAK

Pemampatan data adalah proses mengubah data masukan menjadi sebuah data lain yang ukuran file-nya lebih kecil dengan cara menghilangkan redundansi data (data yang tidak mengandung informasi terkait atau merupakan pengulangan dari informasi yang sudah dinyatakan sebelumnya atau yang sudah diketahui). Pemampatan citra adalah salah satu aplikasi dari pemampatan data dalam citra digital yang mempunyai tujuan untuk mengurangi jumlah bit dari sebuah citra, agar dapat disimpan ataupun ditransmisikan secara lebih efisien.Salah satu metode yang digunakan untuk pemampatan citra adalah

Discrete Cosine Transform (DCT), yang merupakan kelas dari operasi matematika Fast Fourier Transform (FFT).

Dalam tulisan ini, DCT digunakan dalam proses pemampatan file citra, yaitu untuk mentransformasikan sebuah matriks citra menjadi sebuah matriks dengan representasi lain. Dengan demikian dapat diketahui data mana yang harus dihilangkan, sehingga ukuran file citra tersebut dapat menjadi lebih kecil. Namun jika data hasil pemampatan tersebut dikembalikan (direkonstruksi) maka data tersebut dapat menyerupai data asli.

(8)

viii

ABSTRACT

Data compression is a process to change an input data becomes another data which has smaller size by reducing data redundancy (data that don’t content related information or constitute repeating of information which is already mentioned or known). Image compression is one of data compression application in digital image. In order, the objective is to reduce the amount of bit of an image, so that it can be saved or tansmited efficiently.One of the method that is used to compress the image is Discrete Cosine Transform (DCT), one of mathemathic operation class Fast Fourier Transform (FFT).

In this paper, DCT is used in an image compression process, that is to transform a matrix of an image become a matrix with a different representation. Thus we can know which data that have to be erased, so the image file size can be smaller. But if the compression data output mentioned is being returned (reconstructed) then that data can be similar with the original data.

(9)
(10)

x

KATA PENGANTAR

Puji syukur penulis panjatkan ke Tuhan atas berkat dan cinta kasih – Nya,

sehingga penulis dapat menyelesaikan penelitian dan penyusunan skripsi berjudul

“Kompresi Citra Menggunakan Metode Discrete Cosine Transform”. Skripsi ini

disusun sebagai salah satu syarat mencapai gelar Sarjana Sains (S.Si) Program Studi

Ilmu Komputer.

Dalam pelaksanaan penelitian dan penyusunan skripsi ini tidak terlepas dari

bantuan berbagai pihak. Oleh karena itu penulis ucapkan terima kasih kepada:

1. Bapak Y. Joko Nugroho, S.Si selaku dosen pembimbing, terima kasih

atas segala bimbingan, saran, kritik dan kesabarannya dalam

membimbing penulis selama menyelesaikan skripsi ini.

2. Ibu P. H. Prima Rosa, S.Si, M.Sc. , selaku Ketua Program Studi ilmu

komputer. Terima kasih atas bimbingan dan nasihatnya kepada kami,

generasi terakhir Ikom.

3. Anastasia Rita Widiarti, S.Si., M.Kom selaku dosen penguji.

4. Sri Hartati Wijono, S.Si., M.Kom selaku dosen penguji.

5. Segenap dosen Fakultas Sains dan Teknologi Universitas Sanata Dharma.

6. Bapak dan Ibu, Mbak Ria, Mbak Ayuk terima kasih atas doa, restu,

(11)

xi

7. ‘Adek’ yang selalu mendukung dan selalu ada untuk memberikan

dukungan, semangat, dan doa. Terima kasih telah menemaniku dalam

perjalanan ini.

8. Mas Tukijo dan Mbak Linda, beserta segenap karyawan sekretariat.

9. Mas Susilo, terima kasih atas bantuannya dan kerjasamanya selama ini.

10.Komunitas Lab, Beni, Lilik, Iyus, Hendro, Ferry, Yus, Kornel (logikamu

cemerlang), terima kasih untuk dukungan dan bantuan kalian.

11.Teman–teman IKOM angkatan 2003, Friendship never end.

12.Teman-teman Gregorius Caecilia Choir atas kebersamaan dan

kekompakan kalian. Thank’s for the wonderful voice...

13.Tim BPKnet; Didik, Dani, Anto’x, Agung Warenk, Seto, Yunan, Danan;

kalian membuat komplek kita menjadi Cyber Komplek.

14.Alfonsus Maria de Ligouri youngsters; Rena, Esta, Kiki, Yussi, Yunan,

atas kebersamaan dan kekompakannya.

15.Dan pihak-pihak yang belum dapat penulis sebutkan satu per satu.

Penulis menyadari bahwa skripsi ini masih jauh dari sempurna. Harapan

penulis semoga skripsi ini bermanfaat bagi kemajuan kita semua.

Yogyakarta, 8 Oktober 2008

Penulis

(12)

xii DAFTAR ISI

HALAMAN JUDUL... i

HALAMAN JUDUL (INGGRIS)... ii

HALAMAN PERSETUJUAN PEMBIMBING... iii

HALAMAN PENGESAHAN... iv

PERNYATAAN KEASLIAN KARYA... v

HALAMAN PERSEMBAHAN... vi

ABSTRAK... vii

ABSTRACT... viii

HALAMAN PERSETUJUAN PUBLIKASI... ix

KATA PENGANTAR... x

DAFTAR ISI... xii

DAFTAR TABEL... ... xvi

DAFTAR GAMBAR... xvii

BAB I PENDAHULUAN A. Latar Belakang... 1

B. Perumusan Masalah... 2

C. Tujuan... 2

D. Manfaat... 3

E. Batasan Masalah... 3

F. Metodologi... 3

(13)

xiii BAB II OPTIMISASI FUNGSI

A. Citra ... 6

B. Elemen-elemen Citra Digital... 8

1. Kecerahan (Brightness)... 9

2. Kontras (Contrast)... 9

3. Kontur (Contour)... 9

4. Warna (Color)... 9

5. Bentuk (Shape)... 9

6. Tekstur (Texture)... 10

C. Warna... 10

1. Intensity/brigthness/luminance... 11

2. Hue... 11

3. Saturation... 11

D. Format Berkas Bitmap... 12

E. Kompresi Data... 15

1. Pendekatan Ruang... 15

2. Pendekatan Statistik... 16

3. Pendekatan Kuantisasi... 16

4. Pendekatan Fraktal... 16

F. Faktor Penting dalam Kompresi Data... 18

1. Scalability... 18

(14)

xiv

b. Resolution Prograsive... 18

c. Component Prograsive... 18

2. Region of Coding... 18

3. Meta Information... 18

G. Metode Kompresi Data... 19

1. Subsampling... 19

2. Pengurangan Kedalaman bit... 19

3. Transformasi... 19

H. Faktor Penting dalam Pembutan Aplikasi Kompresi Data... 20

I. Discrete Cosine Transform... 21

J. Kuantisasi dan Zig-zag Scanning... 31

K. Kompresi dengan DCT... 33

L. Matriks Jarang... 35

M. Pengukuran Eror dan Rasio Pemampatan dalam Kompresi Citra.. 37

BAB III ANALISIS DAN PERANCANGAN PROGRAM A. Perancangan Secara Umum... 39

B. Perancangan Secara rinci... 40

1. Perancangan Proses... 40

a. Diagram Konteks (DAD level 0)... 40

b. DAD level 1... 41

c. DAD level 2... 44

d. Perancangan Struktur Menu... 45

(15)

xv

D. Algoritma... 55

BAB IV IMPLEMENTASI DAN PEMBAHASAN PROGRAM A. Implemantasi Program... 60

B. Pembahasan Program... 70

C. Pengujian Program... 73

1. Persiapan berkas sumber ... 73

2. Pengaktifan program... 74

D. Perbandingan Hasil Pemampatan... 85

1. Metode “Blok Matriks”... 85

2. Metode “Langsung”... 90

BAB V PENUTUP A. Kesimpulan ... 93

B. Saran... 94

DAFTAR PUSTAKA……...………...…………. 95

(16)

xvi

DAFTAR TABEL

Tabel 2.1 Header berkas bitmap (panjang 14 byte)... 13

Tabel 2.2 Headerbitmap versi lama dari Microsoft Windows (12 byte).. 13

Tabel 2.3 Header bitmap versi baru dari Microsoft Windows (40 byte).. 13

Tabel 2.4 Header bitmap versi lama dari IBM OS/2 (64 byte)... 14

Tabel 2.5Tabel penghitungan DCT 1 dimensi... 25

Tabel 2.6 Tabel penghitungan DCT 2 dimensi... 30

Tabel 4.1 Citra uji... 73

Tabel 4.2 Data pengujian program metode Blok Matriks 8x8... 85

Tabel 4.3 Data pengujian program metode Blok Matriks 16x16... 86

Tabel 4.4 Data pengujian program metode Blok Matriks 32x32... 87

Tabel 4.5 Data pengujian program metode Blok Matriks 64x64... 87

Tabel 4.6 Data pengujian program metode Blok Matriks 8x8... 87

Tabel 4.7 Data pengujian program metode Blok Matriks 16x16... 88

Tabel 4.8 Data pengujian program metode Blok Matriks 32x32... 88

Tabel 4.9 Data pengujian program metode Blok Matriks 64x64... 89

Tabel 4.10 Data pengujian program metode Blok Matriks 128x128... 89

Tabel 4.11 Data pengujian program metode Langsung 64x64... 90

(17)

xvii

DAFTAR GAMBAR

Gambar 2.1 Pixel... 6

Gambar 2.2 Citra Biner... 7

Gambar 2.3 Citra gray scale... 7

Gambar 2.4 Citra berwarna... 8

Gambar 2.5 Warna RGB... 11

Gambar 2.6 Urutan Zig-zagscan... 32

Gambar 3.1 Rancangan DAD level 0... 40

Gambar 3.2 Rancangan DAD level 1... 41

Gambar 3.3 Rancangan DAD level 2... 44

Gambar 3.4 Rancangan menu utama... 45

Gambar 3.5 Rancangan menu edit... 46

Gambar 3.6 Rancangan menu help... 47

Gambar 3.7 Rancangan tampilan awal program... 48

Gambar 3.8 Rancangan tampilan program utama... 49

Gambar 3.9 Rancangan tampilan buka berkas citra... 51

Gambar 3.10 Rancangan tampilan help...52

Gambar 3.11 Rancangan tampilan pemilihan metode kuantisasi... 53

Gambar 3.12 Rancangan tampilan “Lihat Blok”... 53

Gambar 3.13 Rancangan tampilan “Hitung Error”... 54

Gambar 3.14 Flow chart transformasi... 56

(18)

xviii

Gambar 3.16 Flow chart invers... 58

Gambar 3.15 Prosedur hitung sigma invers... 58

Gambar 4.1 Tampilan awal program... 60

Gambar 4.2 Tampilan program utama... 61

Gambar 4.3 Tombol “Buka File Citra”... 62

Gambar 4.4 Menu bar “Buka File Citra”... 62

Gambar 4.5 Radiobutton dan popup menu pemilihan metode kuantisasi.. 62

Gambar 4.6 Tombol “Transformasi”... 63

Gambar 4.7 Menu bar “Transformasi”... 64

Gambar 4.8 Tombol “Rekonstruksi”... 64

Gambar 4.9 Menu bar “Rekonstruksi”... 64

Gambar 4.10 Tombol “Tampilkan” dan Edit text lihat blok... 65

Gambar 4.11 Grid citra asli, transformasi, dan rekonstruksi... 65

Gambar 4.12 Contoh penerapan kuantisasi... 66

Gambar 4.13 Implementasipenerapan input nilai kuantisasi... 67

Gambar 4.14 Implementasipenerapan prosentase kuantisasi... 68

Gambar 4.15 Tombol “Reset”... 69

Gambar 4.16 Menu bar “Reset”... 69

Gambar 4.17 Menu bar “Help” dan “About”... 70

Gambar 4.18 Tampilan Buka File Citra... 74

Gambar 4.19 Citra asli... 75

Gambar 4.20 Tampilan citra transformasi... 76

(19)

xix

Gambar 4.22 Tampilan citra setelah rekonstruksi setelah dikuantisasi.... 79

Gambar 4.23 Tampilan report... 80

Gambar 4.24 Tampilan petunjuk penggunaan program... 81

Gambar 4.25 Tampilan informasi program... 82

Gambar 4.26 Tampilan pesan error... 83

Gambar 4.27 Tampilan peringatan 1... 83

(20)

1 BAB I

PENDAHULUAN

A. Latar Belakang

Data atau informasi sekarang ini tidak hanya disajikan dalam bentuk teks saja, tetapi juga dapat berupa gambar, suara, dan video. Keempat macam data ini sering disebut dengan multimedia. Gambar sebagai salah satu komponen multimedia adalah salah satu bentuk representasi data yang efisien. Gambar atau citra mempunyai karakteristik yang tidak dipunyai oleh data teks dalam hal penyajian data.

Pada masa sekarang ini, komputer sudah dilengkapi dengan kemampuan grafis untuk menyampaikan sebuah informasi. Namun ada beberapa kendala yang biasa dihadapi yaitu diantaranya adalah pada besarnya ukuran file yang dibutuhkan untuk menyimpan data tersebut. Akibatnya jika data tersebut akan ditransmisikan ke tempat lain tentunya membutuhkan jalur yang besar, sehingga berdampak pula terhadap lamanya waktu yang digunakan untuk mentransmisikan data tersebut yang akhirnya meningkatkan biaya yang dikeluarkan. Selain itu juga banyaknya pengguna komputer yang cenderung untuk menyimpan suatu data (dalam hal ini adalah data gambar), daripada membuangnya, walaupun belum tentu data tersebut berguna. Hal ini mengakibatkan meningkatnya kebutuhan akan tempat penyimpanan yang besar dalam komputer.

(21)

redundancy atau duplikasi data. Teknik tersebut dinamakan teknik kompresi. Ada beberapa macam metode kompresi data citra diantaranya adalah

Discrete Cosine Transform (DCT), Fast Forier Transform (FFT), Huffman, dan lain-lain. Dalam tugas akhir ini, penulis memilih teknik kompresi citra menggunakan metode Discrete Cosine Transform karena metode transformasi ini dapat secara efektif membuang data-data yang tidak diperlukan dengan pengurangan kualitas yang masih dapat ditoleransi oleh mata manusia, jika dibandingkan dengan citra aslinya. Jika dibandingkan dengan fourier transform, karakteristik penyusunan kerapatan signal DCT ini lebih baik dan DCT memberikan konsentrasi energi pada koefisien DCT frekuensi rendah.

B. Perumusan Masalah

Berdasarkan latar belakang, maka dapat dirumuskan permasalahan yaitu bagaimana menerapkan algoritma Discrete Cosine Transform untuk memperkecil ukuran file sebuah data citra.

C. Tujuan

1. Mengetahui penerapan DCT untuk memampatkan ukuran file citra. 2. Mengetahui efektivitas DCT untuk memampatkan ukuran file citra.

3. Mengetahui tingkatan toleransi kesalahan pada pemampatan citra dengan metode DCT.

(22)

D. Manfaat

Pembuatan aplikasi ini bermanfaat untuk menganalisis sebuah file citra, dari citra asli dan setelah citra tersebut direkonstruksi. Analisis yang dilakukan dapat berupa perbandingan kualitas citra secara langsung maupun dengan melihat perbedaan nilai-nilainya. Sehingga pengguna dapat mengetahui seberapa efektif penggunaan DCT pada pemampatan data citra.

E. Batasan Masalah

Dalam pembuatan aplikasi ini, masalah dibatasi pada :

1. Citra yang akan dimampatkan adalah citra greyscale dengan format *.BMP, karena format ini belum mengalami penurunan kualitas citra dan belum terkompresi.

2. Citra yang akan dimampatkan mempunyai resolusi 2n x 2n.

3. Citra yang akan dimampatkan tidak terbatas ukurannya, dengan konsekuensi semakin besar ukuran citra, maka akan semakin lama proses pemampatan. 4. Metode yang dipakai untuk kompresi citra adalah Discrete Cosine Transform

(DCT).

5. Software yang digunakan adalah Matlab 7.0.

F. Metodologi

Metodologi dalam penulisan ini adalah:

(23)

2. Perancangan sistem: a. Desain interface.

b. Desain DAD.

c. Rancangan algoritma dan penerapannya.

3. Membuat program aplikasi dan menggabungkan dengan interface.

Metode yang digunakan untuk penelitian ini adalah dengan prototyping. Dengan metode ini, maka penulis langsung dapat menguji program yang telah dibuat, sehingga kesalahan-kesalahan yang ada dapat segera diperbaiki.

G. SISTEMATIKA PENULISAN BAB I PENDAHULUAN

Bab ini berisi tentang penjelasan singkat tentang latar belakang, rumusan masalah, tujuan, batasan masalah, dan metodologi penulisan.

BAB II DASAR TEORI

Berisi tentang dasar teori tentang kompresi data, yang digunakan untuk mengerjakan tugas akhir ini.

BAB III ANALISIS DAN PERANCANGAN PROGRAM

Berisi tentang perancangan sistem yang terdiri dari analisis sistem dan perancangan user interface.

BAB IV IMPLEMENTASI DAN PEMBAHASAN

(24)

BAB V KESIMPULAN DAN SARAN

Berisi kesimpulan dan saran terhadap hasil-hasil dari penulisan atau pembuatan program.

(25)

6 BAB II DASAR TEORI

A. Citra

Secara harafiah, citra adalah gambar pada bidang dwimatra atau dua dimensi (Munir, 2004). Citra dapat digolongkan menjadi 2 golongan, yaitu citra kontinu dan citra diskrit. Citra kontinu dihasilkan oleh sistem optik yang menerima sinyal analog, misalnya kamera analog, mata manusia. Sedangkan citra diskrit diperoleh melalui proses digitalisasi pada citra kontinu. Beberapa sistem optik dilengkapi dengan fungsi digitalisasi sehingga mampu untuk menghasilkan citra diskrit, misalnya kamera digital dan scanner. Citra diskrit disebut juga citra digital.

Citra digital dapat didefinisikan sebagai fungsi dua variabel f(x,y) dimana

x dan y adalah koordinat spasial (bidang) dan nilai f(x,y) merupakan intensitas citra pada koordinat tersebut, atau biasa disebut pixel (picture element).

y

x

Gambar 2.1. Pixel

(26)

Citra dapat dibedakan menjadi 3 kategori yaitu citra biner, citra keabuan (grayscale) dan citra berwarna.

Citra biner terdiri dari 2 warna yaitu hitam dan putih. Satu satuan warna atau yang biasa disebut pixel, merepresentasikan sebuah titik dalam sebuah citra. Dalam citra biner, nilai pixel yang ada adalah 0 untuk warna hitam dan 1 untuk warna putih.

Gambar 2.2 Citra Biner

Sedangkan untuk citra grayscale, memiliki n tingkatan warna keabuan (0 s/d n-1). Biasanya tingkatan warna keabuan tersebut terdiri dari 4, 8, 12, sampai dengan 256 warna, tergantung dari derajat keabuannya. Kebanyakan citra

grayscale dikuantisasi pada 256 warna dan membutuhkan 8 bit (1 byte) untuk representasi tiap pixel-nya.

Gambar 2.3 Citra gray scale

(27)

ketiga komponen tersebut.

Pada citra bitmap 256 warna, setiap pixel panjangnya 8 bit, dan komponen warna RGB-nya disimpan dalam tabel RGB yang disebut palet (palette). Setiap komponen warna panjangnya 8 bit, sehingga ada 256 nilai keabuan untuk komponen warna merah, 256 nilai keabuan untuk komponen warna hijau, dan 256 nilai keabuan untuk komponen warna biru. Nilai setiap pixel tidak menyatakan derajat keabuannya secara langsung, tetapi nilai pixel menyatakan index tabel RGB yang memuat nilai keabuan merah, nilai keabuan hijau, dan nilai keabuan biru. Dalam hal derajat keabuan tersebut, semakin tinggi nilai derajat keabuan, maka semakin cerah warnanya.

Kebanyakan file citra berwarna berukuran besar, karena 1 pixel

memerlukan tempat berukuran 3 x 8 bit = 24 bit, atau sama dengan 3 byte.

Misalnya sebuah citra berwarna mempunyai resolusi 512 x 512, maka citra tersebut akan disimpan dalam sebuah fileberukuran 512 x 512 x 3 byte = 786.432

byte.

Gambar 2.4 Citra berwarna

B. Elemen-elemen Citra Digital

(28)

1. Kecerahan (Brightness)

Kecerahan atau yang sering disebut dengan intensitas cahaya pada sebuah

pixel dalam sebuah citra sebenarnya bukan intensitas yang riil, tetapi merupakan intensitas rata-rata dari suatu area yang melingkupinya. Penglihatan manusia mampu menyesuaikan dengan tingkat kecerahan dengan jangkauan sebesar 1010. 2. Kontras (Contrast)

Kontras menyatakan sebaran terang dan gelap dalam sebuah citra. Sebuah citra dengan kontras rendah dicirikan oleh sebagian besar komposisi citra yang cenderung terang atau gelap. Sedangkan citra dengan kontras yang baik, komposisi gelap dan terang tersebar dengan merata.

3. Kontur (Contour)

Kontur adalah keadaan yang ditimbulkan oleh perubahan intensitas pada

pixel-pixel yang bertetangga. Karena adanya perubahan intensitas ini, maka mata manusia mampu mendeteksi tepi-tepi pada sebuah citra.

4. Warna (Color)

Warna adalah persepsi yang dirasakan oleh mata manusia terhadap panjang gelombang cahaya yang dipantulkan oleh objek. Warna-warna yang diterima oleh mata manusia merupakan hasil kombinasi cahaya dengan panjang gelombang yang berbeda.

5. Bentuk (Shape)

(29)

objek dapat diekstraksi dari citra pada permulaan prapengolahan dan segmentasi citra.

6. Tekstur (Texture)

Tekstur dicirikan sebagai distribusi spasial dari derajat keabuan di dalam sekumpulan pixel-pixel yang bertetangga. Jadi tekstur tidak dapat didefinisikan untuk sebuah pixel, melainkan untuk satu kesatuan citra.

C. Warna

Warna yang diterima oleh mata manusia dari sebuah objek ditentukan oleh warna sinar yang dipantulkan oleh objek tersebut. Warna sinar yang direspon oleh mata adalah sinar tampak (visible spectrum) dengan penjang gelombang antara 400 (biru) sampai 700 nanometer (merah).

Kombinasi warna yang memberikan rentang warna paling lebar adalah red

(30)

Gambar 2.5 Warna RGB

Selain dari ketiga warna red, green, blue (RGB), warna juga dapat dimodelkan berdasarkan atribut warnanya. Setiap warna mempunyai 3 atribut yaitu:

1. Intensity/brightness/luminance

Atribut yang menyatakan banyknya cahaya yang diterima oleh mata, tanpa mempedulikan warna. Kisaran nilainya atara gelap (hitam) dan terang (putih). 2. Hue

Hue berasosiasi dengan panjang gelombang cahaya. Hue digunakan untuk membedakan warna-warna.

3. Saturation

(31)

adalah warna merah dengan tingkat kejenuhan yang rendah, karena ada warna putih di dalamnya. Jadi jika hue menyatakan warna sebenarnya, maka saturation

menyatakan seberapa dalam warna tersebut.

Warna RGB juga mempunyai warna-warna komplementer, yaitu warna

cyan, magenta, dan yellow (CMY). Dua buah warna komplementer tersebut jika dicampur dengan perbandingan yang tepat akan menghasilkan warna putih.

Model warna CMY dapt digunakan untuk mencetak citra berwarna, tetapi karena ketidaksempurnaan tinta, model CMY tidak dapat menghasilkan warna hitam dengan baik. Karena itu, model warna CMY disempurnakan menjadi model CMYK, yang dalam hal ini K (key) menyatakan warna keempat.

D. Format Berkas Bitmap

Sebuah citra digital disimpan dalam sebuah file yang mempunyai format tertentu. Salah satu format file yang digunakan untuk menyimpan suatu citra yang kita kenal adalah bitmap (BMP). Format BMP ini pada umumnya berukuran besar karena belum dimampatkan. Sehingga kualitas citra dengan format ini belum berkurang, karena tidak ada data yang hilang.

Saat ini beredar tiga versi berkas bitmap yaitu (i) berkas bitmap versi lama dari Microsoft Windows atau IBM OS/2, (ii) berkas bitmap versi baru dari

(32)

Tabel 2.1 Header berkas bitmap (panjang 14 byte)

Byte ke- Panjang (byte) Nama Keterangan 1 – 2 2 BmpType Tipe berkas Bitmap

BA = bitmap array, CI = icon, BM =

bitmap, CP = color pointer, PT =

pointer

3 – 6 4 BmpSize Ukuran berkas bitmap

7 – 8 2 XhotSpot X hotspot untuk kursor 9 – 10 2 YhotSpot Y hotspot untuk kursor

11 – 14 4 OffBits Ofset ke awal data bitmap (dalam byte )

(Munir, 2004)

Tabel 2.2 Header bitmap versi lama dari Microsoft Windows (12 byte)

Byte ke- Panjang (byte) Nama Keterangan

1 – 4 4 HdrSize Ukuran header dalam satuan byte

5 – 6 2 Width Lebar bitmap dalam satuan pixel

7 – 8 2 Height Tinggi bitmap dalam satuan pixel

9 – 10 2 Planes Jumlah plane (umumnya selalu satu) 11 – 12 2 BitCount Jumlah bit per pixel

(Munir, 2004)

Tabel 2.3 Header bitmap versi baru dari Microsoft Windows (40 byte)

Byte ke- Panjang (byte) Nama Keterangan

1 – 4 4 HdrSize Ukuran header dalam satuan byte

5 – 8 4 Width Lebar bitmap dalam satuan pixel

(33)

13 – 14 2 Planes Jumlah plane (umumnya selalu satu) 15 – 16 2 BitCount Jumlah bit per pixel

17 – 20 4 Compression 0=tak dimampatkan, 1=dimampatkan 21 – 24 4 ImgSize Ukuran bitmap dalam byte

25 – 28 4 HorzRes Resolusi horizontal 29 – 32 4 VertRes Resolusi vertical

33 – 36 4 ClrUsed Jumlah warna yang digunakan 37 – 40 4 ClrImportant Jumlah warna yang penting

(Munir, 2004)

Tabel 2.4 Header bitmap versi lama dari IBM OS/2 (64 byte)

Byte ke- Panjang (byte) Nama Keterangan

1 – 4 4 HdrSize Ukuran header dalam satuan byte

5 – 8 4 Width Lebar bitmap dalam satuan pixel

9 – 12 4 Height Tinggi bitmap dalam satuan pixel

13 – 14 2 Planes Jumlah plane (umumnya selalu satu) 15 – 16 2 BitCount Jumlah bit per pixel

17 – 20 4 Compression 0=tak dimampatkan, 1=dimampatkan 21 – 24 4 ImgSize Ukuran bitmap dalam byte

25 – 28 4 HorzRes Resolusi horizontal 29 – 32 4 VertRes Resolusi vertical

33 – 36 4 ClrUsed Jumlah warna yang digunakan 37 – 40 4 ClrImportant Jumlah warna yang penting 41 – 42 2 Units Satuan pengukuran yang dipakai

43 – 44 2 Reserved Field cadangan

45 – 46 2 Recording Algoritma perekaman 47 – 48 2 Rendering Algoritma haltoning

(34)

53 – 56 4 Size2 Nilai ukuran 2 57 – 60 4 ClrEncoding Pengkodean warna

61 – 64 4 Identifier Kode yang digunakan aplikasi

(Munir, 2004)

Penyimpanan data bitmap di dalam berkas disusun terbalik dari bawah ke atas dalam bentuk matriks yang berukuran M x N. Baris ke-0 pada matriks data

bitmap menyatakan data pixel di citra baris terbawah, sedangkan baris terakhir pada matriks menyatakan data pixel di citra baris teratas.

E. Kompresi Data

Kompresi data adalah proses mengubah data masukan (input data stream, source stream, original row data) menjadi data lain (output stream, compressed stream) yang ukurannya lebih kecil, dengan cara mengurangi atau menghilangkan

redundancy. Redundancy adalah bagian data yang tidak mengandung informasi terkait atau merupakan pengulangan dari informasi yang sudah dinyatakan sebelumnya atau yang sudah diketahui.

Ada beberapa pendekatan kompresi yang dikenal, diantaranya adalah pendekatan ruang, pendekatan statistik, pendekatan kuantisasi, dan pendekatan fractal.

1. Pendekatan Ruang

(35)

Contohnya adalah Run Length Encoding, yaitu salah satu aplikasi kompresi data yang paling sederhana. Cara bekerja dari metode ini adalah dengan menyimpan beberapa data yang sama dan berurutan menjadi data tunggal, dengan mencantumkan satu data asli dan suatu nilai yang menyatakan banyaknya data tersebut.

2. Pendekatan Statistik

Kompresi data pada pendekatan statistik didasarkan pada frekuensi kemunculan suatu data dalam seluruh bagian data asli (data stream). Contoh aplikasi penerapan metode ini adalah Huffman-coding. Metode kompresi Huffman

ini menggunakan prinsip bahwa suatu nilai yang sering muncul dalam suatu data asli akan dikodekan dngan jumlah bit yang lebih sedikit. Sedangkan nilai yang paling jarang muncul akan dikodekan dengan jumlah bit yang lebih panjang.

3. Pendekatan Kuantisasi

Pendekatan kuantisasi menggunakan suatu algoritma dengan tujuan memampatkan data stream dengan mengurangi secara langsung jumlah bit dari data yang ada. Contohnya adalah metode pemampatan kuantisasi dalam suatu citra. Cara kerja dari metode ini adalah dengan mengurangi secara langsung derajat keabuan dari suatu citra. Misalnya citra dengan derajat keabuan dari 256 menjadi 32. Hal ini tentunya akan mengurangi besarnya filecitra asli, tetapi perlu diingat bahwa pengurangan derajat keabuan yang drastis akan banyak berpengaruh terhadap kualitas citra hasil.

4. Pendekatan Fraktal

(36)

sebuah data didasarkan pada kenyataan bahwa kemiripan bagian-bagian didalam sebuah data, dalam hal ini adalah data citra, dapat dikurangi dengan menggunakan matriks transformasi. Contohnya adalah fractal image compression. Prinsip dasar dari metode ini adalah dengan mencari bagian di dalam suatu citra yang memiliki kemiripan dengan bagian lainnya, dengan ukuran yang lebih besar. Kemudian dicari matriks yang mentransformasikan bagian yang lebih besar tersebut dengan bagian yang lebih kecil.

Beberapa teknik tersebut dibagi dalam 2 kategori yaitu lossless compression dan lossy compression. Lossless compression adalah teknik untuk memproses data asli menjadi data lain yang ukurannya lebih kecil, tanpa hilangnya informasi dalam data aslinya. Sedangkan lossy compression adalah teknik untuk mendapatkan data yang lebih kecil ukurannya, tetapi dengan hilangnya sebagian kecil data, namun dengan tingkat error yang masih dapat diterima. Artinya adalah bahwa data output yang didapat hasilnya sangat mendekati data aslinya.

Kompresi citra merupakan salah satu aplikasi dari kompresi data. Kompresi citra ini bertujuan untuk mengurangi jumlah bit pada sebuah citra digital, sehingga menghasilkan sebuah citra yang sangat mendekati dengan jumlah

(37)

F. Faktor Penting dalam Kompresi Data

Hal-hal penting yang perlu diperhatikan dalam pemampatan sebuah citra diantaranya adalah sebagai berikut:

1. Scalability

Scalability adalah kualitas dari hasil proses pemampatan citra karena manipulasi bitstream tanpa adanya dekompresi atau rekompresi. Beberapa tipe scalability adalah:

a. Quality Progressive dimana sebuah citra dimampatkan secara perlahan-lahan dengan penurunan kualitasnya.

b. Resolution Progressive dimana sebuah citra dimampatkan dengan mengkode resolusi citra yang lebih rendah terlebih dahulu baru kemudian ke resolusi yang lebih tinggi.

c. Component Progressive dimana sebuah citra dimampatkan berdasarkan komponennya. Pertama mengkode komponen grey-nya, kemudian mengkode komponen warnanya.

2. Region of Interest Coding

Daerah-daerah tertentu dienkode dengan kualitas yang lebih tinggi daripada yang lain.

3. Meta Information

(38)

G. Metode Kompresi Data

Selain hal-hal penting yang disebut di atas, kompresi citra juga dibagi dalam beberapa metode, diantaranya:

1. Subsampling

Subsampling merupakan metode kompresi dengan mengurangi jumlah

pixel yang diperlukan untuk merepresentasikan sebuah citra. Metode ini dapat dilakukan dengan dua cara. Pertama, dengan cara mengambil pixel-pixel tertentu pada sebuah citra, misalnya pada baris dan kolom saja. Dan yang kedua adalah dengan cara mengambil nilai rata-rata dari kelompok

pixel dan menggunakan nilai tersebut untuk mengganti nilai kelompok

pixel ini.

2. Pengurangan kedalaman bit

Metode ini dilakukan dengan mengurangi jumlah bit yang digunakan untuk merepresentasikan suatu pixel. Misalnya dengan mengurangi kedalaman bit dari 24 bit/pixel menjadi 16 bit/pixel. Dengan demikian, tentu saja kualitas sebuah citra akan berkurang.

3. Transformasi

(39)

H. Faktor Penting dalam Pembuatan Aplikasi Kompresi Data

Beberapa faktor penting yang harus diperhatikan dalam pembuatan aplikasi untuk pemampatan data diantaranya adalah sebagai berikut:

1. Seberapa prosentase berkas yang dapat dimampatkan.

Jika sebuah program aplikasi pemampatan memiliki prosentase pemampatan berkas yang besar, maka program tersebut bisa dikatakan baik.

2. Jaminan keutuhan berkas setelah dimampatkan dan dimekarkan kembali.

Berkas yang telah dimampatkan kapasitasnya akan menjadi lebih kecil dibandingkan dengan berkas aslinya, akan tetapi berkas hasil pemampatan tersebut jika dimekarkan kembali, maka kapasitasnya harus kembali seperti pada kapasitas semula.

3. Kecepatan pemampatan

Waktu yang dibutuhkan saat proses pemampatan juga mempengaruhi baik atau tidaknya sebuah program pemampatan. Semakin sedikit waktu yang diperlukan untuk proses pemampatan suatu berkas, maka semakin baik pula program pemampatan tersebut.

4. Kemudahan pemakaian program serta fasilita tambahan yang tersedia.

(40)

juga akan semakin baik dan menarik apabila diberi fasilitas tambahan seperti permainan, daftar istilah, bantuan/ pertolongan penggunaan program, dan lain-lain jika dimungkinkan.

I. Discrete Cosine Transform (DCT)

Discrete Cosine Transform atau yang biasa disingkat DCT adalah satu kelas operasi matematika yang termasuk dalam Fast Fourier Transform. Operasi dasar yang ditampilkan dalam transformasi ini adalah mengambil suatu signal dan mentransformasikannya dari representasi satu tipe ke tipe yang lain. Transformasi ini dikerjakan secara frekuentatif yaitu dengan cara mengambil suatu nilai dari domain spasial dan mentransformasikannya ke dalam suatu representasi yang identik. DCT merupakan salah satu metode transformasi yang dapat digunakan untuk kompresi data citra yang mempunyai sifat lossy. Metode kompresi DCT ini menggunakan pendekatan nilai kosinus. Pada dasarnya DCT akan mengubah detil warna dari gambar asli, namun karena keterbatasan indra manusia, maka perubahan yang terjadi tidak begitu terlihat. Dalam operasi DCT ini yang digunakan adalah nilai real. Ada 2 macam persamaan yang bisa digunakan yaitu DCT 1 dimensi yang digunakan untuk menghitung data vektor, dan DCT 2 dimensi yang digunakan untuk menghitung data matriks.

Persamaan umum untuk DCT 1 dimensi adalah sebagai berikut:

(41)

N = ukuran matriks

Sedangkan persamaan untuk invers DCT 1 dimensi adalah sebagai berikut:

Persamaan DCT dan invers DCT (IDCT) di atas disebut persamaan DCT 1 dimensi dan IDCT 1 dimensi karena kedua persamaan tersebut digunakan untuk mentransformasi nilai pixel suatu citra berukuran 1xN.

Sebagai contoh terdapat matriks berukuran 1x8 yang ditampilkan sebagai suatu citra sebagai berikut:

[0 25 50 75 100 125 150 200] = Nilai DCT dari matriks di atas adalah: [255 0 11 0 8 0 4 0] =

(42)

[0 24 49 75 99 124 150 199] =

Dari contoh di atas terlihat bahwa nilai matriks hasil rekonstruksi sangat mendekati nilai matriks aslinya. Hasil dari nilai DCT inilah yang dapat digunakan untuk pemampatan, karena nilai tersebut nantinya akan banyak mengandung nilai 0 (nol). Nilai nol tersebut dalam penyimpanan sebuah data dapat diabaikan (tidak disimpan) sehingga dapat mengurangi banyaknya data yang harus disimpan.

Di bawah ini akan diilustrasikan metode DCT 1 dimensi:

Terdapat sebuah matriks 1 dimensi [1 2 3 4 5 6 7 8]. Matriks tersebut akan dikenai persamaan (2.1) dengan:

i = 1,2,3,…N,

x = 0,1,2,…N-1, N = 8,

pixel(x) = 1,2,3…8 C(i) = 1,jika x>0, C(i) =

2 1

, jika x=0,

Pixel(x) = nilai pixel ke-x,

maka, hasil transformasinya adalah seperti dalam tabel 2.5.

(43)

dikembalikan ke bentuk aslinya akan sama atau paling tidak menyerupai data asli dengan toleransi yang masih dapat diterima.

Dari data hasil DCT tersebut, jika dikembalikan seperti semula, maka harus dikenai fungsi inverse dari DCT (IDCT). Setelah data itu dikembalikan, maka nilainya akan menjadi [1 2 3 4 5 6 7 8]. Terlihat bahwa nilai hasil invers

tersebut masih terlihat sama dengan data aslinya.

Sedangkan persamaan DCT 2 dimensi ditampilkan dalam matrik NxN, dan menghasilkan matriks NxN. Persamaan DCT 2 dimensi ini digunakan untuk transformasi matriks 2 dimensi.

Persamaan dari DCT 2-dimensi adalah sebagai berikut:

(44)

Nilai i PENGHITUNGAN

x1 x2 x3 x4 x5 x6 x7 x8 DCT(i)

1 1 3 6 10 15 21 28 36 12.727

2 0.980 2.643 4.310 5.090 4.115 0.781 -5.038 -12.884 -6.442

3 0.923 1.689 0.541 -3.154 -7.773 -10.069 -7.391 -2.664 e-015 0

4 0.831 0.441 -2.501 -4.723 -1.945 3.939 5.304 -1.346 -0.673

5 0.707 -0.707 -2.828 -8.882 e-016 3.535 -0.707 -5.656 0 0

6 0.555 -1.406 -0.820 2.505 -1.652 -2.822 4.042 -0.401 -0.201

7 0.382 -1.465 1.306 -0.224 -2.137 3.405 -3.061 -5.3291 e-015 0

(45)

Jika matriks berukuran MxN, maka persamaan di atas dapat dituliskan

N= ukuran baris matriks M= ukuran kolom matriks

pixel(x,y) = nilai pixel pada indeks ke-(x,y)

Sedangkan persamaan untuk invers DCT (IDCT) adalah sebagai berikut:

⎥⎦

(46)

∑∑

N, M= ukuran matriks

pixel(x,y) = nilai pixel pada indeks ke-(x,y)

Invers DCT tersebut berfungsi untuk mengembalikan data citra seperti semula.

Contoh penerapan DCT dan IDCT dalam citra greyscale:

Terdapat sebuah citra greyscale dengan matriks 8x8 dengan nilai sebagai berikut:

(47)

Nilai DCT dari matriks di atas adalah :

Sedangkan nilai IDCT dan citra hasil rekonstruksi adalah sebagai berikut:

Di bawah ini akan diilustrasikan bagaimana DCT diterapkan dalam sebuah matriks 2 dimensi:

Terdapat sebuah matriks 2 dimensi sebagai berikut:

Matriks ini akan dikenai operasi DCT 2 dimensi dengan persamaan 2.6, dengan:

i = 1,2,3 ; j = 1,2,3

(48)

pixel(x,y) = 1,2,3...9

Maka hasil penghitungan yang terjadi akan terlihat seperti pada tabel 2.6.

Dari tabel tersebut, dapat dilihat bahwa nilai hasil penghitungan, yaitu

yang terdapat dalam kolom DCT(i,j) adalah

(49)

Tabel 2.6 Tabel penghitungan DCT 2 dimensi

Nilai (i,j) PENGHITUNGAN

(x0,y0) (x0,y1) (x0,y2) (x1,y0) (x1,y1) (x1,y2) (x2,y0) (x2,y1) (x2,y2) DCT(i,j)

(1,1) 1 3 6 10 15 21 28 36 45 15

(1,2) 0.866 0.866 -1.732 1.732 1.732 -3.464 2.598 2.598 -5.196 -2.449

(1,3) 0.5 -1.5 4.4409e-016 2 -3 1.7764e-015 3.5 -4.5 3.5527e-015 0

(2,1) 0.866 2.598 5.196 5.196 5.196 5.196 -0.866 -7.794 -15.588 -7.348

(2,2) 0.75 0.75 -1.5 -1.5 -1.5 -1.5 -6.75 -6.75 0 0

(2,3) 0.433 -1.299 2.2204e-016 3.4451e-016 3.8348e-017 2.2204e-016 -3.031 3.897 -1.3323e-015 0

(3,1) 0.5 1.5 3 -1 -6 -12 -8.5 -4.5 1.7764e-015 0

(3,2) 0.433 0.433 -0.866 -4.33 -4.33 0.866 3.897 3.897 0 0

(50)

J. Kuantisasi dan Zig-zag Scanning

Kuantisasi ini digunakan untuk menentukan kualitas kompresi, yaitu dengan menghilangkan beberapa informasi dari nilai pixel yang telah ditransformasi. Informasi yang dihilangkan adalah informasi yang dianggap paling tidak penting, dalam hal ini adalah nilai pixel yang paling mendekati nol (0) setelah dilakukan transformasi, ataupun pembulatan nilai desimal dari nilai yang didapat.

Kuantisasi ini sangat penting dalam proses pemampatan data, karena penentuan kuantisasi ini juga akan berpengaruh terhadap kualitas citra yang dimampatkan dan tentunya besarnya file yang telah dimampatkan.

Ilustrasi dari kuantisasi ini adalah sebagai berikut:

Sebuah matriks dengan delapan data yaitu [12,10,8,10,12,10,8,11], kemudian matriks tersebut dikenai operasi DCT 1 dimensi, sehingga hasil transformasi menjadi [28.6375, 0.571202, 0.46194, 1.757, 3.18198, 1.72956, 0.191342, -0.308709]. Setelah itu, matriks hasil transformasi tersebut akan dikuantisasi menjadi [28, 0, 0, 2, 3, -2, 0, 0]. Dan digunakan operasi IDCT 1 dimensi untuk mengembalikan data, didapat [11.236, 9.62443, 7.66286, 9.57302, 12.3471, 10.0146, 8.05304, 10.6842]. Terlihat dari hasil invers yang didapat mendekati data aslinya. Perbedaan antara data asli (12) dan data hasil rekonstruksi (11.236) adalah 0,764 (atau 6,4% dari 12) (David Salomon, 2001).

(51)

nol (0). Sebagai contoh dalam kasus di atas, nilai [28.6375, 0.571202, 0.46194, 1.757, 3.18198, -1.72956, 0.191342, -0.308709] akan dikuantisasi dengan Q=1, maka nilai yang berada di antara 1 dan -1 akan dikuantisasi menjadi nol (0). Sehingga hasil dari nilai tersebut akan menjadi [28.6375, 0, 0, 1.757, 3.18198, -1.72956, 0, 0].

Kuantisasi untuk matriks berukuran 2nx2n dapat dilakukan dengan cara mengubah matriks menjadi vektor secara zig-zag (zig-zagscanning).

Gambar 2.6 Urutan Zig-zagscan

Ilustrasi penerapan kuantisasi secara zig-zag adalah sebagai berikut:

Terdapat matriks 4x4 dengan elemen

matriks tersebut akan ditransformasi menjadi

(52)

vector dengan urutan [56.0000 39.2241 3.5042 8.5000 -11.2604 25.0000 3.2359 -6.6585 6.7378 -1.9927 -0.8713 -3.5000 -3.3713 -3.3321 2.2168 0.7604]. Dari hasil zig-zag scan tersebut kuantisasi dapat dilakukan, yaitu dengan cara mengambil beberapa nilai dari belakang, tergantung prosentase yang diinginkan. Misalkan prosentase yang diinginkan untuk kuantisasi adalah 25%, maka diambil 4 nilai paling belakang, kemudian nilai tersebut dikuantisasi menjadi nol (0). Maka hasilnya adalah [56.0000 39.2241 3.5042 8.5000 -11.2604 25.0000 3.2359 -6.6585 6.7378 -1.9927 -0.8713 -3.5000 0 0 0 0].

Kuantisasi dapat dilakukan dengan berbagai cara, tergantung yang diinginkan. Dapat dengan pembulatan seperti contoh yang terjadi pada DCT 1 dimensi di atas, dapat pula dengan mengambil beberapa pixel paling belakang berdasarkan berapa persen pixel akan diambil setelah dilakukan zig-zag scan, tergantung dari prosentase yang diinginkan.

K. Kompresi dengan DCT

(53)

bentuk aslinya. Dalam kasus kompresi citra, maka kualitas citra yang didapat akan semakin buruk.

Sebagai contoh, matriks hasil transformasi yang terdapat dalam tabel 2.6

yaitu

. Kemudian matriks tersebut akan dikuantisasi

dengan nilai Q=3, maka hasilnya adalah

Dapat dilihat bahwa matriks tersebut memuat banyak elemen dengan nilai 0, atau biasa disebut matriks jarang (sparse matrix). Hal ini tentunya tidak efisien. Oleh karena itu, penyimpanan matriks hasil transformasi menggunakan suatu cara agar lebih efisien yaitu dengan menghilangkan elemen matriks yang mempunyai nilai 0. Maka matriks tersebut hanya akan disimpan nomor indeks matriks yang bukan nol dan data yang ada dalam indeks tersebut, yaitu (1,1) 15 dan (2,1) -7.348. Bilangan yang ada didalam tanda “( )” menunjukkan indeks matriks yaitu baris dan kolom, sedangkan bilangan dibelakangnya adalah nilai matriks yang ada pada nomor indeks tersebut.

(54)

Tetapi jika menggunakan cara yang kedua yaitu dengan metode zig-zag scanning, maka nilai matriks akan menjadi [15 -2.449 -7.348 0 0 0 0 0 0], dan posentase kuantisasi misalnya adalah 80%, maka sebanyak 80% data akan dikuantisasi menjadi nol (0) (data diambil dari belakang). Sehingga setelah proses kuantisasi, data akan menjadi [15 -2.449 0 0 0 0 0 0 0]. Dan jika data tersebut dikembalikan dengan urutan matriks seperti semula (dezig-zag scan) maka akan

menjadi

Dari sini terlihat bahwa kedua cara yang digunakan menghasilkan nilai yang sama. Dalam kasus yang berbeda, hasil yang didapat belum tentu sama seperti kasus di atas.

L. Matriks Jarang

(55)

tempat penyimpanan (storage) sebuah data. Sebagai contoh, matriks hasil transformasi DCT di atas adalah:

Matriks di atas dapat dikatakan sebuah matriks jarang, karena elemen matriks tersebut banyak terdiri dari nol. Sehingga jika matriks tersebut akan disimpan dalam sebuah file, maka membutuhkan tempat untuk menyimpan file tersebut sebesar 3x8 bit = 24 bit, dengan asumsi ukuran file tiap elemen matriks adalah 8 bit.

Jika matriks di atas dimampatkan menggunakan konsep matriks jarang, yang dalam hal ini adalah menghilangkan elemen nol, maka akan menjadi sebagai berikut:

Index matriks Nilai Matriks

(1,1) 15 (1,2) -2.449 (2.1) -7.348

(56)

sedangkan nilai yang di belakang pada indeks matriks menunjukkan nomor kolom.

M.Pengukuran Error dan Rasio Pemampatan dalam Kompresi Citra

Dalam pemampatan citra terdapat suatu standar pengukuran error yaitu sebagai berikut:

- Mean Square Error (MSE), yaitu sigma dari jumlah error antara citra hasil pemampatan dengan citra asli.

[

]

I’(x,y) adalah nilai pixel dari citra hasil pemampatan M, N adalah resolusi citra.

- Peak Signal to Noise Ratio (PSNR), yaitu untuk menghitung error

maksimal.

Nilai MSE yang rendah akan lebih baik, sedangkan nilai PSNR yang tinggi juga akan lebih baik.

(57)

hasil pemampatan akan semakin terlihat menyerupai citra asli. Demikian pula sebaliknya, semakin kecil prosentase nilai rasio, maka citra hasil pemampatan akan semakin buruk.

Penghitungan rasio pemampatan dapat dicari dengan persamaan berikut:

n DataMasuka

esi HasilKompr esi

(58)

39 BAB III

ANALISIS DAN PERANCANGAN PROGRAM

A. Perancangan Secara Umum

Pada bagian perancangan akan dibahas algoritma program secara umum, yaitu tentang hubungan antara modul-modul yang merupakan modul terpenting dan terpokok dalam program yang akan dibuat. Modul perancangan program terbentuk dalam tampilan yang terdiri dari beberapa fungsi dalam bentuk berkas yang berekstensi .m.

a. Kebutuhan perangkat lunak (software)

Perangkat lunak yang digunakan adalah MATLAB versi 7.0 dari Mathworks, dan system operasi Windows XP.

b. Kebutuhan perangkat keras (hardware)

Perangkat keras yang digunakan adalah sebuah komputer dengan spesifikasi minimal sebagai berikut:

- Prosesor : Pentium III 800 MHz

- Media tampilan : VGA card 64 MB

- Memori : 256 MB

(59)

- Media penyimpanan : Harddisk 20 GB

B. Perancangan Secara Rinci

Dalam pembahasan perancangan secara rinci ini akan dibahas beberapa hal yang terkait, diantaranya:

1. Perancangan proses

a. Diagram konteks (DAD level 0)

User

0

Pemampatan Citra Citra Transform

Citra Rekonstruksi

Blok Matriks Citra Asli

Blok Martriks Citra Transform

Blok Matriks Citra Rekonstruksi

Blok Matriks Citra Transform Terkuantisasi

Blok Matriks

Prosentase

Blok Baris

Blok Kolom

Nilai Kuantisasi Citra Asli MSE Total

PSNR Total

MSE Blok

PSNR Blok

(60)

Pada intinya, input atau masukan dari sistem ini adalah sebuah berkas citra

greyscale yang bertipe *.BMP, dan output-nya berupa sebuah citra yang direkonstruksi setelah mengalami proses transformasi dan dimampatkan dengan kuantisasi.

Selanjutnya ada beberapa masukan juga dari user yang digunakan oleh sistem untuk melihat dan membandingkan citra asli dan citra yang telah direkonstruksi. Perbandingan tersebut dapat dilihat baik dari citranya secara langsung, dari nilai-nilai matriksnya, maupun dari nilai error yang didapat.

b. DAD level 1

(61)

Beberapa proses yang terlihat dalam DAD level 1 ini adalah rincian dari proses pada level sebelumnya. Ada 5 (lima) proses didalamnya.

(i) Proses “DCT blok”

Proses ini terjadi jika user memilih metode kuantisasi blok transform. Masukan dari proses ini adalah sebuah citra greyscale yang telah dipilih

user, kemudian user memilih metode kuantisasi blok matriks dan menentukan besarnya blok yang akan digunakan untuk proses transformasi.

(ii)Proses “DCT Langsung”

Proses ini terjadi jika user memilih metode kuantisasi secara langsung. Masukan dari proses ini adalah sebuah citra greyscale yang telah dipilih

user, kemudian user memilih metode kuantisasi “langsung” dan menentukan besarnya prosentase yang nantinya akan digunakan sebagai prosentase nilai kuantisasi.

(iii) Proses “IDCT”

(62)

(iv) Proses “Lihat blok”

Proses ini berfungsi untuk melihat blok nilai matriks dengan ukuran 8x8. Baik dari citra asli, citra hasil transfomasi, maupun citra hasil rekonstruksi.

Input dari proses ini berupa citra asli, citra hasil transformasi, dan citra hasil rekonstruksi. Disini user juga diminta memasukkan sebuah nilai

integer untuk melihat baris dan kolom ke berapa blok yang akan dilihat.

(v) Proses “Kuantisasi”

Proses kuantisasi ini dapat diakses jika user memilih metode kuantisasi blok matriks. Masukannya berupa citra hasil transformasi dan sebuah nilai

integer sebagai nilai kuantisasi. Output dari proses ini adalah sebuah matriks citra hasil transformasi yang telah terkuantisasi nilainya.

(vi)Proses “Hitung Error Total”

Proses ini akan terjadi jika user memilih “Hitung Error Total” pada

radiobutton hitung error. Dalam proses ini ada 2 hal yang dilakukan yaitu menghitung nilai MSE dan menghitung nilai PSNR. Nilai-nilai yang dihitung adalah nilai-nilai matriks dari keseluruhan citra.

(vii)Proses “Hitung Error Blok”

(63)

menghitung nilai MSE dan nilai PSNR. Nilai-nilai yang dihitung adalah nilai-nilai dari blok matriks yang sedang ditampilkan dalam grid matriks.

c. DAD level 2

6.1

Hitung MSE Total

6.2

Hitung PSNR Total Citra Asli

Citra Rekonstruksi

Niali MSE Total Nilai PSNR Total

Nilai MSE Total

7.1

Hitung MSE Blok

7.2

Hitung PSNR Blok Blok Citra Asli

Blok Citra Rekonstruksi

Niali MSE Blok Nilai PSNR Blok

Nilai MSE Blok

Gambar 3.3 Rancangan DAD level 2

Dalam DAD level 2 ini ada 2 macam proses, yang pertama adalah proses untuk menghitung nilai MSE. Input yang dibutuhkan adalah citra asli dan citra rekonstruksi, yang berfungsi untuk membandingkan antara data asli dengan data hasil rekonstruksi, untuk kemudian dihitung error-nya.

Output dari hitung nilai MSE tersebut nantinya digunakan untuk menghitung nilai PSNR.

Dua proses tersebut nantinya akan menghasilkan masing-masing 2 output

(64)

pertama untuk menghitung secara total, sedangkan proses yang kedua digunakan untuk menghitung nilai MSE dan nilai PSNR secara perblok.

d. Perancangan struktur menu

Menu yang dimaksud adalah menu navigasi dalam program ini. Menu ini berfungsi untuk memudahkan pengguna (user) untuk menjalankan program. Ada beberapa menu yang dapat diakses oleh user untuk dapat mengoperasikan program ini. Menu-menu yang digunakan diantaranya seperti di bawah ini:

Gambar 3.4 Rancangan menu utama

Di dalam menu utama terdapat tiga buah submenu, yaitu:

• Menu “Buka File Citra”

Berfungsi untuk membuka filecitra bertipe *.BMP.

• Menu “Home”

(65)

• Menu “Keluar”

Berfungsi untuk keluar dari program.

Edit

Reset

Transformasi

Rekonstruksi

Lihat Blok

Gambar 3.5 Rancangan menu edit

Dalam menu edit terdapat empat buah submenu yaitu menu yaitu:

• Menu “Reset”

Berfungsi untuk me-reset (mengosongkan) kotak yang digunakan untuk menampilkan citra, penghitungan error, nama file dan resolusi, dan mengembalikan fungsi-fungsi tombol yang lain seperti pada saa pertama program dijalankan.

• Menu “Transformasi”

(66)

• Menu “Rekonstruksi”

Berfungsi untuk melakukan rekonstruksi terhadap hasil transformasi.

• Menu “Lihat Blok”

Berfungsi untuk melihat nilai matriks blok 8x8 pixel dari matriks citra asli, matriks citra transformasi, maupun matriks citra rekonstruksi, dengan sebelumnya memasukkan sebuah nilai yang menandakan blok mana yang akan dilihat, untuk kemudian ditampilkan dalam grid yang telah disediakan.

Gambar 3.6 Rancangan menu help

Dalam menu “Help” ini, terdapat dua submenu, yaitu:

• Menu “Help”

Berfungsi untuk melihat bantuan tentang cara pemakaian program.

• Menu “About”

(67)

e. Perancangan antarmuka (interface)

Antarmuka yang dimaksud adalah rancangan tampilan pada layar monitor untuk memvisualisasikan dan menampilkan informasi yang diperlukan agar pengguna dapat memahami bagaimana menjalankan program. Ada beberapa rancangan tampilan antarmuka. Sebagai contoh terlihat pada gambar 3.6 di bawah ini adalah rancangan tampilan awal saat program dijalankan. Pada tampilan awal program ini, terdapat dua tombol yang dapat diakses yaitu tombol “Lanjutkan” yang berfungsi untuk masuk ke program utama, dan tombol “Keluar” untuk keluar dari program.

KOMPRESI CITRA DENGAN METODE DISCRETE COSINE TRANSFORM

Lanjutkan

LOGO USD

PROGRAM STUDI ILMU KOMPUTER JURUSAN MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA 2008

Keluar

(68)

(i) Tampilan program utama

Tampilan program utama menampilkan semua isi fungsi navigasi ke semua tampilan yang lain dalam keseluruhan program. Dalam tampilan ini pula, terdapat tombol yang dapat dieksekusi, yaitu tombol “Buka File Citra” untuk membuka file citra.

KOMPRESI CITRA DENGAN METODE DISCRETE COSINE TRANSFORM

Gambar 3.8 Rancangan tampilan program utama

(ii) Tampilan Citra Asli

(69)

(iii) Tampilan buka berkas citra

Jika pengguna (user) menekan tombol “Buka File” maka akan keluar tampilan buka berkas citra. Pada tampilan buka berkas citra ini, terdapat dua buah tombol navigasi. Pada tombol “Open” akan membuka/menampilan berkas citra yang akan dimampatkan pada kotak yang terdapat pada tampilan citra asli. Sedangkan tombol “Cancel” akan membatalkan pencarian berkas citra, dan akan kembali pada tampilan sebelumnya.

Citra yang dapat dibuka\ditampilkan adalah citra dengan tipe file *.BMP, karena dalam hal ini, pembatasan masalah hanya pada citra bertipe file *.BMP.

Dalam tampilan ini pula, terdapat radiobutton yang dapat dieksekusi (menjadi aktif ketika user sudah melakukan buka file citra), yaitu “Blok Matriks” untuk mengaktifkan popup menu pemilihan blok yang akan digunakan untuk trasformasi, dan “Langsung” yang akan mengaktifkan

(70)

Gambar 3.9 Rancangan tampilan buka berkas citra

(iv) Pemilihan metode kuantisasi

Pada tahap ini, user akan diminta memilih metode kuantisasi yang akan digunakan, sebelum dapat melakukan transformasi. Ada dua metode yang dapat dipilih yaitu dengan blok matriks atau secara langsung. Jika user

memilih “Langsung” maka kotak untuk memasukkan nilai kuantisasi (di sebelah tombol transformasi) akan menghilang, karena kuantisasi akan dilakukan dengan prosentase yang dipilih user.

(v) Tampilan citra transformasi

Setelah membuka citra dan memilih metode kuantisasi, maka tombol transformasi akan aktif. Jika user mengakses tombol tersebut, maka citra akan ditransformasi berdasarkan metode yang telah dipilih.

BUKA FILE CITRA Look in :

File Name : Files of Type :

(71)

(vi)Tampilan citra rekonstruksi

Tampilan citra rekonstruksi akan menampilkan citra hasil rekonstruksi dari matriks hasil transformasi. Citra ini berguna untuk membandingkan kualitas dari citra asli dengan citra yang telah dikenai fungsi transformasi DCT dan kemudian direkonstruksi.

(vii) Fungsi-fungsi lain

Selain fungsi utama program seperti yang tersebut di atas, dalam program ini juga terdapat beberapa tombol yang terdapat disebelah kanan tampilan program diantaranya adalah:

Tombol “Help”

Tombol ini berfungsi untuk menampilkan jendela help yang berisi tentang petunjuk pemakaian program. Menu ini berguna untuk pengguna yang belum mengerti bagaimana cara menjalankan program ini. Gambar 3.6 di bawah ini adalah rancangan tampilan help.

Gambar 3.10 Rancangan tampilan help

KOMPRESI CITRA DENGAN METODE DISCRETE COSINE TRANSFORM

(72)

Tombol “About”

Tombol ini berfungsi untuk melihat informasi program.

Popup menu blok matriks.

Popup menu ini berfungsi untuk memilih blok matriks yang nantinya akan digunakan untuk transformasi.

Popup menu prosentase.

Popup menu ini berfungsi untuk menentukan prosentase kualitas pemampatan yang akan dilakukan. Kualitas pemampatan ditentukan dalam bentuk persen (%).

Metode Kuantisasi

Blok

Prosentase Blok Matriks

Langsung

Gambar 3.11 Rancangan tampilan pemilihan metode kuantisasi

Edit text lihat blok.

Edit text ini digunakan untuk melihat nilai matriks dengan blok 8x8 pixel, yang nantinya nilai-nilai tersebut akan tampil pada grid yang telah tersedia.

Lihat Blok

Baris :

Kolom :

Tampilkan

(73)

Edit text kuantisasi

Jika user memilih metode kuantisasi berdasarkan blok matriks, maka

user dapat pula memasukkan besarnya nilai kuantisasi dalam edit text

ini.

Hitung error

Penghitungan error dalam program ini dibagi menjadi dua yaitu “per blok” dan “total”. Penghitungan error per blok akan menghitung error

dalam blok yang ditampilkan pada grid. Sedangkan penghitungan

error total akan menghitung error pada keseluruhan matriks.

Gambar 3.13 Rancangan tampilan “Hitung Error”

Tombol “Keluar”

Tombol ini berfungsi untuk keluar dari program.

Tombol “Home”

(74)

C. Algoritma

Algoritma untuk proses transformasi dan rekonstruksi file citra adalah sebagai berikut:

• Program akan meminta masukan berupa sebuah citra greyscale

dengan resolusi 2nx2n.

• Selanjutnya user diminta untuk memilih metode kuantisasi. Ada 2 (dua) metode yang dapat dipilih yaitu “Blok Transform” dan “Langsung”.

- Jika user memilih metode “Blok Transform” maka akan diminta masukan berupa blok-blok yang telah tersedia.

- Jika user memilih metode “Langsung” maka user akan diminta nilai prosentase yang nantinya akan digunakan untuk proses kuantisasi.

• Program akan melakukan transformasi berdasarkan metode yang telah dipilih.

• Matriks transformasi selanjutnya akan dikuantisasi. Proses kuantisasi juga terbagi dalam 2 (dua) metode berdasarkan metode yang telah dipilih sebelumnya.

- Jika user memilih metode “Blok Transform” maka kuantisasi akan dilakukan berdasarkan range nilai yang dimaksukkan oleh

user.

(75)

terkuantisasi akan dilakukan proses dezig-zag scanning untuk mengembalikan ke bentuk matriks.

• Kemudian program akan melakukan proses rekonstruksi.

Algoritma di atas jika dibuat dalam sebuah flow chart akan menjadi seperti gambar 3.17 dan gambar 3.18 di bawah ini.

Start

(76)
(77)

A

Citra Hasil Selesai

Lihat metode Blok matriks

Bagi matriks dalam blok

Kalikan dengan matriks kuantisasi

Hitung Nilai Invers

Langsung

Prosedur Hitung Sigma

Invers

Gambar 3.16 Flow chart invers

(78)

Pertama kali, pengguna (user) akan diminta masukan berupa berkas citra *.BMP. Kemudian user diminta untuk memilih metode kuantisasi yang akan dilakukan. Jika user memilih “Blok Matriks”, maka user akan diminta untuk menentukan blok nxn yang akan dipakai untuk mentransformasi citra masukan. Tetapi jika user memilih metode “Langsung” maka citra akan secara utuh ditransformasi tanpa membagi-bagi kedalam blok.

Pada metode blok matriks, program akan membagi matriks citra ke dalam blok-blok yang telah dipilih oleh user untuk selanjutnya dilakukan transformasi berdasarkan blok-blok tersebut. Setelah matriks citra ditransformasi, maka dapat langsung direkonstruksi. Proses rekontruksi juga dilakukan per blok, mengacu pada blok saat dilakukan transformasi. Proses kuantisasi kemudian dilakukan dengan memasukkan nilai yang akan menjadi range untuk proses kuantisasi.

Pada metode transformasi secara langsung, setelah matriks citra ditransformasi, maka program akan melakukan zig-zag scanning data matriks untuk selanjutnya dilakukan kuantisasi berdasarkan kualitas yang telah ditentukan oleh user. Matriks yang telah dikuantisasi kemudian dimekarkan kembali dengan

(79)

60

BAB IV

IMPLEMENTASI DAN PEMBAHASAN PROGRAM

A. Implementasi Program

Program ini dibuat dengan menggunakan mfile dan beberapa tampilan

menggunakan handle grafik yang merupakan program visual dari MATLAB versi

7.0. Handle grafik merupakan salah satu elemen dari MATLAB untuk

menampilkan data dan pembuatan GUI (Graphics User Interface).

Tampilan yang menggunakan handle grafik adalah tampilan “Help” dan

“About”, sedangkan tampilan lainnya menggunakan mfile.

Tampilan awal dari program ini adalah sebagai berikut:

(80)

Dalam tampilan awal program ini, terdapat dua tombol yaitu “Lanjutkan”

yang berfungsi untuk masuk ke tampilan program utama, dan “Keluar” yang

berfungsi untuk keluar dari program.

Sedangkan tampilan program utama adalah sebagai berikut:

Gambar 4.2 Tampilan program utama

Dalam tampilan tersebut terdapat 3 kotak untuk menampilkan citra asli

(kotak sebelah kiri), citra hasil transformasi (kotak tengah), dan citra hasil

rekonstruksi atau nilai invers dari nilai DCT (kotak sebelah kanan).

Dalam tampilan tersebut terdapat pula beberapa operasi yang dapat diakses

yaitu:

1. Tombol “Buka File Citra”

Tombol ini berfungsi untuk membuka file citra yang akan dimampatkan.

(81)

Gambar 4.3 Tombol “Buka File Citra”

Untuk membuka file citra ini juga dapat dilakukan dengan cara lain, yaitu

melalui menu bar. Dalam menu bar tersebut, pilih “File Æ Buka File Citra”. Setelah membuka file citra, maka program akan mengaktifkan radiobutton untuk

memilih metode kuantisasi.

Gambar 4.4 Menu bar “Buka File Citra”

2. Pilihan metode kuantisasi

Dalam proses ini, user diminta untuk memilih metode kuantisasi yang

akan digunakan. User hanya diperkenankan memilih salah satu saja, oleh karena

itu, jika user telah memilih, maka pilihan yang lainnya akan di-nonaktif-kan.

radiobutton

popup menu

Gambar

Gambar  4.23 Tampilan report.................................................................
Gambar 2.1. Pixel
Gambar 2.2 Citra Biner
Gambar 2.4 Citra berwarna
+7

Referensi

Dokumen terkait

) group by WaktuID, CabangID, MemberID, ProdukID, SupplierID 2.1.3 Query FaktaPengeluaran select WaktuID, CabangID, MemberID, ProdukID,

Yohanes Indrayono/Iman Santoso, S.E.. Yohanes Indrayono/Iman

Skripsi dengan judul “ Strategi Asatidz dalam Meningkatkan Kemampuan Membaca Al- Qur’an dengan Tartil Pada Santri TPQ Baiturrahman Demuk Pucanglaban Tulungagung ”

Dengan mengacu pada indikator yang telah ditetapkan sebelumnya dapat disimpulkan bahwa penerapan metode pembelajaran Inkuiri Terbimbing pada pokok bahasan kalor dapat

• Sistem yang dapat digunakan untuk mengukur performa rumah sakit dikaitkan dengan kompleksitas pelayanan yang dihasilkan dan biaya.. • National data base

K., Rivai Wardhani, ST, M.Sc, Priyo Budi Jatmiko, ST, M.Psi ,Rancang bangunmesin penggiling limbah ikan menjadi tepung ikan dengan kapasitas 118,8 kg/jam, Jurusan D-3

Beberapa orang (atau grup dari sebuah proyek besar) dapat diberikan tanggung jawab untuk melakukan tugas atau menyelesaikan kegiatan-kegiatan yang dilibatkan... Anda dapat