A Self-Reference Watermarking Scheme Based on Wet Paper Coding Chair Professor Chin-Chen Chang (張真誠) National Tsing Hua University National Chung Cheng University Feng Chia University http://msn.iecs.fcu.edu.tw/~ccc
Outline Introduction Related works Self-reference watermarking scheme Experimental results Conclusions
Introduction (1/2) Fragile watermarking technique Protect the integrity of image content Detect and locate the tampered areas (a) Original image (b) Tampered image (c) Detected image
Introduction (2/2) Detect and locate the tampered areas Restore the tampered areas (b) Tampered image (c) Detected image (c) Restored image
Related Works — VQ Compression (16, 200, …, 90) 1 (35, 22, …, 100) 2 (40, 255, …, 59) . 254 (90, 102, …, 98) 255 (145, 16, …, 99) 1 60 61 175 … 100 95 203 . . . . Index table Original image Codebook
Vector Quantization (VQ) Codebook Training Codebook generation 1 2 . N-1 Training images Training set Separating all training images to vectors
Vector Quantization (VQ) Codebook Training Codebook generation (Ex: codebook size = 256) 1 . 1 . 254 255 N-1 Initial codebook Training set Codebook initiation
Vector Quantization (VQ) Codebook Training LBG algorithm Training 256 codewords each time K times Until the difference between every two times is smaller than the threshold
An Example of VQ Compression To encode an input vector v = (10, 37, …… , 61, 20) (1) Compute the distance between v with all vectors in codebook d(v, cw0) = 115.8 d(v, cw1) = 86.8 d(v, cw2) = 104.3 d(v, cw3) = 129.1 d(v, cw4) = 91.6 d(v, cw5) = 78.9 d(v, cw6) = 61.5 d(v, cw7) = 98.4 d(v, cw8) = 13.2 ··· d(v, cw255) = 136.3 (2) So, we choose cw8 to replace the input vector v. Index Codewords 3 2 ··· 60 18 1 79 28 11 34 4 10 66 23 7 16 88 12 20 5 22 15 6 9 8 17 39 50 19 255 25 75 Codebook
An Example of VQ Compression
Related Works — Wet Paper Coding Key 1 1 1 Fridrich, J. Goljan, M., Lisonek, P. and Soukal, D., “Writing on Wet Paper,” IEEE Transactions on Signal Processing, vol. 53, no. 10, pp. 3923- 3935, 2005.
An Example of Wet Paper Coding × = ? 21 : 00010101 30 : 00011110 Random Matrix Secret Data LSB of Cover Image The important area is marked as wet pixel 21 30 30 20 : 00010100 30 : 00011110 31 : 00011111 Cover Image 20 30 31 Stego-image
Self-reference watermarking scheme (1/3) Authentication embedding layer : wet pixel i Authentication code : AC = HASH(1000001000001001) = 224 96 89 207 94 86 81 80 88 85 84 83 82 215 Original image 11100000 01100000 01011001 11001111 01011110 01010110 01010001 01010000 01011000 01010101 01010100 01010011 01010010 11010111 13
Secret Key LSB1 AC : wet pixel wet paper coding = = ≠ SK·LSB1 = AC wet paper coding SK·LSB1 = AC = SK·LSB1 = ≠ 11100000 01100000 01011001 11001111 01011110 01010110 01010001 01010000 01011000 01010101 01010100 01010011 01010010 11010111 11100000 01100001 01011001 11001111 01011110 01010110 01010001 01011000 01010101 01010100 01010011 11010110 224 96 89 207 94 86 81 80 88 85 84 83 82 215 224 97 89 207 94 86 81 88 85 84 83 214 14
Self-reference watermarking scheme (2/3) Restoration embedding layer VQ Encoding i 1 2 3 127 255 … (120,155,…,80) (100,125,…,150) (217,135,…,120) 1 16 125 72 98 ··· 32 17 65 22 3 4 9 8 12 201 113 54 88 145 119 76 127 43 96 52 73 62 89 r (49,117,…,25) Original image (11,220,…,39) (72,68,…,113) Codebook Index table 15
Self-reference watermarking scheme (3/3) Restoration embedding layer : wet pixel i 83 87 93 96 86 95 99 84 94 LSB2 r Original image 1 16 ··· 32 17 4 9 001010011 001010111 001011101 001100000 001010110 001011111 001100011 001010100 001011110 Restoration bits: IDX = 00000001 16
Secret Key LSB2 IDX : wet pixel wet paper coding = = ≠ SK·LSB2 = IDX wet paper coding SK·LSB2 = IDX = SK·LSB2 = ≠ 001010001 001010101 001011101 001100000 001010100 001100011 001100010 001011110 001011111 001010011 001010111 001011101 001100000 001010110 001011111 001100011 001010100 001011110 81 85 93 96 84 99 98 94 95 83 87 93 96 86 95 99 84 94 17
Verification and restoration (1/2) Verification layer i Verified authentication code : AUT = HASH(1100101011001110) = 159 160 155 158 24 150 27 153 26 154 20 22 15 19 Tampered block Original image 10011111 10100000 10011011 10011110 00011000 10010110 00011011 10011001 00011010 10011010 00010100 00010110 00001111 00010011 18
Non-tampered blcok Tampered block Secret Key LSB1 AC Non-tampered blcok SK·LSB1 = AC = = ≠ SK·LSB1 Tampered block SK·LSB1 ≠ AC 159 160 155 158 24 150 27 153 26 154 20 22 15 19 10011111 10100000 10011011 10011110 00011000 10010110 00011011 10011001 00011010 10011010 00010100 00010110 00001111 00010011 19
Verification and restoration (2/2) Reconstruction layer i 81 85 93 96 84 99 98 94 95 LSB2 r Original image 001010001 001010101 001011101 001100000 001010100 001100011 001100010 001011110 001011111 20
Convert to decimal number: 1 2 3 127 255 … (120,155,…,80) (100,125,…,150) Convert to decimal number: 1 (217,135,…,120) (49,117,…,25) (11,220,…,39) = SK·LSB2 = (72,68,…,113) Codebook Repair ○ ✔ Secret Key LSB2 IDX 21 Original image
Experimental Results 22
Tampering attack and the detection results (1/3) For smooth image Airplane (a) Airplane, PSNR=47.17 dB (b) Noised image from (a) (c) Detected result from (a) 23
Tampering attack and the detection results (2/3) For smooth image Lena (a) Lena, PSNR=47.19 dB (b) Manipulated image from (a) (c) Detected result from (a) 24
Tampering attack and the detection results (3/3) For smooth image Pepper (a) Pepper, PSNR=47.16 dB (b) Manipulated image from (a) (c) Detected result from (a) 25
Detection and restoration (1/3) For smooth image Airplane (a) Enlarged watermarked image Airplane, PSNR=47.17 dB (b) Manipulated image with cropping, PSNR=28.64 dB 26 (c) Detection result (marked with black dots) (d) Restoration result, PSNR=41.35 dB
Detection and restoration (2/3) For smooth image Lena (a) Enlarged watermarked image Lena, PSNR=47.19 dB (b) Manipulated image with cropping, PSNR=25.78 dB 27 (c) Detection result (marked with black dots) (d) Restoration result, PSNR=44.89 dB
Detection and restoration (3/3) For smooth image Pepper (a) Enlarged watermarked image Lena, PSNR=47.16 dB (b) Manipulated image with cropping, PSNR=22.46 dB 28 (c) Detection result (marked with black dots) (d) Restoration result, PSNR=41.96 dB
Conclusions Propose a self-reference watermarking approach Utilize VQ to achieve the reconstruction data with high compression rate Using wet-paper coding to improve the security Detect and locate the tampered regions sensitively Reconstruct the invalid regions with satisfactory quality Protect the integrity of image content