124
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 2008 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

kompresi citra menggunakan metode discrete cosine transform ( dct )

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: kompresi citra menggunakan metode discrete cosine transform ( dct )

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

2008

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 2: kompresi citra menggunakan metode discrete cosine transform ( dct )

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 2008

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 3: kompresi citra menggunakan metode discrete cosine transform ( dct )

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 4: kompresi citra menggunakan metode discrete cosine transform ( dct )

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 5: kompresi citra menggunakan metode discrete cosine transform ( dct )

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 6: kompresi citra menggunakan metode discrete cosine transform ( dct )

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 wajahmu turut melancarkan pedih di hati ini  Teman... Aku tdk mampu mengucapkan pujian atau kata‐kata manis utk memikat hatimu 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 Jesus Christ, my Lord

Bapak dan Ibu, teladanku Mbak Ria, my Sister

Almamaterku

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 7: kompresi citra menggunakan metode discrete cosine transform ( dct )

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.

Proses pemampatan ini dapat menggunakan 2 (dua) cara yaitu berdasarkan prosentase dan berdasarkan nilai ambang. Dari hasil pengujian yang dilakukan terhadap suatu citra dengan resolusi 128x128 pixel, maka untuk memperoleh hasil yang baik, metode yang digunakan adalah “Blok Matriks” dengan besar blok adalah 8x8 dan nilai ambang kuantisasi dibawah 50.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 8: kompresi citra menggunakan metode discrete cosine transform ( dct )

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.

This compression process can use 2 (two) method that is percentage based and threshold value based. From the output of the experiment that has done toward and image which has resolution 128x128 pixel, so to get the good output, methode that have to used is “Blok Matriks” with the amount of the blok is 8x8 and threshhold value is under 50.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 9: kompresi citra menggunakan metode discrete cosine transform ( dct )

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 10: kompresi citra menggunakan metode discrete cosine transform ( dct )

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,

dukungan dan perhatian kalian. Luv U all...

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 11: kompresi citra menggunakan metode discrete cosine transform ( dct )

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

Albertus Guritno Noviardhi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 12: kompresi citra menggunakan metode discrete cosine transform ( dct )

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

G. Sistematika Penulisan............................................................... 4

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 13: kompresi citra menggunakan metode discrete cosine transform ( dct )

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

a. Quality Progrresive........................................................ 18

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 14: kompresi citra menggunakan metode discrete cosine transform ( dct )

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

e. Perancangan Antarmuka (Interface)................................... 48

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 15: kompresi citra menggunakan metode discrete cosine transform ( dct )

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

LAMPIRAN............................................................................................. 97

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 16: kompresi citra menggunakan metode discrete cosine transform ( dct )

xvi

DAFTAR TABEL

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

Tabel 2.2 Header bitmap 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.5 Tabel 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

Tabel 4.12 Data pengujian program metode Langsung 128x128............ 91

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 17: kompresi citra menggunakan metode discrete cosine transform ( dct )

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-zag scan............................................................... 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

Gambar 3.15 Prosedur hitung sigma DCT.................................................. 57

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 18: kompresi citra menggunakan metode discrete cosine transform ( dct )

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 Implementasi penerapan input nilai kuantisasi.................... 67

Gambar 4.14 Implementasi penerapan 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

Gambar 4.21 Tampilan citra setelah rekonstruksi tanpa di kuantisasi..... 78

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 19: kompresi citra menggunakan metode discrete cosine transform ( dct )

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

Gambar 4.28 Tampilan peringatan 2........................................................ 84

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 20: kompresi citra menggunakan metode discrete cosine transform ( dct )

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.

Untuk mengatasi berbagai masalah tersebut di atas, maka dibutuhkan suatu

teknik untuk dapat memperkecil ukuran data gambar, yaitu dengan mengurangi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 21: kompresi citra menggunakan metode discrete cosine transform ( dct )

2

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.

4. Membuat program pemampatan data citra menggunakan metode DCT

dengan menggunakan MATLAB 7.0.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 22: kompresi citra menggunakan metode discrete cosine transform ( dct )

3

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:

1. Studi Literatur, yaitu mempelajari teori-teori yang berhubungan dengan

kompresi data, dan khususnya kompresi citra menggunakan DCT.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 23: kompresi citra menggunakan metode discrete cosine transform ( dct )

4

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

Berisi tentang implementasi dari desain yang sudah dibuat, beserta dengan

pembahasannya dan hasil program.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 24: kompresi citra menggunakan metode discrete cosine transform ( dct )

5

BAB V KESIMPULAN DAN SARAN

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

program.

DAFTAR PUSTAKA

LAMPIRAN

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 25: kompresi citra menggunakan metode discrete cosine transform ( dct )

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

)1,1( yxf

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 26: kompresi citra menggunakan metode discrete cosine transform ( dct )

7

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

Citra berwarna pada dasarnya merupakan kombinasi dari 3 warna primer

yaitu merah, hijau dan biru (Red, Green, Blue – RGB). Tiap pixel disusun oleh

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 27: kompresi citra menggunakan metode discrete cosine transform ( dct )

8

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 file berukuran 512 x 512 x 3 byte = 786.432

byte.

Gambar 2.4 Citra berwarna

B. Elemen-elemen Citra Digital

Citra digital mempunyai beberapa elemen dasar yang penting, diantaranya

adalah:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 28: kompresi citra menggunakan metode discrete cosine transform ( dct )

9

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)

Bentuk adalah sebuah properti intrinsik dari sebuah objek tiga dimensi.

Pada umumnya, citra yang dibentuk oleh mata merupakan citra dua dimensi,

sedangkan objek yang dilihat merupakan objek tiga dimensi. Informasi bentuk

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 29: kompresi citra menggunakan metode discrete cosine transform ( dct )

10

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

(R), green (G), dan blue (B). Ketiga warna tersebut dinamakan warna pokok

(primaries). Warna RGB yang sering disebut dengan truecolor (24bit/pixel) sering

dituliskan dengan 3 bilangan bulat antara 0 sampai dengan 255, yang masing-

masing merepresentasikan intensitas dari komponen warna merah, hijau, dan biru.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 30: kompresi citra menggunakan metode discrete cosine transform ( dct )

11

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

Saturation menyatakan tingkat kemurnaian warna cahaya, yaitu

mengindikasikan seberapa warna putih diberikan pada warna. Sebagai contoh,

warna merah adalah 100% warna jenuh (saturated color), sedangkan warna pink

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 31: kompresi citra menggunakan metode discrete cosine transform ( dct )

12

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

Microsoft Windows, (iii) berkas bitmap versi baru dari IBM OS/2 (Munir, 2004).

Perbedaan ketiga versi tersebut adalah panjang header bitmap-nya. Sedangkan

untuk ukuran header berkas sama untuk semua versi.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 32: kompresi citra menggunakan metode discrete cosine transform ( dct )

13

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

9 – 12 4 Height Tinggi bitmap dalam satuan pixel

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 33: kompresi citra menggunakan metode discrete cosine transform ( dct )

14

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

49 – 52 4 Size1 Nilai ukuran 1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 34: kompresi citra menggunakan metode discrete cosine transform ( dct )

15

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

Kompresi data berdasarkan pendekatan ruang didasarkan pada hubungan

spasial antara data di dalam suatu kelompok yang memiliki data yang sama.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 35: kompresi citra menggunakan metode discrete cosine transform ( dct )

16

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 file citra asli, tetapi perlu

diingat bahwa pengurangan derajat keabuan yang drastis akan banyak

berpengaruh terhadap kualitas citra hasil.

4. Pendekatan Fraktal

Pendekatan fraktal adalah suatu teknik pemampatan yang dilakukan pada

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 36: kompresi citra menggunakan metode discrete cosine transform ( dct )

17

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

bit yang lebih sedikit. Teknik kompresi citra dikembangkan untuk mempermudah

dalam penyimpanan dan pengiriman citra.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 37: kompresi citra menggunakan metode discrete cosine transform ( dct )

18

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

Citra yang dimampatkan juga dapat memiliki meta information seperti

statistik warna, tekstur, small preview image, dan author atau copyright

information.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 38: kompresi citra menggunakan metode discrete cosine transform ( dct )

19

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

Metode ini digunakan untuk mentransformasikan data dari domain ruang

ke domain frekuensi. Cara ini menghasilkan data yang lebih mudah

diproses untuk kompresi lebih lanjut. Metode yang banyak digunakan

berdasarkan metode transformasi diantaranya adalah Wavelet dan Discrete

Cosine Transform (DCT).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 39: kompresi citra menggunakan metode discrete cosine transform ( dct )

20

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.

Pengguna program tidak mengalami kesulitan pada saat akan

menggunakan program pemampatan yang dibuat, dengan kata lain

program pemampatan yang dibuat bersifat user friendly. Program tersebut

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 40: kompresi citra menggunakan metode discrete cosine transform ( dct )

21

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:

∑−

=⎥⎦⎤

