Penerapan Daubechies Wavelet Dan Hamming Code Dalam Watermarking Citra Digital

(1)

Diajukan untuk memenuhi salah satu persyaratan dalam

menyelesaikan pendidikan sarjana (S-1) pada Departemen Teknik Elektro

Oleh :

ECHOLIMA SARAGIH 020402063

DEPARTEMEN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS SUMATERA UTARA

MEDAN


(2)

KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas rahmat dan karunia yang telah diberikan sehingga dapat menyelesaikan Tugas Akhir ini. Adapun Tugas Akhir ini dibuat untuk memenuhi syarat memperoleh gelar Sarjana Teknik di Departemen Teknik Elektro, Fakultas Teknik Universitas Sumatera Utara. Judul dari Tugas Akhir ini adalah “Penerapan Daubechies Wavelet dan Hamming Code Dalam Watermarking Citra Digital”. Tugas Akhir ini penulis persembahkan teristimewa kepada ayahanda Kamen P. Saragih, ibunda Marlina Gultom, kakak penulis Dr. Juliana K. R. Saragih, dan Tinsona Saragih, Amd, Windi Jeanni Saragih, serta Delanining Saragih selaku adik-adik penulis yang merupakan bagian hidup dari penulis dan juga teman-teman yang semuanya senantiasa mendoakan, mendukung dan memberi semangat kepada penulis. Dalam proses pembuatan Tugas Akhir ini penulis banyak menemukan masalah dan kesulitan. Namun berkat bantuan dan bimbingan dari berbagai pihak, Tugas Akhir ini akhirnya dapat selesai. Untuk itu penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada :

1. Bapak Ir. Nasrul Abdi, MT selaku Ketua Departemen Teknik Elektro Fakultas Teknik USU dan Bapak Rachmat Fauzi, ST, MT, selaku Sekretaris Departemen Teknik Elektro Fakultas Teknik USU.

2. Bapak Prof. Dr. Ir. Usman Baafai selaku mantan Ketua Departemen Teknik Elektro Fakultas Teknik USU dan Bapak Drs. Hasdari Helmi, MT, selaku mantan Sekretaris Departemen Teknik Elektro Fakultas Teknik USU.


(3)

3. Bapak Ir. Pernantin Tarigan, MSc, selaku Dosen Pembimbing Tugas Akhir, atas segala bimbingan, arahan dan solusi yang telah diberikan selama mengerjakan Tugas Akhir.

4. Bapak Maksum Pinem, ST, MT, selaku Dosen Wali penulis, atas bimbingan dan arahan dalam menyelesaikan kuliah.

5. Seluruh Staf Pengajar di Departemen Teknik Elektro Fakultas Teknik USU dan seluruh Karyawan di Departemen Teknik Elektro Fakultas Teknik USU. 6. Rekan-rekan mahasiswa Teknik Elektro terutama teman-teman old track

stambuk 2002, Sihar, Augustin, Junaris, Dodi, Bugi, Esron, Raymond, Adhi, Daniel, Chairil, Aritta, Joshua, Irham, Denny, Bismar, Yos, Hendra, Ardiansyah, Indra, Syafril, Agustin, Abu, Faisal, Romi, Surya, Ipengadohar, Rahmat, Hamdani, Hatorangan, Deddy, Usman, Novri, Roger, Erwin, Robert, Sabariah, Andriani, Silvia, Agus, Farid, Afli, Apriandi, Berry, Iqbal, Yandi Boy dan teman-teman 2002 lainnya.

7. Teman-teman di Apartemen 08, Candra, Gindo, Alvint, Jalich, Mike, Ijon, Taufik, Agung, Jefry dan teman-teman lainnnya.

8. Pihak-pihak lain yang tidak dapat diucapkan namanya satu persatu.

Akhir kata, penulis berharap semoga penulisan Tugas Akhir ini bermanfaat bagi kita semua. Sekian dan terima kasih.

Medan, Desember 2008 Penulis,


(4)

DAFTAR ISI

LEMBAR PENGESAHAN ...i

ABSTRAK ...ii

KATA PENGANTAR ...iii

DAFTAR ISI ...v

DAFTAR GAMBAR ...vi

DAFTAR TABEL ...ix

I. PENDAHULUAN 1.1. Latar Belakang ...1

1.2. Tujuan Penulisan ...2

1.3. Rumusan Masalah ...2

1.4. Batasan Masalah ...3

1.5. Metodologi Perancangan ...3

1.6. Kerangka Penulisan ...4

II. DASAR TEORI 2.1.CitraDigital ...6

2.1.1 Citra BMP ...6

2.2. Wavelet ...7

2.2.1 Daubechies Wavelet ...11

2.3. Kode Hamming ...13

2.3.1 Konstruksi Kode Hamming (8,4) ...14

2.4. Watermarking ...15


(5)

2.4.2 Watermarking Citra Digital ...16

2.4.3 Domain Pernerapan Watermarking Citra Digital ...18

2.4.4 Kriteria Watermarking ...19

2.4.5 Aplikasi Digital Watermarking ...20

2.4.6 Serangan terhadap citra ber-watermark ...21

2.5. Watermarking menggunakan Daubechies Wavelet ...23

2.6. Matlab ...25

III. PERANCANGAN SISTEM 3.1. Gambaran Umum Sistem ...27

3.2. Program Utama ...27

3.3. Sisip ...28

3.3.1 Pilih Citra ...28

3.3.2 Hammcod ...29

3.3.3 Wavsisip ...30

3.3.4 Hitung PSNR ...32

3.4. Ekstrak ...33

3.4.1 Wavekstrak ...34

3.4.2 Corr ...34

IV. PENGUJIAN 4.1.Analisa Hasil Pengujian ...36

4.1.1 Serangan Kompresi JPEG ...37

4.1.2 Serangan Noise ...38


(6)

4.1.4 Serangan Sharpen ...40

4.1.5 Serangan Blur ...41

V. KESIMPULAN DAN SARAN 5.1.Kesimpulan ...42

5.2. Saran ...42

DAFTAR PUSTAKA ...43


(7)

DAFTAR GAMBAR

1. Gambar 2.1 Dekomposisi sinyal satu tingkat ...10

2. Gambar 2.2 Rekonstruksi sinyal satu tingkat ...11

3. Gambar 2.3 Penyisipan watermark ...16

4. Gambar 2.4 Ekstraksi watermark ...17

5. Gambar 2.5 Struktur dekomposisi citra 4 level ...23

6. Gambar 3.1 Diagram alir program utama ...28

7. Gambar 3.2 Diagram alir Hammcod ...29

8. Gambar 3.3 Diagram alir proses Pengkodean ...30

9. Gambar 3.4 Diagram alir Wavsisip...31

10.Gambar 3.5 Diagram alir Hitung PSNR ...33

11.Gambar 3.6 Diagram alir Wavekstrak ...34

12.Gambar 4.1 Citra pic ber-watermark dan citra watermark ...37

13.Gambar 4.2 Citra insect ber-watermark dan citra watermark ...37

14.Gambar 4.3 Citra pic dan citra watermark serangan noise sebesar 10% ...39


(8)

DAFTAR TABEL

1. Tabel 2.1 Koefisien-koefisien highpass filter ...12

2. Tabel 2.2 Error yang muncul ...15

3. Tabel 4.1 Nilai PSNR citra sebelum dilakukan serangan ...36

4. Tabel 4.2 Hasil pengujian dengan kompresi JPEG skala 1:2 ...38

5. Tabel 4.3 Hasil pengujian dengan kompresi JPEG skala 1:5 ...38

6. Tabel 4.4 Hasil pengujian serangan noise ...39

7. Tabel 4.5 Hasli pengujian serangan motion blur ...40

8. Tabel 4.6 Hasil pengujian serangan sharpen ...40


(9)

baik berupa teks, citra, audio, maupun video. Kemudahan tersebut akhirnya dapat dipergunakan secara negatif tanpa memperhatikan aspek hak cipta seperti duplikasi dan distribusi data tau dokumen digital secara ilegal. Hal tersebut menimbulkan kekhawatiran bagi pemilik hak cipta, seperti fotografer profesional dan museum sehingga dibutuhkan suatu cara untuk melindungi hak cipta. Salah satu solusi yang dikembangkan untuk citra digital adalah dengan menggunakan digital watermarking. Watermarking bekerja dengan menyisipkan informasi yang menunjukkan kepemilikan, tujuan atau data lain pada citra digital yang disebut watermark. Penyisipan watermark dilakukan sedemikian rupa sehingga tidak merusak citra digital yang dilindungi dan tidak dapat dirasakan oleh indera manusia.

Dalam tugas akhir ini, akan dirancang suatu aplikasi penyisipan watermark citra digital dengan menggunakan metode transformasi Daubechies Wavelet. Dengan metode ini jumlah data watermark yang dapat disisipkan lebih tahan terhadap manipulasi citra digital. Watermark yang disisipkan pada citra digital diproses dengan menggunakan kode Hamming (8,4).


(10)

BAB I PENDAHULUAN

1. Latar Belakang

Perkembangan teknologi digital serta internet yang cukup pesat telah memberi kemudahan dalam mengakses dan mendistribusikan berbagai informasi dalam format digital, baik berupa teks, citra, audio, maupun video. Kemudahan tersebut akhirnya dapat dipergunakan secara negatif tanpa memperhatikan aspek hak cipta seperti duplikasi dan distribusi data atau dokumen digital secara ilegal. Hal tersebut menimbulkan kekhawatiran bagi pemilik hak cipta, seperti fotografer profesional dan museum sehingga dibutuhkan suatu cara untuk melindungi hak cipta.

