Anda di halaman 1dari 72

Konsep

Kompresi citra adalah seni dan ilmu untuk mengurangi jumlah


data yang dibutuhkan untuk merepresentasikan citra.
Menjadi salah salah satu faktor kesuksesan teknologi digital.

Film pada dasarnya urutan frame dimana setiap frame adalah


citra full-color, setiap video player harus memainkan gerakan
frame 30 fps.
Maka Standart Definition (SD) digital harus mengakses:
30

frame
pixels
byte
(720 480)
3
31,104,000 bytes / sec
sec
frame
pixel

Dan untuk durasi film 2 jam menjadi:


31,104,000

bytes
sec
602
2hour 2.24 1011 bytes
sec
hour

Atau sekitar 224 GB (gigabytes) data, atau sekitar 27 keping


DVD dual-layer 8.5 GB (asumsi DVD 12 cm)

Konsep

Untuk menjadi 1 keping DVD, maka harus dikompres


dengan faktor sekitar 26.3.
Kompresi yang lebih tinggi harus dilakukan untuk dapat
menyajikan resolusi film 1980x1080x24 bits/image.

Keuntungan kompresi:
Ukuran citra menjadi lebih compact.
Transmisi di jaringan menjadi lebih cepat.

Kerugian:
Ada waktu yang dibutuhkan untuk melakukan encode dan
decode.
Kualitas citra menjadi turun (meski sulit terdeteksi mata).

Kompresi citra berakar dari topik pembicaraan kompresi


data
Kompresi data: proses pengurangan jumlah data yang
dibutuhkan untuk merepresentasikan kuantitas informasi.
3

Konsep

Kompresi data dapat terjadi ketika ada sejumlah


representasi yang selalu berulang dalam data (data
redundan).
Semakin banyak data redundan biasanya semakin besar
rasio kompresi yang didapat.

Simbol b menyatakan jumlah bit (unit pembawa


informasi) yang digunakan untuk representasi data asli,
dan b untuk hasil kompresi.
Ada 2 kuantitas kaitannya dengan kompresi: rasio
kompresi dan data redundan relatif.

Rasio kompresi:

b
C
b'

Rasio 10 (atau 10:1) artinya 10 bit data asli untuk setiap 1 bit data
dalam representasinya.

Data redundan relatif: R 1 1

C
4

Jenis representasi citra


Jenis

Keterangan

TIFF

Tagged Image File Format. Format file yang fleksibel dan didukung
oleh banyak standart kompresi, seperti LZW.

PNG

Portable Network Graphic. Format file losslessly compressed citra


full color dengan transparansi (bisa mencapai 48 bit/piksel)

BMP

Windows Bitmap. Format umum untuk citra tidak terkompres.

JPEG

Joint Photographic Experts Group, standart untuk kualitas citra


foto. Lossy baseline coding system. Menggunakan teknik DCT blok
8x8, Huffman, Golomb, dan Run-Length

MPEG-1

Motion Pictures Expert Group. Standart untuk CD-ROM. Didukung


semua aplikasi komputer dan DVD player. Didukung kompresi
Huffman, Arithmetic, Run-Length, dsb.

GIF

Graphic Interchange Format. Format file yang menggunakan teknik


LZW. Banyak digunakan untuk file animasi kecil di web atau film
dengan resolusi kecil

HDV

High Definition Video. Pengembangan DV untuk televisi HD yang


menggunakan kompresi mirip MPEG-2, termasuk predictive coding
5

Huffman Coding
Didasarkan pada prinsip pohon Huffman
(Huffman, 1952).
Metode cerdas untuk membangun sebuah
kamus kompresi

Yang dalam beberapa arti optimal untuk data yang


dihadapi.

Metode ini menggunakan karakter dan


probabilitas sebagai masukan dengan setiap
karakter yang mungkin muncul dalam data.
Semakin tinggi probabilitas maka akan semakin
pendek kode-urutan yang didapat, begitu pula
sebaliknya.

Kamus kompresi ekivalen dengan pohon


