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
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
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.
………
………
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
Tanda Tangan
Ketua
: 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
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
Kupersembahkan karya sederhana ini untuk
Tuhan Yesus Kristus
Bapak dan Ibuku
serta
Adik-adikku
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
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.
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.
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
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
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
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
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
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
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
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
Gambar 4.25 Grafik hubungan antara rasio kompresi dengan Tabel Kuantisasi ..95
Gambar 4.26 Grafik hubungan antara rasio kompresi dengan Tabel Kuantisasi . 96
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
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.
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).
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
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, citra
kontinyu-diskrit, 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
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
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
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
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
Tabel 2.1
Struktur pada
header file
[6].
Offset
Ukuran Nama
Keterangan
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
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 Nama
Keterangan
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 berkas
terkompres nilainya 0
34 4
byte
BiSizeImage
Untuk ukuran citra dalam
byte
38 4
byte
BiXPelsPermeter
Resolusi horizontal dalam piksel
meter
Tabel 2.2
(lanjutan) Struktur pada
header bitmap
[6].
Offset
Ukuran Nama
Keterangan
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
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
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,
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]:
⎟
*
100
%
⎠
⎞
⎜
⎝
⎛
=
Ba
Bt
Rk
(2.1)
dengan
Rk
adalah rasio kompresi,
Bt
adalah berkas terkompresi, dan
Ba
adalah
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
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
0 5 10 15 20 25 0
10 20 30 40 50 60
0 5 10 15 20 25
-10 -5 0 5 10 15
(a)
(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
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
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
(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.
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]:
∑
∑
− = − =⎥⎦
⎤
⎢⎣
⎡
+
⎥⎦
⎤
⎢⎣
⎡
+
=
1 0 1 0,
2
)
1
2
(
cos
)
,
(
2
)
1
2
(
cos
)
(
)
(
)
,
(
N x N yN
v
y
y
x
f
N
u
x
v
u
v
u
C
α
α
π
π
(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 :
N
1
u
= 0
α
(u)
(2.3)
N
2
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 :
∑
−=
⎥⎦
⎤
⎢⎣
⎡
+
=
10
,
2
)
1
2
(
cos
)
(
)
,
(
N
j
N
i
j
j
j
i
a
α
π
(2.5)
dan
f
adalah
NxN
matriks citra.
2.4.2.5 Orthogonal
DCT real dan orthogonal, didefinisikan sebagai :
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 keseluruhan
konsep.
Persamaan 1-D DCT didefinisikan sebagai [11]:
,
2
)
1
2
(
cos
)
(
)
(
)
(
1 0∑
− =⎥⎦
⎤
⎢⎣
⎡
+
=
N xN
u
x
x
f
u
u
C
α
π
(2.7)
untuk
u
= 0, 1, 2, 3, . . ., N-1. Sedangkan invers 1-D DCT didefinisikan sebagai
[11]:
,
2
)
1
2
(
cos
)
(
)
(
)
(
1 0∑
− =⎥⎦
⎤
⎢⎣
⎡
+
=
N uN
u
x
u
C
u
x
f
α
π
(2.8)
untuk
x
= 0, 1, 2, 3, …, N-1
Hal ini jelas untuk. persamaan (2.7), untuk
u
= 0,
∑
− =
=
=
1 0)
(
1
)
0
(
N xx
f
N
u
C
.
Untuk lebih jelasnya, abaikan komponen
α
(u)
dan
f(x)
terlebih dahulu pada
persamaan (2.7), kemudian hitung
∑
=
⎥⎦
⎤
⎢⎣
⎡
02
)
1
2
(
cos
xN
u
x
−1
+
N
π
dengan N = 8 dan
variasikan nilai
u
. Gambar 2.12 menampilkan hasil komputasi persamaan
C(u)
.
(a). C(u) saat u=0
(b). C(u) saat u=1
(c). C(u) saat u=2
(d). C(u) saat u=3
(e). C(u) saat u=4
(f). C(u) saat u=5
(g). C(u) saat u=6
(h). C(u) saat u=0
Gambar 2.12
(lanjutan) (a)-(h) : Hasil komputasi 1-D DCT, dengan
nilai u = 0,1,2…,7 [11].
Jika deret input memiliki lebih dari
N
sampel poin, maka deret tersebut
dapat dibagi menjadi sub deret dari panjang
N
. Pada bagian ini yang harus dicatat
adalah tiap masing-masing nilai komputasi dari basis fungsi tidak berubah. Hanya
nilai dari
f(x)
yang mengubah masing-masing sub deret. Hal ini merupakan aspek
yang sangat penting, mulai dari basis fungsi yang dapat di
pre-computed
secara
offline
kemudian baru dikalikan dengan sub deretnya. Sehingga akan mengurangi
jumlah operasi matematika yang harus dilakukan dan dapatmeningkatkan efisiensi
komputasi [2], [11].
2.4.4 The Two-Dimensional DCT
2-D DCT merupakan perluasan langsung dari 1-D dan telah didefinisikan
pada persamaan (2.2). Sedangkan Invers transform didefinisikan sebagai [11]:
∑∑
− = − =⎥⎦
⎤
⎢⎣
⎡
+
⎥⎦
⎤
⎢⎣
⎡
+
=
1 0 1 0,
2
)
1
2
(
cos
2
)
1
2
(
cos
)
,
(
)
(
)
(
)
,
(
N u N vN
v
y
N
u
x
v
u
C
v
u
y
x
f
α
α
π
π
(2.9)
untuk
x, y
= 0, 1, 2, …,
N
-1. 2-D DCT dapat diinterpretasikan dalam dua cara yang
berbeda, yaitu sebagai komputasi rotasi dan sebagai basis dari
n
-dimensi
vector
space
.
Untuk interpretasi yang pertama, dimulai dengan blok
n
x
n
piksel.
Pertama, memperhitungkan tiap baris nilai blok ke dalam
n
-
dimensional space
dan
interpretasi ini akan merotasikan dimensi tersebut dengan persamaan bagian kanan
dari persamaan (2.2) :
∑
− =⎥⎦
⎤
⎢⎣
⎡
+
=
1 02
)
1
2
(
cos
)
,
(
)
(
)
,
(
1
N yN
v
y
y
x
f
v
v
u
C
α
π
(2.10)
Komputasi di atas akan menghasilkan sebuah blok
C
1(u,v) dari koefisien
n
x
n
dengan elemen pertama dari tiap baris adalah dominan dan sisa elemennya
kecil. Kemudian dari persamaan (2.2) di atas dapat didefinisikan sebagai :
∑
− =⎥⎦
⎤
⎢⎣
⎡
+
=
1 02
)
1
2
(
cos
)
,
(
1
)
(
)
,
(
N xN
u
x
v
u
C
u
v
u
C
α
π
(2.11)
Pada persamaan (2.11), kolom
C
1(
u
,
v
) menjadi point penting dalam
n
-dimensi space dan sudah dirotasikan. Hasilnya, satu koefisien terbesar yang
terletak di sebelah kiri atas blok dan di lokasi yang lain koefisiennya lebih kecil
sekitar
n
2-1. Pada interpretasi ini menunjukkan bahwa 2-D DCT merupakan dua
rotasi terpisah di dalam
n
dimensi. Hal ini menjadi keuntungan karena komputasi
dua rotasi di dalam
n
dimensi lebih cepat dibandingkan satu rotasi di dalam
n
2dimensi. Komputasi dalam satu rotasi dengan
n
2dimensi, membutuhkan
n
2x
n
2Interpretasi yang kedua, diasumsikan
n
= 8, digunakan persamaan (2.2)
untuk menghasilkan 64 blok dari 8 x 8 untuk masing-masing nilai. 64 blok
kemudian akan digunakan sebagai basis dari 64
dimensional
vector space
. Blok
manapun dari 8 x 8 piksel dapat dinyatakan sebagai kombinasi linear dari basis
citra dan 64 nilai baru dari kombinasi linear tersebut merupakan koefisien DCT
[2], [11]. Gambar 2.13 menampilkan basis fungsi 64 (8 x 8) DCT :
Gambar 2.13
Basis fungsi DCT [11].
Warna abu-abu merepresentasikan nilai nol (0), warna putih
merepresentasikan nilai amplitudo positif, dan warna hitam merepresentasikan
nilai amplitudo negatif [11].
2.5 Entropy Coding
Hasil data terkompresi yang telah didapat, kemudian akan dikodekan ke
dalam
bit stream
. Pengkodean ini disebut dengan
entropy coding
. Teknik kompresi
citra menggunakan DCT, algoritma untuk
entropy coding
yang digunakan pada
umumnya adalah
Differential Code Pulse Modulation
(DCPM),
Run Length
2.5.1 Differential Code Pulse Modulation (DCPM)
Persamaan DPCM didefinisikan sebagai [14]:
DPCMcode
=
C(0,0)
j-
C(0,0)
j-1,
(2.11)
dengan C(0,0) adalah koefisien matriks pada (0,0) dan
j
merepresentasikan
nomor/urutan blok 8 x 8 pada matriks citra.
2.5.2 Run Length Encoding (RLE)
RLE bekerja dengan cara mengurangi ukuran fisik dari pengulangan data
suatu karakter. Pengurangan dari pengulangan data dapat dilakukan dengan
memberikan tanda. Keuntungan dari RLE adalah komputasinya sederhana dan
cepat [14].
Contoh 2.2
Jika diberikan barisan karakter sebagai berikut :
ABCCCCCDEEEFGH
Maka pengkodean RLE dari barisan karakter di atas adalah :
ABC!5DE!3FGH
Angka di sebelah kanan tanda menunjukkan jumlah karakter di
sebelah kiri tanda melakukan perulangan pada data aslinya.
2.5.3 Huffman Encoding
Huffman
Encoding
bekerja dengan mengganti nilai-nilai barisan data ke
dalam kode-kode yang lebih efisien. Kode yang digunakan berdasarkan tabel
konversi. Tabel tersebut juga digunakan dalam proses dekoding. Algoritma ini
pertama kali ditemukan oleh David Huffman pada tahun 1952 untuk data teks.
Prinsip pengubahan ke dalam kode tersebut bergantung pada frekuensi
Encoding
adalah komputasinya sederhana dan menghasilkan
lossless compression
yang baik [14].
Contoh 2.3
Jika diberikan barisan karakter sebagai berikut :
AAAAAABBBBBBCCDDDEEE
Maka pengkodean Huffman dari barisan karakter di atas adalah :
1. menentukan frekuensi dan peluang munculnya suatu karakter
p(A) = 0.3 ; p(B) = 0.3 ; p(C) = 0.1 ; p(D) = 0.15 ; p(E) = 0.15
2. melakukan algoritma pohon Huffman
Algoritma ini dilakukan dengan memasangkan karakter dengan peluang
terkecil p(C) dengan p(D) atau (p(E), kemudian diberikan nilai bit 0 dan 1 :
Kemudian C dan D dipasangkan kembali dengan E, hal yang sama berlaku
untuk A dan B
Langkah terakhir adalah menyelesaikan pohon Huffman sehingga secara
2.6 Tahapan Teknik Kompresi Citra menggunakan DCT
Tahapan teknik kompresi menggunakan DCT ada dua bagian utama yaitu
[12] :
1.
Kompresi Citra, bertujuan untuk mengubah data citra asli menjadi data
citra terkompresi.
2.
Ekspansi citra, bertujuan untuk memperoleh citra baru dengan proses
pembalikan dari citra terkompresi.
Gambar 2.14 menampilkan blok diagram tahapan kompresi citra.
Gambar 2.14
Blok diagram tahapan kompresi citra [14].
2.6.1 Kompresi citra
2.6.1.1 Transformasi
color space/models
citra
Pada tahap ini, dilakukan proses transformasi warna. Tujuannya adalah
untuk mendapatkan
color space
yang dapat diproses dengan teknik kompresi.
Transformasi yang dilakukan adalah mengubah format
color space
RGB, HSI,
Sehingga didapatkan tiga komponen warna yang terpisah dan independen satu
dengan yang lain [13]. Gambar 2.15 menampilkan
color space
RGB dan YCbCr :
Gambar 2.15
Color space
RGB dan YCbCr [13].
Komponen
Y
merepresentasikan
luminance,
sedangkan komponen
Cb Cr merepresentasikan
chrominance
. Kemampuan penglihatan mata manusia
lebih sensitif pada komponen
luminance
dibandingkan dengan
chrominance
.
Sehingga komponen
chrominance
lebih mudah direduksi tanpa mempengaruhi
kualitas citra yang dapat diterima oleh mata manusia.
Rumus konversi dari RGB ke YCbCr didefinisikan sebagai [13]:
(2.12)
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎣
⎡
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎣
⎡
−
−
−
=
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎣
⎡
B
G
R
Cb
Cr
Y
311
.
0
523
.
0
212
.
0
321
.
0
275
.
0
596
.
0
114
.
0
587
.
0
299
.
0
2.6.1.2 Down Sampling/chroma subsampling
Setelah citra dikonversi ke dalam
color space
YCbCr, kemudian
dipisahkan ke masing-masing komponen Y (
luminance
) dan Cb,Cr (
chrominance
).
Langkah selanjutnya adalah mereduksi komponen Cb, Cr (
chrominance
). Hal ini
dapat dilakukan dengan membagi piksel-piksel dalam masing-masing komponen
ke dalam blok
n
x
n
. Kemudian dari masing-masing blok yang terbentuk akan
didapatkan nilai rata-rata piksel untuk mewakili blok. Sehingga satu nilai rata-rata
maka grup baru hasil
down sampling
akan memiliki satu piksel saja, dari rata-rata
empat piksel.
Semakin banyak piksel dalam satu blok yang diwakili satu piksel, maka
semakin tinggi tingkat reduksinya dan semakin rendah kualitas citra. Ada tiga
macam
down sampling
yang umum digunakan, yaitu
horizontal+vertical
,
horizontal
atau
vertical
, dan tanpa
down sampling
[15]. Gambar 2.16
menampilkan tiga macam
down sampling.
(a)
(b)
(c)
Gambar 2.16
tiga macam
down sampling
: (a) Cr,Cb
horizontal
+
vertical
down
sampling
; (b) Cr,Cb
horizontal down sampling
;
(c) tanpa
down sampling
[16].
2.6.1.3 Block Splitting
Setelah citra dipisahkan ke dalam komponen
luminance
(Y) dan
chrominance
(Cb,Cr), maka masing-masing data komponen yang berupa matriks
akan dibagi menjadi blok-blok yang memuat 8 x 8 piksel yang disebut
block
splitting
. Sebagian besar komputasi citra akan diterapkan pada tiap blok 8 x 8.
Gambar 2.17
Block Splitting
[13].
Jika jumlah baris dan kolom citra bukan merupakan kelipatan dari 8, maka
baris paling bawah dan kolom paling kanan akan terduplikasi.Tujuan dari
block
splitting
8 x 8 adalah [2] :
1.
Blok 8 x 8 merupakan ukuran maksimum yang dapat ditangani oleh IC
dengan efisiensi paling baik. Matriks
n
x
n
jika ditransformasikan DCT
dua kali akan lebih cepat jika dibandingkan matriks
n
2x
n
2.
2.
Aplikasi DCT pada
n
x
n
piksel lebih menghasilkan kompresi yang
lebih baik dibandingkan
n
x
m
, selain itu juga mengurangi jumlah
operasi aritmatika yang harus dilakukan.
3.
Pada citra
continuous-tone
korelasi antara piksel terjadi di area yang
kecil. Piksel yang terdapat pada citra memiliki kemiripan dengan piksel
lain yang berdekatan. Sehingga dekorelasi antar piksel mudah
dilakukan dengan
blok splitting
.
2.6.1.4 Two Dimensional Discrete Cosine Transform (2-D DCT)
Setelah
dilakukan
block splitting
pada matriks data citra, maka
transformasi DCT diaplikasikan pada masing-masing blok pada data citra.
Berdasarkan persamaan (2.2), 2-D DCT didefinisikan sebagai :
∑∑
− = − =⎥⎦
⎤
⎢⎣
⎡
+
⎥⎦
⎤
⎢⎣
⎡
+
=
1 0 1 0,
2
)
1
2
(
cos
2
)
1
2
(
cos
)
,
(
)
(
)
(
)
,
(
N x N yN
v
y
N
u
x
y
x
f
v
u
v
u
Dengan
C(u,v)
adalah matriks hasil operasi 2-D DCT dan
f(x,y)
adalah
matriks data asli. Dari koefisien hasil aplikasi 2-D DCT akan didapatkan dua
koefisien utama yaitu koefisien DC dan koefisien AC. Nilai yang paling besar di
bagian atas kiri merupakan koefisien DC sedangkan 63 nilai lain yang relatif lebih
kecil merupakan koefisien AC. Hal ini merupakan salah satu kelebihan DCT yaitu
energy compaction
yang baik.
2.6.1.5 Kuantisasi
Setelah masing-masing matriks 8 x 8 koefisien DCT telah didapatkan,
langkah selanjutnya adalah kuantisasi. Masing-masing nilai pada matriks koefisien
DCT akan dibagi dengan nilai-nilai yang bersesuaian dengan tabel kuantisasi yang
digunakan, dan hasilnya akan dibulatkan ke bilangan bulat terdekat.
Persamaan kuantisasi didefinisikan sebagai [2], [14]:
)
,
(
)
,
(
)
,
(
v
u
Q
v
u
C
v
u
G
=
,
(2.13)
dengan
G(u,v)
adalah matriks hasil kuantisasi,
C(u,v)
adalah matriks koefisien
DCT, dan
Q(u,v)
adalah matriks pengkuantisasi. Proses kuantisasi ini merupakan
proses terjadinya pengkuantisasian data yang utama, yaitu mengubah sebagian
besar nilai AC koefisien ke dalam nilai nol (0). Pada penerapannya, kuantisasi ini
dapat dilakukan dengan dua acuan, yaitu
Default Quantization Table
dan tabel
kuantisasi dengan parameter kualitas [2].
2.6.1.5.1 Default Quantization Table
Proses kuantisasi dilakukan dengan menggunakan tabel kuantisasi standar
yang diberikan oleh JPEG. Tabel standar ini dihasilkan oleh komite JPEG dan
dianggap dapat digunakan untuk teknik kompresi dengan hasil paling baik. Tabel
standar JPEG ada dua macam yaitu tabel kuantisasi untuk
luminance
dan
chrominance
. Dapat diperhatikan bahwa nilai kuantisasi, mulai dari kiri atas
Dengan nilai pembagian yang semakin besar hingga kanan bawah matriks
pengkuantisasi menunjukkan bagaimana mereduksi koefisien AC pada frekuensi
tinggi. Tabel 2.4 menampilkan tabel kuantisasi
luminance.
Tabel 2.4
Tabel kuantisasi
luminance
[2].
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎣
⎡
99
103
100
112
98
95
92
72
101
120
121
103
87
78
64
49
92
113
104
81
64
55
35
24
77
103
109
68
56
37
22
18
62
80
87
51
29
22
17
14
56
69
57
40
24
16
13
14
55
60
58
26
19
14
12
12
61
51
40
24
16
10
11
16
Perbedaan yang cukup besar antara tabel kuantisasi
chrominance
dengan
tabel kuantisasi
luminance
adalah nilai yang hampir seragam di bagian kanan
bawah. Hal ini menunjukkan bahwa proses penghilangan informasi pada
chrominance lebih besar dibandingkan
luminance
pada koefisien AC. Tabel 2.5
menampilkan tabel kuantisasi
chrominance.
Tabel 2.5
Tabel kuantisasi
chrominance
[2].
2.6.1.5.2 Tabel kuantisasi dengan parameter kualitas
Hal ini berarti nilai matriks dalam tabel tergantung dengan nilai
kualitas yang diinginkan. Tabel kuantisasi dengan kualitas tertentu dapat
didefinisikan sebagai [2]:
Q
(
u
,
v
)
=
1
+
(
u
+
v
)
*
R
(
2.14)
dengan
R
adalah parameter kualitas yang diinginkan.
2.6.1.6 Entropy Coding
Setelah dilakukan kuantisasi, nilai yang tidak sama dengan nol (0),
akan terletak di sebelah kiri matriks koefisien DCT, dan secara tipikal akan
terkonsentrasi di bagian kiri atas. Nilai-nilai yang dihasilkan merupakan nilai hasil
proses kompresi. Tetapi sebelum hasil kompresi ditampilkan dalam
output stream
,
nilai yang dihasilkan masih harus dikompres lebih lanjut. Proses kompresi pada
bagian ini disebut dengan
entropy coding
. Pada
entropy coding
terdapat dua
tahapan yang digunakan, yaitu
zig-zag scanning
dan
Huffman Encoding
[2]:
2.6.1.6.1 Zig-zag Scanning
64 nilai koefisien DCT disusun ulang dengan melakukan
scanning
berdasarkan arah komputasi seperti pada Gambar 2.18 .
Sehingga hasil yang didapat setelah
zig-zag scanning
adalah satu baris nilai yang
urutannya sesuai dengan Gambar 2.18.
2.6.1.6.2 Huffman Encoding
Huffman Encoding
pada proses kompresi citra bersifat lossless. Tahapan
aplikasi
Huffman Encoding
pada citra adalah [15]:
1.
Mengkomputasikan histogram dari masukan data citra di antara nilai
minimum dan nilai maksimum dari data citra.
2.
Mengaplikasikan algoritma Huffman untuk mendapatkan peta pengkodean
berdasarkan histogram.
3.
Mengaplikasikan peta pengkodean ke dalam masukan data citra, kemudian
mengkonversi ke dalam