Salah satu solusi yang dikembangkan untuk citra digital adalah dengan menggunakan digital watermarking. Watermarking bekerja dengan menyisipkan informasi yang menunjukkan kepemilikan, tujuan atau data lain pada citra digital yang disebut watermark. Penyisipan watermark dilakukan sedemikian rupa sehingga tidak merusak citra digital yang dilindungi dan tidak dapat dirasakan oleh indera manusia.

Dalam tugas akhir ini, akan dirancang suatu aplikasi penyisipan watermark

citra digital dengan menggunakan metode transformasi Daubechies Wavelet. Dengan metode ini jumlah data watermark yang dapat disisipkan lebih tahan terhadap manipulasi citra digital. Watermark yang disisipkan pada citra digital diproses dengan menggunakan kode Hamming (8,4).


(11)

2. Tujuan Penulisan

Tujuan penulisan tugas akhir ini adalah sebagai berikut:

1. Menghasilkan aplikasi watermarking yang bertujuan untuk melindungi hak cipta citra digital.

2. Memenuhi salah satu syarat untuk menyelesaikan pendidikan program sarjana Teknik Elektro di Universitas Sumatera Utara.

3. Rumusan Masalah

Citra digital yang akan disisipi dengan watermark adalah citra digital dengan format bitmap warna, 24-bit per piksel dengan ukuran lebar minimal 128 piksel dan tinggi minimal 128 piksel. Watermark yang disisipkan bersifat invisible agar tidak menurunkan kualitas citra.

Dalam penyisipan watermark dibutuhkan kode yang berupa password yang dimasukkan oleh user. Kode ini berfungsi sebagai signature pada proses encoding

atau decoding watermark. Password harus memiliki panjang lima sampai delapan karakter. Password akan diubah ke dalam bilangan biner. Selanjutnya pada bilangan tersebut akan dilakukan pengkodean Hamming (8,4) per 4 bit-nya. Kode Hamming tersebut akan diubah menjadi sebuah urutan (sequence) bilangan bipolar. Sequence

ini dijadikan sebagai watermark yang disisipkan pada citra. Transformasi wavelet Daubechies (dekomposisi) dilakukan pada komponen warna Red (R), Green (G), dan

Blue (B) pada citra. Penyisipan watermark dilakukan pada komponen warna G. Setelah penyisipan watermark dilakukan invers transformasi wavelet (rekonstuksi) yang menghasilkan citra yang memiliki watermark.


(12)

Pada proses pendeteksian dilakukan transformasi wavelet (dekomposisi) pada citra ber-watermark dan citra asli. Koefisien transformasi komponen warna G pada kedua citra dibandingkan untuk memperoleh keofisien watermark. Selanjutnya koefisien watermark direkonstruksi untuk memperoleh citra watermark.

Compiler yang digunakan dalam perancangan program aplikasi adalah Matlab 7.01. Sistem operasi yang digunakan adalah Windows XP.

4. Batasan Masalah

Dalam penulisan ini pembahasan masalah dibatasi sebagai berikut :

1. Citra digital yang dibahas terbatas pada format bitmap yang tidak terkompresi. 2. Wavelet yang dibahas hanyalah wavelet Daubechies.

3. Proses watermarking yang dibahas hanya meliputi penyisipan dan ekstraksi

watermark.

5. Metodologi Perancangan

Metode yang digunakan dalam penulisan tugas akhir terdiri dari dua tahap, yaitu:

1. Penyisipan Watermark

Pada proses penyisipan watermark dibagi menjadi tiga bagian utama yaitu dekomposisi, pengkodean dan rekonstruksi.

a. Dekomposisi

Komponen warna RGB pada citra dipisah menjadi komponen R, G, dan B. Dari komponen warna tadi dilakukan 4 level transformasi waveletDaubechies. Pada


(13)

tiap level dilakukan pemisahan komponen highpass dan lowpass secara horizontal, vertikal dan diagonal dengan bergantian untuk memperoleh nilai smooth signal dan

detail signal. Perhitungan 4 level transformasi ini dilakukan dalam bentuk matriks. b. Pengkodean

Pada pengkodean, bit-bit password yang telah dimasukkan akan dibagi sehingga setiap bagian terdiri atas 4 bit. Kemudian 4 bit tersebut akan dikodekan menjadi 8 bit dengan penambahan sebanyak 4 bit parity. Proses ini menggunakan kode Hamming (8,4) yang dapat memperbaiki satu bit error dan mendeteksi sampai tiga bit error. Bit-bit hasil pengkodean diubah ke dalam bentuk urutan (sequence) bilangan bipolar.

c. Rekonstruksi

Pada proses rekonstruksi dilakukan transformasi invers wavelet terhadap komponen aproksimasi, vertikal, horizontal, dan vertikal untuk mendapatkan citra yang sudah disisipkan watermark dalam komponen warna RGB.

2. Ekstraksi Watermark

Pada proses ekstraksi watermark dilakukan dekomposisi terhadap citra asli dan citra uji. Koefisien hasil dekomposisi kedua citra dibandingkan untuk mempoleh koefisien watermark. Proses rekonstruksi menggunakan invers transformasi wavelet

dilakukan terhadap koefisien watermark untuk memperoleh citra watermark.

6. Kerangka Penulisan

Untuk memberikan gambaran mengenai tulisan ini, secara singkat dapat diuraikan sistematika pembahasan sebagai berikut:


(14)

BAB I PENDAHULUAN

Bab ini berisikan latar belakang masalah, tujuan penulisan, rumusan masalah, batasan masalah, metodologi dan sistematika penulisan.

BAB II DASAR TEORI

Bab ini membahas teori-teori yang berhubungan dengan topik tugas akhir, yaitu pembahasan mengenai citra digital, digital watermark, penjelasan mengenai

Daubechies Wavelet serta Hamming Code. BAB III PERANCANGAN SISTEM

Bab ini membahas mengenai algoritma dan pemrograman yang digunakan untuk menyisipkan dan mendeteksi watermark serta perancangan aplikasi watermarking

untuk perlindungan terhadap citra digital. BAB IV IMPLEMENTASI

Bab ini membahas penerapan watermark citra digital berformat bitmap dan evaluasi algoritma yang dipakai. Implementasi dilakukan dengan melakukan serangkaian uji coba untuk mengetahui apakah sistem dapat berfungsi dengan baik.

BAB V KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari hasil perancangan program aplikasi secara keseluruhan dari bab-bab sebelumnya dan saran-saran yang mungkin untuk pengembangan lebih lanjut.


(15)

BAB II

LANDASAN TEORI

2.1Citra Digital

Semua citra digital yang ditampilkan di layar komputer adalah sederetan atau sekumpulan piksel (picture element). Citra tersebut dikatakan sebagai citra digital karena bentuk representasinya yang berupa bilangan (numbers). Oleh komputer akan dikenal dalam urutan ‘0’ dan ‘1’.

Ada beberapa format citra digital, antara lain: BMP, PNG, JPG, GIF, PCX, dan sebagainya. Masing-masing format mempunyai perbedaan satu dengan yang lain terutama pada header file. Namun ada beberapa yang mempunyai kesamaan, yaitu penggunaan palette untuk penentuan warna piksel. Sebagai studi kasus dalam tugas akhir ini akan digunakan format citra BMP yang dikeluarkan oleh Microsoft.

2.1.1 Citra BMP

Format BMP, disebut dengan bitmap atau format DIB (Device Independent Bitmap) adalah sebuah format citra yang digunakan untuk menyimpan citra bitmap digital terutama pada sistem operasi Microsoft Windows atau OS/2. Pada citra berformat BMP (bitmap) yang tidak terkompresi, piksel citra disimpan dengan kedalaman warna 1, 4, 8, 16, 24, atau 32 bit per piksel.

Pada umumnya citra bitmap terdiri dari 4 blok data yaitu: BMP header, Bit Information (DIB header), Color Palette, dan Bitmap Data. BMP header berisi informasi umum dari citra bitmap. Blok ini berada pada bagian awal file citra dan


(16)

digunakan untuk mengidentifikasi citra. Beberapa aplikasi pengolah citra akan membaca blok ini untuk memastikan bahwa citra tersebut berformat bitmap dan tidak dalam kondisi rusak. Bit information berisi informasi detail dari citra bitmap, yang akan digunakan untuk menampilkan citra pada layar. Color palette berisi informasi warna yang digunakan untuk indeks warna bitmap, dan bitmap data berisi data citra yang sebenarnya, piksel per piksel.

Model ruang warna yang digunakan pada citra bitmap adalah RGB (red, green, dan blue). Sebuah ruang warna RGB dapat diartikan sebagai semua kemungkinan warna yang dapat dibuat dari tiga warna dasar red, green, dan blue. RGB sering digunakan di dalam sebagian besar aplikasi komputer karena dengan ruang warna ini tidak diperlukan transformasi untuk menampilkan informasi di layar monitor.

2.2Wavelet

Wavelet adalah suatu metode pengolahan sinyal yang mana sebuah sinyal dipecah menjadi beberapa bagian yang merujuk kepada frekuensi yang berbeda-beda. Wavelet digunakan untuk menyusun, menganalisis dan mensintesis data numeris hasil pengukuran/pengamatan suatu fenomena fisis tertentu.

Dalam pemrosesan sinyal sudah dikenal suatu metode yaitu transformasi

fourier yang dapat mempresentasikan sinyal sebagai penjumlahan deret sinus dan kosinus. Namun salah satu kelemahan besar transformasi fourier adalah hanya mampu untuk menghasilkan resolusi frekuensi dan tidak ada resolusi waktu. Hal ini berarti suatu sinyal dapat ditentukan frekuensinya tetapi tidak dapat diketahui kapan


(17)