Huffman.
6

Huffman Coding Trees


Salah satu cara pengkodean dapat
dilakukan berdasarkan frekuensi (bobot)
kemunculan karakter
Variable-length coding
Membangun tree dengan minimum external
path weight Huffman Coding Tree
Setiap karakter dikodekan dalam bentuk
kumpulan bit berdasarkan Huffman
(Coding) tree yang terbentuk

Frekuensi Kemunculan Huruf:


contoh

Huffman Coding Tree Construction

Diberikan frekuensi beberapa huruf


(dari tabel di atas):

Bentuklah sebuah HCT untuk


himpunan karakter di atas

HCT Construction Process:


First, create a collection of n initial Huffman trees,
each of which is a single leaf node containing one
of the letters.
Put the n partial trees onto a min-heap (a priority
queue) organized by weight (frequency).
Next, remove the first two trees (the ones with
lowest weight) from the heap. Join these two trees
together to create a new tree whose root has the
two trees as children, and whose weight is the sum
of the weights of the two trees. Put this new tree
back on the heap.
This process is repeated until all of the partial
Huffman trees have been combined into one

Huffman Coding Tree Construction (1)

Z
2

K
7

M
24

C
32

U
37

D
42

L
42

E
120

Huffman Tree Construction (2)

12

Huffman Tree Construction (3)

13

Assigning Codes

14

Coding

Proses coding pesan dilakukan dengan


cara mengkodekan setiap huruf
berdasarkan Huffman tree yang terbentuk
(lihat tabel)

Contoh:
Code untuk DEED: 10100101
MUCK: 111111001110111101
15

Decoding

Decoding pesan dilakukan dengan


cara melihat bit-bit pada string code
dari kiri dan kanan dengan
menggunakan Huffman tree (mulai
dari root) sampai sebuah huruf
didekodekan.

Decoding: contoh

Decode 10100101:
101 = D
0=E
0=E
101 = D

Decode 1011001110111101

101 = D
100 = U
1110 = C
111101 = K

Huffman Coding

Karakter disimbolkan daun dan


mengikuti tepi dari atas ke bawah untuk
mendapatkan kode huruf tertentu.
Untuk membangun pohon yang "optimal"
untuk alfabet tertentu dan probabilitas
diberikan algoritma berikut:
1.
2.
3.
4.
5.

Buat daftar node. Setiap node berisi


simbol dan probabilitasnya
Cari dua node dengan probabilitas
terkecil
Jadikan keduanya sebagai anak node
baru yang mempunyai probabilitas dari
penjumlahan probabilitas keduanya.
Lepaskan dua anak tadi dari daftar dan
tambahkan node parent yang baru tadi
kedalam daftar.
Ulangi langkah 2-4 sampai daftar hanya
berisi satu node.
18

Intensitas

Contoh
Citra asli

1
1
3
3

6
0
1
1

7
3
3
5

7
5
5
5

7
5
4
4

Representasi
b = 1 byte x 20 piksel = 20 byte = 160 bit

Jumlah

Probabilitas

0.05

0.2

0.2

0.1

0.25

0.05

0.15

Langkah 1

Langkah 2

19

Langkah 3

Langkah 4

Langkah 5

Langkah 6

21

Langkah 7

22

Langkah 8

23

Kamus yang didapat


Intensi
tas

Probabili
tas

Encoding

0.05

000110

0.2

11

000111

0.2

10

0.1

0000

0.25

01

0.05

00010

0.15

001

Lavg = ((0.05)6+(0.2) 2+(0) 6 +(0.2) 2


+(0.1) 4 +(0.25) 2 +(0.05) 5+(0.15) 3)
= (0.3+0.4+0+0.4+0.4+0.5 +0.25+0.45)
= 2.7 bits/piksel
b = Lavg jumlah_piksel
= 2.720 = 54 bit
24

Citra asli

1
1
3
3

6
0
1
1

Citra setelah dikompres

7
3
3
5

7
5
5
5