⎢⎣⎡ +

=1

0 2)12(cos)()(2)(

N

x NixxpixeliC

NiDCT π ...................................................(2.1)

dengan

DCT( i) = nilai DCT indeks ke-i

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 41: kompresi citra menggunakan metode discrete cosine transform ( dct )

22

N = ukuran matriks

Pixel(x) = nilai pixel pada indeks ke-x

1)( =iC jika x > 0

21)( =iC jika 0=x

Sedangkan persamaan untuk invers DCT 1 dimensi adalah sebagai berikut:

∑−

=⎥⎦⎤

⎢⎣⎡ +

=1

0 2)12(cos)()(2)(

N

i NixiDCTiC

NxPixel π ...................................................(2.2)

dengan

DCT(i) = nilai DCT pada indeks ke-i

N = ukuran matriks

Pixel(x) = nilai ke-x

1)( =iC jika i > 0

21)( =iC jika 0=i

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] =

Sedangkan nilai IDCT dan citra hasil rekonstruksi adalah sebagai berikut:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 42: kompresi citra menggunakan metode discrete cosine transform ( dct )

23

[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.

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

yang terdapat dalam kolom DCT(i) adalah [12.727 -6.442 0 -0.673 0 -0.201 0

-0.051]. Hasil tersebut yang nantinya dapat digunakan untuk pemampatan data,

sebelum dikembalikan ke data aslinya. Pemampatan yang dilakukan tentunya

menggunakan aturan-aturan tertentu sehingga nantinya jika data tersebut

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 43: kompresi citra menggunakan metode discrete cosine transform ( dct )

24

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:

⎥⎦⎤

⎢⎣⎡ +

⎥⎦⎤

⎢⎣⎡ +

= ∑∑−

=

= Njy

NixyxpixeljCiC

NjiDCT

N

y

N

x 2)12(cos

2)12(cos),()()(2),(

1

0

1

0

ππ ..(2.3)

dengan

DCT(i , j)= nilai DCT pada indeks ke-(i,j)

N = ukuran matriks

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

1)(),( =jCiC jika i, j> 0

21)(),( =jCiC jika i, j = 0.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 44: kompresi citra menggunakan metode discrete cosine transform ( dct )

25

Tabel 2.5 Tabel penghitungan DCT 1 dimensi

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

8 0.195 -0.916 1.578 -2.344 2.559 -2.429 1.459 -0.101 -0.051

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 45: kompresi citra menggunakan metode discrete cosine transform ( dct )

26

Jika matriks berukuran MxN, maka persamaan di atas dapat dituliskan

sebagai berikut:

∑∑−

=

=⎥⎦⎤

⎢⎣⎡ +

⎥⎦⎤

⎢⎣⎡ +

=1

0

1

0 2)12(cos

2)12(cos),()()(22),(

M

x

N

y Njy

MixyxpixeljCiC

NMjiDCT ππ ...(2.4)

dengan

DCT(i , j)= nilai DCT pada indeks ke-(i,j)

N= ukuran baris matriks

M= ukuran kolom matriks

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

1)(),( =jCiC jika i, j> 0

21)(),( =jCiC jika i, j = 0.

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

⎥⎦⎤

⎢⎣⎡ +

⎥⎦⎤

⎢⎣⎡ +

= ∑∑−

=

= Njy

NixjiDCTjCiC

NyxPixel

N

i

N

j 2)12(cos

2)12(cos),()()(2),(

1

0

1

0

ππ ....(2.5)

dengan

DCT(i , j)= nilai DCT pada indeks ke-(i,j)

N = ukuran matriks

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

1)(),( =jCiC jika i, j> 0

21)(),( =jCiC jika i, j = 0.

Jika matriks berukuran MxN, maka persamaan di atas dapat dituliskan

sebagai berikut:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 46: kompresi citra menggunakan metode discrete cosine transform ( dct )

27

∑∑−

=

=⎥⎦⎤

⎢⎣⎡ +

⎥⎦⎤

⎢⎣⎡ +

=1

0

1

0 2)12(cos

2)12(cos),()()(22),(

M

i

N

j Njy

MixjiDCTjCiC

NMyxPixel ππ ....(2.6)

dengan

DCT(i , j)= nilai DCT pada indeks ke-(i,j)

N, M= ukuran matriks

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

1)(),( =jCiC jika i, j> 0

21)(),( =jCiC jika i, j = 0.

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:

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

3 13 30 22 39 28 27 4614 10 32 18 26 44 42 4540 33 35 16 22 35 31 2130 34 20 2 12 21 37 36

26 29 25 7 2 1 15 4323 30 38 17 6 0 4 3335 37 41 23 9 5 10 2839 37 40 24 11 8 19 30

=

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 47: kompresi citra menggunakan metode discrete cosine transform ( dct )

28

Nilai DCT dari matriks di atas adalah :

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

0 0 0 0 0 1 13 0 0 0 2 2 0 0 0 0 1 6 0 1 5 2 10 0 0 0 6 5 3 10 10 0 0 0 0 0 0 7 0 20 0 5 0 6 5 0 9 15 5 0 0 7 23 19 0 0 0 15 9 0 33 39 0 195

=

Sedangkan nilai IDCT dan citra hasil rekonstruksi adalah sebagai berikut:

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

3 13 30 22 39 28 27 4614 10 32 18 26 44 42 4540 33 35 16 22 35 31 2130 34 20 2 12 21 37 36

26 29 25 7 2 1 15 4323 30 38 17 6 0 4 3335 37 41 23 9 5 10 2839 37 40 24 11 8 19 30

=

Di bawah ini akan diilustrasikan bagaimana DCT diterapkan dalam sebuah

matriks 2 dimensi:

Terdapat sebuah matriks 2 dimensi sebagai berikut:

⎥⎥⎥

⎢⎢⎢

9 8 76 5 43 2 1

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

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

x = 0,1,2 ; y = 0,1,2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 48: kompresi citra menggunakan metode discrete cosine transform ( dct )

29

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

N = 3, M = 3

C(x) = 1,jika x>0, C(x) = 2

1 , jika x=0,

Pixel(x,y) = nilai pixel ke-(x,y),

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 ⎥⎥⎥

⎢⎢⎢

0 0 0 0 0 7.348-0 2.449- 15

. Terlihat

bahwa matriks hasil transformasi tersebut memuat banyak elemen 0 (nol). Hal ini

tentunya tidak efisien dalam penyimpana data tersebut. Oleh karena itu, data ini

nantinya akan dapat dimampatkan dengan menghilangkan elemen 0 (nol) yang

ada.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 49: kompresi citra menggunakan metode discrete cosine transform ( dct )

30

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

(3,3) 0.25 -0.75 3.3307e-016 -2 3 -8.8818e-016 1.75 -2.25 0 0

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 50: kompresi citra menggunakan metode discrete cosine transform ( dct )

31

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).

Nilai kuantisasi dapat pula ditentukan dengan menyatakan suatu nilai

sebagai batasan kuantisasi tersebut. Misalnya kuantisasi dinyatakan sebagai Q.

Maka nilai yang berada dalam range nilai Q dan -Q tersebut dikuantisasi menjadi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 51: kompresi citra menggunakan metode discrete cosine transform ( dct )

32

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-zag scanning).

Gambar 2.6 Urutan Zig-zag scan

Ilustrasi penerapan kuantisasi secara zig-zag adalah sebagai berikut:

Terdapat matriks 4x4 dengan elemen

⎥⎥⎥⎥

⎢⎢⎢⎢

2 1 15 436 0 4 339 5 10 28

11 8 19 30

, kemudian

matriks tersebut akan ditransformasi menjadi

⎥⎥⎥⎥

⎢⎢⎢⎢

0.7604 2.2168 0.8713- 1.9927- 3.3321- 3.5000- 6.7378 8.5000 3.3713- 6.6585- 11.2604- 3.5042 3.2359 25.0000 39.2241 56.0000

.

Jika matriks hasil transformasi ini dikenai fungsi zig-zag scan, maka akan menjadi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 52: kompresi citra menggunakan metode discrete cosine transform ( dct )

33

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

Penerapan DCT dalam kompresi data diharapkan dapat secara efisien

mengurangi besar file data tersebut tanpa mengurangi kualitas dari data yang

dimampatkan. Besarnya kompresi sangat tergantung dari kuantisasi. Jika

menginginkan kompresi yang besar (ukuran file semakin kecil) maka kuantisasi

yang dilakukan juga harus besar. Namun hal ini tentunya akan mengorbankan

kualitas data hasil kompresi tersebut, jika nantinya data ini dikembalikan ke

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 53: kompresi citra menggunakan metode discrete cosine transform ( dct )

34

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 ⎥⎥⎥

⎢⎢⎢

0 0 0 0 0 7.348-0 2.449- 15

. Kemudian matriks tersebut akan dikuantisasi

dengan nilai Q=3, maka hasilnya adalah ⎥⎥⎥

⎢⎢⎢