frekuensi itu ada. Oleh karena itu selama beberapa dekade yang lalu, para ahli berusaha untuk menemukan suatu metode yang dapat mempresentasikan suatu sinyal digital ke dalam domain frekuensi dan waktu secara bersamaan.

Dengan transformasi wavelet, sinyal digital dikalkulasi untuk menentukan domain frekuensi dan waktu secara bersamaan. Transformasi wavelet dapat diaplikasikan pada pengenalan objek, smoothing (memperhalus) dan kompresi.

Transformasi wavelet memiliki dua jenis 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.

Dalam transformasi wavelet, 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).


(18)

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

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. Pada saat melewati highpass filter dan lowpass filter ini, rentang frekuensi di-downssample menjadi dua, sehingga rentang frekuensi tertinggi pada masing-masing downsample menjadi /2 rad/s. Setelah filterisasi, setengah dari

sample atau salah satu downsample dapat dieliminasi sehingga sinyal dapat selalu

di-downsample oleh 2 ( 2) dengan cara mengabaikan setiap sample yang kedua. Proses dekomposisi ini dapat melalui satu atau lebih tingkatan. Dekomposisi sinyal satu tingkat ditulis dengan ekspresi matematika pada persamaan 1 dan 2.

− =

n

tinggi k x n h k n

y [ ] [ ] [2 ]...(2.1)

− =

n

rendah k x n g k n