7
5
4
4

b =160 bit

11 00010 001 001 001


11 000110 10 01 01
10
11
10 01 0000
10
11
01 01 0000
b' = 54 bit

Rasio kompresi

b 160
C
2.96
b' 54
Data redundan relatif

1
1
R 1 1
0.6625 66.25%
C
2.96

25

Huffman di matlab

Fungsi untuk membuat kamus:


[dict,avglen] = huffmandict(symbols,p)
Dimana symbols adalah vektor intensitas, p
adalah probabilitas intensitas dalam citra, dict
adalah cell array berisi kamus huffman, avglen
adalah panjag rata-rata code word.

Fungsi untuk encode


comp = huffmanenco(sig,dict)
Dimana sig adalah data input (citra asli), comp
adalah vektor yang berisi code word hasil
encode.

Fungsi untuk decode


dsig = huffmandeco(comp,dict)
26

Source code contoh


f = [
1
6
7
7
7
1
0
3
5
5
3
1
3
5
4
3
1
5
5
4
];
simbol = [0:7];
for i=0:7
idx = find(f==i);
p(i+1) = size(idx,1);
end
[m,n] = size(f);
p = p./(m*n);
dict = huffmandict(simbol,p); % Create the dictionary.
sig = reshape(f,m*n,1);
hcode = huffmanenco(sig,dict); % Encode the data.
dhsig = huffmandeco(hcode,dict); % Decode the code.
dh = reshape(f,m,n);

27

Hasil kompresi
11 00010 001 001 001
11 000110 10 01 01
10
11
10 01 0000
10
11
01 01 0000

>> hcode'
ans =
Columns 1 through 14
1

Columns 15 through 28
0

Columns 29 through 42

Columns 43 through 54
0

28

Block Truncate Coding (BTC)

Block Truncate Coding (BTC) merupakan salah satu


jenis teknik lossy image compression.

BTC membagi citra asli kedalam blok kemudian


menggunakan quantiser untuk mengurangi jumlah gray
level dalam setiap blok dengan tetap menjaga mean dan
standar deviasi.

Menggunakan sub-blok 4x4 memberikan rasio kompresi


4:1 dengan asumsi nilai integer 8-bit digunakan selama
transmisi atau penyimpanan.
Blok yang lebih besar akan memberikan kompresi yang
lebih besar (nilai a dan b menyebar ke lebih banyak
piksel) tetapi dengan resiko mengurangi kualitas citra asli.

29

Prosedur encoding BTC

Piksel citra 256x256 dibagi kedalam blok, biasanya 4x4.

Untuk setiap blok, dihitung Mean dan Standar Deviasi


(piksel dalam blok sama mempunyai Mean dan Standar
Deviasi yang sama dalam citra terkompresi).

Setiap nilai dalam blok ditransformasi menjadi dua level


nilai (0 atau 1), dengan formula:

Dimana x(i,j) adalah piksel dalam blok citra asli, y(i,j)


adalah piksel dalam blok citra terkompresi
x adalah rata-rata, nilai juga disimpan.
30

Prosedur decoding BTC


Setiap blok berisi 16 bit (formasi 4x4) bersama dengan
Mean (8 bit) dan Standar Devisasi (8 bit).
Rekonstruksi dibuat berdasarkan nilai a dan b :

q
a x
mq

q
b x
mq

Dimana standar deviasi,


m jumlah piksel dalam 1 blok,
q adalah jumlah piksel dalam blok yang lebih besar dari

Rekonstruksi citra menggunakan formula:

31

Contoh
encoding

Salah satu blok (4x4)


dalam citra asli

Mean = 241.875
Standar Deviasi = 4.5
decoding

Salah satu blok (4x4)


dalam citra hasil decoding

a 241.875 4.5

9
236.7725
16 9

b 241.875 4.5

9
246.9775
16 9
32

Block Truncate Coding

Pada satu blok 4x4 citra asli


b = 16 piksel x 8 bit = 128 bit

Pada satu blok 4x4 citra hasil kompresi


