BAB III IMPLEMENTASI WATERMARKING PADA VIDEO
Pada Tesis ini implementasi watermarking pada video mengujicobakan prosedur penyisipan watermark yang berbeda yaitu watermark disisipkan pada komponen DC dalam Least Significant Bit (LSB) koefisien DCT. Selain proses penyisipan yang berbeda, proses pemilihan watermark juga berbeda, di mana sebagai watermark digunakan gambar dengan format RGB (warna) yang kemudian diubah menjadi gambar biner yang akan dijadikan sebagai watermark, dengan menggunakan algoritma Bock Trucation Coding (BTC) untuk mengubah gambar RGB menjadi gambar biner, yang belum pernah diterapkan sebelumnya.
Implementasi watermarking pada video tidak hanya menyisipkan watermark ke dalam frame-frame akan tetapi menyatukan kembali frame-frame ke dalam format video dengan berbagai kualitas kompresi yang berbeda dengan tujuan membuktikan robustness (kekokohan) watermark. Selain itu pengujian dengan parameter kualitas kompresi yang berbeda-beda dapat membuktikan bahwa untuk mengungkap watermark dapat dilakukan dengan format kompresi yang berbeda asalkan kualitas kompresi dari video yang di-watermark tidak kurang dari 25.
III.1
Peyisipan pada Komponen DC
Pada penelitian terdahulu penyisipan pada komponen DC sangat jarang dilakukan tetapi pernah diujicobakan[22]. Pemilihan penyisipan pada komponen DC disebabkan berbagai faktor kekurangan yang dimiliki komponen AC seperti lebih rentan terhadap derau atau noise, pengubahan komponen AC tidak akan mempengaruhi kualitas penampakan data sehingga robustness dari watermark akan turun. Perbedaan tesis ini dari penelitian sebelumnya terletak pada teknik penyisipan watermark dan pembangkitan watermark biner dengan algoritma BTC. Dengan teknik ini kekokohan watermark akan tetap terjaga meskipun dilakukan kompresi sampai dengan kualitas 25.
21
III.2
Penyisipan Watermark
Penyisipan watermark dimulai dengan melakukan konversi frame-frame video dari RGB ke YcbCr dengan rumus berikut[17]. Y = 0.299 R + 0.587G + 0.114
(3.4)
Cb = 0.1687 R − 0.3313G + 0.5 B
(3.5) (3.6)
Cr = 0.5 R − 0.4187G + 0.0813B
Setelah diperoleh komponen Luminance (Y), maka prosedur penyisipan watermark dimulai. III.2.1 Prosedur Penyisipan Watermark
1. Rangkaian video yang mengandung frame sebanyak k . Ukuran setiap frame adalah m × n dan
X i menyatakan frame ke i didalam video, dimana
i = 1, 2,3, 4, K, k . Frame yang sedang diproses dibagi menjadi blok-blok, dimana setiap blok berukuran 8 × 8 , yang dinyatakan dengan X i , j , yang berarti blok
(
)
m×n ke j dari frame ke- i , j = 1, 2,3, K , 64 .
2. Setiap blok X i , j kemudian dilakukan transformasi 2D-DCT , hasil transformasi dinyatakan dengan Xˆ i , j . Kemudian Xˆ i , j ,1,1 adalah sebuah koefisien DC dari blok ke j dan frame ke- i . 3. Xˆ i , j
kemudian dibagi dengan koefisien kuantisasi Qm (gambar II.2(a)),
kemudian di round atau dilakukan pembulatan ke atas. 4. Keseluruhan Xˆ i , j ,1,1 dari frame ke- i dikelompokkan kemudian dilakukan proses zig-zag yang bertujuan untuk meningkatkan robustness dari watermark. 5. Memetakan Xˆ i , j ,1,1 kedalam bentuk biner X% i , j ,1,1 [18]. X% i , j ,1,1 = Xˆ i , j ,1,1 mod 2
...................................... (3.6)
6. Watermark biner zig-zag disisipkan kedalam koefisien DC dengan melakukan modifikasi biner dari X% i , j ,1,1 [18].
22
⊕ wk ⎪⎧ X% X *i , j ,1,1 = ⎨ i , j ,1,1 ⎪⎩ X% i , j ,1,1 7. Keseluruhan X *i , j ,1,1
dari
frame
ke- i
if
X% i , j ,1,1 ≠ wk otherwise
dilakukan
proses
..................... (3.7) izig-zag
untuk
mengembalikannya pada bentuk asal kemudian disatukan kembali dengan komponen AC masing-masing blok. 8. Setelah blok direkonstruksi seperti blok asal kemudian dilakukan proses dekuantisasi yaitu mengalikan blok hasil rekonstruksi dengan Qm . 9. Hasil dekuantisasi dari setiap blok pada frame ke- i dilakukan 2D-IDCT untuk mengembalikan ke domain spatial. Diagram alir prosedur penyisipan watermark dapat dilihat pada Gambar III.3.
Gambar III.1 Diagram alir prosedur penyisipan watermark. III.2.2 Pembangkitan Watermark
Prosedur pembangkitan watermark dengan menggunakan algoritma Block Truncation Coding (BTC) tidak membedakan ukuran gambar yang akan dipilih sebagai watermark. Gambar yang dipilih sebagai watermark memiliki persyaratan bahwa
gambar tersebut merupakan gambar berwarna bukan grayscale.
23
Setelah proses pembacaan file gambar yang akan dijadikan watermark, kemudian prosedur pembangkitan watermark biner dimulai.
III.2.2.1 Prosedur Pembangkitan Watermark Biner
1. Gambar yang dipilih sebagai watermark dibagi menjadi blok-blok, dimana setiap blok berukuran 4x4 [15]. 2. Hitung nilai mean dari setiap blok kemudian, nilai pixel yang lebih kecil dari nilai mean bidang B . pada posisi yang bersesuaian dengan nilai pixel diberi nilai '0 ' , jika nilai pixel lebih besar dari nilai mean bidang B untuk pixel yang bersesuaian diberi nilai '1' .
Pada prosedur pembangkitan watermark algoritma Block Truncation Coding (BTC) tidak digunakan secara keseluruhan. Algoritma BTC yang digunakan hanya pada saat gambar diubah menjadi bentuk biner sedangkan untuk proses rekonstruksi gambar kembali menjadi pixel-pixel tidak digunakan dalam prosedur pembangkitan watermark. Diagram alir proses pembangkitan watermark biner pada Gambar III.4.
24
Gambar III.2 Diagram alir prosedur pembangkitan watermark biner. III.2.3 Pengungkapan Watermark
Pengungkapan watermark dari video tidak memerlukan video asli sebelum diwatermark. Akan tetapi posisi frame yang diberi watermark dan ukuran watermark
perlu disimpan pada decoder, hal ini diperlukan untuk melakukan rekonstruksi watermark
25
Pada prinsipnya prosedur pengungkapan watermark hampir sama dengan prosedur penyisipan watermark.
III.2.3.1 Prosedur Pengungkapan Watermark
1. Frame-frame dari video yang telah di-watermark diubah dari RGB ke YCbCr kemudian ambil komponen luminance (Y). 2. Bagi setiap frame kedalam blok berukuran blok 8 × 8 , kemudian setiap blok dilakukan transformasi 2D-DCT. 3. Kuantisasi blok-bok 2D-DCT dengan Qm . 4. Ambil koefisien DC dari setiap blok dalam setiap frame dan bentuk menjadi blok koefisien DC kemudian petakan ke dalam bentuk biner. X% i , j ,1,1 = Xˆ i , j ,1,1 mod 2
.................................. (3.8)
5. Zig-zag setiap blok koefisien DC biner dari setiap frame. 6. Rekonstruksi watermark dengan menyatukan koefisen DC zig-zag ke dalam satu baris. 7. Izig-zag (invers zig-zag) untuk membentuk watermark menjadi ukuran pada saat disisipkan dengan menggunakan infomasi ukuran watermark yang disimpan pada decoder. Diagram alir proses pengungkapan watermark dapat dilihat pada Gambar III.5.
26
Gambar III.3 Diagram alir prosedur pengungkapan watermark. III.2.3.2 Perbaikan Kesalahan ( Error Correction)
Perbaikan kesalahan pada pengungkapan watermark bertujuan untuk meningkatkan robustness dari watermark. Watermark akan rentan terhadap derau (noise)
dikarenakan kompresi dan konversi komponen warna.
Prosedur perbaikan kesalahan yang diterapkan pada perangkat lunak video watermarking, sebagai berikut:
1. bit-bit biner watermark yang diungkap dari video yang ter-watermark ( wr _ zig ) dalam bentuk array 1-dimensi di xor dengan bit-bit biner 1-dimensi watermark yang memiliki bit-bit asli ( wr ) ;
diff = xor ( wr , wr _ zig )
.................................. (3.9)
2. kemudian diff dihitung persen kesalahan terhadap total bit keseluruhan jika kurang dari 50% maka akan dilanjutkan ke langkah ke-3, jika tidak maka proses akan terhenti dan watermark akan gagal diungkap; 3. perbaikan kesalahan bit-bit watermark yang diungkap dengan melakukan xor watermark bit-bit yang salah dengan diff .
27
wr _ ext = xor ( wr _ zig , diff ) .......................... (3.10)
Berikut Gambar III.6 diagram alir prosedur perbaikan kesalahan terhadap watermark yang diungkap.
Gambar III.4
Diagram alir prosedur perbaikan kesalahan watermark yang diungkap.
28