(19)

] [k

ytinggi dan yrendah[k]adalah hasil dari highpass filter dan lowpass filter, x[n]

merupakan sinyal asal, h[n] adalah highpass filter dan g[n] adalah lowpass filter, n dan k adalah variabel integer.

Untuk dekomposisi sinyal lebih dari satu tingkat, prosedur pada rumus 1 dan 2 dapat digunakan pada masing-masing tingkatan. Contoh dekomposisi sinyal satu tingkat dipaparkan pada Gambar 2.1.

] [k ytinggi

] [k yrendah

Gambar 2.1 Dekomposisi sinyal satu tingkat.

Pada Gambar 2.1, hasil dari highpass filter, ytinggi[k]disebut sebagai sinyal detil (detail signal) dan hasil dari lowpass filter,yrendah[k] disebut sebagai sinyal aproksimasi (approximation signal). Dengan menggunakan kedua sinyal ini maka

dapat dilakukan proses Inverse Discrete Wavelet Transform (IDWT) untuk

merekonstruksi menjadi sinyal asal.

Proses rekonstruksi sinyal diawali dengan menggabungkan koefisien DWT

dari yang berada pada akhir dekomposisi dengan sebelumnya meng-upsample sinyal oleh 2 ( 2) melalui highpass filter dan lowpass filter. Proses rekonstruksi ini merupakan kebalikan dari proses dekomposisi sesuai dengan tingkatan pada proses dekomposisi. Sehingga persamaan rekonstruksi pada masing-masing tingkatan dapat ditulis sebagai berikut:

+ − +

+ −

= ytinggi k h n k yrendah k g n k

n


(20)

Proses rekonstruksi sinyal untuk mendapatkan sinyal asal dengan satu tingkatan digambarkan pada Gambar 2.2

] [k ytinggi

] [k yrendah

Gambar 2.2 Rekonstruksi sinyal satu tingkat. 2.2.1 Daubechies Wavelet

Nama Daubechies wavelet berasal dari seorang matematikawan yang

bernama Inggrid Daubechies. Daubechies wavelet merupakan keluarga dari

transformasi wavelet diskrit (DWT) memiliki karakteristik derajat vanishing moment

yang maksimal. Derajat vanishing moment merupakan parameter untuk menyatakan

kemampuan mengaproksimasi suatu sinyal. Semakin besar derajat vanishing

moment, maka semakin kecil nilai galat/error aproksimasi yang akan terjadi.

Daubechies wavelet yang umum digunakan adalah D2 - D20. Dalam tugas akhir ini digunakan Daubechies D4 wavelet, dengan nilai 4 menyatakan nomor indeks wavelet. Nomor indeks ini mengacu pada banyaknya masing-masing koefisien highpass filter h[n] dan lowpass filter g[n] yang dimiliki wavelet. Sehingga dapat diartikan bahwa Daubechies D4 wavelet memiliki masing-masing 4 koefisien h[n] dan g[n]. Dalam hal ini nilai koefisien h[n] untuk D2 - D20 telah ditetapkan oleh

Daubechies sendiri. Nilai koefisien h[n] untuk D2 - D8 ditabulasikan dalam Tabel 2.1. Untuk nilai koefisien g[n] diperoleh dengan menggunakan persamaan berikut:


(21)

0 3 1 2 2 1 3 0 h g h g h g h g − = = − = = ……(2.4)

Tabel 2.1 Koefisien-koefisien highpass filter

No koefisien

(n)

D2 D4 D6 D8

0 1 0.6830127 0.47046721 0.32580343

1 1 1.1830127 1.14111692 1.01094572

2 0.3169873 0.650365 0.8922014

3 -0.1830127 -0.19093442 -0.03957503

4 -0.12083221 -0.26450717

5 0.0498175 0.0436163

6 0.0465036

7 -0.01498699

Sinyal aproksimasi dan sinyal detil dihitung dengan mengambil hasil perkalian koefisien h[n] dan g[n] dengan sinyal yang akan dianalisa. Persamaannya ditunjukkan sebagai berikut:

3 2 3 2 2 2 1 2 1 2

0 + + + + + +

= i i i i

i h s hs h s h s

a …….(2.5) 3 2 3 2 2 2 1 2 1 2

0 + + + + + +

= i i i i

i g s g s g s g s

c …..(2.6)

Dengan ai adalah sinyal aproksimasi, ci adalah sinyal detil, h0, h1, h2, h3 adalah

keofisien h[n] dan g0, g1, g2, g3 adalah koefisien g[n] dan s adalah sinyal yang akan

dianalisa.

Dengan mengambil sebanyak delapan sampel sinyal (s), persamaan 5 dan 6 dapat dibuat ke dalam bentuk matriks sebagai berikut:


(22)

• = + + + + + + + + + + + + + 7 2 6 2 5 2 4 2 3 2 2 2 1 2 2 1 0 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 4 3 1 0 3 2 1 0 3 3 2 2 1 1 g g 0 0 0 0 0 0 h h 0 0 0 0 0 0 g g g g 0 0 0 0 h h h h 0 0 0 0 0 0 g g g g 0 0 0 0 h h h h 0 0 0 0 0 0 g g g g 0 0 0 0 h h h h i i i i i i i i i i i i i i i i s s s s s s s s c a c a c a c a ...(2.7)

Untuk proses rekonstruksi menjadi sinyal (s) menggunakan persaman berikut:

• = + + + + + + + + + + + + + 3 3 2 2 1 1 3 3 2 2 1 h 3 3 0 0 2 2 1 1 3 3 0 0 2 2 1 1 3 3 3 0 2 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 2 g h 0 0 0 0 0 0 h h 0 0 0 0 0 0 g g h g 0 0 0 0 g h h h 0 0 0 0 0 0 h g g h 0 0 0 0 h h g h 0 0 0 0 0 0 g h g h 0 0 0 0 g h g h i i i i i i i i i i i i i i i i c a c a c a c a s s s s s s s s ……(2.8)

2.3Kode Hamming

Kode Hamming ditemukan oleh Richard Hamming, merupakan sebuah kode perbaikan error linier yang dapat memperbaiki dan mendeteksi bit-bit error tunggal. Kode Hamming memiliki jarak minimum dmin = 3.

Kode Hamming terdiri dari bit data dan bit parity yang membentuk sebuah

hamming code word. Jumlah bit data dan bit parity ditentukan oleh aturan Hamming (hamming rule) yang ditunjukkan oleh ketidaksamaan berikut:

p p

d+ +1≤2 ………(2.9)


(23)

2.3.1 Konstruksi Kode Hamming (8,4)

Kode Hamming (8,4) terdiri dari 4 bit input dan 4 bit parity. Misalkan bit

input: b3,b2,b1,b0 maka dapat dikodekan menjadi 8 bit kode Hamming dengan susunan sebagai berikut: b3, a3, b2, a2, b1, a1, b0, a0 yang kemudian dapat diberi nama h7, h6, h5, h4, h3, h2, h1, h0.. Untuk nilai a3, a2, a1, dan a0 diperoleh dengan menggunakan persamaan berikut:

0 2 3 0 0 1 3 1 0 1 2 2 1 2 3 3 b b b a b b b a b b b a b b b a ⊕ ⊕ ¬ = ⊕ ⊕ ¬ = ⊕ ⊕ ¬ = ⊕ ⊕ = ……..(2.10)

Yang mana ⊕ adalah operasi bitwise xor dan ¬ adalah bitwise not.

Untuk mendekodekan satu byte kode Hamming tersebut dilakukan operasi

bitwise xor pada kode Hamming untuk menghasilkan parity dengan persamaan sebagai berikut: 0 1 2 3 4 5 6

7 h h h h h h h

h

p= ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ …..(2.11)

1 3 4 5 2 1 2 3 7 1 0 1 5 7 0 h h h h c h h h h c h h h h c ⊕ ⊕ ⊕ = ⊕ ⊕ ⊕ = ⊕ ⊕ ⊕ = …..(2.12)

Jika parity, p , bernilai 1 maka terdapat 0 atau 2 error yang muncul. Jika semua bit c0, c1, c2 bernilai 1 maka byte yang diterima tidak berubah (tidak terdapat

error) sebaliknya jika bernilai 0 maka terdapat 2 error yang tidak dapat diperbaiki. Jika p bernilai 0 maka terdapat sebuah bit error yang muncul yang dapat diperbaiki dengan melakukan flip pada bit yang error. Bit error yang muncul ditunjukkan pada Tabel 2.2.


(24)

Tabel 2.2 Error yang muncul.

c0 c1 c2 arti

1 1 1 error pada bit h6

1 1 0 error pada bit h4

1 0 1 error pada bit h2

0 1 1 error pada bit h0

0 0 1 error pada bit h7

0 1 0 error pada bit h5

1 0 0 error pada bit h3

0 0 0 error pada bit h1

2.4Watermarking

Watermark merupakan sebuah informasi yang disisipkan pada media lain dengan tujuan melindungi media yang disisipi oleh informasi tersebut dari pembajakan, penyalahgunaan hak cipta, dan sebagainya. Watermarking adalah cara untuk menyisipkan watermark ke dalam media yang ingin dilindungi hak ciptanya.

Watermarking berkembang seiring perkembangan zaman dengan munculnya

watermarking pada media digital atau disebut dengan digital watermarking. Digital watermarking dapat diterapkan pada berbagai media digital seperti citra , file suara, dan video.

Salah satu prinsip dalam digital watermarking adalah informasi yang disisipkan pada media digital tidak boleh mempengaruhi kualitas media digital

tersebut. Sehingga pada digital watermarking terdapat persyaratan bahwa digital watermark atau informasi digital yang disisipkan dalam dalam media digital

haruslah imperceptible atau tidak terdeteksi oleh sistempenglihatan manusia (Human Visual System).


(25)

2.4.1 Jenis Digital Watermarking

Digital watermarking dapat dibagi menjadi empat jenis berdasarkan media digital

yang disisipi, yaitu: 1. Text Watermarking

Watermark disisipkan pada media digital jenis dokumen atau teks.

2. Image Watermarking

Watermark disisipkan pada citra digital.

3. Audio Watermarking

Watermark disisipkan pada file audio digital seperti mp3, mpeg, dan sebagainya. 4. Video Watermarking

Watermark disisipkan pada gambar bergerak atau disebut dengan video digital.

2.4.2 Watermarking Citra Digital

Secara umum proses watermarking pada citra dipaparkan pada Gambar 2.3.

Gambar 2.3 Penyisipan watermark.

Citra asli (original) dinotasikan dengan I, tanda atau signature dinotasikan dengan S, citra yang telah disisipkan watermark dinotasikan dengan I’ dan fungsi


(26)

I dan sebuah signature S, dan menghasilkan sebuah citra baru I’ yang telah memiliki

watermark. Hubungannya dituliskan sebagai berikut: E (I, S) = I’ ……..(2.13)

Citra ber-watermark yang dihasilkan dari proses watermarking tidak berbeda jauh secara visual dengan citra asalnya. Hal ini disebabkan karena pengubahan dari citra asal ke citra ber-watermark hanya berpengaruh sedikit terhadap perubahan warna dari citra, sehingga sistem penglihatan manusia (Human Visual System) tidak dapat melihat perubahan tersebut.

Proses watermarking perlu didukung dengan proses ekstrasi watermark dari citra ber-watermark. Proses ekstraksi ini bertujuan untuk mendapatkan kembali citra asal dan watermark yang disisipkan dalam citra tersebut. Umumnya proses ekstraksi melibatkan proses pembandingan citra asal dengan citra ber-watermark untuk mendapatkan watermark yang disisipkan, seperti yang ditunjukkan pada Gambar 2.4. Fungsi decoder D mengambil sebuah citra J (J dapat berupa citra yang memiliki watermark atau tidak) dan mengekstrak signature S’ dari citra tersebut. Proses ini melibatkan citra asli (I) yang telah diberi watermark oleh pemiliknya.


(27)

Signature S’ yang telah diekstrak kemudian akan dibandingkan dengan pemilik signature yang asli dengan sebuah fungsi comparator Cp dan menghasilkan sebuah output biner yang bernilai 1 jika cocok dan 0 jika sebaliknya.

Secara garis besar watermarking dibedakan menjadi dua yaitu: 1. Private Watermarking / Non Blind Watermarking.

Merupakan watermarking yang membutuhkan citra asli dan citra

ber-watermark untuk mengekstrak watermark. 2. Public Watermarking / Blind Watermarking.

Watermarking yang tidak membutuhkan citra asli untuk mengekstrak

watermark.

2.4.3 Domain Penerapan Watermarking Citra

Domain penerapan watermarking citra terbagi menjadi dua yaitu, domain spasial, penyisipan watermark dilakukan secara langsung ke dalam piksel citra, dan domain transformasiyang menyisipkan watermark kedalam koefisien transformasi. Contoh metode yang termasuk dalam domain spasial adalah LSB (Least Significant Bit) yang me-watermark sebuah citra dengan mengganti bit LSB-nya dengan bit data,

metode lain dalam domain spasial yaitu metode patchwork yang menanamkan

watermark sebesar 1 bitpada citra denganmenggunakan pendekatan statistik.

Untuk metode yang digunakan pada domain transformasi, biasanya berhubungan dengan transformasi sinyal yang digunakan dalam bidang matematika.

Watermark disisipkan ke dalam koefisien transformasi tergantung dari jenis transformasi yang digunakan. Beberapa jenis transformasi yang sering digunakan


(28)

yaitu Discrete Fourier Transform (DFT), Discrete Cosine Transform (DCT),

Discrete WaveletTransform (DWT), dan Discrete LaguerreTransform (DLT).

2.4.4 Kriteria Watermarking

Watermarking memiliki persyaratan atau kriteria tertentu yang harus dimiliki serta menentukan kualitas dari watermark tersebut. Watermarking yang baik setidaknya memiliki kriteria seperti berikut ini:

Robustness. Watermark harus memiliki ketahanan terhadap berbagai macam perubahan baik secara sengaja maupun tidak disengaja.

Imperceptible. Untuk menjamin kualitas dokumen yang ditandai, watermark

harus sebisa mungkin tidak tampak mempengaruhi dokumen asli,

Security. Pihak-pihak yang tidak memiliki otoritas tidak dapat mengetahui dan mengubah watermark yang disisipkan dalam dokumen. Idealnya, lebih bagus lagi jika watermark tidak dapat dideteksi oleh pihak-pihak tersebut. • No reference to original document. Pada aplikasi-aplikasi tertentu, sangatlah

penting proses pembacaan watermark dapat dilakukan tanpa membutuhkan dokumen digital asli (tanpa watermark).

Multiple watermark. Untuk aplikasi-aplikasi tertentu, terkadang dibutuhkan lebih dari satu watermark untuk memberikan proteksi yang lebih baik.

Unambiguity. Watermark harus mengandung informasi yang tidak ambigu mengenai kepemilikan hak cipta, pendistribusian dan sebagainya.

Dari faktor-faktor di atas, yang terpenting adalah robustness, imperceptibility


(29)

2.4.7 Aplikasi DigitalWatermarking

Digital watermarking memiliki beragam penggunaan dalam membantu kerja manusia, diantaranya:

a. Copyright-Labeling

Watemarking digunakan untuk menyembunyikan label hak cipta pada data

digital atau sebagai bukti autentik kepemilikan atas dokumen digital. b. Otentifikasi atau tamper proofing

Pemilik citra menyisipkan watermark ke dalam citra untuk membuktikan apakah citra yang disimpan atau yang beredar masih asli atau sudah berubah (tamper proofing).

c. Fingerprinting (traitor-tracing)

Pemilik citra mendistribusikan citra yang sama ke berbagai distributor. Sebelum didistribusikan, setiap citra disisipkan watermark yang berbeda untuk setiap distributor, seolah-olah cetak jari distributor terekam di dalam citra.

d. Aplikasi medis

Citra medis seperti foto sinar-X diberi watermark berupa ID pasien dengan maksud untuk memudahkan identifikasi pasien. Informasi lain yang dapat disisipkan adalah hasil diagnosis penyakit.

e. Covert communication

Untuk sistem komunikasi di negara-negara yang mana kriptografi tidak dibolehkan, watermarking dapat digunakan untuk menyisipkan informasi rahasia. Informasi tersebut disisipkan ke dalam citra, lalu dikirim melalui saluran publik, dan penerima mengekstrak informasi di dalamnya.


(30)

2.4.7 Serangan terhadap citra ber-watermark

Serangan terhadap citra ber-watermark umumnya bertujuan untuk

menghilangkan watermark yang disisipkan di dalam citra tersebut. Serangan ini disebut sebagai serangan yang disengaja. Serangan yang tidak disengaja biasanya berhubungan dengan pengubahan citra, pengubahan ini dapat berupa cropping,

rotation, kompresi, dan lain-lain.

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 maliciousattack umumnya pihak penyerang mencari algoritma penyisipan dan kunci yang digunakan saat penyisipan watermark. Serangan jenis malicious attack

ini tentunya tidak dapat diujikan karena algoritma dan kunci yang digunakan tentunya sudah diketahui oleh penyisip watermark.

Beberapa jenis standard attack adalah sebagai berikut: 1. Serangan geometris (geometrical attack)

Serangan geometris 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, dan sebagainya.


(31)

Kompresi sering dilakukan pada file multimedia seperti audio, video, dan citra.

Watermark yang disisipkan biasanya lebih tahan terhadap kompresi yang memiliki 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 disisipi watermark

menggunakan DWT (Discrete Wavelet Transform) lebih kuat terhadap kompresi JPEG2000.

3. Penambahan noise

Citra digital sangat rentan mendapatkan serangan berbagai macam jenis noise. Ada beberapa cara yang menyebabkan suatu noise dapat berada di dalam 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.

4. Filterisasi

Filterisasi umum digunakan pada citra. Beberapa filter yang sering digunakan yaitu gaussian filter, sharpening filter, dan sebagainya. Untuk menangani jenis serangan ini watermark dapat disisipkan pada frekuensi yang paling sedikit berubah jika terjadi kompresi, dengan memperkirakan filterisasi apa saja yang umum digunakan.


(32)

Cropping merupakan serangan yang umum karena banyak orang sering menginginkan bagian tertentu dari sebuah citra saja. Untuk dapat mengatasi serangan ini dapat dilakukan dengan cara menyebarkan watermark pada tempat-tempat yang memungkinkan terjadinya serangan.

2.5Watermarking menggunakan Daubechies Wavelet

Citra yang akan disisipkan watermark sebelumnya didekomposisi

menggunakan transformasi Daubechies wavelet, setelah watermark disisipkan pada citra selanjutnya dilakukan invers transformasi wavelet untuk membentuk citra ber-watermark. Struktur dekomposisi pada citra yang dilakukan sebanyak 4 level ditunjukkan pada Gambar 2.5.

Gambar 2.5 Struktur dekomposisi citra 4 level.

Proses dekomposisi membagi citra dalam tipa level menjadi komponen aproksimasi (LL) dan komponen detil yang terdiri dari komponen horizontal (HL), vertikal (LH), dan diagonal (HH).


(33)

Secara umum penyisipan watermark dilakukan dengan cara memodifikasi koefisien pada komponen LL, LH, HL, atau HH.

Metode yang dipakai untuk menyisipkan watermark adalah dengan metode

penambahan (additive) dengan menggunakan rumus:

L k

k w f f

f'= +

α

. . ( ), =1,...., ……(2.14)

Dimana

α

merupakan faktor yang mengontrol tingkat intensitas penyisipan

watermark, f adalah koefisien sinyal asal, f’ adalah koefisien sinyal asal yang telah dimodifikasi, dan w adalah bit watermark yang disisipkan pada sinyal asal.

Pada proses ekstraksi watermark dibutuhkan citra asli f dan citra uji

ber-watermark fr. Kedua citra tersebut didekomposisi kembali dengan transformasi

wavelet untuk mendapatkan komponen aproksimasi dan detilnya. Proses ekstraksi

watermark dilakukan dengan menggunakan rumus berikut:

) . (

) (

) (

f f f k

w r

r

α

= …….(2.15)

dimana wr adalah watermark yang telah diekstrak.

Setelah watermark diekstrak dilakukan perhitungan peak signal to-noise ratio

(PSNR) dan korelasi antara watermark asli dengan watermark hasil ekstraksi. PSNR didefinisikan melalui signal-to-noise ratio (SNR). SNR digunakan untuk mengukur tingkat kualitas sinyal. Nilai ini dihitung berdasarkan perbandingan antara sinyal dengan nilai derau. Kualitas sinyal berbanding lurus dengan dengan nilai SNR. Semakin besar nilai SNR semakinbaik kualitas sinyal yang dihasilkan. Penghitungan

peak signal to-noise ratio (PSNR) digunakan untuk membandingkan kualitas citra hasil rekonstruksi atau citra uji dengan citra asal. Nilai PSNR umumnya berkisar


(34)

antara 30 dan 50 dalam skala desibel (dB) dan dilaporkan dengan presisi sebanyak

dua desimal poin. Untuk menghitung PNSR, pertama yang dilakukan adalah

menghitung nilai Root Mean Squared Error (RMSE) dari citra hasil rekonstruksi dan citra asal Perhitungan dilakukan untuk mengetahui besarnya error yang dihasilkan dari proses penyisipan. Perhitungan dilakukan untuk setiap piksel dalam citra dengan menggunakan rumus:

N M

j i F j i f RMSE

*

)] , ( ) , (

[ − 2

= ………(2.16)

di mana f(i,j) adalah citra asal, F(i,j) adalah citra hasil rekonstruksi atau citra uji, dan

M*N adalah perkalian panjang dengan lebar citra.

Berdasarkan persamaan RMSE, maka dapat dilakukan perhitungan PSNR dengan rumus sebagai berikut:

=

RMSE

PSNR 20log10 255 ………..(2.17)

nilai 255 merupakan batas atas nilai piksel pada citra 8 bit (0-255).

2.6Matlab

Matlab (Matrix Laboratory) adalah bahasa pemrograman tingkat tinggi yang dikhususkan untuk komputasi teknis. Bahasa yang dikembangkan oleh MathWorks ini mengintegrasikan kemampuan komputasi, visualisasi dan pemrograman dalam sebuah lingkungan yang tunggal dan mudah digunakan. Aplikasi Matlab yang digunakan penulis adalah Matlab versi R2007a.. Pada aplikasi Matlab R2007a terdapat beberapa tipe data yang sering digunakan, yaitu :


(35)

adalah sekumpulan instruksi yang dapat dijalankan dalam sekali panggil. 2. *.mat

adalah format database sederhana yang berbentuk matriks. 3. *.fig

adalah format penyimpanan tampilan GUI (Graphical User Interface).

Setiap penyimpanan ataupun pemuatan variabel atau database pada Matlab selalu diletakkan pada atau diambil dari direktori yang sedang aktif (current directory).


(36)

BAB III

PERANCANGAN SISTEM

3.1Gambaran Umum Sistem

Perancangan akan diimplementasikan pada pembuatan aplikasi yang dinamakan “IMARK”. Sistem pada dasarnya ditujukan untuk proteksi hak cipta citra digital. Pada sistem ini otentikasi membutuhkan citra asli sehingga dikategorikan ke dalam blind watermarking. Sistem yang dirancang terdiri dari dua modus yaitu modus sisip dan modus ekstrak. Modus sisip bertujuan untuk menyisipkan

watermark ke dalam citra, sedangkan modus ekstrak bertujuan untuk mengekstrak

watermark dari dalam citra.

Dalam aplikasi ini citra yang digunakan terbatas dengan ukuran minimal 256x256 piksel dan maksimal 1024x768. Format citra yang digunakan adalah BMP. Terdapat dua buah tipe BMP, yaitu: BMP keluaran Microsoft dan OS/2. Format BMP yang digunakan dalam tugas akhir ini adalah format dari Microsoft..

3.2Program Utama

Secara umum, aplikasi dijalankan dalam diagram alir yang ditunjukkan pada Gambar 3.1. Sistem pertama kali meminta user memasukkan pilihan modus.

Pada modus sisip, user akan memasukkan citra asli yang akan diberi

watermark. Proses Hammcod meminta user memasukkan kode yang berupa

password yang terdiri dari 5-8 karakter. Hasil proses Hammcod yang berupa bit


(37)

hasil proses Wavsisip akan dihitung nilai PSNRnya melalui proses hitung PSNR untuk mengetahui kualitas citra yang dihasilkan.

Gambar 3.1 Diagram alir program utama.

Pada modus ekstrak, user diminta memasukkan citra asli yang ber-watermark

dan citra uji. Melalui proses Wavekstrak, watermark pada citra uji diekstrak dan kemudian dibandingkan dengan watermark pada citra asli. Proses Corr akan menghitung tingkat korelasi (correlation)watermark yang sedang dibandingkan.

3.3Sisip

3.3.1 Pilih citra

Citra yang akan diberi watermark adalah citra berformat bitmap dengan ukuran yang telah ditentukan.


(38)

3.3.2 Hammcod

Diagram alir prosesHammcod ditunjukkan pada Gambar 3.2.

Gambar 3.2 Diagram alir Hammcod

Pada proses ini, password yang dimasukkan oleh user terbatas pada huruf dan angka yang disimpan dalam variabel s. Password terlebih dahulu diubah ke bilangan desimal kemudian diubah lagi ke bilangan biner yang menghasilkan bit-bit password. Setiap satu karakter password menghasilkan 8 bit bilangan biner. Selanjutnya bit-bit

password akan dibagi dua sehingga setiap bagian terdiri dari 4 bit. Kemudian dari 4 bit tersebut akan dikodekan menjadi 8 bit menggunakan pengkodean Hamming (8,4). Selanjutnya kode Hamming diubah ke dalam bentuk sebuah urutan (sequence)


(39)

(k=1,….,L). Proses ini menghasilkan bit watermark yang disimpan dalam variabel

hcs. Proses pengkodean ditunjukkan pada Gambar 3.3.

Gambar 3.3 Diagram alir proses pengkodean 3.3.3 Wavsisip

Proses wavsisip dimulai dengan membaca citra asli yang akan disisipkan watermark. Komponen warna RGB pada citra dipisah menjadi komponen warna R, G, dan B. Kemudian dilanjutkan dengan proses dekomposisi pada komponen warna G. Diagram alir proses Wavsisip ditunjukkan pada Gambar 3.3.

Dekomposisi dilakukan dengan menggunakan wavelet Daubechies pada

persamaan 2.5 dan 2.6. Dengan memperlakukan citra sebagai sinyal, koefisien warna pada citra dikalikan dengan keofisien lowpass filter dan highpass filter untuk memperoleh sinyal aproksimasi dan sinyal detil. Pada Matlab, proses ini dilakukan oleh fungsi wavedec2.


(40)

Gambar 3.3 Proses wavsisip

Pada komponen warna G dilakukan dekomposisi sampai 4 level. Dekomposisi dilakukan oleh baris sintaks berikut:

dwtmode('per');

%Dekomposisi citra dengan wavelet sebanyak 4 level

[cg,sg]=wavedec2(g,4,'db4');%dekomposisi pada komponen G

Proses dekomposisi dilakukan untuk menghasilkan koefisien detil yang disimpan dalam variabel cg. Penyisipan dilakukan pada matriks horizontal, vertikal, dan diagonal dari koefisien detil cg. Untuk memperoleh matriks tersebut, keofisien

cg diekstrak dengan menggunakan baris sintaks berikut:

%ekstrak keofisien detail (horizontal, vertikal, dan diagonal) [cgh4,cgv4,cgd4] = detcoef2('all',cg,sg,4);


(41)

Ketiga matriks tersebut disatukan, diubah ke bentuk vektor baris dan disimpan dalam variabel highg. Proses penyisipan dilakukan dengan menggunakan metode penambahan (additive) dengan rumus sebagai berikut:

L k

k hcs n m f alpha n

m f n m

f( , )'= ( , )+ . ( , )* ( ), =1... ………(3.18)

)' , (m n

f adalah keofisien matriks hasil penyisipan, f(m,n)adalah koefisien sebelum penyisipan, hcs(k) adalah watermark, L adalah panjang watermark dan alpha adalah faktor pengontrol tingkat intensitas watermark yang disisipkan. Watermark

disisipkan pada seluruh elemen vektor highg.

Proses rekonstruksi wavelet dilakukan dengan menggunakan persamaan 2.8 pada vektor highg. Pada Matlab, persamaan 2.8 dilakukan oleh fungsi waverec2. Dari hasil rekonstruksi diperoleh komponen warna G yang sudah memiliki

watermark. Selanjutnya komponen tersebut disatukan kembali dengan komponen R dan B untuk menghasilkan citra ber-watermark.

3.3.4 Hitung PSNR

Perhitungan PSNR dilakukan pada citra iw1dan iw2 untuk mengetahui kualitas citra hasil penyisipan. Komponen RGB pada masing-masing citra dipisah menjadi R, G, dan B. Kemudian dilakukan perhitungan RMSE untuk setiap komponen warna. Dari hasil perhitungan diambil nilai rata-ratanya. Selanjutnya dilakukan perhitungan nilai PSNR berdasarkan nilai rata-rata yang telah diperoleh. Diagram alir proses perhitungan PSNR ditunjukkan pada Gambar 3.4.


(42)

Gambar 3.4 Diagram alir Hitung PSNR 3.4Ekstrak

3.4.1 Wavekstrak

Proses ini meminta input citra uji yang sudah memiliki watermark dan citra asli yang ber-watermark. Komponen warna G pada kedua citra didekomposisi menggunakan wavelet Daubechies untuk memperoleh koefisien detil.

Proses ekstraksi watermark dilakukan dengan membandingkan koefisien detil hasil dekomposisi kedua citra dengan koefisien detil citra asli pada saat penyisipan menggunakan rumus berikut:

)) , ( * (

)) , ( ) , ( ' ( ) , (

n m f alpha

n m f n m f n m

w = − …..(3.19)

)' , (m n