b = 16 bit + 8 bit (Mean) + 8 bit (StDev) = 32

Rasio kompresi:

b 128
C
4
b' 32

Data redundan relatif:

1
1
R 1 1 0.75 75%
C
4
33

LZW Coding

Teknik sebelumnya berfokus pada


pembuangan coding redundan. Dalam LZW
(Lempel-Ziv-Welch) juga memperhatikan
error free compression.

Memungkinkan transformasi fixed-length


code word ke variable length sequence.

Pembentukan kamus pada saat encoding


dilakukan dengan membaca secara
sekuensial piksel-piksel. Untuk urutan yang
tidak ada dalam kamus, maka akan
ditentukan code wordnya.
34

LZW Coding

Jika 0-255 (8 bit) digunakan untuk code word


intensitas citra asli, maka code word baru
bentukannya dimulai dari 256 (9 bit).

Menggunakan code word 9 bit (secara


konsep menggantikan 8 + 8 dengan 9).

Jika ukuran kamus terlalu kecil berpengaruh


pada kemampuan deteksi sekuens level
intensitas jadi lemah, tapi jika terlalu besar
akan melemahkan performa kompresi.
35

Contoh 1

Citra asli
Rasio kompresi:

b 128

1.1852
b' 108

Data redundan relatif:

1
1
1
C
1.1852
0.1563 15.63%

R 1

Piksel
Rangkaian
yang
Output
saat ini
sedang encode
diakui
diproses
245
245
239
245
239
249
239
249
239
249
239
245
239
245
245
245
245
239
245-239
235
256
235
245
235
245
245
245-245
239
260
239
245
239-245
245
259
245
235
245
235
245
235
245
239
245-239
256

Code
Word

Entry kamus

256
257
258
259
260

245-239
239-249
249-239
239-245
245-245

261
262

245-239-235
235-245

263

245-245-239

264
265
266

239-245-245
245-235
235-245

b = 12x9 = 108 bit


36

Contoh 2

Citra asli

Rasio kompresi:

b 128

1.42
b' 90

Data redundan relatif:

1
1
R 1 1
C
1.42
0.2969 29.69%

b = 10x9 = 90 bit

37

Pengantar: Prisoners Problem

Bobi

Alisa

Fred

Pesan rahasia: Lari jam satu


5/7/2014

38

Lanjutan

Bagaimana Bobi mengirim pesan rahasia


kepada Alisa tanpa diketahui oleh Fred?

Alternatif 1: mengenkripsinya
xjT#9uvmY!rc$
Fred pasti curiga!
5/7/2014

39

Lanjutan

Alternatif 2: menyembunyikannya di
dalam pesan lain
Lupakan asal rumor itu jangan ambil
manfaatnya setelah aku tutup usia
Fred tidak akan curiga!

Information hiding dengan


steganografi!
5/7/2014

40

Pesan (message)
1. Teks
3. Gambar (image)
Torang semua bersodara
2. Audio
4. Video

5/7/2014

41

Properti Steganografi
1.

Embedded message (hiddentext): pesan


yang
disembunyikan.

2.

Cover-object (covertext): pesan yang


digunakan untuk menyembunyikan
embedded message.

3.

Stego-object (stegotext): pesan yang


sudah berisi pesan embedded message.
5/7/2014

42

Properti Steganografi

covertext

hiddentext

Encoding
(embeddin)

covertext

stegotext

Decoding
(extraction)

key

hiddentext

key

5/7/2014

43

Contoh-contoh:
Lupakan asal rumor itu jangan ambil manfaatnya setelah
aku tutup usia
Covertext:
upakan sal umor tu angan mbil anfaatnya etelah ku utup
sia

Hiddentext:
Lari jam satu
Stegotext:
Lupakan asal rumor itu jangan ambil manfaatnya setelah
aku tutup usia

5/7/2014

44

Steganografi

