Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Kompresi dan Watermark Citra Pengolahan Citra Digital Materi 7 Eko Prasetyo Teknik Informatika UMG-UPN Veteran Jatim 2012.

Presentasi serupa


Presentasi berjudul: "Kompresi dan Watermark Citra Pengolahan Citra Digital Materi 7 Eko Prasetyo Teknik Informatika UMG-UPN Veteran Jatim 2012."— Transcript presentasi:

1 Kompresi dan Watermark Citra Pengolahan Citra Digital Materi 7 Eko Prasetyo Teknik Informatika UMG-UPN Veteran Jatim 2012

2 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: ◦ Dan untuk durasi film 2 jam menjadi: ◦ Atau sekitar 224 GB (gigabytes) data, atau sekitar 27 keping DVD dual-layer 8.5 GB (asumsi DVD 12 cm) 2

3 Konsep Untuk menjadi 1 keping DVD, maka harus dikompres dengan faktor sekitar ◦ 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

4 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: Rasio 10 (atau 10:1) artinya 10 bit data asli untuk setiap 1 bit data dalam representasinya. ◦ Data redundan relatif: 4

5 Jenis representasi citra 5 JenisKeterangan TIFFTagged Image File Format. Format file yang fleksibel dan didukung oleh banyak standart kompresi, seperti LZW. PNGPortable Network Graphic. Format file losslessly compressed citra full color dengan transparansi (bisa mencapai 48 bit/piksel) BMPWindows Bitmap. Format umum untuk citra tidak terkompres. JPEGJoint Photographic Experts Group, standart untuk kualitas citra foto. Lossy baseline coding system. Menggunakan teknik DCT blok 8x8, Huffman, Golomb, dan Run-Length MPEG-1Motion Pictures Expert Group. Standart untuk CD-ROM. Didukung semua aplikasi komputer dan DVD player. Didukung kompresi Huffman, Arithmetic, Run-Length, dsb. GIFGraphic Interchange Format. Format file yang menggunakan teknik LZW. Banyak digunakan untuk file animasi kecil di web atau film dengan resolusi kecil HDVHigh Definition Video. Pengembangan DV untuk televisi HD yang menggunakan kompresi mirip MPEG-2, termasuk predictive coding

6 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

7 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.Buat daftar node. Setiap node berisi simbol dan probabilitasnya 2.Cari dua node dengan probabilitas terkecil 3.Jadikan keduanya sebagai anak node baru yang mempunyai probabilitas dari penjumlahan probabilitas keduanya. 4.Lepaskan dua anak tadi dari daftar dan tambahkan node parent yang baru tadi kedalam daftar. 5.Ulangi langkah 2-4 sampai daftar hanya berisi satu node. 7

8 Contoh Citra asli IntensitasJumlahProbabilitas Representasi b = 1 byte x 20 piksel = 20 byte = 160 bit Langkah 1 Langkah 2

9 9 Langkah 3 Langkah 4

10 10 Langkah 5 Langkah 6

11 11 Langkah 7

12 12 Langkah 8

13 13 Kamus yang didapat Intensi tas Probabili tas Encoding L avg = ((0.05)  6+(0.2)  2+(0)  6 +(0.2)  2 +(0.1)  4 +(0.25)  2 +(0.05)  5+(0.15)  3) = ( ) = 2.7 bits/piksel b‘ = L avg  jumlah_piksel = 2.7  20 = 54 bit

14 Citra asli b =160 bit Citra setelah dikompres b' = 54 bit Rasio kompresi Data redundan relatif

15 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) 15

16 16 f = [ ]; 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); Source code contoh

17 17 >> hcode' ans = Columns 1 through Columns 15 through Columns 29 through Columns 43 through Hasil kompresi

18 Block Truncate Coding 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. 18

19 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 ◦ adalah rata-rata, nilai  juga disimpan. 19

20 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”: ◦ Dimana  standar deviasi, ◦ m jumlah piksel dalam 1 blok, ◦ q adalah jumlah piksel dalam blok yang lebih besar dari Rekonstruksi citra menggunakan formula: 20

21 Contoh 21 Salah satu blok (4x4) dalam citra asli Mean = Standar Deviasi = 4.5 decoding Salah satu blok (4x4) dalam citra hasil decoding encoding

22 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: Data redundan relatif: 22

23 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. Jika (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 dengan 9). Jika ukuran kamus terlalu kecil berpengaruh pada kemampuan deteksi sekuens level intensitas jadi lemah, tapi jika terlalu besar akan melemahkan performa kompresi. 23

24 Contoh 1 24 Citra asli Rangkaian saat ini diakui Piksel yang sedang diproses Output encode Code Word Entry kamus b‘ = 12x9 = 108 bit Rasio kompresi: Data redundan relatif:

25 Contoh 2 25 Citra asli b‘ = 10x9 = 90 bit Rasio kompresi: Data redundan relatif:

26 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 26

27 Visible watermark Visible watermark adalah sub-citra atau citra semi-transparan (opaque) yang diletakkan diatas citra yang lain (citra yang diberi watermark), sehingga watermark-nya masih dapat dilihat oleh pengamat. Banyak digunakan di industri siaran televisi. Formula untuk memasukkan watermark ke citra asli: ◦ Dimana f w adalah citra yang sudah di watermark, f adalah citra asli, w adalah citra watermark,  adalah konstanta yang mengontrol penampakan relatif (opaque) dari watermarknya. 27

28 Contoh Citra asli watermark watermark Opaque = 0.3 Citra asli setelah diwatermark Watermark setelah di recover

29 Contoh 29 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); % Kembalikan watermark hf = double(hf); iwm = hf - (1-alpha)*f; iwm = uint8(iwm); figure, imshow(iwm); Opaque = 0.3 Citra watermark setelah di recover Citra asli Citra watermark

30 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: ◦ 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. 30

31 Contoh Citra asli watermark watermark Opaque = 0.3 Citra asli setelah diwatermark Watermark setelah di recover

32 Contoh 32 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); hf = uint8(hf); figure, imshow(hf); % Kembalikan watermark hf = double(hf); iwm = hf - 4*(floor(hf./4)); iwm = iwm/3; figure, imshow(iwm); Invisible watermark Citra watermark setelah di recover Citra asli Citra watermark

33 ANY QUESTION ? To Be Continued … 33


Download ppt "Kompresi dan Watermark Citra Pengolahan Citra Digital Materi 7 Eko Prasetyo Teknik Informatika UMG-UPN Veteran Jatim 2012."

Presentasi serupa


Iklan oleh Google