Mathematical Problems in Engineering

Volume 2015 (2015), Article ID 684824, 11 pages

http://dx.doi.org/10.1155/2015/684824

## An Image Steganography Method Hiding Secret Data into Coefficients of Integer Wavelet Transform Using Pixel Value Differencing Approach

^{1}Government College of Engineering, Aurangabad, Maharashtra 431 005, India^{2}Jawaharlal Nehru College of Engineering, Aurangabad, Maharashtra 431 005, India

Received 12 November 2014; Accepted 23 December 2014

Academic Editor: Gen Qi Xu

Copyright © 2015 Avinash K. Gulve and Madhuri S. Joshi. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

#### Abstract

The image steganography systems use either the spatial domain or the frequency domain to hide the secret information. The proposed technique uses spatial domain technique to hide secret information in the frequency domain. The cover image is transformed using integer wavelet transform to obtain four subbands: LL, LH, HL, and HH. Then, the PVD approach is used to hide the secret information in the wavelet coefficients of all the four subbands. For improving the security of the hidden information, the proposed method first modifies the difference between two wavelet coefficients of a pair and then uses the modified difference to hide the information. This makes extraction of secret data from the stego image difficult even if the steganography method fails. The result shows that the proposed technique outperforms other PVD based techniques in terms of security of secret information and hiding capacity of cover image.

#### 1. Introduction

Now a day, it is easy to share the information which is in the form of text, image, audio, or video using the Internet as the communication channel. Since Internet is an open channel of communication, there is always a threat of stealing the information. Therefore, it is becoming more important to adopt security measures so that the information can be protected from being stolen by malicious user. The security measures include cryptography, steganography, and coding. Steganography involves hiding secret information in a multimedia object such as image, audio, or video in such a way that its existence in these documents cannot be noticed. Digital images are preferred for hiding the secret information. It is relatively easy to place information in digital images because of the availability of sufficient redundant area where valuable information could be placed in an imperceptive way. It is possible to use images, either in the spatial domain or in the frequency domain, to hide secret information. In the spatial domain, the pixel values are used for hiding the secret information and, in the frequency domain, the wavelet coefficients are used for hiding the secret information.

The organization of the paper is as follows. A review of necessary background of IWT and PVD based steganography is presented in this section. In Section 2, the proposed method is discussed. In Section 3, the results are discussed while the paper is concluded in Section 4.

In the PVD method, as suggested by Wu et al. [1, 2], a gray-valued cover image is partitioned into nonoverlapping blocks composed with two consecutive pixels, and . For each block, difference value is calculated by subtracting from . Since the pixel value ranges from 0 to 255, the difference value also ranges from −255 to 255. Therefore, ranges from 0 to 255. The block is in smooth area if the difference value is small; otherwise, it is in sharply edged area. A range table is designed with contiguous ranges ( where ) and the table range is from 0 to 255. The lower and upper boundaries of are denoted by and , respectively. Hence, . The width of is calculated as + 1. This width is used to estimate the number of bits (where ) of secret message that can be hidden using the difference of two consecutive pixels. After hiding bits using the difference , new values are assigned to and . The new difference is calculated by subtracting from . The new difference stands for the secret data hidden in the pair. During extraction, the stego image is partitioned into nonoverlapping blocks composed with two consecutive pixels, and . Then, the difference value for each pair of two consecutive pixels and is calculated. Next, is used to locate the suitable range . The decimal equivalent of the secret information hidden in the block is given by which is then transformed into a binary sequence with bits.

In order to improve the capacity of hiding secret data and to provide an imperceptible stego image quality, a novel steganographic method based on least-significant-bit (LSB) replacement and pixel-value differencing (PVD) method is presented by Wu et al. [2]. The range table is divided into lower level (smooth area) and higher level (edged area). In the smooth area, 6 bits of the secret data is hidden by LSB method while, in the higher level, secret data is hidden using the PVD method.