(steganography)
adalah teknik menyembunyikan
data rahasia di dalam wadah
(media)
digital,
sehingga
keberadaan data rahasia tersebut
tidak diketahui oleh orang.
Steganografi membutuhkan dua
properti : wadah penampung dan
data
rahasia
yang
akan
disembunyikan.
5/7/2014

45

Steganografi digital menggunakan media


digital sebagai wadah penampung,
misalnya citra suara (audio), teks, dan
video.
Data rahasia yang disembunyikan juga
dapat berupa citra, suara, teks, atau video.
Penggunaan steganografi antara lain
bertujuan untuk menyamarkan eksistensi
(keberadaan) data rahasia, sehingga sulit
dideteksi, dan melindungi hak cipta suatu
produk.
5/7/2014

46

Steganografi dapat dipandang sebagai


kelanjutan
kriptografi.
Jika
pada
kriptografi data yang telah disandikan
(chipertext) tetap tersedia, maka
dengan steganografi chiperteks dapat
disembunyikan sehingga pihak ketiga
tidak mengetahui keberadaannya.
Data rahasia yang disembunyikan
dapat diekstraksi kembali persis sama
seperti keadaan aslinya.

5/7/2014

47

Sejarah Steganografi

Steganografi dengan media kepala


budak (Herodatus, penguasa Yunani).
Kepala budak dibotaki, ditulisi pesan,
rambut budak dibiarkan tumbuh, budak
dikirim.

Penggunaan tinta tak-tampak (invisible


ink).
Tinta dibuat dari campuran sari buah,
susu, dan cuka. Tulisan di atas kertas
dapat dibaca dengan cara memanaskan
kertas tersebut.
5/7/2014

48

Steganografi vs Kriptografi
Steganografi dapat dianggap pelengkap
kriptografi (bukan pengganti).
Steganografi: menyembunyikan
keberadaan (existence) pesan
Kriptografi: menyembunyikan isi (content)
pesan
5/7/2014

49

A. Kriteria Steganografi

Penyembunyian data rahasia ke


dalam citra digital akan mengubah
kualitas citra tersebut. Kriteria yang
harus
diperhatikan
dalam
penyembunyian data adalah :

1.

Imperceptible, keberadaan pesan


rahasia tidak dapat dipersepsi

5/7/2014

50

A. Kriteria Steganografi
2. Fidelity, mutu citra penampung tidak
jauh berubah. Setelah penambahan
data rahasia, citra hasil steganografi
masih
terlihat
dengan
baik.
Pengamat tidak mengetahui kalau di
dalam citra tsb terdapat data rahasia.

5/7/2014

51

A. Kriteria Steganografi
3. Robustness, data yang
disembunyikan harus tahan (robust)
terhadap berbagai operasi manipulasi
yang dilakukan pada citra
penampung, seperti pengubahan
kontras, penajaman, pemampatan,
rotasi, perbesaran gambar,
pemotongan (cropping), enkripsi, dsb.

5/7/2014

52

A. Kriteria Steganografi
Bila pada citra penampung dilakukan
operasi-operasi pengolahan citra
tersebut,
maka
data
yang
disembunyikan seharusnya tidak
rusak (harus valid jika jika diekstraksi
kembali).
4. Recovery, data yang disembunyikan
harus dapat diungkapkan kembali
(reveal).
5/7/2014

53

A. Kriteria Steganografi
Karena tujuan steganografi adalah
data hiding, maka sewaktu-waktu
data rahasia di dalam citra
penampung harus dapat diambil
kembali untuk digunakan lebih lanjut.

5/7/2014

54

B. Teknik Menyembunyikan Data

Penyembunyian
data
dilakukan
dengan mengganti bit-bit data di
dalam segmen citra dengan bit-bit
data rahasia.
Hingga saat ini sudah banyak
dikemukakan oleh para ilmuwan
metode-metode
penyembunyian
data. Metode yang paling sederhana
adalah metode modifikasi LSB
(Least Significant Bit Modification).
5/7/2014

55

B. Teknik Menyembunyikan Data

Pada susunan bit di dalam sebuah


