C
A
G
D
&
C
G
C
A
G
D
&
C
G
Reversible watermarking
Wu Dan
2008.2.20
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Introduction
What?
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Introduction
Why?
Military data
Medical data
How?
Data compression
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Difference expansion
Histogram bin shifting
C
A
G
D
&
C
G
C
A
G
D
&
C
G
 Reversible Data Embedding using aDifference Expansion
Jun Tian
IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS
        FOR VIDEO TECHNOLOGY, VOL.13  NO.8
                          AUGUST 2003
C
A
G
D
&
C
G
C
A
G
D
&
C
G
How to measure a reversibledata embedding algorithm?
Payload capacity (bpp)
Visual quality  (PSNR)
Complexity
C
A
G
D
&
C
G
C
A
G
D
&
C
G
A simple example of thedifference expansion
x=206, y=201; b=1.
l: the integer average
h: difference
DE: difference expansion
The new values:
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Reversible data embedding
Reversible integer transform
 
The inverse transform:
To prevent the overflow and underflow :
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Expandable and changeable differencevalues
Expandable:
(for both b=1,0)
Changeable:
(for both b=0,1)
C
A
G
D
&
C
G
C
A
G
D
&
C
G
By definition, we can find that:
If h is changeable, h is still changeable.
If h is expandable, h is changeable.
After the DE, the expanded differencevalue h is changeable.
if h=0 or -1, the conditions on expandableand changeable are equivalent.
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Data embedding algorithm :
1.The original image is grouped into pairs ofpixels values. Then compute thedifference values h.
2.Create four disjoint sets of differencevalues: EZ, EN, CN, and NC
          EZ: contains all expandable h=0 and
                expandable h=-1.
          EN: contains all expandable h       EZ
C
A
G
D
&
C
G
C
A
G
D
&
C
G
        CN: contains all changeable
         NC: contains all non-changeable h.
3.Create a location map of selectedexpandable difference values.
C
A
G
D
&
C
G
C
A
G
D
&
C
G
lena512
lena512lm21
C
A
G
D
&
C
G
C
A
G
D
&
C
G
4.Collect original LSBs of difference values inEN2 and CN. However for those h=1 orh=-2 in EN2 and CN, their LSBs will be notcollected.
5.The location map  will be losslesslycompressed. The compressed bit stream isdenoted as L. Embed L, the original LSBsC, and a payload P.
6.Apply the inverse integer transform toobtain the embedded image.
C
A
G
D
&
C
G
C
A
G
D
&
C
G
lena512
lena512lm21
lena512lm21
lena512
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Discussions:
Capacity:
Threshold:
C
A
G
D
&
C
G
C
A
G
D
&
C
G
lena512lm72
lena512lm21
C
A
G
D
&
C
G
C
A
G
D
&
C
G
The scanning order:
Non-changeable:
lena512 21liehang
lena512wudan21 2
    Scanning order :
C
A
G
D
&
C
G
C
A
G
D
&
C
G
lena512locationmap21
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Non-changeable:
baboonexpandable
C
A
G
D
&
C
G
C
A
G
D
&
C
G
decoding :
1.Calculate the difference values h.
2.Create two disjoint sets of differencevalues: CH and NC
          changeable and non-changeable
3.Collect LSBs of all difference values in CH,and form a binary bit stream B.
4.Decode the location map from B, andrestore the original values of differencesas follows:
C
A
G
D
&
C
G
C
A
G
D
&
C
G
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Experimental results:
C
A
G
D
&
C
G
C
A
G
D
&
C
G
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Reversible data hiding
Zhicheng Ni, Yun-Qing,Nirwan Ansari, and Wei Su
IEEE TRANSACTIONS ON CIRCUITS ANDSYSTEMS FOR VIDEO TECHNOLOGY,
March 2006
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Algorithm
Zero point and peak point
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Embedding:
Generate the histogram H(x).
In the histogram, find the zero point H(a)and peak point H(b).
If H(b)>0,record the coordinate of thosepixels.
Assume a<b. Scan the image.
    If x(a,b),x+1;  leaving the value a+1empty.
    If w=0, a=a; if w=1,a=a+1.
 
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Pure payload:
      C=H(a) - H(b)
Multiple pairs of Maximum andminimum points:
 
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Extraction algorithm: ( Assume the zero point andpeak points are  a ,b )
Scan the image in the same order as in theembedding procedure.
If the value is a+1,w=1; if the value is a, w=0.
Scan the image again, if the grayscale valuex(a,b], x-1.
If the overhead information found in theextracted data, set the pixel grayscale value asb.
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Lower bound of the PSNR of a Markedimage
The total embedding time is just 100ms.
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Experimental results
C
A
G
D
&
C
G
C
A
G
D
&
C
G
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Discussion:
      1) How to get the peak point andzero point for verifier?
      2) How to use the a and a+1?
C
A
G
D
&
C
G
C
A
G
D
&
C
G
C
A
G
D
&
C
G
C
A
G
D
&
C
G
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Thanks!
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Reversible watermark using thedifference expansion of ageneralized integer transform 
Adnan M.Alattar, Member, IEEE,
IEEE TRANSACTIONS ON IMAGE PROCESSING,
                          AUGUST 2004
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Generalized differenceexpansion
Vector:
Reversible integer transform:
C
A
G
D
&
C
G
C
A
G
D
&
C
G
C
A
G
D
&
C
G
C
A
G
D
&
C
G
A difference expansion oriented datahiding scheme for restoring theoriginal host images 
Chin-Chen Chang, Tzu-Chuen Lu
The Journal of systems and software,
May 2006
C
A
G
D
&
C
G
C
A
G
D
&
C
G
C
A
G
D
&
C
G
C
A
G
D
&
C
G
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Very Fat Watermarking byReversible Contrast Mapping 
Dinu Coltuc and Jean-Marc Chassery
IEE SIGNAL PROCESSING LETTERS,
APRIL 2007
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Reversible contrast mapping:
C
A
G
D
&
C
G
C
A
G
D
&
C
G
Dc: the domain without the odd pixels pairs.
Embedding:
      1 partition the entire image into pairs.
      2 for each pair:
          a) if (x,y) is even pixel pair, set the LSBx to 1, the LSB of y is the watermark.
          b) if (x,y) Dc, set the LSB of x to 0, andthe LSB of y is the watermark.
c) if (x,y)       Dc, set the LSB of x to 0,
and save the ture value.