To improve the hiding capacity of the cover image and quality of the stego image, another enhanced method is introduced based on the PVD method by Chang et al. [3, 5, 6]. In this method, data is hidden in vertical and diagonal edges along with the horizontal edges. The cover image is divided into the blocks of 2 × 2 pixels. Considering and to be the pixel locations, each 2 × 2 block includes four pixels , , , and . Pixel is grouped with the remaining three pixels in the block to form three pixel pairs. These three pairs are named , , and where , , and , respectively. After embedding the secret information in each pair using PVD approach, values of two pixels in each pair get modified. Thus, the original difference value is modified to a new difference value . The new pixel values in each pair are different from their original ones. That is, three different values are obtained for the pixel . However, pixel can have only one value. Therefore, one of the is selected as the reference pair to offset the remaining two pixel values. That is, two pixel values of the reference pair are used to adjust the pixel values of other two pairs and construct a new 2 × 2 block. The embedded secret data is unaffected because new difference values, , are unaltered. During extraction, the difference value is used to extract the hidden information. is used to locate the suitable range . The decimal equivalent of the secret information hidden in the pair is given by which is then transformed into a binary sequence with bits.

Gulve and Joshi [4] have proposed a steganography method to improve the security of the secret information using five-pixel pair differencing approach. The cover image is partitioned into blocks of 2 × 3 pixels to form five pixel pairs. The secret data is embedded in the pairs using the difference value of pixels in that pair. Instead of hiding bits in the pair using the difference value, bits ≤ are hidden in the pair where is the average of bits that can be hidden in each pair of the block. Thus, in case of failure of the steganography system, it becomes difficult to estimate exact number of bits hidden in each pair of the block. Another level of security for the secret information is introduced by converting the secret information in its gray code form. For each pair in the block, the method converts bits of secret information in the gray code form and then embeds these bits in that pair. Thus, the security of the secret information is improved without involving the overhead of encryption and decryption. Gulve and Joshi [7] have proposed a steganography method to improve the security of the secret data embedded in the image. The cover image is divided in the blocks of 2 × 3 pixels to form five pairs. The location of the common pixel is decided using the image data. For this reason, data of last few rows are used. Since the common pixel is changed randomly based on the image data, it is difficult to extract the secret data from stego image even if the steganography method fails.

Integer wavelet transform maps an integer data set into another integer data set. Calderbank et al. [8] have explained the working of integer wavelet transform. Haar wavelet transform, in its unnormalized version involving pair wise averages and differences, is written as Its inverse is given by

Because of division by two, this is not integer transform. The integer version can be built by omitting division by two in and calculating the sum instead of the average. This is called transform [8]. Consider the following example:

It is possible to define as above because the sum and difference of two integers are either even or odd. Thus, it is safe to omit last bit of sum since it is similar to last bit of difference. The transform [8] is invertible and it is given by

A different way of writing Haar transform using “lifting” steps leads to natural generalizations. It is possible to write Haar and transform using lifting schemes [8].

First, compute the difference and, then, use the difference in second step to compute the average:

The inverse transform can be calculated in two steps. First, recover the even samples from the average and difference, and recover the odd samples from even and difference [8]. It is given by the following equations:

It is possible to write integer transform by truncating the division:

Lifting can be used to compute the inverse transform. The equations follow from reversing the order and changing the sign of the forward transform [8]:

Ramalingam et al. [9] have elaborated the process of separating four subbands using Haar IWT. The first stage IWT is given by
where represents pixels in odd column and represents pixels in even column. In the next stage, the IWT coefficients are calculated using high pass and low pass filter banks. This process creates four subbands: low-low (LL), low-high (LH), high-low (HL), and high-high (HH). The second stage IWT is given by
where H_{odd} represents H band’s odd row, L_{odd} represents L band’s odd row, H_{even} represents H band’s even row, and L_{even} represents L band’s even row [9].