byte (1 byte = 8 bit), ada bit yang
paling berarti (most significant bit)
atau MSB dan bit yang paling kurang
berarti (least significant bit) atau
LSB.

5/7/2014

56

Contoh metode modifikasi LSB untuk


menyisipkan Steganografi pada citra
digital.
Misalnya pada byte 11010010, bit 1 yang
pertama (digarisbawahi) adalah bit MSB
dan bit 0 yang terakhir (digarisbawahi)
adalah bit LSB.
Bit yang cocok untuk diganti adalah bit bit
LSB,
sebab
penggantian
hanya
mengubah nilai byte tsb. 1 lebih tinggi
atau 1 lebih rendah dari nilai sebelumnya.

5/7/2014

57

Contoh metode modifikasi LSB untuk


menyisipkan Steganografi pada citra digital.

Misalkan byte tersebut di dalam gambar


menyatakan warna tertentu, maka
perubahan satu bit LSB tidak akan
mengubah warna tersebut secara berarti,
lagi pula mata manusia tidak dapat
membedakan perubahan yang kecil.

5/7/2014

58

B. Teknik Menyembunyikan Data


Bilangan acak dibangkitkan dengan
pseudo-random-number-generator
(PRNG).
PRNG menggunakan kunci rahasia untuk
membangkitkan posisi pixel yang akan
digunakan untuk menyembunyikan bit-bit.
PRNG dibangun dalam sejumlah cara,
salah satunya dengan menggunakan
algoritma kriptografi DES (Data Encryption
Standard)

5/7/2014

59

B. Teknik Menyembunyikan Data


Tujuan dari enkripsi adalah menghasilkan
sekumpulan bilangan acak yang sama
untuk setiap kunci enkripsi yang sama.
Bilangan acak dihasilkan dengan cara
memilih bit-bit dari sebuah blok data hasil
enkripsi.

5/7/2014

60

Metode LSB (spatial domain)


Mengganti bit LSB dengan bit data.

11010010
MSB

LSB

LSB = Least Significant Bit


MSB = Most Siginificant Bit

Mengubah bit LSB hanya mengubah nilai byte satu


lebih tinggi atau satu lebih rendah dari nilai sebelumnya

5/7/2014

61

LSB

Misalkan cover-object adalah citra

00110011 10100010
11100010
01101111
(sekelompok pixel berwarna merah)

Misalkan embedded message: 0111

Encoding:
00110010 10100011
11100011
01101110
(pixel berwarna merah berubah sedikit)

5/7/2014

62

LSB

Ukuran data yang akan disembunyikan


bergantung pada ukuran cover-object.

Citra 24-bit ukuran 256 256 pixel = 65536


pixel.

Setiap pixel berukuran 3 byte (komponen


RGB), berarti ada 65536 3 = 196608 byte.

Setiap 1 byte menyembunyikan satu bit di


LSB-nya, maka ukuran data yang dapat
disembunyikan:
196608/8 = 24576 byte
5/7/2014

63

LSB

Untuk memperkuat teknik


penyembunyian data, bit-bit data rahasia
tidak digunakan mengganti byte-byte
yang berurutan, namun dipilih susunan
byte secara acak.

Misalnya jika terdapat 50 byte dan 6 bit


data yang akan disembunyikan, maka
maka byte yang diganti bit LSB-nya
dipilih secara acak, misalkan byte nomor
36, 5, 21, 10, 18, 49.
5/7/2014

64

LSB
Keuntungan

Mudah diimplementasikan dan


proses encoding cepat
Kelemahan

Tidak tahan terhadap pengubahan


(modifikasi) terhadap cover object.

5/7/2014

65

Watermarking

Semua jenis pengolahan citra sebelumnya (baik gambar maupun


video) dapat di transmisikan secara bebas.
Dapat disalin dengan mudah tanpa error
Beresiko menimbulkan akuisisi oleh pihak lain
Bahkan meskipun gambar sudah di enkripsi
Menimbulkan pelanggaran hak cipta

