1. Introduction
Data hiding, also called steganography [
1], is the study of embedding secret message into innocuous cover media [
2], such as images, audio signals, and videos files, to protect the confidentiality of the hidden data. Digital images are often used as the cover media because they can be accessed easily and can provide abundant redundancies for concealing data. According to the recoverability of the cover image after the extraction of hidden data, data hiding can be classified into two categories, i.e., conventional data hiding and reversible data hiding (RDH). RDH is crucial for some specific applications, such as medical imaging, remote sensing, and military communications. The first RDH was proposed by Barton in 1997 [
3]. In Barton’s approach, the bits to be overlaid were compressed in advance and then added to the secret bit string, after which the generated secret bit string was embedded into the data blocks of the images. Since then, researchers inspired by Barton’s idea have proposed various RDH approaches, including difference expansion (DE) [
4,
5], histogram shifting [
6,
7,
8], and prediction-error [
9,
10,
11]. In 2003, DE was introduced by Tian et al. by embedding the secret message into the differences between two adjacent pixels [
4]. In 2006, Ni et al. developed a different RDH approach based on histogram modification. Their approach used the zero or the minimum pixel value of the histogram of an image as the peak value, and then they slightly modified peak value and shifted the related pixel values to embed secret data [
6]. In 2008, Lin et al. transformed the original image into a difference image before using the histogram shifting technique to make sure the frequency of peak value is as largest as possible and ascertained that the hiding capacity was increased significantly [
7]. In 2011, Li et al. designed a new hybrid RDH method based on prediction-error expansion (PEE), adaptive embedding, and pixels’ selection [
9]. Subsequently, many scholars used Li et al.’s approach and designed various improved RDH schemes based on PEE. However, these schemes were designed for images in the spatial domain rather than images in the compression domain, but the latter demand of compression techniques has increased gradually as people have become familiar with the capability of transmitting or sharing image files over the Internet. Therefore, it is essential to explore and design RDHs for compression-domain images.
Compression techniques are designed to solve the problem of limited bandwidth since multimedia files, such as image, audio, and video files, are quite large. The general compression techniques include discrete cosine transform (DCT) [
12], discrete wavelet transform (DWT) [
13], vector quantization (VQ) [
14], and side match vector quantization (SMVQ) [
15]. The latter two famous block-based image compression techniques, i.e., VQ and SMVQ, attracted the attention of researchers when they tried to design RDHs for images in the compression domain. In 2005, Yang et al. [
16] applied modified, fast-correlation vector quantization (MFCVQ) to design a reversible watermarking scheme for VQ-compressed images. However, the weakness of their scheme is their low hiding capacity. To overcome this disadvantage, Lu et al. [
17] proposed an RDH method based on VQ-index residual value coding technique. In 2006, Chang et al. [
18] used a real codeword that could be mapped to an index in the SMVQ’s codebook and a derived codeword that did not exist in the SMVQ’s codebook to design their RDH strategy for SMVQ-compressed images. Inspired by Chang et al.’s idea, in 2011, Chiou et al. [
19] proposed an RDH scheme with enhanced hiding capacity that was also based on SMVQ to improve the hiding capacity and visual quality of steo-image. In Chiou et al.’s scheme, one secret bit is concealed into each pixel of the residual blocks.
In addition to VQ and SMVQ, block truncation coding (BTC) is the other efficient, lossy, block-based image compression technique. BTC technique was first proposed by Delp and Mitchell in 1979 [
20] and has been used for compressing Mars Pathfinder’s rover images [
21]. Later, Lema and Mitchell [
22] proposed the absolute mean block truncation coding (AMBTC) method to prompt the compression performance. After learning about the features of BTC and AMBTC, many scholars designed BTC-based or AMBTC-based RDHs. In general, these RDHs can be classified into two types, i.e., (1) Type I in which the stego codes can be decoded correctly via a conventional BTC or AMBTC decoder [
23,
24,
25] and a recovered image always can be constructed and (2) Type II in which the stego codes have specific coding structures [
26,
27,
28] and cannot be translated by standard BTC or AMBTC decoders. In other words, as long as malicious attackers use BTC or AMBTC decoders to decode the stego codes, those that cannot be decoded will be identified easily because they carry some valuable information. To avoid drawing the attention of attackers, in this paper, we tried to design a Type I-RDH scheme for AMBTC-compressed images.
Inspired by Chang et al.’s high payload data hiding scheme for compressed images with (7,4) hamming code [
29], several data hiding schemes based on (7,4) hamming code were proposed sequentially [
30,
31], but they were not reversible. In 2017, Biswapati et al. utilized (7,4) hamming code to design a partial RDH which allows the restored image to be very similar to its original image [
32]. In 2018, the same research team designed a dual image-based RDH scheme using (7,4) hamming code [
33]. According to the lectures we have collected to date, no one has used (7,4) hamming code to design RDH for a single, AMBTC-compressed image. However, (7,4) hamming code has a unique feature in that it can hide three secret bits into a seven-bit stream only at the cost of modifying a single bit. To take advantage of (7,4) hamming code, in this paper we introduce an RDH scheme using (7,4) hamming code that embeds secret data based on the relationship of the high-low mean tables and also into the bitmaps. In other words, the original AMBTC compression codes can be completely restore once the hidden data has been extracted with our proposed scheme. There is no distortion between our restored compression codes and the original AMBTC compression codes.
The rest of the paper is organized as follows.
Section 2 introduces the AMBTC scheme and (7,4) hamming code.
Section 3 illustrates the use of the proposed scheme for embedding and extracting data using the high-low mean tables and bitmap. In
Section 4, we describe the experiments we conducted and compare our proposed RDH scheme with other Type I AMBTC-based RDH schemes. Concluding remarks are given in
Section 5.
3. Proposed Scheme
In this paper, we propose a (7,4) hamming code-based RDH for AMBTC-compressed images. Our proposed RDH scheme consists of two phases, i.e., 1) the data embedding phase and 2) the data extraction and recovery phase. In the data embedding phase, after AMBTC encoding, the cover image is divided into non-overlapping 4 × 7-sized blocks, where each block contains only different values of high mean (H), low mean (L), and 4 × 7-bits bitmap. The secret bits can be concealed by changing the order between
H and
L, and they also can be embedded into the 4 × 7-bits bitmap with (7,4) hamming code. In the former, we can extract a secret bit and losslessly reconstruct the stego image to the AMBTC-compressed image. However, for embedding data on a bitmap with (7,4) hamming code, three secret bits can be hidden into each 1 × 7-sized bitmap. To ensure that the modified bit of 1 × 7-bits bitmap can be restored, a prediction method and a judgment mechanism which is workable during both the data embedding phase and data extraction/recovery phase are designed in our proposed RDH scheme. The proposed prediction method and judgment mechanism are our core concept and they are introduced initially in
Section 3.1, and the data embedding phase and data extraction/recovery phases are presented in detail in
Section 3.2 and
Section 3.3, respectively. To give clear explanations for both phases, an example is provided to demonstrate our proposed data embedding and data extraction/recovery operations.
3.1. Prediction Method and Selections of Embeddable Blocks
To embed secret data into two quantizers, the prediction method must be used, and it must be derived from the original neighboring pixels. Here, a simple prediction is conducted, and, first, a 3 × 3-pixels window is constructed, as shown in
Figure 2.
To predict
, we define its prediction value,
, can be derived from its neighboring six pixels as
where
are six neighboring pixels of
in the image, and
are the coefficients of
, respectively. The expression
must be satisfied. If the distance between
and each pixel,
, is not considered,
is always 1/6. However, if the Euclidean distance between
and
is considered, their corresponding coefficients can be defined as:
and
Thus, six coefficients are obtained as
as shown in
Figure 3.
For the pixels that are located in the left border of an image, we define that the prediction value,
, only requires its four neighboring pixels, i.e.,
where
,
,
and
. Thus, the four coefficients can be computed as
,
. In a similar manner, the prediction pixels
located at the right border of an image can be derived from
where the coefficients are defined as
,
.
Subsequently, given a constructed image, the embeddable blocks can be determined by Equation (12) to maintain the reversible feature based on the difference between the reconstructed pixels and their prediction values
Note that the block is defined as a 1 × 7-sized block instead of a 4 × 7-sized block when determining whether or not it is embeddable. Since it is a reconstructed image, each 1 × 7-sized block contains, at most, only two different values, i.e., either L or H. It must be determined whether the blocks located in the even rows are embeddable or not. Blocks located in the odd rows are treated as reference blocks to ensure that all of the embedded blocks can be completely restored to the original AMBTC reconstructed blocks after the hidden data are extracted. For a 1 × 7-sized block located in an even row, Equation (12) is used to check seven reconstructed pixels. If Equation (12) is satisfied for all seven reconstructed pixels, the currently processing block is embeddable. If any pixel in a 1 × 7-sized block does not satisfy Equation (12), the currently processing block is un-embeddable.
Our proposed prediction method can be used to assist the selection of embeddable blocks irrespective of whether the process is in the data embedding phase or the data extraction and recovery phase. Note that the original neighboring pixels are considered to compute the prediction values during the data embedding phase. By contrast, the reconstructed pixels are considered during the data extraction and recovery phase. However, even in the data extraction phase, Equation (12) always holds because we assume that, if is H, then is L, and vice versa.
Therefore, from
and according to Equation (12), Equation (13) can be derived as
Since the 1 × 7-sized blocks located in the odd rows are treated as reference blocks and since not all 1 × 7-sized blocks located in the even rows are embeddable for a given AMBTC reconstructed image, a location map LP recording is required for the blocks located in the even rows. In the location map LP, “1” indicates that the corresponding block is embeddable; and “0” indicates that the corresponding block is unembeddable. Then, the location map LP is treated as secret data, and it is embedded into the bitmap in front of the secret message.
Example of the Selection of Embeddable Blocks
Let us assume that the size of a grayscale image is 512 × 512 pixels and that it is divided into non-overlapping 4 × 7-sized blocks. Here, we only take the 5×7 reconstructed pixels for example. It is noted the first four rows map to a 4 × 7-sized block. Therefore, the first four rows only contain two different values, which map to the same quantizer pair, which is L (= 155) and H (= 160). However, the last row maps to the other 4 × 7-sized block, and the two values are different, i.e., L (= 153) and H (= 157).
Equation (12) is satisfied for all pixels located in the second row. Therefore, it is noted as “0” to indicate that the second row is embeddable in the location map. In contrast, the sixth prediction value located in the fourth row is derived by Equation (9) as
The sixth predicted value located in the fourth row does not satisfy Equation (12).
Therefore, it is marked in red as shown in
Figure 4b. Since the fourth row has one pixel that does not satisfy Equation (12), it is noted as “0” in the location map to indicate that the fourth row is unembeddable.
3.2. Data Embedding Phase
All 1 × 7-sized blocks are determined to be embeddable or unembeddable by using the location map. The data embedding phase is described in detail in this subsection.
Figure 5 shows the flowchart of the embedding phase for embeddable blocks.
Input: Original grayscale image.
Output: AMBTC-compressed stego bitstream.
Step 1. Partition the original image into pixel blocks and conduct AMBTC encoding; a set of compressed trios, i.e., , is obtained, where H is the high mean table, L is the low mean table, is the bitmap, n = 4, and is the coordinate of the pixel block where and .
Step 2. Based on their positions, use the pixels located in the odd rows to predict the pixels located in the even rows with Equations (9)–(11), respectively. If all of the pixels in a 1 × 7-sized block satisfy Equation (13), determine the block to be embeddable and denote it as “1” in the location map, LP. Otherwise, denote it as “0” in the location map, LP.
Step 3. After all blocks have been evaluated, concatenate LP and secret data SD as the final secret message S, where S = LP||SD, and “||” denotes the concatenation of LP and SD.
Step 4. Scan all AMBTC-compressed blocks in a zig-zag direction to embed the final secret message, S, into bitmap Bm. If H = L, 4 × 7 bits of S are selected and used to replace the original Bm. If not, H is not equal to L, select one bit, s, of S and embed it into the H and L pair by swapping the order when s = 1. Note that, if H ≠ L and s = 0, then the order of H and L is not changed.
Step 5. After all
H and
L pairs have been checked, take three bits of the remaining S as
m and embed them into block x, which is marked with “1” in the location map
LP by using Equation (14). The detailed description can be referred to
Section 2.2.
where
is the received stego vector, and
F(·) is the value of
the ith position of block
x that must be changed.
Example of Data Embedding
Below, we have provided an example to show our hybrid hiding strategy. First, assume that there is a secret bitstream as S = 101 010 101 100 011 and an AMBTC-compressed trio (
L = 155,
H = 160,
Bm = 10001101000110100011 010001001011110), as shown in
Figure 6. The first two bits, i.e., “10”, listed in S indicate that the 1 × 7-sized block located in the second row is embeddable and that the 1 × 7-sized block located in the fourth row is unembeddable. The third bit “1” of S indicates that the order of
L and
H should be swapped according to hiding strategy depicted in Step 2. The following 3-bits “010” is then embedded into the 1 × 7 block located in the second row according to Equation (14). Since the block located in the second row is determined as embeddable and
H ≠
L, seven bits of the corresponding bitmap are extracted as
x = (1 0 0 0 1 1 0). Then, treat the 3-bit secret, “010”, as
m and use parity cheek matrix,
H0. Finally,
x must be changed as
= (1 0 0 0 1 0 0) to carry the secret bits “010”. Finally, the modified AMBTC-compressed trios are obtained and then transmitted to the receiver.
3.3. Data Extraction and Recovery Phase
In data extraction phase, the receiver can perform data extraction with the received AMBTC-compressed trios, , where is the coordinate of the n × 7 pixel block, i = 1, 2, …, 128, and j = 1, 2, …, 73. The parity cheek matrix, H0, which is like a password, can be used several times as long as it is transmitted via a secure channel. Generally, the receiver is aware of the hidden data based on the order of L and H. From the extracted data from the L and H, location map LP can be derived to indicate which 1 × 7 blocks are embeddable. Finally, not only the secret data are extracted but also the original AMBTC-compressed trios can be obtained. The detailed data extraction procedure is shown below.
Input: The stego bitstream with and the parity check matrix H0.
Output: The original secret message and the reconstructed AMBTC compressed image.
Step 1. Scan stego bitstream , and if H = L, extract 1 × 7 secret bits from the Bm. If H > L, extract secret bit “0”; otherwise, extract secret bit “1”, and swap H and L.
Step 2. Decide which 1 × 7-sized blocks located in even rows are embeddable or not according to the extracted location map,
LP. If the current block is an embeddable block, 3 bits are extracted from the corresponding 1 × 7 bits of
Bm according to Equation (15) [
34].
If the current block is unembeddable, go to Step 4.
Step 3. Use Equation (12) to check each pixel of the embeddable block to see it is satisfied. If one pixel is not satisfied, modify its bit value to its complementary bit value, i.e., if the current bit value is “0”, change it to “1” and vice versa.
Step 4. Check the next embeddable block until all blocks are preceded. Output all extracted secret data and replace the corrected bitmaps with the corresponding Hs and Ls to obtain the reconstructed AMBTC-image.
Example of the Data Extraction and Recovery Phase
As shown in
Figure 7, we demonstrate our proposed data extraction and recovery operation in this subsection. Here, we skip the data extraction and recovery operations for extracting the hidden data of the two quantizers and restoring the order of
L and
H. In this example, we focus only on how to extract the hidden data from the 1 × 7-sized block of
Bm and restore the modified bit value. Based on the extracted location map,
LP, the blocks of which are located in the even blocks can be easily to be identified. Therefore, the receiver knows which 1 × 7-sized block located in the second row is embeddable and which 1 × 7-sized block located in the second row should be treated as unembeddable. However, for the sixth pixel located in the second row, its prediction pixel value is 158.53 according to Equation (9), and the following equation does not hold. Such a situation is not consistent with the rule for the selection of an embeddable block as defined in Equation (12).
Therefore, we can conclude that the sixth pixel marked in red should be changed from “0” to “1.” With our designed justified rule, the original 1 × 7-sized bitmap is guaranteed to be restored.
4. Experimental Results
In this section, we describe the series of experiments and analyses that were performed to demonstrate the performance of the proposed scheme. All of the experiments were implemented in MATLAB R2014b on a PC with Intel
® Core (TM) i7-8750H CPU @2.20 GHz, 16 GB RAM. The eight classic grayscale images, shown in
Figure 8, with sizes of 512 × 512, i.e., Lena, Airplane, Barbara, Goldhill, Wine, Bird, Zelda, and Boat, were selected from the USC-SIPI data [
35] and served as the test images. All of the test images were compressed using the AMBTC compression technique with the size of 2 × 7 and 4 × 7 pixels, respectively.
We defined Type I as the stego codes that can be correctly decoded via a standard BTC or AMBTC decoder [
27]. In this section, we performed 2 × 7 and 4 × 7 experiments to demonstrate the performance of the proposed scheme and to compare the results with other related type I works, including the work of Chen et al. [
23]. In Chen et al.’s scheme, the relationship of
H and
L was used to embed the secret bits.
In the first experiment, the peak signal-to-noise ratio (PSNR) was used to estimate the visual quality of the AMBTC-compressed image, which is defined in Equation (16), where the mean-square-error (MSE) is shown in Equation (17) and where and indicate the pixel values for the position (i, j) of the original image and of the AMBTC-compressed image or steganography image, respectively. HT and WH represent the height and width of an image, respectively.
To examine the occurrence of secret bits in the stego bitstream codes, we used the embedding efficient rate (ER), which was calculated by Equation (18) It is noted the stego bitstream codes mentioned in this section is the stego AMBTC compression codes generated by our proposed scheme.
Both HC and CS are the total secret bits embedded and the size of the stego bitstream codes, respectively. An embedding method with higher efficiency indicated that our proposed RDH scheme offers a larger payload for the same size of stego bitstream codes.
In our proposed RDH scheme, when
L =
H, no secret bits can be embedded into two quantizers
L and
H by swapping the order of
L and
H. In addition, no secret bits can be embedded into the 1 × 7 blocks located in the even rows.
Table 1 indicates that there is no such scenario for “Lena,” “Barbara,” “Zelda,” and “Boat”, irrespective of whether the partition strategy was set as 2 × 7 or 4 × 7. For “Airplane” and “Bird,” there was a single block the two quantizers of which were the same when the partition strategy was set as 2 × 7 By contrast, there are 398 blocks and 89 blocks which can be used for swapping the order of
L and
H to carry secret data in the “Wine” image.
Table 2 shows the embaddable blocks in eight test images for 2 × 7 partition. The total number of blocks is 512 × 511/2/7 = 18,688. The average number of embeddable blocks is 3,869, and the average of ratio is 0.208. The number of blocks with one bit changed and the number of blocks without bits changed are also shown in
Table 2. In other words, our designed prediction mechanism which is defined in data embedding phase and justify mechanism defined in data extraction and recovery phase is required.
When
Table 3 and
Table 4 were compared, it was obvious that the total hiding capacity with the 2 × 7 partition was larger than that with the 4 × 7 partitions in our proposed scheme. The comparison of the different partition indicated that the
PSNR and
HLC and
THC,
IC are reduced when the partition size becomes larger. It is noted that the
PSNR the computed from the stego compression codes generated by our proposed scheme and the original image. Because our proposed scheme is reversible data hiding scheme, the original AMBTC compression codes can be completely restored. In other words, the
PSNR of our proposed scheme after extraction the hidden data will be the same as those listed in the first column in
Table 4. Basically, there is no fixed rule between
HC and
EHC. In general, the more complex the image is, the less its embedding capacity is. As
Table 1 indicates that only “Wine” has the largest hiding capacity in the 4 × 7 and 2 × 7 partitions when
H =
L. Although the effective hiding capacity (
EHC) in the 2 × 7 case is less than that in the 4 × 7 partition for bitmap embedding, it offers more quantizer pairs to carry secret data. Therefore, in general, the total hiding capacity is increased.
To further demonstrate the performance of our proposed RDH scheme, we compared it with the conventional AMBTC and with Chen et al.’s scheme [
23], which is presented in
Table 5. It is noted that the
PSNR listed in Chen et al.’s scheme is demonstrated the
PSNR.
Compared with Chen et al.’s scheme, which only embeds one-bit of secret data into a pair of quantization values by swapping them when two quantizers are not the same. Therefore, the sizes of the compression codes of the two schemes were the same. Therefore, the
ER of our proposed RDH scheme for the 2 × 7 partition was higher than that of Chen et al.’s scheme. In general, the hiding capacity of our proposed RDH scheme for the 2 × 7 partition was higher than that of Chen et al.’s scheme at the cost of slightly less quality of the images than conventional AMBTC and Chen et al.’s scheme. This is because our proposed RDH scheme embeds both secret data and bitmaps into the quantizer pairs. Even the image quality of the stego compression codes with our proposed scheme is slightly less than that of Chen et al.’s scheme [
23]. It is noted that both of our schemes are reversible data hiding. In other words, the original AMBTC compression codes are always completely restored after the extraction of the hidden data. The size of the stego compression codes is always the same as that of Chen et al.’s scheme [
23] and the original AMBTC compression codes. Therefore, no matter from the size and structure of stego compression codes, our stego compression codes would not attract attackers’ attention even the size of hidden data is larger than that of Chen et al.’s scheme [
23].
To further prove the performance of our proposed RDH scheme on visual quality and hiding capacity outperforms other schemes, the comparisons of our proposed RDH scheme and five representative BTC/AMBTC-based RDH schemes are presented in
Table 6.
From
Table 6, we can see BTC/AMBTC-based RDH schemes [
26,
27,
28] usually offer high hiding capacity at the cost of their stego-compression codes cannot be correctly decoded by the conventional BTC/AMBTC decoders. In other words, attackers can guess there is valuable information has been hidden out there. It could make the hidden conventional data insecure. By contrast, our proposed RDH scheme belongs to Type I AMBTC-based RDH scheme, and the stego-compression codes can be always decoded by the conventional AMBTC decoder. That means the stgo-compression codes could not attract malicious attackers’ attention and the security of hidden data is better than that of RDH schemes which belong to Type II BTC/AMBTC-based RDH schemes [
26,
27,
28]. To make sure the stego-compression codes is decodable by conventional AMBTC decoder; the hiding capacity is relatively limited. However, from
Table 6, we can see the hiding capacity of our proposed RDH scheme is only less than that of schemes of Sun et al. [
26] and Hong et al. [
27]. As for Lin et al.’s scheme [
28], even their hiding capacity is significantly higher than ours, their scheme is Type II and they hided secret data into spatial domain of image by referring the features derived from AMBTC. In other words, they did not conceal secret data into structure of AMBTC compression codes but into the pixels of images. However, their scheme still points out the other possible direction which we shall explore and set as our research topic in the future.