Ghasemi et al. [10, 11] have proposed a novel steganography scheme based on integer wavelet transform and genetic algorithm. The scheme embeds data in integer wavelet transform coefficients by using a mapping function based on genetic algorithm. The methods use wavelet transform coefficients to embed secret data into the four subbands of two-dimensional wavelet transform. Genetic algorithm is used to find the mapping function. A chromosome is encoded as an array of 64 genes containing permutations 1 to 64 that point to pixel numbers in each block. OPAP is used to minimize the error between cover and stego image.

Xuan et al. [12] have suggested a lossless data hiding method for digital images using integer wavelet transform and threshold embedding technique. CDF (2.2) integer wavelet transform is used to obtain the wavelet coefficients. Histogram modification is applied to prevent possible underflow/overflow of pixel values. A predefined threshold value is used to embed data in the wavelet coefficients.

El Safy et al. [13] have suggested an adaptive steganographic model which combines adaptive hiding capacity function that hides secret data in the integer wavelet coefficients of the cover image with the optimum pixel adjustment (OPA) algorithm. Histogram modification is applied to prevent possible underflow/overflow of pixel values. The cover image is divided into 8 × 8 nonoverlapping blocks. Each block is transformed using 2D Haar integer wavelet transform to obtain four subbands: LLI, LHI, HLI, and HHI. Hiding capacity of each coefficient is determined and the data is embedded in the coefficients. A pseudorandom number generation function is used to select the wavelet coefficients for increasing the security of the hidden data. The OPA algorithm is applied after embedding secret message to minimize the embedding error. The extraction procedure is a blind process since it requires only the secret key from the receiver. The secret key is used to identify the wavelet coefficients. Secret message bits are extracted from each selected wavelet coefficient.

Archana et al. [14] have proposed a method for hiding secret information in the discrete wavelet transform coefficients using GA and OPAP algorithm to provide optimum hiding capacity. The four subbands LL, HL, LH, and HH are used for hiding the data. Hiding capacity function is modified by using different ranges for k for the LH, HL, and HH subbands where its values range from 1 to 4. The length L of message bits to be hidden in wavelet coefficient is determined by using hiding capacity function.

Al-Asmari et al. [15] have proposed a method using discrete wavelet transform and pixel value differencing approach to hide the information. Using the discrete wavelet transform, the cover image is decomposed to obtain the four subbands (LL, HL, LH, and HH). Then, the LSB method is used to hide secret information in the LL subband by hiding two bits of secret information in each coefficient. The PVD approach is used to hide the information in the remaining three subbands. For hiding the information, two consecutive pixels in the vertical direction are grouped to form a pair. The method gives high performance in terms of capacity, human visual quality, and PSNR.

#### 2. Proposed Method

The proposed method hides secret information in the gray scale images. It uses spatial domain technique to hide secret information in the frequency domain. In the frequency domain, the image is decomposed into four subbands using integer wavelet transform and then the spatial domain technique is used to hide secret information in the wavelet coefficients of the four subbands.

The cover image is transformed using 2D Haar integer wavelet transform to obtain four subbands: LL, LH, HL, and HH. The proposed method embeds data in the coefficients of four subbands by using the pixel value differencing approach.

##### 2.1. Preprocessing

The gray scale image is read as a 2D array of size [, ]. Histogram modification [12–15] is applied to prevent the possible overflow/underflow of pixel values. This problem occurs when the pixel values of the cover image are close to 255 or 0, because they may exceed 255 or fall below 0 during inverse integer wavelet transform. The problem can be solved by mapping the lowest 15 gray scale levels to the value 15 and the highest 15 gray scale levels to the value 240. If the pixel values exceed the boundaries during the inverse wavelet transform, the image is not suitable for hiding secret data. The image is transformed using 2D Haar wavelet transform to obtain four subbands: LL, LH, HL, and HH of size [/2, /2] each. All the four subbands are used to hide the secret information. The 2D array of size [, ] is again constructed by arranging the four subbands as shown in Figure 1.