0 0 0 0 0 7.348-0 0 15

.

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.

Dalam proses penyimpanan, nilai nol (0) dapat diabaikan (tidak disimpan),

maka dalam kasus tersebut besar data sebelum dilakukan kuantisasi adalah

3x8bit=24bit, sedangkan setelah dilakukan kuantisasi besar data menjadi

2x8bit=16bit. Dalam kasus yang lebih besar, pengurangan data seperti ini

tentunya akan lebih signifikan dan dalam penyimpanan data tentunya akan lebih

efisien.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 54: kompresi citra menggunakan metode discrete cosine transform ( dct )

35

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 ⎥⎥⎥

⎢⎢⎢

0 0 0 0 0 0 0 2.449- 15

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

Matriks jarang adalah matriks yang banyak memiliki banyak elemen nol.

Matriks jarang menyimpan sebuah informasi yang terstruktur secara efisien,

terutama saat direpresentasikan terhadap sebuah format yang dimampatkan.

Pemampatan matriks jarang dapat dilakukan dengan menyimpan elemen tidak nol.

Penyimpanan dan manipulasi matriks jarang akan menjadi efisien jika

menggunakan algoritma dan struktur data tertentu, yang dapat menyimpan hasil

pemampatan matriks jarang tersebut secara efisien pula. Keuntungan yang didapat

dengan menggunakan pemampatan ini diantaranya adalah dapat mengurangi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 55: kompresi citra menggunakan metode discrete cosine transform ( dct )

36

tempat penyimpanan (storage) sebuah data. Sebagai contoh, matriks hasil

transformasi DCT di atas adalah:

⎥⎥⎥

⎢⎢⎢

0 0 0 0 0 7.348-0 2.449- 15

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

Index matriks menandakan nomor baris dan nomor kolom dari matriks,

sedangkan nilai matriks menandakan nilai dari baris dan kolom yang ditunjuk

pada indeks matriks. Sebagai contoh pada index matriks (1,1) dan nilai matriks

15. Hal ini menunjukkan data dengan nilai 15 terletak pada matriks baris 1 dan

kolom 1. Nilai yang di depan pada indeks matriks menunjukkan nomor baris

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 56: kompresi citra menggunakan metode discrete cosine transform ( dct )

37

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.

[ ]∑∑==

−=N

x

M

y

yxIyxIMN

MSE1

2

1

),('),(1 ............................................(2.7)

dimana: I(x,y) adalah nilai pixel dari 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.

)255(10log102

MSEPSNR = ..................................................................(2.8)

Nilai MSE yang rendah akan lebih baik, sedangkan nilai PSNR yang

tinggi juga akan lebih baik.

Sedangkan yang dimaksud dengan rasio pemampatan dalam sebuah

pemampatan citra adalah perbandingan antara besar file citra hasil pemampatan

dengan besar file citra asli. Hal ini dilakukan untuk melihat seberapa efektif

pemampatan yang dilakukan. Semakin besar prosentase nilai rasio, maka citra

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 57: kompresi citra menggunakan metode discrete cosine transform ( dct )

38

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:

nDataMasukaesiHasilKompresiRasioKompr = .........................................................(2.9)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 58: kompresi citra menggunakan metode discrete cosine transform ( dct )

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

- Media masukan : Keyboard dan Mouse

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 59: kompresi citra menggunakan metode discrete cosine transform ( dct )

40

- 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)

User0

Pemampatan Citra

Citra TransformCitra Rekonstruksi

Blok Matriks Citra AsliBlok 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

Gambar 3.1 Rancangan DAD level 0

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 60: kompresi citra menggunakan metode discrete cosine transform ( dct )

41

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

Gambar 3.2 Rancangan DAD level 1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 61: kompresi citra menggunakan metode discrete cosine transform ( dct )

42

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”

Proses IDCT digunakan untuk meng-invers nilai matriks citra setelah

dilakukan transformasi. Masukannya berupa matriks citra hasil

transformasi, ataupun matriks citra transformasi yang telah mengalami

proses kuantisasi juga. Output dari proses ini adalah sebuah citra yang

telah direkonstruksi, dan nilai matriks citra yang telah direkonstruksi pula.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 62: kompresi citra menggunakan metode discrete cosine transform ( dct )

43

