4. Warna (color) Warna adalah persepsi yang dirasakan oleh sistem visual manusia terhadap panjang gelombang cahaya yang dipantulkan oleh objek. Setiap warna mempunyai panjang gelombang (λ) yang berbeda. Warna merah mempunyai panjang gelombang paling tinggi, sedangkan warna ungu (violet) mempunyai panjang gelombang paling rendah. Warna – warna yang diterima oleh mata (sistem visual manusia) merupakan hasil kombinasi cahaya dengan panjang gelombang berbeda. Penelitian memperlihatkan bahwa kombinasi warna yang memberikan rentang warna yang paling lebar adalah red (R), green (G), dan blue (B). Persepsi sistem visual manusia terhadap warna sangat relatif sebab dipengaruhi oleh banyak kriteria, salah satunya disebabkan oleh adaptasi yang menimbulkan distorsi. Misalnya bercak abu – abu di sekitar warna hijau akan tampak keungu – unguan (distorsi terhadap ruang), atau jika mata melihat warna hijau lalu langsung dengan cepat melihat warna abu – abu, maka mata menangkap kesan warna abu – abu tersebut sebagai warna ungu (distorsi terhadap waktu). 5. Bentuk (shape) Shape adalah properti intrinsik dari objek tiga dimensi, dengan pengertian bahwa shape merupakan properti intrinsik utama untuk sistem visual manusia. Manusia lebih sering mengasosiasikan objek dengan bentuk ketimbang elemen lainnya (warna misalnya). Pada umumnya, citra yang dibentuk oleh mata merupakan citra dwimatra (2 dimensi), sedangkan objek yang dilihat umumnya berbentuk trimatra (3 dimensi). Informasi bentuk objek dapat diekstraksi dari citra pada permulaan pra-pengolaha dan segmentasi citra.
Salah
satu
tantangan
utama
pada
computer
vision
adalah
merepresentasikan bentuk, atau aspek – aspek penting dari bentuk.
Universitas Sumatera Utara
6. Tekstur (textur) Textur dicirikan sebagai distribusi spasial dari derajat keabuan di dalam sekumpulan pixel – pixel yang bertetangga. Jadi, tekstur tidak dapat didefinisikan untuk pixel. Sistem visual manusia pada hakikatnya tidak menerima informasi citra secara independen pada setiap pixel, melainkan suatu citra dianggap sebagai suatu kesatuan. Resolusi citra yang diamati ditentukan oleh skala pada mana tekstur tersebut dipresepsi. Sebagai contoh, jika kita mengamati citra lantai bertubin dari jarak jauh, maka kita mengamati bahwa tekstur terbentuk oleh penempatan ubin – ubin secara keseluruhan, bukan dari presepsi pola di dalam ubin itu sendiri. Tetapi, jika kita mengamati citra yang sama dari jarak yang dekan, maka hanya beberapa ubin yang tampak dalam bidang pengamatan sehingga kita mempresepsikan bahwa tekstur terbentuk oleh penempatan pola – pola rinci yang menyusun tiap ubin.
2.2 Format Berkas Bitmap Citra disimpan dalam berkas (file) dengan format tertentu. Format citra yang baku dilingkungan sistem operasi Windows dan IMB OS/2 adalah berkas bitmap (BMP). Saat ini format BMP memang “kalah” populer dibandingkan format JPG atau GIF. Hal ini karena berkas BMP pada umumnya tidak dimampatkan, sehingga ukuran berkasnya relatif lebih besar daripada berkas JPG maupun GIF. Hal ini juga yang menyebabkan format BMP sudah jarang digunakan. ( Munir, Rinaldi. 2004) Meskipun format BMP kurang bagus dari segi ukuran berkas, namun format BMP mempunyai kelebihan dari segi kualitas gambar. Citra dalam format BMP lebih bagus daripada citra dalam format yang lainnya, karena citra dalam format BMP umumnya tidak dimampatkan sehingga tidak ada informasi yang hilang. Terjemahan bebas bitmap adalah pemetaan bit. Artinya, nilai intensitas pixel di dalam citra dipetakan ke sejumlah bit tertentu. Peta bit yang umum adalah 8, artinya setiap pixel panjangnnya 8 bit. Delapan bit ini merepresentasikan nilai intensitas pixel. Dengan demikian ada sebanyak 28 = 256 derajat keabuan, mulai dari 0 sampai 255.
Universitas Sumatera Utara
Citra dalam format BMP ada tiga macam citra biner, citra berwarna, dan citra hitam – putih (grayscale). 1. Format Pixel 1 Bit (Citra Biner/Monokrom) Pada
citra
biner,
setiap
titik
bernilai
0
dan
1,
masing-masing
merepresentasikan warna tertentu. Contoh yang paling lazim: warna hitam bernilai 0 dan warna putih bernilai 1. Pada standar citra untuk ditampilkan di layar komputer, nilai biner ini berhubungan dengan ada tidaknya cahaya yang ditembakkan oleh electron gun yang terdapat di dalam monitor komputer. Angka 0 menyatakan tidak ada cahaya, dengan demikian warna yang direpresentasikan adalah hitam. Untuk angka 1 terdapat cahaya, sehingga warna yang direpresentasikan adalah putih. Standar tersebut disebut sebagai standar citra cahaya, sedangkan standar citra tinta/cat adalah berkebalikan, karena biner tersebut menyatakan ada tidaknya tinta. Setiap titik pada citra hanya membutuhkan 1 bit, sehingga setiap byte dapat menampung informasi 8 titik.( Bono, Rodo.18 September 2008) 2. Format Pixel 8 Bit (Citra Skala Keabuan/Grayscale) Citra skala keabuan memberi kemungkinan warna yang lebih banyak daripada citra biner, karena ada nilai-nilai lain di antara nilai minimum (biasanya = 0) dan nilai maksimum. Banyaknya kemungkinan nilai minimum dan nilai maksimumnya bergantung pada jumlah bit yang digunakan. Mata manusia pada umumnya hanya mempunyai kemampuan untuk membedakan maksimal 40 tingkat skala keabuan. Untuk citra tampak (visible image) dipilih skala keabuan lebih dari 40. pada umumnya citra skala keabuan menggunakan jumlah bit 8, sesuai dengan satuan memori komputer. Contohnya untuk skala keabuan 4 bit, maka jumlah kemungkinan nilainya adalah 24 = 16, dan nilai maksimumnya adalah 24-1 = 15, sedangkan untuk skala keabuan 8 bit, maka jumlah kemungkinan nilainya adalah 28 = 256, dan nilai maksimumnya adalah 28-1 = 255. Format citra ini disebut skala keabuan karena pada umumnya warna yang dipakai adalah antara warna hitam sebagai warna minimal dan warna putih sebagai warna maksimalnya, sehingga warna antaranya abu-abu. Namun pada prakteknya warna yang dipakai tidak terbatas pada warna abu-abu, sebagai contoh dipilih warna minimalnya adalah putih dan warna maksimalnya adalah merah,
Universitas Sumatera Utara
maka semakin besar nilainya semakin besar pula intensitas warna merahnya. Beberapa buku menyebut format citra ini sebagai citra intensitas. 3. Format Pixel 24 Bit (Citra Warna/True Color) Pada citra warna, setiap titik mempuyai warna yang paling spesifik yang merupakan kombinasi dari 3 warna dasar, yaitu: merah, hijau, dan biru. Ada perbedaan warna dasar untuk cahaya (misalnya display di monitor komputer) dan untuk cat (misalnya cetakan di atas kertas). Untuk cahaya, warna dasarnya adalah merah-hijau-biru (red-green-blue,RGB), sedangkan untuk untuk cat, warna dasarnya adalah
sian-magenta-kuning
(cyan-magenta-yellow,
CMY).
Keduanya
saling
berkomplemen. Format citra ini sering disebut sebagai citra RGB (red-green-blue). Setiap warna dasar mempunyai intensitas sendiri dengan nilai maksimum 255 (8 bit), misalnya warna kuning merupakan kombinasi warna merah dan hijau sehingga nilai RGB-nya adalah 255 255 0; sedangkan warna ungu muda nilai RGB-nya adalah 150 0 150, dengan demikian setiap titik pada citra warna membutuhkan data 3 byte. Jumlah kombinasi warna yang mungkin untuk format citra ini adalah 224 atau lebih dari 16 juta warna, dengan demikian bisa dianggap mencakup semua warna yang ada, inilah sebabnya format ini dinamakan true color. ( Bono, Rodo.18 September 2008) Citra yang lebih kaya warna adalah citra 24-bit. Setiap pixel panjangnya 24 bit, karena setiap pixel langsung menyatakan komponen warna merah, komponen warna hijau, komonen warna biru. Masing – masing komponen panjangnya 8 bit. Citra 24-bit disebut juga citra 16 juta warna, karena ia mampu menghasilkan 224 = 16.777.216 kombinasi warna Saat ini beredar tiga versi berkas bitmap, (i) berkas bitmap versi lama dari Microsoft Windows atau IBM OS/2, (ii) berkas bitmap versi baru dari Microsoft Windows, dan (iii) berkas bitmap versi baru di IBM OS/2. Yang membedakan ketiga versi berkas tersebut adalah panjang header-nya. Header adalah data yang terdapat pada bagian awal berkas citra. Data didalam header berguna untuk mengetahui bagaimana citra dalam format bitmap dikodekan dan disimpan. Data di dalam header misalnya ukuran citar, kedalaman pixel, ofset ke data bitmap, dan sebagainya.
Universitas Sumatera Utara
Setiap berkas bitmap terdiri atas header berkas, header bitmap, informasi palet, dan data bitmap. Tabel 2.1 Format Berkas Bitmap Header berkas
Header bitmap
Informasi palet
Data bitmap
14 byte
12 s/d 64 byte
0 s/d 1024 byte
N byte
Ukuran header berkas sama untuk semua versi, yaitu 14 byte. Tabel 2.2 memperlihatkan field – field penyusun header berkas. Ukuran header bitmap berbeda – beda untuk setiap versi. Untuk berkas bitmap versi lama, header bitmap berukuran 12 byte (Tabel 2.3), untuk berkas bitmap versai baru dari Microsoft Windows, header bitmap berukuran 40 (Tabel 2.4),dan untuk berkas bitmap versi baru dari IBM OS/2, header bitmap berukuran 64 byte (Tabel 2.5). Tabel 2.2 Header berkas bitmap (panjang = 14 byte) Byte ke-
Panjang (byte)
Nama
1–2
2
Bmp Type
3–6 7–8 9 – 10 11 – 14
4 2 2 4
BmpSize XotSpot YhotSpot OffBits
Keterangan Tipe berkas bitmap : BA = bitmap array, CI = icon BM = bitmap, CP = color pointer PT = Pointer Ukuran berkas bitmap X hotspot untuk kursor Y hotspot untuk kursor Ofset ke awal data bitmap (dalam byte)
Tabel 2.3 Header bitmap versi lama dari Microsoft Windows (12 byte) Byte ke-
Panjang (byte)
Nama
Keterangan
1–4
4
HdrSize
Ukuran header dalam satuan byte
5–6 7–8 9 – 10 11 – 12
2 2 2 2
Width Height Planes BitCount
Lebar bitmap dalam satuan pixel Tinggi bitmap dalam satuan pixel Jumlah plane (umum-nya selalu satu) Jumlah bit per pixel
Universitas Sumatera Utara
Tabel 2.4 Header bitmap versi baru dari Microsoft Windows (40 byte) Byte ke1–4
Panjang (byte)
Nama
Keterangan
4
HdrSize
Ukuran header dalam satuan byte
5–8
4
Width
Lebar bitmap dalam satuan pixel
9 – 12
4
Height
Tinggi bitmap dalam satuan pixel
13 – 14
2
Planes
Jumlah plane (umum-nya selalu satu)
15 – 16
2
BitCount
Jumlah bit per pixel
17 – 20
4
Compression 0 = tak dimampatkan, 1= dimampatkan
21 – 24
4
ImgSize
Ukuran bitmap dalam byte
25 – 28
4
HorzRes
Resolusi horizontal
29 – 32
4
VertRes
Relolusi vertikal
33 – 36
4
ClrUsed
Jumlah warna yang digunakan
37 – 40
4
ClrImportant Jumlah warna yang penting
Tabel 2.5 Header bitmap versi baru dari IBM OS/2 (64 byte) Byte ke1–4
Panjang (byte)
Nama
Keterangan
4
HdrSize
Ukuran header dalam satuan byte
5–8
4
Width
Lebar bitmap dalam satuan pixel
9 – 12
4
Height
Tinggi bitmap dalam satuan pixel
13 – 14
2
Planes
Jumlah plane (umum-nya selalu satu)
15 – 16
2
BitCount
Jumlah bit per pixel
17 – 20
4
Compression 0 = tak dimampatkan, 1= dimampatkan
21 – 24
4
ImgSize
Ukuran bitmap dalam byte
25 – 28
4
HorzRes
Resolusi horizontal
29 – 32
4
VertRes
Relolusi vertikal
33 – 36
4
ClrUsed
Jumlah warna yang digunakan
37 – 40
4
ClrImportant Jumlah warna yang penting
41 – 42
2
Units
Satuan pengukuran yang dipakai
43 – 44
2
Reserved
Field Cadangan
45 – 46
2
Recording
Algoritma Perekaman
47 – 48
2
Rendering
Algoritma halftoning
49 – 52
4
Size 1
Nilai ukuran 1
Universitas Sumatera Utara
53 – 56
4
Size 2
Nilai ukuran 2
57 – 60
4
ClrEncoding
Pengkodean warna
61 - 64
4
Identifier
Kode yang digunakan aplikasi
Informasi palet warna terletak sesudah header bitmap. Informasi palet warna dinyatkan dalam suatu tabel RGB. Setiap entry pada tabel terdiri atas tiga buah field, yaitu R (red), G (green), dan B (blue). Data bitmap diletakkan sesudah informasi palet. Penyimpanan data bitmap di dalam berkas disusun terbalik dari bawah ke atas dalam bentuk matriks yang berukuran Height X Width. Baris ke-0 pada matriks data bitmap menyatakan data pixel di citra baris terbawah, sedangkan baris terakhir pada matriks menyatakan data pixel di citra baris teratas. ( Munir, Rinaldi. 2004) Contoh format citra 8-bit kira kira seperti Gambar 2.1. Format citra 4-bit (16 warna) serupa dengan format citra 8-bit. Pada citra 4-bit dan citra 8-bit, warna suatu pixel diacu dari tabel informasi palet pada entry ke-k (k merupakan nilai dengan rentang 0 – 15 untuk citra 16 warna dan 0 – 255 untuk citra 256 warna). Sebagai contoh pada Gambar 2.1, picel pertama bernilai 2; warna pixel pertama ini ditentukan oleh komponen RGB pada tabel palet warna entry ke-2, yaitu R = 14, G = 13, B = 16. Pixel kedua serupa denga pixel pertama. Pixel ketiga bernilai 1, warnanya ditentukan oleh komponen RGB pada tabel warna entry ke-1, yaitu R = 20, G = 45, dan B = 24. Dengan demikian setersnya untuk pixel – pixel lainnya. Khusus untuk citra hitam – putih (8bit), komponen R, G, dan B suatu pixel bernuilai sama dengan data bitmap pixel tersebut. Jadi, pixel dengan nilai data bitmap 129, memiliki R = 129, G = 129, dan B = 129.
Universitas Sumatera Utara
<palet warna RGB>
1 2 3
R 20 14 12
G 45 13 17
B 24 16 15
… 256
46
78
25
Gambar 2.1 Format citra 8-bit (256 warna) Berkas citra 24-bit (16,7 juta warna) tidak mempunyai palet RGB, karena nilai RGB langsung diuraikan dalam data bitmap. Setiap elemen data bitmap panjangnya 3 byte, masing – masing byte menyatakan komponen R, G, dan B. Contoh format citra 24-bit (16 juta warna) kira – kira seperti pada Gambar 2.2. Pada contoh format citra 24-bit tersebut pixel pertama mempunyai R = 20, G = 19, B = 21, pixel kedua mempunyaiR = 24, G = 24, B = 23. Demikian seterusnya. 20 19 21 24 24 23 24 …
Gambar 2.2 Format Citra 24-bit (16,7 juta warna)
Tabel 2.6 memperlihatkan panjang informasi palet untuk setiap vesi bitmap masing –masing untuk citra 16 warna, 256 warna, dan 16,7 juta warna. Tabel 2.6 Panjang informasi palet untuk setiap versi berkas bitmap Citra m warna Citra 16 warna Citra 256 warna Citra 16,7 juta warna
Versi Lama (Windows) 48 byte
Versi baru (Windows) 64 byte
Versi baru (OS/2) 64 byte
768 byte 0 byte
1024 byte 0 byte
1024 byte 0 byte
Universitas Sumatera Utara
2.3 Transformasi Wavelet Transformasi wavelet merupakan bentuk lain dari penggambaran sinyal yang tidak mengubah isi infomasi dalam sinyal tersebut. Transformasi
wavelet
(wavelet
transform) menyediakan penggambaran frekuensi waktu dari sinyal. Pada awalnya, transformasi wavelet digunakan untuk menganalisis sinyal bergerak (non-stationary signals). Sinyal bergerak ini dianalisis dalam transformasi wavelet dengan menggunakan teknik multi-resolution analysis. Secara umum teknik multi-resolution analysis adalah teknik yang digunakan untuk menganalisis frekuensi dengan cara frekuensi yang berbeda dianalisis menggunakan resolusi yang berbeda. Resolusi dari sinyal merupakan ukuran jumlah informasi di dalam sinyal yang dapat berubah melalui operasi filterisasi. Transformasi wavelet memiliki dua seri dalam pengembangannya yaitu Continous Wavelet Transform (CWT) dan Discrete Wavelet Transform (DWT). Semua fungsi yang digunakan dalam transformasi CWT dan DWT diturunkan dari mother wavelet melalui translasi/pergeseran dan penskalaan/kompresi. Mother wavelet merupakan fungsi dasar yang digunakan dalam transformasi wavelet Karena mother wavelet menghasilkan semua fungsi wavelet yang digunakan dalam transformasi melalui translasi dan penskalaan, maka mother wavelet juga akan menentukan karakteristik dari transformasi wavelet yang dihasilkan. Oleh karena itu, perlu pencatatan secara teliti terhadap penerapan wavelet dan pemilihan yang tepat terhadap mother wavelet harus dilakukan agar dapat menggunakan transformasi wavelet secara efisien. Fungsi - fungsi yang termasuk di dalam keluarga wavelet dipaparkan pada Gambar 2.3.
Universitas Sumatera Utara
Gambar 2.3. Keluarga Wavelet(a)Haar,(b)Daubechies,(c)Coiflet, (d)Symlet, (e)Meyer, (f)Morlet, (g)Mexican Hat. Dengan sumbu x merupakan waktu, t dan sumbu y merupakan ψ(t) . Seri pengembangan Continous Wavelet Transform (CWT) dipaparkan pada persamaan1.
(1)
x(t) merupakan sinyal yang akan dianalisis, ψ(t) adalah mother wavelet atau fungsi dasar yang dipilih. τ merupakan parameter translasi yang berhubungan dengan informasi waktu pada transformasi wavelet. Parameter skala s didefinisikan sebagai |1/frekuensi| dan berhubungan dengan informasi frekuensi. Dengan adanya penskalaan ini sinyal dapat diperbesar atau dikompresi. Penskalaan besar (frekuensi rendah) menyebabkan sinyal diperbesar dan dapat memberikan informasi detil
yang
tersembunyi di sinyal, sedangkan penskalaan kecil (frekuensi tinggi) menyebabakan kompresi sinyal dan memberikan informasi global dari sinyal. Seri pengembangan kedua dari transfo rmasi wavelet adalah Discrete Wavelet Transform (DWT). Seri pengembangan ini merupakan seri CWT yang didiskritkan. Dengan pendiskritan CWT ini maka perhitungan dalam CWT dapat dibantu dengan menggunakan komputer.
Universitas Sumatera Utara
2.3.1 Perbandingan Transformasi Wavelet dengan Transformasi Fourier Sampai sekarang transformasi Fourier mungkin masih menjadi transformasi yang paling populer di area pemrosesan sinyal digital (PSD). Transformasi Fourier memberitahu kita informasi frekuensi dari sebuah sinyal, tapi tidak informasi waktu (kita tidak dapat tahu di mana frekuensi itu terjadi). Karena itulah transformasi Fourier hanya cocok untuk sinyal stationari (sinyal yang informasi frekuensinya tidak berubah menurut waktu). Untuk menganalisa sinyal yang frekuensinya bervariasi di dalam waktu, diperlukan suatu transformasi yang dapat memberikan resolusi frekuensi dan waktu disaat yang bersamaan, biasa disebut analisis multi resolusi (AMR). AMR dirancang untuk memberika resolusi waktu yang baik dan resolusi frekuensi yang buruk pada frekuensi tinggi suatu sinyal, serta resolusi frekuensi yang baik dan resolusi waktu yang buruk pada frekuensi rendah suatu sinyal. Pendekatan ini sangat berguna untuk menganalisa sinyal dalam aplikasi-aplikasi praktis yang memang memiliki lebih banyak frekuensi rendah. Transformasi wavelet adalah suatu AMR yang dapat merepresentasikan informasi waktu dan frekuensi suatu sinyal dengan baik. Transformasi wavelet menggunakan
sebuah
jendela
modulasi
yang
fleksibel,
ini
yang
paling
membedakannya dengan transformasi Fourier waktu-singkat (STFT), yang merupakan pengembangan dari transformasi Fourier. STFT menggunakan jendela modulasi yang besarnya tetap, ini menyebabkan dilema karena jendela yang sempit akan memberikan resolusi frekuensi yang buruk dan sebaliknya jendela yang lebar akan menyebabkan resolusi waktu yang buruk.(Wikipedia. Agustus 2008)
2.3.2 Continue Wavelet Transform (CWT) Cara
kerja
Continue
Wavelet
Transform
(CWT)
adalah
dengan
menghitung konvolusi sebuah sinyal dengan sebuah jendela modulasi pada setiap waktu dengan setiap skala yang diinginkan. Jendela modulasi yang mempunyai skala fleksibel inilah yang biasa disebut induk wavelet atau fungsi dasar wavelet. (Wikipedia. Agustus 2008)
Universitas Sumatera Utara
Dalam transformasi wavelet digunakan istilah translasi dan skala, karena istilah waktu dan frekuensi sudah digunakan oleh transformasi Fourier. Translasi adalah lokasi jendela modulasi saat digeser sepanjang sinyal, berhubungan dengan informasi waktu. Skala behubungan dengan frekuensi, skala tinggi (frekuensi rendah) berhubungan dengan informasi global dari sebuah sinyal, sedangkan skala rendah (frekuensi tinggi) berhubungan dengan informasi detil. CWT secara matematika dapat didefinisikan sebagai berikut: (2) Keterangan: γ(s,τ) adalah fungsi sinyal setelah transformasi, dengan variabel s (skala) dan τ (translasi) sebagai dimensi baru. f(t) sinyal asli sebelum transformasi. Fungsi dasar
di sebut sebagai wavelet, dengan * menunjukkan konjugasi
kompleks. Dan inversi dari CWT secara matematika dapat didefinisikan sebagai berikut: (3) Seperti telah dibicarakan sebelumnya, fungsi dasar wavelet ψ s,τ (t) dapat didesain sesuai kebutuhan untuk mendapatkan hasil transformasi yang terbaik, ini perbedaan mendasar dengan transformasi Fourier yang hanya menggunakan fungsi sinus sebagai jendela modulasi. Fungsi dasar wavelet secara matematika dapat didefinisikan sebagi berikut:
(4)
Faktor
digunakan untuk normalisasi energi pada skala yang berubah-ubah.
Mexican Hat, yang merupakan normalisasi dari derivatif kedua fungsi Gaussian adalah salah satu contoh fungsi dasar CWT:
Universitas Sumatera Utara
(5)
Contoh lain adalah fungsi dasar Morlet, yang merupakan fungsi bilangan kompleks:
(6)
dengan
dan
2.3.3 Discrete Wavelet Transform (DWT) Dibandingkan dengan CWT, Discrete Wavelet Transform (CWT) dianggap relatif lebih mudah pengimplementasiannya. Prinsip dasar dari DWT adalah bagaimana cara mendapatkan representasi waktu dan skala dari sebuah sinyal menggunakan teknik pemfilteran digital dan operasi sub-sampling. Dasar
dari DWT
dimulai pada tahun 1976
dimana teknik
untuk
mendekomposisi sinyal waktu diskrit ditemukan. Di dalam CWT, sinyal dianalisis menggunakan seperangkat fungsi dasar yang saling berhubungan dengan penskalaan dan transisi sederhana. Sedangkan di dalam DWT, penggambaran sebuah skala waktu sinyal digital didapatkan dengan menggunakan teknik filterisasi digital. Secara garis besar proses dalam teknik ini adalah dengan melewatkan sinyal yang akan dianalisis pada filter dengan frekuensi dan skala yang berbeda. Filterisasi sendiri merupakan sebuah fungsi yang digunakan dalam pemrosesan sinyal. Wavelet dapat direalisasikan menggunakan iterasi filter dengan penskalaan. Resolusi dari sinyal, yang merupakan rata-rata dari jumlah detil informasi dalam sinyal, ditentukan melalui filterasi ini dan skalanya didapatkan dengan upsampling dan downsampling (subsampling).
Universitas Sumatera Utara
Sebuah sinyal harus dilewatkan dalam dua filterisasi DWT yaitu highpass filter dan lowpass filter agar frekuensi dari sinyal tersebut dapat dianalisis. Analisis sinyal dilakukan terhadap hasil filterisasi highpass filter dan lowpass filter di mana highpass filter digunakan untuk menganalisis frekuensi tinggi dan lowpass filter digunakan untuk menganalisis frekuensi rendah. Analisis terhadap frekuensi dilakukan dengan cara menggunakan resolusi yang dihasilkan setelah sinyal melewati filterisasi. Analisis frekuensi yang berbeda dengan menggunakan resolusi yang berbeda inilah yang disebut dengan multi-resolution analysis, seperti yang telah disinggung pada bagian Transformasi Wavelet. ( Alfatwa, Dean Fathony) Pembagian sinyal menjadi frekuensi tinggi dan frekuensi rendah dalam proses filterisasi highpass filter dan lowpass filter disebut sebagai dekomposisi. Proses dekomposisi dimulai dengan melewatkan sinyal asal melewati highpass filter dan lowpass filter. Misalkan sinyal asal ini memiliki rentang frekuensi dari 0 sampai dengan π rad/s. Dalam melewati highpass filter dan lowpass filter ini, rentang frekuensi di-subsample menjadi dua, sehingga rentang frekuensi tertinggi pada masing-masing subsample menjadi π/2 rad/s. Setelah filterisasi, setengah dari sample atau salah satu subsample dapat dieliminasi berdasarkan aturan Nyquist. Sehingga sinyal dapat selalu di-subsample oleh 2 (↓ 2 ) dengan cara mengabaikan setiap sample yang kedua. Proses dekomposisi ini dapat melalui satu atau lebih tingkatan. Dekomposisi satu tingkat ditulis dengan ekspresi matematika pada persamaan 7 dan 8. (7)
(8) y [k] tinggi dan y [k] rendah adalah hasil dari highpass filter dan lowpass filter, x[n] merupakan sinyal asal, h[n] adalah highpass filter, dan g[n] adalah lowpass filter. Untuk dekomposisi lebih dari satu tingkat, prosedur pada rumus 2 dan 3 dapat digunakan pada masing-masing tingkatan. Contoh penggambaran dekomposisi dipaparkan pada Gambar 2.4 dengan menggunakan dekomposisi tiga tingkat. ( Alfatwa, Dean Fathony)
Universitas Sumatera Utara
h[n]
↓2
Ytinggi[k]
X[n]
h[n]
g[n]
↓2
↓2
g[n]
Ytinggi[k]
h[n]
↓2
Ytinggi[k]
g[n]
↓2
Yrendah[k]
↓2
Gambar 2.4 Dekomposisi wavelet tiga tingkat Pada Gambar 2.4, y [k] tinggi dan y [k] rendah yang merupakan hasil dari highpass filter dan lowpass filter, y [k] tinggi disebut sebagai koefisien DWT. y [k] tinggi merupakan detil dari informasi sinyal, sedangkan y [k] rendah merupakan taksiran kasar dari fungsi pensakalaan. Dengan menggunakan koefisien DWT ini maka dapat dilakukan proses Inverse Discrete Wavelet Transform (IDWT) untuk merekonstruksi menjadi sinyal asal. DWT menganalisis sinyal pada frekuensi berbeda dengan resolusi yang berbeda melalui dekomposisi sinyal sehingga menjadi detil informasi dan taksiran kasar. DWT bekerja pada dua kumpulan fungsi yang disebut fungsi penskalaan dan fungsi wavelet yang masing – masing berhubungan dengan lowpass filter dan highpass filte. Seperti yang telah dijelaskan sebelumnya dekomposisi ini didasarkan pada aturan Nyquist yang salah satunya mengatakan bahwa frekuensi komponen sample harus kurang atau sama dengan setengah dari frekuensi sampling. Jadi diambil frekuensi sample π/2 dari frekuensi sampling π dalam subsample oleh 2 pada dekomposisi wavelet. Sebagai penggambaran dekomposisi wavelet dengan sinyal asal x[n] yang memilki frekuensi maksimum f = π dipaparkan pada Gambar 2.5.
Universitas Sumatera Utara
x[n] f=0~x
h[n]
g[n]
↓2
↓2
f=π/2~x
f=0~π/2
Level 1 DWT coefficients
h[n]
g[n]
f= π/2~π/2 ↓2 Level 2 DWT coefficients
↓2
h[n]
f=0~π/4
g[n] f=0~π/8
f= π/8~π/4 ↓2 Level 3 DWT coefficients
↓2
...
Gambar 2.5. Dekomposisi wavelet dengan frekuensi sinyal asal f=0~π Proses rekonstruksi diawali dengan menggabungkan koefisien DWT dari yang berada pada akhir dekomposisi dengan sebelumnya meng – upsample oleh 2 (↑ 2) melalui highpass filter dan lowpass filter. Proses rekonstruksi ini sepenuhnya merupakan kebalikan dari proses dekomposisi sesuai dengan tingkatan pada proses dekomposisi. Sehingga persamaan rekonstruksi pada masing-masing tingkatan dapat ditulis sbb: (9) Proses rekonstruksi wavelet untuk mendapatkan sinyal asal dengan tiga tingkat digambarkan pada Gambar 2.6.
Universitas Sumatera Utara
Ytinggi[k] Ytinggi[k] Ytinggi[k]
↑2
↑2
↑2
h[n] X[n]
h[n]
h[n]
↑2 ↑2
Yrendah[k]
↑2
g[n]
g[n]
g[n]
Gambar 2.6 Rekonstruksi wavelet tiga tingkat Scaling function yang dapat membentuk wavelet bermacam-macam jenisnya. Berdasarkan scaling function inilah basis wavelet memiliki nama yang berbeda-beda. 1. Wavelet Haar memiliki scaling function dengan koefisien c 0 = c 1 = 1. 2. Wavelet Daubechies dengan 4 koefisien (DB4) memiliki scaling function dengan koefisien c 0 = (1+√3)/4, c 1 = (3+√3)/4, c 2 = (3-√3)/4, c 3 = (1-√3)/4 3. Wavelet B-Spline kubik memiliki scalilng function dengan koefisien c 0 = 1/8,
c 1 = 4/8, c 2 = 6/8, c 3 = 4/8, c 4 = 1/8. (Chahyati,Dina. Januari 2003)
Untuk memperjelas teori dari wavelet, berikut merupakan penjabaran dari Wavelet Haar.
Wavelet Haar dapat dijelaskan dalam ruang vektor 4 dimensi. Basis paling
sederhana yang sudah sering kita gunakan adalah basis orthonormal sebagai berikut :
1 0 0 0 0 0 0 1 ,v = ,v = ,v = v0 = 0 1 0 2 1 3 0 0 0 1 0
(10)
Wavelet Haar juga merentang ruang vektor 4 dimensi dengan vektor-vektor basis sebagai berikut
Universitas Sumatera Utara
1 0 1 1 1 1 − 1 0 h 0 = , h1 = , h 2 = , h 3 = − 1 0 1 1 1 − 1 0 − 1
(11)
yang bila digambarkan dalam bentuk sinyal akan berbentuk sebagai berikut :
h0
h1
h2
h3
Jika kita menggunakan basis orthonormal v 0 , v 1 , v 2 , dan v 3 , mudah untuk merepresentasikan suatu vektor sebagai kombinasi linier dari v 0 , v 1 , v 2 , dan v 3 . Misalkan sebuah vektor 6 4 x= − 7 5
Universitas Sumatera Utara
Jika kita ingin merepresentasikan vektor x tersebut dalam bentuk x = a v0 + b v1 + c v2 + d v3
(12)
maka dengan mudah dapat ditemukan bahwa a = 6, b = 4, c = -7, d = 5. Sekarang bagaimana caranya merepresentasikan suatu vektor sebagai kombinasi linier dari vektor-vektor dalam wavelet Haar. Atau dengan kata lain, bagaimana kita menentukan nilai a,b,c dan d dalam persamaan berikut ini :
x0 1 1 1 x 1 1 1 = a + b + c − 1 + d x2 1 − 1 0 0 1 − 1 x3
0 0 1 − 1
(13)
dengan sedikit pengetahuan matematis, persamaan diatas dapat dijabarkan menjadi : x0 = a + b + c x1 = a + b – c x2 = a – b
+d
x3 = a – b
–d
sehingga kemudian kita dapatkan : x 2 – x 3 = 2d x 0 – x 1 = 2c (x 0 + x 1 ) – (x 2 + x 3 ) = 4b (x 0 + x 1 ) + (x 2 + x 3 ) = 4a Dengan demikian dapat diambil kesimpulan bahwa d = ½ (x 2 – x 3 ) c = ½ (x 0 – x 1 )
Universitas Sumatera Utara
b = ½ ( ½ (x 0 + x 1 ) – ½ (x 2 + x 3 )) a = ½ ( ½ (x 0 + x 1 ) + ½ (x 2 + x 3 )) Terlihat bahwa sebenarnya koefisien-koefisian a,b,c,d dapat diperoleh dari operasi averaging dan differencing terhadap nilai x 0, x 1, x 2 dan x 3 dengan aturan tertentu. Stephane Mallat kemudian memperkenalkan cara mudah menghitung koefisien a, b, c dan d dengan cara yang dikenal dengan algoritma piramida Mallat. Algoritma tersebut dapat ditunjukkan dengan gambar berikut. (Chahyati,Dina. Januari 2003) L L L aj → a j −1 → a j − 2 ... → a0 H
H
d
j −1
H
d
j −2
d0
dimana aj adalah vektor awal dengan ukuran 2j, dan koefisien a, b, c, d dapat diperoleh dari aproksimasi a0 detail-detail d0, d1 dan seterusnya. Matriks L dan H masing masing adalah matriks lowpass (averaging) dan highpass (differencing) dengan bentuk:
L=
c0 1 . 2 . .c 2
c1 c 2 c 3 c 0 c1 c 2 c 3 . . c3
... ... c 0 c1 c 2 c0 .
c3 c1
H
c3 1 = . 2 . .c1
c1 − c 0 ... c 3 − c 2 c1 − c 0 ... . c 3 − c 2 c1 − c 0 . − c0 . c 3 − c 2 − c2
Matriks L dan H untuk basis Haar dimana c 0 = c 1 = 1 adalah sebagai berikut : 12 L= 0
1
2
0
0 1
2
0 1 2
12 − 12 H = 0 0
0 1
2
0 − 1 2
Proses mencari koefisien a, b, c dan d seperti ini disebut dengan proses dekomposisi. Sebagai contoh, untuk vektor x di atas akan di dekomposisi menjadi:
Universitas Sumatera Utara
6 1 1 4 L = 2 2 10 10 1 ] 0 0 L =[ 1 5 2 2 2 2→ → a 0 = [2] a 2 = a 1 = − 7 − 1 5 12 − 12 0 0 − 12] H = H = [1 2 0 0 12 − 12 1 d1 = − 6
d 0 = [3]
Nilai a,b, c dan d pada persamaan 2.4 kemudian dapat kita peroleh dengan melihat nilai aproksimasi terakhir a0 dan semua nilai-nilai detail d0,d1 dan d1 dimana a = ½ ( ½ (x 0 + x 1 ) + ½ (x 2 + x 3 )) = a0 = 2 b = ½ ( ½ (x 0 + x 1 ) – ½ (x 2 + x 3 )) = d0 = 3 c = ½ (x 0 – x 1 ) = d1(0) = 1 d = ½ (x 2 – x 3 ) = d1(1) = -6.
0 6 1 1 1 1 1 − 1 4 = 2 + 3 + 1 + (−6) 0 1 1 − 1 0 − 7 − 1 5 1 − 1 0
Setelah mengetahui bagaimana mendekomposisi suatu sinyal menjadi koefisien-koefisien kombinasi liniernya, maka perlu diketahui bagaimana caranya memperoleh vektor asal jika hanya diketahui koefisien-koefisien dekomposisinya (a,b,c,d). Proses kebalikan dari dekomposisi ini disebut proses rekonstruksi, dan algoritma piramida Mallat untuk rekonstruksi adalah:
Universitas Sumatera Utara
L* L* L* a 0 → a 1 → a 2 ... → an H *
H *
d0
H *
d n −1
d1
dimana matriks pengali L* dan H* memiliki hubungan dengan matriks L dan H pada proses dekomposisi yaitu LL* = HH* = I (L merupakan invers dari L*). Isi dari L* dan H* untuk basis Haar adalah sebagai berikut:
1 1 L* = 0 0
0 0 1 1
0 1 − 1 0 H* = 0 1 0 − 1
Proses rekonstruksi untuk contoh di atas dapat digambarkan sebagai berikut:
1 1 l *= 0 0
0 0 1 1
1 1 5 1 1 2 1 a = [2] → a = [2] + [3] = → a = 0 1 − 1 − 1 0 1 L *= 1
[]
1 H* = −1
d 0 = [3]
1 −1 H * = ` 0 0 1 d1 = − 6
0 1 0 5 − 1 + 1 − 1 0 1 0
0 6 0 1 4 = 1 − 6 − 7 − 1 5
0 0 1 −1
Setelah mengetahui bagaimana melakukan transformasi dekomposisi dan rekonstruksi terhadap suatu vektor, selanjutnya bagaimana melakukan transformasi terhadap citra. Suatu citra dapat dianggap sebagai suatu matriks dua dimensi. Untuk citra dua dimensi, prosedur dekomposisi level tunggal terdiri dari citra satu dimensi yang di-filter pada arah mendatar kemudian diikuti oleh citra satu dimensi yang di-
Universitas Sumatera Utara
filter pada arah tegak yang diutilisasi dengan menggunakan filter tapis rendah dan filter tapis tinggi (Bab II Teori Dasar.), seperti pada gambar di bawah ini
Lowpass terhadap baris Citra
Lowpass terhadap kolom Highpass terhadap kolom
Highpass terhadap baris
Lowpass terhadap kolom Highpass terhadap kolom
LL
LH
LL:
hasil lowpass terhadap baris dan kolom
LH: hasil lowpass terhadap baris diteruskan dengan highpass terhadap kolom HL HH
HL: hasil highpass terhadap baris diteruskan dengan lowpass terhadap kolom HH: hasil highpass terhadap baris dan kolom
.
2.4 Penerapan DWT dalam Kompresi Citra Kompresi dalam citra menggunakan DWT berhubungan dengan dekomposisi terhadap citra tersebut. Citra yang merupakan sinyal bergerak ini didekomposisi sama seperti cara dekomposisi sinyal yang telah dipaparkan pada bagian sebelumnya. Secara umum, citra (sinyal bergerak) merupakan rangkaian gelombang yang memiliki banyak puncak dan lembah. Masing-masing gelombang dalam rangkaian gelombang dari sebuah citra biasanya mewakili channel warna (Merah, Hijau, dan Biru). Puncak dan lembah citra dipusatkan ke titik nol, selanjutnya transformasi sinyal menyimpan jarak dari titik nol menuju titik sepanjang gelombang, jarak ini disebut dengan koefisien. Koefisien yang berdekatan kemudian dirata-rata untuk mendapatkan gelombang yang lebih sederhana dan menghasilkan citra dengan resolusi atau tingkat kedetilan setengah dari semula. Koefisien yang telah dirata –rata kemudian dibagi lagi
Universitas Sumatera Utara
seterusnya hingga mendapatkan gelombang yang sangat sederhana. Proses ini merupakan dekomposisi pada citra. Transformasi wavelet dapat menghasilkan versi resolusi citra yang sangat sederhana, oleh karena itu diperlukan perkiraan bentuk umum serta warna (informasi) dari citra untuk dapat merekonstruksi sebuah citra. Transformasi wavelet dapat mengidentifikasi variasi yang signifikan dalam sebuah citra. Variasi ini berhubungan dengan tempat di mana proses penyederhanaan terjadi. Pada saat dekomposisi citra menggunakan koefisien yang dirata-rata, selisih dari koefisien tersebut dicatat. Semakin kecil selisih dari koefisien maka variasi di dalam citra tersebut sedikit, dan ini merupakan kandidat yang bagus untuk proses penyederhanaan. Semakin besar selisih koefisien maka ini menandakan detil dari citra tersebut sangat signifikan dan perlu untuk dipertahankan, biasanya yang memilki detil ini adalah garis atau tepi dari citra. Contoh dari proses dekomposisi dan rekonstruksi citra adalah, misalkan ada sebuah citra satu dimensi yang memiliki empat nilai saja (empat piksel dalam sebuah baris, memiliki tingkat abu -abu yang berbeda), yaitu:
Selanjutnya diambil rata – rata dari pasangan pertama dan kedua hingga menghasilkan tingkat abu – abu sbb:
Setelah citra telah disederhanakan, perlu untuk mencatat informasi dari citra ini yaitu berupa selisih dari koefisien rata – rata. Selisih ini perlu dicatat karena setelah citra disederhanakan maka resolusinya berkurang menjadi setengah dan ada informasi yang hilang. Padahal informasi ini dibutuhkan untuk merekontruksi citra
Universitas Sumatera Utara
tersebut. Selisih dari koefisien rata – rata ini disebut dengan koefisien detil, dalam kasus ini koefisien detilnya adalah 1 dan -1. Dengan bukti sebagai berikut:
2 + -1 = 1 2 – (-1) = 3 7+1=8 7–1=6
Jika dekomposisi dilanjutkan ke tingkat selanjutnya maka akan diperoleh koefisien rata - rata 4,5 dan koefisien detil 2,5. Dengan mencatat koefisien detil pada masing – masing tingkatan dekomposisi ini, maka rekonstruksi citra untuk menjadi citra asal dapat dilakukan. Secara teknis, dekomposisi citra yang merupakan sinyal bergerak dapat digambarkan seperti dekomposisi sinyal menggunakan transformasi wavelet. Citra dengan dua dimensi (baris dan kolom) dapat didekomposisi seperti Gambar 2.7 Dengan I adalah citra, H(ω) adalah highpass filter, dan G(ω) adalah lowpass filter. kolom baris H(ω)
↓2
I baris G(ω)
↓2
H(ω)
↓2
kolom G(ω)
↓2
kolom H(ω)
↓2
kolom G(ω)
↓2
HH
HL LH
LL
Gambar 2.7 Dekomposisi wavelet satu tingkat terhadap citra
Universitas Sumatera Utara
Dekomposisi pada citra seperti pada Gambar 2.7
menghasilkan informasi
rentang frekuensi yang berbeda yaitu LL, frekuensi rendah-rendah (lowlow frequency), LH, frekuensi rendah-tinggi (low-high frequency), HL, frekuensi tinggi rendah (high-low frquency), dan HH, frekuensi tingi – tinggi (high-high frequency). Kesemuanya ini membentuk struktur piramid (Gambar 2.8) dari sebuah citra. Rentang frekuensi LL merupakan rentang taksiran penskalaan, sedangkan rentang frekuensi LH, HL, dan HH merupakan rentang frekuensi detil informasi.
Gambar 2.8 (a) Citra Lena asli, (b) Struktur piramid dua tingkat, (c) Dekomposisi Lena menggunakan Daubechies Wavelet satu tingkat, (d) Dekomposisi Lena menggunakan Haar Wavelet dua tingkat.
2.5 Watermarking pada Citra Digital Saat ini banyak peralatan – peralatan digital yang dapat dengan mudah melakukan modifikasi suatu data – data digital tanpa meninggalkan jejak terhadap perubahan yang dilakukan, sehingga kredibilitas data tersebut tidak dapat lagi dipertanggungjawabkan. Oleh sebab itu diperlukan suatu metode yang dapat mendeteksi adanya perubahan yang dilakukan terhadap data-data digital, metode yang dapat digunakan adalah metode watermarking.
Universitas Sumatera Utara
Sejarah watermarking sudah dimulai sejak 700 tahun yang lalu. Pada akhir abad 13, pabrik kertas di Fabriano, Italia, membuat kertas yang diberi watermark atau tanda-air dengan cara menekan bentuk cetakan gambar atau tulisan pada kertas yang baru setengah jadi. Ketika kertas dikeringkan, terbentuklah suatu kertas yang berwatermark. Kertas ini biasanya digunakan oleh seniman dan sastrawan untuk menulis karya mereka. Kertas yang sudah dibubuhi watermark tersebut sekaligus dijadikan identifikasi bahwa karya seni di atasnya adalah milik mereka. Perkembangan watermarking selanjutnya adalah watermarking pada media digital. Watermarking pada media digital ini mulai dikembangkan pada tahun 1990 di Jepang dan tahun 1993di Swiss . Digital watermarking masih merupakan salah satu teknik baru di bidang proteksi data-data digital, hingga saat ini teknologi watermarking masih dalam tahap pengembangan
jarena
masih
belum
ditemukan
teknik
yang
ideal
untuk
implementasinya. Hal - hal yang terkait dengan robustness dan ekstraksi masih menjadi permasalahan utama dalam pengimplementasian watermarking. Teknik watermarking dapat diklasifikasi menjadi dua kategori yaitu, metode Domain Spasial dan metode Domain Transformasi. Metode Domain Spasial lebih mudah pemakaiannya karena tidak menggunkan transformasi, tetapi tidak tahan terhadap serangan. Teknik watermarking menggunakan Domain Transformasi lebih tahan terhadap serangan dibandingkan dengan metode Domain Spasial (Hameed, November 2008).
2.5.1 Defenisi Watermark merupakan sebuah informasi yang disisipkan pada media lain dengan tujuan melindungi media yang disisipi oleh informasi tersebut dari pembajakan, penyalahgunaan hak cipta, dsb. Watermarking adalah peroses penyisipan sebuah data rahasia, watermark, ke sebuah gambar dimana citra yang sudah terwatermark tidak dapat dibedakan oleh pengelihatan visual (Al-khassaweneh, Agustus 2008). Watermarking berkembang seiring perkembangan zaman dengan munculnya watermarking pada media digital atau disebut dengan digital
Universitas Sumatera Utara
watermarking. Digital watermarking dapat dijalankan pada berbagai media digital seperti citra digital, file suara, dan video. Secara umum proses watermarking pada citra digital dipaparkan pada Gambar 2.9 dimana citra digital disisipi dengan watermark menggunakan kunci sebagai sarana kepemilikan untuk dapat membuka watermark yang disisipkan melalui encoder yang berisi algoritma penyisipan watermark ke dalam citra digital.
Original Image I
Embedding (Emb)
Watermarked Image IW
Original Watermark
Gambar 2.9 Penyisipan watermark Lebih jauh lagi watermark bisa juga berupa kode yang membawa informasi mengenai pemilik hak cipta, pencipta, pembeli yang sah dan segala sesuatu yang diperlukan untuk menangani hak kepemilikan media digital. Watermark sengaja ditanamkan secara permanen pada data digital sedemikian hingga pengguna yang berwenang dapat dengan mudah membacanya, disisi lain watermark tersebut haruslah tidak mengubah isi media kecuali sedikit atau perubahan tersebut tidaklah tampak atau kurang begitu tampak bagi indera manusia.(Lestari, Desi Alex. 20 April 2008.) Hal ini disebabkan karena pengubahan dari citra digital asal ke citra ber-watermark hanya berpengaruh sedikit terhadap perubahan warna dari citra digital, sehingga sistem penglihatan manusia (Human Visual System) tidak dapat mempersepsi perubahan tersebut. Mutu dari teknik watermarking meliputi beberapa parameterparameter utama yang berikut ini [2]: a. Fidelity : Perubahan yang disebabkan oleh tanda (mark) semestinya tidak mempengaruhi nilai isi, idealnya tanda harusnya tidak dapat dilihat, sehingga tidak dapat dibedakan antara data yang ter-watermark dan data yang asli. Salah
Universitas Sumatera Utara
satu trade-off antara karakteristik watermarking yang sangat kelihatan adalah antara robustness dengan fidelity. Dalam beberapa literatur fidelity kadang disebut dengan invisibility untuk jenis data citra dan video. Yang dimaksud dengan fidelity disini adalah derajat degradasi host data sesudah diberi watermark dibandingkan dengan sebelum diberi watermark. Biasanya bila robustness dari watermark tinggi maka memiliki fidelity yang rendah, sebaliknya robustness yang rendah dapat membuat fidelity yang tinggi. Jadi sebaiknya dipilih trade-off yang sesuai, sehingga keduanya dapat tercapai sesuai dengan tujuan aplikasi. Untuk host data yang berkualitas tinggi maka fidelity dituntut setinggi mungkin sehingga tidak merusak data aslinya, sedangkan host data yang memiliki noise (kualitas kurang) maka fidelitynya bisa rendah. b. Robustness : watermark di dalam host data harus tahan terhadap beberapa operasi pemrosesan digital yang umum seperti pengkonversian dari digital ke analog dan dari analog ke digital, dan manipulasi data. Pada robust watermark, data disisipkan dengan sangat kuat, sehingga jika ada yang berusaha menghapusnya maka gambar atau suara yang disisipi akan ikut rusak dan tidak punya nilai komersial lagi. c. Security
:
Watermarking
harus
tahan
terhadap
usaha
segaja
memindahkan/mencopy watermark dari satu multimedia data ke multimedia data lainnya. Pada ketiga kriteria diatas, fidelity merupakan kriteria paling tinggi.( Sirait, Rummi , ST . ) Proses watermarking perlu didukung dengan proses ekstrasi watermark dari citra berwatermark. Proses ekstraksi ini bertujuan untk mendapatkan kembali citra digital asal dan watermark yang disisipkan dalam citra digital tersebut. Umumnya proses ekstraksi melibatkan proses pembandingan citra digital asal dengan citra ber-watermark untuk mendapatkan watermark yang disisipkan. Berikut ini merupakan fungsi utama dari watermarking : 1. Proteksi Hak Cipta Tujuan watermarking dalam perlindungan hak cipta adalah sebagai bukti otentik atas hak kepemilikan pencipta atas content yang dibuat atau
Universitas Sumatera Utara
diproduksinya. Watermarking sangat ideal untuk pembuatan label hak cipta, karena bukan hanya tak terlihat tetapi juga tidak dapat dipisahkan dari data yang disisipi. Hal ini merupakan alasan utama sehingga proteksi menggunakan label hak cipta menjadi aplikasi yang sangat terkemuka saat ini.(Lu, ChunShien. 2005.) 2. Fingerprinting Fungsi watermarking pada fingerprinting mirip dengan serial number S/N. tujuan watermarking adalah mengidentifikasi setiap penggunaan dan distribusi suatu content. 3. Proteksi terhadap penggandaan (copy protection) Watermarking berfungsi melindungi content dari duplikasi dan pembajakan. 4. Autentikasi citra Watermarking berfungsi dalam proses autentikasi, sehingga modifikasi dari suatu citra dapat terdeteksi
2.5.2 Tipe Watermarking dapat digolongkan menjadi beberapa tipe berdasarkan tingkat visibilitas dari data yang disembunyikan (watermarking), lokasi suatu watermarking di domain ukuran data tersembunyi yang ditanamkan, tingkat ketahanan watermarking terhadap suatu serangan dan distorsi serta proses ekstraksi (Pensiska, Finny. 25 Agustus 2008). 1. Visibilitas Berdasarkan kriteria visibilitas, watermarking dapat digolongkan menjadi 2 jenis yaitu
Universitas Sumatera Utara
1. Perceptible : watermarking dapat terlihat oleh mata manusia secara langsung 2. Imperceptible : watermarking tidak dapat terlihat oleh mata manusia secara langsung 2. Domain Lokasi peletakan data watermarking terdiri dari dua jenis yaitu : 1. Domain Pixel : watermarking ditanamkan dengan melakukan modifikasi pada pixel – pixel dari suatu media 2. Domain Frekuensi (transformasi) : Watermarking ditanamkan pada koefisien hasil transformasi. Domain frekuensi diperoleh dengan melakukan transformasi citra. 3. Robustness Berdasarkan tingkat ketahanan suatu watermarking terhadap serangan dan distorsi maka watermarking dapat digolongkan menjadi 3 jenis yaitu : 1. Fragile : watermarking tidak tahan terhadap serangan dan distorsi. Tipe ini dapat digunakan dalam autentikasi. Jika suatu watermarking tidak terdeteksi atau salah maka media telah mengalami perubahan atau tidak asli lagi. 2. Semi-fragile : watermarking tahan terhadap beberapa serangan dan distorsi yang telah didefinisikan sebelumnya 3. Robust : watermarking tahan terhadap usaha-usaha untuk menghilangkan watermarking dan tahan terhadap distorsi 4. Ekstraksi Berdasarkan proses deteksi watermarking atau proses ekstraksi watermarking dapat digolongkan menjadi tiga jenis, yaitu :
Universitas Sumatera Utara
1. Blind : pada proses ekstraksi data sistem blind watermarking tidak membutuhkan citra atau media aslinya, yang dibutuhkan hanyalah suatu kunci atau parameter-parameter untuk melakukan ekstraksi. 2. Semi-blind : proses ekstraksi dilakukan dengan menggunakan suatu kunci dan juga data watermarking. 3. Non-blind : proses ekstraksi dilakukan dengan menggunakan citra asli dan parameter-parameter yang telah ditentukan (key).
2.6. Serangan terhadap Citra Ber -Watermark Serangan terhadap citra ber –watermark umumnya bertujuan untuk menghilangkan watermark yang disisipkan di dalam citra digital tersebut. Serangan ini disebut sebagai serangan yang disengaja. Serangan yang tidak disengaja biasanya berhubungan dengan pengubahan citra digital, pengubahan ini dapat berupa cropping, rotation, kompresi, dll. Secara umum jenis serangan terhadap citra ber-watermark dibagi menjadi dua, yaitu serangan standar (standard attack) dan malicious attack. Malicious attack merupakan serangan yang memilki tujuan untuk menghilangkan watermark. Pengujian terhadap citra ber-watermark menggunakan serangan hanya dapat dilakukan dengan menggunakan standard attack saja. Hal ini disebabkan karena dalam malicious attack umumnya pihak penyerang mencari algoritma penyisipan dan kunci yang digunakan saat penyisipan watermark. Serangan jenis malicious attack ini tetntunya tidak dapat diujikan karena algoritma dan kunci yang digunakan tentunya sudah diketahui oleh penyisip watermark.
2.6.1. Serangan Standar (Standard Attack) Serangan standar biasanya merupakan serangan yang tidak disengaja untuk merusak atau mendapatkan watermark di dalam citra berwatermark. Contoh dari jenis serangan standar (standard attack) adalah sbb:
Universitas Sumatera Utara
1. Cropping Cropping merupakan serangan yang umum karena banyak orang sering menginginkan bagian tertentu dari sebuah citra saja. Cropping dapat merusak citra karena pada proses cropping matriks dari sebuah citra akan di ubah dengan memotong matriks citra tersebut, sehingga ukuran panjang dan lebar citra awal tidak sama dengan ukuran panjang dan lebar citra setelah dilakukan cropping. 2. Serangan geometris (geometrical attack) Serangan
geometris
sering
tidak
secara
sengaja
bertujuan
untuk
menghilangkan watermark pada citra yang sudah ber-watermark. Serangan geometris ini menyebabkan pendeteksi watermark kehilangan sinkronisasinya dengan citra ber watermark. Beberapa yang termasuk dalam serangan geometris adalah rotasi citra, penskalaan ulang citra, pengubahan aspect ratio, translasi, dsb. 3. Kompresi Serangan ini juga merupakan serangan yang sering dilakukan secara tidak sengaja. Kompresi sering dilakukan pada file multimedia seperti audio, video, dan citra. Watermark yang disisipkan biasanya lebih tahan terhadap kompresi yang memliki domain sama dengan domain yang dipakai pada saat watermarking. Misalnya citra yang disisipi watermark menggunakan DCT (Discrete Cosine Transform) lebih tahan terhadap kompresi JPEG daripada citra yang disisipi watermark dalam domain spasial. Atau citra yang disispi watermark menggunakan DWT (Discrete Wavelet Transform) lebih kuat terhadap kompresi JPEG2000. 4. Penambahan noise Citra digital sangat rentan mendapatkan serangan berbagai macam jenis noise. Ada beberapa cara yang menyebabkan suatu noise dapat berada didalam sebuah citra, bergantung bagaimana citra tersebut diciptakan. Sebagai contoh, jika citra merupakan hasil scan foto yang berasal dari negatif film, maka negatif film ini merupakan sumber noise. Noise juga bisa merupakan akibat dari kerusakan film atau juga bisa berasal dari scanner itu sendiri. Jika citra diperoleh secara langsung dalam format digitalnya,
Universitas Sumatera Utara
mekanisme dalam mendapatkan data digital tersebut juga dapat menyebabkan adanya noise. Penyebaran data citra secara elektronik bisa juga menghasilkan noise. 5. Filterisasi Filterisasi umum digunakan pada citra. Beberapa filter yang sering digunakan yaitu gaussian filter, sharpening filter, dsb. Untuk menanggani jenis serangan ini watermark dapat disisipkan pada frekuensi yang paling sedikit berubah jika terjadi kompresi, dengan memperkirakan filterisasi apa saja yang umum digunakan. 6. Pelembutan Citra (Image Smoothing) Pelembutan citra (image smoothing) bertujuan untuk menekan gangguan (noise) pada citra. Gangguan tersebut biasanya muncul sebagai akibat dari hasil penerokan yang tidak bagus (sensor noise, photographic grain noise) atau akibat saluran transmisi (pada pengiriman data). 7. Perataan Histogram Salah satu teknik yang biasa digunakan dalam proses pengingkatan kualitas citra (image enhancement) adalah teknik perataan histogram (histogram equalization). Histogram dari suatu citra sebenarnya menyediakan deskripsi umum akan penampakannya. Untuk histogram sebuah citra berwarna, ketiga histogram komponen warnanya dapat diperlakukan secara terpisah sebagaimana histogram sebuah citra gray-level. (Lestari, Desi Alex. 20 April 2008.). Tujuan dari perataan histogram adalah untuk memperoleh penyebaran histogram yang merata, sedemikian sehingga setiap derajat keabuan memiliki jumlah pixel yang relatif sama.
2.6.2. Malicious Attack Untuk jenis serangan kedua, yaitu malicious attack masih dibagi lagi menjadi tiga jenis serangan yaitu penghilangan watermark (watermark removal), deteksi atau perkiraan watermark (watermark detection or estimation ), dan penulisan watermark
Universitas Sumatera Utara
(watermark writing) . Penjelasan beserta contoh masing -masing jenis serangan dipaparkan sbb: 1. Penghilangan watermark Dalam penghilangan watermark seorang penyerang tidak perlu berhubungan langsung dengan semantik dari watermark yang disisipkan. Artinya seorang penyerang tidak perlu mengambil watermark yang disisipkan tapi hanya perlu menghilangkan pesan yang dimaksud di dalam watermark tersebut dengan cara memodifikasi sinyal watermark sehingga pendeteksi tidak berhasil mendeteksi adanya watermark yang disisipkan. Contoh jenis serangan ini adalah serangan kolusi (collusion attack). Serangan kolusi ini biasanya terjadi pada citra ber - watermark yang memiliki banyak salinan dengan watermark berbeda. Serangan kolusi dijalankan dengan cara meratakan setiap salinan dan menurunkan energi watermark dibandingkan dengan citra asalnya. 2. Deteksi atau perkiraan watermark Serangan ini menitik beratkan pada pencarian modifikasi yang telah dilakukan terhadap citra asal sehingga dapat merepresentasikan watermark yang disisipkan. Serangan biasanya dilakukan dengan memperkirakan citra asal dan mengambil perbedaan antara citra asal hasil perkiraan tersebut dengan watermark. Sebenarnya serangan ini lebih tepat dikatakan sebagai perantara untuk melakukan serangan sesungguhnya terhadap citra ber-watermark. 3. Penulisan watermark Cara yang digunakan dalam jenis serangan ini biasanya adalah redundansi watermarking atau memberi watermark kembali pada citra yang sudah ber watermark.
Universitas Sumatera Utara
2.7. Pengolahan Citra dengan Matlab Matlab merupakan salah satu bahasa pemerograman yang dikembangkan oleh MathWorks. Matlab tidak hanya berfungsi sebagai alat visualisasi, yang berhubungan langsung dengan ilmu Matematika. Oleh karena itu Matlab semakin banyak digunakan oleh para programmer yang menghedaki kepraktisan dalam membuat program.( Paulus, 2007) Matlab adalah sebuah bahasa (pemerograman dengan unjuk kerja tinggi (hight-performance) untuk komutasi teknis, yang mengintegrasikan komputasi, visualisasi, dan pemerograman di dalam lingkungan yang mudah penggunaanya dalam memecahkan persoalan dengan solusinya yang dinyatakan dengan notasi matematika.( Wijaya, Marvin Ch,2007). Penggunaan Matlab, yaitu : 1. Matematika dann komputasi 2. Pengembangan algoritma 3. Pemodelan, simulasi, dan pembuatan ‘protoipe’ 4. Analisis data, eksporasi dan vvisualisasi 5. Grafik untuk sains dan teknik 6. Pengembangan aplikasi, termasuk pembuatan antarmuka gradis untuk pengguna (Graphical User Interface). Matlab adalah sebuah sistem interaktif yang menggunakan elemen data dasarnya dalah array yang tidak membutuhkan dimensi. Nama Matlab merupakan singkatan dari ‘matrix laboratory’. Pada awalnya Matlab dibuat untuk mempermudah pengembangan perangkat lunak berbasis matriks oleh proyek LIPACK dan EISPACK. Fitur – fitur Matlab untuk penyelesaian spedifik disebut ‘toolboxes’. Toolboxes adalah kolesi koprehensif dari fungsi – fungsi Matlab (M-file) yang memperlebar lingkungan Matlab dalam meyelesaikan kelas – kelas tertentu dari permasalahan. Beberapa toolbox yang tersedia meliputi bidang : pengolahan sinyal, system kendali, jaringan syaraf (neural network), logika ‘fuzzy’,wavelet, simulasi dan lain sebagainya.( Wijaya, Marvin Ch,2007).
Universitas Sumatera Utara
Matlab menyediakan perintah untuk membaca, menulis dan menampikan beberapa tipe dari citra. Matlab menyediakan fasilitas tersebut untuk beberapa tipe citra dibawah ini : Tabel 2.7 Tipe citra pada Matlab No. 1 2 3 4 5 6 7
Tipe BMP HDF JPEG PCX PNG TIFF XWD
Keterangan Microsoft Windows Bitmap Hierarchial Data Format Joint Photograpic Experts Group Paintbrush Portable Network Graphics Tagged Image File Format X Windows Dump
2.7.1 Pembacaan Citra Fungsi imread membaca sebubah citra dari file citra yang bertipe di atas dengan berbagai tipe kedalaman warna. Kebanyakan citra yang dibaca mempunyai kedalaman warna 8 bit. Ketika citra seperti itu dibaca, maka Matlab akan menyimpannya dalam tipe data uint8. Jika yang dibaca adalah data 16 bit untuk citra bertipe PNG dan TIFF, maka akan disimpan dalam tipe uint16. Untuk Citra berindeks, fungsi imread selalu menyimpan colomap kedalam tipe double, meskipun array citranya mempunyai tipe uint8 atu uint16. Seperti contoh dibawah ini : RGB = imread(“coba.jpg”) Kita dapat menyimpan (save) data citra menggunakan fungsi imwrite, seperti contoh di bwah ini : load citra imwrite(X,map,”test.bmp”);
2.7.2 Penyimpanan Citra Ketika kita menyimpan sebuah citra dengan fungsi imwrite, Matlab secara otomatis akan mengurangi kedalaman bit warna uint8. Banyak citra yang digunakan
Universitas Sumatera Utara
dalam Matlab adalah 8 bit, dan kebanyakan tipe citra tidak memerlukan data bertipe double precision. Pengecualian pada aturan Matlab yang menyimpan citra data sebagai uint8 adalah citra bertipe PNG dan TIFF yang disimpan bertipe uint16. Karena kedua tipe citra tersebut mendukung 16 bit, kita dapat menyimpan citra dengan tipe uint16 dengan menggunakan fungsi imwrite, seperti contoh dibawah ini : imwrite(I,’citra.png’,BitDepth’,16);
2.7.3 Informasi sebuah File Citra Fungsi imfinfo memungkinkan kita untuk mengambil informasi tentang file citra, dengan tipe citra yang didukung oleh Matlab. Informasi yang kita dapatkan tergantung dari tipe file citranya, tetapi biasanya mencakup : 1. Nama file dan folder-nya 2. Tipe file 3. Versi dari tipe file 4. Tanggal modifikasi 5. Ukuran file 6. Lebar citra (pixel) 7. Tinggi citra (pixel) 8. Ukuran bit ber pixel 9. Tipe citra (RGB/true color, intensitas/Grayscale atau indeks).
2.7.4. Pengubahan Tipe Citra Image Processing Toolbox menyediakan beberapa fungsi yang memungkinkan kita untuk mengkonveris suatu citra ke dalam tipe yang berbeda. Ketika kita mengkonversikan suatu citra dari satu tipe ke dalam tipe yang lain, hasilnya mungkin berbeda dari citra asalnya. Misalnya jika mengubah citra ber-indeks dan berwarna ke dalam citra berintensitas, hasilnya adalah citra grayscale bukan citra berwarna. Fungsi – fungsi mengkonversi citra sebagai berikut :
Universitas Sumatera Utara
1. bither Membuat sebuah citra biner dari citra berintensitas grayscale dengan melakukan dithering, dan membuat sebuah citra berindeks dari citra RGB dengan dithering. 2. gray2ind Membuat sebuah citra ber-indeks dari citra berintensitas grayscale 3. grayslice Membuat sebuah citra ber-indeks dari citra berintensitas grayscale dengan menggunakan thesholding 4. im2bw Membuat sebuah citra biner dari citra berintensitas, citra berindeks atau citra RGB berdasarkan threshold luminance. 5. ind2gray Membuat sebuah citra berintensitas grayscale dari citra beindeks. 6. ind2rgb Membuat sebuah citra RGB dari citra berindeks 7. mat2gray Membuat sebuah citra berintensitas grayscale dari data dalam sebuah matriks dengan melakukan scaling data. 8. rgb2gray Membuat sebuah citra berintensitas grayscale dari citra RGB. 9. rgb2ind Membuat sebuah citra ber-indeks dari citra RGB. Kita juga dapat melakukan konversi dengan menggunakan sintaks dari Matlab, sebagai contoh, untuk mengkonversikan sebuah citra berintensitas menjadi citra RGB dengan menghubungkan 3 duplikat matriks asli sepanjang dimensi ketiga. RGB = cat(3,I,I,I); Hasilnya dalah citra RGB dengan matriks yang sama untuk warna merah, hijau dan biru, sehingga akan muncul citra berwarna abu – abu.
Universitas Sumatera Utara
2.7.5. Menampilkan Citra Pada Matlab, cara untuk menampilkan citra yaitu menggunakan fungsi image. Fungsi ini akan menghasilkan Handle Graphics, dan juga termasuk pengaturan untuk berbagai properties dari objek. Matlab juga memiliki fungsi imagesc, yang mirip dengan fungsi image tetapi fungsi ini akan mengatur skala dari data masukan secara otomatis. Kakas pengolahan citra Matlab menyedikan rutin tambahan untuk penampilan citra, yaitu imshow. Seperti image dan imagesc, fungsi ini akan menghasilkan sebuah objek Handle Graphics. Tetapi imshow juga secara otomatis mengatur berbagai properties citra dan atribut dari citra untuk mengoptimalkan penampilan. Tabel 2.8 Fungsi penampilan citra Fungsi
Keterangan
image
Menampilkan sebuah objek citra
imagecs
Menampilkan citra sekaligus juga mengatur skala citra
imshow
Menampilkan dan mengatur properties dan atribut citra
2.8. Pengujian Perangkat Lunak Pengujian Perangkat Lunak adalah elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean. Pentingnya pengujian perangkat lunak dan implikasinya yang mengacu pada kualitas perangkat lunak tidak dapat terlalu ditekan karena melibatkan sederetan aktivitas produksi di mana peluang terjadinya kesalahan manusia sangat besar dan arena ketidakmampuan manusia untuk melakukan dan berkomunikasi dengan sempurna maka pengembangan perangkat lunak diiringi dengan aktivitas jaminan kualitas.
Universitas Sumatera Utara
Meningkatnya visibilitas (kemampuan) perangkat lunak sebagai suatu elemen sistem dan “biaya” yang muncul akibat kegagalan perangkat lunak, memotivasi dilakukannya perencanaan yang baik melalui pengujian yang teliti. Pada dasarnya, pengujian merupakan satu langkah dalam proses rekayasa perangkat lunak yang dapat dianggap sebagai hal yang merusak daripada membangun. Sejumlah aturan yang berfungsi sebagai sasaran pengujian pada perangkat lunak adalah: 1. Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan 2. Test case yang baik adalah test case yang memiliki probabilitas tinggi untuk menemukan kesalahan yang belum pernah ditemukan sebelumnya 3. Pengujian yang sukses adalah pengujian yang mengungkap semua kesalahan yang belum pernah ditemukan sebelumnya Sasaran utama desain test case adalah untuk mendapatkan serangkaian pengujian yang memiliki kemungkinan tertinggi di dalam pengungkapan kesalahan pada perangkat lunak. Untuk mencapai sasaran tersebut, digunakan 4 kategori yang berbeda dari tehnik desain test case: Pengujian white-box, pengujian black-box, Integrasi Bottom-Up dan Integrasi Top-Down. 1. Pengujian white-box Pengujian white-box berfokus pada struktur control program. Test case dilakukan untuk memastikan bahwa semua statemen pada program telah dieksekusi paling tidak satu kali selama pengujian dan bahwa semua kondisi logis telah diuji. Pengujian basic path, tehnik pengujian white-box, menggunakan grafik (matriks grafiks) untuk melakukan serangkaian pengujian yang independent secara linear yang akan memastikan cakupan. Pengujian aliran data dan kondisi lebih lanjut menggunakan logika program dan pengujian loop menyempurnakan tehnik white-box yang lain dengan memberikan sebuah prosedur untuk menguji loop dari tingkat kompleksitas yang bervariasi. Pengujian black-box didesain untuk mengungkap kesalahan pada persyaratan fungsional tanpa mengabaikan kerja internal dari suatu program.
Universitas Sumatera Utara
2. Tehnik pengujian black-box Tehnik pengujian black-box berfokus pada domain informasi dari perangkat lunak, dengan melakukan test case dengan menpartisi domain input dari suatu program dengan cara yang memberikan cakupan pengujian yang mendalam. Metode pengujian graph-based mengeksplorasi hubungan antara dan tingkah laku objek-objek program. Partisi ekivalensi membagi domain input ke dalam kelas data yang mungkin untuk melakukan fungsi perangkat lunak tertentu. Analisis nilai batas memeriksaa kemampuan program untuk menangani data pada batas yang dapat diterima. Metode pengujian yang terspesialisasi meliputi sejumlah luas kemampuan perangkat lunak dan area aplikasi. GUI, arsitektur client/ server, dokumentasi dan fasilitas help dan sistem real time masing-masing membutuhkan pedoman dan tehnik khusus untuk pengujian perangkat lunak. 3. Integrasi Top-Down Integrasi Top-Down adalah pendekatan incremental dengan menggerakkan ke bawah melalui hirarki control, dimulai dengan control utama. Strategi intergrasi topdown memeriksa control mayor atau keputusan pada saat awal di dalam proses pengujian. Pada struktur program yang difaktorkan dengan baik, penarikan keputusan terjadi pada tingkat hirarki yang lebih tinggi sehingga terjadi lebih dulu. Strategi top-down kelihatannya tidak sangat rumit, tetapi di dalam praktenya banyak menimbulkan masalah logistic. Biasanya masalah ini terjadi jika dibutuhkan pemrosesan di dalam hirarki pada tingkat rendah untuk menguji secara memadai tingkat yang lebih tinggi. 4. Pengujian Integrasi Bottom-up Pengujian Integrasi Bottom-up memulai konstruksi dan pengujian dengan modul atomic (modul pada tingkat paling rendah pada struktur program). Karena modul diintegrasikan dari bawah ke atas, maka pemrosesan yang diperlukan untuk modul subordinate ke suatu tuingkat yang diberikan akan selalu tersedia dan kebutuhan akan stub dapat dieliminasi.
Universitas Sumatera Utara