A message-based cocktail watermarking system Source: Pattern Recognition Vol. 36, 2003, pp. 957 - 968 Authors: Gwo-Jong Yuam, Chun-Shien Lub, Hong-Yuan Mark Liaob Speaker: Yeh Jun-Bin Date: 2004.04.27
Outline Wavelet Code generation Cocktail Watermark Inexact matching Experimental results Conclusions
Flowchart of proposed method
Wavelet 1” Wavelet LL2 HL2 LH2 HH2 2” Wavelet LL1 HL1 LH1 HH1
Wavelet(cont.) Phase 1) Horizontal: Phase 2) Vertical: A B C D E F G H J K L M N O P A+B C+D A-B C-D E+F G+H E-F G-H I+J K+L I-J K-L M+N O+P M-N O-P ㄅ ㄆ ㄇ ㄈ ㄉ ㄊ ㄋ ㄌ ㄍ ㄎ ㄏ ㄐ ㄑ ㄒ ㄓ ㄔ Phase 2) Vertical: ㄅ ㄆ ㄇ ㄈ ㄉ ㄊ ㄋ ㄌ ㄍ ㄎ ㄏ ㄐ ㄑ ㄒ ㄓ ㄔ ㄅ+ㄉ ㄆ+ㄊ ㄇ+ㄋ ㄈ+ㄌ ㄍ+ㄑ ㄎ+ㄒ ㄏ+ㄓ ㄐ+ㄔ ㄅ-ㄉ ㄆ-ㄊ ㄇ-ㄋ ㄈ-ㄌ ㄍ-ㄑ ㄎ-ㄒ ㄏ-ㄓ ㄐ-ㄔ
Wavelet(cont.) Phase 1) Horizontal : Example Phase 2) Vertical : 20 15 30 17 16 31 22 18 25 21 19 35 50 5 10 33 53 1 9 42 -3 -8 43 37 -1 35 50 5 10 33 53 1 9 42 -3 -8 43 37 -1 Phase 2) Vertical : 35 50 5 10 33 53 1 9 42 -3 -8 43 37 -1 68 103 6 19 76 79 -4 -7 2 -3 4 1 -10 5 -2 -9 326 -38 6 19 16 -32 2 -7 -3 4 1 -10 5 -2 -9 (Level one is done) (Level two is done)
Flowchart of proposed method
Code generation Hadamard code guarantee the maximal hamming distance Map ASCII code to Hadamard code Code generate: H1 = (1) H2n = Where –Hn is complement of Hn Ex: H2 = , H4 =
Code generation (cont.) A: 1111 1111 B: 1010 1010 C: 1100 1100 D: 1001 1001 E: 1111 0000 F: 1010 0101 G: 1100 0011 H: 1001 0110
Flowchart of proposed method
Attack types 320 240 DWT 80 20 10 40 15 sharp compress
Cocktail Watermark - Encode Note: PM and NM are the form of these formula, but not equal. For more detail, please read the original paper. Original image 326+1*1=327 -38+1*1= -37 326 -38 6 19 16 -32 2 -7 -3 4 1 -10 5 -2 -9 Gaussian Distribution P N 1 2 -1 3 -2 -3 4 -4 5 -5 6 -6 7 -7 -8 8 Positive watermark 1100 1100 Negative watermark mapping 1100 1100 327 -37 Watermarked image
Cocktail Watermark – Encode(Cont.) Original image Note: PM and NM are the form of these formula, but not equal. For more detail, please read the original paper. 326 -38 6 19 16 -32 2 -7 -3 4 1 -10 5 -2 -9 6 - 1*1=5 19+(-1)*1=18 Gaussian Distribution P N 1 2 -1 3 -2 -3 4 -4 5 -5 6 -6 7 -7 -8 8 Positive watermark 1100 1100 Negative watermark mapping 1100 1100 327 -37 5 18 15 -31 1 -6 3 -4 -11 6 -1 -10 Watermarked image
Cocktail Watermark – Decode Attacked image Original image B(325-326) = 0 B(-37-(-38)) = 1 B(6-3) = 1 B(18-19) = 0 326 -38 6 19 16 -32 2 -7 -3 4 1 -10 5 -2 -9 325 -37 3 18 15 -31 1 -6 -4 5 -11 6 -1 -10 Positive watermark 1 Negative watermark 1 2 -1 3 -2 -3 4 -4 5 -5 6 -6 7 -7 -8 8 1 We (x,y) = B(Wa (x,y) – Wo (x,y)) for positive We (x,y) = B(Wo (x,y) - Wa (x,y)) for negative B(z) = 1 if z >= 0 0 if z < 0 mapping
Flowchart of proposed method
Inexact matching Inexact matching is used to recover the codeword and map the codeword to ASCII code Back Propagation Neural Network(BPNN) algorithm is used in Inexact matching stage
Inexact matching(Cont.) (Input, output) (右手,跑) (左手,站起來) 當我伸右手,就跑,伸左手就站起來!
Inexact matching(Cont.)
Inexact matching(Cont.) Step 1: Training Fed Hadamard code as input, ASCII code index as output train the weights between input and hidden, hidden and output. All Hadamard codes All ASCII codes index Neural network
Inexact matching(Cont.) 2 training sample: (11, 10), (10, 01) Step 1 example: 1 3 4 2 5 X1=1 w13 w24 w23 w14 O5=1 6 w35 w46 w45 w36 X2=1 O6=0
Inexact matching(Cont.) Step 2: Inexact matching Fed output of Cocktail as input (one codeword at a time) use the weights trained at step1 The output is ASCII code index A: 1111 1111 B: 1010 1010 C: 1100 1100 D: 1001 1001 E: 1111 0000 F: 1010 0101 G: 1100 0011 H: 1001 0110 1100 1100 0010 0000 1100 1101 0010 0000 Neural network
Experimental results
Conclusions Hadamard code and cocktail watermark make message type watermark more reliable