1. Introduction
Information hiding is a technique that conceals secret messages in digital media. The sender embeds secret messages in a cover image to generate a stego-image and then sends it to the receiver. The receiver can extract the secret messages from the stego-image (
Figure 1).
In general, information hiding schemes can be classified into two categories, i.e., reversible data hiding and irreversible data hiding, as shown in
Figure 2. The most commonly used irreversible data hiding methods include the least significant bit (LSB) substitution method, the pixel-value differencing (PVD) method, and the exploiting modification direction method (EMD) [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14]. The LSB method is a well-known irreversible data hiding technique because of its high payload and low distortion. It directly replaces the bits of the cover pixel with secret bits for embedding. Mielikainen (2006) proposes a modification to the LSB method called LSB matching [
1]. In his method, the secret bits are embedded by using the binary function and four embedding rules.
Wu and Tsai (2003) proposed the PVD method [
2]. In their method, the difference of two pixels in the cover image is calculated to determine the number of bits to be embedded in these two pixels and a pre-defined range table. The technique can embed a large number of secret bits into the cover image with high imperceptibility as it makes use of the characteristic of human vision sensitivity. Chang and Tseng (2004) utilized the difference of the predicted value and the target pixels to estimate the degree of smoothness or contrast of pixels to determine the number of bits to be embedded in the target pixels [
3].
Zhang and Wang (2006) proposed the EMD method [
4]. The EMD method provides a good image quality for the stego-image with a peak signal-to-noise ratio (PSNR) of more than 52 dB, since, at most, only one pixel in each pixel group needs to be increased or decreased by one. Kieu and Chang (2011) improved the EMD method by exploiting eight modification directions to embed several secret bits into a cover pair at a time [
5].
Compared with irreversible data hiding schemes, reversible data hiding schemes can recover the cover image without any distortion from the stego-image after the secret messages have been extracted. The most commonly used reversible data hiding methods include the difference expansion (DE) method, histogram shifting (HS) method, and pixel-value ordering (PVO) method. Tian (2003) proposed the DE method [
6] that embeds a secret bit into the LSB of the expanded difference of each pixel pair of the cover image. The scheme provides a high payload; however, the distortion caused by the DE is significant. Alattar (2004) improved Tian’s scheme with double the respective differences between four neighboring pixels and achieved more secret bits with the expanded difference [
7].
Ni et al. (2006) proposed the HS method in 2006 [
8]. Their method is to firstly generate the histogram by the pixel intensity value and shift the bins between the zero and peak point to create empty bins for data embedding. The advantage of the HS method is its low distortion; however, its drawback is a low payload, because the embedding capacity is determined by the number of points in the peak point of the bin. Li et al. and Gui et al. proposed an adaptive embedding technique that divides pixels into different types to enhance the embedding capacity of a prediction error [
9,
10].
Li et al. (2013) proposed the PVO method [
11]. In their method, for each block, the pixels are reordered into a pixel vector, then the smallest pixel is predicted by the second smallest pixel, and the largest pixel is predicted by the second largest pixel. It uses prediction errors 1 and −1 to embed data, whereas prediction error 0 is unchanged. Peng et al. (2014) improved the PVO method to use larger blocks for embedding and take better advantage of image redundancy to yield a higher PSNR [
12]. Qu and Kim (2015) modified the PVO method so that each pixel is predicted using its sorted context pixels to achieve a better embedding capacity in smooth image regions [
13].
Wang et al. (2015) used a dynamic blocking strategy to divide the cover image adaptively into various-sized blocks. Thus, the flat image areas are preferentially divided into smaller blocks to retain a high embedding capacity and the rough areas are divided into larger blocks to avoid decreasing PSNR value [
14].
The dual-image-based hiding scheme is a new technology in the information hiding field. The concept of dual-image, based on information sharing, consists of concealing secret messages in two of the same cover images; only someone who has both stego-images can extract the secret messages. A diagram of the dual-image based hiding scheme is shown in
Figure 3. There are many advantages to using dual-image in data hiding, such as a high payload, reversibility, and strong robustness.
In the dual-image-based hiding scheme, image quality and payload are affected by embedding rules [
15,
16,
17,
18,
19,
20,
21]. Chang et al. (2007) combined the EMD method with the dual-image technique to achieve a high payload and reduce distortion [
15]. Lee et al. (2009) used combinations of pixel orientation locations with dual-image to enhance embedding capacity and preserve good visual quality [
16]. Lee and Huang (2013) converted secret messages into quinary-based secret symbols and combined every two secret symbols as a set embedded in the dual-image [
17]. Chang et al. (2013) converted secret messages into decimal-based secret symbols, then embedded secret symbols in a right diagonal line [
18]. Qin et al. (2014) embedded secret messages in the first image using the EMD method and in the second image using other rules that were dependent on the first image [
19]. Lu et al. (2015) used the LSB matching method and modified the non-reversible stego-pixels based on a rule table to restore the cover image [
20]. They proposed the center-folding strategy to reduce the value of the secret symbols. Then, they embedded secret symbols in two stego-images through an averaging method [
21]. Lu et al. (2016) proposed a frequency-based encoding method to reduce the distortion derived by the maximum secret digit [
22].
In [
21], Lu et al. propose a center-folding strategy in which each secret symbol is folded into the reduced digit before the embedding procedure to reduce the distortion of the stego-image. The folding strategy is simple and effective, to the extent that the image quality of the stego-image is very good. Because the folding strategy can obviously reduce the value, the proposed scheme performs the folding operation twice to further decrease the reduced digit.
Furthermore, in [
22], Lu et al. use a frequency-based encoding strategy to reduce the distortion of the frequency of occurrence of the maximum absolute value. The re-encoded technique also can be used to reduce the number of the secret digit and narrow down the distance between the stego-pixel and the original pixel.
Therefore, the proposed scheme first uses a frequency-based encoding strategy to encode the secret message and then uses the block folding technique by including the center-folding operation twice to embed secret messages. In addition, several steganalysis techniques are used to prove the strong robustness of the proposed scheme, including histogram steganalysis, Regular and singular groups (RS) steganalysis [
23], primary sets, Chi square, sample pairs RS analysis, and fusion detection [
24].
The rest of this paper is organized as follows.
Section 2 describes related works.
Section 3 introduces the proposed scheme.
Section 4 summarizes the experiment results. The conclusions are presented in
Section 5.
3. Proposed Method
In Lu’s scheme, each secret symbol is reduced to the reduced digit using the center-folding strategy. A diagram of Lu’s center-folding strategy is shown in
Figure 7. In the figure, the center value 5 is subtracted from each decimal message
to generate the reduced digit
. The value range of
Figure 7 can be seen as a band. The maximum value of the band is 7 in
Figure 7. After the folding, the band is separated into two sub-bands. The maximum absolute value of the two sub-bands is 4.
Because the folding strategy can obviously reduce the value, the proposed scheme includes the folding operation twice to further decrease the reduced digit. The concept of the proposed scheme is shown in
Figure 8. In the figure, the value range of
is first divided into two sub-bands
SB1 and
SB2. Each sub-band performs a one-time center-folding strategy. For example, the value range of sub-band
SB1 is shown in
Figure 8a. The center value of
SB1 is 2. The center value 2 is subtracted from the values in
SB1 to generate the reduced digit
. We can see that the maximum absolute value of the two sub-bands is 2, which is smaller than the value 4 in
Figure 8.
However, the sub-bands SB1 and SB2 have the same reduced values. We cannot distinguish the original value from . Hence, an indicator is needed to identify which sub-band the reduced value is located in. If the reduced value is located in the sub-band SB1, then the indicator is set to be 0, where . In contrast, if the reduced value is located in the sub-band SB2, then the indicator is set to be 1, where . The original value is mapped to a code pair (, ) to reduce the image distortion. For example, the decimal value = 7 is mapped to the code pair (, ) = (1, 1).
However, the indicator is extra information that also needs to be concealed in the cover image and will decrease the hiding capacity. To solve this problem, the proposed scheme collects several indicators to produce a combined code and hides the code in a pixel. In the proposed scheme, the cover image is divided into several blocks. Each block has pixels in it. The last pixel in the block is used to embed the combined code. The other pixels are used to conceal the reduced digit .
Furthermore, the proposed scheme considers the occurrence frequency of the decimal digit to reassign proper code to the reduced digit that can significantly shrink the image distortion.
3.1. Embedding Procedure
In the proposed scheme, a cover image is divided into several blocks. Each block has pixels in it. Let be the block. A secret image is formed as a binary string. The string is separated into several substrings the size of . Each substring is transformed into a decimal digit . The scheme computes the occurrence frequency of each decimal digit to generate a histogram and sort the histogram in descending order. The digit with the maximum frequency is encoded with the smallest distortion code pair .
Each block can be used to hide code pairs. The scheme conceals the reduced digit in the pixel by using an averaging method to generate the stego-pixels and , where . The indicators are collected to form a combined code, and the code is concealed into the last pixel of the block to generate and .
Figure 9 shows the information hiding diagram of the proposed method. More details of the procedures are given below.
- Step 1:
Transform a set of
K secret bits into a decimal digit. Let
be the decimal digit that is computed by
where
d ∈ [0, 2
K − 1] and
sj denotes the
jth secret bit in the set.
- Step 2:
Compute the occurrence frequency of each decimal digit. Let be the occurrence frequency of each decimal digit. These frequencies are sorted in descending order, and the index of sorted results is denoted as .
- Step 3:
Compute the reduced code
for each decimal digit. In
Figure 6, the decimal digit
has been folded twice to generate the reduced code
and the indicator
.
Table 2 shows the reduced codes and indicators with
K = 3. The decimal digits are reduced effectively from [0, 2
K − 1] to [−2
K−2, 2
K−2 − 1].
However, the reduced digits in
Table 2 do not show the feature of the secret image. In
Table 2, the absolutely reduced code
is the maximum reduced code, which causes maximum distortion when directly concealed into the pixel. If the maximum reduced code’s occurrence frequency is high, then directly embedding it in the image will decrease the visual quality. Hence, the proposed scheme further re-encodes the reduced code and indicator code according to the order of
. The re-encoded code
is computed by
where
- Step 4:
Compute the re-encoded indicator
by
The above procedure re-encodes the reduced digits and indicators, which occurs most frequently as the minimum absolute value. The re-encoded code pairs of
Table 2 are shown in
Table 3.
- Step 5:
Generate a mapping table for further embedding and recovery processes. Integrate the re-encoded code pairs
with the indices
to form a mapping table. The mapping relationship must be recorded for use in the recovery phases.
Table 4 shows an example mapping table with
K = 3.
- Step 6:
Divide a cover image into server blocks. Let be a block.
- Step 7:
Pick code pairs to embed into the block .
- (1)
Conceal the re-encoded reduced digit
in the pixel
by using
and
where
,
denotes the
th pixel of the first stego-block and
denotes the
th pixel of the second stego-block.
Figure 10 shows that the proposed method can control the distortion within
.
- (2)
Collect the indicators to form a combined code
. The combined code is computed by
- (3)
Embed the combined code
in the pixel
- Step 8:
Repeat Step 6 until all blocks have been processed.
Figure 11 shows an example to illustrate the embedding process.
Figure 11a is a secret string with 24 secret bits. Let
K = 3, and the first three secret bits “110” are transformed into a decimal digit
. The scheme maps the decimal digit
to the mapping table as shown in
Table 4 to obtain the re-encoded code pair
= (0, −1). The transformation of the other secret bits follows the same procedure described above.
Assume a cover image is divided into several blocks sized
B = 3. Each block can be used to hide
code pairs. In
Figure 11a, the code pairs are
=
.
Figure 8b shows a cover image. The first block is
. The reduced digits
and
are concealed into
and
, respectively. The stego-pixels of the first cover pixel
are computed by
and
. The stego-pixels of the second cover pixel
are computed by
and
. Then, the scheme collects the indicators to form a combined code
. The combined code is embedded in the pixel
by
and
. Two stego-blocks are shown in
Figure 11b.
The embedding procedure is executed repeatedly until all code pairs are embedded. The final stego-images, along with the mapping table, are sent to the receiver for extraction and recovery.
3.2. Overflow/Underflow Problem
In the embedding process, an underflow/overflow problem might occur as a result of the reduced code. For example, if the pixel is = 254 and = 3, then the two together would cause the overflow problem. In the proposed scheme, the range of is [−2K−2, 2K−2 − 1]. If a pixel is larger than 255 − (2K−2 − 1) = 256 − 2K−2, then the overflow problem might occur because of the addition of 2K−2 − 1. If a pixel that is less than 2K−2, then it might cause the underflow problem because of the addition of −2K−2. For example, assume K = 4, and the range of is [−4, 3]. Suppose that = 0, = 3, and = = 2. Then, the stego-pixel is = −2, and there is an underflow problem.
Hence, the embeddable pixel is defined as being in the range of 2
K−2 and 256 − 2
K−2. In the embedding process, the proposed scheme determines whether the pixel
is in the range of [2
K−2, 256 − 2
K−2] or not. If the pixel is within the range, then it could be classified into a block. However, the pixel might cause an underflow/overflow problem and the pixel is non-embeddable. For the non-embeddable pixel, the stego-pixels are set to equal the value of the original pixels. For example, assume that
K = 4 and a pixel in the range of [2
4−2, 256 − 2
4−2] = [4, 252] is embeddable. In
Figure 12, the pixel 254 is out of the range, which means it is non-embeddable. The stego-pixels are set to equal its original pixel. The next pixels 132 and 105 are embeddable. However, the next pixel 2 is non-embeddable and cannot be classified into a block. So, the next pixel 250 is gathered with pixels 132 and 105 to form block
, and the embedding process is performed.
3.3. Extraction and Recovery
In this section, we describe the extraction and recovery processes by which re-encoded reduced digits and secret bits are extracted from the stego-image as well as the process of cover image recovery. There are code pairs concealed in an embeddable block. Hence, the receiver divides the stego-images into several blocks the size of B. The re-encoded reduced digits can be extracted by computing the differences between two stego-pixels, where and . The combined code is extracted from the last pixels of the stego-blocks by . Then, the receiver transforms the combined code into binary bits. Each bit represents an indicator . One indicator along with one re-encoded reduced digit forms the code pair (, ). After the code pair is obtained, it is then mapped to the mapping table to obtain the original decimal digit . Each decimal digit is transformed into K secret bits.
In the recovery process, the cover pixel
can be recovered by the average between two stego-pixels, i.e.,
.
Figure 13 shows the data extraction and recovery procedure of the proposed method.
Following the same example presented in
Figure 11b. The stego-blocks are
and
. The re-encoded reduced codes are
and
, and the combined code is
. The combined code is transformed into
binary bits
, where
and
. The code pairs are (
,
) = (0, −1) and (
,
) = (1, 1). The original decimal digits
and
and can be derived by mapping them into the mapping table as shown in
Figure 11a. Finally, the decimal digits
and
are transformed into three secret bits, i.e., “110” and “011”. Furthermore, the original pixel can be recovered by the average between
and
, i.e.,
,
, and
.
In the extraction process, the proposed scheme determines whether the two stego-pixels are both outside the range [2K−2, 256 − 22−1]. If so, then the pixels are non-embeddable. If the two stego-pixels are not equal and more than one pixel is within the range, then the pixels are embeddable and data are concealed within. The secret information can be extracted, and the pixels can be restored following the extraction procedure.
3.4. Re-Encoding of the Combined Code
In the embedding process, the combined code is used to indicate the number of sub-bands of the re-encoded code. The value range of is [0, 2(B−1) −1]. For example, assume that the block size is set to be B = 5. The value range of is [0, 2(5−1) −1] = [0, 15]. The maximum value of the range is 15. The value is directly added to the last pixel of the block to generate the stego-pixel. However, if the maximum value occurrence frequency is high, then directly embedding it in the pixel will decrease the visual quality. Therefore, the proposed scheme selectively re-encodes the combined code according to its occurrence frequency and generates a mapping table to record the relationship between the combined code and the re-encoded combined code. The re-encoding procedure is the same as the re-encoding procedure of the reduced code.
4. Results
In the proposed scheme, the block size B and the hiding bit K are key factors that influence the hiding performance. To find out proper values of B and K, eight schemes with different values are implemented. They are
BlockFolding (B = 3, K = 3, RE = 0), BlockFolding (B = 3, K = 3, RE = 1),
BlockFolding (B = 3, K = 4, RE = 0), BlockFolding (B = 3, K = 4, RE = 1),
BlockFolding (B = 5, K = 3, RE = 0), BlockFolding (B = 5, K = 3, RE = 1),
BlockFolding (B = 5, K = 4, RE = 0), and BlockFolding (B = 5, K = 4, RE = 1).
The parameters B and K are the block size and the hiding bits, respectively. The parameter RE indicates whether the combined code is re-encoded or not. RE = 0 means the combined code is the original value without re-encoding. In contrast, RE = 1 means the combined code is re-encoded according to its occurrence frequency.
Five related methods are also implemented for a comparison with the proposed schemes. These are Lee’s dual steganographic scheme (Lee2009), Lee’s orientation combination scheme (Lee2013), Chang’s magic matrix scheme (Chang2013), Lu et al.’s center-folding scheme (Lu2015), and Lu’s scheme without the center-folding strategy (NonFolding).
Two measurements are used to measure the performance of the hiding methods, the embedding rate and the image quality. The embedding rate
R is calculated by
where
C is the total hiding capacity of the two stego-images,
E is the size of the mapping table, and
is the size of the image. A high embedding rate means that the proposed scheme has great embedding ability.
Image quality is calculated by using the PSNR given by
where
is the PSNR value of the
zth stego-image, dB represents the decibels, and
is the mean squared error between the cover image and the stego-image, and is obtained by
where
P is the cover pixel and
is the stego-image.
The PSNR values in the experimental results are the average values of all
, which can be computed by
In general, it is very difficult to determine the difference between the cover image and the stego-image by human eyes when the PSNR value is greater than 30 dB.
Six grayscale images were used to test the hiding performance.
Figure 14 shows the images Lena, Mandrill, Airplane, Peppers, Lake, and Tiffany. The size of the image is 512
512. Four secret images, namely, random (512
512), Dolphin (375
352), Brain (420
315), and TiffanySec (512
512) are shown in
Figure 15.
In the first experiment, we tested the performance of the proposed scheme with various
B,
K, and RE.
Figure 16 shows the experimental results. “BlockFolding” is the proposed scheme. Under the same embedding rate, BlockFolding (
B = 3,
K = 3,
RE = 0) can achieve the highest image quality. BlockFolding (
B = 5,
K = 4,
RE = 1) can get the highest hiding payload. When
B = 3 and
K = 3, the image quality with
RE = 0 is higher than that with
RE = 1. However, when
B = 5 and
K = 4, the image quality with
RE = 1 is higher than that with
RE = 0. The reason is that if the block size is small, then the combined code is small enough that it does not need to be re-encoded. However, for a block with a large size, the combined code is usually large enough that it needs to be re-encoded. For example, if the value range of the combined code with
B = 5 is [0, 2
(5−1) − 1] = [0, 15], the maximum value 15 will cause great image distortion. The re-encoding process can effectively narrow down the distortion.
To compare for a comparison of the proposed scheme with other related methods, the value of
B is set to 3 and 5, the value of
K is set to 3 and 4, and
RE is set to be 0 and 1.
Table 5,
Table 6,
Table 7 and
Table 8 show the results of the comparison among the proposed scheme and the related works with the cover image Lena and the secret images random, TiffanySec, Dolphin, and Brain, respectively.
In
Table 5, with the secret image “random”, the PSNR_avg of the proposed scheme with
B = 5,
K = 4, and
RE = 1 for the cover image Lena is 53.46 dB, which is greater than the value of 43.98 dB for Lu2015. The image quality of the proposed scheme is higher than the value of 9.48 dB obtained by Lu’s scheme. At the same time, the hiding rate of the proposed scheme is 1.61 bpp, which is higher than that of Lu2015’s 0.11 bpp. Under the same hiding capacity, the image quality of the proposed scheme with
B = 3,
K = 3, and
RE = 0 is 55.99 dB, which is higher than that of Lee2013’s 51.63 dB. Although Lu2015 with
K = 4 achieves the highest hiding rate, 2.0 bpp, the image quality of Lu2015 is decreased to 39.65 dB.
In
Table 6, although Lee2009 has highest image quality 52.90 dB, the hiding rate of Lee2009 is only 0.72 dB. The results for different secret images have the same situation.
In
Table 8, for the secret image Brain, the image quality obtained by Lee2009 is the highest. However, its hiding capacity is 0.53 bpp, which is the lowest among all results obtained by other methods. The proposed scheme with
B = 3,
K = 3, and
RE = 0 has the same hiding payloads as those of Lee2013. The image quality of the proposed scheme is 58.73 dB, which is greater than that of the other methods, thereby indicating that the proposed scheme still exhibits better embedding performance compared with the others.
From the results of the experiment, we can see that the proposed scheme with a small block size B = 3 achieves a higher image quality. Because the combined code in the small block size is small, the code does not need to be re-encoded where RE = 0. In contrast, the proposed scheme with a large block size B = 5 has a higher hiding capacity. The combined code in a large block size needs to be re-encoded, as the value of the code is usually very large. Hence, RE is set to be RE = 1 for B = 5.
The second experiment compared the proposed scheme with the other methods.
Figure 17 shows the comparison among all five related methods and the proposed scheme in terms of embedding rate and PSNR value.
Figure 17 shows that the image quality of BlockFolding (
B = 3,
K = 3,
RE = 0) is higher than those of the other methods. Under the same embedding rate, the proposed method can achieve a greater PSNR value than the related methods. The hiding capacity of BlockFolding (
B = 5,
K = 4,
RE = 1) is higher than those of the other methods.
The third experiment was aimed at proving the viability of the proposed scheme. Several steganalysis techniques such as histogram steganalysis, RS steganalysis, primary sets, Chi square, sample pairs, RS analysis, and fusion detection were used to test the performance of the proposed scheme. The histogram steganalysis method compares the shapes between the cover image and the stego-image to detect whether there is a concealed message.
Figure 18 shows histogram comparisons of Lena with different parameters. The curve starting with the symbol “*” is the histogram of the stego-image. We can see that the shape of the stego-image is almost the same as that of the cover image.
RS steganalysis is a kind of attack method proposed by Fridrich et al. In the method, pixels are classified into several groups. The method uses a discrimination function to quantify smoothness or regularity and uses a flipping function to define three groups, regular (R), singular (S), and unusable (U). The percentages of each group with mask M = [1 0 0 1] and −M = [−1 0 0 −1] are represented as R_M_G, R_FM_G, S_M_G, S_FM_G, U_M_G, and U_FM_G, respectively. The hypotheses are R_M_G
R_FM_G, S_M_G
S_FM_G, and U_M_G
U_FM_G.
Figure 19 shows the RS steganalysis results for Lena with different parameters. In the figures, the curve of R_M_G is very similar to that of R_FM_G. The method judges there is no secret message hidden in the image. The curves of S_M_G, S_FM_G, U_M_G, and U_FM_G have the same situations. Hence, the proposed scheme cannot be detected by the RS steganalysis.
Other tests including primary sets, Chi square, sample pairs, RS analysis, and fusion detection were applied to examine the proposed scheme.
Table 9 shows the experiment report. All numbers in the table are very small, which means the proposed scheme is robust against the steganalytic attacks.
5. Conclusions
The dual-image-based hiding scheme is a new technology in the data hiding field. The concept of dual-image, based on information sharing, consists of concealing secret messages in two of the same cover images; only someone who has both stego-images can extract the secret messages. There are many advantages to using dual-image in data hiding, such as its high payload, reversibility, and strong robustness.
The proposed method improves Lu’s center-folding strategy by including the folding operation twice and using an indicator to identify the second folding operation as a means of distinguishing different sub-bands to further decrease the reduced digit. In addition, the proposed method effectively solves the overflow/underflow problem.
In order to evaluate the performance of the proposed scheme, eight schemes with different B and K values were implemented. Moreover, five related methods were implemented for a comparison with the proposed scheme. The first experiment showed that a small B value achieves higher image quality, a large K value achieves a large payload, and the re-encoding process can effectively narrow down the distortion when B is larger. The second experiment compared the proposed and related methods. The results showed that the proposed scheme can achieve higher image quality (B = 3, K = 3, RE = 0), better image quality under the same embedding rate, and a higher payload than other schemes (B = 5, K = 4, RE = 1). The third experiment used several steganalysis techniques to prove the strong robustness of the proposed scheme, include histogram steganalysis, RS steganalysis, primary sets, Chi square, sample pairs RS analysis, and fusion detection.