A New Information Hiding Method Based on Improved BPCS Steganography

,


Introduction
Steganography is an art and science of invisible communication. It comes from Greek for covered writing and essentially means "to hide in plain sight" [1]. Embedding capacity, security (imperceptibility), and robustness are the most important three features in steganographic system. Generally speaking, there is a fundamental compromise between embedding capacity and security in information hiding scheme. Steganography methods can be divided into two categories: original (spatial) domain methods and transform domain methods. Cover image is transformed into frequency domain first, and then the secret messages are embedded in the coefficients of transformed cover image. Singh et al. [2] proposed a method to combine two techniques. One was image enhancement and the other was image steganography based on DFT. Kaur and Kochhar [3] provided a technique for image steganography based on DCT. The algorithm had good invisibility and security. A three-level DWT decomposition was done on host image and secret information was hidden in approximation coefficients of the decomposed image in [4]. The stegoimage is subjected to image processing attacks.
Abu et al. [5] discussed a robust algorithm, which was based on integer Haar wavelet transform and pixel value difference. Ramezani et al. [6] gave a steganography method in contourlet domain. The optimal pixel adjustment process and genetic algorithm are also used. Alsaif and Saalih [7] presented a data hiding technique in NSCT domain. Secret data was embedded in high frequency directional band pass of contourlet transform. In spatial domain methods, the processing is applied on the image pixel values directly. Least significant bits (LSB) substitution [8] is the most wellknown spatial steganographic system. Although this method is simple and easy, it is weak in robustness and compression, such as JPEG compression. Soumi et al. [9] presented a mosaic image steganography based on genetic algorithms for enhanced security. Mandal and Das [10] proposed a color image steganography method based on pixel value differencing. Secret data was hiding in the component of a pixel in a color image. Arora and Anand [11] gave an approach for image steganography using edge detection method. In their study, edges of RGB image were detected by scanning method using 3 * 3 window. Since human eyes are not sensitive to tiny alterations of noisy data, it will not be noticed when the data  in noisy regions is replaced with another noisy data. That is bit-plane complexity segmentation steganography (BPCS steganography) [12].

The Principle of BPCS Steganography
BPCS steganography was first put forward by Kawaguchi and Eason [13]. The basic principle is that firstly cover image is divided into "informative region" and "noise-like region. " Then the secret information is hidden in noise-like blocks of cover image [14]. In LSB technique, data is hidden in the lowest bit-plane. But in BPCS technique, data is hidden in pixel blocks of all the planes, from the highest plane (most significant bit, MSB plane) to the lowest plane (LSB plane), which have noisy patterns [15]. In BPCS, a gray image consisting of -bit pixels can be decomposed into -binary planes. For example, = 8, as shown in Figure 1. For example, is an -bit gray image; here = 8. Therefore = [ 7 6 5 4 3 2 1 0 ], where 7 is the MSB bit-plane and 0 is the LSB bit-plane. Each bit-plane can be segmented into "informative" region and "noise-like" region. It is simple in informative region and cannot be used for hiding information. However, it is complex in noise-like region and each noise-like region could be replaced with another noise-like pattern in BPCS. As a result, it will not change the overall quality of image after embedding. The most important step in BPCS is how to locate noisy regions in a cover image correctly. The regular method is to divide each bit-plane of the cover image into small square binary pixel blocks. The blocks are considered as noisy regions; those have complex black-and-white patterns. Often is defined as a criterion to judge whether the block is complex or not [16]: where is the total length of border in a block, is the row or column of the block, and is between 0 and 1. If is higher than the given threshold value, then the block is regarded as complex.

Improved BPCS Steganography
The black-and-white border complexity is a simple and easy method to judge whether the blocks are complex or not.
However it is not always useful. For example, the blocks that have periodical patterns, such as chessboard or stripes, are recognized as complex ones in this way. That is because, as shown in Figure 2, = 1 and = 1/2. But these blocks cannot be used for embedding data; otherwise the cover image will deteriorate obviously. There are two new techniques to differentiate complex blocks from simple ones in this paper: run-length irregularity and border noisiness.

