SIMULASI TEKNIK KOMPRESI CITRA MENGGUNAKAN DISCRETE COSINE TRANSFORM (DCT) TUGAS AKHIR - Simulasi teknik kompresi citra menggunakan DCT - USD Repository
SIMULASI TEKNIK KOMPRESI CITRA MENGGUNAKAN
DISCRETE COSINE TRANSFORM (DCT)
TUGAS AKHIR
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Oleh:
Nama : Lukas Pandu Prima
NIM : 025114012
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2007
i
SIMULATION TECHNIQUE IMAGE COMPRESSION USING
DISCRETE COSINE TRANSFORM ( DCT )
FINAL PROJECT
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Teknik Degree
In Electrical Engineering Study Program
By:
Name : Lukas Pandu Prima
Student Number : 025114012
ELECTRICAL ENGINEERING STUDY PROGRAM
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF ENGINEERING
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2007
ii
HALAMAN PERSETUJUAN
TUGAS AKHIR
SIMULASI TEKNIK KOMPRESI CITRA MENGGUNAKAN
DISCRETE COSINE TRANSFORM (DCT)
(SIMULATION TECHNIQUE IMAGE COMPRESSION USING
DISCRETE COSINE TRANSFORM (DCT))
Oleh :
LUKAS PANDU PRIMA
NIM : 025114012
Telah disetujui oleh :
30 JULI 2007
Damar Wijaya, S.T., M.T.
…………………………
iii
………………
HALAMAN PENGESAHAN
SIMULASI TEKNIK KOMPRESI CITRA MENGGUNAKAN
DISCRETE COSINE TRANSFORM (DCT)
Oleh :
LUKAS PANDU PRIMA
NIM : 025114012
Telah dipertahankan di depan Panitia Penguji
Pada tanggal : 30 Juli 2007
dan dinyatakan memenuhi syarat
Susunan Panitia Penguji
Nama Lengkap
Ketua
Tanda Tangan
: A. Bayu Primawan, S.T., M.Eng.
Sekretaris : Damar Widjaja, S.T., M.T.
...................................
...................................
Anggota
: Pius Yozy Merucahyo, S.T., M.T.
Anggota
: Wiwien Widyastuti, S.T., M.T.
...................................
...................................
Yogyakarta,
Agustus 2007
Fakultas Teknik Universitas Sanata Dharma
Dekan
Ir. Greg. Heliarko, SJ., B. ST., MA., M. Sc
iv
HALAMAN PERNYATAAN KEASLIAN KARYA
“Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini
tidak memuat karya atau bagian karya orang lain,
kecuali yang telah disebutkan dalam kutipan dan daftar pustaka,
sebagaimana layaknya karya ilmiah.”
Yogyakarta, 2007
Lukas Pandu Prima
v
HALAMAN PERSEMBAHAN
Kupersembahkan karya sederhana ini untuk
Tuhan Yesus Kristus
Bapak dan Ibuku
serta
Adik-adikku
vi
vii
INTISARI
Tugas akhir ini mendeskripsikan tentang program simulasi untuk teknik
kompresi citra menggunakan Discrete Cosine Transform (DCT). Program ini akan
mensimulasikan tahap-tahap perancangan kompresi citra, yaitu kompresi citra dan
ekspansi citra.
Program ini akan menghasilkan citra hasil ekspansi dari citra aslinya.
Spesifikasi yang dibutuhkan yaitu jumlah piksel tiap blok downsampling, jumlah
piksel tiap blok DCT dan tabel kuantisasi. Hasil yang didapat berupa rasio kompresi
dan rata-rata error tiap piksel untuk masing-masing spesifikasi yang dimasukkan.
Dari hasil yang didapat kemudian dapat ditentukan spesifikasi terbaik untuk teknik
kompresi citra.
Program simulasi untuk kompresi citra menggunakan DCT telah
diimpementasikan dan dilakukan pengujian untuk mengamati kinerja kompresi citra.
Hasil yang terbaik diperoleh saat spesifikasi yang digunakan adalah jumlah piksel
tiap blok downsampling adalah 8 x 8, jumlah piksel tiap blok DCT adalah 8 x 8, dan
kuantisasi dengan default quantization table.
Kata kunci : kompresi, ekspansi, DCT, rasio kompresi, rata-rata error tiap piksel
vii
ABSTRACT
This Final project describes the simulation program for technique image
compression using Discrete Cosine Transform (DCT). This program will simulate
the steps for image compression’ design. These are image compression and image
expansion.
This program will produce the image expansion from the pure image. The
needed specification are pixel count in each downsampling block, pixel count in
each DCT block, and quantization table. The result got are the compression ratio
and average of error on each pixel for each entered specification. From this, it will
be decided the best specification for image compression.
The simulation program for image compression using DCT had been
implemented and tested to observe the image compression work. The best result
was got when the specification used for image compression were the pixel count
8 x 8 in each downsampling blok, the pixel count 8 x 8 in each DCT block, and
the quantization with default quantization table.
Keyword : compression, expansion, DCT, compression ratio, average of error
every pixel.
viii
KATA PENGANTAR
Terima kasih kepada Bapaku di surga dan Yesus Kristus atas berkat kasihnya
sehingga penulis dapat menyelesaikan tugas akhir ini dengan baik dan lancar. Dalam
proses penulisan tugas akhir ini penulis menyadari bahwa ada begitu banyak pihak
yang telah memberikan perhatian dan bantuan dengan caranya masing-masing
sehingga tugas akhir ini dapat terselesaikan. Oleh karena itu penulis ingin
mengucapkan terima kasih antara lain kepada :
1. Bapak Ir. Greg. Heliarko, SJ., B.ST., MA., M.Sc, selaku dekan fakultas teknik.
2. Bapak Damar Wijaya, S.T., M.T. selaku pembimbing I atas ide-ide yang
berguna, bimbingan, dukungan, saran dan kesabaran bagi penulis dari awal
sampai tugas akhir ini bisa selesai.
3. Seluruh dosen teknik elektro, laboran, dan Pak Djito atas semua yang telah
diberikan selama penulis belajar dan berinteraksi di Universitas Sanata Dharma
Yogyakarta.
4. Bapak dan Ibu tercinta atas semangat, doa serta dukungan secara moril maupun
materiil.
5. Sinta, Imel dan Dewa atas dukungan, cinta, bantuan yang sangat berguna.
6. Pakde Kiman, Om Gun, Om Agus, dan Om Antok n keluarga besar mbah
buyut.hehe...
7. Dika, makasih banyak ya dik.....kamu memang BF.
8. Hugo juga.
9. Wuri, semoga keluarga kecilmu sehat dan bahagia.
10. Aan, makasih buat sharingnya.
ix
11. Yoesni di Medan. Ke danau toba lagi yuk.
12. Konco-koncoku semua, Hari, Lina, Spadic, McD, Denny, Komang, Robi, Lele,
Andek, Heri, Oscar, Ndaru, Sinung, Broto, Wawan, n banyak lagi.
13. Anak-anak farmasi 2005, yo kumpul lagi yo.
14. Teman-teman angkatan 2002, 2003, 2004, 2001 yang selalu berbagi ilmu dan
pengalaman kuliah.
15. Dan seluruh pihak yang telah ambil bagian dalam proses penulisan tugas akhir ini
yang akan memenuhi halaman ini jika disebutkan satu-persatu.
Dengan rendah hati penulis menyadari bahwa tugas akhir ini masih kurang
sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas akhir ini
sangat diharapkan. Akhir kata, semoga tugas akhir ini dapat bermanfaat bagi semua
pihak. Terima kasih.
Yogyakarta, 30 Juli 2007
Penulis
x
DAFTAR ISI
JUDUL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
HALAMAN PERSETUJUAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
HALAMAN PENGESAHAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .iv
HALAMAN PERNYATAAN KEASLIAN KARYA . . . . . . . . . . . . . . . . . . . . . .v
HALAMAN PERSEMBAHAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
INTISARI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
ABSTRACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
KATA PENGANTAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ix
DAFTAR ISI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
DAFTAR GAMBAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
DAFTAR TABEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
BAB I PENDAHULUAN
1.1 Latar Belakang Masalah . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1.2 Batasan Masalah . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Tujuan Penelitian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
1.4 Manfaat Penelitian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
1.5 Metodologi Penelitian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.6 Sistematika Penulisan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
BAB II DASAR TEORI
2.1 Pengertian Citra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1 Format Citra Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
2.2 Format Berkas Bitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
2.3 Teknik Kompresi (Pemampatan) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 10
2.3.1 Pengertian Kompresi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .10
2.3.2 Prinsip Kompresi Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
xi
2.3.2.1 Data Redundancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 11
2.3.2.2 Human Perception Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.3 Metode Teknik Kompresi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
2.3.4 Rasio Hasil Kompresi (Pemampatan) Data . . . . . . . . . . . . . . . . . . . .. . 12
2.3.5 Faktor Keberhasilan Teknik Kompresi . . . . . . . . . . . . . . . . . . . . . . .. . .13
2.3.6 Kompresi citra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.7 Prinsip Kompresi Citra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
2.4 Discrete Cosine Transform (DCT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 15
2.4.1 Pengertian Discrete Cosine Transform . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.2 Sifat-sifat Discrete Cosine Transform (Properties of DCT) . . . . . . . . . 17
2.4.2.1 Decorrelation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
2.4.2.2 Energy Compaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.2.3 Separabilitas(Separability) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 19
2.4.2.4 Simetri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.2.5 Orthogonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
2.4.3 The One-Dimensional DCT (1-D DCT) . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.4 The Two-Dimensional DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5 Entropy Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5.1 Differential Code Pulse Modulation (DCPM) . . . . . . . . . . . . . . . . . . . .25
2.5.2 Run Length Encoding (RLE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
2.5.3 Huffman Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6 Tahapan Teknik Kompresi Citra menggunakan DCT . . . . . . . . . . . . . . . . 27
2.6.1 Kompresi citra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
2.6.1.1 Transformasi color space/models citra . . . . . . . . . . . . . . . . . . . . .27
2.6.1.2 Down Sampling/chroma subsampling . . . . . . . . . . . . . . . . . . . . . .28
2.6.1.3 Block Splitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
2.6.1.4 Two Dimensional Discrete Cosine Transform (2-D DCT) . .. . . . 30
2.6.1.5 Kuantisasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
2.6.1.5.1 Default Quantization Table . . . . . . . . . . . . . . . . . . . . . . . . .31
2.6.1.5.2 Tabel kuantisasi dengan parameter kualitas . . . . . . . . . . . . 33
2.6.1.6 Entropy Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
xii
2.6.1.6.1 Zig-zag Scanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.6.1.6.2 Huffman Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.6.2 Ekspansi Citra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
2.6.2.1 Huffman Decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
2.6.2.2 Rekonstruksi matriks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
2.6.2.3 Dekuantisasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.6.2.3 Invers 2-D DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.6.2.4 Transformasi color space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
2.7 Perhitungan nilai absolut error rata-rata tiap piksel . . . . . . . . . . . . . . . . . . . 36
BAB III PERANCANGAN PROGRAM SIMULASI TEKNIK KOMPRESI
CITRA
MENGGUNAKAN DISCRETE COSINE TRANSFORM
(DCT)
3.1 Algoritma Perancangan Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.1.1 Algoritma Kompresi citra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
3.1.2 Algoritma Ekspansi citra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 39
3.2 Perancangan Program Simulasi Teknik Kompresi Citra menggunakan DCT
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
3.2.1 Tampilan Program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
3.2.2 Perancangan Tahapan Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
3.2.2.1 Transformasi color space RGB ke YCbCr . . . . . . . . . . . . . . . . . . 44
3.2.2.2 Down Sampling (Chroma sub sampling) . . . . . . . . . . . . . . . . . . . .46
3.2.2.3 Block Splitting dan 2-D DCT . . . . . . . . . . . . . . . . . . . .. . . . . . . . .47
3.2.2.4 Kuantisasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
3.2.2.5 Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.2.2.6 Decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.2.2.7 Dekuantisasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
3.2.2.8 Invers 2-D DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
3.2.2.9 Transformasi color space YCbCr ke RGB . . . . . . . . . . . . . . . . . . 58
3.2.3. Perhitungan Error dan Rasio Kompresi . . . . . . . . . . . . . . . . . . . . . . . 59
3.2.4. Tampilan Utama Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
xiii
3.25. Fitur Program Utama Kompresi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
BAB IV HASIL DAN ANALISA
4.1 Penempatan Berkas Sumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.2 Tampilan Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
4.3. Hubungan antara jumlah piksel tiap blok downsampling, blok DCT dan
Table Kuantisasi dengan Hasil Kompresi . . . . . . . . . . . . . . . . . . . . . . . . 80
4.3.1 Citra Grayscale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.3.2 Citra Cartoon-like. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.3.3 Citra Continuous-tone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
BAB 5 PENUTUP
5.1 Kesimpulan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.2 Saran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
DAFTAR PUSTAKA
LAMPIRAN
xiv
DAFTAR GAMBAR
Gambar 2.1 Citra monochrome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
Gambar 2.2 Citra skala keabuan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
Gambar 2.3 Citra continuous-tone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Gambar 2.4 Citra discrete-tone. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Gambar 2.5 Citra cartoon-like . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
Gambar 2.6 Perbandingan amplitudo dari dua deret piksel . . . . . . . . . . . . . . . . . 15
Gambar 2.7 Penerapan 2-D DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Gambar 2.8 Perbandingan DCT dan DFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Gambar 2.9 Perbandingan (a) amplitudo data terkorelasi dengan (b) data
yang tidak terkorelasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..18
Gambar 2.10 Konsentrasi energi pada DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
Gambar 2.11 Komputasi 2-D DCT dengan separabilitas . . . . . . . . . . . . . . . . . . . 20
Gambar 2.12 (a)-(h) : Hasil komputasi 1-D DCT, dengan nilai
u = 0,1,2…,8 . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Gambar 2.13 Basis fungsi DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Gambar 2.14 Blok diagram tahapan kompresi citra . . . . . . . . . . . . . . . . . . . . . . . 27
Gambar 2.15 Color space RGB dan YCbCr . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Gambar 2.16 tiga macam down sampling : (a) Cr,Cb horizontal+vertical
down sampling ; (b) Cr,Cb horizontal down sampling ;(c)
tanpa down sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Gambar 2.17 Block Splitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
Gambar 2.18 Zig-zag scanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Gambar 3.1 Algoritma perancangan program simulasi kompresi citra . . . . . . . . 37
Gambar 3.2 Algoritma perancangan program simulasi ekspansi citra . . . . . . . . . 38
Gambar 3.3 Diagram alir layout awal program . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Gambar 3.4 Layout awal program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
Gambar 3.5 sub menu dari menu bar ’Main menu’ . . . .. . . . . . . . . . . . . . . . . . . .41
xv
Gambar 3.6. Diagram alir menu bar ’Program’. . . . . . . . . . . . . . . . . . . . . . . . . . 41
Gambar 3.7 Sub menu dari menu bar ’Programmer’. . . . . . . . . . . . . . . . . . . . . . 42
Gambar 3.8 Diagram alir menu bar ’Data diri’. . . . . . . . . . .. . . . . . . . .. . . . . . . 42
Gambar 3.9 Layout data diri pembimbing dan pembuat program . . . .. . . . . . . . .43
Gambar 3.10 Diagram alir transformasi color space YCbCr ke RGB. . .. .. . . . . 45
Gambar 3.11 Diagram alir Downsampling. . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
Gambar 3.12 Diagram alir DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Gambar 3.13 Diagram alir Kuantisasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Gambar 3.14 Diagram alir proses Encoding. . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Gambar 3.15 Diagram alir Decoding.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
Gambar 3.16 Diagram alir dekuantisasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Gambar 3.17 Diagram alir invers 2-D DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Gambar 3.18 Diagram alir transformasi color space YCbCr ke RGB . . . . . . . . . 57
Gambar 3.19 Diagram alir Perhitungan error. . . . . . . . . .. . . . . . . . . . . . . . . . . . .60
Gambar 3.20 Diagram alir Rasio Kompresi . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
Gambar 3.21 Layout Program utama kompresi citra . . . . . . . . . . . . . . .. . . . . . . . 62
Gambar 3.22 Diagram alir push button ‘Compress’ . . . . . . . . . . . . . . . . . . . . .64
Gambar 3.23 Diagram alir push button ‘The Process’ . . . . . . . . . . . . . . . . . . . . 65
Gambar 3.24 Diagram alir push button ‘Reset’ . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Gambar 3.25 Diagram alir push button ‘Exit’ . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Gambar 3.26 Diagram alir radio button ‘Direct’ . . . . . . . . . . . . . . . . . . . . . . 68
Gambar 3.27 Diagram alir radio button ‘With Steps’ . . . . . . . . . . . . . . . . . . . . .69
Gambar 3.28 Diagram alir pop-up menu ‘Downsampling’s block’ . . . . . . . . . . .70
Gambar 3.29 Diagram alir pop-up menu ‘ DCT’s block’ . . . . . . . . . . . . . . . . . . .71
Gambar 3.30 Diagram alir pop-up menu ‘Quantization Table’ . . . . . . . . . . . . . . 72
Gambar 3.31 Diagram alir pop-up menu ‘With parameter’. . . . . . . . . . . . . . . . . 72
Gambar 4.1 Perintah pengaktifan program simulasi dan currnt directory . . . . . . 74
Gambar 4.2 Tampilan awal Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
Gambar 4.3 Sub menu dari menu bar ‘Program’. . . . . . . . . . . . . . . . . . . . . . . . .76
Gambar 4.4 Sub menu dari menu bar ‘Programmer’ . . . . . . . . . . . . . . . . . . . . . .76
Gambar 4.5 Program utama kompresi citra . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .77
xvi
Gambar 4.6 Proses pengambilan citra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
Gambar 4.7 Pesan kesalahan masukan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
Gambar 4.8 Citra di semua tahapan kompresi . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
Gambar 4.9 Grafik hubungan antara rasio kompresi dengan n piksel blok
downsampling untuk lima macam citra grayscale . . . . . . . . . . . . .81
Gambar 4.10 Grafik hubungan antara rata-rata error tiap piksel dengan n piksel
downsampling untuk lima macam citra grayscale . . . . . . . . . . . . 81
Gambar 4.11 Grafik hubungan antara rasio kompresi dengan n piksel DCT untuk
lima macam citra grayscale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Gambar 4.12 Grafik hubungan antara rata-rata error tiap piksel dengan n piksel
DCT untuk lima macam citra grayscale ….. . . . . . . . … .. . . .. . ..83
Gambar 4.13 Grafik hubungan antara rasio kompresi dengan Tabel Kuantisasi
untuk lima macam citra grayscale ……………………………….84
Gambar 4.14 Grafik hubungan antara rata-rata error tiap piksel Tabel Kuantisasi
untuk lima macam citra grayscale .. . …………………………….85
Gambar 4.15 Grafik hubungan antara rasio kompresi dengan n piksel blok
downsampling untuk lima macam citra cartoon-like . . . . . . . . . . . 86
Gambar 4.16 Grafik hubungan antara rata-rata error tiap piksel dengan n piksel
blok downsampling untuk lima macam citra cartoon-like . . . . . . .87
Gambar 4.17 Grafik hubungan antara rasio kompresi dengan n piksel blok DCT
untuk lima macam citra cartoon-like …………………………… 88
Gambar 4.18 Grafik hubungan antara rata-rata error tiap piksel dengan n piksel
blok DCT untuk lima macam citra cartoon-like . ………………. .89
Gambar 4.19 Grafik hubungan rasio kompresi dengan Tabel Kuantisasi . . . . . . 90
Gambar 4.20 Grafik hubungan rata-rata error tiap piksel dengan Tabel Kuantisasi
. . ………………………………………………………………….91
Gambar 4.21 Grafik hubungan antara rasio kompresi dengan n piksel blok
downsampling untuk empat macam citra continuous-tone ……….92
Gambar 4.22 Grafik hubungan antara rata-rata error tiap piksel dengan n piksel
blok downsampling untuk empat macam citra continuous-tone ….92
xvii
Gambar 4.23 Grafik hubungan antara rasio kompresi dengan n piksel blok DCT
untuk empat macam citra continuous-tone …………………….. 93
Gambar 4.24 Grafik hubungan antara rata-rata error tiap piksel dengan n piksel
blok DCT untuk empat macam citra continuous-tone ……………94
Gambar 4.25 Grafik hubungan antara rasio kompresi dengan Tabel Kuantisasi ..95
Gambar 4.26 Grafik hubungan antara rasio kompresi dengan Tabel Kuantisasi . 96
xviii
DAFTAR TABEL
Tabel 2.1 Struktur pada header file . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 9
Tabel 2.2 Struktur pada header bitmap. . . . . . . . . . . . . . . . . . .. .. . . . . . . . . . . . . . . . . . 9
Tabel 2.3 Susunan data citra . . . . . . . . . . . . . . . . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Tabel 2.4 Tabel kuantisasi luminance . . . . . . . . . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . .32
Tabel 2.5 Tabel kuantisasi chrominance. . . . . . . . . .. .. . . . . . . . . . . . . . . . . . . . . . . . 32
Tabel 4.1 Tabel Perbandingan hasil pengujian untuk tiap jenis citra . . . . . . . . . . . . . . . . .96
xix
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Perkembangan teknologi komputer akhir-akhir ini semakin membutuhkan
media penyimpanan yang besar. Berbagai jenis data yang akan disimpan terus
bertambah. Menambah kapasitas media penyimpanan pada komputer tetap belum
mampu menampung data yang semakin besar seiring aktivitas manusia menggunakan
komputer.
Oleh karena itu, diperlukan suatu teknik untuk menghemat media
penyimpanan namun tidak menghilangkan data yang harus disimpan. Teknik ini
disebut dengan teknik kompresi data. Dengan teknik kompresi, data yang akan
disimpan dapat diperkecil ukurannya dengan mengubah data ke dalam bentuk kode
yang nantinya dapat diekspansi ke bentuk semula [1]. Salah satu jenis data yang
cukup penting dan memiliki ukuran yang cukup besar adalah citra.
Teknik kompresi untuk data citra telah banyak dilakukan, terutama oleh
kalangan pengguna teknologi informasi. Tujuan yang ingin dicapai adalah rasio
kompresi yang baik, data yang diinginkan masih dapat ditoleransi oleh indera
manusia dan diharapkan komputasi algoritma yang dibutuhkan cukup sederhana
[1],[2]. Teknik kompresi yang akan dianalisa dalam tugas akhir ini adalah teknik
kompresi dengan Discrete Cosine Transform (DCT). Alasan pemilihan DCT adalah
karena memiliki komputasi algoritma yang cepat, rasio pemampatan yang baik dan
karakteristik DCT seperti decorrelation, energy compaction, separability, simetri dan
orthogonal sangat mendukung dalam proses kompresi citra [2].
2
1.2 Batasan Masalah
Batasan masalah dalam tugas akhir ini adalah :
1. Metode yang digunakan adalah 2-D Discrete Cosine Transform.
2. Program simulasi dibuat menggunakan Graphical User Interface yang
disediakan oleh MATLAB®.
3. Berkas citra yang digunakan adalah format BMP.
4. Hasil yang ingin dicapai berupa perbandingan ukuran berkas (compression
ratio), visualisasi tiap tahap kompresi dan nilai rata-rata absolut error tiap
piksel.
1.3 Tujuan Penelitian
Tujuan penyusunan tugas akhir ini adalah untuk menghasilkan suatu program
bantu untuk menampilkan proses kompresi data citra menggunakan DCT.
1.4 Manfaat Penelitian
Manfaat yang diharapkan dari penulisan tugas akhir ini adalah:
1. Dapat memberikan pemahaman mengenai proses kompresi citra, khususnya
dengan teknik kompresi DCT bagi mahasiswa sub bidang pemrosesan sinyal.
2. Dapat menjadi referensi mengenai teknik kompresi data, pemrograman pada
MATLAB dan komputasi Discrete Cosine Transform.
1.5 Metodologi Penelitian
Metode yang digunakan untuk menyusun tugas akhir ini adalah :
1. Studi pustaka yang berhubungan dengan teknik kompresi data dan Discrete
Cosine Transform (DCT).
2. Merancang program simulasi dan penghitungan komputasi Discrete Cosine
Transform (DCT).
3. Membuat program kompresi citra dan mengujinya.
3
4. Membahas dan menganalisis hasil kompresi citra.
5. Membuat kesimpulan dari hasil analisis dan pembahasan.
1.6 Sistematika Penulisan
Sistematika penulisan pada tugas akhir ini adalah sebagai berikut :
BAB I
PENDAHULUAN
Berisi latar belakang masalah, batasan masalah, tujuan penelitian,
metodologi penelitian dan sistematika penulisan.
BAB II
DASAR TEORI
Berisi teori-teori yang mendasari perancangan penelitian, penjelasan
tentang kompresi citra, algoritma kompresi, komputasi DCT dan
tahapan kompresi citra.
BAB III
PERANCANGAN
Berisi perancangan
program, alur kompresi tiap tahapan dengan
DCT sebagai komputasi utama kompresi.
BAB IV
PEMBAHASAN
Berisi hasil program yang telah dibuat dan analisis hasil
kompresi dari simulasi kompresi data.
BAB V
PENUTUP
Berisi
kesimpulan
dari
hasil
pengembangan penelitian berikutnya.
analisis
dan
saran
terhadap
BAB II
DASAR TEORI
2.1 Pengertian Citra
Citra merupakan keluaran suatu sistem perekaman data yang dapat bersifat
seperti foto, bersifat analog berupa sinyal video seperti gambar pada monitor
televisi, atau bersifat digital yang dapat disimpan pada media penyimpanan digital
[3]. Berdasarkan tingkat presisi yang digunakan untuk menyatakan titik-titik
kordinat pada domain bidang dan untuk menyatakan nilai keabuan atau warna
suatu citra, maka secara teoritis citra dapat dikelompokkan menjadi empat kelas
citra. Empat kelas citra tersebut adalah citra kontinyu-kontinyu, citra kontinyudiskrit, citra diskrit-kontinyu, dan citra diskrit-diskrit. Label pertama dari nama
kelas citra menyatakan tingkat presisi dari titik-titik koordinat pada bidang citra,
sedangkan label kedua menyatakan tingkat presisi dari tingkat keabuan atau warna.
Kontinyu dinyatakan dengan presisi angka tidak terhingga, sedangkan diskrit
dinyatakan dengan presisi angka terhingga [3], [4].
Komputer bekerja dengan angka-angka presisi terhingga, dengan demikian
komputer hanya bisa mengolah citra dari kelas diskrit-diskrit. Citra dari kelas
diskrit-diskrit lebih dikenal dengan citra digital. Citra digital merupakan suatu
matriks dengan unsur-unsur yang menyatakan tingkat keabuan dari unsur gambar.
Jadi informasi dari citra bersifat diskrit. Citra digital tidak selalu merupakan hasil
langsung data rekaman suatu sistem. Hasil rekaman data yang bersifat kontinyu
seperti gambar monitor televisi, foto sinar X, dan lain sebagainya harus dikonversi
terlebih dahulu agar bisa diproses secara digital [3].
Sebuah citra memiliki suatu nilai resolusi. Semakin tinggi resolusi yang
dimiliki suatu citra, semakin banyak pula jumlah titik yang dapat ditampilkan layar
monitor. Titik-titik yang dihasilkan tidak akan terlihat oleh mata manusia, karena
5
citra yang dihasilkan sangat halus. Titik-titik pada layar monitor sering disebut
pixel (picture element) [3].
2.1.1 Format citra digital
Format citra digital yang banyak dipakai adalah [2] :
1. Citra monochrome (bi- level)
Citra monochrome biasa disebut citra biner. Pada citra monochrome, setiap
titik bernilai 0 atau 1, masing-masing merepresentasikan warna tertentu, misalnya
warna hitam bernilai 0 dan warna putih bernilai 1. Setiap titik pada citra hanya
membutuhkan 1 bit, sehingga setiap byte dapat menampung informasi 8 titik.
Gambar 2.1 menampilkan contoh citra monochrome.
Gambar 2.1 Citra monochrome.
2. Citra skala keabuan (gray scale image)
Citra skala keabuan memberi kemungkinan warna lebih banyak daripada
citra biner, karena ada nilai-nilai lain di antara nilai minimum (biasanya = 0) dan
nilai maksimum. Rentang antara nilai minimum dan nilai maksimum tergantung
jumlah bit yang dipakai.
Format citra ini disebut skala keabuan karena pada umumnya warna yang
dipakai adalah antara hitam sebagai warna minimal dan warna putih sebagai warna
maksimal. Sedangkan warna di antaranya adalah abu-abu. Namun pada prakteknya
warna yang dipakai tidak terbatas pada warna abu-abu. Sebagai contoh, warna
6
minimal adalah putih dan warna maksimal adalah merah, atau warna yang lain.
Gambar 2.2 menampilkan contoh citra skala keabuan.
Gambar 2.2 Citra skala keabuan.
3. Continuous-tone image
Tipe citra ini dapat memiliki beberapa warna yang mirip. Ketika piksel
yang berdekatan mempunyai warna yang berbeda satu skala saja, maka mata
manusia sangat sulit, bahkan mungkin tidak mampu untuk membedakannya.
Sebagai hasilnya adalah citra yang terdiri dari area-area dengan warna yang seakan
tampak sama terhadap sensitifitas mata di suatu area citra. Sebuah piksel
direpresentasikan oleh salah satu dari nomor pewarnaan tunggal (untuk tipe
grayscale) atau salah satu dari tiga komponen warna (untuk citra berwarna).
Citra continuous-tone pada dasarnya adalah citra natural/alami (kebalikan
dari citra artifisial/buatan). Citra natural adalah citra yang direkam secara
langsung, dan belum mengalami manipulasi data. Sedangkan citra artifisial adalah
citra yang merupakan hasil manipulasi data atau murni citra yang dibuat oleh
komputer. Citra natural biasanya diperoleh dari pengambilan gambar dengan
kamera digital, atau dengan scanning suatu potret atau lukisan. Gambar 2.3
menampilkan contoh citra continuous-tone.
7
Gambar 2.3 Citra continuous-tone.
4. Discrete-tone image
Citra discrete-tone sering disebut dengan graphical image atau citra
sintetik (synthetic image) yang pada dasarnya adalah citra buatan (artificial
image). Citra ini dapat memiliki sedikit warna atau banyak warna, tetapi tidak
memiliki noise dan efek penghamburan (blurring) seperti pada citra natural.
Contoh dari tipe ini adalah obyek buatan dari mesin/komputer seperti tabel,
halaman teks, kartun, dan berbagai bagian dari layar komputer.
Tidak semua obyek buatan komputer/mesin adalah discrete-tone. Obyek
buatan yang memiliki ciri seperti citra alami dapat disebut citra continuous-tone.
Piksel yang bersebelahan dalam citra discrete-tone memiliki perbedaan nilai warna
yang cukup jelas. Gambar 2.4 menampilkan contoh citra discrete-tone.
Gambar 2.4 Citra discrete-tone.
5. Cartoon-like image
Tipe citra ini merupakan citra berwarna yang terdiri dari area yang
seragam. Area yang seragam adalah kesamaan nilai piksel yang mewakili warna di
suatu area citra. Suatu area mempunyai warna yang seragam, tetapi dengan area
8
yang bersebelahan mungkin memiliki warna yang sangat berbeda. Sebagai contoh
adalah citra kartun yang biasa kita lihat pada film atau gambar komik. Gambar 2.5
menampilkan contoh citra cartoon-like.
Gambar 2.5 Citra cartoon-like [5].
2.2 Format Berkas BMP (Bitmap)
Bitmap adalah citra atau segala bentuk gambar, karakter teks dan foto yang
dibuat dari sekumpulan titik-titik kecil. Bitmap yang paling sederhana adalah
monochrome, yang hanya menampilkan satu warna di atas latar belakang,
misalnya hitam di atas putih. Format Windows® bitmap adalah sebuah citra yang
langsung ditampilkan dari sebuah objek image [6].
Berkas dengan format BMP mempunyai tiga bagian pokok, yaitu [6] :
1. Header file(Bitmap File Header)
2. Header Bitmap (Bitmap Info Header)
3. Data Citra (Tabel Warna)
1. Header file (Bitmap File Header)
Bagian ini digunakan untuk menentukan layout, ukuran dan tipe dari
berkas BMP. Tabel 2.1 menampilkan struktur yang terdapat pada header file.
9
Tabel 2.1 Struktur pada header file [6].
Offset
Ukuran
0
2 byte
BfType
ASCII ”BMP”
2
4 byte
Bfsize
Ukuran berkas BMP
6
2 byte
BfReserved1
Kosong (0)
8
2 byte
BfReserved2
Kosong (0)
9
4 byte
BfOffBit
Offset awal data citra dalam byte
Nama
Keterangan
2. Header Bitmap (Bitmap Info Header)
Bagian ini digunakan untuk menentukan dimensi, tipe kompresi dan format
warna untuk bitmap. Tabel 2.2 menampilkan struktur dari header bitmap.
Tabel 2.2 Struktur pada header bitmap [6].
Offset
Ukuran
14
4 byte
BiSize
Ukuran header dalam byte
18
4 byte
BiWidth
Lebar citra dalam piksel
22
4 byte
BiHeight
Tinggi citra dalam piksel
26
2 byte
BiPlanes
Jumlah plane dalam citra hampir
selalu 1
28
2 byte
BiBitCount
Jumlah per piksel 1, 4, 8, 24
30
4 byte
BiCompression
Jenis kompresi untuk
terkompres nilainya 0
34
4 byte
BiSizeImage
Untuk ukuran citra dalam byte
38
4 byte
BiXPelsPermeter
Resolusi horizontal dalam piksel
meter
42
4 byte
BiyPelsPermeter
Resolusi vertikal dalam piksel meter
Nama
Keterangan
berkas
10
Tabel 2.2 (lanjutan) Struktur pada header bitmap [6].
Offset
Ukuran
46
4 byte
BiClrUsed
Jumlah warna yang digunakan. Jika
palet warna nilainya adalah nol,
maka semua nilainya sama.
50
4 byte
BiClrImportant
Jumlah warna yang penting
54
4 byte x
256
BmiColor
Untuk citra 24 bit palet warnanya
tidak ada
Nama
Keterangan
3. Data Citra (Tabel Warna)
Data citra didefinisikan sebagai matriks dari struktur RGBQuad yang berisi
elemen sebanyak warna yang ada pada bitmap [6]. Tabel 2.3 menunjukkan
susunan data citra.
Tabel 2.3 Susunan data citra [6].
Offset
Nama
Keterangan
0
RgbBlue
Nilai warna biru
1
RgbGreen
Nilai warna hijau
2
RgbRed
Nilai Warna merah
3
RgbReserved
Nilainya selalu nol (0)
2.3 Teknik Kompresi (Pemampatan)
2.3.1 Pengertian Kompresi
Kompresi merupakan suatu proses pengubahan lambang masukan ke dalam
sandi keluaran yang dikehendaki dengan ukuran berkas yang lebih kecil dari
aslinya. Kompresi juga dapat didefinisikan sebagai suatu teknik yang digunakan
untuk memperkecil ukuran suatu berkas masukan, sehingga dapat dimuat dalam
media penyimpanan yang diinginkan [1], [2].
11
2.3.2 Prinsip Kompresi Data
Dalam melakukan teknik kompresi, faktor utama yang memungkinkan
kompresi data adalah data redundancy dan kemampuan persepsi manusia (human
perception properties) [2].
2.3.2.1 Data redundancy
Dalam digital audio, contoh data redundancy dapat diberikan dalam
sebuah rekaman percakapan. Selama percakapan berlangsung, sering terdapat jeda
waktu di antara percakapan (keadaan diam). Sampel nilai dari keadaan diam dapat
dihilangkan tanpa mempengaruhi data utama.
Untuk citra digital, piksel yang bertetangga pada umumnya mirip.
Kemiripan ini sering disebut spatial redundancy. Spatial redundancy ini dapat
dihilangkan tanpa mempengaruhi data utama. Begitu pula dengan video digital,
selain memiliki spatial redundancy, urutan citra yang berdekatan dalam video
secara umum memiliki kemiripan. Kemiripan citra yang berurutan ini disebut
temporal redundancy. Temporal redundancy ini juga dapat dihilangkan tanpa
mempengaruhi data utama [7].
2.3.2.2 Human Perception Properties
Manusia memiliki panca indera sebagai alat ukur/deteksi terhadap
perubahan keadaan dari keadaan sekitar. Walaupun begitu, panca indera manusia
tidak mampu memberikan penilaian yang mutlak benar terhadap perubahan. Dari
kemampuan yang terbatas tersebut, manusia secara normal dapat memberikan
toleransi terhadap kehilangan atau kerusakan sedikit informasi data yang diterima
tanpa mempengaruhi efektifitas penyampaian informasi.
Dengan adanya kemampuan toleransi ini berarti bahwa data yang
terkompresi tidak perlu direpresentasikan secara tepat kembali ke data aslinya. Hal
ini berarti bahwa teknik kompresi akan mengutamakan rasio kompresi yang tinggi,
tetapi informasi yang penting terhadap indera manusia harus dijaga.
12
2.3.3 Metode Teknik Kompresi
Teknik kompresi dapat dibagi menjadi dua berdasarkan pada hasil akhir
yang dicapai dalam proses kompresi dibandingkan dengan masukannya. Dua
metode tersebut adalah [1] :
1. Tidak merugi (lossless)
Metode ini membuat seluruh data yang telah melalui proses kompresi, dan
kemudian diekspansi, akan kembali seperti semula seperti pada data aslinya.
Sehingga keutuhan datanya terjamin. Metode ini cocok pada jenis data database,
spreadsheed, atau word processor, karena keakuratan dari data hasil kompresi
adalah suatu hal yang penting.
2. Merugi (lossy)
Metode ini membuat data yang telah melalui proses kompresi dan
kemudian diekspansi kembali akan kehilangan sebagian data. Hal ini berarti data
hasil kompresi tidak akurat lagi. Metode kompresi ini cocok digunakan pada
penyimpanan data citra grafik atau data suara digital karena kehilangan sebagian
dari data masih dapat diterima oleh indera manusia.
2.3.4 Rasio Hasil Kompresi (Pemampatan) Data
Keberhasilan suatu metode kompresi ditentukan berdasarkan besar
kecilnya rasio kompresi (pemampatan) yang dihasilkan. Rasio kompresi adalah
perbandingan ukuran data yang terkompresi dengan ukuran aslinya dalam 100%.
Semakin kecil nilai rasio kompresi berarti semakin efektif metode kompresi yang
digunakan. Persamaan untuk rasio kompresi diberikan sebagai [2]:
⎛ Bt ⎞
Rk = ⎜
⎟ * 100%
⎝ Ba ⎠
(2.1)
dengan Rk adalah rasio kompresi, Bt adalah berkas terkompresi, dan Ba adalah
berkas asli.
13
2.3.5 Faktor Keberhasilan Teknik Kompresi
Terdapat empat faktor keberhasilan dalam pembuatan program teknik
kompresi yaitu [8] :
1. Prosentase data yang dapat dikompresi
Jika teknik kompresi memiliki prosentase kompresi yang besar mendekati
100 %, maka teknik kompresi tersebut bisa dikategorikan baik.
2. Jaminan keutuhan data setelah dikompresi dan diekspansi
Data yang dikompresi ukurannya akan menjadi lebih kecil dibandingkan
dengan data aslinya. Teknik kompresi yang digunakan dikategorikan baik
jika setelah diekspansi, maka ukurannya harus kembali seperti pada data
aslinya.
3. Kecepatan proses kompresi
Waktu yang dibutuhkan saat proses kompresi juga mempengaruhi baik
tidaknya suatu teknik kompresi yang digunakan. Semakin sedikit waktu
yang dibutuhkan untuk proses kompresi data, teknik kompresi akan
semakin baik.
4. Kemudahan pemakaian dan fasilitas tambahan yang tersedia
Program yang dibuat hendaknya bersifat
user friendly yaitu mudah
dijalankan dan sederhana. Selain itu program tersebut akan semakin baik
jika dilengkapi fasilitas tambahan seperti daftar istilah, bantuan
penggunaan program, fasilitas penyimpanan dan menu pendukung yang
lain jika dimungkinkan.
2.3.6 Kompresi citra
Suatu kompresi dikatakan berhasil, jika nilai data baru yang dihasilkan
lebih kecil dalam rata-rata dari nilai data aslinya. Hasil kompresi dapat diperoleh
dengan mengkuantisasi nilai yang telah ditransformasi. Masukan dekoder berupa
data yang telah ditransformasi dari alur kompresi dan merekonstruksi data asli
dengan mengaplikasikan invers dari transformasi yang digunakan. Hal ini disebut
dengan sifat orthogonal [2].
14
Sebuah citra dapat dikompres jika memiliki redundancy. Redundancy
dalam sebuah citra berasal dari korelasi pikselnya. Jika ingin mentransformasikan
suatu citra untuk merepresentasikan data baru dengan piksel yang tidak terkorelasi,
maka harus mengeliminasi terlebih dahulu redundancy. Sehingga citra dapat
dikompres lebih optimal [2]. Istilah dari tidak terkorelasi (decorrelated) berarti
bahwa nilai yang telah ditransformasi bersifat independen satu dengan yang
lainnya. Hal ini menyebabkan tiap nilai dapat dikodekan secara independen pula,
sehingga komputasi yang dibutuhkan menjadi lebih sederhana.
2.3.7 Prinsip Kompresi Citra
Jika kita memilih sebuah piksel dalam suatu citra secara acak, maka
terdapat peluang bahwa piksel lain yang bersebelahan mungkin memiliki warna
yang sama atau yang mirip/hampir sama. Kompresi citra didasarkan pada fakta
bahwa piksel-piksel yang bersebelahan memiliki tingkat korelasi yang tinggi.
Korelasi yang terjadi sering juga disebut sebagai spatial redundancy [2].
Contoh 2.1
Deretan data berikut menunjukkan intensitas nilai dari 24 piksel acak yang
berdekatan dalam baris citra continuous-tone:
12, 17, 14, 19, 21, 26, 23, 29, 41, 38, 31, 44, 46, 57, 53, 50, 60, 58, 55, 54,
52, 51, 56, 60
Hanya ada dua dari 24 piksel yang identik, yaitu :
60
Rata-ratanya adalah 40.3
Kurangkan pasangan dari piksel yang bersebelahan, sehingga dihasilkan
deret baru :
12, 5, -3, 5, 2, 4, -3, 6, 11, -3, -7, 13, 4, 11, -4, -3, 10, -2, -3, 1, -2, -1, 5, 4
Gambar 2.6 menampilkan perbandingan amplitudo antara dua deretan piksel
di atas.
15
60
15
50
10
40
5
30
0
20
-5
10
0
0
5
10
15
20
25
-10
0
(a)
5
10
15
20
25
(b)
Gambar 2.6 Perbandingan amplitudo dari dua deret piksel.
Deret yang terjadi dari proses di atas memiliki tiga indikasi yang
menunjukkan potensi kompresi, yaitu [2]:
1. Perbedaan nilai pikselnya lebih kecil dibandingkan dengan perbedaan
nilai piksel dari deret aslinya. Rata-ratanya adalah 2.58.
2. Hanya ada 15 nilai beda, sehingga dapat dikodekan dengan empat bit
saja.
3. Deretnya tidak terkorelasi (decorrelated), artinya perbedaan nilai piksel
yang bersebelahan cukup besar.
2.4 Discrete Cosine Transform (DCT)
2.4.1 Pengertian Discrete Cosine Transform
Discrete Cosine Transform (DCT) adalah salah satu metode transformasi
sinyal yang mirip dengan Discrete Fourier Transform (DFT) tetapi hanya
menggunakan real number. DCT merupakan salah satu komponen utama dalam
sebagian besar teknik pengkompresian citra dan video. Variabel kompleksitas
kerangka algoritma dapat diaplikasikan dengan baik untuk memperoleh hasil awal
dengan koefisien rendah saat dikomputasikan IDCT pada dekoder. DCT
beroperasi pada fungsi bilangan terbatas pada data discrete. Selain itu DCT
16
mempunyai kerapatan tingkat energi yang cukup baik, hal ini disebabkan karena
sebagian besar sinyal informasi cenderung terkonsentrasi di frekuensi rendah [9],
[10].
DCT, khususnya dua dimensi (2-D) DCT sering digunakan untuk
pemrosesan sinyal citra, terutama untuk kompresi data dengan teknik merugi
(lossy) karena memiliki energy compaction yang besar. Sebagian besar sinyal
informasi cenderung dipusatkan di beberapa komponen frekuensi rendah DCT.
Sebagai contoh DCT digunakan dalam kompresi citra JPEG, MJPEG, MPEG dan
kompresi video DV. Untuk citra, 2-D DCT n x n blok dikomputasikan dan
hasilnya akan melewati proses kuantisasi dan kode entropi. Dalam hal ini n secara
tipikal adalah 8 dan DCT-II diaplikasikan pada masing-masing baris dan kolom
[10]. Gambar 2.7 menampilkankan penerapan dari 2-D DCT n x n blok.
Gambar 2.7 Penerapan 2-D DCT [10].
Seperti pengembangan transformasi lain dari DFT, discrete cosine
transforms (DCT) menyatakan suatu fungsi atau suatu isyarat yang memiliki
perbedaan frekuensi dan amplitudo dalam komputasi sinyal sinusoida. Seperti
discrete fourrier transforms (DFT), DCT beroperasi pada fungsi dengan jumlah
baris data terbatas dan pada discrete point. Perbedaan yang jelas antara DFT dan
DCT adalah DCT hanya menggunakan fungsi cosinus, sedangkan DFT
menggunakan fungsi sinus dan cosinus (dalam hal ini bersifat eksponen kompleks)
[9]. Gambar 2.8 menampilkan perbandingan komputasi antara DFT dan DCT pada
sebuah citra berdasarkan spektrum dan histogram.
17
Gambar 2.8 Perbandingan DCT dan DFT [9].
Gambar 2.8 menunjukkan perbandingan antara DCT dan DFT, bagian kiri
merupakan nilai magnitude spektrum, sedangkan bagian kanan merupakan
histogram. Pada DCT energi terkonsentrasi di tingkat rendah.
2.4.2 Sifat-sifat Discrete Cosine Transform (Properties of DCT)
2.4.2.1 Decorrelation
Seperti yang telah dibahas sebelumnya, yaitu bahwa dalam kompresi citra,
redundancy antara piksel yang berdekatan akan dihilangkan. Sehingga dibutuhkan
koefisien transformasi yang tidak terkorelasi dan piksel dapat dikodekan secara
independent [11]. Gambar 2.9 menampilkan contoh perbandingan antara data
terkorelasi dengan data yang tidak terkorelasi.
18
(a)
(b)
Gambar 2.9 Perbandingan (a) amplitudo data terkorelasi dengan
(b) data yang tidak terkorelasi [11].
Dari gambar 2.9 di atas menunjukkan bahwa amplitudo data yang tidak
terkorelasi jauh lebih kecil dibandingkan dengan data terkorelasi. Hal ini
membuktikan bahwa DCT memberikan decorrellation yang sangat bagus.
2.4.2.2 Energy Compaction
Salah satu indikasi kehandalan suatu teknik kompresi dapat diukur dengan
mempertimbangkan kemampuannya memasukkan banyaknya data ke dalam
sejumlah koefisien yang mungkin. Dari semua koefisien yang dimasukkan,
pengkuantisasi akan menghilangkan koefisien dengan amplitudo yang relatif kecil
tanpa memperhatikan visual distorsi dari citra yang direkonstruksi. Sehingga
dibutuhkan konsentrasi energi yang terpusat untuk koefisien dengan amplitudo
yang besar. DCT memberikan konsentrasi energi yang sempurna untuk data citra
terkorelasi [11]. Gambar 2.10 menampilkan pemusatan energi oleh DCT pada
sebuah contoh citra.
19
Gambar 2.10 Konsentrasi energi pada DCT [9].
Contoh di atas menunjukkan bahwa unjuk kerja dari konsentrasi energi
DCT mendekati optimal dekorelasi. Hal ini berlaku untuk hampir semua jenis citra
[11].
2.4.2.3 Separabilitas (Separability)
Persamaan 2-D DCT dapat didefinisikan sebagai [11]:
N −1
⎡ π (2 y + 1)v ⎤
⎡ π (2 x + 1)u ⎤ N −1
C (u, v) = α (u )α (v)∑ cos ⎢
f ( x, y ) cos⎢
∑
⎥
⎥,
2N
2N
⎦ y =0
⎣
⎣
⎦
x =0
(2.2 )
untuk u,v = 0, 1, 2, …, N-1, dengan C(u,v) adalah matriks hasil operasi DCT, f(x,y)
adalah matriks data asli. α(u) sama dengan α(v) dan didefinisikan sebagai :
α(u)
1
N
u=0
(2.3)
2
N
u= 0
20
Sifat separabilitas ini memiliki prinsip bahwa C(u,v) dapat dikomputasikan
dengan dua langkah, yaitu operasi 1-D pada baris dan kolom secara berurutan pada
suatu citra. Hal ini dapat diilustrasikan pada Gambar 2.11. Sifat ini juga berlaku
untuk invers DCT.
Gambar 2.11 Komputasi 2-D DCT dengan separabilitas [11].
2.4.2.4 Simetri
Seperti yang ditunjukkan pada sifat separabilitas, operasi 1-D pada kolom
dan baris secara fungsional serupa. Transformasi dengan sifat fungsi yang serupa
seperti itu disebut dengan symmetric transform [11]. Transformasi yang simetri
dan dapat dipisah-pisah dapat didefinisikan sebagai :
T=AfA’
(2.4)
dengan T adalah hasil transformasi DCT , f adalah fungsi DCT dan A adalah NxN
transformasi simetri matriks dengan masukan a(i,j) didefinisikan sebagai :
⎡ π (2 j + 1)i ⎤
a(i, j ) = α ( j )∑ cos ⎢
⎥,
⎦
⎣ 2N
j =0
N −1
(2.5)
dan f adalah NxN matriks citra.
2.4.2.5 Orthogonal
DCT real dan orthogonal, didefinisikan sebagai :
C=C* => C-1=CT
(2.6)
21
2.4.3 The One-Dimensional DCT (1-D DCT)
Dalam kompresi citra, metode yang digunakan adalah 2-D DCT , akan
tetapi sebagai dasar pemahaman teori, 1-D DCT dibutuhkan dalam
DISCRETE COSINE TRANSFORM (DCT)
TUGAS AKHIR
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Oleh:
Nama : Lukas Pandu Prima
NIM : 025114012
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2007
i
SIMULATION TECHNIQUE IMAGE COMPRESSION USING
DISCRETE COSINE TRANSFORM ( DCT )
FINAL PROJECT
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Teknik Degree
In Electrical Engineering Study Program
By:
Name : Lukas Pandu Prima
Student Number : 025114012
ELECTRICAL ENGINEERING STUDY PROGRAM
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF ENGINEERING
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2007
ii
HALAMAN PERSETUJUAN
TUGAS AKHIR
SIMULASI TEKNIK KOMPRESI CITRA MENGGUNAKAN
DISCRETE COSINE TRANSFORM (DCT)
(SIMULATION TECHNIQUE IMAGE COMPRESSION USING
DISCRETE COSINE TRANSFORM (DCT))
Oleh :
LUKAS PANDU PRIMA
NIM : 025114012
Telah disetujui oleh :
30 JULI 2007
Damar Wijaya, S.T., M.T.
…………………………
iii
………………
HALAMAN PENGESAHAN
SIMULASI TEKNIK KOMPRESI CITRA MENGGUNAKAN
DISCRETE COSINE TRANSFORM (DCT)
Oleh :
LUKAS PANDU PRIMA
NIM : 025114012
Telah dipertahankan di depan Panitia Penguji
Pada tanggal : 30 Juli 2007
dan dinyatakan memenuhi syarat
Susunan Panitia Penguji
Nama Lengkap
Ketua
Tanda Tangan
: A. Bayu Primawan, S.T., M.Eng.
Sekretaris : Damar Widjaja, S.T., M.T.
...................................
...................................
Anggota
: Pius Yozy Merucahyo, S.T., M.T.
Anggota
: Wiwien Widyastuti, S.T., M.T.
...................................
...................................
Yogyakarta,
Agustus 2007
Fakultas Teknik Universitas Sanata Dharma
Dekan
Ir. Greg. Heliarko, SJ., B. ST., MA., M. Sc
iv
HALAMAN PERNYATAAN KEASLIAN KARYA
“Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini
tidak memuat karya atau bagian karya orang lain,
kecuali yang telah disebutkan dalam kutipan dan daftar pustaka,
sebagaimana layaknya karya ilmiah.”
Yogyakarta, 2007
Lukas Pandu Prima
v
HALAMAN PERSEMBAHAN
Kupersembahkan karya sederhana ini untuk
Tuhan Yesus Kristus
Bapak dan Ibuku
serta
Adik-adikku
vi
vii
INTISARI
Tugas akhir ini mendeskripsikan tentang program simulasi untuk teknik
kompresi citra menggunakan Discrete Cosine Transform (DCT). Program ini akan
mensimulasikan tahap-tahap perancangan kompresi citra, yaitu kompresi citra dan
ekspansi citra.
Program ini akan menghasilkan citra hasil ekspansi dari citra aslinya.
Spesifikasi yang dibutuhkan yaitu jumlah piksel tiap blok downsampling, jumlah
piksel tiap blok DCT dan tabel kuantisasi. Hasil yang didapat berupa rasio kompresi
dan rata-rata error tiap piksel untuk masing-masing spesifikasi yang dimasukkan.
Dari hasil yang didapat kemudian dapat ditentukan spesifikasi terbaik untuk teknik
kompresi citra.
Program simulasi untuk kompresi citra menggunakan DCT telah
diimpementasikan dan dilakukan pengujian untuk mengamati kinerja kompresi citra.
Hasil yang terbaik diperoleh saat spesifikasi yang digunakan adalah jumlah piksel
tiap blok downsampling adalah 8 x 8, jumlah piksel tiap blok DCT adalah 8 x 8, dan
kuantisasi dengan default quantization table.
Kata kunci : kompresi, ekspansi, DCT, rasio kompresi, rata-rata error tiap piksel
vii
ABSTRACT
This Final project describes the simulation program for technique image
compression using Discrete Cosine Transform (DCT). This program will simulate
the steps for image compression’ design. These are image compression and image
expansion.
This program will produce the image expansion from the pure image. The
needed specification are pixel count in each downsampling block, pixel count in
each DCT block, and quantization table. The result got are the compression ratio
and average of error on each pixel for each entered specification. From this, it will
be decided the best specification for image compression.
The simulation program for image compression using DCT had been
implemented and tested to observe the image compression work. The best result
was got when the specification used for image compression were the pixel count
8 x 8 in each downsampling blok, the pixel count 8 x 8 in each DCT block, and
the quantization with default quantization table.
Keyword : compression, expansion, DCT, compression ratio, average of error
every pixel.
viii
KATA PENGANTAR
Terima kasih kepada Bapaku di surga dan Yesus Kristus atas berkat kasihnya
sehingga penulis dapat menyelesaikan tugas akhir ini dengan baik dan lancar. Dalam
proses penulisan tugas akhir ini penulis menyadari bahwa ada begitu banyak pihak
yang telah memberikan perhatian dan bantuan dengan caranya masing-masing
sehingga tugas akhir ini dapat terselesaikan. Oleh karena itu penulis ingin
mengucapkan terima kasih antara lain kepada :
1. Bapak Ir. Greg. Heliarko, SJ., B.ST., MA., M.Sc, selaku dekan fakultas teknik.
2. Bapak Damar Wijaya, S.T., M.T. selaku pembimbing I atas ide-ide yang
berguna, bimbingan, dukungan, saran dan kesabaran bagi penulis dari awal
sampai tugas akhir ini bisa selesai.
3. Seluruh dosen teknik elektro, laboran, dan Pak Djito atas semua yang telah
diberikan selama penulis belajar dan berinteraksi di Universitas Sanata Dharma
Yogyakarta.
4. Bapak dan Ibu tercinta atas semangat, doa serta dukungan secara moril maupun
materiil.
5. Sinta, Imel dan Dewa atas dukungan, cinta, bantuan yang sangat berguna.
6. Pakde Kiman, Om Gun, Om Agus, dan Om Antok n keluarga besar mbah
buyut.hehe...
7. Dika, makasih banyak ya dik.....kamu memang BF.
8. Hugo juga.
9. Wuri, semoga keluarga kecilmu sehat dan bahagia.
10. Aan, makasih buat sharingnya.
ix
11. Yoesni di Medan. Ke danau toba lagi yuk.
12. Konco-koncoku semua, Hari, Lina, Spadic, McD, Denny, Komang, Robi, Lele,
Andek, Heri, Oscar, Ndaru, Sinung, Broto, Wawan, n banyak lagi.
13. Anak-anak farmasi 2005, yo kumpul lagi yo.
14. Teman-teman angkatan 2002, 2003, 2004, 2001 yang selalu berbagi ilmu dan
pengalaman kuliah.
15. Dan seluruh pihak yang telah ambil bagian dalam proses penulisan tugas akhir ini
yang akan memenuhi halaman ini jika disebutkan satu-persatu.
Dengan rendah hati penulis menyadari bahwa tugas akhir ini masih kurang
sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas akhir ini
sangat diharapkan. Akhir kata, semoga tugas akhir ini dapat bermanfaat bagi semua
pihak. Terima kasih.
Yogyakarta, 30 Juli 2007
Penulis
x
DAFTAR ISI
JUDUL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
HALAMAN PERSETUJUAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
HALAMAN PENGESAHAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .iv
HALAMAN PERNYATAAN KEASLIAN KARYA . . . . . . . . . . . . . . . . . . . . . .v
HALAMAN PERSEMBAHAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
INTISARI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
ABSTRACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
KATA PENGANTAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ix
DAFTAR ISI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
DAFTAR GAMBAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
DAFTAR TABEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
BAB I PENDAHULUAN
1.1 Latar Belakang Masalah . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1.2 Batasan Masalah . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Tujuan Penelitian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
1.4 Manfaat Penelitian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
1.5 Metodologi Penelitian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.6 Sistematika Penulisan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
BAB II DASAR TEORI
2.1 Pengertian Citra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1 Format Citra Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
2.2 Format Berkas Bitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
2.3 Teknik Kompresi (Pemampatan) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 10
2.3.1 Pengertian Kompresi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .10
2.3.2 Prinsip Kompresi Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
xi
2.3.2.1 Data Redundancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 11
2.3.2.2 Human Perception Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.3 Metode Teknik Kompresi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
2.3.4 Rasio Hasil Kompresi (Pemampatan) Data . . . . . . . . . . . . . . . . . . . .. . 12
2.3.5 Faktor Keberhasilan Teknik Kompresi . . . . . . . . . . . . . . . . . . . . . . .. . .13
2.3.6 Kompresi citra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.7 Prinsip Kompresi Citra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
2.4 Discrete Cosine Transform (DCT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 15
2.4.1 Pengertian Discrete Cosine Transform . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.2 Sifat-sifat Discrete Cosine Transform (Properties of DCT) . . . . . . . . . 17
2.4.2.1 Decorrelation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
2.4.2.2 Energy Compaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.2.3 Separabilitas(Separability) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 19
2.4.2.4 Simetri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.2.5 Orthogonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
2.4.3 The One-Dimensional DCT (1-D DCT) . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.4 The Two-Dimensional DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5 Entropy Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5.1 Differential Code Pulse Modulation (DCPM) . . . . . . . . . . . . . . . . . . . .25
2.5.2 Run Length Encoding (RLE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
2.5.3 Huffman Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6 Tahapan Teknik Kompresi Citra menggunakan DCT . . . . . . . . . . . . . . . . 27
2.6.1 Kompresi citra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
2.6.1.1 Transformasi color space/models citra . . . . . . . . . . . . . . . . . . . . .27
2.6.1.2 Down Sampling/chroma subsampling . . . . . . . . . . . . . . . . . . . . . .28
2.6.1.3 Block Splitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
2.6.1.4 Two Dimensional Discrete Cosine Transform (2-D DCT) . .. . . . 30
2.6.1.5 Kuantisasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
2.6.1.5.1 Default Quantization Table . . . . . . . . . . . . . . . . . . . . . . . . .31
2.6.1.5.2 Tabel kuantisasi dengan parameter kualitas . . . . . . . . . . . . 33
2.6.1.6 Entropy Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
xii
2.6.1.6.1 Zig-zag Scanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.6.1.6.2 Huffman Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.6.2 Ekspansi Citra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
2.6.2.1 Huffman Decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
2.6.2.2 Rekonstruksi matriks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
2.6.2.3 Dekuantisasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.6.2.3 Invers 2-D DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.6.2.4 Transformasi color space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
2.7 Perhitungan nilai absolut error rata-rata tiap piksel . . . . . . . . . . . . . . . . . . . 36
BAB III PERANCANGAN PROGRAM SIMULASI TEKNIK KOMPRESI
CITRA
MENGGUNAKAN DISCRETE COSINE TRANSFORM
(DCT)
3.1 Algoritma Perancangan Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.1.1 Algoritma Kompresi citra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
3.1.2 Algoritma Ekspansi citra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 39
3.2 Perancangan Program Simulasi Teknik Kompresi Citra menggunakan DCT
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
3.2.1 Tampilan Program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
3.2.2 Perancangan Tahapan Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
3.2.2.1 Transformasi color space RGB ke YCbCr . . . . . . . . . . . . . . . . . . 44
3.2.2.2 Down Sampling (Chroma sub sampling) . . . . . . . . . . . . . . . . . . . .46
3.2.2.3 Block Splitting dan 2-D DCT . . . . . . . . . . . . . . . . . . . .. . . . . . . . .47
3.2.2.4 Kuantisasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
3.2.2.5 Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.2.2.6 Decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.2.2.7 Dekuantisasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
3.2.2.8 Invers 2-D DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
3.2.2.9 Transformasi color space YCbCr ke RGB . . . . . . . . . . . . . . . . . . 58
3.2.3. Perhitungan Error dan Rasio Kompresi . . . . . . . . . . . . . . . . . . . . . . . 59
3.2.4. Tampilan Utama Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
xiii
3.25. Fitur Program Utama Kompresi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
BAB IV HASIL DAN ANALISA
4.1 Penempatan Berkas Sumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.2 Tampilan Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
4.3. Hubungan antara jumlah piksel tiap blok downsampling, blok DCT dan
Table Kuantisasi dengan Hasil Kompresi . . . . . . . . . . . . . . . . . . . . . . . . 80
4.3.1 Citra Grayscale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.3.2 Citra Cartoon-like. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.3.3 Citra Continuous-tone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
BAB 5 PENUTUP
5.1 Kesimpulan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.2 Saran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
DAFTAR PUSTAKA
LAMPIRAN
xiv
DAFTAR GAMBAR
Gambar 2.1 Citra monochrome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
Gambar 2.2 Citra skala keabuan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
Gambar 2.3 Citra continuous-tone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Gambar 2.4 Citra discrete-tone. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Gambar 2.5 Citra cartoon-like . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
Gambar 2.6 Perbandingan amplitudo dari dua deret piksel . . . . . . . . . . . . . . . . . 15
Gambar 2.7 Penerapan 2-D DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Gambar 2.8 Perbandingan DCT dan DFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Gambar 2.9 Perbandingan (a) amplitudo data terkorelasi dengan (b) data
yang tidak terkorelasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..18
Gambar 2.10 Konsentrasi energi pada DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
Gambar 2.11 Komputasi 2-D DCT dengan separabilitas . . . . . . . . . . . . . . . . . . . 20
Gambar 2.12 (a)-(h) : Hasil komputasi 1-D DCT, dengan nilai
u = 0,1,2…,8 . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Gambar 2.13 Basis fungsi DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Gambar 2.14 Blok diagram tahapan kompresi citra . . . . . . . . . . . . . . . . . . . . . . . 27
Gambar 2.15 Color space RGB dan YCbCr . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Gambar 2.16 tiga macam down sampling : (a) Cr,Cb horizontal+vertical
down sampling ; (b) Cr,Cb horizontal down sampling ;(c)
tanpa down sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Gambar 2.17 Block Splitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
Gambar 2.18 Zig-zag scanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Gambar 3.1 Algoritma perancangan program simulasi kompresi citra . . . . . . . . 37
Gambar 3.2 Algoritma perancangan program simulasi ekspansi citra . . . . . . . . . 38
Gambar 3.3 Diagram alir layout awal program . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Gambar 3.4 Layout awal program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
Gambar 3.5 sub menu dari menu bar ’Main menu’ . . . .. . . . . . . . . . . . . . . . . . . .41
xv
Gambar 3.6. Diagram alir menu bar ’Program’. . . . . . . . . . . . . . . . . . . . . . . . . . 41
Gambar 3.7 Sub menu dari menu bar ’Programmer’. . . . . . . . . . . . . . . . . . . . . . 42
Gambar 3.8 Diagram alir menu bar ’Data diri’. . . . . . . . . . .. . . . . . . . .. . . . . . . 42
Gambar 3.9 Layout data diri pembimbing dan pembuat program . . . .. . . . . . . . .43
Gambar 3.10 Diagram alir transformasi color space YCbCr ke RGB. . .. .. . . . . 45
Gambar 3.11 Diagram alir Downsampling. . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
Gambar 3.12 Diagram alir DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Gambar 3.13 Diagram alir Kuantisasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Gambar 3.14 Diagram alir proses Encoding. . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Gambar 3.15 Diagram alir Decoding.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
Gambar 3.16 Diagram alir dekuantisasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Gambar 3.17 Diagram alir invers 2-D DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Gambar 3.18 Diagram alir transformasi color space YCbCr ke RGB . . . . . . . . . 57
Gambar 3.19 Diagram alir Perhitungan error. . . . . . . . . .. . . . . . . . . . . . . . . . . . .60
Gambar 3.20 Diagram alir Rasio Kompresi . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
Gambar 3.21 Layout Program utama kompresi citra . . . . . . . . . . . . . . .. . . . . . . . 62
Gambar 3.22 Diagram alir push button ‘Compress’ . . . . . . . . . . . . . . . . . . . . .64
Gambar 3.23 Diagram alir push button ‘The Process’ . . . . . . . . . . . . . . . . . . . . 65
Gambar 3.24 Diagram alir push button ‘Reset’ . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Gambar 3.25 Diagram alir push button ‘Exit’ . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Gambar 3.26 Diagram alir radio button ‘Direct’ . . . . . . . . . . . . . . . . . . . . . . 68
Gambar 3.27 Diagram alir radio button ‘With Steps’ . . . . . . . . . . . . . . . . . . . . .69
Gambar 3.28 Diagram alir pop-up menu ‘Downsampling’s block’ . . . . . . . . . . .70
Gambar 3.29 Diagram alir pop-up menu ‘ DCT’s block’ . . . . . . . . . . . . . . . . . . .71
Gambar 3.30 Diagram alir pop-up menu ‘Quantization Table’ . . . . . . . . . . . . . . 72
Gambar 3.31 Diagram alir pop-up menu ‘With parameter’. . . . . . . . . . . . . . . . . 72
Gambar 4.1 Perintah pengaktifan program simulasi dan currnt directory . . . . . . 74
Gambar 4.2 Tampilan awal Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
Gambar 4.3 Sub menu dari menu bar ‘Program’. . . . . . . . . . . . . . . . . . . . . . . . .76
Gambar 4.4 Sub menu dari menu bar ‘Programmer’ . . . . . . . . . . . . . . . . . . . . . .76
Gambar 4.5 Program utama kompresi citra . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .77
xvi
Gambar 4.6 Proses pengambilan citra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
Gambar 4.7 Pesan kesalahan masukan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
Gambar 4.8 Citra di semua tahapan kompresi . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
Gambar 4.9 Grafik hubungan antara rasio kompresi dengan n piksel blok
downsampling untuk lima macam citra grayscale . . . . . . . . . . . . .81
Gambar 4.10 Grafik hubungan antara rata-rata error tiap piksel dengan n piksel
downsampling untuk lima macam citra grayscale . . . . . . . . . . . . 81
Gambar 4.11 Grafik hubungan antara rasio kompresi dengan n piksel DCT untuk
lima macam citra grayscale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Gambar 4.12 Grafik hubungan antara rata-rata error tiap piksel dengan n piksel
DCT untuk lima macam citra grayscale ….. . . . . . . . … .. . . .. . ..83
Gambar 4.13 Grafik hubungan antara rasio kompresi dengan Tabel Kuantisasi
untuk lima macam citra grayscale ……………………………….84
Gambar 4.14 Grafik hubungan antara rata-rata error tiap piksel Tabel Kuantisasi
untuk lima macam citra grayscale .. . …………………………….85
Gambar 4.15 Grafik hubungan antara rasio kompresi dengan n piksel blok
downsampling untuk lima macam citra cartoon-like . . . . . . . . . . . 86
Gambar 4.16 Grafik hubungan antara rata-rata error tiap piksel dengan n piksel
blok downsampling untuk lima macam citra cartoon-like . . . . . . .87
Gambar 4.17 Grafik hubungan antara rasio kompresi dengan n piksel blok DCT
untuk lima macam citra cartoon-like …………………………… 88
Gambar 4.18 Grafik hubungan antara rata-rata error tiap piksel dengan n piksel
blok DCT untuk lima macam citra cartoon-like . ………………. .89
Gambar 4.19 Grafik hubungan rasio kompresi dengan Tabel Kuantisasi . . . . . . 90
Gambar 4.20 Grafik hubungan rata-rata error tiap piksel dengan Tabel Kuantisasi
. . ………………………………………………………………….91
Gambar 4.21 Grafik hubungan antara rasio kompresi dengan n piksel blok
downsampling untuk empat macam citra continuous-tone ……….92
Gambar 4.22 Grafik hubungan antara rata-rata error tiap piksel dengan n piksel
blok downsampling untuk empat macam citra continuous-tone ….92
xvii
Gambar 4.23 Grafik hubungan antara rasio kompresi dengan n piksel blok DCT
untuk empat macam citra continuous-tone …………………….. 93
Gambar 4.24 Grafik hubungan antara rata-rata error tiap piksel dengan n piksel
blok DCT untuk empat macam citra continuous-tone ……………94
Gambar 4.25 Grafik hubungan antara rasio kompresi dengan Tabel Kuantisasi ..95
Gambar 4.26 Grafik hubungan antara rasio kompresi dengan Tabel Kuantisasi . 96
xviii
DAFTAR TABEL
Tabel 2.1 Struktur pada header file . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 9
Tabel 2.2 Struktur pada header bitmap. . . . . . . . . . . . . . . . . . .. .. . . . . . . . . . . . . . . . . . 9
Tabel 2.3 Susunan data citra . . . . . . . . . . . . . . . . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Tabel 2.4 Tabel kuantisasi luminance . . . . . . . . . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . .32
Tabel 2.5 Tabel kuantisasi chrominance. . . . . . . . . .. .. . . . . . . . . . . . . . . . . . . . . . . . 32
Tabel 4.1 Tabel Perbandingan hasil pengujian untuk tiap jenis citra . . . . . . . . . . . . . . . . .96
xix
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Perkembangan teknologi komputer akhir-akhir ini semakin membutuhkan
media penyimpanan yang besar. Berbagai jenis data yang akan disimpan terus
bertambah. Menambah kapasitas media penyimpanan pada komputer tetap belum
mampu menampung data yang semakin besar seiring aktivitas manusia menggunakan
komputer.
Oleh karena itu, diperlukan suatu teknik untuk menghemat media
penyimpanan namun tidak menghilangkan data yang harus disimpan. Teknik ini
disebut dengan teknik kompresi data. Dengan teknik kompresi, data yang akan
disimpan dapat diperkecil ukurannya dengan mengubah data ke dalam bentuk kode
yang nantinya dapat diekspansi ke bentuk semula [1]. Salah satu jenis data yang
cukup penting dan memiliki ukuran yang cukup besar adalah citra.
Teknik kompresi untuk data citra telah banyak dilakukan, terutama oleh
kalangan pengguna teknologi informasi. Tujuan yang ingin dicapai adalah rasio
kompresi yang baik, data yang diinginkan masih dapat ditoleransi oleh indera
manusia dan diharapkan komputasi algoritma yang dibutuhkan cukup sederhana
[1],[2]. Teknik kompresi yang akan dianalisa dalam tugas akhir ini adalah teknik
kompresi dengan Discrete Cosine Transform (DCT). Alasan pemilihan DCT adalah
karena memiliki komputasi algoritma yang cepat, rasio pemampatan yang baik dan
karakteristik DCT seperti decorrelation, energy compaction, separability, simetri dan
orthogonal sangat mendukung dalam proses kompresi citra [2].
2
1.2 Batasan Masalah
Batasan masalah dalam tugas akhir ini adalah :
1. Metode yang digunakan adalah 2-D Discrete Cosine Transform.
2. Program simulasi dibuat menggunakan Graphical User Interface yang
disediakan oleh MATLAB®.
3. Berkas citra yang digunakan adalah format BMP.
4. Hasil yang ingin dicapai berupa perbandingan ukuran berkas (compression
ratio), visualisasi tiap tahap kompresi dan nilai rata-rata absolut error tiap
piksel.
1.3 Tujuan Penelitian
Tujuan penyusunan tugas akhir ini adalah untuk menghasilkan suatu program
bantu untuk menampilkan proses kompresi data citra menggunakan DCT.
1.4 Manfaat Penelitian
Manfaat yang diharapkan dari penulisan tugas akhir ini adalah:
1. Dapat memberikan pemahaman mengenai proses kompresi citra, khususnya
dengan teknik kompresi DCT bagi mahasiswa sub bidang pemrosesan sinyal.
2. Dapat menjadi referensi mengenai teknik kompresi data, pemrograman pada
MATLAB dan komputasi Discrete Cosine Transform.
1.5 Metodologi Penelitian
Metode yang digunakan untuk menyusun tugas akhir ini adalah :
1. Studi pustaka yang berhubungan dengan teknik kompresi data dan Discrete
Cosine Transform (DCT).
2. Merancang program simulasi dan penghitungan komputasi Discrete Cosine
Transform (DCT).
3. Membuat program kompresi citra dan mengujinya.
3
4. Membahas dan menganalisis hasil kompresi citra.
5. Membuat kesimpulan dari hasil analisis dan pembahasan.
1.6 Sistematika Penulisan
Sistematika penulisan pada tugas akhir ini adalah sebagai berikut :
BAB I
PENDAHULUAN
Berisi latar belakang masalah, batasan masalah, tujuan penelitian,
metodologi penelitian dan sistematika penulisan.
BAB II
DASAR TEORI
Berisi teori-teori yang mendasari perancangan penelitian, penjelasan
tentang kompresi citra, algoritma kompresi, komputasi DCT dan
tahapan kompresi citra.
BAB III
PERANCANGAN
Berisi perancangan
program, alur kompresi tiap tahapan dengan
DCT sebagai komputasi utama kompresi.
BAB IV
PEMBAHASAN
Berisi hasil program yang telah dibuat dan analisis hasil
kompresi dari simulasi kompresi data.
BAB V
PENUTUP
Berisi
kesimpulan
dari
hasil
pengembangan penelitian berikutnya.
analisis
dan
saran
terhadap
BAB II
DASAR TEORI
2.1 Pengertian Citra
Citra merupakan keluaran suatu sistem perekaman data yang dapat bersifat
seperti foto, bersifat analog berupa sinyal video seperti gambar pada monitor
televisi, atau bersifat digital yang dapat disimpan pada media penyimpanan digital
[3]. Berdasarkan tingkat presisi yang digunakan untuk menyatakan titik-titik
kordinat pada domain bidang dan untuk menyatakan nilai keabuan atau warna
suatu citra, maka secara teoritis citra dapat dikelompokkan menjadi empat kelas
citra. Empat kelas citra tersebut adalah citra kontinyu-kontinyu, citra kontinyudiskrit, citra diskrit-kontinyu, dan citra diskrit-diskrit. Label pertama dari nama
kelas citra menyatakan tingkat presisi dari titik-titik koordinat pada bidang citra,
sedangkan label kedua menyatakan tingkat presisi dari tingkat keabuan atau warna.
Kontinyu dinyatakan dengan presisi angka tidak terhingga, sedangkan diskrit
dinyatakan dengan presisi angka terhingga [3], [4].
Komputer bekerja dengan angka-angka presisi terhingga, dengan demikian
komputer hanya bisa mengolah citra dari kelas diskrit-diskrit. Citra dari kelas
diskrit-diskrit lebih dikenal dengan citra digital. Citra digital merupakan suatu
matriks dengan unsur-unsur yang menyatakan tingkat keabuan dari unsur gambar.
Jadi informasi dari citra bersifat diskrit. Citra digital tidak selalu merupakan hasil
langsung data rekaman suatu sistem. Hasil rekaman data yang bersifat kontinyu
seperti gambar monitor televisi, foto sinar X, dan lain sebagainya harus dikonversi
terlebih dahulu agar bisa diproses secara digital [3].
Sebuah citra memiliki suatu nilai resolusi. Semakin tinggi resolusi yang
dimiliki suatu citra, semakin banyak pula jumlah titik yang dapat ditampilkan layar
monitor. Titik-titik yang dihasilkan tidak akan terlihat oleh mata manusia, karena
5
citra yang dihasilkan sangat halus. Titik-titik pada layar monitor sering disebut
pixel (picture element) [3].
2.1.1 Format citra digital
Format citra digital yang banyak dipakai adalah [2] :
1. Citra monochrome (bi- level)
Citra monochrome biasa disebut citra biner. Pada citra monochrome, setiap
titik bernilai 0 atau 1, masing-masing merepresentasikan warna tertentu, misalnya
warna hitam bernilai 0 dan warna putih bernilai 1. Setiap titik pada citra hanya
membutuhkan 1 bit, sehingga setiap byte dapat menampung informasi 8 titik.
Gambar 2.1 menampilkan contoh citra monochrome.
Gambar 2.1 Citra monochrome.
2. Citra skala keabuan (gray scale image)
Citra skala keabuan memberi kemungkinan warna lebih banyak daripada
citra biner, karena ada nilai-nilai lain di antara nilai minimum (biasanya = 0) dan
nilai maksimum. Rentang antara nilai minimum dan nilai maksimum tergantung
jumlah bit yang dipakai.
Format citra ini disebut skala keabuan karena pada umumnya warna yang
dipakai adalah antara hitam sebagai warna minimal dan warna putih sebagai warna
maksimal. Sedangkan warna di antaranya adalah abu-abu. Namun pada prakteknya
warna yang dipakai tidak terbatas pada warna abu-abu. Sebagai contoh, warna
6
minimal adalah putih dan warna maksimal adalah merah, atau warna yang lain.
Gambar 2.2 menampilkan contoh citra skala keabuan.
Gambar 2.2 Citra skala keabuan.
3. Continuous-tone image
Tipe citra ini dapat memiliki beberapa warna yang mirip. Ketika piksel
yang berdekatan mempunyai warna yang berbeda satu skala saja, maka mata
manusia sangat sulit, bahkan mungkin tidak mampu untuk membedakannya.
Sebagai hasilnya adalah citra yang terdiri dari area-area dengan warna yang seakan
tampak sama terhadap sensitifitas mata di suatu area citra. Sebuah piksel
direpresentasikan oleh salah satu dari nomor pewarnaan tunggal (untuk tipe
grayscale) atau salah satu dari tiga komponen warna (untuk citra berwarna).
Citra continuous-tone pada dasarnya adalah citra natural/alami (kebalikan
dari citra artifisial/buatan). Citra natural adalah citra yang direkam secara
langsung, dan belum mengalami manipulasi data. Sedangkan citra artifisial adalah
citra yang merupakan hasil manipulasi data atau murni citra yang dibuat oleh
komputer. Citra natural biasanya diperoleh dari pengambilan gambar dengan
kamera digital, atau dengan scanning suatu potret atau lukisan. Gambar 2.3
menampilkan contoh citra continuous-tone.
7
Gambar 2.3 Citra continuous-tone.
4. Discrete-tone image
Citra discrete-tone sering disebut dengan graphical image atau citra
sintetik (synthetic image) yang pada dasarnya adalah citra buatan (artificial
image). Citra ini dapat memiliki sedikit warna atau banyak warna, tetapi tidak
memiliki noise dan efek penghamburan (blurring) seperti pada citra natural.
Contoh dari tipe ini adalah obyek buatan dari mesin/komputer seperti tabel,
halaman teks, kartun, dan berbagai bagian dari layar komputer.
Tidak semua obyek buatan komputer/mesin adalah discrete-tone. Obyek
buatan yang memiliki ciri seperti citra alami dapat disebut citra continuous-tone.
Piksel yang bersebelahan dalam citra discrete-tone memiliki perbedaan nilai warna
yang cukup jelas. Gambar 2.4 menampilkan contoh citra discrete-tone.
Gambar 2.4 Citra discrete-tone.
5. Cartoon-like image
Tipe citra ini merupakan citra berwarna yang terdiri dari area yang
seragam. Area yang seragam adalah kesamaan nilai piksel yang mewakili warna di
suatu area citra. Suatu area mempunyai warna yang seragam, tetapi dengan area
8
yang bersebelahan mungkin memiliki warna yang sangat berbeda. Sebagai contoh
adalah citra kartun yang biasa kita lihat pada film atau gambar komik. Gambar 2.5
menampilkan contoh citra cartoon-like.
Gambar 2.5 Citra cartoon-like [5].
2.2 Format Berkas BMP (Bitmap)
Bitmap adalah citra atau segala bentuk gambar, karakter teks dan foto yang
dibuat dari sekumpulan titik-titik kecil. Bitmap yang paling sederhana adalah
monochrome, yang hanya menampilkan satu warna di atas latar belakang,
misalnya hitam di atas putih. Format Windows® bitmap adalah sebuah citra yang
langsung ditampilkan dari sebuah objek image [6].
Berkas dengan format BMP mempunyai tiga bagian pokok, yaitu [6] :
1. Header file(Bitmap File Header)
2. Header Bitmap (Bitmap Info Header)
3. Data Citra (Tabel Warna)
1. Header file (Bitmap File Header)
Bagian ini digunakan untuk menentukan layout, ukuran dan tipe dari
berkas BMP. Tabel 2.1 menampilkan struktur yang terdapat pada header file.
9
Tabel 2.1 Struktur pada header file [6].
Offset
Ukuran
0
2 byte
BfType
ASCII ”BMP”
2
4 byte
Bfsize
Ukuran berkas BMP
6
2 byte
BfReserved1
Kosong (0)
8
2 byte
BfReserved2
Kosong (0)
9
4 byte
BfOffBit
Offset awal data citra dalam byte
Nama
Keterangan
2. Header Bitmap (Bitmap Info Header)
Bagian ini digunakan untuk menentukan dimensi, tipe kompresi dan format
warna untuk bitmap. Tabel 2.2 menampilkan struktur dari header bitmap.
Tabel 2.2 Struktur pada header bitmap [6].
Offset
Ukuran
14
4 byte
BiSize
Ukuran header dalam byte
18
4 byte
BiWidth
Lebar citra dalam piksel
22
4 byte
BiHeight
Tinggi citra dalam piksel
26
2 byte
BiPlanes
Jumlah plane dalam citra hampir
selalu 1
28
2 byte
BiBitCount
Jumlah per piksel 1, 4, 8, 24
30
4 byte
BiCompression
Jenis kompresi untuk
terkompres nilainya 0
34
4 byte
BiSizeImage
Untuk ukuran citra dalam byte
38
4 byte
BiXPelsPermeter
Resolusi horizontal dalam piksel
meter
42
4 byte
BiyPelsPermeter
Resolusi vertikal dalam piksel meter
Nama
Keterangan
berkas
10
Tabel 2.2 (lanjutan) Struktur pada header bitmap [6].
Offset
Ukuran
46
4 byte
BiClrUsed
Jumlah warna yang digunakan. Jika
palet warna nilainya adalah nol,
maka semua nilainya sama.
50
4 byte
BiClrImportant
Jumlah warna yang penting
54
4 byte x
256
BmiColor
Untuk citra 24 bit palet warnanya
tidak ada
Nama
Keterangan
3. Data Citra (Tabel Warna)
Data citra didefinisikan sebagai matriks dari struktur RGBQuad yang berisi
elemen sebanyak warna yang ada pada bitmap [6]. Tabel 2.3 menunjukkan
susunan data citra.
Tabel 2.3 Susunan data citra [6].
Offset
Nama
Keterangan
0
RgbBlue
Nilai warna biru
1
RgbGreen
Nilai warna hijau
2
RgbRed
Nilai Warna merah
3
RgbReserved
Nilainya selalu nol (0)
2.3 Teknik Kompresi (Pemampatan)
2.3.1 Pengertian Kompresi
Kompresi merupakan suatu proses pengubahan lambang masukan ke dalam
sandi keluaran yang dikehendaki dengan ukuran berkas yang lebih kecil dari
aslinya. Kompresi juga dapat didefinisikan sebagai suatu teknik yang digunakan
untuk memperkecil ukuran suatu berkas masukan, sehingga dapat dimuat dalam
media penyimpanan yang diinginkan [1], [2].
11
2.3.2 Prinsip Kompresi Data
Dalam melakukan teknik kompresi, faktor utama yang memungkinkan
kompresi data adalah data redundancy dan kemampuan persepsi manusia (human
perception properties) [2].
2.3.2.1 Data redundancy
Dalam digital audio, contoh data redundancy dapat diberikan dalam
sebuah rekaman percakapan. Selama percakapan berlangsung, sering terdapat jeda
waktu di antara percakapan (keadaan diam). Sampel nilai dari keadaan diam dapat
dihilangkan tanpa mempengaruhi data utama.
Untuk citra digital, piksel yang bertetangga pada umumnya mirip.
Kemiripan ini sering disebut spatial redundancy. Spatial redundancy ini dapat
dihilangkan tanpa mempengaruhi data utama. Begitu pula dengan video digital,
selain memiliki spatial redundancy, urutan citra yang berdekatan dalam video
secara umum memiliki kemiripan. Kemiripan citra yang berurutan ini disebut
temporal redundancy. Temporal redundancy ini juga dapat dihilangkan tanpa
mempengaruhi data utama [7].
2.3.2.2 Human Perception Properties
Manusia memiliki panca indera sebagai alat ukur/deteksi terhadap
perubahan keadaan dari keadaan sekitar. Walaupun begitu, panca indera manusia
tidak mampu memberikan penilaian yang mutlak benar terhadap perubahan. Dari
kemampuan yang terbatas tersebut, manusia secara normal dapat memberikan
toleransi terhadap kehilangan atau kerusakan sedikit informasi data yang diterima
tanpa mempengaruhi efektifitas penyampaian informasi.
Dengan adanya kemampuan toleransi ini berarti bahwa data yang
terkompresi tidak perlu direpresentasikan secara tepat kembali ke data aslinya. Hal
ini berarti bahwa teknik kompresi akan mengutamakan rasio kompresi yang tinggi,
tetapi informasi yang penting terhadap indera manusia harus dijaga.
12
2.3.3 Metode Teknik Kompresi
Teknik kompresi dapat dibagi menjadi dua berdasarkan pada hasil akhir
yang dicapai dalam proses kompresi dibandingkan dengan masukannya. Dua
metode tersebut adalah [1] :
1. Tidak merugi (lossless)
Metode ini membuat seluruh data yang telah melalui proses kompresi, dan
kemudian diekspansi, akan kembali seperti semula seperti pada data aslinya.
Sehingga keutuhan datanya terjamin. Metode ini cocok pada jenis data database,
spreadsheed, atau word processor, karena keakuratan dari data hasil kompresi
adalah suatu hal yang penting.
2. Merugi (lossy)
Metode ini membuat data yang telah melalui proses kompresi dan
kemudian diekspansi kembali akan kehilangan sebagian data. Hal ini berarti data
hasil kompresi tidak akurat lagi. Metode kompresi ini cocok digunakan pada
penyimpanan data citra grafik atau data suara digital karena kehilangan sebagian
dari data masih dapat diterima oleh indera manusia.
2.3.4 Rasio Hasil Kompresi (Pemampatan) Data
Keberhasilan suatu metode kompresi ditentukan berdasarkan besar
kecilnya rasio kompresi (pemampatan) yang dihasilkan. Rasio kompresi adalah
perbandingan ukuran data yang terkompresi dengan ukuran aslinya dalam 100%.
Semakin kecil nilai rasio kompresi berarti semakin efektif metode kompresi yang
digunakan. Persamaan untuk rasio kompresi diberikan sebagai [2]:
⎛ Bt ⎞
Rk = ⎜
⎟ * 100%
⎝ Ba ⎠
(2.1)
dengan Rk adalah rasio kompresi, Bt adalah berkas terkompresi, dan Ba adalah
berkas asli.
13
2.3.5 Faktor Keberhasilan Teknik Kompresi
Terdapat empat faktor keberhasilan dalam pembuatan program teknik
kompresi yaitu [8] :
1. Prosentase data yang dapat dikompresi
Jika teknik kompresi memiliki prosentase kompresi yang besar mendekati
100 %, maka teknik kompresi tersebut bisa dikategorikan baik.
2. Jaminan keutuhan data setelah dikompresi dan diekspansi
Data yang dikompresi ukurannya akan menjadi lebih kecil dibandingkan
dengan data aslinya. Teknik kompresi yang digunakan dikategorikan baik
jika setelah diekspansi, maka ukurannya harus kembali seperti pada data
aslinya.
3. Kecepatan proses kompresi
Waktu yang dibutuhkan saat proses kompresi juga mempengaruhi baik
tidaknya suatu teknik kompresi yang digunakan. Semakin sedikit waktu
yang dibutuhkan untuk proses kompresi data, teknik kompresi akan
semakin baik.
4. Kemudahan pemakaian dan fasilitas tambahan yang tersedia
Program yang dibuat hendaknya bersifat
user friendly yaitu mudah
dijalankan dan sederhana. Selain itu program tersebut akan semakin baik
jika dilengkapi fasilitas tambahan seperti daftar istilah, bantuan
penggunaan program, fasilitas penyimpanan dan menu pendukung yang
lain jika dimungkinkan.
2.3.6 Kompresi citra
Suatu kompresi dikatakan berhasil, jika nilai data baru yang dihasilkan
lebih kecil dalam rata-rata dari nilai data aslinya. Hasil kompresi dapat diperoleh
dengan mengkuantisasi nilai yang telah ditransformasi. Masukan dekoder berupa
data yang telah ditransformasi dari alur kompresi dan merekonstruksi data asli
dengan mengaplikasikan invers dari transformasi yang digunakan. Hal ini disebut
dengan sifat orthogonal [2].
14
Sebuah citra dapat dikompres jika memiliki redundancy. Redundancy
dalam sebuah citra berasal dari korelasi pikselnya. Jika ingin mentransformasikan
suatu citra untuk merepresentasikan data baru dengan piksel yang tidak terkorelasi,
maka harus mengeliminasi terlebih dahulu redundancy. Sehingga citra dapat
dikompres lebih optimal [2]. Istilah dari tidak terkorelasi (decorrelated) berarti
bahwa nilai yang telah ditransformasi bersifat independen satu dengan yang
lainnya. Hal ini menyebabkan tiap nilai dapat dikodekan secara independen pula,
sehingga komputasi yang dibutuhkan menjadi lebih sederhana.
2.3.7 Prinsip Kompresi Citra
Jika kita memilih sebuah piksel dalam suatu citra secara acak, maka
terdapat peluang bahwa piksel lain yang bersebelahan mungkin memiliki warna
yang sama atau yang mirip/hampir sama. Kompresi citra didasarkan pada fakta
bahwa piksel-piksel yang bersebelahan memiliki tingkat korelasi yang tinggi.
Korelasi yang terjadi sering juga disebut sebagai spatial redundancy [2].
Contoh 2.1
Deretan data berikut menunjukkan intensitas nilai dari 24 piksel acak yang
berdekatan dalam baris citra continuous-tone:
12, 17, 14, 19, 21, 26, 23, 29, 41, 38, 31, 44, 46, 57, 53, 50, 60, 58, 55, 54,
52, 51, 56, 60
Hanya ada dua dari 24 piksel yang identik, yaitu :
60
Rata-ratanya adalah 40.3
Kurangkan pasangan dari piksel yang bersebelahan, sehingga dihasilkan
deret baru :
12, 5, -3, 5, 2, 4, -3, 6, 11, -3, -7, 13, 4, 11, -4, -3, 10, -2, -3, 1, -2, -1, 5, 4
Gambar 2.6 menampilkan perbandingan amplitudo antara dua deretan piksel
di atas.
15
60
15
50
10
40
5
30
0
20
-5
10
0
0
5
10
15
20
25
-10
0
(a)
5
10
15
20
25
(b)
Gambar 2.6 Perbandingan amplitudo dari dua deret piksel.
Deret yang terjadi dari proses di atas memiliki tiga indikasi yang
menunjukkan potensi kompresi, yaitu [2]:
1. Perbedaan nilai pikselnya lebih kecil dibandingkan dengan perbedaan
nilai piksel dari deret aslinya. Rata-ratanya adalah 2.58.
2. Hanya ada 15 nilai beda, sehingga dapat dikodekan dengan empat bit
saja.
3. Deretnya tidak terkorelasi (decorrelated), artinya perbedaan nilai piksel
yang bersebelahan cukup besar.
2.4 Discrete Cosine Transform (DCT)
2.4.1 Pengertian Discrete Cosine Transform
Discrete Cosine Transform (DCT) adalah salah satu metode transformasi
sinyal yang mirip dengan Discrete Fourier Transform (DFT) tetapi hanya
menggunakan real number. DCT merupakan salah satu komponen utama dalam
sebagian besar teknik pengkompresian citra dan video. Variabel kompleksitas
kerangka algoritma dapat diaplikasikan dengan baik untuk memperoleh hasil awal
dengan koefisien rendah saat dikomputasikan IDCT pada dekoder. DCT
beroperasi pada fungsi bilangan terbatas pada data discrete. Selain itu DCT
16
mempunyai kerapatan tingkat energi yang cukup baik, hal ini disebabkan karena
sebagian besar sinyal informasi cenderung terkonsentrasi di frekuensi rendah [9],
[10].
DCT, khususnya dua dimensi (2-D) DCT sering digunakan untuk
pemrosesan sinyal citra, terutama untuk kompresi data dengan teknik merugi
(lossy) karena memiliki energy compaction yang besar. Sebagian besar sinyal
informasi cenderung dipusatkan di beberapa komponen frekuensi rendah DCT.
Sebagai contoh DCT digunakan dalam kompresi citra JPEG, MJPEG, MPEG dan
kompresi video DV. Untuk citra, 2-D DCT n x n blok dikomputasikan dan
hasilnya akan melewati proses kuantisasi dan kode entropi. Dalam hal ini n secara
tipikal adalah 8 dan DCT-II diaplikasikan pada masing-masing baris dan kolom
[10]. Gambar 2.7 menampilkankan penerapan dari 2-D DCT n x n blok.
Gambar 2.7 Penerapan 2-D DCT [10].
Seperti pengembangan transformasi lain dari DFT, discrete cosine
transforms (DCT) menyatakan suatu fungsi atau suatu isyarat yang memiliki
perbedaan frekuensi dan amplitudo dalam komputasi sinyal sinusoida. Seperti
discrete fourrier transforms (DFT), DCT beroperasi pada fungsi dengan jumlah
baris data terbatas dan pada discrete point. Perbedaan yang jelas antara DFT dan
DCT adalah DCT hanya menggunakan fungsi cosinus, sedangkan DFT
menggunakan fungsi sinus dan cosinus (dalam hal ini bersifat eksponen kompleks)
[9]. Gambar 2.8 menampilkan perbandingan komputasi antara DFT dan DCT pada
sebuah citra berdasarkan spektrum dan histogram.
17
Gambar 2.8 Perbandingan DCT dan DFT [9].
Gambar 2.8 menunjukkan perbandingan antara DCT dan DFT, bagian kiri
merupakan nilai magnitude spektrum, sedangkan bagian kanan merupakan
histogram. Pada DCT energi terkonsentrasi di tingkat rendah.
2.4.2 Sifat-sifat Discrete Cosine Transform (Properties of DCT)
2.4.2.1 Decorrelation
Seperti yang telah dibahas sebelumnya, yaitu bahwa dalam kompresi citra,
redundancy antara piksel yang berdekatan akan dihilangkan. Sehingga dibutuhkan
koefisien transformasi yang tidak terkorelasi dan piksel dapat dikodekan secara
independent [11]. Gambar 2.9 menampilkan contoh perbandingan antara data
terkorelasi dengan data yang tidak terkorelasi.
18
(a)
(b)
Gambar 2.9 Perbandingan (a) amplitudo data terkorelasi dengan
(b) data yang tidak terkorelasi [11].
Dari gambar 2.9 di atas menunjukkan bahwa amplitudo data yang tidak
terkorelasi jauh lebih kecil dibandingkan dengan data terkorelasi. Hal ini
membuktikan bahwa DCT memberikan decorrellation yang sangat bagus.
2.4.2.2 Energy Compaction
Salah satu indikasi kehandalan suatu teknik kompresi dapat diukur dengan
mempertimbangkan kemampuannya memasukkan banyaknya data ke dalam
sejumlah koefisien yang mungkin. Dari semua koefisien yang dimasukkan,
pengkuantisasi akan menghilangkan koefisien dengan amplitudo yang relatif kecil
tanpa memperhatikan visual distorsi dari citra yang direkonstruksi. Sehingga
dibutuhkan konsentrasi energi yang terpusat untuk koefisien dengan amplitudo
yang besar. DCT memberikan konsentrasi energi yang sempurna untuk data citra
terkorelasi [11]. Gambar 2.10 menampilkan pemusatan energi oleh DCT pada
sebuah contoh citra.
19
Gambar 2.10 Konsentrasi energi pada DCT [9].
Contoh di atas menunjukkan bahwa unjuk kerja dari konsentrasi energi
DCT mendekati optimal dekorelasi. Hal ini berlaku untuk hampir semua jenis citra
[11].
2.4.2.3 Separabilitas (Separability)
Persamaan 2-D DCT dapat didefinisikan sebagai [11]:
N −1
⎡ π (2 y + 1)v ⎤
⎡ π (2 x + 1)u ⎤ N −1
C (u, v) = α (u )α (v)∑ cos ⎢
f ( x, y ) cos⎢
∑
⎥
⎥,
2N
2N
⎦ y =0
⎣
⎣
⎦
x =0
(2.2 )
untuk u,v = 0, 1, 2, …, N-1, dengan C(u,v) adalah matriks hasil operasi DCT, f(x,y)
adalah matriks data asli. α(u) sama dengan α(v) dan didefinisikan sebagai :
α(u)
1
N
u=0
(2.3)
2
N
u= 0
20
Sifat separabilitas ini memiliki prinsip bahwa C(u,v) dapat dikomputasikan
dengan dua langkah, yaitu operasi 1-D pada baris dan kolom secara berurutan pada
suatu citra. Hal ini dapat diilustrasikan pada Gambar 2.11. Sifat ini juga berlaku
untuk invers DCT.
Gambar 2.11 Komputasi 2-D DCT dengan separabilitas [11].
2.4.2.4 Simetri
Seperti yang ditunjukkan pada sifat separabilitas, operasi 1-D pada kolom
dan baris secara fungsional serupa. Transformasi dengan sifat fungsi yang serupa
seperti itu disebut dengan symmetric transform [11]. Transformasi yang simetri
dan dapat dipisah-pisah dapat didefinisikan sebagai :
T=AfA’
(2.4)
dengan T adalah hasil transformasi DCT , f adalah fungsi DCT dan A adalah NxN
transformasi simetri matriks dengan masukan a(i,j) didefinisikan sebagai :
⎡ π (2 j + 1)i ⎤
a(i, j ) = α ( j )∑ cos ⎢
⎥,
⎦
⎣ 2N
j =0
N −1
(2.5)
dan f adalah NxN matriks citra.
2.4.2.5 Orthogonal
DCT real dan orthogonal, didefinisikan sebagai :
C=C* => C-1=CT
(2.6)
21
2.4.3 The One-Dimensional DCT (1-D DCT)
Dalam kompresi citra, metode yang digunakan adalah 2-D DCT , akan
tetapi sebagai dasar pemahaman teori, 1-D DCT dibutuhkan dalam