Authors: Jun Tian Speaker: J.H. Liu

Preview:

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 Presentation

Citation preview

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

Recommended