authors: jun tian speaker: j.h. liu
DESCRIPTION
Reversible Data Embedding Using Difference Expansion IEEE Transactions on Circuits and Systems for Video Technology, Vol. 13, No. 8, Aug. 2003, page(s): 890 -- 896. Authors: Jun Tian Speaker: J.H. Liu. Outline. Data Embedding Reversible Data Hiding Difference Expansion Expandable - PowerPoint PPT PresentationTRANSCRIPT
Reversible Data Embedding Using Difference Expansion
IEEE Transactions on Circuits and Systems for Video Technology, Vol. 13, No. 8, Aug. 2003, page(s): 890 -- 896
Authors: Jun Tian
Speaker: J.H. Liu
Outline Data Embedding
Reversible Data Hiding Difference Expansion
Expandable Changeable
Difference Expansion Decoding Expandable decoding Changeable decoding
Conclusions
Data Embedding Reversible data hiding
1
Difference Expansion One of data embedding methods Basic case:
h = x – y l = (x + y) / 2 x=l + h /2 + LSB(h) y=l - h /2
Hint : There divide(/) is integer divide. For example, x/y meaning floor(x/y).
x=206 y=201averagel= 203
+3 -2
2
Difference Expansion One of data embedding methods Basic case:
h = x – y l = (x + y) / 2 x=l + h /2 + LSB(h) y=l - h /2
Hint : There divide(/) is integer divide. For example, x/y meaning floor(x/y).
x=206 y=201averagel= 203
+3 -2
If h is odd, bit will lost with h /2.We must return it into x .
2
Difference Expansion - method
location map L
Case1. expandable : h’ = 2×h + b 1
h = x - y Case2. changeable : bitstream C 0 Case3. non-changeable 0
bitstream C = collection of LSBs(h) Expandable : |h’| = |2xh+b| ≦ min(2(255-l),2xl-1)
Changeable : |h’| = |2x(h/2)+b| ≦ min(2(255-l),2xl-1)
3
Expandable
1st step: h’ = hx2 + secret bit (b) 2nd step: x’ = l + h’/2 + LSB(h’)
y’ = l - h’/2
location map L = 1
x’=209 y’=198l = 203+6 -5
4
206 201+3 -2
Expandable
1st step: h’ = hx2 + secret bit (b) 2nd step: x’ = l + h’/2 + LSB(h’)
y’ = l - h’/2
location map L = 1
x’=209 y’=198l = 203+6 -5
4
206 201+3 -2
b = 1l=203
Expandable
1st step: h’ = hx2 + secret bit (b) 2nd step: x’ = l + h’/2 + LSB(h’)
y’ = l - h’/2
location map L = 1
x’=209 y’=198l = 203+6 -5
4
206 201+3 -2
b = 1l=203h’=5*2+1=11
Expandable
1st step: h’ = hx2 + secret bit (b) 2nd step: x’ = l + h’/2 + LSB(h’)
y’ = l - h’/2
location map L = 1
x’=209 y’=198l = 203+6 -5
4
206 201+3 -2
b = 1l=203h’=5*2+1=11x’=203+11/2+11%2=209y’=203-11/2=198
Changeable
It is non-expandable x’, y’ will overflow or underflow with
expandable method
5
x’=292 y’=177l = 223+46 -46
246 200+23 -23
Changeable
It is non-expandable 1st step: h’ = (h/2)x2 + b 2nd step: lost bit(c) = LSB(h) 3rd step: x’ = l + h’/2 + LSB(h’)
y’ = l - h’/2 location map L = 0
x=246 y=200l = 223
+23 -23
5
Changeable
It is non-expandable 1st step: h’ = (h/2)x2 + b 2nd step: lost bit(c) = LSB(h) 3rd step: x’ = l + h’/2 + LSB(h’)
y’ = l - h’/2 location map L = 0
x=246 y=200l = 223
+23 -23
There we will lost the LSB of h.
5
Changeable
It is non-expandable 1st step: h’ = (h/2)x2 + b 2nd step: lost bit(c) = LSB(h) 3rd step: x’ = l + h’/2 + LSB(h’)
y’ = l - h’/2 location map L = 0
x=246 y=200l = 223
+23 -23
There we will lost the LSB of h.We record the LSBs of h at bitstream C.
5
Changeable
It is non-expandable 1st step: h’ = (h/2)x2 + b 2nd step: lost bit(c) = LSB(h) 3rd step: x’ = l + h’/2 + LSB(h’)
y’ = l - h’/2 location map L = 0
x=246 y=200l = 223
+23 -23
There we will lost the LSB of h.We record the LSBs of h at bitstream C.
x’=247 y’=200+24 -23
5
Expandable decoding
1st step: get h’ = x’-y’ 2nd step: get b = LSB(h’) 3rd step: get h = h’/2 4th step: get x = l + h/2 + LSB(h)
y = l - h/2
x‘= 209 y‘= 198l = 203
+6 -5
6
Expandable decoding
1st step: get h’ = x’-y’ 2nd step: get b = LSB(h’) 3rd step: get h = h’/2 4th step: get x = l + h/2 + LSB(h)
y = l - h/2
x’= 209 y‘= 198l = 203
+6 -5l=(209+198)/2=203h’=209-198=11
6
Expandable decoding
1st step: get h’ = x’-y’ 2nd step: get b = LSB(h’) 3rd step: get h = h’/2 4th step: get x = l + h/2 + LSB(h)
y = l - h/2
x‘= 209 y‘= 198l = 203
+6 -5l=(209+198)/2=203h’=209-198=11b=11%2=1
6
Expandable decoding
1st step: get h’ = x’-y’ 2nd step: get b = LSB(h’) 3rd step: get h = h’/2 4th step: get x = l + h/2 + LSB(h)
y = l - h/2
x‘= 209 y‘= 198l = 203
+6 -5l=(209+198)/2=203h’=209-198=11b=11%2=1h=11/2=5
6
Expandable decoding
1st step: get h’ = x’-y’ 2nd step: get b = LSB(h’) 3rd step: get h = h’/2 4th step: get x = l + h/2 + LSB(h)
y = l - h/2
x’= 209 y‘= 198l = 203
+6 -5l=(209+198)/2=203h’=209-198=11b=11%2=1h=11/2=5x=203+5/2+5%2 =203+2+1=206y=203-5/2=201
6
Expandable decoding
1st step: get h’ = x’-y’ 2nd step: get b = LSB(h’) 3rd step: get h = h’/2 4th step: get x = l + h/2 + LSB(h)
y = l - h/2
x‘= 209 y‘= 198l = 203
+6 -5l=(209+198)/2=203h’=209-198=11b=11%2=1h=11/2=5x=203+5/2+5%2 =203+2+1=206y=203-5/2=201
x = 206 y = 201l = 203
+3 -2
6
Expandable decoding
1st step: get h’ = x’-y’ 2nd step: get b = LSB(h’) 3rd step: get h = h’/2 4th step: get x = l + h/2 + LSB(h)
y = l - h/2 Note: average l is never changed.
x‘= 209 y‘= 198l = 203
+6 -5l=(209+198)/2=203h’=209-198=11b=11%2=1h=11/2=5x=203+5/2+5%2 =203+2+1=206y=203-5/2=201
x = 206 y = 201l = 203
+3 -2
6
Changeable decoding
1st step: get h’ = x’ - y’ 2nd step: get b = LSB(h’) 3rd step: get h = h’- b + bitstream(c) 4th step: get x = l + h/2 + LSB(h)
y = l - h/2
x’ = 247 y’ = 200l = 223
+24 -23
7
Changeable decoding
1st step: get h’ = x’ - y’ 2nd step: get b = LSB(h’) 3rd step: get h = h’- b + bitstream(c) 4th step: get x = l + h/2 + LSB(h)
y = l - h/2
x’ = 247 y’ = 200l = 223
+24 -23
l=(247+200)/2=223h’=247-200=47
7
Changeable decoding
1st step: get h’ = x’ - y’ 2nd step: get b = LSB(h’) 3rd step: get h = h’- b + bitstream(c) 4th step: get x = l + h/2 + LSB(h)
y = l - h/2
x’ = 247 y’ = 200l = 223
+24 -23
l=(247+200)/2=223h’=247-200=47b=47%2=1
7
Changeable decoding
1st step: get h’ = x’ - y’ 2nd step: get b = LSB(h’) 3rd step: get h = h’- b + bitstream(c) 4th step: get x = l + h/2 + LSB(h)
y = l - h/2
x’ = 247 y’ = 200l = 223
+24 -23
l=(247+200)/2=223h’=247-200=47b=47%2=1h=47-1+0=46
7
Changeable decoding
1st step: get h’ = x’ - y’ 2nd step: get b = LSB(h’) 3rd step: get h = h’- b + bitstream(c) 4th step: get x = l + h/2 + LSB(h)
y = l - h/2
x’ = 247 y’ = 200l = 223
+24 -23
l=(247+200)/2=223h’=247-200=47b=47%2=1h=47-1+0=46x=223+(46/2)+46%2 =223+23+0=246y=223-46/2=200
7
Changeable decoding
1st step: get h’ = x’ - y’ 2nd step: get b = LSB(h’) 3rd step: get h = h’- b + bitstream(c) 4th step: get x = l + h/2 + LSB(h)
y = l - h/2
x’ = 247 y’ = 200l = 223
+24 -23
l=(247+200)/2=223h’=247-200=47b=47%2=1h=47-1+0=46x=223+(46/2)+46%2 =223+23+0=246y=223-46/2=200
7
x=246 y=200l = 223
+23 -23
Conclusions Simple and efficient reversible embedding
method.
The method of location map L is not good enough. We may improve the method of location map anywise.
The case of changeable is a kind of useless.
8