(43)

Diagram alir wavekstrak ditunjukkan pada gambar 3.5.

!

Gambar 3.5 Diagram alir proses wavekstrak

Hasil ekstrak watermark dari kedua citra direkonstruksi kembali menjadi komponen

warna G menggunakan fungsi waverec2 pada Matlab. Selanjutnya komponen warna

ini digabungkan untuk membentuk citra watermark yang disimpan dalam variabel

iw1 dan iw2.

3.4.2 Corr

Proses perhitungan corr (korelasi) dimulai dengan membaca citra watermark iw1 dan iw2. Perhitungan corr bertujuan untuk mengetahui tingkat kemiripan


(44)

watermark pada citra asli dengan watermark pada citra uji. Perhitungan correlation

dilakukan dengan menggunakan rumus berikut:

2 2

2 * 1

2 * 1 )

2 , 1 (

iw iw

iw iw iw

iw


(45)

BAB IV PENGUJIAN

4.1Analisa Hasil Pengujian

Serangkaian pengujian dilakukan dengan menggunakan tiga buah citra dengan ukuran yang sama yaitu citra beach, citra insect, dan citra pic. Dalam pengujian digunakan beberapa serangan standar untuk mengetahui tingkat ketahanan

watermark yang disisipkan pada citra. Beberapa serangan standar yang digunakan dalam pengujian meliputi: kompresi JPEG, blur, motion blur, noise, dan sharpen. Pengujian dilakukan dengan menggunakan 4 level transformasi wavelet Daubechies, koefisien alpha = 0.02 ,dan kode untuk watermark adalah echolima. Hasil pengujian ditunjukkan dengan nilai PSNR citra (PSNRc), PSNR watermark (PSNRw), dan nilai korelasi (correlation) watermark. Nilai PSNRw merupakan perbandingan nilai PSNR watermark asli dengan watermark yang berasal dari citra yang telah mengalami manipulasi. Ketahanan watermark dilihat dari nilai korelasi watermark

yang dihasilkan dari proses pengujian. Nilai PSNR citra hasil watermarking sebelum dilakukan serangan ditunjukkan pada tabel 4.1

Tabel 4.1 Nilai PSNR citra sebelum dilakukan serangan

Citra (dB) BMP

PSNRc

beach(512x512) 35.67

insect(512x512) 34.83

pic(512x512) 38.94


(46)

Gambar 4.1 Citra pic yang ber-watermark dan citra watermark

Gambar 4.2 Citra insect yang ber-watermark dan citra watermark

4.1.1 Serangan kompresi JPEG

Serangan kompresi JPEG dilakukan untuk menguji ketahanan watermark

terhadap proses kompresi citra. Pengujian kompresi JPEG dilakukan pada citra

ber-watermark dengan menggunakan skala 1:2 dan skala 1:5 yang menghasilkan citra terkompres dengan kualitas yang berbeda. Skala 1:2 memiliki tingkat kompresi yang lebih tinggi sehingga menghasilkan citra dengan kualitas lebih rendah dibandingkan dengan skala 1:5 yang memiliki tingkat kompresi yang lebih rendah. Citra hasil kompresi JPEG memiliki ukuran yang berbeda dengan citra asalnya. Hasil pengujian


(47)

Tabel 4.2 Hasil pengujian dengan kompresi JPEG skala 1:2

Citra BMP

size (kb)

JPEG size (kb)

JPEG

PSNRc PSNRw Corr

beach(512x512) 768 33 66.98 4.9 0.99

insect(512x512) 768 32 64.33 3.59 0.99

pic(512x512) 768 53 71.71 4.2 0.99

Tabel 4.3 Hasil pengujian dengan kompresi JPEG skala 1:5

Citra BMP

size (kb)

JPEG size (kb)

JPEG

PSNRc PSNRw Corr

beach(512x512) 768 54 62.70 0.34 0.99

insect(512x512) 768 44 57.18 1.00 0.99

pic(512x512) 768 87 67.77 3.31 0.99

Dari tabel 4.2 dan 4.3 menunjukkan nilai korelasi watermark pada citra yang dikompres tidak mengalami penurunan. Nilai PSNR watermark semakin meningkat pada kompresi skala 1:2. Perubahan nilai PSNR citra semakin naik pada kompresi skala 1:2, hal ini menunjukkan telah terjadi penurunan kualitas citra hasil kompresi. Tetapi dengan nilai korelasi yang tidak berubah maka watermark masih dapat diekstrak dari citra. Hasil pengujian menunjukkan watermark tahan terhadap kompresi JPEG.

4.1.2 Serangan noise

Pengujian serangan noise dilakukan dengan menggunakan noise sebesar 2%

dan 10%. Hasil menunjukkan untuk citra yang memiliki luminance (komponen yang

lebih terang) yang tinggi tidak kuat terhadap serangan noise, seperti pada citra beach. Citra dengan komposisi warna yang lebih gelap terlihat lebih tahan terhadap


(48)

serangan noise. Pengujian dilakukan untuk mengetahui tingkat ketahanan watermark

terhadap serangan noise. Hasil pengujian untuk serangan noise ditunjukkan pada Tabel 4.4.

Tabel 4.4 Hasil pengujian serangan noise

Citra Noise 2% Noise 10%

PSNRc PSNRw Corr PSNRc PSNRw Corr

beach 65.36 18.25 0.99 73.63 33.83 0.78

ins 64.89 2.41 0.99 73.25 14.8 0.99

pic 65.02 15.11 0.99 73.53 28.06 0.97

Dari Tabel 4.3 dapat dilihat bahwa nilai korelasi watermark menurun pada citra beach setelah diberi noise sebesar 10%. Citra hasil pengujian dengan serangan noise

ditunjukkan pada gambar 4.3 dan gambar 4.4.

Gambar 4.3 Citra pic dan citra watermark serangan noise sebesar 10%


(49)

4.1.3 Serangan Motion Blur

Pengujian serangan motion blur dilakukan dengan memberikan filter motion blur pada citra dengan jarak sebanyak 2 piksel dan 10 piksel dengan sudut sebesar 0 derajat. Hal ini memberikan efek berbayang pada citra dengan arah yang disesuaikan dengan sudut yang diberikan. Pengujian dilakukan untuk mengetahui apakah terjadi penurunan nilai korelasi setelah mengalami proses manipulasi. Hasil pengujian serangan motion blur ditunjukkan pada Tabel 4.5.

Tabel 4.5 Hasil pengujian serangan motion blur

Citra Motion blur 2 piksel Motion blur 10 piksel

PSNRc PSNRw Corr PSNRc PSNRw Corr

beach 60.99 4.0 0.99 67.80 5.2 0.99

insect 57.81 3.39 1.0 66.99 9.1 0.99

pic 67.96 1.89 0.99 71.71 0.8 0.99

Hasil pengujian menunjukkan watermark pada citra yang memiliki warna homogen rentan terhadap serangan motion blur, seperti pada citra beach dan citra insect. Citra dengan komposisi warna yang lebih banyak akan lebih tahan terhadap serangan ini. Hasil pengujian menunjukkan nilai korelasi tidak banyak berubah.

4.1.4 Serangan sharpen

Pengujian serangan sharpen dilakukan dengan melakukan filter sharpen pada citra. Proses ini meningkatkan kontras pada piksel warna yang berbatasan. Hasil pengujian ditunjukkan pada Tabel 4.6.

Tabel 4.6 Hasil pengujian serangan sharpen

Citra Sharpen


(50)

insect 58.60 8.98 1

pic 68.77 0.08 0.99

Hasil pengujian menunjukkan serangan sharpen tidak mempengaruhi nilai korelasi watermark.

4.1.5 Serangan blur

Pengujiian serangan blur dilakukan dengan menggunakan filter blur. Hasil pengujian menunjukkan nilai korelasi yang tidak banyak berubah setelah mengalami seranagn blur. Hasil pengujian ditunjukkan pada Tabel 4.7.

Tabel 4.7 Hasil serangan blur

Citra Sharpen

PSNRc PSNRw Corr

beach 60.03 8.10 0.99

insect 53.11 15.83 1


(51)

BAB V

KESIMPULAN DAN SARAN 5.1 Kesimpulan

Setelah dilakukan pembuatan dan pengujian dapat disimpulkan beberapa hal: 1. Metode penyisipan watermark menggunakan transformasi wavelet Daubechies

memberikan hasil rekonstruksi citra yang lebih baik tanpa menurunkan kualitas citra secara signifikan.

2. Informasi yang disisipkan pada citra bersifat invisible.

3. Keragaman warna dan tingkat kecerahan pada citra merupakan faktor

mempengaruhi ketahanan watermark pada proses manipulasi.

4. Watermark yang disisipkan tahan terhadap hampir semua serangan pada proses pengujian.

5.1 Saran

Beberapa saran yang berguna baik dalam menggunakan ataupun dalam mengembangkan aplikasi ini adalah sebagai berikut:

1. Setelah melalui proses pengujian, terdapat keterbatasan aplikasi dalam mengekstrak watermark pada citra yang telah mengalami proses resizing

(penskalaan ulang) dan cropping. Untuk itu dapat dikembangkan suatu metode ekstraksi yang dapat mengatasi proses resizing dan cropping.

2. Untuk pengembangan lebih lanjut dapat ditambahkan metode penyisipan pada komponen warna RGB secara bersamaan.


(52)

DAFTAR PUSTAKA

1. Arnold Michael, Schumucker Martin, Wolthusen D. Stephen. 2003. “Techniques

and Application of Digital Watermarking and Content Protection”. Noorwood: Arctech House.

2. Daubechies Ingrid. 1992. “Ten Lectures on Wavelets”. Philadelphia: SIAM 3. D Kundur, D Hatznikos. 1997. “A Robust Digital Image Watermarking Method

using Wavelet-Based Fusion”. Proceeding ICIP.

4. “Getting Started With Malab”. 2001. The MathWorks, Inc.

5. Juergen Seitz. 2005. “Digital Watermarking for Digital Media”. London: Information Science Publishing

6. Kaplan, Ian. “The Daubechies D4 Wavelet Transform”,

(http://www.bearcave.com/misl/misl_tech/wavelets/daubechies/.2002)

7. Neubauer Andre, Freudenberger Jurgen, K¨uhn Volker. 2007. ”Coding Theory: Algorithms Architectures and Application”. London: John Wiley & Sons Ltd, 8. Tinaja, “Exploring the BMP File Formats”,

(http://www.tinaja.com/expbmp.html)


(53)

Lampiran A Source Code sisip.m function [iw,highgo,PSNRc,corr]=sisip(i); r=i(:,:,1); g=i(:,:,2); b=i(:,:,3);

s = input('Password: ','s') %input password [hcs,z] = hammcod(s);

%menyisipkan watermark [iw,highgo] = wavsisip(i,z,hcs); imwrite(iw,'imgw.bmp'); %Menghitung PSNR PSNRc=psnr(i,iw); corr=cor(i,iw); wavsisip.m function [iw,highgo]=wavsisip(i,z,hcs);

%Penyisipan watermark dilakukan pada keofisien detail

%komponen warna hijau (green) citra setelah proses dekomposisi. id = double(i);

r=id(:,:,1); g=id(:,:,2); b=id(:,:,3); [m,n]=size(r);

%Dekomposisi citra dengan wavelet sebanyak 4 level dwtmode('per');

[cr,sr]=wavedec2(r,4,'db4');%dekomposisi komopnen r [cg,sg]=wavedec2(g,4,'db4');

[cb,sb]=wavedec2(b,4,'db4');

%ekstrak keofisien detail(horizontal, vertikal, dan diagonal) pada level 4 [crh4,crv4,crd4] = detcoef2('all',cr,sr,4);

[cgh4,cgv4,cgd4] = detcoef2('all',cg,sg,4); [cbh4,cbv4,cbd4] = detcoef2('all',cb,sb,4);

l=prod(size(cgh4));%tetapkan ukuran matriks yang akan disipipkan watermark highg=cg(l+1:end);%matriks yang akan disispkan

highgo=highg;%simpan sebagai variabel highgo lowg=cg(1:l);%matriks aproksimasi

%penyisipan watermark [m1,n1] = size(highg); alpha = 0.02;% f=1;

for i = 1:n1;

if hcs(1,f)==1 %urutan sequence kode watermark if highg(1,i)<highg(1,i)+highg(1,i)*alpha;

highg(1,i)=highg(1,i)+highg(1,i)*alpha*hcs(1,f); end

else if hcs(1,f)==-1

if highg(1,i)>highg(1,i)+highg(1,i)*alpha;

highg(1,i)=highg(1,i)+highg(1,i)*alpha*hcs(1,f); end


(54)

end f=f+1;

if f>z %jika mencapai batas ulang kembali f=1;

end end

cgmod=[lowg highg];

% inverse wavelet = rekonstruksi wavelet rw = waverec2(cr,sr,'db4');

gw = waverec2(cgmod,sg,'db4'); bw = waverec2(cb,sb,'db4');

imgw=cat(3,rw,gw,bw);%gabungkan ketiga matriks imw=uint8(imgw);

iw=imw;

pnsr.m

function [PSNR]=psnr(i,iu) %menghitung nilai PSNR

ir=i(:,:,1);%pisahkan komponen warna citra asli ig=i(:,:,2);

ib=i(:,:,3);

irw=iu(:,:,1);%pisahkan komponen warna citra berwatermark igw=iu(:,:,2);

ibw=iu(:,:,3); [m,n]=size(ir);

RMSEr=((sum(sum((ir-irw).*(ir-irw))))/m*n)^0.5;%hitung nilai RMSE RMSEg=((sum(sum((ig-igw).*(ig-igw))))/m*n)^0.5;

RMSEb=((sum(sum((ib-ibw).*(ib-ibw))))/m*n)^0.5;

RMSE=(RMSEr+RMSEg+RMSEb)/3 ; %ambil nilai rata-rata PSNR=abs(20*log10(1/RMSE));%hitung nilai PSNR

ekstrak.m

function [wtr1,wtr2,sim,corr,PSNRc,PSNRw]=ekstrak(i,iu) r=iu(:,:,1);

g=iu(:,:,2); b=iu(:,:,3);

s = input('Password: ','s') %input password [hcs,z]=hammcod(s);

%---

[wtr2,iurw,iugw,iubw] = wavekstrak(i,highgo);% fungsi ekstrak watermark citra asli igw=iugw; %set variabel igw

wtr1=wtr2;

%---

[wtr2,iurw,iugw,iubw] = wavekstrak(iu,highgo);% fungsi ekstrak watermark citra uji %---

imwrite(irw,'watermark1.tif'); %simpan citra watermark imwrite(iurw,'watermark2.tif');

[sim,corr]=simcorr(igw,iugw);

PSNRc=psnr(i,iu); %hitung PSNR citra

PSNRw=psnrw(igw,iugw);% hitung PSNR watermark

wavekstrak.m

function [wtr2,iurw,iugw,iubw] = wavekstrak(iu,highgo) %iw=imread('imgw.bmp'); %baca citra yang ber-watermark


(55)

[m,n]=size(id(:,:,1)); ru=id(:,:,1);

gu=id(:,:,2); bu=id(:,:,3);

dwtmode('per');

%Dekomposisi citra dengan wavelet sebanyak 4 level [cru,sru]=wavedec2(ru,4,'db4');

[cgu,sgu]=wavedec2(gu,4,'db4'); [cbu,sbu]=wavedec2(ru,4,'db4');

% ekstrak keofisien detail(horizontal, vertikal, dan diagonal) [crh4u,crv4u,crd4u] = detcoef2('all',cru,sru,4);

[cgh4u,cgv4u,cgd4u] = detcoef2('all',cgu,sgu,4); [cbh4u,cbv4u,cbd4u] = detcoef2('all',cbu,sbu,4); l=prod(size(crh4u));

highgu=cgu(l+1:end);%tetapkan matriks yang akan disisipkan k=prod(size(highgu));

lowgu=cgu(1:l); wgu=zeros(1,k); %extract watermark alpha=0.01; for i=1:k

if (highgo(1,k)>0)||(highgo(1,k)<0)

wgu(1,k)=(highgu(1,k)-highgo(1,k))/(alpha*highgo(1,k)); end

end

cgumod=[lowgu wgu]; %rekonstruksi wavelet

iurw = waverec2(cru,sru,'db4'); iugw = waverec2(cgumod,sgu,'db4'); iubw = waverec2(cbu,sbu,'db4');

iuw=cat(3,iurw,iugw,iubw); wtr2=uint8(iuw);

corr.m

function[sim,corr]=simcorr(igw,iugw) corr=corr2(igw,iugw); %hitung nilai korelasi


(1)

insect

58.60

8.98

1

pic

68.77

0.08

0.99

Hasil pengujian menunjukkan serangan

sharpen

tidak mempengaruhi nilai

korelasi

watermark

.

4.1.5

Serangan

blur

Pengujiian serangan

blur

dilakukan dengan menggunakan filter

blur

. Hasil

pengujian menunjukkan nilai korelasi yang tidak banyak berubah setelah mengalami

seranagn

blur

. Hasil pengujian ditunjukkan pada Tabel 4.7.

Tabel 4.7 Hasil serangan

blur

Citra

Sharpen

PSNRc

PSNRw

Corr

beach

60.03

8.10

0.99

insect

53.11

15.83

1


(2)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Setelah dilakukan pembuatan dan pengujian dapat disimpulkan beberapa hal:

1.

Metode penyisipan

watermark

menggunakan transformasi

wavelet

Daubechies

memberikan hasil rekonstruksi citra yang lebih baik tanpa menurunkan kualitas

citra secara signifikan.

2.

Informasi yang disisipkan pada citra bersifat

invisible

.

3.

Keragaman warna dan tingkat kecerahan pada citra merupakan faktor

mempengaruhi ketahanan

watermark

pada proses manipulasi.

4.

Watermark

yang disisipkan tahan terhadap hampir semua serangan pada proses

pengujian.

5.1 Saran

Beberapa saran yang berguna baik dalam menggunakan ataupun dalam

mengembangkan aplikasi ini adalah sebagai berikut:

1.

Setelah melalui proses pengujian, terdapat keterbatasan aplikasi dalam

mengekstrak

watermark

pada citra yang telah mengalami proses

resizing

(penskalaan ulang) dan

cropping

. Untuk itu dapat dikembangkan suatu metode

ekstraksi yang dapat mengatasi proses

resizing

dan

cropping

.

2.

Untuk pengembangan lebih lanjut dapat ditambahkan metode penyisipan pada

komponen warna RGB secara bersamaan.


(3)

DAFTAR PUSTAKA

1.

Arnold Michael, Schumucker Martin, Wolthusen D. Stephen. 2003. “

Techniques

and Application of Digital Watermarking and Content Protection

”. Noorwood:

Arctech House.

2.

Daubechies Ingrid. 1992. “

Ten Lectures on Wavelets

”. Philadelphia: SIAM

3.

D Kundur, D Hatznikos. 1997. “

A Robust Digital Image Watermarking Method

using Wavelet-Based Fusion

”. Proceeding ICIP.

4.

Getting Started With Malab

”. 2001. The MathWorks, Inc.

5.

Juergen Seitz. 2005. “

Digital Watermarking for Digital Media

”. London:

Information Science Publishing

6.

Kaplan, Ian. “The

Daubechies D4 Wavelet Transform

”,

(http://www.bearcave.com/misl/misl_tech/wavelets/daubechies/.2002)

7.

Neubauer Andre, Freudenberger Jurgen, K¨uhn Volker. 2007. ”

Coding Theory:

Algorithms Architectures and Application

”. London: John Wiley & Sons Ltd,

8.

Tinaja, “

Exploring the BMP File Formats

”,

(http://www.tinaja.com/expbmp.html)


(4)

Lampiran A

Source Code

sisip.m function [iw,highgo,PSNRc,corr]=sisip(i); r=i(:,:,1); g=i(:,:,2); b=i(:,:,3);

s = input('Password: ','s') %input password [hcs,z] = hammcod(s);

%menyisipkan watermark [iw,highgo] = wavsisip(i,z,hcs); imwrite(iw,'imgw.bmp'); %Menghitung PSNR PSNRc=psnr(i,iw); corr=cor(i,iw); wavsisip.m function [iw,highgo]=wavsisip(i,z,hcs);

%Penyisipan watermark dilakukan pada keofisien detail

%komponen warna hijau (green) citra setelah proses dekomposisi. id = double(i);

r=id(:,:,1); g=id(:,:,2); b=id(:,:,3); [m,n]=size(r);

%Dekomposisi citra dengan wavelet sebanyak 4 level dwtmode('per');

[cr,sr]=wavedec2(r,4,'db4');%dekomposisi komopnen r [cg,sg]=wavedec2(g,4,'db4');

[cb,sb]=wavedec2(b,4,'db4');

%ekstrak keofisien detail(horizontal, vertikal, dan diagonal) pada level 4 [crh4,crv4,crd4] = detcoef2('all',cr,sr,4);

[cgh4,cgv4,cgd4] = detcoef2('all',cg,sg,4); [cbh4,cbv4,cbd4] = detcoef2('all',cb,sb,4);

l=prod(size(cgh4));%tetapkan ukuran matriks yang akan disipipkan watermark highg=cg(l+1:end);%matriks yang akan disispkan

highgo=highg;%simpan sebagai variabel highgo lowg=cg(1:l);%matriks aproksimasi

%penyisipan watermark [m1,n1] = size(highg); alpha = 0.02;% f=1;

for i = 1:n1;

if hcs(1,f)==1 %urutan sequence kode watermark if highg(1,i)<highg(1,i)+highg(1,i)*alpha;

highg(1,i)=highg(1,i)+highg(1,i)*alpha*hcs(1,f); end

else if hcs(1,f)==-1

if highg(1,i)>highg(1,i)+highg(1,i)*alpha;

highg(1,i)=highg(1,i)+highg(1,i)*alpha*hcs(1,f); end


(5)

end f=f+1;

if f>z %jika mencapai batas ulang kembali f=1;

end end

cgmod=[lowg highg];

% inverse wavelet = rekonstruksi wavelet rw = waverec2(cr,sr,'db4');

gw = waverec2(cgmod,sg,'db4'); bw = waverec2(cb,sb,'db4');

imgw=cat(3,rw,gw,bw);%gabungkan ketiga matriks imw=uint8(imgw);

iw=imw;

pnsr.m

function [PSNR]=psnr(i,iu) %menghitung nilai PSNR

ir=i(:,:,1);%pisahkan komponen warna citra asli ig=i(:,:,2);

ib=i(:,:,3);

irw=iu(:,:,1);%pisahkan komponen warna citra berwatermark igw=iu(:,:,2);

ibw=iu(:,:,3); [m,n]=size(ir);

RMSEr=((sum(sum((ir-irw).*(ir-irw))))/m*n)^0.5;%hitung nilai RMSE RMSEg=((sum(sum((ig-igw).*(ig-igw))))/m*n)^0.5;

RMSEb=((sum(sum((ib-ibw).*(ib-ibw))))/m*n)^0.5;

RMSE=(RMSEr+RMSEg+RMSEb)/3 ; %ambil nilai rata-rata PSNR=abs(20*log10(1/RMSE));%hitung nilai PSNR

ekstrak.m

function [wtr1,wtr2,sim,corr,PSNRc,PSNRw]=ekstrak(i,iu) r=iu(:,:,1);

g=iu(:,:,2); b=iu(:,:,3);

s = input('Password: ','s') %input password [hcs,z]=hammcod(s);

%---

[wtr2,iurw,iugw,iubw] = wavekstrak(i,highgo);% fungsi ekstrak watermark citra asli igw=iugw; %set variabel igw

wtr1=wtr2;

%---

[wtr2,iurw,iugw,iubw] = wavekstrak(iu,highgo);% fungsi ekstrak watermark citra uji %---

imwrite(irw,'watermark1.tif'); %simpan citra watermark imwrite(iurw,'watermark2.tif');

[sim,corr]=simcorr(igw,iugw);

PSNRc=psnr(i,iu); %hitung PSNR citra

PSNRw=psnrw(igw,iugw);% hitung PSNR watermark

wavekstrak.m

function [wtr2,iurw,iugw,iubw] = wavekstrak(iu,highgo) %iw=imread('imgw.bmp'); %baca citra yang ber-watermark id = double(iu);


(6)

[m,n]=size(id(:,:,1)); ru=id(:,:,1);

gu=id(:,:,2); bu=id(:,:,3);

dwtmode('per');

%Dekomposisi citra dengan wavelet sebanyak 4 level [cru,sru]=wavedec2(ru,4,'db4');

[cgu,sgu]=wavedec2(gu,4,'db4'); [cbu,sbu]=wavedec2(ru,4,'db4');

% ekstrak keofisien detail(horizontal, vertikal, dan diagonal) [crh4u,crv4u,crd4u] = detcoef2('all',cru,sru,4);

[cgh4u,cgv4u,cgd4u] = detcoef2('all',cgu,sgu,4); [cbh4u,cbv4u,cbd4u] = detcoef2('all',cbu,sbu,4); l=prod(size(crh4u));

highgu=cgu(l+1:end);%tetapkan matriks yang akan disisipkan k=prod(size(highgu));

lowgu=cgu(1:l); wgu=zeros(1,k); %extract watermark alpha=0.01; for i=1:k

if (highgo(1,k)>0)||(highgo(1,k)<0)

wgu(1,k)=(highgu(1,k)-highgo(1,k))/(alpha*highgo(1,k)); end

end

cgumod=[lowgu wgu]; %rekonstruksi wavelet

iurw = waverec2(cru,sru,'db4'); iugw = waverec2(cgumod,sgu,'db4'); iubw = waverec2(cbu,sbu,'db4');

iuw=cat(3,iurw,iugw,iubw); wtr2=uint8(iuw);

corr.m

function[sim,corr]=simcorr(igw,iugw) corr=corr2(igw,iugw); %hitung nilai korelasi