Authors: Jun Tian Speaker: J.H. Liu
description
Transcript of Authors: Jun Tian Speaker: J.H. Liu
![Page 1: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/1.jpg)
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
![Page 2: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/2.jpg)
Outline Data Embedding
Reversible Data Hiding Difference Expansion
Expandable Changeable
Difference Expansion Decoding Expandable decoding Changeable decoding
Conclusions
![Page 3: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/3.jpg)
Data Embedding Reversible data hiding
1
![Page 4: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/4.jpg)
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
![Page 5: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/5.jpg)
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
![Page 6: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/6.jpg)
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
![Page 7: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/7.jpg)
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
![Page 8: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/8.jpg)
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
![Page 9: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/9.jpg)
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
![Page 10: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/10.jpg)
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
![Page 11: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/11.jpg)
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
![Page 12: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/12.jpg)
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
![Page 13: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/13.jpg)
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
![Page 14: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/14.jpg)
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
![Page 15: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/15.jpg)
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
![Page 16: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/16.jpg)
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
![Page 17: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/17.jpg)
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
![Page 18: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/18.jpg)
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
![Page 19: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/19.jpg)
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
![Page 20: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/20.jpg)
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
![Page 21: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/21.jpg)
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
![Page 22: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/22.jpg)
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
![Page 23: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/23.jpg)
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
![Page 24: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/24.jpg)
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
![Page 25: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/25.jpg)
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
![Page 26: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/26.jpg)
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
![Page 27: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/27.jpg)
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
![Page 28: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/28.jpg)
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
![Page 29: Authors: Jun Tian Speaker: J.H. Liu](https://reader035.fdocuments.us/reader035/viewer/2022062520/56815ee8550346895dcd97e0/html5/thumbnails/29.jpg)
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