1 Reversible Watermark Using the Difference Expansion of a Generalized Integer Transform Source : IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 13, NO. 8, AUGUST 2004, pp Author : Adnan M. Alattar Speaker : Jen-Bang Feng ( 馮振邦 )
2 Outline Generalized Difference Expansion The Proposed Scheme Embedding Reversible Watermark Reading Watermark and Restoring Image Payload Size Data-Rate Controller Recursive and Cross-Color Embedding Experimental Results Conclusion
3 The Proposed Scheme Hide watermark into protected image Can fully restore the original image Use the difference of neighborhood pixels
4 Generalized Difference Expansion (1/5) vector u=(u 0, u 1, …, u N-1 ) a i is a constant integer, i=0, …,N-1 v 0 is the weighted average of the entities of the vector. v 1, …,v N-1 are the differences between u 1, …,u N-1 and u 0, respectively. The Inverse Difference Expansion Transform f -1 (.) : The Forward Difference Expansion Transform f(.) :
5 (u 0, u 1, u 2, u 3 ) = (8, 10, 14, 15) (a 0, a 1, a 2, a 3 ) = (1, 2, 2, 1) ======================= v 0 = = = 11 v 1 = 10 – 8 = 2 v 2 = 14 – 8 = 6 v 3 = 15 – 8 = 7 ======================= (v 0,v 1,v 2,v 3 ) = (11,2,6,7) (a 0, a 1, a 2, a 3 ) = (1, 2, 2, 1) ======================= u 0 = 11 - = = 8 u 1 = = 10 u 2 = = 14 u 3 = = 15 ======================= (u 0,u 1,u 2,u 3 ) = (8,10,14,15) Generalized Difference Expansion (2/5)
6 Def1. Expandable For all value of b 1, …,b N-1 (u 0, u 1, u 2, u 3 ) = (8, 10, 14, 15) (v 0, v 1, v 2, v 3 ) = (11, 2, 6, 7) (a 0, a 1, a 2, a 3 ) = (1, 2, 2, 1) (b 1, b 2, b 3 ) = (1, 0, 1) embedded data ======================== v 0 = 11 ṽ 1 = 2 * = 5 ṽ 2 = 2 * = 12 ṽ 3 = 2 * = 15 ũ 0 = 11 – = 11 – 8 = 3 ũ 1 = = 8 ũ 2 = = 15 ũ 3 = = 18 Generalized Difference Expansion (3/5) 00111b
7 Def2. changeable (u 0, u 1, u 2, u 3 ) = (8, 10, 14, 15) (v 0, v 1, v 2, v 3 ) = (11, 2, 6, 7) (a 0, a 1, a 2, a 3 ) = (1, 2, 2, 1) (b 1, b 2, b 3 ) = (1, 0, 1) embedded data ======================== v 0 = 11 ṽ 1 = 2 * + 1 = 3 ṽ 2 = 2 * + 0 = 6 ṽ 3 = 2 * + 1 = 7 ũ 0 = 11 – = 11 – 4 = 7 ũ 1 = = 10 ũ 2 = = 13 ũ 3 = = 14 Generalized Difference Expansion (4/5) 00011b
8 Generalized Difference Expansion (5/5) S 1 : expandable and |v i | ≤ T i, i=1,…,N-1 S 2 : changeable S 3 : not changeable S 4 = S 1 U S 2 Location map : 1 S 1 0 S 2 or S 3 V 0 is unchanged. An expandable vector is also changeable. A changeable vector remains changeable even after changing the LSBs.
9 Embedding Reversible Watermark (1/7) Image I(i, j, k) R G B U R ={u 00,u 01,u 02 } U G ={u 10,u 11,u 12 } U B ={u 20,u 21,u 22 } Secret key U={u 00,u 10,u 20 u 01,u 11,u 21 u 02,u 12,u 22 } Assume threshold=30
10 Embedding Reversible Watermark (2/7) a1221 U V Back Expanda ble CU Changea ble CU a1221 U V Back Expanda ble CU Changea ble CU a1221 U V Back Expanda ble CU Changea ble CU u 00 (expandable)u 01 (expandable) u 02 (changeable)
11 a1221 U V Back Expanda ble CU Changea ble CU a1221 U V Back Expanda ble CU Changea ble CU a1221 U V Back Expanda ble CU Changea ble CU u 10 (changeable) u 11 (changeable) u 12 (expandable) Embedding Reversible Watermark (3/7)
12 a1221 U255 V 000 Back255 Expanda ble CU Changea ble CU a1221 U0000 V0000 Back0000 Expanda ble 0111 CU10111 Changea ble 0111 CU20111 a1221 U V8536 Back Expanda ble CU Changea ble 8537 CU u 20 (non-changeable) u 21 (expandable) u 22 (expandable) Embedding Reversible Watermark (4/7)
13 Embedding Reversible Watermark (5/7) U={u 00,u 10,u 20 u 01,u 11,u 21 u 02,u 12,u 22 } V = f(U) V={v 00,v 10,v 20 v 01,v 11,v 21 v 02,v 12,v 22 } S 1 ={v 00,v 01,v 21,v 12,v 22 } S 2 ={v 10,v 11,v 02 } S 3 ={v 20 } S 4 ={v 00,v 10,v 01,v 11,v 21, v 02,v 12,v 22 } Location Map = B 2 = Compress location map to form B 1,and append EOS. B 3 :watermark B=B 1 B 2 B 3
14 Embedding Reversible Watermark (6/7) S 4 ={v 00,v 10,v 01,v 11,v 21, v 02,v 12,v 22 } Location Map = v 00 :expandable b=(1,0,0) u 00 =(197,198,199,200) v 00 =(198,1,2,3) ṽ 00 =(198,3,4,6) ũ 00 =(195,198,199,201) v 10 :changeable b=(1,0,1) u 10 =(200,100,110,101) v 10 =(120,-100,-90,-99) ṽ 10 =(120,-99,-90,-99) ũ 10 =(200,101,110,101) v 01 :expandable b=(0,1,1) u 01 =(150,161,151,155) v 01 =(154,11,1,5) ṽ 01 =(154,22,3,11) ũ 01 =(144,166,147,155)
15 Ŝ 1 ={ṽ 00, ṽ 01, ṽ 21, ṽ 12, ṽ 22 } Ŝ 2 ={ṽ 10, ṽ 11, ṽ 02 } ῦ = f -1 (Ṽ) ũ 00, ũ 01, ũ 21, ũ 12, ũ 22 ũ 10, ũ 11, ũ 02 R G B watermarked image I w (i, j, k) Embedding Reversible Watermark (7/7)
16 Reading Watermark and Restoring Image (1/3) R G B watermarked image I w (i, j, k) Secret key Ũ R ={ũ 00, ũ 01, ũ 02 } Ũ G ={ũ 10, ũ 11, ũ 12 } Ũ B ={u 20, ũ 21, ũ 22 } Ũ={ũ 00, ũ 10, u 20 ũ 01, ũ 11, ũ 21 ũ 02, ũ 12, ũ 22 }
17 Ṽ = f(Ũ) Ṽ ={ṽ 00, ṽ 10,v 20 ṽ 01, ṽ 11, ṽ 21 ṽ 02, ṽ 12, ṽ 22 } S 3 ={v 20 } Ŝ 4 ={ṽ 00, ṽ 10, ṽ 01, ṽ 11, ṽ 21, ṽ 02, ṽ 12, ṽ 22 } Extract LSBs of each vector in Ŝ 4 B=B 1 B 2 B 3 Identify EOS Extract B 1 Location map = Ŝ 1 ={ṽ 00, ṽ 01, ṽ 21, ṽ 12, ṽ 22 } Ŝ 2 ={ṽ 10, ṽ 11, ṽ 02 } Reading Watermark and Restoring Image (2/3)
18 Ŝ 1 ={ṽ 00, ṽ 01, ṽ 21, ṽ 12, ṽ 22 } Ŝ 2 ={ṽ 10, ṽ 11, ṽ 02 } b 1, …,b N-1 are taken from B to restore V. S 1 ={v 00, v 01, v 21, v 12, v 22 } S 2 ={v 10, v 11, v 02 } U = f -1 (V) u 00, u 01, u 21, u 12, u 22 u 10, u 11, u 02 R G B Image I(i, j, k) The remainder B B 3 :watermark Reading Watermark and Restoring Image (3/3)
19 Payload Size (1/2) ||x|| indicates number of elements in x ||B 2 || = ( N – 1 ) ||S 2 || Factors of the size 1. Number of expandable vectors. 2. How well the location map can be compressed.
20 Payload Size (2/2) w x h host image, (w x h) / N vectors α є [0,1] : the percent of the expandable vector in image. β є [0,1] : the compression rate of the location map ||S 1 || = α((w x h) / N) ||B 1 || = β ((w x h) / N) N increases The number of expandable vectors may decrease. Thresholds must be increased to maintain the same number of selected expandable vectors. The quality of the embedded image decreases.
21 Data-Rate Controller Assume N is fixed. C is the payload length. λє (0,1) : constant T(n)={T 1 (n),…,T n-1 (n)} T(0) is a preset value.
22 Recursive Embedding
23 Cross-Color Embedding cross-color triple u = (R,G,B) cross-color quad u = (R,G,G,B) ||B 3 || = 2||S 1 || - ||B 1 || ||B 3 || = (2α – β) x w x h Example. R=2 G=1 B=1 V 0 = = 1 V 1 = R – G = 1 V 2 = B – G = 0 ====================== G = V 0 – = 1 – 0 = 1 R = V 1 + G = = 2 B = V 2 + G = = 1
24 Experimental Results (1/6) Comparison between the performance of the spatial, triplet-based algorithm and the spatial, quad-based algorithm applied to the image once.
25 Experimental Results (2/6) Comparison between the performance of the spatial, triplet-based algorithm and the spatial, quad-based algorithm applied to the image twice.
26 Experimental Results (3/6) Embedded using the cross-spectral, triplet-based algorithm. Embedded using the cross-spectral, quad-based algorithm.
27 Experimental Results (4/6) Payload size versus PSNR for Lena Size of compressed map versus PSNR for Lena
28 Experimental Results (5/6) Comparison results between spatial, triplet-based algorithm and Tian’s using grayscale images. Comparison results between spatial, quad- based algorithm and Tian’s using grayscale images.
29 Experimental Results (6/6) Comparison results between spatial, quad- based algorithm and Celik’s using grayscale images. Comparison results between spatial, triplet- based algorithm and Celik’s using grayscale images.
30 Conclusion A reversible watermarking scheme The amount of data embedded into a image depends highly on the nature of the image
31 Comments Integrated issues But unknown purpose Low robustness No distortion allowed Low capacity