Accepted Manuscript New high-performance reversible data hiding method for VQ indices based on improved locally adaptive coding scheme Xiaoxiao Ma, Zhibin Pan, Sen Hu, Lingfei Wang PII: DOI: Reference:
S1047-3203(15)00071-1 http://dx.doi.org/10.1016/j.jvcir.2015.04.009 YJVCI 1512
To appear in:
J. Vis. Commun. Image R.
Received Date: Accepted Date:
8 January 2014 16 April 2015
Please cite this article as: X. Ma, Z. Pan, S. Hu, L. Wang, New high-performance reversible data hiding method for VQ indices based on improved locally adaptive coding scheme, J. Vis. Commun. Image R. (2015), doi: http:// dx.doi.org/10.1016/j.jvcir.2015.04.009
This is a PDF file of an unedited manuscript that has been accepted for publication. As a service to our customers we are providing this early version of the manuscript. The manuscript will undergo copyediting, typesetting, and review of the resulting proof before it is published in its final form. Please note that during the production process errors may be discovered which could affect the content, and all legal disclaimers that apply to the journal pertain.
New high-performance reversible data hiding method for VQ indices based on improved locally adaptive coding scheme Xiaoxiao Ma 1, Zhibin Pan1, 2, *, Sen Hu 1 and Lingfei Wang 1 1
School of Electronic and Information Engineering, Xi'an Jiaotong University, Xi'an, 710049, P.R. China 2
State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing, 210093, P.R. China * Corresponding author. Tel. +86-13201718936. E-mail address:
[email protected].
Abstract: In this paper, a new high-performance reversible data hiding method for vector quantization (VQ) indices is proposed. The codebook is firstly sorted using the unidirectional static distance-order technique to improve the correlation among the neighboring indices. The two-dimensional structure of image and the high correlation among the neighboring blocks are used to update the self-organized list L in the improved locally adaptive coding scheme (ILAS). Then a new embedding rule according to the complexity of the region at which the current block locates and the position of current block index in the list L is proposed to obtain a better embedding capacity. The experimental results demonstrate that our proposed method has a better performance in terms of compression rate, embedding capacity and embedding rate compared with the related data hiding methods. Keywords: reversible data hiding, vector quantization (VQ), improved locally adaptive coding scheme (ILAS), codebook sorting, index correlation, region complexity
1. Introduction Data hiding is the science of communicating the secret data via the cover media such as image, audio and video so as not to arouse the eavesdropper¶s suspicion [1, 2]. In recent years, reversible data hiding techniques which can recover the original cover data without introducing distortion after the secret data is extracted have attracted more and more researchers¶ interests. Data hiding 1
techniques can be performed in three domains which are spatial domain [3-7], frequency domain [8, 9] and compressed domain [10-19]. In the spatial domain techniques, the pixel value modification techniques such as difference expansion techniques [3, 4], least significant bit modification techniques [5], histogram modification techniques [6, 7] are utilized to embed the secret data. In the frequency domain techniques, frequency coefficient values of cover image computed by using some famous transformation algorithms such as discrete cosine transform [8] and discrete wavelet transform [9] are modified to embed the secret data. In the compression domain techniques, the original image is first compressed by using some widely used compression algorithms such as vector quantization (VQ) [20]. Then the secret data is embedded into the compressed codes and sent to the receivers. Vector quantization [20] is one of the famous lossy data compression algorithms which has been widely used in the audio and image processing. Reversible data hiding techniques based on VQ generally refer to recovering the VQ indices completely without distortion after the secret data is extracted. There are many reversible data hiding techniques based on VQ compression domain proposed in past years. In 2004, Chang et al. presented a reversible data hiding method for VQ indices by introducing the search-order-coding (SOC) scheme [10]. This method can recover the VQ compressed image completely and acquire a good embedding result. In 2013, Pan et al. proposed a more reasonable embedding rule than that in Chang et al.¶s method [10] to further reduce the bit rate [11]. In 2009, Chang et al. proposed a reversible data hiding method based on joint neighboring coding (JNC) scheme for VQ compressed image [12] and Wang and Lu proposed a new path-based method with the JNC scheme to improve the embedding capacity [13]. In 2009, Chang et al. proposed a reversible data hiding method for VQ indices based on locally adaptive coding scheme (LAS) [14] and Yang and Lin improved Chang et al.¶s scheme by replacing the traditional trace of the processing the VQ index table with fractal Hilbert curve in 2010 [15]. In 2009, Yang and Lin proposed a reversible data hiding method for VQ indices by using the referred count to sort the VQ codebook [16]. In 2011, Yang et al. proposed a reversible data hiding method for VQ indices based on modified fast correlation vector quantization (MFCVQ) and the Huffman-code concept [17]. In 2013, Lee et al. presented a reversible data hiding method for VQ indices by exploiting the correlation of the neighboring blocks [18]. Wang 2
et al. proposed a reversible data hiding method for VQ indices by using the adjoining state-codebook mapping (ASCM) in 2013 [19]. In this paper, we propose a new reversible data hiding method for VQ indices based on improved locally adaptive coding scheme (ILAS). Firstly, the codebook is sorted according to the unidirectional static distance-order technique proposed in our previous work [21] to enhance the correlations between the neighboring indices. With this strategy, the neighboring block indices have the very close value. Then the ILAS utilizes the two-dimensional structure of image information and the correlation of the neighboring block indices to updates the self-organizing list L. The ILAS can make the encoded index be more close to the front of list L than LAS. Finally, a novel embedding rule is proposed according to the complexity of the region at which the current block locates and the position of current block index in the list L. Experimental results demonstrate that our proposed method outperforms the related works which are Chang et al. method [14] and Yang and Lin¶s method [15], and other VQ-based reversible data hiding method [12] in terms of the embedding capacity, embedding rate and bit rate. The remainder of the paper is organized as follows. Section 2 briefly introduces the concepts of vector quantization [20], locally adaptive coding scheme [22], the data hiding method of Chang et al. [14] and the unidirectional static distance-order technique [21]. Section 3 presents our proposed method in detail and the experimental results are shown in Section 4. Some conclusions are made in Section 5.
2. Related work 2.1. Vector quantization Vector quantization [20] is one of the most famous compression techniques because of its simple encoding and decoding procedures. In the encoding procedure, the image is first partitioned into a large amount of k-dimensional non-overlapping blocks. Each k-dimensional block X
Y
( x0 , x1 ,..., xk 1 ) is mapped to the best match codeword ybm in a given codebook
{ y0 , y1 ,..., yN 1} , where N is the size of the codebook. Then the block X is represented as the
index bm of the best match codeword ybm in the codebook. The distortion between the block X 3
and the codeword yi is measured by the square Euclidean distance defined as follows.
d ( X , yi )
X yi
k 1
2
¦ (x
j
yij ) 2
(1)
j 0
where x j is the jth element of the block X, yi is the ith codeword in the codebook Y and yij is the jth element of the codeword yi . The best match codeword ybm for the block X is the one that has the minimal distortion with the block X defined as follows:
d ( X , ybm )
min {d ( X , yi )}
0di d N 1
(2)
In the decoding procedure, a simple table look-up technique is performed to reconstruct the image with the same codebook.
2.2. Locally adaptive coding scheme Locally adaptive coding scheme [22], proposed by Bentley et al. in 1986, is a data compression scheme. The LAS utilized a self-organizing list L as an auxiliary data structure and a variable-length integers encoding scheme. The list L is updated using the ³move-to-front´ strategy: after a word is used, it is deleted from its current position and moved to the front of the list L. This strategy attempts to ensure the frequently accessed words appear near front of the list L and have a short encoding length. Initially, the list L is empty (i.e. L = { }) and the length of list L is Len=0. The current word W is encoded by looking it up in the list L. If it is located in the position p, then the word W is encoded by integer p and moved to the front of the list L. Otherwise (i.e. word W do not exist in the list L), the word W is encoded by integer Len+1 followed by the word W. Then the word W is moved to the front of the list L and the length of list L is Len=Len+1. Finally, the integers representing the positions in the list L are further compressed by the variable-length integers encoding scheme. The variable-length integers scheme proposed in Bentley et al.¶s scheme [22] is to prefix the binary representation of the integer p (p t 1) with «¬log 2 p »¼ 0¶s, where ³ «¬ »¼ ´is the flooring function. This prefix code states that the total encoding length of the integer p is 1 2 u ¬«log 2 p ¼» bits. Take the message ³THE CAR ON THE LEFT HIT THE CAR I LEFT´ for example. The entire 4
message is encoded as ³1 THE 2 CAR 3 ON 3 4 LEFT 5 HIT 3 5 6 I 5´. The LAS encoding procedure is shown in Table 1.
2.3. Chang et al.¶s data hiding method In 2009, Chang et al. proposed a reversible data hiding method for VQ indices based on LAS [14]. In Chang et al.¶s data hiding method, the secret data is embedded into the VQ index appearing in the list L. The general idea of embedding strategy in Chang et al.¶s method is shown as follows. Firstly, the image is encoded using VQ to obtain a VQ index table. Set the code stream CS be empty (i.e. CS = { }) and the list L be empty (i.e. L = { }), too. Read the next VQ index icur from the VQ index table. Look up icur in the list L. If icur does not exist in the list L (i.e. icur L ),
icur is encoded by 0 || i2 , where ³||´ denotes the concatenation operation and i2 is the log 2 N bits binary representation of icur . Insert icur to the front of list L and send 0 || i2 to the code stream CS (i.e. CS ||0||i2 ). Otherwise ( icur L ), read the next secret data sd. If sd == 1, then
icur is encoded by 0 || i2 and icur is moved to the front of list L, send 0 || i2 to the code stream CS. Otherwise (sd == 0), find the position p of icur in the list L, then icur is encoded by 1|| p1 , where p1 is the 1 2 u «¬log 2 p »¼ bits length encoding of the position p in LAS [22]. icur is moved to the front of list L and 1|| p1 is sent to the code stream CS. The embedding procedure is repeated until all VQ indices are encoded.
2.4. The unidirectional static distance-order technique The unidirectional static distance-order codebook has a much higher correlation between neighboring block indices than that of the mean-order codebook [21]. With this sorting strategy, the neighboring block indices have the very close value. The steps of unidirectional static distance-order technique are summarized again as follows. Input: Codebook Y with size of N and the unidirectional static distance-order codebook OY is 5
empty (i.e. OY = { }). Output: The unidirectional static distance-order codebook OY with size of N. Step 1: Compute the centroid Yc of the all codewords in the codebook Y as Yc
1 N 1 ¦ yi . Ni 0
Step 2: Find the closest codeword ycc for Yc in the codebook Y. Name ycc as oy0 and add oy0 into the 0th place of OY (i.e. OY Y (i.e. Y
{oy0 } ). Remove ycc from the codebook
Y { ycc } ) and set k = 1.
Step 3: Find the closest codeword ycc for the codeword oyk 1 in the remaining codebook Y. Name
OY Y
ycc
as
oyk
and
oyk
add
into
the
kth
place
of
OY
(i.e.
{oy0 , oy1 ,..., oyk 1 , oyk } ). Remove ycc from the remaining codebook Y (i.e. Y { ycc } ) and set k = k+1.
Step 4: Repeat Step 3 until all the codewords in the codebook Y are removed.
3. Proposed method This section describes our proposed method in detail. Codewords in the codebook are sorted using the unidirectional static distance-order technique proposed by our previous work [21]. The unidirectional static distance-order codebook has a much higher correlation between neighboring block indices than that of the mean-order codebook. With this sorting strategy, the neighboring block indices have the very close values. As the image is the two-dimensional structure, the current block index I cur has the same or close value with its four neighboring block indices. The diagrammatic sketch of the neighboring block indices is shown in Fig. 1. The two-dimensional structure image information and the correlation of the neighboring block indices are used to update the list L in the improved locally adaptive coding scheme. The ILAS can make the encoded index be more close to the front of list L than the traditional locally adaptive coding scheme. Finally, a novel embedding rule is proposed according to the complexity of the region at which the current block locates and the position of current block index in the list L. The ILAS is presented in Section 3.1 in detail and Section 3.2 shows the proposed embedding 6
rule and the encoding and decoding process. The details of decoding and extracting process are shown in Section 3.3.
3.1. The improve locally adaptive coding scheme In the traditional locally adaptive coding scheme [22], the list L is initially empty. It is unreasonable when considering VQ indices are already known for the coders when LAS is used to compress the VQ indices. The list L can be initially constructed using the codebook indices (i.e. L = {0, 1, «, N1}) other than empty one and the length of L is N in ILAS. This initialization operation can avoid the situation that the encoded index is not in the list L. The list L is updated only using the previous encoded word in LAS. It is unreasonable when considering that image is a two-dimensional structure and the current block to be encoded has a high correlation with its neighboring blocks. Neighboring blocks in an image normally have high correlation. This high correlation may be degraded when the blocks are represented with the indices in VQ techniques. In order to preserve the high correlation between neighboring block indices, the codewords in the codebook are firstly sorted using the unidirectional static distance-order technique proposed by our previous work [21]. After the codebook is sorted, the image is encoded using VQ to obtain a VQ index table. To the current block index I cur to be encoded, the list L is first updated according to the updating rule in ILAS as follows. Input: The previous list PL (the self-organized list L for the previous block index) initialized as PL = {0, 1, « , N1}. Output: The current list CL. Step 1: For the current block¶s four neighboring block indices illustrated by shaded blocks in Fig. 1, find the minimum index I min (i.e. I min index I max (i.e. I max
min( Il , Ilu , Iu , I ru ) ) and maximum
max( Il , Ilu , Iu , I ru ) ).
Step 2: Construct the updating group G1 {Il , Iu , Ilu , I ru , I min , I min 1,..., I max 1, I max } , remove the repeating elements in the G1 to generate a new group G2. Step 3: Put G2 in the front of the list PL to form a new PL ' (i.e. PL ' {G2, PL} ), remove 7
the repeating elements in the PL ' to generate current list CL. For the VQ indices located in the first row (except the first VQ index in the first row) of the VQ index table, there is only one VQ index I l in the four neighboring block indices which is used to update the list L. For the VQ indices located in the first column (except the first VQ index in the first row) of the VQ index table, there are two VQ indices I u and I ru in the four neighboring block indices which are used to update the list L. For the VQ indices located in the last column (except the last VQ index in the first row) of the VQ index table, there are three VQ indices I l ,
I lu and I u in the four neighboring block indices which are used to update the list L. Then find the position p of the current block index I cur in the current list CL and the current block index I cur is encoded with integer p. It is obviously found that ILAS is the same as the traditional LAS when the group G2 only has the left neighboring index I l (i.e. G 2
{Il } ) or
the traditional LAS is a special case of our proposed ILAS. The proposed group-update strategy utilizes the two-dimensional structure of image and high correlation of neighboring block indices. An example of the ILAS is shown in Fig. 2. Suppose the codebook size is 8 and the current block index (illustrated by black block in Fig. 2 (a)) that must be coded is at point (2, 3) with an index value of 6. The list L is initially L = {0, 1, « , 6, 7}. After the first 6 block indices illustrated by shaded blocks in Fig. 2 (a) are coded, list L has been updated to be {5, 3, 6, 4, 0, 1, 2, 7} according to the updating rule of ILAS. The previous list PL = {5, 3, 6, 4, 0, 1, 2, 7} illustrated in Fig. 2 (b). The current block index and its four neighboring block indices I l , I u , I ru , and
I lu are illustrated in Fig. 2 (b). The minimum index of four neighboring block indices is 3 (i.e.
I min
3 ) and the maximum index of four neighboring block indices is 6 (i.e. I max
6 ). The
updating group is constructed as G1 = {3, 6, 5, 3, 3, 4, 5, 6} illustrated in Fig. 2 (b). The repeating elements in G1 are removed to generate a new group G2 = {3, 6, 5, 4} illustrated in Fig. 2 (b). The G2 is put in the front of the PL to form a new list PL ' {3,6,5, 4,5,3,6, 4,0,1, 2,7} illustrated in Fig. 2 (b). The repeating elements in PL ' are removed to generate the current list CL = {3, 6, 5, 4, 0, 1, 2, 7} illustrated in Fig. 2 (b). Finally the list L is {3, 6, 5, 4, 0, 1, 2, 7} and the position p of current block index in the list L is 2. The current block index is encoded with the integer 2. 8
Fig. 3 presents the cumulative percentage histogram of the positions for image Lena and Baboon between the LAS and ILAS when the codebook size is 512. From Fig. 3, it is clearly found that the proposed ILAS makes the positions of words much more concentrated to the front of list L than that in the LAS. The cumulative percentage is 66.82% for image Lena in ILAS which is much higher than that in LAS (37.29%) at the position of 15. The cumulative percentage is 25.86% for image Baboon in ILAS which is higher than that in LAS (18.87%) at the position of 15. Therefore, the proposed ILAS can significantly improve the performance of LAS.
3.2 The encoding and embedding process The integers encoding in LAS is to encode the integer p with 1 2 u ¬«log 2 p ¼» bits. However, it cannot reduce the encoding length of the integer p when the integer p is equal to or larger than a threshold TH. Taking the codebook size N of 512 as an example: if 1 2 u «¬log 2 p »¼ log 2 N , p must satisfy p < 16. This means that the integers encoding scheme in LAS can reduce the encoding length of the integer p when p is smaller than 16. Otherwise (i.e. p t 16), the integers encoding scheme in LAS cannot reduce the encoding length of the integer p. In order to solve this problem, we can encode the integer p with 1 2 u «¬log 2 p »¼ bits when the integer p is smaller than the given threshold TH (TH = 16 at the codebook size N = 512) and encode the integer p with
log 2 N when the integer p is equal or larger than the given threshold TH (TH = 16 at the codebook size N = 512) in our proposed encoding scheme. For the different codebook sizes, the different thresholds can be obtained. The given threshold TH equals to 8 for the codebook size of 128, 16 for the codebook size of 256, 16 for the codebook size of 512 and 32 for the codebook size of 1024. In order to further reduce the encoding length of the integer p, we first estimate the complexity of the region at which the current block locates. For a smooth region, the current block index has a higher possibility that it has the same or close value with its four neighboring block indices and its encoding position p has a small value. Otherwise, the current block index has a lower possibility that it has the same or close value with its four neighboring block indices and its encoding position p has a small value for a complexity region. Simply and effectively, the region estimation 9
algorithm which uses the majority decision rule to confirm whether the region is smooth or complexity is presented as follows. Input: The current block¶s four neighboring block encoded positions (illustrated by shaded blocks in Fig. 4) using ILAS. Output: The smooth region or complexity region. Step 1: Check the current block¶s four neighboring block encoded positions illustrated by shaded blocks in Fig. 4. Define Ns as the number of positions which are smaller than the given threshold TH and Nc as the number of positions which are equal to or larger than the given threshold TH. Step 2: If Ns t Nc, this region is regarded as the smooth region. Otherwise (Ns < Nc), this region is regarded as the complexity region. For the VQ indices located in the first row (except the first VQ index in the first row) of the VQ index table, there is only one encoded position Pl in the four neighboring block encoded positions which is used to estimate the complexity of the region. For the VQ indices located in the first column (except the first VQ index in the first row) of the VQ index table, there are two encoded positions Pu and Pru in the four neighboring block encoded positions which is used to estimate the complexity of the region. For the VQ indices located in the last column (except the last VQ index in the first row) of the VQ index table, there are three VQ encoded positions Pl ,
Plu and Pu in the four neighboring block encoded positions which is used to estimate the complexity of the region. The encoding and embedding strategy is shown as follows. The encoding and embedding strategy is also illustrated in Fig. 5. Input: The encoded position pcur of current block X, its four neighboring block encoded positions (illustrated by shaded blocks in Fig. 4) using ILAS and the secret data sd. Output: The encoded code. Step 1: Estimate the complexity of the region using region estimation algorithm. Step 1.1: If X is located at the smooth region and the position pcur is smaller than a given threshold TH. Read the next 1-bit secret data sd. 10
Step 1.1.1: If sd == 0, read the next 1-bit secret data sd. If the consecutive 2-bit secret data is (00)2, encode X with 00 || p1 , where p1 is the 1 2 u «¬log 2 pcur »¼ bits length encoding of the position
pcur in LAS [22]. Otherwise (The
consecutive 2-bit secret data is (01)2), encode X with 01|| p1 . Step 1.1.2: Otherwise (i.e. sd == 1), encode X with 10 || p1 . Step 1.2: If X is located at the smooth region and the position pcur is equal to or larger than a given threshold TH. Read the next 1-bit secret data sd. Step 1.2.1: If sd == 0, encode X with 110 || p2 , where p2 is the log 2 N bits binary representation of ( pcur 1) . Step 1.2.2: Otherwise (i.e. sd == 1), encode X with 111|| p2 . Step 1.3: If X is located at the complexity region and the position pcur is equal to or smaller than 32. Read the next 1-bit secret data sd. Step 1.3.1: If sd == 0, encode X with 00 || p3 , where p3 is the 5 bits binary representation of ( pcur 1) . Step 1.3.2: Otherwise (i.e. sd == 1), encode X with 01|| p3 . Step 1.4: If X is located at the complexity region and the position pcur is larger than 32. Read the next 1-bit secret data sd. Step 1.4.1: If sd == 0, encode X with 10 || p2 . Step 1.4.2: Otherwise (i.e. sd == 1), encode X with 11|| p2 . Step 2: Output the encoded code.
Therefore, the encoding and embedding process of our proposed method is described in detail as follows. Input: The cover image CI sized H u W , a codebook Y sized N and a secret message SM. Output: The code stream CS in binary form. 11
Step 1: Sort the codebook Y using the unidirectional static distance-order technique. Step 2: Encode the cover image CI using the VQ encoder to obtain a VQ index table IT sized
( H / h) u (W / w) , where h and w is the height and width of the block, respectively. Set the self-organizing list L as L = {0, 1, 2, « , N1}. Step 3: Encode the VQ index table IT using ILAS to obtain a position table PT sized
( H / h) u (W / w) which records the encoded positions of blocks and let the code stream CS be empty (i.e. CS = { }). Step 4: Read the next position p from the position table PT and its four neighboring block positions. Step 5: Encode the position p and embed the secret data sd using the proposed encoding and embedding rule. Send the code to the code stream CS. Step 6: Repeat Step 4 to step 5 until all the positions in the position table PT are processed. Step 7: Output the code stream CS.
3.3 The decoding and extracting process The code stream CS is sent to the receiver and the receiver can extract the secret message and recover the VQ index table to reconstruct the VQ compressed cover image by following the proposed decoding and extracting algorithm which is shown as follows. Input: The code stream CS in binary form and the codebook Y sized N. Output: The VQ compressed cover image CI ' sized H u W and the secret message SM. Phase 1: Extract the secret message SM and recover the position table PT sized
( H / h) u (W / w) . Step 1: Let the secret message SM be empty (i.e. SM = { }) and first recover the position table PT sized ( H / h) u (W / w) . Step 2: Read the four neighboring block positions of the current position p from the position table PT. Step 3: Confirm whether the region is smooth or complexity using the proposed region estimation algorithm. 12
Step 3.1: If the region is smooth, read the next 2-bit b from the code steam CS. Step 3.1.1: If b == 00, secret data sd = 00 is extracted. Send the secret data into secret message SM, Read all the next consecutive bit 0¶s from the code stream CS to obtain the number of the consecutive bit 0¶s as num. Read the next (1+num)-bit b from the code stream CS and change b to the decimal value p. Insert the (p+1) into the position table PT. Step 3.1.2: If b == 01, secret data sd = 01 is extracted. Send the secret data into secret message SM. Read all the next consecutive bit 0¶s from the code stream CS to obtain the number of the consecutive bit 0¶s as num. Read the next (1+num)-bit b from the code stream CS and change b to the decimal value p. Insert the (p+1) into the position table PT. Step 3.1.3: If b == 10, secret data sd = 1 is extracted. Send the secret data into secret message SM. Read all the next consecutive bit 0¶s from the code stream CS to obtain the number of the consecutive bit 0¶s as num. Read the next (1+num)-bit b from the code stream CS and change b to the decimal value p. Insert the (p+1) into the position table PT. Step 3.1.4: If b == 11, append the following 1 bit to the secret message. Read the next
log 2 N -bit b from the code stream CS and change b to the decimal value p. Insert the (p+1) into the position table PT. Step 3.2: If the region is smooth, read the next 1-bit b from the code steam CS. Step 3.2.1: If b == 0, append the following 1 bit to the secret message. Read the next 5-bit b from the code stream CS and change b to the decimal value p. Insert the (p+1) into the position table PT. Step 3.2.2: If b == 1, append the following 1 bit to the secret message. Read the next
log 2 N -bit b from the code stream CS and change b to the decimal value p. Insert the (p+1) into the position table PT. Step 4: Repeat Step 2 to Step 3 until all the bits of the code stream CS are processed. Phase 2: Recover the VQ index table IT sized ( H / h) u (W / w) .
13
Step 5: Set the self-organizing list L as L = {0, 1, 2, «, N1} and recover the VQ index table IT sized ( H / h) u (W / w) . Step 6: Update the list L using the proposed updating rule in ILAS. The current index I cur is recovered at position pcur in the list L. Insert the current index I cur into the VQ index table IT. Step 7: Repeat Step 6 until all the positions are processed. Phase 3: Recover the VQ compressed cover image CI ' sized H u W . Step 8: Sort the codebook Y using the unidirectional static distance-order technique. Step 9: Recover the VQ compressed cover image CI ' from the VQ index table IT using the VQ decoder. Step 10: Output the VQ compressed cover image CI ' and the secret message SM.
4. Experimental results Experiments are implemented to demonstrate the proposed method¶s performance in terms of compression rate, the visual quality of the reconstructed images, the embedding capacity and the embedding rate in this section. In the experiments, eight general 8-bit grayscale images sized 512 u 512 are used as the test images shown in Fig 6. Each test image is divided into
non-overlapping blocks sized 4 u 4 and the codebooks sized 128, 256, 512 and 1024 are trained using the well-known LBG algorithm [23]. In the experiments, four criterions which are compression rate, visual quality, embedding capacity and embedding rate are used to evaluate the performance of the proposed method. The first important criterion is compression rate to evaluate the compression performance in compression domain. The bit rate BR (bpp) is applied to represent the compression rate which is calculated as follows.
BR where CS
CS / ( H u W )
(3)
is the length of the code stream CS, H and W is the height and width of the cover
image, respectively. A smaller value of the BR indicates a higher compression performance. The second important criterion is visual quality to evaluate the distortion between the original 14
cover image and the reconstructed image. The peak-signal-to-noise-ratio (PSNR) (dB) is used to represent the visual quality and is calculated as follows.
PSNR 10 u log10 (
2552 ) MSE
(4)
where the mean-square-error (MSE) is defined as follows.
MSE
1 H uW
H 1 W 1
¦¦ ( I
ij
IÖij )2
(5)
i 0 j 0
where I ij and IÖij is the value of pixel (i, j) of the original cover image and the reconstructed image, respectively. A higher value of the PSNR indicates a better visual quality of the reconstructed image. The third and fourth important criterions are the embedding capacity and embedding rate to evaluate the embedding ability of the data hiding method. The embedding capacity EC (bit) is the length of the secret message SM which is embedding into the code stream CS. A larger value of the EC indicates a higher embedding capacity of the data hiding method. The embedding rate ER denotes how many secret bits can be embedded when the same length of the code stream CS is transmitted and is calculated as ER
SM / CS , where SM
is the length of embedded
secret message SM. A larger value of the ER indicates that a larger amount of secret message can be embedded at the same length of code stream CS. Firstly, to demonstrate the superiority of the proposed method, we test our proposed method compared with the three data hiding methods [12, 14, 15] at the codebook size N=512. They are the two related data hiding methods based on LAS for VQ index table [14, 15] and one data hiding method based on JNC for VQ index table proposed by Chang et al. [12] which uses the neighboring block indices to embed the secret data. Table 2 presents the performance comparisons between our proposed method and the data hiding method proposed by Chang et al. [14] at the codebook size N=512. The PSNR of the reconstructed image using conventional VQ method is also listed in Table 2 and the compression rate of the reconstructed image using conventional VQ method is 0.563 bpp. The PSNR of the reconstructed image in our proposed method is the same as that of Chang et al.¶s method [14] and the conventional VQ method. It indicates that both our proposed method and method proposed by 15
Chang et al. [14] can recover the VQ indices completely. As our proposed method utilized the two-dimensional structure of image information and the correlation of the neighboring block indices to updates the self-organizing list L, our proposed method can make the encoded index be more close to the front of list L than that in the LAS in Chang et al.¶s method [14]. Also a novel embedding rule is proposed according to the complexity of the region at which the current block locates and the position of current block index in the list L. It can achieve a low bit rate and it can embed more than 1 bit secret data into each index averagely. Our proposed method has a lower bit rate (0.445 bpp on average) than that of Chang et al.¶s method (0.587 bpp on average) [14] and that of conventional VQ method (0.563 bpp on average). Our proposed method has a higher embedding capacity (21,543 bits on average) than that of Chang et al.¶s method (15,981 bits on average) [14]. The average embedding rate in our proposed method is 19.09% which is much higher than that of Chang et al.¶s scheme (10.45% on average) [14]. Table 2 demonstrates that our proposed method has a better performance than Chang et al.¶s method [14] in terms of compression rate, embedding capacity and embedding rate. Table 3 compares the compression rate in our proposed method with the three reversible data hiding methods [12, 14-15] at the codebook size N=512. Due to the good performance of ILAS and an efficient encoding and embedding strategy, it can be found that the lowest bit rate among the four data hiding methods is our proposed method (0.445 bpp on average), followed by Yang and Lin¶s method [15] (0.507 bpp on average), which are all lower than the conventional VQ method (0.563 bpp on average). Next are Chang et al.¶s method [12] (0.575 bpp on average) and Chang et al.¶s method [14] (0.587 bpp on average). This means that our proposed method is superior to that of the methods proposed by Chang et al. [12, 14] and Yang and Lin [15]. The comparison results for embedding capacity among four reversible data hiding methods at the codebook size N=512 are shown in Table 4. As in our proposed method, each index can embed more than 1 bit secret data averagely according to the proposed encoding and embedding strategy and the related three data hiding methods [12, 14-15] can only embed at most 1 bit secret data into each index, our proposed method has the maximal embedding capacity (21,543 bits on average) among the four reversible data hiding methods, followed by Chang et al.¶s method [12] (16129 bits on average). Both the Chang et al.¶s method [14] and Yang and Lin¶s method [15] have the 16
minimal embedding capacity (15,981 bits on average) because the similar embedding strategy is used in their methods. The experimental results in Table 4 demonstrate that the proposed method has a better performance in the embedding capacity compared with the three data hiding methods [12, 14-15]. Table 5 presents the experimental results of embedding rate for the four reversible data hiding methods at the codebook size N=512. As our proposed method can achieve a lower bit rate and a higher embedding capacity compared with the related three data hiding methods [12, 14-15], it can be seen from Table 5 that our proposed method has the highest embedding rate compared with the three data hiding methods. The average embedding rate is 19.09% in our proposed method which is higher than that of Yang and Lin¶s method [15] (12.42% on average), Chang et al.¶s method [12] (10.75% on average) and Chang et al.¶s method [14] (10.75% on average). Table 6 shows the average execution time for the four reversible data hiding methods at the codebook size N=512. The fastest one is 13.18s in Chang et al.¶s method [12] for both the embedding process (12.59s) and extracting phase (0.59s). Next are 13.48s in Chang et al.¶s method [14], 13.61VLQ
proposed method has a lowest bit rate, a larger embedding capacity and a larger embedding rate among the four data hiding methods. As we describe in Section 3, the proposed ILAS can fully utilize the two-dimensional structure of image and the high correlation among the neighboring blocks to updating the list L. This is an efficient extension of updating rule in LAS and the proposed ILAS make the positions of words much more concentrated to the front of list L than that in the LAS. It is one key factor to achieve a lower bit rate compared with Chang et al.¶s method [14] and Yang and Lin¶s method [15]. In addition, the proposed encoding and embedding strategy can not only reduce the encoding length but also can embed more than 1 bit secret data averagely into each index. However, the related three data hiding methods [12, 14-15] can embed at most 1 bit secret data into each index and the encoding strategies in these methods are not optimal. These two key factors determine a lower bit rate, a higher embedding capacity and a higher embedding rate of our proposed method compared with the related three data hiding methods [12, 14-15].
5. Conclusions In this paper, a new high-performance reversible data hiding method for VQ indices based on an improved locally adaptive coding scheme is proposed. The unidirectional static distance-order technique is used to improve the correlation among the neighboring block indices. In ILAS, the self-organizing list L is initially constructed using all codebook indices to avoid the case that the encoded index does not exist in the list L. The two-dimensional structure of image and the high correlation among the neighboring blocks are used to updating the list L. The proposed ILAS can make the positions of words much more concentrated in the front of the list L than that of in LAS. Then the new embedding rule according to the complexity of the region at which the current block locates and the position of current block index in the list L is proposed. Experimental results demonstrate that our proposed method has a lower bit rate, a larger embedding capacity, a higher embedding rate compared with the three VQ-based reversible data hiding methods which are Chang et al.¶s method [12, 14] and Yang and Lin¶s method [15]. Our proposed method also has the same visual quality of the reconstructed image as that of Chang et al.¶s method [14] and the conventional VQ method. Therefore, our proposed method achieves a higher comprehensive 18
performance in reversible data hiding method for VQ indices.
Acknowledgments This work is supported in part by Specialized Research Fund for the Doctoral Program of Higher Education (Grant No. 20130201110071), Project Supported by Key Science and Technology Program of Shaanxi Province (Grant No. 2012GY2-30), Open Project Program of the National Laboratory of Pattern Recognition (Grant No. 201407370) and Open Project Program of the State Key Lab of SKL (Grant No. KFKT2013B05), Nanjing University.
Reference 1. F.A.P. Petitcolas, R.J. Anderson, M.G. Kuhn, Information hiding-a survey, Proceedings of the IEEE 87 (7) (1999) 1062-1078. 2. A. Cheddad, J. Condell, K. Curran, et al., Digital image steganography: Survey and analysis of current methods, Signal Processing 90 (3) (2010) 727-752. 3. J. Tian, Reversible data embedding using a difference expansion, IEEE Transactions on Circuits and Systems for Video Technology 13 (8) (2003) 890-896. 4. H.C. Wu, C.C. Lee, C.S. Tsai, et al., A high capacity reversible data hiding scheme with edge prediction and difference expansion, Journal of Systems and Software 82 (12) (2009) 1966-1973. 5. M.U. Celik, G. Sharma, A.M. Tekalp, E. Sable, Lossless generalized-LSB data embedding, IEEE Transactions on Image Processing 14 (2) (2005) 253-266. 6. Z. Ni, Y.Q. Shi, N. Ansari, W. Su, Reversible data hiding, IEEE Transactions on Circuits and Systems for Video Technology 16 (3) (2006) 354-362. 7. W.L. Tai, C.M. Yeh, C.C. Chang, Reversible data hiding based on histogram modification of pixel differences, IEEE Transactions on Circuits and Systems for Video Technology 19 (6) (2009) 906-910. 8. Y.K. Lin, High capacity reversible data hiding scheme based upon discrete cosine transformation, Journal of Systems and Software 85 (10) (2012) 2395-2404. 9. S. Lee, C.D. Yoo, T. Kalker, Reversible image watermarking based on integer-to-integer 19
wavelet transform, IEEE Transactions on Information Forensics and Security 2 (3) (2007) 321-330. 10. C.C. Chang, G.M. Chen, M.H. Lin, Information hiding based on search-order coding for VQ indices, Pattern Recognition Letters 25 (11) (2004) 1253-1261. 11. Z.B. Pan, X.X. Ma, X.M. Deng, S. Hu, Low bit-rate information hiding method based on search-order-coding technique, Journal of Systems and Software 86 (11) (2013) 2863-2869. 12. C.C. Chang, T.D. Kieu, W.C. Wu, A lossless data embedding technique by joint neighboring coding, Pattern Recognition 42 (7) (2009) 1597-1603. 13. J.X. Wang, Z.M. Lu, A path optional lossless data hiding scheme based on VQ joint neighboring coding, Information Sciences 179 (19) (2009) 3332-3348. 14. C.C. Chang, T.D. Kieu, Y.C. Chou, Reversible information hiding for VQ indices based on locally adaptive coding, Journal of Visual Communication and Image Representation 20 (1) (2009) 57-64. 15. C.H. Yang, Y.C. Lin, Fractal curves to improve the reversible data embedding for VQ-indexes based on locally adaptive coding, Journal of Visual Communication and Image Representation 21 (4) (2010) 334-342. 16. C.H. Yang, Y.C. Lin, Reversible data hiding of a VQ index table based on referred counts, Journal of Visual Communication and Image Representation 20 (6) (2009) 399-407. 17. C.H. Yang, S.C. Wu, S.C. Huang, et al., Huffman-code strategies to improve MFCVQ-based reversible data hiding for VQ indexes, Journal of Systems and Software 84 (3) (2011) 388-396. 18. J.D. Lee, Y.H. Chiou, J.M. Guo, Lossless data hiding for VQ indices based on neighboring correlation, Information Sciences 221 (2013) 419-438. 19. W.J. Wang, C.T. Huang, C.M. Liu, et al., Data embedding for vector quantization image processing on the basis of adjoining state-codebook mapping, Information Sciences 246 (2013) 69-82. 20. R. Gray, Vector quantization, IEEE ASSP Magazine 1 (2) (1984) 4-29. 21. F.J. Gao, Z.B. Pan, R.P. Qiao, X.M. Deng, Improved index coding algorithm using distance-based codebook sorting, Journal of Image and Graphics 16 (11) (2011) 1967-1974. 20
(In Chinese) 22. J.L. Bentley, D.D. Sleator, R.E. Tarjan, V.K. Wei, A locally adaptive data compression scheme, Communications of the ACM 29 (4) (1986) 320-330. 23. Y. Linde, A. Buzo, R. Gray, An algorithm for vector quantizer design, IEEE Transactions on Communications 28 (1) (1980) 84-95.
21
Table 1: Example of the LAS encoding procedure Step 1 2 3 4 5 6 7 8 9 10
Input THE CAR ON THE LEFT HIT THE CAR I LEFT
The list L={ } L={THE} L={CAR, THE} L={ON, CAR, THE} L={THE, ON, CAR} L={LEFT, THE, ON, CAR } L={ HIT, LEFT, THE, ON, CAR } L={ THE, HIT, LEFT, ON, CAR } L={ CAR, THE, HIT, LEFT, ON } L={ I, CAR, THE, HIT, LEFT, ON } L= { LEFT , I, CAR, THE, HIT, ON}
22
Output 1 THE 2 CAR 3 ON 3 4 LEFT 5 HIT 3 5 6I 5
Length of list L Len=0 Len=1 Len=2 Len=3 Len=3 Len=4 Len=5 Len=5 Len=5 Len=6 Len=6
I lu
Iu
Il
I cur
I ru
Fig. 1: The diagrammatic sketch of the neighboring block indices
23
1
2
3
4
1
3
5
6
3
2
5
3
6
3
7
4
4
2
2
PL
5
3
6
4
0
1
2
7
4
Il
3
Iu
6
I min
3
4
2
I ru
5
I lu
3
I max
6
1
0
Construct G1
G1 {3,6,5,3,3,4,5,6}
Icur
Remove repeating elements
(a)
G 2 {3,6,5,4} Put G2 in front of PL
PL'
3
6
5
4
5
3
6
4
G2
0
1
2
7
PL Remove repeating elements
CL
3
6
5
4
0
1
2
(b)
Fig. 2: An example of the ILAS
24
7
Encode I cur with 2
Fig. 3: Comparison of the cumulative percentage histogram of the positions between LAS and ILAS
25
plu
pu
pl
pcur
pru
Fig. 4: The diagrammatic sketch of the neighboring block encoded positions
26
Region estimation Yes
Yes
No
Smooth region? No
Yes
pcur 16
No Yes
0
Yes
No
00 || p1
sdi
Yes
sdi 1
01|| p1
No
pcur d 32
sdi
0
No
sdi
0
Yes
10 || p1 110 || p2 111|| p2 00 || p3
No
01|| p3
Output code
Fig. 5: Our encoding and embedding strategy
27
Yes
10 || p2
0
No
11|| p2
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
Fig. 6: Eight general test images: (1) Lena; (2) Peppers; (3) Airplane; (4) Baboon; (5) Tiffany; (6) Toys; (7) Lake; (8) Boat.
28
Table 2: The performance comparisons between our proposed method and Chang et al.¶s method [14] at the codebook size N = 512 Image
Lena Peppers Airplane Baboon Tiffany Toys Lake Boat
VQ PSNR (dB) 32.43 32.48 32.00 25.30 33.03 32.30 29.65 30.06
Chang et al.¶s method [14] PSNR BR EC (dB) (bpp) (bits) 32.43 0.613 15967 32.48 0.607 15957 32.00 0.552 16002 25.30 0.686 15931 33.03 0.552 16161 32.30 0.525 15954 29.65 0.603 15944 30.06 0.559 15932
ER (%) 9.94 10.03 11.06 8.86 11.16 11.60 10.09 10.87
Proposed method PSNR BR (dB) (bpp) 32.43 0.438 32.48 0.440 32.00 0.415 25.30 0.612 33.03 0.391 32.30 0.351 29.65 0.485 30.06 0.427
EC (bits) 21909 22085 21896 17824 23053 23131 20886 21561
ER (%) 19.07 19.15 20.11 11.12 22.47 25.12 16.44 19.27
Average
30.91
30.91
10.45
30.91
21543
19.09
0.587
15981
29
0.445
Table 3: Comparison bit rate (bpp) at the codebook size N = 512
Lena Peppers Airplane Baboon Tiffany Toys Lake Boat
&KDQJHWDO¶V method [14] 0.613 0.607 0.552 0.686 0.552 0.525 0.603 0.559
&KDQJHWDO¶V method [12] 0.554 0.560 0.577 0.648 0.515 0.554 0.602 0.586
Proposed method 0.438 0.440 0.415 0.612 0.391 0.351 0.485 0.427
Average
0.587
0.507
0.575
0.445
Image
30
Table 4: Comparison embedding capacity (bits) at the codebook size N = 512
Lena Peppers Airplane Baboon Tiffany Toys Lake Boat
&KDQJHWDO¶V method [14] 15967 15957 16002 15931 16161 15954 15944 15932
&KDQJHWDO¶V method [12] 16129 16129 16129 16129 16129 16129 16129 16129
Proposed method 21909 22085 21896 17824 23053 23131 20886 21561
Average
15981
15981
16129
21543
Image
31
Table 5: Comparison embedding rate (%) at the codebook size N = 512
Lena Peppers Airplane Baboon Tiffany Toys Lake Boat
&KDQJHWDO¶V method [14] 9.94 10.03 11.06 8.86 11.16 11.60 10.09 10.87
&KDQJHWDO¶V method [12] 11.11 10.98 10.66 9.49 11.95 11.10 10.23 10.49
Proposed method 19.07 19.15 20.11 11.12 22.47 25.12 16.44 19.27
Average
10.45
12.42
10.75
19.09
Image
32
Table 6: Comparison average execution time (s) at the codebook size N = 512 Method Embedding process Extracting process Total
&KDQJHWDO¶V method [14] 12.80 0.68 13.48
33
&KDQJHWDO¶V method [12] 12.59 0.59 13.18
Proposed method 13.04 1.00 14.04
Table 7: The performance comparisons at the codebook size N = 128 Image
Criterion
Lena
BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%)
Peppers
Airplane
Baboon
Tiffany
Toys
Lake
Boat
&KDQJHWDO¶V method [14] 0.471 16264 13.17 0.468 16260 13.26 0.430 16268 14.44 0.524 16264 11.85 0.421 16317 14.78 0.414 16258 14.97 0.468 16263 13.25 0.437 16260 14.20
34
&KDQJHWDO¶V method [12] 0.442 16129 13.92 0.433 16129 14.21 0.433 16129 14.20 0.503 16129 12.24 0.389 16129 15.81 0.421 16129 14.63 0.463 16129 13.30 0.439 16129 14.01
Proposed method 0.345 22893 25.29 0.341 23170 25.95 0.323 22900 27.01 0.468 19383 15.82 0.299 24285 30.98 0.287 23710 31.56 0.373 21923 22.40 0.337 22512 25.46
Table 8: The performance comparisons at the codebook size N = 256 Image
Criterion
Lena
BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%)
Peppers
Airplane
Baboon
Tiffany
Toys
Lake
Boat
&KDQJHWDO¶V method [14] 0.545 16156 11.30 0.510 16147 11.87 0.471 16161 13.09 0.623 16141 9.88 0.442 16258 14.05 0.443 16144 13.89 0.516 16145 11.95 0.492 16145 12.53
35
&KDQJHWDO¶V method [12] 0.515 16129 11.95 0.505 16129 12.19 0.506 16129 12.15 0.594 16129 10.36 0.453 16129 13.57 0.485 16129 12.69 0.537 16129 11.46 0.513 16129 12.00
Proposed method 0.386 22504 22.22 0.381 22855 22.88 0.355 22639 24.30 0.538 18573 13.16 0.310 24358 29.97 0.300 23721 30.19 0.414 21720 20.01 0.377 22117 22.40
Table 9: The performance comparisons at the codebook size N = 1024 Image
Criterion
Lena
BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%) BR (bpp) EC (bits) ER (%)
Peppers
Airplane
Baboon
Tiffany
Toys
Lake
Boat
&KDQJHWDO¶V method [14] 0.689 15642 8.67 0.680 15623 8.76 0.620 15712 9.67 0.768 15531 7.71 0.629 15992 9.70 0.587 15671 10.19 0.681 15580 8.73 0.625 15566 9.49
36
&KDQJHWDO¶V method [12] 0.652 16129 9.44 0.638 16129 9.62 0.644 16129 9.55 0.728 16129 8.46 0.582 16129 10.56 0.620 16129 9.93 0.679 16129 9.06 0.649 16129 9.49
Proposed method 0.508 21174 15.91 0.512 21272 15.85 0.488 21302 16.64 0.690 17173 9.49 0.459 22607 18.81 0.404 22851 21.57 0.556 20286 13.91 0.489 20955 16.31
Highlights
1. We propose a new data hiding method using improved locally adaptive coding (ILAS). 2. ILAS uses the two-dimensional structure of image and correlation of adjacent indices. 3. Our proposed ILAS can significantly improve the performance of LAS. 4. Experiments show our method has a better performance compared with other methods.
37