Solusi: watermark (tanda air / tinta transparan)


Tujuan utama melindungi hak kepemilikan:
Copyright Identification: bukti kepemilikan
User Identification or fingerprinting: mengenali illegal copy
Autenticity determination: menjamin bahwa citra tidak rusak
Automated monitoring: monitoring kapan dan dimana citra disalin
Copy protection: Bisa menetapkan aturan penggunaan dan penyalinan citra
66

Visible watermark

Visible watermark adalah sub-citra atau citra semitransparan (opaque) yang diletakkan diatas citra yang
lain (citra yang diberi watermark), sehingga watermarknya masih dapat dilihat oleh pengamat.

Banyak digunakan di industri siaran televisi.


Formula untuk memasukkan watermark ke citra asli:

f w (1 ) f w
Dimana fw adalah citra yang sudah di watermark, f adalah
citra asli, w adalah citra watermark, adalah konstanta
yang mengontrol penampakan relatif (opaque) dari
watermarknya.

67

Contoh
83 89 134 145
56 68 80 170
189 243 224 211

23
90

129
223

watermark

Citra asli

23
90
0

129
223
0

0
0
0

0
0
0

Watermark setelah
di recover

23
90
0

129
223
0

watermark

0
0
0

0
0
0

Opaque = 0.3

f w (1 ) f w

65 101 94 102
66 115 56 119
132 170 157 148
Citra asli setelah diwatermark
68

Contoh
f = imread('lena.tif');
f = double(f);
wm = imread('dip.tif');
wm = rgb2gray(wm);
alpha = 0.3;
[m,n] = size(f);
fwm = zeros(m,n);
[r,c] = size(wm);
fwm(101:100+r, 101:100+c) =wm;
hf = (1-alpha) * f + alpha * fwm;
hf = uint8(hf);
figure, imshow(hf);

Citra watermark

Citra asli

% Kembalikan watermark
hf = double(hf);
iwm = hf - (1-alpha)*f;
iwm = uint8(iwm);
figure, imshow(iwm);

Citra watermark
setelah di recover

Opaque = 0.3

69

Invisible watermark

Sama dengan visible watermark tapi watermarknya tidak dapat


diamati oleh mata telanjang.

Persepsi mata manusia tidak dapat membedakan selisih yang kecil


pada intensitas citra digital
Sehingga informasi redundan yang terselip dalam citra tidak akan tampak.
Watermark masih dapat direcover untuk mengembalikannya.

Formula yang digunakan:

f w
f w 4
4 64

Catatan: hasil bagi yang digunakan adalah pembulatan kebawah

Secara prinsip, teknik ini men-set nol pada 2 bit LSB setiap piksel,
kemudian 2 bit tersebut dipakai untuk memasukkan informasi
watermark.
Recover watermark dilakukan dengan men-set nol pada 6 MSB
piksel.

70

Contoh
83 89 134 145
56 68 80 170
189 243 224 211

23
90

129
223

watermark

Citra asli

0
1
0

2
3
0

0
0
0

0
0
0

Watermark setelah
di recover

23
90
0

129
223
0

watermark

0
0
0

0
0
0

Opaque = 0.3

f w
f w 4
4 64

80 90 132 144
57 71 80 168
188 240 224 208
Citra asli setelah diwatermark
71

Contoh
f = imread('lena.tif');
f = double(f);
wm = imread('dip.tif');
wm = rgb2gray(wm);
alpha = 0.3;
[m,n] = size(f);
fwm = zeros(m,n);
[r,c] = size(wm);
fwm(101:100+r, 101:100+c) =wm;
hf = 4*(floor(f./4)) + floor(fwm./64);

Citra watermark

Citra asli

hf = uint8(hf);
figure, imshow(hf);
% Kembalikan watermark
hf = double(hf);
iwm = hf - 4*(floor(hf./4));
iwm = iwm/3;
figure, imshow(iwm);

Citra watermark
setelah di recover

Invisible watermark
72

Anda mungkin juga menyukai