Run-Length Irregularity.
Run-length irregularity is the histogram which consists of the run-lengths of both blackand-white pixels in a row or in a column.
Suppose that ℎ[ ] is the frequency of runs of pixels either in black or in white and is the length of the pixel sequence; then ℎ is used to measure the irregularity of a binary pixel sequence: The value of ℎ is often normalized to [0, 1] and denoted bŷ ℎ .
If the size of block is × and and are the th row and th column of a block, then the run-length irregularity of a block is defined as follows: wherê( And is the mean of all the elements of . According to the definition, the smaller row and column averages are taken as the value of the run-length irregularity . As seen in Figure 3, they are both periodic in row or column. As a result, every run-length irregularity is 0, so they are simple and cannot be used for embedding.
The run-length irregularity is only useful in row or column. If the block is regular in other directions, will have nothing to do with it, as shown in Figure 3.

Border Noisiness.
If data is embedded on the boundary of noisy regions and informative regions of cover image blocks, then the noisy regions will be expended. As a result, the cover image will be changed clearly.
The border noisiness is based on the differences between adjacent binary pixel sequences in a block. Similarly if the block size is × and and are the th row and th column of a block, then the border noisiness of a block is defined as follows: ⊕ means bitwise exclusive OR, ( ) is the number of ones in a binary sequence , and

Default Threshold Values.
In a word, a block is recognized as complex only if it satisfies the following conditions: Here, , , and are threshold values. Normally, the default threshold values are From the equation above, it can be concluded that the bit-plane is higher and the threshold value is larger. That is because it will raise noticeable changes for excessive embedding data in high bit-plane and will freely get enough embedding capacity in low bit-plane. There is a fact that these threshold values are default and not always optimal. They could be adjusted manually according to the actual conditions.

Canonical Gray Coding.
Normally the pixel value of an image is represented by pure binary code (PBC). Canonical Gray coding (CGC) [17] is superior to pure binary code (PBC) in BPCS steganography, because PBC will encounter "Hamming cliff, " which means that a small change in pixel value will affect many bits of value [13]. CGC makes full use of characteristic of human vision system and works out this problem. Suppose that and are the th bit of the pure binary code and canonical Gray code with the same -bit. The two codes are given by The relationship between and is given: Here ⊕ means exclusive OR operation. It consists of informative and noise-like regions in binary image. Informative regions are simple while noiselike regions are complex. If secret information is noise-like then it is embedded in noise-like regions of the cover image directly. However, if secret data is informative then it will be conjugated firstly so as to convert it into complex pattern.

Conjugation Operation of a Binary Image.
Conjugation is used to convert simple blocks into complex ones. In order to extract original data embedded in the cover image, it should record which blocks of the original data are conjugated and which are not. This information is stored in a conjugation map. It should be embedded along with the resource file as blocks. Note that the blocks of the conjugation map should be also conjugated if they are not complex enough.
If is a binary image with size of × and black pixel is its foreground while white pixel is its background. and , respectively, represent all-white and all-black patterns. Now two checkerboard patterns and are put forward. In particular, has a white pixel at the upper-left position, and is its complement. In binary image black-and-white pixels particularly mean a logical value of 1 and 0. Now * is defined as the conjugate of which satisfies * = ⊕ .
The most important property about conjugation is This property could transform informative pattern to complex one, so both informative and noise-like regions could be used for embedding by conjugation operation.

Statistical Analysis.
Though BPCS steganography algorithm is advantageous in imperceptibility, it would change the statistic characteristics of bit-plane block complexity. Because adjacent pixels in the high bit-planes have a strong correlation, the higher the bit-plane is, the stronger the correlation is. The method of steganalysis is proposed by Zhang and Wang [17]. Suppose the following. (1) ℎ 0 ( ) is the complexity histogram of all the bit-plane blocks of cover image, and is the complexity of a block, whose threshold value is ⋅ max . (2) ℎ ( ) is the complexity histogram of all the bit-plane blocks of secret image. If is not as big as the threshold value ⋅ max , the blocks should be done by conjugation first. Finally ℎ ( ) is the complexity histogram of all the bit-plane blocks of cover image in which secret data has been embedded, and is defined as follows: From (14), it can be concluded that ℎ ( ) is composed of three parts of complexity histograms; each of them is smooth connection, but there is a sharp jump at the joint of two adjacent histograms, such as = ⋅ max and = (1− )⋅ max . The way of steganalysis is shown as follows: ( ) is defined to measure the discontinuity of the histogram. If there are obvious peak values which are larger than 0 in the ( ), then the cover image will be considered as embedding secret information. In order to resist BPCS statistical analysis, the basic principle of improved BPCS steganography algorithm adopted different bit-plane with different complexity, which the higher is, the complexity smaller is. The threshold value of bit-plane complexity is computed in the same way as in Section 3.3 (see Table 2).

Improved BPCS Steganography Algorithm
(1) Convert the cover image and the secret image from pure binary code (PBC) into canonical Gray code (CGC).
(2) Calculate complexity measures , , and for each block of each bit-plane of cover image and secret image.
(3) Perform conjugation operation on the "simple" or "informative" blocks of the secret image.
(4) In order to contradict statistical steganalysis, the threshold value is calculated.
(5) Perform embedding operation to embed secret image in cover image.
(6) Convert the embedded image from CGC to PBC.

Experiment
In this paper, the experiment is done with MATLAB 7. The block size is 8 × 8, and the peak signal-to-noise ratio (PSNR) and capacity are used to evaluate the quality of the cover image after embedding: is the value of a pixel in the original image and is the value of the same pixel after embedding, respectively. is the number of pixels.
Capacity means the number of bits that could be used for embedding.
This paper adopts three different images as samples. The size of image is 512 × 512.
From Table 1, it can be shown that though capacity is almost the same between BPCS and the proposed method, the PSNR value is much different. It also can be concluded that the proposed approach is better in PSNR value and capacity than existing techniques.
As shown in Figure 4, ℎ 0 , ℎ 1 , and ℎ 2 are the histograms of original image, BPCS, and improved BPCS.  The PSNR of the image obtained by BPCS ( Figure 5(b)) and improved BPCS ( Figure 5(c)) was 45.71 dB and 42.86 dB. Figures 5(d), 5(e), and 5(f) show the part areas of the images in Figures 5(a), 5(b) and 5(c) respectively. It can be found that there is deterioration in the image obtained by BPCS ( Figure 5(e)) but not in the image obtained by improved BPCS (Figure 5(f)). The experiment also shows that improved BPCS can not only embed more data but also keep the image quality higher. In a word, improved BPCS is superior to BPCS in steganography.

Conclusion
It is shown that the final embedded image with the proposed method seems to be the same as the original image and locates noise-like regions in a cover image more exactly. It also shows that the algorithm in this paper can withstand statistics analysis while the way of BPCS cannot. Experiments also prove that the proposed approach is better in PSNR value and capacity than existing techniques.
In this paper, some parameters and thresholds are got by experiment. How to determine these values automatically needs to be researched in the future.