BAB II. DASAR TEORI
Dalam bab ini akan dijelaskan mengenai teori dan sejarah watermarking, mulai dari digital watermarking sampai ke audio watermarking, konsep suara digital dan cara konversi suara analog ke digital dan sebaliknya, teknik phase vocoder yang dipakai dalam proses penyisipan tanda air, format audio WAV, dan sedikit tentang Short-time Fourier transform (STFT) dan Fast Fourier Transform (FFT).
II.1
Digital Watermarking
Teknik watermarking adalah proses penambahkan kode identifikasi secara permanen ke dalam data digital. Kode identifikasi tersebut dapat berupa teks, gambar, suara, atau video. Selain tidak merusak data digital produk yang akan dilindungi, kode yang disisipkan seharusnya memiliki ketahanan (robustness) dari berbagai pemrosesan lanjutan seperti pengubahan, transformasi geometri, kompresi, enkripsi dan sebagainya. Sifat robustness berarti data tanda air tidak rusak akibat pemrosesan lebih lanjut [MUN04].
II.1.1
Sejarah Watermarking
Sejarah watermarking dimulai sejak tujuh ratus tahun yang lalu. Pada akhir abad ke tiga belas, pabrik kertas di Fabriano, Italia, membuat kertas yang diberi tanda air dengan cara menekan bentuk cetakan gambar atau tulisan pada kertas yang baru setengah jadi. Ketika kertas dikeringkan akan terbentuk suatu kertas yang bertanda air. Kertas ini biasanya digunakan oleh seniman atau sastrawan untuk menulis karyanya. Kertas yang sudah dibubuhi tanda air tersebut sekaligus dijadikan identifikasi bahwa karya seni di atasnya adalah milik seniman atau sastrawan tersebut. Ide pemberian tanda air (watermarking) pada data digital dikembangkan di Jepang pada tahun 1990 dan di Swiss tahun 1993. Digital watermarking semakin berkembang seiring meluasnya penggunaan internet, karena dengan internet konten digital dapat dengan mudah dikonversi, disalin/digandakan dan disebarluaskan.
II.1.2
Penyisipan Tanda Air
Proses penyisipan tanda air ke dalam produk digital disebut juga proses encoding, skema dasar proses ini dapat dilihat pada Gambar II-1.
II-1
II-2 Kunci Data digital
Encoding
Data digital bertanda air
Tanda air Gambar II-1: Penyisipan tanda air pada data digital Proses encoding pada Gambar II-1 membutuhkan masukan data digital yang akan disisipi dan tanda air yang akan disisipkan, proses ini akan menghasilkan data digital bertanda air. Proses encoding dapat disertai dengan pemberian kunci. Kunci diperlukan jika tanda air yang disisipkan tidak diinginkan dapat diekstrak atau dihapus oleh sembarang pihak.
II.1.3
Ekstraksi Tanda Air
Proses ekstraksi tanda air disebut juga proses decoding. Pada dasarnya proses decoding adalah kebalikan dari proses encoding. Skema dasar proses ini dapat dilihat pada Gambar II-2. Proses ekstraksi pada Gambar II-2 membutuhkan masukan data digital asal dan data digital bertanda air untuk diperbandingkan sehingga menghasilkan tanda air yang disisipkan. Proses ekstraksi dapat diikuti oleh proses pembandingan tanda air hasil ekstraksi dengan tanda air asli. Gabungan proses ekstraksi dan proses pembandingan disebut juga proses verifikasi tanda air. Verifikasi biasanya dilakukan untuk membuktikan hak kepemilikan dari data digital yang bertanda air tersebut. Kunci Data digital bertanda air
Decoding
tanda air hasil ekstrasi
Data digital asal Gambar II-2: Ekstraksi tanda air dari data digital
II.1.4
Tipe Digital Watermarking
Berdasarkan media atau tipe data digital yang akan diberi tanda air, digital watermarking dapat dibedakan menjadi:
II-3 1. Text watermarking Pemberian tanda air terhadap file bertipe teks. Tanda air biasanya diberikan pada dokumen-dokumen yang diterbitkan secara elektronik. 2. Image watermarking Pemberian tanda air pada citra digital saat ini telah umum digunakan. Biasanya tanda air sebelum disisipkan diubah menjadi sinyal pseudorandom dengan amplitudo lebih rendah dibanding amplitudo citra yang akan disisipi, dan distribusi atau penyebaran bit tanda air juga sangat kecil dibandingkan dengan pixel dari citra tersebut. 3. Audio watermarking Dibandingkan dengan media citra digital, maka informasi yang bisa disisipkan pada tipe media audio lebih kecil karena jumlah sampel per selang waktunya juga lebih kecil dibandingkan dengan citra digital. 4. Video watermarking Sistem pemberian tanda air pada media bertipe video memiliki kompleksitas yang cukup besar karena video mengandung gambar bergerak berukuran sama dan dalam urutan tertentu, sehingga pemberian tanda air pada gambar tidak boleh membuat perubahan yang signifikan agar peralihan gambar dari satu bingkai ke bingkai lain harus tetap baik dan modifikasi yang dilakukan tidak terlihat oleh pengguna.
II.2
Audio Watermarking
Seperti sudah dijelaskan secara singkat pada bab I, Audio watermarking adalah proses penyisipan tanda air ke dalam data digital bertipe audio. Penyisipan ini dilakukan sedemikian rupa sehingga informasi yang disisipkan (tanda air) sangat sulit dihilangkan. Tujuan dari proses ini biasanya adalah untuk menyatakan hak kepemilikan dari data audio digital tersebut. Tetapi selain itu proses ini bisa juga untuk menyisipkan data tentang hak cipta, hak salin (copyright) dan informasiinformasi tambahan lain yang berkaitan dengan data audio tersebut. Perbedaannya dengan tag seperti ID TAG pada file berformat MP3 adalah, tanda air yang disisipkan tidak dimaksudkan untuk dapat diubah dan atau diperlihatkan ke sembarang pihak. Selain itu diharapkan pula bahwa perubahan data yang telah disisipi dengan data asli tidak signifikan sehingga tidak dapat dideteksi oleh pengguna.
II-4
II.2.1
Kebutuhan Sistem Audio Watermarking
Sebuah sistem audio watermarking yang baik diharapkan memenuhi kriteria-kriteria berikut: 1. Komputasi yang dibutuhkan untuk proses penyisipan dan ekstraksi tanda air harus rendah. 2. Tanda air yang disisipkan tidak boleh menimbulkan artifak, derau atau distorsi lain yang mengganggu kualitas suara dari audio asli. 3. Tahan terhadap berbagai pemrosesan sinyal lebih lanjut seperti konversi D/A A/D, perubahan sample rate, mixing, kompresi dan sebagainya. 4. Tahan terhadap serangan penghilangan tanda air.
II.2.2
Teknik Audio Watermarking Saat Ini
Teknik audio watermarking yang ada saat ini dapat dikelompokkan menjadi dua kelompok besar berdasarkan metode yang dipakai untuk menyisipkan tanda air: 1. Domain frekuensi Metode ini bekerja dengan cara memodifikasi konten spektral dari suatu sinyal dan juga termasuk teknik frequency band modification, spread-spectrum, dan phase coding. 2. Domain data Metode pada domain ini bekerja langsung pada data audio dan juga termasuk perubahan pada LSB (least significant bit), dan echo hiding. Selain melihat dari metode yang dipakai untuk penyisipan teknik audio watermarking dapat juga dikelompokkan menjadi dua berdasarkan cara Ekstraksi tanda air: 1. Blind watermarking Teknik ini tidak membutuhkan data audio asli yang belum disisipi untuk mendapatkan kembali tanda air yang telah disisipi. 2. Non-blind watermarking Teknik ini membutuhkan data audio asli yang belum disisipi untuk dibandingkan dengan data audio yang telah disisipi agar tanda air dapat diekstrak.
II.3
Time Base Modulation
Teknik time base modulation adalah teknik watermarking yang diusulkan oleh Jonathan Foote, John Adcock dan Andreas Girgensohn pada tulisan mereka yang berjudul “Time Base Modulation: A New Approach to Watermarking Audio and Images”. Teknik ini bekerja dalam domain waktu.
II-5 Informasi tanda air disembunyikan dalam segmen-segmen waktu sinyal audio dengan perubahan skala waktu (pemanjangan atau pemendekan) dari segmen-segmen tersebut (Gambar II-3).
Gambar II-3: Cara kerja penyisipan tanda air pada time base modulation Pada Gambar II-3, berkas Reference dibagi menjadi beberapa segmen berurut yang sama besar. Pada segmen-segmen tersebut kemudian dilakukan proses pemanjangan (pemuluran) atau pemendekkan. Setelah dilakukan pemendekan skala waktu maka segmen-segmen tersebut digabungkan kembali dengan urutan yang sama. Berkas Watermarked dibentuk dari segmensegmen yang telah digabungkan tersebut.
II.3.1
Proses Penyisipan Tanda Air
Misalkan sinyal x t diekspresikan sebagai gabungan dari K buah blok yang tidak bertindihan ( x 1...k ), dengan penggabungannya dilambangkan dengan C [FOO02]: K
x t = C x k
(2.1)
k=1
Sinyal yang telah diberi tanda air ( x w t ) dihasilkan dari pemanjangan atau pemendekan skala waktu dari tiap blok ( x k ) sebesar
E k , lalu blok-blok yang telah dimodifikasi digabungkan
kembali [FOO02]: K
x w t = C TSM x k , E k k=1
(2.2)
dengan TSM x k , E k menyatakan modifikasi skala waktu terhadap blok x k sebesar
Ek .
Urutan pemendekan dan pemanjangan skala waktu pada blok-blok merepresentasikan tanda air yang ingin disisipkan.
II.3.2
Proses Ekstraksi Tanda Air
Tanda air dapat diperolehkan kembali dengan cara sinyal yang telah disisipi tanda air dibandingkan dengan sinyal asli yang belum diubah.
II-6
II.4
Phase Vocoder
Phase vocoder adalah pengembangan lebih lanjut terhadap "channel vocoder" (voice coder) yang diperkenalkan pertama kali oleh Homer Dudley pada tahun 1939. Prinsip kerja channel vocoder adalah dengan membeda-bedakan kode suara untuk menciptakan ulang suara yang sedang dianalisa. Channel vocoder ini bekerja dalam dua tahap, yaitu tahap analisis dan sintesis [HAM01]. Model ini kemudian dikembangkan lebih lanjut oleh Flanagan dan Golden dengan mempertimbangkan short-time magnitude dan phase spectra dari sinyal yang dianalisa. Sejak saat itu model ini lebih dikenal dengan nama "phase vocoder" dan telah dikembangkan lebih lanjut dalam berbagai cara. Skema dasar cara kerja phase vocoder dapat dilihat di Gambar II-4. Input Sound
Parameters
STFT = Analysis Stage
Modification
Output Sound
STFT = Synstesis Stage
Modified Parameters
Gambar II-4: Skema dasar cara kerja phase vocoder
II.4.1
Analisis
Pada tahap analisis (Gambar II-5), analysis time-instant t ua diset sepanjang sinyal asal untuk nilai integer u yang berurutan, t ua mungkin seragam: t ua=uRa , dengan
Ra disebut juga
faktor lompat tahap analisis. Pada setiap analysis time-instant ini dilakukan perhitungan transformasi Forrier pada bagian-bagian kecil (window) dari sinyal asal, dengan terpusat di t ua . Hasilnya adalah representasi STFT dari sinyal asal, dilambangkan dengan X t ua , k [HAM01]: ∞
X t ua , k = ∑ h n x t ua n e− j n
(2.3)
k
n=−∞
Dengan x adalah sinyal asal, h n adalah analysis window,
k=
2 k adalah frekuensi N
pusat dari “kanal” vocoder ke- k dan N adalah besar dari Discrete Fourier Transform. Dalam prakteknya, h n mempunyai
panjang
waktu
yang
terbatas
(biasanya N sampel)
dan
penjumlahan di atas mempunyai jumlah term yang terhingga. X t ua , k Adalah fungsi dari waktu (melalui variabel u ) dan juga fungsi dari frekuensi (melalui k ).
II-7 Input Sound
Windowing
FFT
Magnitude & Phase spectra
Gambar II-5: Skema tahap analisis
II.4.2
Sintesis (atau Resintesis)
Pada tahap sintesis (Gambar II-6) dilakukan pengesetan synthesis time-instants t us , yang biasanya seragam sehingga t us =R s u , dimana R adalah faktor loncat sintesis. Pada setiap synthesis time-instants ini didapatkan sebuah sinyal short-time y u n dengan cara melakukan transformasi invers terhadap STFT Y t us , k . Setiap sinyal short-time ini kemudian dimultiplikasi dengan sebuah window sintesis opsional w n , kemudian hasil-hasilnya ditambahkan sehingga dihasilkan sinyal keluaran y n [HAM01]: ∞
y n=
∑
u=−∞
w n−t us y u n−t us
(2.4)
dengan y u n=
1 N
N −1
∑ Y t us , k e j n k
k =0
Jika tidak dilakukan perubahan ( Ra =R s danY t us ,k = X t us , k ), maka sinyal keluaran identik dengan sinyal asal x . Moodified Magnitude & Phase spectra
IFFT
Windowing
Output Sound
Gambar II-6: Skema tahap sintesis
II-8
II.5
Suara Digital
Telinga manusia peka terhadap suara yang secara fisik merupakan variasi cepat daam tekanan udara. Suara dapat direpresentasikan sebagai fungsi Suara: Waktu → Tekanan dengan Tekanan adalah nilai yang merepresentasikan tekanan udara, dan Waktu adalah kumpulan nilai yang merepresentasikan interval waktu antarsinyal. Secara umum sinyal suara dapat dibedakan menjadi tiga jenis yaitu sinyal analog, sinyal diskrit dan sinyal digital (Gambar II-7).
(a)
(b)
(c) Gambar II-7: Sinyal Analog (a), Sinyal Diskrit (b), Sinyal Digital (c) Sinyal analog (Gambar II-7 (a)) adalah sinyal yang nilainya terdefinisi pada setiap titik interval waktu secara kontinyu. Karakteristik data sinyal masih utuh karena belum mengalami perubahan. Sinyal diskrit (Gambar II-7 (b)) merupakan hasil proses pencuplikan dari sinyal analog. Parameter yang berpengaruh dalam proses pencuplikan adalah sampling rate, yaitu jumlah sampel per unit waktu, disebut juga sampling period. Sinyal digital (Gambar II-7 (c)) adalah sinyal diskrit yang telah melalui proses kuantisasi.
II-9
II.5.1
Prinsip Pengubahan Sinyal Analog ke Digital
Proses pengubahan sinyal analog ke sinyal digital terdiri atas prefiltering, sampling, quantizition dan encoding [TJO05] (Gambar II-8). Analog prefilter berfungsi membatasi bandwidth frekuensi sinyal analog (prefiltering). S/H (Sampling and Hold) berfungsi untuk mencuplik sinyal analog dan menyimpan harganya sampai ADC (Analog to Digital Converter) selesai mengubah sinyal analog menjadi sinyal digital. Sampling (pencuplikan sinyal) dilakukan pada laju tertentu yang disebut dengan sampling rate. Penentuan waktu sampling ( T s ) yang salah dapat menyebabkan sinyal yang dicuplik mengalami distorsi. Suatu sinyal analog mempunyai frekuensi tertnggi f h dan dicuplik dengan frekuensi pencuplikan f s =1/T s . Analog to Digital Convention Analog Prefilter
Sample and Hold (S/H)
Quantizition
Sinyal Analog
Encoding
Sinyal Digital
Gambar II-8: Proses Analog ke Digital Proses selanjutnya adalah quantizition (kuantisasi). Jumlah tingkat kuantisasi berkaitan dengan resolusi sistem pengukuran. Misal kita ingin mengukur sinyal dengan amplitudo 1, dengan sebuah ADC beresolusi 4 bit, maka terdapat 2 4=16 tingkat kuantisasi, dengan besar tingkat kuantisasi masing-masing 1/16=0,0625.
Artinya setiap perubahan 1 tingkat (dari 16 tingkat) maka terjadi
perubahan 0,00625. Encoding adalah proses pengubahan sinyal diskrit hasil kuantisasi menjadi sinyal digital.
II.5.2
Prinsip Pengubahan Sinyal Digital ke Analog
Sinyal digital dari komputer dapat diubah menjadi sinyal dengan DAC (Digital to Analog Converter). DAC mengubah sinyal-sinyal digital menjadi sinyal sinyal analog yang masih merupakan gabungan step. Sinyal tersebut kemudian dilewatkan pada analog postfilter sehingga terbentuk sinyal analog yang kontinyu [TJO05] (Gambar II-9).
II-10
Sinyal Digital
Digital to Analog Converter
Analog Postfilter
Sinyal Analog
Gambar II-9: Proses Digital ke Analog
II.6
Format WAV
Fomat berkas WAV (WAVE) adalah berkas format standar untuk penyimpan data audio digital dalam Windows. Format ini dikembangkan bersama oleh Microsoft dan IBM dan telah menjadi salah satu format berkas audio digital yang sangat luas dukungannya untuk PC, hal ini disebabkan oleh popularitas dari Windows dan sangat banyaknya program yang ditulis untuk bekerja di platform Windows. Hampir setiap program pemutar atau pengolah audio menyediakan dukungan untuk membuka dan/atau menyimpan ke dalam format ini.
II.6.1
Format Data
Karena format ini adalah format dasar penyimpanan audio pada Windows dan karenanya berhubungan erat dengan prosesor Intel, maka semua nilai data disimpan dalam format LittleEndian. Berkas WAVE dapat mengandung string karakter. String ini disimpan dalam format dimana byte pertama menyatakan jumlah karakter dari string dan kemudian diikuti oleh isi string dalam representasi ASCII.
II.6.2
Struktur File
Format WAVE menggunakan struktur standar RIFF (Resource Interchange File Format) atau dapat juga dikatakan varian atau subset dari format RIFF. RIFF dikembangkan sebagai penyimpan berbagai tipe multimedia (video, audio). Format ini mengelompokkan bagian-bagian dari file menjadi kelompok-kelompok terpisah yang kemudian disimpan dalam chunk yang terpisah. Chunk header menyatakan tipe dan ukuran (byte) dari data yang disimpan dalam chunk tersebut. Metode pengorganisasian ini memungkinkan program yang tidak membutuhkan atau mengenali sebuah tipe chunk tertentu untuk melompati chunk tersebut dan memproses chunk selanjutnya. Chunk tipe tertentu dimungkinkan untuk mengandung sub(-sub) chunk [SON06]. Sebagai contoh pada Gambar II-10 dapat dilihat bahwa chunk “fmt” dan “data” sebenarnya adalah sub chunk dari chunk “RIFF”. Gambar II-10 menampilkan struktur format WAV paling sederhana. Struktur WAV paling sederhana adalah chunk RIFF yang mengandung sebuah sub chunk “fmt” yang menyimpan data atau info tentang format sampel audio dan sebuah sub chunk “data” yang berisi sampel audio
II-11 sebenarnya. Penjelasan lebih lanjut tentang format data pada berkas WAV dapat dilihat pada Lampiran A. Chunk ID “RIFF” Chunk Data Size
Chunk Header
RIFF Type ID “WAVE” Chunk Data Bytes
Chunk ID “fmt” Chunk Data Size Sample Format Info Chunk ID “data” Chunk Data Size Digital Audio Samples
Gambar II-10: Skema dasar struktur format WAV
II.7 II.7.1
Short-time Fourier Transform Definisi
Short-time Fourier transform (STFT) atau disebut juga short-term Fourier transform adalah transformasi yang berhubungan dengan transformasi Fourier. Biasa digunakan untuk menentukan frekuensi sinusloidal dan phase content dari suatu seksi lokal dari sebuah sinyal seiring sinyal tersebut berubah berdasarkan waktu. Dalam kasus kontinyu, fungsi yang akan ditransformasikan dikalikan dengan fungsi window yang bernilai tidak nol untuk suatu jangka waktu yang pendek. Seiring dengan window bergerak dalam domain waktu maka dilakukan transformasi Fourier (fungsi satu dimensi) terhadap hasil perkalian sinyal asal dengan fungsi window. Hasilnya adalah representasi sinyal dalam dua dimensi. Secara matematis, dapat ditulis menjadi [WIK06]: ∞
STFT {x }≡ X , =∫−∞ x t w t − e
− jwt
dt
(2.5)
dengan w t adalah fungsi window, umumnya digunakan Han window atau Gaussian, yang “bukit”nya terpusat di sekitar nol, dan x t adalah sinyal yang akan ditransformasikan. X , Sebenarnya adalah transformasi Fourier dari x t w t− . Phase unwrapping sering
diterapkan baik pada sumbu waktu dan sumbu frekuensi ,
hal ini dilakukan untuk
mencegah atau meminimalisasi loncatan ketakterhubungan antar-phase pada phase hasil dari STFT. Indeks waktu biasanya dalam ukuran kecil dan tidak dalam resolusi tinggi seperti waktu t.
II-12 Dalam kasus waktu diskrit, data yang akan ditransformasikan dapat dipecah menjadi beberapa blok atau bingkai, yang biasanya saling bertindihan. Kemudian pada setiap blok dilakukan transformasi Fourier dan hasilnya disimpan dalam matriks. Matriks ini merekam magnitude dan phase dari setiap titik dalam waktu dan frekuensi. Dapat ditulis secara matematis sebagai [WIK06]: ∞
STFT {x }≡ X m ,= ∑ x [n]w [n−m]e− jwt
(2.6)
n=−∞
dengan s [n] adalah sinyal dan w [n] adalah window. m diskrit dan w kontinyu, tetapi dalam penerapan STFT dilakukan dengan Fast Fourier Transform sehingga kedua variabel adalah diskrit dan dikuantisasi. Indeks waktu m biasanya dalam ukuran kecil dan tidak dalam resolusi tinggi seperti waktu n. STFT dapat diinverskan.
II.7.2
Fast Fourier Transform
Fast Fourier transform (FFT) adalah algoritma yang efisien untuk menghitung STFT. FFT adalah salah satu operasi yang paling banyak digunakan dalam pemrosesan sinyal digital untuk menyediakan analisis spektrum frekuensi. Invers FFT (IFFT) bekerja berlawanan dengan FFT, yaitu mengubah sinyal domain frekuensi menjadi domain waktu. Algoritma dan penjelasan lebih lanjut mengenai FFT dapat dilihat pada lampiran B.
II.8
Peak Signal-to-Noise Ratio (PSNR)
Istilah peak sinyal-to-noise ratio (PSNR) adalah sebuah istilah dalam bidang teknik yang menyatakan perbandingan antara kekuatan sinyal maksimum yang mungkin dari suatu sinyal diital dengan kekuatan derau yang mempengaruhi kebenaran sinyal tersebut. Oleh karena banyak sinyal memiliki rentang dinamis yang luas, maka PSNR biasanya diekspresikan dalam skala logarithmic decibel. PSNR didefinisikan melalui sinyal-to-noise ratio (SNR). SNR digunakan untuk mengukur tingkat kualitas sinyal. Nilai ini dihitung berdasarkan perbandingan antara sinyal dengan nilai kebisingan (derau). Kualitas sinyal berbanding lurus dengan nilai SNR. Semakin besar nilai SNR semakin baik kualitas sinyal yang dihasilkan. SNR dari kumpulan nilai cuplikan adalah jumlah dari kuadrat nilai kuantisasi dibagi dengan jumlah nilai kuantisasi derau. Pernyataan tesebut dapat dirumuskan melalui persamaan 2.7 [RUM06].
II-13 N
∑ x 2 i
SNR= i−1 N
∑e
(2.7) 2
i
i −1
Dengan N menyatakan banyaknya sinyal suara yang dicuplik, x i menyatakan nilai cuplikan ke-i, dan
e i menyatakan kesalahan cuplikan ke-i. SNR dapat pula dinyatakan sebagai
perbandingan kuadrat kekuatan sinyal rata-rata berkas WAV setelah disisipi tanda air dengan kuadrat selisih kekuatan sinyal sebelum dan setelah disisipi tanda air [RUM06]. Pernyataan ini secara matematis ditulis menjadi persamaan 2.8. N
SNR=
∑ x 2w t t =0
N
∑ x t − xw t
(2.8)
2
t =0
Berdasarkan persamaan 2.8, maka nilai PSNR dapat dihitung berdasarkan persamaan 2.9. Nilai PSNR direpresentasikan dalam skala desibel (dB) [RUM06]. PNSR=10×10 log SNR
(2.9)