BAB II DASAR TEORI
Dalam bab ini diuraikan dasar-dasar teori yang mendukung pelaksanaan Tugas Akhir, yaitu mengenai video, pengukuran kualitas antar video, steganografi, serta pembangkitan bilangan acak.
2.1 Video Video merupakan kumpulan berbagai gambar (frame) yang dirangkai sedemikian rupa, sehingga dapat menjadikan gambar tersebut seolah-olah bergerak. Jumlah gambar yang ditampilkan tiap detiknya disebut sebagai framerate, dengan satuan frames per second (fps). Semakin tinggi nilai framerate, maka makin banyak jumlah frame yang ditampilkan tiap detiknya, sehingga pergerakan antar gambar juga semakin cepat. 2.1.1 Metode Video Scan Terdapat dua metode dalam menampilkan atau melakukan scan pada video digital, yaitu progressive dan interlace [MED05]. 1. Progressive Metode
progressive
merupakan
metode
konvensional
dalam
proses
menampilkan video, yaitu secara baris per baris dengan sekuensial, dari kiri ke kanan, dan dari atas ke bawah. Contoh perangkat keras yang memakai metode ini adalah monitor CRT ataupun LCD pada komputer, atau High-Definition Television (HDTV). 2. Interlace Metode interlace menampilkan video dengan membagi baris-baris pada gambar menjadi dua bagian, yaitu baris bernomor ganjil dan baris bernomor genap. Setiap kumpulan baris tersebut dinamakan dengan field, sehingga terdapat dua buah field untuk satu gambar. Untuk memperlihatkan gambar secara utuh, kedua field ini harus ditampilkan secara bergantian.
II-1
II-2 Contoh perangkat keras yang menggunakan metode ini adalah Low-Definition Television (LDTV). Contoh tampilan dengan kedua metode ditunjukkan oleh Gambar II–1. Kebutuhan bandwidth menjadi perbedaan diantara keduanya, dimana metode interlace hanya membutuhkan separuh bandwidth dari metode progressive. Hal ini diakibatkan karena metode interlace membagi gambar menjadi dua bagian, sehingga hanya setengah gambar tersebut yang dikirim pada setiap proses pengiriman dilakukan.
Gambar II–1 Contoh tampilan frame dengan metode progressive dan interlace
Namun demikian, metode interlace memiliki kelemahan dimana bidang garis kosong yang terdapat pada field dapat terlihat, apabila video dengan interlaced scanning dimainkan dengan kecepatan framerate yang lebih rendah [CAN08]. Metode interlace awalnya dibuat untuk menghemat bandwidth yang dibutuhkan oleh progressive. Namun perangkat keras yang ada sekarang ini sudah dapat mengirimkan dan memproses data berukuran besar dalam waktu relatif cepat, sehingga keperluan akan bandwidth yang besar oleh metode progressive tidak lagi menjadi kendala. 2.1.2 Sinyal Video Berdasarkan sinyal yang digunakan, video dapat dibagi menjadi dua jenis, yaitu video analog dan video digital. Video analog memakai sinyal analog dalam pengiriman data maupun pengolahan videonya, dimana sinyal tersebut memiliki komponen luminance dan chrominance dari video. Ada berbagai jenis format pada video analog; dua format diantaranya adalah [MED05]: 1. Phase Alternating Line (PAL) Format PAL memiliki 625 baris resolusi yang ditampilkan dengan kecepatan 25 fps. Format ini digunakan pada sistem penyiaran televisi di negara-negara Eropa, dan beberapa negara di Asia, termasuk Indonesia.
II-3 2. National Television System Committee (NTSC) Format NTSC memiliki 525 baris resolusi yang ditampilkan dengan kecepatan 29,97 fps. Sistem penyiaran televisi di Amerika Serikat menggunakan format ini. Sedangkan video digital bekerja pada lingkungan digital, yang menggunakan sinyal digital dalam pengolahannya. Video digital dengan format uncompressed memiliki kualitas paling tinggi, sekaligus berukuran sangat besar, karena banyak sekali informasi gambar yang harus disimpan untuk dapat menampilkan video tersebut. Sebuah frame dengan resolusi 640 x 480 pixel yang disimpan dengan kualitas 24-bit per pixel akan berukuran sekitar 900 kilobytes. Jika frame tersebut dipakai pada video dengan framerate 25 fps, maka video dengan durasi satu detik saja akan berukuran 22,5 megabytes. Proses pengiriman video dengan ukuran sebesar ini tentu akan sangat tidak praktis. Untuk memperkecil ukuran video, dapat dilakukan proses kompresi dengan membuang data yang dianggap redundan pada video. Memang terdapat penurunan kualitas video, namun dengan mengatur parameter kompresi seperti jenis, tingkat, serta algoritma kompresi yang dipakai, akan dapat dihasilkan video dengan kualitas tidak jauh berbeda dengan video yang asli. Terdapat dua jenis kompresi yang dapat dilakukan, yaitu kompresi intraframe dan interframe. 1. Kompresi intraframe Proses pada kompresi ini berfokus pada sebuah frame saja, sehingga cara-cara pada kompresi ini mirip dengan kompresi pada gambar. Salah satu cara yang sering digunakan adalah melakukan transformasi frame ke dalam domain frekuensi, lalu melakukan pemotongan nilai dan proses kompresi lainnya pada nilai domain tersebut. Untuk menampilkan gambar kembali, digunakan kebalikan dari proses transformasi yang dipakai. Contohnya adalah kompresi gambar berformat JPEG yang menggunakan Discrete Cosine Transform (DCT) dan Inverse DCT (IDCT) sebagai proses transformasi [YOS01]. DCT pada kompresi JPEG menerima masukan berupa matriks gambar berukuran 8 x 8, yang kemudian mengubahnya menjadi matriks frekuensi dengan ukuran sama. Sedangkan proses IDCT yang merupakan kebalikan dari
II-4 DCT, akan mengembalikan koefisien pada matriks frekuensi menjadi matriks gambar. Persamaan DCT dapat dilihat pada persamaan berikut.
(1)
Sedangkan persamaan IDCT adalah sebagai berikut.
(2)
f(x,y) adalah nilai pada gambar, dimana x dan y merupakan koordinat titiknya. F(u,v) adalah nilai pada matriks frekuensi, dengan u dan v adalah koordinat matriks tersebut. C(i) = 1/
apabila nilai i sama dengan 0, dan C(i) = 1
apabila nilai i bukan 0. Terdapat dua jenis koefisien pada matriks frekuensi, yaitu koefisien DC dan koefisien AC. Koefisien DC merupakan nilai pada frekuensi 0. Jumlah koefisien ini hanya satu, dan terletak pada sudut kiri atas matriks frekuensi. Sedangkan 63 koefisien lainnya merupakan koefisien AC yang frekuensinya lebih besar dari 0; semakin ke kanan maka menunjuk pada frekuensi horizontal yang semakin tinggi; semakin bawah maka menunjuk pada frekuensi vertikal yang semakin tinggi [SOP08]. Gambar II–2 menunjukkan letak koefisien DC dan AC, serta alur proses DCT dan IDCT pada perubahan domain gambar. koefisien DC
koefisien AC
DCT
domain spasial f(x,y)
IDCT
domain frekuensi F(u,v)
domain spasial f(x,y)
Gambar II–2 Alur DCT dan IDCT
Pada kebanyakan gambar, nilai koefisien pada frekuensi tinggi bernilai kecil, sehingga pengaruhnya pada gambar juga kecil. Maka dengan membuang nilai pada frekuensi tinggi, dan menyimpan nilai pada frekuensi rendah, proses
II-5 kompresi dapat dilakukan. Proses pemotongan nilai ini dinamakan dengan proses kuantisasi, yaitu membagi matriks frekuensi dengan suatu nilai yang disebut sebagai matriks kuantisasi. Hasil yang diharapkan adalah nilai frekuensi tinggi pada matriks akan menjadi 0. Inilah proses dari kompresi intraframe yang paling banyak mengurangi data gambar. Untuk menampilkan gambar kembali, dilakukan proses dekuantisasi sebagai kebalikan dari proses ini, yaitu mengalikan nilai matriks frekuensi dengan matriks kuantisasi. Pemilihan nilai pada matriks kuantisasi dibebaskan pada encoder, dimana semakin besar nilainya maka kompresi akan semakin tinggi, sekaligus akan makin menurunkan kualitas. Salah satu matriks kuantisasi yang banyak digunakan [CCI93], terdapat pada contoh proses kuantisasi pada Gambar II–3.
Gambar II–3 Contoh proses kuantisasi dan dekuantisasi
Matriks frekuensi yang telah dikuantisasi biasanya banyak memiliki nilai 0 di bagian kanan bawah. Proses kompresi dilanjutkan dengan melakukan entropy coding untuk menyimpan matriks dengan urutan zig-zag, seperti pada Gambar II–4 [CCI93]. Dengan cara ini, nilai 0 akan terkumpul berurut sehingga penyimpanan nilai matriks ini dapat dipersingkat.
II-6
Gambar II–4 Urutan zig-zag pada entropy coding
2. Kompresi interframe Kebanyakan frame tidak memiliki perbedaan dengan frame berikutnya, yaitu hanya sedikit bagian yang berubah, atau bahkan tidak terdapat perbedaan sama sekali. Oleh karena itu, rangkaian frame tersebut tidak perlu disimpan semuanya, cukup hanya menyimpan beberapa frame sebagai referensi, dan sisanya hanya menyimpan perubahan-perubahan yang terjadi dari frame tersebut. Pencarian perubahan antar blok pada frame yang berbeda dinamakan dengan motion estimation. Nilai pergeseran lokasi antar kedua blok dinamakan dengan motion vector, dan nilai inilah yang disimpan. Sedangkan proses kebalikannya, yaitu mengaplikasikan motion vector pada frame untuk memperoleh frame berikutnya disebut dengan motion compensation. 2.1.3 Format Video Digital Format pada video digital disebut juga sebagai video codec. Sebuah codec memiliki karakteristiknya masing-masing, seperti teknik kompresi yang digunakan, struktur file video, batas maksimum bit-rate yang bisa dipakai, atau fitur-fitur lain yang terdapat pada video tersebut. Terdapat banyak video codec yang tersedia, beberapa contoh diantaranya adalah: 1. MPEG-1 (MPG), yang dibuat oleh Moving Picture Experts Group (MPEG) Video dengan format ini menggunakan DCT sebagai kompresi intraframe, dan motion estimation sebagai kompresi interframe. Pada dokumen spesifikasinya, terdapat cara encode audio codec yang biasanya digabungkan dengan video MPEG-1, yang disebut juga sebagai MPEG-1 Layer III (MP3). Contoh penggunaan video MPEG-1 adalah Video Compact Disc (VCD) [BER08].
II-7 2. H.263, yang dibuat oleh ITU-T Format ini juga menggunakan DCT sebagai kompresi intraframe, serta motion estimation sebagai kompresi interframe. Video dengan format H.263 cocok digunakan untuk keperluan video conference, karena bit-rate yang digunakan rendah [ITU05]. 3. RealVideo (RV), yang dibuat oleh RealNetwork Pada versi awal, format ini menggunakan codec H.263 sebagai dasar pembuatannya, sedangkan versi berikutnya memakai dasar codec H.264. Bitrate dari codec RealVideo juga rendah, sehingga cocok dipakai pada streaming video. Biasanya video ini dipasangkan dengan audio codec RealAudio yang juga dibuat oleh RealNetwork [MCW07]. 4. Windows Media Video (WMV), yang dibuat oleh Microsoft Video codec ini dibuat berdasarkan codec MPEG-4, yang merupakan pengembangan
lebih lanjut
daripada
MPEG-1.
Biasanya
video
ini
digabungkan dengan audio codec Windows Media Audio. Beberapa stasiun radio yang melakukan penyiaran secara on-line menggunakan codec ini untuk melakukan streaming video [COO08]. 2.1.4 Multimedia Container Multimedia container merupakan suatu format yang dapat menyimpan berbagai multimedia seperti video dan audio, sehingga dapat menampilkan video tersebut serta memainkan latar suara secara bersamaan. Istilah “multimedia container” sering dipertukarkan dengan istilah “video”, sehingga sering muncul ambiguitas antara video sebagai container atau sebagai codec. Beberapa contoh multimedia container adalah: 1. MPEG-4 Part 14 (MP4), yang dibuat oleh MPEG Container ini menggunakan struktur file format yang telah distandarisasi oleh ISO, yaitu ISO based media file format. Dukungan video codec yang dimiliki yaitu H.263, WMV, serta semua video dan audio codec yang dibuat oleh MPEG [APP08].
II-8 2. RealMedia (RM), yang dibuat oleh RealNetwork Video dan audio codec yang didukung oleh RealMedia hanya terbatas pada buatan RealNetwork, yaitu RealVideo dan RealAudio [MCW07]. 3. 3GP, yang dibuat oleh 3rd Generation Partnership Project (3GPP) Container 3GP ditujukan untuk keperluan MMS (Multimedia Messaging Service), download, atau streaming, yang juga didukung oleh kebanyakan perangkat mobile phone saat ini. Video codec yang didukung antara lain H.263, H.264, dan MPEG-4, sedangkan audio codec yang didukung adalah AMR dan AAC [3GP07]. 4. Audio Video Interleave (AVI) , yang dibuat oleh Microsoft Format ini mendukung DivX, Cinepak, dan Indeo codec sebagai video, dan MP3 sebagai audio codec. Video dengan format uncompressed juga dapat dikandung oleh AVI [MIC07]. 5. Matroska (MKV) , yang dibuat oleh Matroska Development Team Merupakan open source multimedia container, sehingga dapat mendukung hampir semua video dan audio codec yang ada. Container ini dibuat dengan menggunakan binary XML, sehingga proses pembacaan atau penulisan container ini menjadi lambat dikarenakan kompleksitas desainnya [MAT08]. Pada pengerjaan Tugas Akhir, dipakai format 3GP sebagai multimedia container, dengan video codec H.263. Penjelasan lebih detil mengenai format 3GP dapat dilihat pada Lampiran A, sedangkan codec H.263 dapat dilihat pada Lampiran B. 2.1.5 Color Space Sebuah warna dapat direpresentasikan sebagai gabungan dari komponen-komponen tertentu. Jenis kombinasi komponen ini dinamakan dengan color space. Perbedaan dari tiap color space adalah jumlah variasi warna yang bisa dihasilkan, tingkat kompresi, beserta kompleksitas perhitungannya. Terdapat dua jenis kombinasi komponen color space yang paling banyak digunakan, yaitu: 1. Kombinasi warna Sebuah warna dapat direpresentasikan dengan tiga buah warna dasar, dan warna yang dihasilkan merupakan kombinasi dari intensitas masing-masing
II-9 komponen warna. Warna dasar tersebut adalah merah, hijau, dan biru (RGB), yang juga merupakan salah satu color space. Intensitas masing-masing warna berkisar antara 0 hingga 255; apabila nilai R, G, dan B sama dengan 0 akan menghasilkan warna hitam, sedangkan nilai R, G, dan B sama dengan 255 menjadi warna putih. Color space ini dipakai pada tampilan monitor, atau televisi. Contoh lainnya adalah CMYK, yang memakai warna dasar cyan, magenta, dan yellow. Warna cyan merupakan gabungan dari warna hijau dan biru, magenta dari warna merah dan biru, sedangkan yellow dari warna merah dan hijau. Color space ini merupakan kebalikan dari RGB, dimana nilai C, M, dan Y sama dengan 255 akan menghasilkan warna hitam. Color space ini biasanya digunakan pada printer, sehingga terdapat komponen warna hitam yang berdiri sendiri, dengan alasan akan lebih murah apabila warna hitam dicetak dengan tinta hitam daripada gabungan dari tinta berwarna [DIG08]. 2. Luminance dan chrominance Mata manusia lebih peka terhadap detil kecerahan suatu gambar daripada warna gambar. Oleh karena itu, kecerahan dapat dijadikan suatu komponen penting dalam merepresentasikan warna. Color space dengan kombinasi ini memiliki tiga buah komponen, yaitu sebuah komponen luminance dan dua buah komponen chrominance [DIS08]. Informasi yang disimpan oleh komponen luminance adalah kecerahan pada gambar, yaitu seperti grayscale dari gambar tersebut. Sedangkan informasi warna yang disimpan oleh chrominance adalah nilai warna merah dan biru, dan nilai warna hijau akan didapat dari dua warna tersebut. Seringkali pada prosesnya, dilakukan reduksi pada nilai chrominance, dengan tujuan untuk mengurangi data yang disimpan. Efek pengurangan nilai ini tidak banyak berpengaruh pada kualitas video, karena perbedaannya tidak dapat dipersepsi oleh manusia. Contoh color space yang memakai kombinasi jenis ini adalah YUV dan YCbCr. Perbedaan antar color space ini terletak pada nilai komponen chrominance yang dikandung, yaitu seberapa besar persentase nilai merah dan
II-10 biru yang disimpan. Persamaan untuk melakukan konversi nilai dari color space RGB ke YUV dapat dilihat pada persamaan (3), sedangkan konversi ke YCbCr dapat dilihat pada persamaan (4).
(3)
(4)
2.2 Pengukuran Kualitas Video Dalam melakukan encode video, biasanya terdapat perubahan-perubahan seperti efek blurring, sharpening, atau timbulnya noise. Oleh karena itu, biasanya dilakukan pengukuran kualitas video terlebih dahulu untuk mengetahui bagaimana hasil encode video tersebut; apakah kualitasnya mirip dengan video yang asli atau tidak. Terdapat dua cara pengukuran, yaitu subjektif dan objektif. Subjektif berarti kualitas video ditentukan oleh para penonton video tersebut. Pendapat dari penonton akan beraneka ragam, karena sangat tergantung dari persepsi dan standar masing-masing. Oleh karena itu, dibutuhkan data yang cukup banyak untuk mendapatkan data yang akurat. Hal ini menyebabkan pengukuran dengan cara ini akan memakan banyak waktu dan tenaga. Cara objektif merupakan pengukuran secara matematika terhadap video yang diukur, dan dapat dikerjakan otomatis oleh komputer. Ada atau tidaknya video referensi, mengklasifikasikan cara ini menjadi tiga jenis, yaitu apabila video referensi tersedia secara penuh (full reference), hanya sebagian video referensi yang tersedia (reduced reference), atau tidak tersedianya video referensi (no reference). Pengukuran video secara objektif biasanya dilakukan pada full reference, sehingga terdapat video asli sebagai perbandingan [WAN04]. Metode pengukuran kualitas video secara objektif dilaksanakan dengan mengukur kualitas pada tiap frame video, kemudian diambil nilai rata-ratanya. Dua buah contoh metode pengukuran kualitas antar dua frame adalah PSNR dan SSIM.
II-11 1. Peak Signal to Noise Radio (PSNR) Perhitungan PSNR akan menilai kemiripan gambar berdasarkan besarnya perbedaan yang dianggap sebagai kerusakan pada salah satu gambar. Nilai pada PSNR merupakan hasil pembagian dari kekuatan sinyal maksimal yang diterima, dengan sinyal noise. Cara menghitung PSNR ditunjukkan pada persamaan berikut.
(5)
MAXI adalah nilai warna maksimum pada suatu pixel, yang bernilai 255 untuk gambar bitmap 24-bit. Sedangkan MSE, atau Mean Square Error adalah suatu nilai noise. Tingkat kemiripan yang tinggi akan didapat apabila nilai error (MSE) yang dimasukkan kecil, sehingga nilai PSNR menjadi besar. Satuan nilai PSNR adalah desibel (dB). 2. Structural Similarity (SSIM) Sinyal pada gambar membawa informasi tentang struktur objek pada gambar, dan mata manusia dapat mengekstraksi informasi struktur pada gambar dengan
mudah.
Oleh
karena
itu,
metode
SSIM
bekerja
dengan
membandingkan kesamaan struktur gambar tersebut.
Gambar II–5 Diagram sistem pengukuran SSIM
Informasi struktur suatu objek tidak bergantung pada kecerahan gambar. Oleh karena itu, gambar dipisahkan ke dalam tiga buah komponen, yaitu luminance, contrast, dan struktur, seperti yang terlihat pada Gambar II–5. Ketiga
II-12 komponen tersebut masing-masing akan dibandingkan, kemudian hasilnya dikombinasikan dan menjadi sebuah nilai SSIM [WAN04]. Komponen luminance didapatkan dengan mengambil semua nilai luminance pada gambar, kemudian dicari rata-ratanya. Persamaan mencari nilai ini ditunjukkan pada persamaan (6), dan perbandingan luminance ditunjukkan pada persamaan (7). N adalah banyaknya sinyal luminance yang diterima, dengan x adalah nilai luminance-nya.
dan
adalah nilai rata-rata luminance
pada masing-masing gambar, dan l(x,y) adalah nilai perbedaan luminance-nya. Sebuah konstanta C1 dimasukkan ke dalam persamaan (7) untuk mencegah terjadinya pembagian dengan 0. C1 bernilai (K1L)2, dimana |K1| adalah konstanta yang nilainya di bawah 1, dan L berkisar antara 0 sampai nilai piksel maksimum (255 untuk gambar bitmap 24-bit).
(6)
(7)
Komponen contrast didapatkan dengan memakai standar deviasi dari nilai sinyal asli dikurangi dengan rata-rata luminance, yang ditunjukkan pada persamaan (8).
dan
adalah nilai contrast pada masing-masing gambar, dan
c(x,y) merupakan perbedaan contrast dari kedua gambar, yang ditunjukkan pada persamaan (9). Serupa pada persamaan (7), dimasukkan konstanta C2 untuk mencegah terjadinya pembagian dengan 0. Nilai dari C2 bernilai (K2L)2, dimana |K2| adalah konstanta yang nilainya di bawah 1, dan L berkisar antara 0 sampai nilai piksel maksimum.
(8)
(9)
II-13 Perbandingan komponen struktur dilakukan memakai sinyal sisa dibagi dengan standar deviasinya, yaitu
dan
. Persamaan
untuk mencari nilai perbandingan ini adalah sebagai berikut.
(10)
dimana
(11)
Koefisien C3 dimasukkan untuk menghindari pembagian dengan 0, dan C3 = (K3L)2, dimana |K3| adalah konstanta yang nilainya di bawah 1, dan L berkisar antara 0 sampai nilai piksel maksimum. Dengan menggunakan nilai perbandingan komponen luminance pada (7), contrast pada (9), dan struktur pada (10), pencarian nilai SSIM dapat dilakukan dengan menggunakan persamaan (12). Kisaran nilai SSIM adalah antara 0 hingga 1, dimana gambar yang dibandingkan tingkat kemiripannya tinggi akan mendekati nilai 1.
(12)
Sinyal gambar yang dibandingkan pada SSIM dapat dilakukan secara penuh, atau dipotong per blok-blok. Apabila dilakukan per bagian, maka nilai SSIM yang dihasilkan juga akan sebanyak jumlah bagian tersebut. Supaya didapatkan sebuah nilai saja, maka dapat dicari nilai rata-rata dari semua nilai yang telah dihasilkan, dan disebut sebagai Mean SSIM (MSSIM). Persamaan (13) menunjukkan cara untuk mendapatkan nilai ini.
(13)
II-14
2.3 Steganografi Steganografi merupakan salah satu bagian dari kriptografi, yaitu ilmu dan seni dalam menyembunyikan pesan rahasia sedemikian sehingga manusia tidak dapat menyadari keberadaan pesan tersebut. Teknik steganografi sudah dilakukan sejak tahun 440 B.C. oleh Bangsa Yunani, dimana pengiriman pesan dilakukan dengan cara mencukur habis kepala seorang budak, lalu menuliskan pesan tersebut pada kulit kepalanya. Kemudian budak tersebut dikirim setelah pesan tertutupi oleh rambut yang tumbuh. Pesan dapat dibaca dengan mencukur kembali rambut mereka [ROB04]. Pada masa kini, steganografi lebih banyak dilakukan pada data digital, dengan menggunakan bentuk media digital seperti teks, gambar, audio, atau video. Steganografi digital lebih menekankan kepada bagaimana cara penyisipan pesan dapat dikerjakan tanpa banyak mengubah kualitas media tersebut. Proses steganografi mirip dengan digital watermarking, namun berbeda dalam fokus dan tujuan pemakaiannya. Digital watermarking berfokus pada media yang menjadi tempat penyisipan, dan tujuannya adalah untuk memproteksi media tersebut, sehingga tidak terlalu bermasalah apabila perubahan yang diakibatkan terlihat atau tidak. Sedangkan steganografi berfokus pada pesan yang disisipkan, dan bertujuan untuk menyembunyikan pesan tersebut ke dalam media, sehingga hasil dari proses penyisipan tidak boleh terlihat atau terdeteksi [JOH98].
Gambar II–6 Proses penyisipan pesan
Gambar II–7 Proses ekstraksi pesan
II-15 Steganografi meliputi dua buah proses, yaitu penyisipan dan ekstraksi pesan. Contoh penyisipan suatu pesan dengan media gambar dapat dilihat pada Gambar II–6, sedangkan proses ekstraksi pesan diperlihatkan pada Gambar II–7. Proses penyisipan pesan pada steganografi membutuhkan dua buah masukan, yaitu pesan yang ingin disembunyikan, dan media penyisipan. Hasil dari proses ini dinamakan dengan stego-object, yaitu suatu media yang mirip dengan media pada masukan, yang sudah terdapat pesan tersembunyi di dalamnya. Kebanyakan media yang merupakan stego-object tidak dapat dikembalikan lagi seperti semula, karena data dari media stego-object sudah diubah. Pada implementasinya, biasanya terdapat masukan lain yang ditambahkan, yaitu sebuah kunci atau sandi rahasia untuk memperketat keamanan. Penggunaan kunci ini digunakan sebagai pengacak pada penyisipan. Contoh pada media gambar adalah blok-blok mana saja yang menjadi tempat disisipkannya pesan tersebut, atau bagaimana urutan frame yang akan digunakan sebagai tempat penyisipan pada media video. Hanya kunci yang benar yang dapat mengambil kembali pesan asli secara utuh. Apabila kunci yang dimasukkan salah, maka proses ekstraksi pesan akan gagal, atau menghasilkan pesan yang salah. Proses penyisipan pesan dengan menggunakan kunci terdapat pada Gambar II–8, sedangkan proses ekstraksi pesan ditunjukkan pada Gambar II–9. Terlihat pada proses ekstraksi dengan menggunakan kunci yang salah, akan dibaca blok-blok yang tidak sesuai sehingga menghasilkan pesan yang berbeda dengan yang asli.
Penyisipan
+ Pesan
Pesan Media
Blok berisi pesan
Kunci
Gambar II–8 Proses penyisipan pesan memakai kunci
Stego-object
II-16
Ekstraksi
Pesan Blok berisi pesan
Stego-object Kunci yang benar
Ekstraksi
Pesan Blok yang acak
Stego-object Kunci yang salah
Gambar II–9 Proses ekstraksi pesan memakai kunci
Terdapat banyak teknik-teknik penyisipan yang dapat diterapkan pada media video atau gambar, diantaranya adalah Least Significant Bit Insertion, Masking and Filtering, dan Transformations [INS08]. 2.3.1 Least Significant Bit Insertion Cara yang dilakukan pada metode ini adalah mengganti least significant bit (LSB) dari media dengan bit-bit pesan. Biasanya diterapkan pada format gambar atau video yang tidak dikompresi, seperti bitmap 24-bit, atau AVI.
Gambar II–10 Penyisipan data menggunakan LSB Insertion
Contoh penggunaan metode LSB Insertion pada gambar bitmap 24-bit dapat dilihat pada Gambar II–10. Pada gambar, diambil sebuah daerah acak yang memiliki tiga pixel, dimana masing-masing pixel memiliki 24-bit data yang terdiri dari 8-bit warna merah, 8-bit warna hijau, dan 8-bit warna biru. Pesan yang disisipkan adalah sebuah
II-17 karakter a, dengan bilangan ASCII-nya adalah 97, atau 01100001 dalam format biner. Hasil dari penyisipan ditunjukkan dengan bit yang bergarisbawah sebagai bit pesan, dimana bit yang dicetak tebal adalah bit yang berubah. Akibat dari penyisipan ini adalah bertambah/berkurangnya nilai warna tertentu pada pixel tersebut sebesar 1-bit, dan manusia tidak dapat mendeteksi perubahan yang sekecil ini. Oleh karena efek perubahannya yang kecil, beserta kemudahan dalam mengimplementasi algoritmanya, metode LSB Insertion merupakan metode yang paling populer digunakan. Akan tetapi gambar hasil penyisipan ini tidak tahan terhadap manipulasi gambar, seperti mengubah ukuran resolusi gambar, atau pengubahan format gambar ke format lain. Perlakuan demikian akan merusak bit-bit pesan di dalamnya, sehingga tidak dapat dibaca kembali. 2.3.2 Masking and Filtering Teknik ini menyisipkan pesan langsung pada bagian yang tampak pada gambar, namun dilakukan sedemikian rupa tanpa memberikan efek yang dapat dideteksi oleh manusia. Prosesnya mirip pada digital watermarking, yaitu dengan cara mengubah nilai luminance pada area-area tertentu dalam gambar. Gambar II–11 menunjukkan hasil digital watermarking, dengan menampakkan area berbentuk tulisan dimana nilai luminance-nya telah dinaikkan sebesar 15 persen. Dengan memperkecil perubahan nilai ini, misalnya hanya sebesar 10 atau 8 persen, maka pesan dapat disisipkan tanpa memperlihatkan efek pada gambar [JOH98].
Gambar II–11 Contoh gambar dengan watermark
II-18 Karena penyisipan pesan dilakukan langsung ke dalam gambar, maka gambar dengan lossy compression dapat digunakan. Gambar yang dihasilkan akan lebih tahan terhadap beberapa proses manipulasi gambar, seperti perubahan format gambar ke format lain, pemotongan, atau rotasi. 2.3.3 Transformations Metode ini menyisipkan pesan dalam domain frekuensi, bukan pada domain spasial seperti dua metode sebelumnya. Oleh karena itu, cara ini hanya dapat dipakai pada format gambar yang disimpan dalam domain frekuensi, seperti JPEG yang menggunakan Discrete Cosine Transform (DCT) sebagai proses transformasi domain. Persamaan transformasi DCT telah didefinisikan pada persamaan (1).
Gambar II–12 Contoh proses penyisipan pada koefisien DCT
Proses penyisipan pesan pada koefisien DCT, atau disebut sebagai DCT Modification, dicontohkan pada Gambar II–12. Terdapat matriks frekuensi hasil DCT berukuran 8 x 8 yang menunjuk suatu area tertentu. Pesan yang ingin ditambahkan adalah bit 01100001 atau karakter „a‟, dan hasilnya ditunjukkan dengan angka-angka pada matriks di sebelah kanan yang digarisbawahi. Angka yang dicetak tebal berarti telah mengalami perubahan dengan nilai aslinya. Detil dari perubahan pada koefisien tersebut adalah sebagai berikut: -26
(1111 1111 0001 1010) -- 0 --> -26
(1111 1111 0001 1010)
-3
(1111 1111 0000 0011) -- 1 --> -3
(1111 1111 0000 0011)
-6
(1111 1111 0000 0110) -- 1 --> -7
(1111 1111 0000 0111)
2
(0000 0000 0000 0010) -- 0 -->
2
(0000 0000 0000 0010)
2
(0000 0000 0000 0010) -- 0 -->
2
(0000 0000 0000 0010)
-2
(1111 1111 0000 0010) -- 0 --> -2
(1111 1111 0000 0010)
-4
(1111 1111 0000 0100) -- 0 --> -4
(1111 1111 0000 0100)
-3
(1111 1111 0000 0011) -- 1 --> -3
(1111 1111 0000 0011)
II-19 Perubahan pada angka 1 dapat menjadikannya nilai 0, dan juga sebaliknya. Hal ini dapat menyebabkan ukuran file gambar berubah, karena proses entropy coding yang digunakan untuk menyimpan data dipengaruhi oleh jumlah 0 pada matriks. Oleh karena itu, angka 1 atau 0 pada matriks tidak diikutsertakan dalam penyisipan. Penyisipan pesan pada matriks frekuensi memang akan mempengaruhi area tersebut, namun karena penyisipan data dilakukan pada domain frekuensi, perubahan yang terjadi tidak mengubah bagian yang tampak pada gambar.
2.4 Pembangkitan Bilangan Acak Konsep pembangkitan bilangan acak banyak sekali ditemukan dalam teori di bidang kriptografi, karena inti dari pembangkitan bilangan acak adalah memberikan sebuah deretan angka, dimana akan sangat sulit untuk memprediksi bagaimana deretan angka tersebut. Contohnya adalah terdapat suatu metode enkripsi yang membutuhkan sebuah nilai tertentu sebagai masukan untuk pertama kalinya, dan nilai ini haruslah seacak mungkin supaya kemanan enkripsi ini tidak dapat diserang oleh pihak ketiga. Algoritma pembangkit bilangan acak membutuhkan suatu angka yang dinamakan dengan seed, dimana deretan bilangan acak yang dihasilkan akan tergantung dari nilai seed tersebut. Nilai seed yang sama akan menghasilkan deretan yang sama pula. Dan bilangan acak yang dihasilkan ini sebenarnya tidak benar-benar acak, karena deretan bilangan tersebut akan berulang setelah periode tertentu. Oleh karena itu, bilangan acak ini disebut juga pseudo-random number.
(14)
Salah satu algoritma untuk membangkitkan deretan bilangan acak adalah linear congruential algorithm (LCG), yang ditunjukkan pada persamaan (14). xi+1 merupakan bilangan acak yang dihasilkan, dan akan tergantung dari nilai a, c, m, dan bilangan acak sebelumnya, yaitu xi. Nilai i berkisar dari 0 hingga banyaknya jumlah deretan yang diinginkan, dimana i = 0 akan menunjuk kepada nilai seed. Contoh impelemntasi algoritma LCG adalah pada bahasa pemrograman Java, dengan nilai default a = 0x5deece66d L, c = 11, dan m = 248 – 1. Pada Tugas Akhir, akan digunakan algoritma LCG yang sudah disediakan pada Java. [LIN06].