(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”

Proses ini dilakukan jika user memilih “Hitung Error Perblok” pada

pilihan radiobutton hitung error. Proses ini mengerjakan 2 hal yaitu

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 63: kompresi citra menggunakan metode discrete cosine transform ( dct )

44

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

juga, yaitu nilai MSE dan nilai PSNR. Perbedaannya adalah proses

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 64: kompresi citra menggunakan metode discrete cosine transform ( dct )

45

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 file citra bertipe *.BMP.

• Menu “Home”

Berfungsi untuk kembali ke tampilan awal.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 65: kompresi citra menggunakan metode discrete cosine transform ( dct )

46

• 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”

Berfungsi untuk melakukan transformasi terhadap citra yang telah

dibuka.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 66: kompresi citra menggunakan metode discrete cosine transform ( dct )

47

• 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”

Berfungsi untuk melihat informasi tentang program.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 67: kompresi citra menggunakan metode discrete cosine transform ( dct )

48

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 METODEDISCRETE COSINE TRANSFORM

Lanjutkan

LOGO USD

PROGRAM STUDI ILMU KOMPUTERJURUSAN MATEMATIKA

FAKULTAS SAINS DAN TEKNOLOGIUNIVERSITAS SANATA DHARMA

2008

Keluar

Gambar 3.7 Rancangan tampilan awal program

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 68: kompresi citra menggunakan metode discrete cosine transform ( dct )

49

(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 METODEDISCRETE COSINE TRANSFORM

CITRA ASLI

Metode Kuantisasi

Blok

CITRA TRANSFORMASI

CITRA REKONSTRUKSI

MSE :

PSNR :

Prosentase

Blok Matriks

LangsungLihat Blok

Baris :

Kolom :

Perblok

Total

Hitung Error

Matriks Blok Citra Asli

Matriks BlokCitra Transform

Matriks BlokCitra Rekonstruksi

Tampilkan

Buka File Citra

Nama File:

Resolusi:

Transformasi

Kuantisasi

Rekonstruksi Keluar

Home

Reset

Gambar 3.8 Rancangan tampilan program utama

(ii) Tampilan Citra Asli

Pada tampilan ini, citra asli sebelum dilakukan pemampatan akan tampil

dalam kolom “Citra Asli” setelah pengguna (user) membuka file citra.

Terdapat beberapa informasi yang dapat dilihat yaitu nama file cita dan

resolusi citra.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 69: kompresi citra menggunakan metode discrete cosine transform ( dct )

50

(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

popup menu pemilihan prosentase untuk kuantisasi pemampatan yang

diinginkan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 70: kompresi citra menggunakan metode discrete cosine transform ( dct )

51

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 :

Open

Cancel

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 71: kompresi citra menggunakan metode discrete cosine transform ( dct )

52

(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 METODEDISCRETE COSINE TRANSFORM

HELP

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 72: kompresi citra menggunakan metode discrete cosine transform ( dct )

53

• 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

Gambar 3.12 Rancangan tampilan “Lihat Blok”

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 73: kompresi citra menggunakan metode discrete cosine transform ( dct )

54

• 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”

Tombol ini berfungsi untuk kembali ke tampilan awal program.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 74: kompresi citra menggunakan metode discrete cosine transform ( dct )

55

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.

- Jika user memilih metode “Langsung” maka kuantisasi akan

dilakukan berdasarkan prosentase yang telah dipilih, dengan

sebelumnya dilakukan zigzag scanning dan setelah nilai

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 75: kompresi citra menggunakan metode discrete cosine transform ( dct )

56

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

Baca Citra

Baca Ukuran

Citra

A

Pilih Metode

LangsungBagi

matriks dalam blok

Blok matriks

Matriks transformasi

Kuantisasi nilai

Kuantisasi dengan

prosentase

Matriks hasil kuantisasi

Pembagian dengan matriks

kuantisasi

Zig-zag scanning

Dezig-zag scanning

Hitung Nilai DCT

Prosedur Hitung

Transformasi

Prosedur Hitung

Transformasi

Hitung Nilai DCT

Matriks transformasi

Gambar 3.14 Flow chart transformasi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 76: kompresi citra menggunakan metode discrete cosine transform ( dct )

57

Gambar 3.15 Prosedur hitung sigma DCT

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 77: kompresi citra menggunakan metode discrete cosine transform ( dct )

58

A

Citra Hasil

Selesai

Lihat metodeBlok matriks

Bagi matriks dalam blok

Kalikan dengan matriks

kuantisasi

Hitung Nilai

Invers

Langsung

Prosedur Hitung Sigma

Invers

Gambar 3.16 Flow chart invers

Gambar 3.17 Prosedur hitung sigma Invers

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 78: kompresi citra menggunakan metode discrete cosine transform ( dct )

59

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

dezig-zag scanning lalu dikenai fungsi invers agar data matriks dapat kembali

seperti semula, atau mirip seperti data aslinya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 79: kompresi citra menggunakan metode discrete cosine transform ( dct )

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:

Gambar 4.1 Tampilan awal program

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 80: kompresi citra menggunakan metode discrete cosine transform ( dct )

61

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.

File citra yang dapat dibuka adalah file citra bertipe *.BMP.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 81: kompresi citra menggunakan metode discrete cosine transform ( dct )

62

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 4.5 Radiobutton dan popup menu pemilihan metode kuantisasi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 82: kompresi citra menggunakan metode discrete cosine transform ( dct )

63

Ada dua opsi yang dapat dipilih oleh user, yaitu “Blok Matriks” yang akan

mentransformasikan citra berdasarkan blok yang dipilih, dan “Langsung” yang

akan mentransformasikan citra secara langsung, tanpa dibagi dalam blok-blok

tertentu.

Dalam masing-masing pilihan tersebut tersedia popup menu yang

digunakan oleh masing-masing metode. Dalam metode “Blok Matriks” opsi yang

dapat dipilih adalah menentukan pembagian blok nxn pixel yang digunakan untuk

mentransformasikan citra. Sedangkan dalam metode “Langsung” adalah

menentukan prosentase yang nantinya akan digunakan untuk proses kuantisasi.

3. Tombol “Transformasi”

Tombol ini berfungsi untuk mentransformasikan citra yang telah dibuka.

Tombol ini akan aktif setelah user memilih metode transformasi yang akan

dipakai. Hasil dari transformasi ini akan ditampilkan di kotak tengah.

Gambar 4.6 Tombol “Transformasi”

Selain dengan menekan tombol “Transformasi”, cara lain yang dapat

digunakan untuk mentransformasikan citra yang telah dibuka adalah melalui menu

bar, yaitu dengan memilih “Edit Transformasi”.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 83: kompresi citra menggunakan metode discrete cosine transform ( dct )

64

Gambar 4.7 Menu bar “Transformasi”

Setelah tombol ini ditekan, maka citra hasil trnasformasi akan tampil di

kotak tengah. Hal ini juga akan mengaktifkan tombol untuk rekonstruksi.

4. Tombol “Rekonstruksi”

Tombol ini berfungsi untuk merekontruksi citra yang telah ditransformasi.

Gambar 4.8 Tombol “Rekonstruksi”

Selain dengan menekan tombol rekonstruksi, ada cara yang lain pula untuk

keluar dari aplikasi, yaitu melalui menu bar, pilih “Edit Rekonstruksi”.

Gambar 4.9 Menu bar “Rekonstruksi”

5. Tombol “Tampil” dan Edit text “Lihat Blok”

Setelah mengoperasikan fungsi rekonstruksi, maka akan mengaktifkan

tombol “Tampil” yang berfungsi untuk melihat blok citra asli, citra hasil

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 84: kompresi citra menggunakan metode discrete cosine transform ( dct )

65

transformasi, ataupun citra hasil rekonstruksi per 8x8 blok, dengan cara

memasukkan suatu nilai pada edit text yang tersedia. Nilai maksimal yang dapat

dimasukkan oleh user akan tampil di atas edit text tersebut.

Gambar 4.10 Tombol “Tampilkan” dan Edit text lihat blok

6. Grid nilai pixel

Nilai pixel blok 8x8 akan ditampilkan pada grid yang telah tersedia. Nilai

pixel tersebut akan tampil setelah user menekan tombol tampilkan, dan blok yang

akan tampil berdasarkan nilai masukan dari user.

Sebagai contoh misalnya user memasukkan nilai 5 pada “Baris” dan 6

pada “Kolom”, maka citra akan dibagi menjadi blok-blok 8x8 pixel, dan

penghitungan baris dan kolom berdasarkan dari blok-blok tersebut.

nilai pixel asli nilai pixel transformasi nilai pixel rekonstruksi

Gambar 4.11 Grid citra asli, transformasi, dan rekonstruksi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 85: kompresi citra menggunakan metode discrete cosine transform ( dct )

66

7. Input “Kuantisasi”

User dapat memasukkan nilai kuantisasi jika metode yang dipilih adalah

“Blok Matriks”. Hal ini disebabkan karena jika user memilih metode “Langsung”

maka kuantisasi akan ditentukan berdasarkan prosentase yang telah dipilih.

Masukan kuantisasi berupa sebuah nilai yang digunakan untuk meng-

kuantisasi nilai dari pixel hasil transformasi (membuat nol nilai yang berada di

range masukan user). Nilai yang dimasukkan nantinya akan dijadikan batas atas

dan batas bawah. Contohnya adalah sebagai berikut:

Nilai pixel sebelum kuantisasi

-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6

Nilai kuantisasi (Q) = 3

-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6

Hasil kuantisasi

-6 -5 -4 0 0 0 0 0 0 0 4 5 6

Gambar 4.12 Contoh penerapan kuantisasi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 86: kompresi citra menggunakan metode discrete cosine transform ( dct )

67

Dalam implementasinya akan menjadi seperti gambar di bawah ini:

Nilai pixel sebelum kuantisasi

Nilai kuantisasi (Q) = 10

Hasil kuantisasi

Gambar 4.13 Implementasi penerapan input nilai kuantisasi

Dari gambar tersebut terlihat bahwa nilai yang berada di atas -10 dan di

bawah 10 ( 1010 ≤≤− x ) akan dikuantisasi menjadi nol. Dalam kasus tersebut

antara nilai asli dan nilai rekonstruksi terlihat banyak berbeda dan banyak pula

yang mempunyai selisih yang besar. Hal ini disebabkan karena contoh yang

diambil adalah sebuah citra dengan resolusi 8x8 pixel sehingga range antara nilai

terbesar dengan nilai terkecil tidak terlalu lebar. Dalam kasus yang lain, setiap

citra memiliki range yang berbeda sehingga hasil yang didapat berbeda pula.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 87: kompresi citra menggunakan metode discrete cosine transform ( dct )

68

8. Prosentase kuantisasi

Prosentase kuantisasi ini dapat dipilih jika sebelumnya user memilih

metode kuantisasi “Langsung”. Nilai-nilai yang tertera pada popup menu

merupakan prosentase dari nilai yang akan digunakan untuk kuantisasi.

Sebelum kuantisasi dilakukan, program sebelumnya akan melakukan zig-

zag scanning untuk membuat matriks hasil transformasi menjadi sebuah vector.

Kemudian nilai vector tersebut akan dikuantisasi (di-nol-kan) sebanyak n% (n

persen), tergantung masukan dari user. Setelah itu dilakukan dezig-zag scanning

untuk mengembalikan vector tersebut menjadi matriks dengan ukuran seperti

semula, untuk mendapatkan nilai yang diinginkan.

Implementasi dalam program adalah sebagai berikut:

Nilai pixel sebelum kuantisasi

Prosentase kuantisasi = 50

Hasil kuantisasi

Gambar 4.14 Implementasi penerapan prosentase kuantisasi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 88: kompresi citra menggunakan metode discrete cosine transform ( dct )

69

Dalam gambar di atas diambil sebuah citra dengan resolusi 8x8 pixel.

Terlihat bahwa kuantisasi sebanyak 50% akan menghasilkan nilai 0 (nol)

sebanyak separuh dari ukuran citra.

Nilai-nilai yang dihasilkan setelah citra tersebut direkonstruksi terlihat

mempunyai selisih yang berbeda-beda. Hal ini juga berlaku terhadap citra yang

berbeda dengan prosentase yang berbeda pula. Semakin kecil prosentase, maka

akan semakin sedikit selisih nilai antara citra asli dengan citra hasil rekonstruksi.

9. Tombol “Reset”

Tombol ini berfungsi untuk melakukan reset (mengosongkan) kotak yang

digunakan untuk menampilkan citra, baik citra asli, citra hasil transformasi,

maupun citra hasil rekonstruksi. Selain itu, tombol ini juga berfungsi untuk

mengeset tombol-tombol dan beberapa menu kembali seperti awal saat program

ini pertama kali dijalankan.

Gambar 4.15 Tombol “Reset”

Selain dengan menekan tombol reset, ada cara yang lain pula untuk

melakukan reset, yaitu melalui menu bar, pilih “Edit Reset”.

Gambar 4.16 Menu bar “Reset”

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 89: kompresi citra menggunakan metode discrete cosine transform ( dct )

70

10. Menu bar “Help” dan “About”

Menu “Help” berfungsi untuk melihat bantuan bagaimana cara menggunakan

program ini. Sedangkan menu “About” berfungsi untuk melihat informasi tentang

program.

Gambar 4.17 Menu bar “Help” dan “About”

B. Pembahasan Program

Discrete Cosine Transform (DCT) adalah salah satu kelas operasi

matematika Fast Fourier Transform (FFT), dimana teknik ini mengambil suatu

sinyal, yang dalam hal ini adalah data pixel dari suatu mariks citra, kemudian

mentransformasikannya dengan persamaan yang ada.

Satu hal yang terlihat saat menguji persamaan algoritma DCT adalah

waktu yang dibutuhkan untuk penghitungan tiap elemen dalam DCT yang sangat

tergantung pada ukuran matriks. Karena elemen matriks citra yang dihitung cukup

banyak jika citra yang diambil berukuran besar, maka komputer juga memerlukan

waktu yang lebih lama untuk melakukan penghitungan tersebut.

Untuk mengatasi hal ini, implementasi DCT biasanya membagi sebuah

gambar menjadi lebih kecil, yang biasa disebut dengan blok, dan penghitungan

dilakukan dengan basis vector. Dalam implementasi di MATLAB, penghitungan

dengan basis vector dilakukan secara langsung dan bersama-sama, tanpa harus

menggunakan proses looping.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 90: kompresi citra menggunakan metode discrete cosine transform ( dct )

71

Blok-blok yang digunakan biasanya berukuran 8 x 8 atau 16 x 16 (2nx2n).

Blok-blok tersebut kemudian dihitung dengan basis vector. Hal ini bertujuan

untuk mempersingkat waktu yang lama saat mentransformasikan nilai pixel satu

per satu.

Sebagai contoh, sebuah citra dengan ukuran 128 x 128 pixel akan

ditransformasikan dengan persamaan DCT secara langsung, tanpa menggunakan

pembagian blok matriks 8 x 8 ataupun 16 x 16. Maka dari persamaan DCT 2.4

akan terjadi looping sebanyak 16.384 kali untuk menghitung nilai yang ada dalam

tanda zigma ( ∑ ). Ditambah dengan pengecekan nilai C(i) dan C(j) yang masing-

masing memerlukan looping yang sama juga. Jadi total looping yang dibutuhkan

sebanyak 268.435.456 kali.

Demikian pula yang terjadi saat akan merekontruksi citra dengan

persamaan invers DCT 2.6 yang berarti program akan melakukan looping

sebanyak 268.435.456 juga. Hal ini sangat tidak efisien dan menghabiskan banyak

waktu, apalagi jika ukuran citra jauh lebih besar.

Berbeda jika citra tersebut dibagi dalam blok 8 x 8 dan dihitung

menggunakan basis vector dalam implementasi dengan bahasa pemrograman

MATLAB. Maka hanya akan terjadi pengulangan sebanyak ((128 x 128) ÷ (8 x 8)

x 2)2 = 262.144 (Perkalian dengan dua (2) dilakukan untuk menghitung 2 proses

yaitu transformasi dan rekonstruksi, dan pengkuadratan dilakukan untuk

mengecekan nilai C(i) dan C(j)) Proses yang kedua ini tentunya dapat lebih

menghemat waktu jika dibandingkan dengan proses yang pertama.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 91: kompresi citra menggunakan metode discrete cosine transform ( dct )

72

Dalam metode kuantisasi “Langsung” citra tidak dibagi dalam blok-blok,

melainkan citra akan ditransformasi secara langsung. Namun proses penghitungan

nilai transformasi maupun rekonstruksi dilakukan dengan penghitungan basis

vector. Jadi proses dapat berjalan dengan lebih cepat jika dibanding dengan

menggunakan looping dengan perintah “for”.

Listing di bawah ini adalah contoh syntax penggunaan perintah looping

dengan statement for dan contoh penghitungan dengan basis vector.

%-----------Looping dengan statement “for”----------%

for i=1:m-1

for j=1:n-1

.....Isi dari program..... end

end

%---------------------------------------------------------------%

%-----------Penghitungan dengan basis vector---------%

i=1:m-1;

j=1:n-1;

[A,B]=meshgrid(i,j);

.....Isi dari program..... %---------------------------------------------------------------%

Pada contoh listing penghitungan dengan basis vector tersebut terdapat

statement [A,B]=meshgrid(i,j); yang berfungsi untuk menghasilkan array [A,B]

berdasarkan ukuran (i,j), yang berguna untuk mengalokasikan memori yang akan

dipakai nantinya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 92: kompresi citra menggunakan metode discrete cosine transform ( dct )

73

C. Pengujian Program

1. Persiapan Berkas Sumber

Berkas–berkas (file) yang disiapkan untuk menjadi citra uji ada beberapa

citra dengan resolusi yang berbeda, yang nantinya akan dimampatkan dengan

kualitas pemampatan yang berbeda dan dengan metode yang berbeda pula, untuk

membandingkan hasil dari masing-masing metode dan kualitas pemampatan.

Citra yang akan dijadikan citra uji adalah sebagai berikut:

Tabel 4.1 Citra uji

No. Citra Nama file Resolusi Jenis citra

1

64.bmp 64 x 64 Greyscale

2 naga.bmp 128 x 128 Greyscale

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 93: kompresi citra menggunakan metode discrete cosine transform ( dct )

74

2. Pengaktifan Program

a. Tampilan buka citra

Saat menekan tombol “Buka File Citra”, maka akan keluar tampilan

untuk memilih citra mana yang akan dibuka, dan citra yang dibuka harus

bertipe *.BMP.

Gambar 4.18 Tampilan Buka File Citra

Listing untuk membuka file citra adalah sebagai berikut:

%==============================================%

....

[nama_file, nama_path]=uigetfile(...

{'*.bmp','File Citra(*.bmp)'},...

'Buka File Citra');

if ~isequal(nama_file,0)

fullpath=strcat(nama_path,nama_file);

lasterr('');

citra=imread(fullpath);

....

%==============================================%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 94: kompresi citra menggunakan metode discrete cosine transform ( dct )

75

“Uigetfile” digunakan menampilkan antarmuka untuk membuka

file, dan tipe citra yang dibuka ditentukan pula dari script ini.

b. Tampilan citra asli

Setelah menentukan citra yang akan dibuka, maka program akan

menampilkan citra tersebut ke tampilan citra asli.

Gambar 4.19 Citra asli

Listing untuk menampilkan file citra adalah sebagai berikut:

%==============================================%

....

[citra, res_citra, nama_file, info]=buka_citra;

axes1 = axes('position',[0.120 0.37 0.25 0.446]);

imshow(citra);

....

%==============================================%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 95: kompresi citra menggunakan metode discrete cosine transform ( dct )

76

[citra, res_citra, nama_file, info]=buka_citra; digunakan untuk memanggil

function buka_citra. Sedangkan axes1 digunakan untuk membuat suatu

axes untuk menampilkan citra yang dibuka dan kemudian menentukan

dimana citra tersebut nantinya akan ditampilkan, dan imshow digunakan

untuk menampilkan citra tersebut.

c. Tampilan citra hasil transformasi

Tampilan hasil transformasi ini akan menampilkan citra yang telah

mengalami proses transformasi.

Gambar 4.20 Tampilan citra transformasi

Tampilan citra transformasi ini akan muncul setelah user menekan

tombol “Transformasi”, yang sebelumnya memilih metode yang akan

digunakan. Dalam contoh di atas, metode yang digunakan adalah dengan

“Blok Matriks” dan blok yang digunakan adalah 8x8

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 96: kompresi citra menggunakan metode discrete cosine transform ( dct )

77

Listing untuk menampilkan menghitung nilai transformasi (DCT):

%==============================================%

....

j1=0:blok-1;

j2=0:blok-1;

[J1,J2]=meshgrid(j1,j2);

C=cos(((2.*J1+1).*J2*pi)/(blok*2));

D=C';

citra=double(citra)./(blok/2);

ukuran=size(citra,1);

nblok=ukuran/blok;

brsklm=1:blok;

[baris,kolom]=meshgrid(0:(nblok-1), 0:(nblok-1));

baris=baris(:);

kolom=kolom(:);

citra_transform = zeros(size(citra));

for k=1:length(baris)

x=citra(baris(k)*blok+brsklm,kolom(k)*blok+brsklm);

D1=x*D;

D2=C*D1;

D2(:,1)=D2(:,1).*(1/sqrt(2));

D2(1,:)=D2(1,:).*(1/sqrt(2));

citra_transform(baris(k)*blok+brsklm,kolom(k)*blok+brsklm)=D2(brsklm,

brsklm);

end;....

%==============================================%

Dalam listing program di atas, membutuhkan sebuah masukan berupa

nilai dari variable blok. Nilai tersebut didapat dari function lain, dimana

function tersebut membaca popup menu saat user menentukan blok yang

akan dipakai.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 97: kompresi citra menggunakan metode discrete cosine transform ( dct )

78

Output dari listing program tersebut adalah citra_transform yang

nantinya akan ditampilkan sebagai citra hasil transformasi.

d. Tampilan citra hasil rekonstruksi, nilai pixel serta penghitungan error

Tampilan citra hasil rekonstruksi ini akan menampilkan citra yang

telah mengalami proses transformasi, dan kemudian direkonstruksi

(dikenai fungsi invers) untuk mendapatkan citra seperti semula.

Gambar 4.21 Tampilan citra setelah rekonstruksi tanpa di kuantisasi

Gambar di atas menunjukkan hasil rekonstruksi citra sebelum dikenai

proses kuantisasi. Tampak bahwa citra hasil rekonstruksi, dan nilai matriks

yang ditampilkan dalam grid citra asli dan grid citra rekonstruksi terlihat

sama. Hal ini juga tampak pada error yang ditampilkan. Pada MSE terlihat

nilai 0 (nol) dan pada PSNR juga tidak terdefinisi yang ditunjukkan

dengan ”inf” dengan satuan desible.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 98: kompresi citra menggunakan metode discrete cosine transform ( dct )

79

Namun setelah dikuantisasi dengan nilai tertentu, citra hasil

rekonstruksi maupun nilai matriks yang ditampilkan dalam grid akan

menjadi berbeda. Citra rekonstruksi akan tampak lebih buruk, tergantung

dari nilai kuantisasi yang dimasukkan. Semakin besar nilai kuantisasi,

maka akan semakin buruk hasil citra yang didapat.

Gambar di bawah ini adalah hasil setelah dikuantisasi dengan nilai

kuantisasi 100. Ini berarti nilai yang berada di antara -100 sampai dengan

100 akan dikuantisasi menjadi nol 0 (nol).

Gambar 4.22 Tampilan citra setelah rekonstruksi setelah dikuantisasi

Dalam tampilan di atas juga terlihat bahwa setelah mengalami proses

kuantisasi dengan nilai 100, terdapat nilai error MSE=460,97 dan

PSNR=21,49 dB. Semakin banyak error, maka nilai MSE semakin tinggi

dan nilai PSNR semakin rendah. Demikian pula sebaliknya, semakin

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 99: kompresi citra menggunakan metode discrete cosine transform ( dct )

80

sedikit error, maka nilai MSE semakin rendah dan nilai PSNR semakin

tinggi.

e. Tampilan report

Report digunakan untuk melihat laporan secara keseluruhan dari data-

data yang dihasilkan. Dari tampilan report ini, user dapat melihat dengan

lebih ringkas data-data yang telah diproses dan output-nya.

Gambar 4.23 Tampilan report

Dalam tampilan ini pula terdapat beberapa informasi yang belum

terdapat pada tampilan program utama, yaitu besar data setelah

transformasi, selisih data antara data asli dengan data setelah transformasi,

dan juga rasio kompresi.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 100: kompresi citra menggunakan metode discrete cosine transform ( dct )

81

Besar data setelah mengalami proses transformasi dan kuantisasi

dengan nilai 100 dalam kasus tersebut di atas terlihat sangat jauh

berkurang, tetapi nilai MSE yang didapat juga cukup besar. Jika dilihat

dari kualitas citra setelah direkonstruksi juga terlihat buruk. Hal ini

disebabkan oleh nilai kuantisasi yang terlalu besar.

Dalam kasus ini, user dapat menentukan seberapa toleransi kualitas

hasil citra rekonstruksi yang diinginkan. Setelah itu, user dapat melihat

dari hasil report. Berapa nilai kuantisasi, besar data transformasi, selisih

data, dan rasio kompresi yang masih dapat ditoleransi, serta hasil error

yang didapat.

f. Tampilan pertolongan program (help) dan informasi program

Tampilan ini berisi tentang cara penggunaan program.

Gambar 4.24 Tampilan petunjuk penggunaan program

Tampilan informasi program adalah tampilan yang berisi tentang

informasi program yang telah dibuat.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 101: kompresi citra menggunakan metode discrete cosine transform ( dct )

82

Gambar 4.25 Tampilan informasi program

Listing untuk menampilkan “Help”, dan “About”:

%==============================================%

....

h1 = uimenu('Parent',h0,'Label','Help','Tag','uimenu3');

h2 =

uimenu('Parent',h1,'Callback','pertolongan','Label','Help','Tag','help','Enable','on');

h2 =

uimenu('Parent',h1,'Callback','about','Label','About','Tag','about','Enable','on');

...

%==============================================%

g. Tampilan pesan kesalahan

Progam ini juga akan menampilkan berbagai pesan kesalahan apabila

user salah dalam mengoperasikan program. Berbagai pesan kesalahan ini

antara lain:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 102: kompresi citra menggunakan metode discrete cosine transform ( dct )

83

Gambar 4.26 Tampilan pesan error

Pesan ini akan tampil jika ukuran blok yang dipilih oleh user lebih

besar daripada ukuran citra masukan. Misalnya ukuran citra masukan

adalah 64x64 pixel, sedangkan ukuran blok yang dipilih adalah 128x128,

maka pesan ini akan muncul, hal ini disebabkan karena citra dengan

resolusi 64x64 pixel tidak dapat dibagi menjadi blok 128x128.

h. Tampilan peringatan

a. Peringatan dalam memasukkan blok matriks

User juga akan mendapat peringatan jika ada input yang salah.

Peringatan kesalahan tersebut adalah sebagai berikut:

Gambar 4.27 Tampilan peringatan 1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 103: kompresi citra menggunakan metode discrete cosine transform ( dct )

84

Peringatan ini akan muncul jika user memilih metode kuantisasi “Blok

Matriks” dan kemudian menekan tombol “Tansformasi”, tetapi belum

memilih blok matriks pada popup menu.

b. Peringatan dalam memasukkan baris dan kolom

Jika user salah dalam memasukkan baris dan kolom yang digunakan

untuk melihat blok matriks, ataupun salah satu baris atau kolom atau

keduanya dalam keadaan kosong, dan user menekan tombol “Tampil”

maka akan muncul peringatan seperti gambar 4.28 di bawah ini:

Gambar 4.28 Tampilan peringatan 2

Di atas kotak untuk input angka baris dan kolom tercantum batas

maksimal user dapat memasukkan nilai. Jika user memasukkan sebuah

nilai yang melebihi batas maksimal tersebut maka peringatan ini akan

muncul.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 104: kompresi citra menggunakan metode discrete cosine transform ( dct )

85

D. Perbandingan hasil pemampatan

Dari 2 metode transformasi yang telah diujikan terhadap citra uji,

maka didapat perbandingan hasil yang diperoleh antara citra asli dengan

citra hasil transformasi, yaitu sebagai berikut:

1. Metode “Blok Matriks”

a. Citra dengan resolusi 64 x 64 pixel

Citra ini diuji dengan berbagai ukuran blok matriks, dan dengan

nilai kuantisasi yang berbeda. Hasil dari pengujian tersebut terlihat

seperti tabel di bawah ini:

Tabel 4.2 Data pengujian program metode Blok Matriks 8x8

No Ukuran file Asli

Ambang Kuantisasi

Besar data asli (Matriks)

Besar data transformasi

MSE Total

PSNR Total (dB) Rasio (%)

1

8 KB

0 4096 4096 0 Inf 100

2 10 4096 2092 13,29 36,89 51,07

3 50 4096 318 249,47 24,16 7,76

4 75 4096 188 367,45 22,48 4,59

5 100 4096 131 471,74 21,39 3,20

Hasil pengujian dalam tabel 4.2 menyatakan bahwa banyaknya

elemen matriks pada data asli yang harus disimpan adalah 4096 (64x64

pixel). Matriks citra tersebut ditransformasi dengan menggunakan metode

“Blok Matriks” dengan besar blok 8x8, dengan nilai ambang kuantisasi

yang berbeda-beda (dapat dilihat pada kolom “Ambang Kuantisasi”).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 105: kompresi citra menggunakan metode discrete cosine transform ( dct )

86

Dari pengujian tersebut terlihat bahwa semakin besar ambang

kuantisasi, maka akan semakin besar pula error yang didapat. Hal ini

ditunjukkan dengan nilai MSE (Mean Squared Error) yang didapat (dapat

dilihat dalam kolom “MSE Total”). Semakin besar nilai MSE,

menunjukkan semakin besar error yang didapat. Selain itu, besarnya

ambang kuantisasi juga akan mengakibatkan nilai PSNR (Peak Signal to

Noise Ratio) semakin kecil dan nilai rasio atau prosentase perbandingan

antara hasil pemampatan dan data asli (dalam tabel “Besar Data

Transformasi” dan “Besar Data Asli”) juga akan semakin kecil.

Hal tersebut di atas mengakibatkan kualitas citra hasil rekonstruksi

semakin buruk. Atau jika citra tersebut dilihat dalam bentuk matriks, maka

nilai matriks hasil rekonstruksi akan semakin menjauhi nilai matriks asli.

Hasil pengujian yang lain dapat dilihat pada tabel 4.3 sampai dengan

4.10. Perbedaan pengujian terletak pada blok matriks yang diujikan pada

citra yang mempunyai resolusi sama. Metode tersebut juga diujian dengan

citra yang mempunyai resolusi lebih besar dan dengan blok matriks yang

berbeda-beda pula.

Tabel 4.3 Data pengujian program metode Blok Matriks 16x16

No Ukuran file Asli

Ambang Kuantisasi

Besar data asli (Matriks)

Besar data transformasi

MSE Total

PSNR Total (dB) Rasio (%)

1

8 KB

0 4096 4096 0 Inf 100

2 10 4096 2210 14,04 36,66 53,96

3 50 4096 270 274,13 23,75 6,59

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 106: kompresi citra menggunakan metode discrete cosine transform ( dct )

87

4 75 4096 137 395,88 22,16 3,34

5 100 4096 90 483,04 21,29 2,20

Tabel 4.4 Data pengujian program metode Blok Matriks 32x32

No Ukuran file Asli

Ambang Kuantisasi

Besar data asli (Matriks)

Besar data transformasi

MSE Total

PSNR Total (dB) Rasio (%)

1

8 KB

0 4096 4096 0 Inf 100

2 10 4096 2304 14,25 36,59 56,25

3 50 4096 261 307,44 23,25 6,37

4 75 4096 126 422,34 21,87 3,08

5 100 4096 77 508,02 21,07 1,88

Tabel 4.5 Data pengujian program metode Blok Matriks 64x64

No Ukuran file Asli

Ambang Kuantisasi

Besar data asli (Matriks)

Besar data transformasi

MSE Total

PSNR Total (dB) Rasio (%)

1

8 KB

0 4096 4096 0 Inf 100

2 10 4096 2579 11,99 37,34 62,96

3 50 4096 233 337,97 22,84 5,69

4 75 4096 102 450,34 21,60 2,49

5 100 4096 74 502,57 21,12 1,81

b. Citra dengan resolusi 128 x 128 pixel

Tabel 4.6 Data pengujian program metode Blok Matriks 8x8

No Ukuran file Asli

Ambang Kuantisasi

Besar data asli (Matriks)

Besar data transformasi

MSE Total

PSNR Total (dB) Rasio (%)

1 12 KB 0 16384 16384 0 Inf 100

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 107: kompresi citra menggunakan metode discrete cosine transform ( dct )

88

2 10 16384 5075 5,39 40,81 30,98

3 50 16384 1772 151,77 26,32 10,82

4 75 16384 1110 303,12 23,31 6,77

5 100 16384 761 460,97 21,49 4,64

Tabel 4.7 Data pengujian program metode Blok Matriks 16x16

No Ukuran file Asli

Ambang Kuantisasi

Besar data asli (Matriks)

Besar data transformasi

MSE Total

PSNR Total (dB) Rasio (%)

1

12 KB

0 16384 16384 0 Inf 100

2 10 16384 5790 6,67 39,89 35,34

3 50 16384 1676 184,07 25,48 10,23

4 75 16384 909 358,96 22,58 5,55

5 100 16384 578 509,16 21,06 3,53

Tabel 4.8 Data pengujian program metode Blok Matriks 32x32

No Ukuran file Asli

Ambang Kuantisasi

Besar data asli (Matriks)

Besar data transformasi

MSE Total

PSNR Total (dB) Rasio (%)

1

12 KB

0 16384 16384 0 Inf 100

2 10 16384 7379 9,57 38,32 45,04

3 50 16384 1771 247,56 24,19 10,81

4 75 16384 961 432,64 21,77 5,87

5 100 16384 563 611,99 20,26 3,44

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 108: kompresi citra menggunakan metode discrete cosine transform ( dct )

89

Tabel 4.9 Data pengujian program metode Blok Matriks 64x64

No Ukuran file Asli

Ambang Kuantisasi

Besar data asli (Matriks)

Besar data transformasi

MSE Total

PSNR Total (dB) Rasio (%)

1

12 KB

0 16384 16384 0 Inf 100

2 10 16384 8991 12,68 37,10 54,88

3 50 16384 1990 298,81 23,38 12,15

4 75 16384 972 529,36 20,89 5,93

5 100 16384 552 721,77 19,55 3,37

Tabel 4.10 Data pengujian program metode Blok Matriks 128x128

No Ukuran file Asli

Ambang Kuantisasi

Besar data asli (Matriks)

Besar data transformasi

MSE Total

PSNR Total (dB) Rasio (%)

1

12 KB

0 16384 16384 0 Inf 100

2 10 16384 11566 9,54 38,34 70,59

3 50 16384 2061 416,70 21,93 12,58

4 75 16384 900 675,56 19,83 5,49

5 100 16384 521 848,12 18,85 3,18

Dari tabel-tabel di atas terlihat bahwa dengan nilai kuantisasi yang

sama, semakin besar blok maka akan semakin kecil data transformasi (data

yang harus disimpan) berapapun resolusi citranya, yang menyebabkan

semakin besar pula error yang didapat. Hal ini tentunya akan berpengaruh

pada kualitas citra hasil rekonstruksi yang terlihat semakin tidak

menyerupai citra aslinya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 109: kompresi citra menggunakan metode discrete cosine transform ( dct )

90

2. Metode “Langsung”

a. Citra dengan resolusi 64 x 64 pixel

Citra ini diuji dengan nilai prosentase kuantisasi yang berbeda.

Hasil dari pengujian tersebut terlihat seperti tabel di bawah ini:

Tabel 4.11 Data pengujian program metode Langsung 64x64

No Ukuran file Asli

ProsentaseKuantisasi

Besar data asli (Matriks)

Besar data transformasi

MSE Total

PSNR Total (dB) Rasio (%)

1

8 KB

10 4096 3686 223,65 24,64 89,99

2 20 4096 3276 210,66 24,90 79,98

3 50 4096 2048 144,99 26,52 50,00

4 75 4096 1024 242,64 24,28 25,00

5 90 4096 409 364,31 22,52 9,99

6 99 4096 40 731,60 19,49 0,98

Hasil pengujian citra dengan metode yang berbeda ini

menunjukkan hasil yang berbeda pula. Dalam tabel 4.11 terlihat citra

dengan besar data matriks asli adalah 4096 (64x64 pixel) diuji dengan

tingkatan prosentase kuantisasi yang berbeda. Prosentase ini yang nantinya

akan dipakai untuk melakukan proses kuantisasi, sampai seberapa persen

matriks yang akan di-nol-kan.

Dari hasil pengujian tersebut, semakin besar prosentase kuantisasi,

yang berarti bahwa semakin banyak nilai matriks yang di-nol-kan, maka

besar data yang harus disimpan (besar data transformasi) akan semakin

kecil. Hal ini berakibat pada nilai error (MSE) yang didapat semakin

besar, sedangkan nilai PSNR (Peak Signal to Noise Ratio) akan semakin

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 110: kompresi citra menggunakan metode discrete cosine transform ( dct )

91

kecil. Jika nilai-nilai tersebut direpresentasikan sebagai sebuah citra, maka

kualitas citra akan terlihat lebih buruk, dan hasil matriks citra rekonstruksi

semakin berbeda dari matriks citra asli. Demikian pula yang terjadi pada

nilai rasio (prosentase perbandingan antara “Besar Data Transformasi”

dengan “Besar Data Asli”) akan semakin kecil.

b. Citra dengan resolusi 128 x 128 pixel

Tabel 4.12 Data pengujian program metode Langsung 128x128

No Ukuran file Asli

ProsentaseKuantisasi

Besar data asli (Matriks)

Besar data transformasi

MSE Total

PSNR Total (dB) Rasio (%)

1

8 KB

10 16384 14745 422,48 21,87 90,00

2 20 16384 13107 390,64 22,21 80,00

3 50 16384 8192 222,22 24,66 50,00

4 75 16384 4096 450,99 21,59 25,00

5 90 16384 1638 771,04 19,26 10,00

6 99 16384 163 1420,11 16,61 0,99

Tabel di atas menggambarkan bahwa berapapun ukuran citra, dengan

prosentase kuantisasi yang semakin besar maka data transformasi (data

yang harus disimpan) akan semakin kecil, yang berakibat pada besarnya

nilai error yang didapat. Sehingga kualitas citra pun akan semakin tidak

menyerupai citra aslinya. Demikian pula sebaliknya, semakin kecil

prosentase kuantisasi, maka semakin kecil pula error yang didapat, tetapi

data transformasi menjadi lebih besar jika dibandingkan dengan prosentase

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 111: kompresi citra menggunakan metode discrete cosine transform ( dct )

92

kuantisasi yang lebih besar. Tetapi hal ini mengakibatkan kualitas citra

yang lebih baik.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 112: kompresi citra menggunakan metode discrete cosine transform ( dct )

93

BAB V

KESIMPULAN DAN SARAN

A. Kesimpulan

Dari data yang diperoleh saat hasil pengujian program, maka dapat diambil

beberapa kesimpulan yang dapat diambil dari penulisan tugas akhir ini adalah:

1. Metode Discrete Cosine Transform (DCT) dapat digunakan untuk proses

pemampatan file citra.

2. Dalam proses pemampatan tersebut dapat menggunakan berbagai cara

kuantisasi, diantaranya adalah dengan menentukan nilai ambang kuantisasi

atau dengan menentukan prosentase untuk kuantisasi.

3. Kualitas pemampatan tergantung dari cara dan besarnya ambang kuantisasi.

Semakin kecil ukuran file yang dihasilkan, maka semakin besar pula nilai

MSE yang didapat dan semakin kecil nilai PSNR.

4. Dari kedua metode yang diterapkan, metode “Blok Matriks” menghasilkan

output yang lebih baik daripada metode “Langsung”. Hal tersebut disebabkan

karena nilai ambang kuantisasi pada metode “Blok Matriks” dapat ditentukan

oleh user sehingga nilai-nilai yang penting dapat diminimalisasi untuk

dikuantisasi. Sedangkan pada metode “Langsung” user tidak dapat

menentukan sendiri batas nilai yang akan dikuantisasi karena metode tersebut

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 113: kompresi citra menggunakan metode discrete cosine transform ( dct )

94

akan mengambil nilai berdasarkan prosentase, dan tidak menghiraukan

apakah nilai yang dikuantisasi itu nilai yang penting atau bukan.

5. Dari hasil pengujian yang dilakukan, dengan citra “naga.bmp” yang

mempunyai resolusi 128x128 pixel, maka nilai yang didapat untuk hasil yang

masih baik adalah dengan metode blok matriks, dengan besar blok 8x8 dan

nilai ambang kuantisasi dibawah 50.

B. Saran

Pada perkembangan selanjutnya dapat dikembangkan suatu program

pemampatan citra dengan resolusi M x N dan citra berwarna. Dan juga dapat

dikembangkan sebuah aplikasi yang tidak hanya sekedar untuk menganalisis,

tetapi juga hasil dari pemampatan dapat disimpan, sehingga dapat benar-benar

menghemat media penyimpanan data.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 114: kompresi citra menggunakan metode discrete cosine transform ( dct )

95

Daftar Pustaka

Gonzales, Rafael C., Richard E. Woods, Steven L. Eddins, 2004, Digital Image

Processing Using MATLAB, Upper Saddle River, Prentice Hall, New

Jersey.

Hankerson, Darel, Greg A. Harris, and Peter D. Johnson, Jr., 2003, Introduction to

Information Theory and Data Compression, 2nd ed., A CRC Press

Company, Wasington, DC.

Hansen Per C., James G. Nagy, Dianne P. O’Leary, 2006, Deblurring Images

Matrices, Spectra, and Filtering, Society for Industrial and Applied

Mathematics, Philadelphia.

Magrab, Edward B., Shapour Azarm, Balakumar Balachandran, James H.

Duncan, Keith E. Herold, Gregory C. Walsh, 2005, An Engineer’s Guide

to MATLAB, 2nd ed., Upper Saddle River, Prentice Hall, New Jersey.

Munir, Renaldi, 2004, Pengolahan Citra Digital dengan Pendekatan Algoritmik,

Informatika, Bandung.

Nelson, Mark, 1992, The Data Compression Book, M&T Publishing Inc, Borel

Avenue, San Mateo, California.

Pitas, Ioannis, 1993, Digital Image Processing Algorithms, Prentice Hall

International, United Kingdom.

Salomon, David, 2001, Data Compression The Complete Reference, Dept. Of

Computer Science, California State University, Northridge, USA.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 115: kompresi citra menggunakan metode discrete cosine transform ( dct )

96

Sonka, M., Vaclav Hlavac, dan Roger Boyle, Image Processing, Analysis, and

Machine Vision, 2nd ed., 1998, International Thompson Publishing, CA

Steinmetz, Ralf dan Klara Nahrstedt, Multimedia: Computing, Communication,

and Application, 1995, Prentice Hall Inc., NJ

Yonata, Yosi, 2002, Kompresi Video, PT Elex Media Komputindo, Jakarta:

Gramedia

http://en .wikipedia.org, diakses tanggal 08 Oktober 2006

http://www.cs.af.ac.uk, diakses tanggal 20 Maret 2007

http://www.mathworks.com, diakses tanggal 20 Maret 2007

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 116: kompresi citra menggunakan metode discrete cosine transform ( dct )

LAMPIRAN

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 117: kompresi citra menggunakan metode discrete cosine transform ( dct )

97

 

 

PERBANDINGAN CITRA ASLI DENGAN

CITRA HASIL REKONSTRUKSI

Citra resolusi 128x128 dengan Blok Matriks 8x8

Citra Asli

Ambang kuantisasi = 10

Ambang kuantisasi = 50

Ambang kuantisasi = 75

Ambang kuantisasi = 100

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 118: kompresi citra menggunakan metode discrete cosine transform ( dct )

98

 

 

Citra resolusi 128x128 dengan Blok Matriks 16x16

Citra Asli

Ambang kuantisasi = 10

Ambang kuantisasi = 50

Ambang kuantisasi = 75

Ambang kuantisasi = 100

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 119: kompresi citra menggunakan metode discrete cosine transform ( dct )

99

 

 

Citra resolusi 128x128 dengan Blok Matriks 32x32

Citra Asli

Ambang kuantisasi = 10

Ambang kuantisasi = 50

Ambang kuantisasi = 75

Ambang kuantisasi = 100

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 120: kompresi citra menggunakan metode discrete cosine transform ( dct )

100

 

 

Citra resolusi 128x128 dengan Blok Matriks 64x64

Citra Asli

Ambang kuantisasi = 10

Ambang kuantisasi = 50

Ambang kuantisasi = 75

Ambang kuantisasi = 100

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 121: kompresi citra menggunakan metode discrete cosine transform ( dct )

101

 

 

Citra resolusi 128x128 dengan Blok Matriks 128x128

Citra Asli

Ambang kuantisasi = 10

Ambang kuantisasi = 50

Ambang kuantisasi = 75

Ambang kuantisasi = 100

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 122: kompresi citra menggunakan metode discrete cosine transform ( dct )

102

 

 

Citra resolusi 128x128 dengan metode langsung

Citra asli

Prosentase = 10%

Prosentase = 20%

Ambang kuantisasi = 50%

Ambang kuantisasi = 75%

Ambang kuantisasi = 90%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 123: kompresi citra menggunakan metode discrete cosine transform ( dct )

103

 

 

LISTING PROGRAM

%----------DCT----------% function citra_transform=dct2blok(citra,blk,selek); %Input: % X - matriks harus 2^n x 2^n % blok - ukuran blok harus square (8x8, 16x16, ...) % %Output: % citra_transform - DCT matriks terbagi dalam blok % global selek if selek==1

blok=blk; elseif selek==0

[m n]=size (citra); blok=m;

end j1=0:blok-1; j2=0:blok-1; [J1,J2]=meshgrid(j1,j2); C=cos(((2.*J1+1).*J2*pi)/(blok*2)); D=C'; citra=double(citra)./(blok/2); ukuran=size(citra,1); nblok=ukuran/blok; brsklm=1:blok; [baris,kolom]=meshgrid(0:(nblok-1), 0:(nblok-1)); baris=baris(:); kolom=kolom(:); citra_transform = zeros(size(citra)); for k=1:length(baris)

x=citra(baris(k)*blok+brsklm,kolom(k)*blok+brsklm); D1=x*D; D2=C*D1; D2(:,1)=D2(:,1).*(1/sqrt(2)); D2(1,:)=D2(1,:).*(1/sqrt(2)); citra_transform(baris(k)*blok+brsklm,kolom(k)*blok+brsklm)=D2(brsklm,brsklm);

end; %----------IDCT----------% function citra_rekons=blkidct2cos(citra,dqZig,blk,selek,qZig); %Output: % citra - inverse transformed matrix % qmtrx=get(findobj(figura,'Tag','quant_axes'),'UserData'); % dqZig=round(blkproc(Z,[8 8],'x./P1',qmtrx)); if selek==1

blok=blk; else

[m n]=size (citra); blok=m;

end blok=blk; j1=0:blok-1; j2=0:blok-1; [J1,J2]=meshgrid(j1,j2); C=cos(((2.*J1+1).*J2*pi)/(blok*2)); D=C';

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 124: kompresi citra menggunakan metode discrete cosine transform ( dct )

104

 

 

dqZig=double(dqZig)./(blok/2); ukuran=size(dqZig,1); nblok=ukuran/blok; brsklm=1:blok; [baris,kolom]=meshgrid(0:(nblok-1), 0:(nblok-1)); baris=baris(:); kolom=kolom(:); citra_rekons = zeros(size(dqZig)); for k=1:length(baris)

x=dqZig(baris(k)*blok+brsklm,kolom(k)*blok+brsklm); x(:,1)=x(:,1).*(1/sqrt(2)); x(1,:)=x(1,:).*(1/sqrt(2)); D1=x*C; D2=D*D1; citra_rekons(baris(k)*blok+brsklm,kolom(k)*blok+brsklm)=D2 (brsklm,brsklm);

end;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI