**2.1 FBBE algorithm**

To achieve a robust lossless data hiding method, we embed a secret message into transform domain via the FBBE algorithm. An input image was first decomposed to the IWT domain. The IWT coefficients can be acquired by using the following two formulas:

$$\mathbf{d}\_{\mathbf{l},\mathbf{k}} = \mathbf{s}\_{0,2\mathbf{k}+\mathbf{l}} - \mathbf{s}\_{0,2\mathbf{k}} \tag{1}$$

and

540 Advances in Wavelet Theory and Their Applications in Engineering, Physics and Technology

bits into the low-high (LH) and high-low (HL) of the IWT coefficients. During bit embedding, the IWT blocks remain intact if an input bit is 0, otherwise, the proposed embedding process were applied to the blocks. Simulations showed that the hidden message was robust against lossy compression to a certain degree. Ni et al. (Ni et al., 2008) presented a robust lossless data hiding technique based on the patchwork theory, the distribution features of pixel groups, error codes, and the permutation scheme. The marked images generated by the technique contained no salt-and-pepper noise with a limited payload size. In addition, the marked images were robust against to JPEG/JPEG2000 compression. Zeng et al. (Zeng et al., 2010) adjusted the mathematical difference values of a block and designed a robust lossless data hiding scheme. A cover image was first divided into a number of blocks and the arithmetic difference of each block was calculated. Data bits were then embedded into the blocks by shifting the arithmetic difference values. Due to the separation of the bit-0-zone and the bit-1-zone, as well as the particularity of mathematical difference, a major merit of the method was tolerant of JPEG compression to some extent. Compared with Ni et al.'s work (Ni et al., 2008), the performance of Zeng et al.'s scheme

Currently there are a few robust lossless data hiding techniques published in the literature. Since the payload provided by the above techniques (Zou et al., 2006; Ni et al., 2008; Zeng et al., 2010) was not good enough, we therefore propose the FBBE algorithm so that to introduce an effective robust lossless data hiding method. Moreover, to provide a highcapacity version of lossless data hiding scheme that based on IWT domain, we use a smart allocation of the coefficients in an IWT block to achieve the goal. The scheme not only

This chapter is organized as follows. In section 2, a robust lossless data hiding via the feature-based bit embedding (FBBE) algorithm is introduced followed by a highperformance lossless data hiding scheme. Section 3 provides both test results and

Based on the integer wavelet transform (IWT), we propose two lossless data hiding methods, namely, a robust version and a high-capacity one. First, a robust lossless data hiding via the feature-based bit embedding (FBBE) algorithm is specified. Instead of embedding data bits directly into the IWT coefficient blocks, we use the FBBE algorithm to encode a block so that it can carry data bits and can be successfully identified later at the receiver. Then, a high-performance lossless data hiding scheme is presented to provide a large hiding storage by adjusting the location of each IWT coefficient in the host block. More specifically, the FBBE algorithm can be used to generate a robust lossless data hiding method. Whereas, the proposed smart adjustment of the IWT coefficients can be used to

To achieve a robust lossless data hiding method, we embed a secret message into transform domain via the FBBE algorithm. An input image was first decomposed to the IWT domain.

The IWT coefficients can be acquired by using the following two formulas:

provides a high payload but also generates a good perceived quality.

performance comparisons. We conclude this chapter in section 4.

generate a high-performance lossless data hiding scheme.

(Zeng et al., 2010) was significantly improved.

**2. Proposed method** 

**2.1 FBBE algorithm** 

$$\mathbf{s}\_{\mathbf{l},k} = \mathbf{s}\_{\mathbf{0},2k} + \left\lfloor \frac{d\_{\mathbf{l},k}}{2} \right\rfloor,\tag{2}$$

where *<sup>j</sup> <sup>k</sup> s* , and *<sup>j</sup> <sup>k</sup> d* , are the *k*th low-frequency and high-frequency wavelet coefficients at the *j*th level, respectively (Calderbank et al., 1998). The *x* is a floor function. Then, data bits were embedded into the blocks which derived from the LH and HL sub-bands of the IWT coefficients, respectively. The FBBE algorithm consists of four parts, namely, Up-U (UU) sampling, Down-U (DU) sampling, Up-Down (UD) sampling, and Left-Right (LR) sampling. Each sampling is allowed to carry a single data bit. For each host block, the above four samplings is conducted according to the sequence of UU, DU, UD, and LR samplings. The details are specified in the following sections.

#### **2.1.1 Bit embedding**

Let <sup>1</sup> 0 jk 2 c *<sup>n</sup> <sup>k</sup> Cj* be the *j*th block of size *<sup>n</sup>n* taken from the LH (or HL) sub-bands of IWT domain. Also let *Cj <sup>C</sup> <sup>C</sup> CC* <sup>~</sup> <sup>ˆ</sup> with cˆ |i 0,3,5,6, <sup>ˆ</sup> *<sup>C</sup>* <sup>i</sup> <sup>c</sup> <sup>|</sup> <sup>u</sup> 9,10,12,15, <sup>~</sup> <sup>~</sup> *<sup>C</sup>* <sup>u</sup> c | v 1,2,13,14 , *C* <sup>v</sup> and *C* c w | w 4,7,8,11 be the UU, DU, UD, and LR samplings coefficients, respectively, as shown in Fig. 1 if *n*=4. In addition, let

$$C\_{\not\perp p} = \left| \hat{\mathbf{c}}\_{\mathrm{i}} \mid \mathcal{B} \le \hat{\mathbf{c}}\_{\mathrm{i}} < \mathcal{D}\mathcal{B} \right\rangle \tag{3}$$

and

$$C\_{jm} = \left| \hat{\mathbf{c}}\_i \mid \text{-} \mathcal{D} \mathcal{B} \le \hat{\mathbf{c}}\_i < -\mathcal{B} \right| \tag{4}$$

be the two focal groups being used to 'carry' data bits. The used here is a robustness parameter.

Fig. 1. A 44 IWT coefficients block. (a) UU, (b) DU, (c) UD, and (b) LR sampling coefficients.

Robust Lossless Data Hiding by Feature-Based Bit Embedding Algorithm 543

*<sup>d</sup>* or the coefficients <sup>d</sup> ,d ,d ) <sup>~</sup> <sup>d</sup> (or ˆ

<sup>2</sup> *MN <sup>n</sup> <sup>n</sup> <sup>N</sup> <sup>n</sup> <sup>M</sup>* 

.

<sup>i</sup> <sup>u</sup> <sup>v</sup> <sup>w</sup> in *Djm* when the corresponding flag

2

*n* taken from the LH (or HL, HH) sub-band of

be two subsets of

*ci* 0 ), multiply

cm -

from each coefficient of *Cjp* and mark a flag to the

 (or 

to each coefficient of *Cjm* and mark a flag to the modified

from either the coefficients

to either *djk* in *Dj* with

*d* was set at

was set at

<sup>i</sup> <sup>u</sup> <sup>v</sup> <sup>w</sup> in *Djp* when the

**Step 1.** Input a hidden block *Dj* not processing yet.

*djk* in *Dj* with 0 *jk* 

0 *d jk*

following subsections.

**2.2.1 Data embedment** 

0 jk 2 c *<sup>n</sup>*

IWT domain. Also let *Cjp* cp |

**Step 2.** If |*Cjp* | then subtract

**Step 3.** If |*Cjm* | then add

coefficient.

can be illustrated in Fig. 2.

modified coefficient.

Let <sup>1</sup>

was set at 1, go to Step 6.

1, a bit 1 can be identified.

**Step 2.** If | | | | *Djp Djm* then a bit 0 can be identified. Subtract

corresponding flag was set at 1, and go to Step 6. **Step 3.** If | | | | *Djp Djm* then a bit 1 can be extracted. Add

1, a bit 0 can be identified, and go to Step 6.

**Step 6.** Repeat Step 1 until all hidden bits have been extracted.

**2.2 High-performance lossless data hiding scheme** 

*<sup>k</sup> Cj* be the *j*th block of size *<sup>n</sup>*

**Step 1.** Input a block *Cj* not processing yet.

cp 2

*Cj* . The main steps of bit embedding are specified as follows:

**Step 4.** After adjustment, for a coefficient *<sup>i</sup> Cj c* with 0 *ci*

*<sup>i</sup> c* by 2 to obtain *<sup>i</sup> c*ˆ , and add an input bit to *<sup>i</sup> c*ˆ . **Step 5.** Repeat to Step 1 until all blocks have been processed.

or the coefficients <sup>d</sup> ,d ,d ) <sup>~</sup> <sup>d</sup> (or ˆ

**Step 4.** If | | | | *Djp Djm* and the flag of the coefficients *djk* in *Dj* with 0 *jk*

**Step 5.** If | | | | *Djp Djm* and the flag of the coefficients *djk* in *Dj* with 0 *d jk*

coefficient of the block undergone adjustment is <sup>2</sup>

The number of bits for the overhead information which used to signify whether or not a

To provide a high-capacity with a good perceived quality, the proposed scheme, which based on the adjustment of the locations of the coefficients in a host block, embeds a secret message into the three high sub-bands of IWT domain. The details are described in the

The purpose of steps 3 and 4 are tried to further dig out hiding space from the selected coefficients. The schema of the adjustment of the coefficients values for the above two steps

and *Cjm* cm |- 2

2 2

The main steps of UU (or DU, UD, LR) samplings are specified as follows:


Notice that the coefficients <sup>i</sup> cˆ which belong to either *Cjp* or *Cjm* have to be changed to <sup>c</sup> , <sup>~</sup> u c , <sup>v</sup> or c w , respectively, when the DU, UD, or LR samplings was employed. From the above procedures we can see that each block can carry at most four data bits. This resulted in a total payload of <sup>2</sup> <sup>2</sup> / <sup>2</sup> / <sup>2</sup> <sup>2</sup> <sup>4</sup> *<sup>n</sup> MN <sup>M</sup> <sup>n</sup> <sup>N</sup> <sup>n</sup>* bits provided by the proposed method, where *M* and *N* is the size of a host image.

#### **2.1.2 Bit extraction**

Let <sup>1</sup> 0 jk 2 d *<sup>n</sup> <sup>k</sup> Dj* be the *j*th hidden block of size *<sup>n</sup>n* taken from the LH (or HL) sub-bands of IWT domain derived from a marked image, and *Dj <sup>D</sup> <sup>D</sup> <sup>D</sup> <sup>D</sup>* <sup>~</sup> <sup>ˆ</sup> with <sup>d</sup> |i 0,3,5,6, <sup>ˆ</sup> <sup>ˆ</sup> *<sup>D</sup>* <sup>i</sup> <sup>d</sup> <sup>|</sup> <sup>u</sup> 9,10,12,15, <sup>~</sup> <sup>~</sup> *<sup>D</sup>* <sup>u</sup> <sup>d</sup> | v 1,2,13,14, *<sup>D</sup>* <sup>v</sup> and *D* d w | w 4,7,8,11 . Also let

$$D\_{jp} = \left\langle \hat{\mathbf{d}}\_i(\text{or } \widetilde{\mathbf{d}}\_\mathbf{u}, \mathbf{d}'\_\mathbf{v}, \mathbf{d}''\_\mathbf{w}) \mid \mathcal{\beta} \le \hat{\mathbf{d}}\_i(\text{or } \widetilde{\mathbf{d}}\_\mathbf{u}, \mathbf{d}'\_\mathbf{v}, \mathbf{d}''\_\mathbf{w}) < 2\beta \right\rangle \tag{5}$$

and

$$D\_{jm} = \left\langle \hat{\mathbf{d}}\_{\mathrm{i}}(\operatorname{or} \widetilde{\mathbf{d}}\_{\mathrm{u}}, \mathbf{d}\_{\mathrm{v}}', \mathbf{d}\_{\mathrm{w}}'') \mid -2\mathcal{B} \le \hat{\mathbf{d}}\_{\mathrm{i}}(\operatorname{or} \widetilde{\mathbf{d}}\_{\mathrm{u}}, \mathbf{d}\_{\mathrm{v}}', \mathbf{d}\_{\mathrm{w}}'') < -\mathcal{B} \right\rangle \tag{6}$$

be the two subsets of *Dj*. The procedure of bits extraction for the UU (or DU, UD, LR) sampling can be summarized in the following steps.

**Step 1.** Input a hidden block *Dj* not processing yet.

542 Advances in Wavelet Theory and Their Applications in Engineering, Physics and Technology

respectively, mark a flag to the shifted coefficient, and go to Step 8.

carried by the UU (or DU, UD, LR) sampling coefficients without alteration of their

=1 and | | | | *Cjp Cjm* then do nothing, which means the UU (or DU, UD, LR)

*c* , respectively, mark a flag to the shifted coefficient, and go to Step 8.

, respectively, when the DU, UD, or LR samplings was employed. From the above

*MN <sup>M</sup> <sup>n</sup> <sup>N</sup> <sup>n</sup>* bits provided by the proposed method,

d ,d ,d ) 2

d ,d ,d )

<sup>~</sup> <sup>d</sup> (or ˆ <sup>d</sup> ,d ,d )|- <sup>2</sup> <sup>~</sup> <sup>d</sup> (or ˆ *Djm* <sup>i</sup> <sup>u</sup> <sup>v</sup> <sup>w</sup> <sup>i</sup> <sup>u</sup> <sup>v</sup> <sup>w</sup> (6)

<sup>v</sup> w

Notice that the coefficients <sup>i</sup> cˆ which belong to either *Cjp* or *Cjm* have to be changed to <sup>c</sup> , <sup>~</sup>

procedures we can see that each block can carry at most four data bits. This resulted in a

of IWT domain derived from a marked image, and *Dj <sup>D</sup> <sup>D</sup> <sup>D</sup> <sup>D</sup>* <sup>~</sup> <sup>ˆ</sup> with

<sup>v</sup> w

<sup>~</sup> <sup>d</sup> (or ˆ <sup>d</sup> ,d ,d )| <sup>~</sup> <sup>d</sup> (or ˆ *Djp* <sup>i</sup> <sup>u</sup>

be the two subsets of *Dj*. The procedure of bits extraction for the UU (or DU, UD, LR)

<sup>i</sup> <sup>u</sup>

<sup>d</sup> |i 0,3,5,6, <sup>ˆ</sup> <sup>ˆ</sup> *<sup>D</sup>* <sup>i</sup> <sup>d</sup> <sup>|</sup> <sup>u</sup> 9,10,12,15, <sup>~</sup> <sup>~</sup> *<sup>D</sup>* <sup>u</sup> <sup>d</sup> | v 1,2,13,14, *<sup>D</sup>*

=0 and | | | | *Cjp Cjm* then do nothing, which means a bit 0 can be

to the coefficients *cjk* in *Cj* with 0 *c jk*

to the coefficients in *Cjm* , respectively, mark a

from the coefficients cjk in *Cj* with

from the coefficients in *Cjp* , respectively,

*n* taken from the LH (or HL) sub-bands

<sup>v</sup> and

(5)

,

u

The main steps of UU (or DU, UD, LR) samplings are specified as follows:

**Step 1.** Input a block *Cj* not processing yet.

value, and go to Step 8.

=0 and | | | | *Cjp Cjm* then add

=0 and | | | | *Cjp Cjm* then add

flag to the shifted coefficient, and go to Step 8.

=1 and | | | | *Cjp Cjm* then subtract

=1 and | | | | *Cjp Cjm* then subtract

mark a flag to the shifted coefficient.

total payload of <sup>2</sup>

*<sup>k</sup> Dj* be the *j*th hidden block of size *<sup>n</sup>*

sampling can be summarized in the following steps.

where *M* and *N* is the size of a host image.


samplings coefficients carry a bit 1, and go to Step 8.

**Step 8.** Repeat Step 1 until all IWT coefficients blocks have been processed.

<sup>2</sup> / <sup>2</sup> / <sup>2</sup> <sup>2</sup> <sup>4</sup> *<sup>n</sup>*

**Step 2.** If an input bit

**2.1.2 Bit extraction** 

*D* d w

0 jk 2 d *<sup>n</sup>*

Let <sup>1</sup>

 0 *jk* 

**Step 3.** If

**Step 4.** If

**Step 5.** If

**Step 6.** If

**Step 7.** If

c , <sup>v</sup> or c w

and


The number of bits for the overhead information which used to signify whether or not a coefficient of the block undergone adjustment is <sup>2</sup> 2 2 2 <sup>2</sup> *MN <sup>n</sup> <sup>n</sup> <sup>N</sup> <sup>n</sup> <sup>M</sup>* .

#### **2.2 High-performance lossless data hiding scheme**

To provide a high-capacity with a good perceived quality, the proposed scheme, which based on the adjustment of the locations of the coefficients in a host block, embeds a secret message into the three high sub-bands of IWT domain. The details are described in the following subsections.

#### **2.2.1 Data embedment**

Let <sup>1</sup> 0 jk 2 c *<sup>n</sup> <sup>k</sup> Cj* be the *j*th block of size *<sup>n</sup>n* taken from the LH (or HL, HH) sub-band of IWT domain. Also let *Cjp* cp | cp 2 and *Cjm* cm |- 2 cm - be two subsets of *Cj* . The main steps of bit embedding are specified as follows:


The purpose of steps 3 and 4 are tried to further dig out hiding space from the selected coefficients. The schema of the adjustment of the coefficients values for the above two steps can be illustrated in Fig. 2.

Robust Lossless Data Hiding by Feature-Based Bit Embedding Algorithm 545

<sup>~</sup> was marked.

*d <sup>j</sup>* ).

**Step 4b.** The original IWT coefficients can be recovered by adding (or subtracting) (2 1)

To specify the idea of data embedding, two examples were presented in Figs. 3-4. The

3(a). Figure 3(b) illustrates a shifted block, which obtained by according to the steps 2-3 of Sec. 2.2.1. Note that each of the shifted coefficients was marked by a rectangle. According to the step 4 of Sec. 2.2.1, we can see that all of the coefficients in the shifted block can be used to hide bits. Namely, a full-bit (or 16-bit) can be embedded in Fig. 3(b). Figure 3 (c) shows the hidden block. The mean square error (MSE) computed from Figs. 3(a) and 3(c) is 7.667. Another example of hiding partial-bit (or 12-bit) in an IWT-block was shown in Fig. 4(a). A shifted block was shown in Fig. 4(b). Notice as well there are 4 coefficients (in bold type) containing null bits. The resulting hidden block was depicted in Fig. 4(c). In this case, the MSE for the hidden block is 6.444. To recover the original block, a similar reverse process


3 -7 -7 -2 3 -3 -3 -2 6 -5 -6 -4

6 -3 -8 -5 2 -3 -4 -1 4 -5 -8 -1

5 0 -6 -8 1 0 -2 -4 3 1 -4 -8

(a) (b) (c)

8 17 0 11 **8 17** 0 **11** 8 17 0 11


6 5 1 4 2 1 1 0 4 2 3 1

(a) (b) (c) Fig. 4. Example of 12-bit embedding with a bit-stream of 0110 0110 0011. (a) The IWT-block,

Fig. 3. Example of 16-bit embedding with a bit-stream of 0110 0100 0101 1100. (a) The

0 1 -15 2 0 1 **-15** 2 1 3 -

<sup>~</sup> which hid data bits can be restored by performing

*n* bits) and partial-bit hidden, respectively. The *k*

is set to be 4. A host IWT-block was shown in Fig.

15

4

*j <sup>k</sup>* 2 *d* 2 .

*k*

*k*

**Step 2b.** A data bit can be extracted by performing modulus-2k to *<sup>j</sup> d* with

*<sup>d</sup> <sup>j</sup>* (or <sup>0</sup> <sup>~</sup>

(with a bitmap) can be performed to Figs. 3(c) and 4(c), respectively.

original IWT-block, (b) shifted block, and (c) hidden block.

(b) shifted block, and (c) hidden block.

**Step 3b.** The IWT coefficients *<sup>j</sup> d*

*<sup>k</sup>*

to (or from) *<sup>j</sup> d*

figures illustrate the cases of full-bit (*n*

used here is 1. The control parameter

*<sup>j</sup> <sup>j</sup> <sup>d</sup> <sup>d</sup>* / <sup>2</sup> <sup>ˆ</sup> <sup>~</sup> if the flag of *<sup>j</sup> <sup>d</sup>*

<sup>~</sup> if <sup>0</sup> <sup>~</sup>

Fig. 2. The schema of the coefficients adjustment. (a) The positive part and (b) the negative part.

To increase payload size, multiple bits can be hidden in each IWT coefficient. In this case, the above steps 2-4 are rewritten as follows:

**Step 2a.** For a coefficient *<sup>t</sup> Cj c* with , *<sup>t</sup> c* multiply *<sup>t</sup> c* by 2*k* to obtain *<sup>t</sup> c*ˆ , and mark a flag to the modified coefficient.

**Step 3a.** For each *<sup>t</sup> c*ˆ , add data bits to *<sup>t</sup> c*ˆ if *c*ˆ *<sup>t</sup>* 0 , otherwise, subtract from *<sup>t</sup> c*ˆ .

The parameter *k* is an integer. To maintain a good resulting perceived quality, the value of *k* is no more than 2. From the above procedure we can see that the number of bits used for recording the indices of the modified coefficients is <sup>4</sup> 3 / 2 / 2 3 *M n N n n*<sup>2</sup> *MN* .

#### **2.2.2 Data extraction**

To extract the hidden message, the overhead information can be losslessly compressed by using either the run-length coding algorithm or JBIG2. The resulting bit stream can then sent by an out-of-band transmission to the receiver. Without loss of generality, let *Dj* be the *j*th hidden block of size *nn* taken from the LH (or HL, HH) sub-band of IWT domain which derived from a marked image, and *D*<sup>ˆ</sup> *<sup>j</sup>* <sup>d</sup> ˆ <sup>j</sup> |- 2 d ˆ <sup>j</sup> 2 with *Dj Dj* <sup>ˆ</sup> . The procedure of bits extraction can be summarized in the following steps.

**Step 1.** Input a block *Dj* not processing yet.


**Step 5.** Repeat to Step 1 until all data bits have been extracted.

Note that *x* and *x* in step 3 denote the floor and ceiling functions, respectively. To perform multiple bits extraction for each coefficient, the above steps 2-4 are rewritten as follows:

(a) (b) Fig. 2. The schema of the coefficients adjustment. (a) The positive part and (b) the negative

To increase payload size, multiple bits can be hidden in each IWT coefficient. In this case,

The parameter *k* is an integer. To maintain a good resulting perceived quality, the value of *k* is no more than 2. From the above procedure we can see that the number of bits used for

To extract the hidden message, the overhead information can be losslessly compressed by using either the run-length coding algorithm or JBIG2. The resulting bit stream can then sent by an out-of-band transmission to the receiver. Without loss of generality, let *Dj* be the *j*th

*<sup>d</sup> <sup>j</sup> <sup>d</sup> <sup>j</sup>* if 0. <sup>ˆ</sup>

*d <sup>j</sup>* ) while the flag of *<sup>j</sup> d*

Note that *x* and *x* in step 3 denote the floor and ceiling functions, respectively. To perform multiple bits extraction for each coefficient, the above steps 2-4 are rewritten as

**Step 4.** The original IWT coefficients can be recovered by adding (or subtracting)

*<sup>t</sup>* 0 , otherwise, subtract

*n* taken from the LH (or HL, HH) sub-band of IWT domain which

, *<sup>t</sup> c* multiply *<sup>t</sup> c* by 2*k* to obtain *<sup>t</sup> c*ˆ , and mark

3 / 2 / 2 3 *M n N n n*<sup>2</sup> *MN* .

ˆ .

<sup>~</sup> was marked.

<sup>~</sup> which hid data bit can be restored by performing either

*d <sup>j</sup>*

from *<sup>t</sup> c*ˆ .

with *Dj Dj* <sup>ˆ</sup> . The procedure of

to (or

to *<sup>t</sup> c*ˆ if *c*ˆ

recording the indices of the modified coefficients is <sup>4</sup>

ˆ <sup>j</sup> |- 2 d ˆ <sup>j</sup> 2

part.

the above steps 2-4 are rewritten as follows:

a flag to the modified coefficient.

bits extraction can be summarized in the following steps.

*<sup>d</sup> <sup>j</sup>* (or <sup>0</sup> <sup>~</sup>

**Step 5.** Repeat to Step 1 until all data bits have been extracted.

**Step 2.** A data bit can be extracted by performing modulus-2 to *<sup>j</sup> d*

*<sup>d</sup> <sup>j</sup>* or / 2) 0.5 <sup>ˆ</sup> ( <sup>~</sup>

derived from a marked image, and *D*<sup>ˆ</sup> *<sup>j</sup>* <sup>d</sup>

**Step 1.** Input a block *Dj* not processing yet.

<sup>~</sup> if <sup>0</sup> <sup>~</sup>

**Step 3.** The IWT coefficients *<sup>j</sup> d*

 / <sup>2</sup> <sup>ˆ</sup> <sup>~</sup> *<sup>j</sup> <sup>j</sup> <sup>d</sup> <sup>d</sup>* if <sup>0</sup> <sup>ˆ</sup>

from) *<sup>j</sup> d*

follows:

**Step 2a.** For a coefficient *<sup>t</sup> Cj c* with

**Step 3a.** For each *<sup>t</sup> c*ˆ , add data bits

**2.2.2 Data extraction** 

hidden block of size *n*

**Step 2b.** A data bit can be extracted by performing modulus-2k to *<sup>j</sup> d* with *k j <sup>k</sup>* 2 *d* 2 .

**Step 3b.** The IWT coefficients *<sup>j</sup> d* <sup>~</sup> which hid data bits can be restored by performing *<sup>k</sup> <sup>j</sup> <sup>j</sup> <sup>d</sup> <sup>d</sup>* / <sup>2</sup> <sup>ˆ</sup> <sup>~</sup> if the flag of *<sup>j</sup> <sup>d</sup>* <sup>~</sup> was marked.

**Step 4b.** The original IWT coefficients can be recovered by adding (or subtracting) (2 1) *k* to (or from) *<sup>j</sup> d* <sup>~</sup> if <sup>0</sup> <sup>~</sup> *<sup>d</sup> <sup>j</sup>* (or <sup>0</sup> <sup>~</sup> *d <sup>j</sup>* ).

To specify the idea of data embedding, two examples were presented in Figs. 3-4. The figures illustrate the cases of full-bit (*nn* bits) and partial-bit hidden, respectively. The *k* used here is 1. The control parameter is set to be 4. A host IWT-block was shown in Fig. 3(a). Figure 3(b) illustrates a shifted block, which obtained by according to the steps 2-3 of Sec. 2.2.1. Note that each of the shifted coefficients was marked by a rectangle. According to the step 4 of Sec. 2.2.1, we can see that all of the coefficients in the shifted block can be used to hide bits. Namely, a full-bit (or 16-bit) can be embedded in Fig. 3(b). Figure 3 (c) shows the hidden block. The mean square error (MSE) computed from Figs. 3(a) and 3(c) is 7.667. Another example of hiding partial-bit (or 12-bit) in an IWT-block was shown in Fig. 4(a). A shifted block was shown in Fig. 4(b). Notice as well there are 4 coefficients (in bold type) containing null bits. The resulting hidden block was depicted in Fig. 4(c). In this case, the MSE for the hidden block is 6.444. To recover the original block, a similar reverse process (with a bitmap) can be performed to Figs. 3(c) and 4(c), respectively.


Fig. 3. Example of 16-bit embedding with a bit-stream of 0110 0100 0101 1100. (a) The original IWT-block, (b) shifted block, and (c) hidden block.


Fig. 4. Example of 12-bit embedding with a bit-stream of 0110 0110 0011. (a) The IWT-block, (b) shifted block, and (c) hidden block.

Robust Lossless Data Hiding by Feature-Based Bit Embedding Algorithm 547

2

=12. Their average PSNR value was 33.35 dB with an embedding rate

*PSNR* (7)

, the more robust performance can be obtained by the proposed method. The

<sup>10</sup> *MSE*

, <sup>255</sup> log10

*MSE* Here *x i j*),( and ˆ *jix*),( denote the pixel values of the

original image and the marked image. Figure 6 shows the marked images generated by the

(a) (b) (c)

of 0.125 bits per pixel (bpp). It can be seen that the perceptual quality was acceptable.

increased. Actually, the larger the

The PSNR value is approximately linear decreased as

<sup>2</sup>

(d) (e)

Goldhill, (c) Zelda, (d) Elaine, and (e) Tank.

can see that the proposed method with

Fig. 6. The marked images generated by the proposed FBBE algorithm. (a) Lena, (b)

 =5 (or 

For comparison, two graceful schemes, namely, Ni et al.'s algorithm (Ni et al., 2008) and Zeng et al.'s approach (Zeng et al., 2010) are compared with our method. Table 1 indicates the performance comparison of these methods on three test images. From Fig. 5 and Table 1 we

the largest payload among these methods while the PSNR for the proposed method is superior to that for the other two techniques. Moreover, Table 1 shows that the average hiding capacity provided by the proposed method is two times that achieved by Zeng et al.'s approach (Zeng et al., 2010), and five times larger than that achieved by Ni et al.'s algorithm (Ni et al., 2008).

of which value being less than 6) provides

value of

PSNR is defined by

proposed method with

where (ˆ .)),(),( <sup>1</sup> 1 1

 *<sup>N</sup> i*

*M j jixjix MN*
