JOURNAL OF MULTIMEDIA, VOL. 6, NO. 4, AUGUST 2011
349
Reversible Image Data Hiding Using Quad-tree Segmentation and Histogram Shifting Yih-Chuan Lin Department of Computer Science and Information Engineering, National Formosa University, Yunlin, Taiwan 63201 Email:
[email protected]
Tzung-Shian Li Institute of Electro-Optical and Materials Science, National Formosa University, Yunlin, Taiwan 63201 Email:
[email protected] Abstract—This paper is working towards a high capacity histogram-based reversible data hiding algorithm with a relatively lower distortion introduced after embedding the secret message. The proposed algorithm can be thought of as an improved version of the traditional histogram shifting method. To take advantage of simple local distribution of pixel intensities, the idea behind the proposed algorithm is to consider the multiple local histograms, each of which is derived from pixels in a locally contiguous sub-image area, instead of the single histogram for the whole image area. We develop a hierarchical segmentation scheme that is able to hierarchically partition the input host image into several variable-sized blocks of pixels under a maximal capacity criterion for each block partition. These partitioned blocks are organized as a tree structure for the ease of representation. The secret message and the partition tree information are then embedded in these image blocks. With the proposed segmentation scheme, the algorithm can easily find a suitable non-overlapped partition of the image to significantly increase embedding capacity. Experimental results reveal that the proposed method can indeed provide higher embedding capacity than the traditional histogram shifting method while maintaining a high visual quality that is comparable to the traditional one without spatial segmentation scheme. Index Terms—histogram shifting, reversible data Hiding, quad-tree segmentation, Image security
I. INTRODUCTION In this digital era, digital contents can be disseminated in the internet quickly and conveniently. At the same time, the copy and distribution of digital contents can be conducted illegally in the public internet environment. Copy right holders of digital content have begun to pay attention to copyright protection technologies. Many scholars have provided various data hiding technologies to embed secrete data, copyright information, or trademark into digital contents to protect or secure the copyright, and only allow slight modification of original contents [1-4]. In some data hiding or watermarking schemes, the host media which is going to be protected or is used to hide the transmission of some secret information would experience some distortion and cannot This is a revised version of a paper presented at the conference on Computer Vision, Graphics, and Image Processing, Nantou, Taiwan, August 23-25, 2009.
© 2011 ACADEMY PUBLISHER doi:10.4304/jmm.6.4.349-358
be transformed back to its original form at the extraction stage. However, in some applications for sensitive images [5-7], such as medical images, military remote-sensing images, and artworks, it is essential to be able to reverse the marked media back to its original form after the hidden data are retrieved for some legal considerations. Owing to the reversibility requirement, there have been research efforts on reversible watermarking that can recover the original images from the watermarked images as demand. In [8], Tain presents a difference expansion method for reversible watermarking. The method can provide very high hiding capacity, but it also destroys the original image very much. There are also several variants of difference expansion proposed to improve the stegoimage quality and hiding capacity [9-12]. In [13], Ni brings up a histogram shifting algorithm. The algorithm is simpler and requires less computation than most of other watermarking algorithms. Histogram shifting method uses maximum and minimum points of the histogram of the input image, and shifts all of the pixels which intensities between the maximum and minimum points for hiding message bits at the maximum point. Since it modifies the intensities of pixels slightly, it can preserve very high peak signal-to-noise ratio (PSNR) after embedding the secret message in the image. However, the capacity that Ni’s algorithm can provide might not be sufficient for most applications; so many scholars have studied and tried to improve Ni’s algorithm. For instance, Hwang uses the intensities between the maximum points to raise capacity [14], but the increased amount of hiding data is not significant. In 2009, Chung brings up a method which used a dynamic programming procedure [15] to maximize histogram shifting hiding capacity. The method increases capacity indeed, but it has two drawbacks: the method is suitable only for specific type of images and his technique needs much execution time. For preserving the quality of image, we intend to use the method of histogram shifting, and improve its hiding capacity. The method is enhanced to utilize the characteristics of an image for maximizing its hiding capacity. We focus on dividing a histogram in several parts and shifting them individually for hiding more data in them instead of shifting a whole histogram. Without loss of generality, suppose we divide a histogram into
JOURNAL OF MULTIMEDIA, VOL. 6, NO. 4, AUGUST 2011
350
two or more parts. Then, each of the divided histograms would appear more concentrated due to the spatial continuity of natural images, and is easier to find suitable maximum and minimum points for hiding message without too much overhead. At the same time, the summation of individual hiding capacities from the divided histograms would also be larger than that without division in most cases. While a similar approach can be found in the literature [16], which divides the image into four blocks and hide information in each of them, our proposed algorithm emphases on how to maximally expand the hiding capacity through a hierarchical partition strategy. To the best of our knowledge, the proposed algorithm is the first one using quad-tree segmentation approach to increase the hiding capacity of histogram shifting technique. The designed algorithm works simply in the spatial domain of images without any signal transformation process. The rest of this paper is organized as follows. In Section II, Ni’s histogram shifting algorithm and the theoretic foundation of the study are described. In Section III, we explain our proposed method, where quad-tree segmentation, embedding and extracting procedure are presented. Section IV is devoted to show experimental results. Finally conclusions are drawn in Section V. II. BACKGROUND In this section, we first review Ni’s histogram shifting method because it is the background of the study. Without loss of generality, a simple example that is shown in Figure 1 is used for illustrating the operation of the algorithm. At first, Ni’s histogram shifting algorithm computes the histogram h(x). Then, a sequence of steps is performed as follows: Step 1: Generate the histogram h(x), x ∈ [0, 255] , of the host image I. Find the maximum and the minimum point pair (m1, z1) in the histogram as defined in (1).
m1 = arg max h( x) x z = arg min h( x) 1 x
(1)
The maximum point m1 corresponds to the grey level that occurs most frequently in the host image I, and the minimum point z1 might be the grey level which no or minimum number of pixels render with in the image. Without loss of generality, we assume m1 < z1 for the convenience of explanation. Step 2: Traverse the host image and for each pixel I(x, y) do the following modifying operation according to its gray level: m1 < I ( x, y) < z1 I ( x, y) + 1, I ' ( x, y) = I ( x, y) + s i , I ( x, y) = m1 I ( x, y), otherwise
© 2011 ACADEMY PUBLISHER
Figure 1. Flowchart of histogram shifting method with one pair. (a) original histogram (b) histogram shifting (c) message hiding Figure 1 demonstrates a simple example about how the algorithm hides data in a 5x5 image block. In this case, the histogram value at the maximum point m1=3 is 8 and one byte of secret data ‘10101110’ is hidden at the pixels with gray level three. To accomplish the hiding task, there are thirteen pixels’ gray levels increased by one. This is only a slight modification to the host image in order for hiding the one byte of data, in comparison with other methods such as difference expansion technique. Since the data extraction process needs the information of maximum and minimum points to make exact host image recovery and secret data extraction, the (m1, z1) pair is recorded or sent along with the marked image I’ to the intended receiver. Upon receiving the marked image I’, the extraction process performs the steps below to extract the secret message < s i > and the host image I. Step 1: Traverse each pixels I’(x, y) in the received image and extract the secret data < s i > using (3).
0 I ' ( x, y) = m1 si = ' 1 I ( x, y) = z1
(3)
Step 2: Examine all the marked pixels once again to transform them into their original gray levels in according with the following operation:
I ' ( x, y) − 1 m1 < I ' ( x, y) ≤ z 1 I ( x, y) = ' I ( x, y) otherwise
(2) (4)
JOURNAL OF MULTIMEDIA, VOL. 6, NO. 4, AUGUST 2011
351
The hiding capacity c of the algorithm can provide is equal to the frequency count of the maximum point in the input image, which can be expressed as,
c = max h( x)
(5)
0≤ x ≤ 255
This algorithm can be extended to use multiple pairs of maximum and minimum points for raising hiding capacity. However, the overhead induced is usually bigger than the capacity they can offer when we select more than three pairs for image Lenna. The overhead includes the records storing position coordinates of pixels associated to the minimum points that have nonzero frequency counts in the histogram. Thus, one of the advantages of the proposed algorithm is to reduce the effect of overhead by dividing histogram into several parts via the quad-tree partition of the input image. We expect that it can increase not only numbers of zero points and reduce numbers of minimum points, but also increase capacity of watermarking. Since the length of secret data that can be embedded depends on the height of histogram maximum point for individual host images, the amount of secret data embedded by the algorithm is not large for most natural host images. For an 8-bit gray scale image of N by N pixels, the effective amount (or payload size) that the basic histogram shifting algorithm can provide for embedding the actual secret data is calculated by the formulate defined in (6). (6) PS1 (I ) = h(m1 ) − (log 2 ( N ) )2 × h( z1 ) − 16 In the right-hand side of (6), the first term stands for the maximal embedding capacity of basic histogram shifting algorithm, including those for the secret data and the accompanying overhead. The second right-hand side term of (6) represents the required space for recoding the positional information of all the minimum-point pixels, that is for all (x, y)’s whose gray level I(x, y) equals z1, in case of h(z1) being non-zero. And, the third term of the right-hand side of (6) is the size allocated for embedding m1 and z1. If payload size offered from the single pair is less than the required size of user data, the original algorithm is extended to find multiple pairs of maximum and minimum points, (m1, z1), (m2, z2), …, (mk, zk), giving more capacity such that the secret data can be accommodated in those found pairs of maximum and minimum points. The payload size in the multiple-pair case is restated as follows. k
k
i=1
i=1
PS 2 (I , k ) = ∑ h(mi ) − (log 2 ( N ) )2 × ∑ h( z i ) − 16k
(7)
If the histogram possesses many sharply peak-valley pairs (pairs of maximum minimum points) in the distribution of gray-level values, the multiple-pair histogram shifting method can offer significant payload size gain. In [15], the authors have shown that for some special kind of images, such as road maps, the multiplepair histogram shifting method can find about 15 useful peak-valley pairs and embed more than three hundred
© 2011 ACADEMY PUBLISHER
thousand bits of secret data into a map image of 739 by 814 pixels. However, the results shown in [15] for natural images have also revealed that there are only few peakvalley pairs of histogram found suitable for embedding data. In other words, basic histogram shifting method is limited in terms of payload size for natural images whose histograms are not dramatically up-and down changing in amplitude. Therefore, some alternative strategies for improving its embedding capacity are desirable for embedding high payload in the natural images. In this research, instead of using multiple pairs of maximum and minimum points, we adopts multiple nonoverlapped image blocks, each of which is separately used for embedding data by the basic histogram shifting algorithm. Assume that the host image I is partitioned into a sequence of non-overlapped blocks b1, b2, …, bP. If applying the basic histogram shifting method to each image block, the total payload size is P P PS (I , P) = ∑ h (m ) − ( log (N ) )2 × ∑ h (z ) − P ×16 (8) 3
i
i,1
2
i=1
i
i,1
i=1
where hi(x) and (mi,1, zi,1) represent the histogram and the pair of maximum and minimum points of the i-th image block. With the approach using multiple image blocks, the payload size can be easily increased. The reasons are twofold. First, it has more possibility to find a zero histogram-bin minimum point, i.e., hi(zi,1) is zero, within a relatively smaller local image area. Second, the summation of histogram values at the local maximum points from all the image blocks, that is the first term in the right-hand of (8), is always greater than or equal to that of the whole host image. To validate this statement, we express the histogram value at the maximum point in the whole host image as the summation of individual histogram values at the same point in all the image blocks. We have P
h(m1 ) = ∑ hi (m1 ) . i =1
Since hi (m1 ) ≤ hi (mi,1 ) for all i, the following inequality holds and proves the validly of using multiple image blocks strategy. P
P
i =1
i =1
h(m1 ) = ∑ hi (m1 ) ≤ ∑ hi (mi,1 ) In the next section, the proposed histogram shifting algorithm that employs multiple image blocks strategy is described. III. THE PROGOSED ALGORITHM Figure 2 depicts the components that comprise the proposed data hiding scheme. Assume that the host image I is an 8-bit two-dimensional matrix of integers sized N by N. As shown in Figure 2, the host image is first partitioned into different sized non-overlapped blocks using a decision tree (or hierarchical) segmentation approach. Since these image blocks are organized as a
352
segmentation tree structure and only those leaf nodes of the segmentation tree are employed for hiding data, the tree traversal procedure would sort all of the leaf nodes into an ordered sequence of image blocks and represents the structure of segmentation tree using a string of binary symbols. The payload generation process takes the ordered sequence of image blocks and the secret data as input and transforms them to another sequence of pairs of message and block, where each message entity contains one part of the secret data and associated overhead data that are allocated to be embedded in the corresponding image block. The embedding algorithm uses the histogram shifting scheme to embed each message entity to its corresponding image block, and reconstructs the embedded image (called stego-image) according to the information of tree structure bit-string. In order to guarantee the reconstruction of segmentation tree at the receiver end, the tree structure bit-string is also embedded using histogram shifting in the stego-image. In this section these constituent parts would be described in details. Before going to further, let us define some symbols for the ease of presenting the details of the algorithms. The input image is denoted as b N ×N . The host image is first partitioned into different sized blocks in a quad-tree manner. The quad-tree structure is used to represent this partition process, where b( x, z x ) represents the zx-th block at the x-th level of the quad-tree structure. Some attributes of each block b( x, z x ) are needed in the proposed algorithm and defined as follows. n( x, z x ) : Binary variable indicates whether b( x, z x ) has been partitioned or not. Set n(x, z x ) = 1 if b( x, z x ) is decided to be divided; otherwise, n( x, z x ) =0. h( x, z x ) : Histogram function that is computed according to block b( x, z x ) . capacity function derives c( x, z x ) : Hiding from h( x, z x ) . This information set would be generated by the quadtree segmentation and payload generation component as that shown in Figure 2. The maximum and minimum points in those embeddable blocks b ( x, z x ) and the bit string n( x, z x ) for all possible x and zx are made of the overhead message. They are required to be embedded along with the secret data provided by the users into the input image for supporting the exact recovery of input image from the stego-image in the later extraction operation. A. Quad-tree segmentation The proposed algorithm aims at embedding the secrete data to no-overlapped blocks of pixels using histogram shifting technique. These blocks are generated from partitioning the input image and organized as a form of quad-tree structure. With the nature of histogram shifting technique, lower contrast blocks can accommodate more bits of secrete data while higher contrast blocks hide relatively less amount of secrete data bits. Therefore, the higher contrast blocks are needed to be partitioned into
© 2011 ACADEMY PUBLISHER
JOURNAL OF MULTIMEDIA, VOL. 6, NO. 4, AUGUST 2011
Host image
Segmentation process Secret data
Ordered image blocks
Payload generation
Segmentation tree traversal
Tree structure bit-string
{(message, block)}
Embedding algorithm
Stego-image
Figure 2. Flowchart of data hiding process.
smaller sub-blocks such that most of the sub-blocks become smoother and altogether provide larger hiding capacity. The detail of how to do the quad-tree partition for image blocks is depicted in Figure 3. To start, variable zx is initialized to be one for x = 0,1,L log 2 N and b(0,1) = b N ×N . For any incoming block b( x, z x ) , the first step in the partition process is to make a decision on whether a further division is required or not. Before the decision, b( x, z x ) is tentatively partitioned into four sub-blocks b( x + 1, z x+1 + 1) , b( x + 1, z x+1 + 2) , b( x + 1, z x+1 + 3) , and b( x + 1, z x+1 + 4) , and the hiding capacities of the incoming block and the four sub-blocks are evaluated individually. If the total capacity of the four sub-blocks is larger than that of the incoming block, i.e. the following inequality is hold, (9) PS3 (b( x, z x ), 4) > PS1 (b( x, z x )) then the incoming block is decided to be partitioned into four sub-blocks, and the variable n( x, z x ) is set to one; otherwise the incoming block is considered as a terminal node of quad-tree structure and n( x, z x ) is set to zero, indicating no further partition required for b( x, z x ) . After the incoming block b( x, z x ) is divided, each of the four sub-blocks is considered again to be the incoming block for further quad-tree partition. The process is continued b ( x, z x )
Yes
No
divide?
n(x,z x ) = 0
n(x,z x ) = 1 x++
Yes
z x mod 4 == 0?
No
gen erate b ( x, z x ) b ( x, z x + + )
x−−
zx + +
b ( x, z x + + ) b ( x, z x + + )
No
x == 0 ? Yes
zx − = 3
End
Figure 3. Quad-tree segmentation process.
JOURNAL OF MULTIMEDIA, VOL. 6, NO. 4, AUGUST 2011
b(2,1)
b(2,3)
b(2,5)
b(1,1) b(2,2)
353
b(2,7) b(1,3)
b(2,4)
b(1,2)
b(2,6)
b(2,8)
b(1,4)
Figure 4. Quad-tree partition
recursively in depth-first manner until all possible block partitions are traversed. Figure 4 gives an example of quad-tree partition for an illustrative block of pixels. Figure 5 shows the corresponding form of quad-tree structure. To represent the quad-tree structure, a bit-string t=’1100000100000’ is needed for the example of Figure 5. The bit-stream t is generated by preorder traversal which first traverses the root, left sub-tree and right sub-tree sequentially, as shown in Algorithm 1. And the symbol “//” is defined for the concatenation of the bit-stream. Algorithm 1: Quad-tree structure traversal Input: Nodes b( x, z x ) Output: Bit-stream: t Initialization: b( x,
z x ) = b(0, 1) Begin Preorder_bitstream ( b(x,zx) ) 1. t = t // n( x, z x ) 2. If n( x, z x ) != 0 3. Preorder_bitstream ( b(x+1, zx) ) 4. else 5. Preorder_bitstream ( b(x −1, z x−1 + 1) ) 6. End if End
Figure 6. Quad-tree partition example for Lenna
B.
Embedding algorithm
After we get embeddable blocks b( x, z x ) from quad-tree segmentations, we embed secrete data in these blocks as that shown in Figure 2. The detail of how to do the embedding process is depicted in Figure 7. In order to extract recovery of input image from the stego-image in the later extraction operation, we should embed both overhead information and secret data in the block. The overhead that is embedded in each embeddable block is called overhead1 and is got from payload evaluation process as that shown in Figure 2. The attributes of overhead1 are defined in Table 1 and its structure is shown in Figure 8.
We apply the quad-tree partition procedure shown in Figure 3 to the image Lenna, and get a partition results shown in Figure 6. As can be seen from the figure, blocks with multi-modal histogram of intensities would be partitioned to smaller size blocks with simple-modal histogram. The smallest is reached to 16 by 16 pixels in this case. b(0,1)
b(1,1)
b(1,2)
b(1,3)
b(1,4)
b(2,1) b(2,2) b(2,3) b(2,4)
b(2,5)
b(2,6)
b(2,7)
b(2,8)
Figure 5. Quad-tree structure of the partition shown in Figure 4
© 2011 ACADEMY PUBLISHER
Figure 7. Flow procedure of the embedding algorithm
JOURNAL OF MULTIMEDIA, VOL. 6, NO. 4, AUGUST 2011
354
Table 1. The description of overhead1.
Symbol:
Purpose:
No. of min values min value
PL
The length of minimum points. The coordinates (x,y) of minimum points. The grayscale of the first maximum point of the next terminal node. The grayscale of the first minimum point of the next terminal node. Length of payload
Payload
Part of secret data.
next max1
next min1
No. of Min. Values Min. Values (x,y)
Next min1
Next max1
Field length 8 bits optional 8 bits
8bits
8bits optional
PL
Payload
Figure 8. The structure of overhead1.
In order to extract data block by block, we record the maximum and minimum points information of the next block. We only embed data in the terminal nodes of the tree. Notice that information of maximum and minimum points of the first terminal block has not been embedded. We will assembly it along with the quad-tree bit-stream as data set overhead2. After all the secret data has been embedded in blocks, we shift the whole image to embed overhead2 in it using Ni’s algorithm. The overhead2 includes the quad-tree bit-stream which can tell us how to locate the embeddable blocks and the structure of overhead2 is shown in Figure 9. The attributes of overhead2 are defined in Table 2. A sequence of steps is performed as follows: Step 1: Generate the histogram h( x, z x ) of b( x, z x ) . Find the maximum and minimum points in h( x, z x ) . For example, as in the case of Figure 1, graylevel 3 is the maximum point and 7 is the minimum point. Step 2: Shift the histogram between maximum point and minimum point. For example, the pixel graylevel which is between 3 and 7 should be increased by 1. Step 3: According to c( x, z x ) , we can divide the secret data into several parts. Combine the part which should embed in b( x, z x ) and the overhead1 of b( x, z x ) as the to-be-embedded data. Step 4: Scan all of the pixels in b( x, z x ) . If a pixel graylevel which is equal to 3 is found, check to-beembedded data bits; if to-embedded-data is “1”, the pixel value increase by 1; otherwise the pixel gray-level remains intact.
© 2011 ACADEMY PUBLISHER
Step 5: Generate the histogram, h( x) of the whole marked image done in Step 4. Find its maximum and minimum points. Notice that one pair is chosen here. Step 6: Shift h(x), and embed the overhead2 in h( x) . Thus we can get the stego-image. C. Extracting algorithm Figure 10 depicts the flowchart for the extract process. In the following, a step-by-step explanation for extraction process is given. Step 1: Use the extraction key (refer to the maximum point of h( x) here) to extract the data of overhead2. The whole image is scanned. If the grayscale value of a pixel equals the key, a bit “0” is extracted. If the pixel value is key +1, a bit “1” is extracted. Step 2: Shift histogram of the whole image back. Step 3: We can get the maximum point and minimum point information of b(1, z1 ) and the quad-tree bitstream after obtaining overhead2. Use quad-tree bit-stream to generate the embeddable blocks b( x, z x ) in the quad-tree of image segmentation. Step 4: We can get each overhead1 and payload hidden in each block. Do extracting process block by block. Step 5: If PL which is in overhead1 is less than c( x, z x ) or all of the terminal-blocks have been extracted, stop the extracting process. Step 6: Combine block-payload data and get the secret data. Table 2. The description of overhead2.
Symbol:
Purpose:
Min
The grayscale of minimum point in whole image. The maximum point of the first terminal node. The maximum point of the first terminal node. The length of min value. Coordinates of minimum points when h(min) > 0 . Length of the quad-tree bit-stream Tell us the structure of quad-tree. Length of the bit-stream is always less than 250 bits
next max1 next min1 Count of min min value BL quad-tree bitstream
Field length 8 bits 8 bits 8 bits 8 bits optional 8 bits Optional
JOURNAL OF MULTIMEDIA, VOL. 6, NO. 4, AUGUST 2011
IV. Experimental Results Test images of 512×512×8 grayscale are used in experimenting for the reversible watermarking algorithm proposed in this paper. In Figure 11, we show our test images. Figure 12 shows the original Lenna image and its different marked images embedded with different sizes of secret data, where we can see that invisibility is so high. In order to demonstrate changes of histogram among the images shown in Figure 12, the histograms before and after watermarking the image are shown in Figure 13. We can find the histograms are not too much different from the original one. In Figure 14, we show the histogram of difference value of pixels between the marked images and the original one, and also the difference is very small. There are always one or more breaches in the marked histogram. Almost all of the histogram shifting methods have this drawback. min
next max1
next Count of min min1 min value
BL
355
(a) Lenna
(b) Baboon
(c) F16
(d) Goldhill
quad-tree bit-stream
Figure 9. The structure of overhead2.
Figure 11. Test images
M arked im age
m essage
S can im age & data extracting
Q ua-tree bitstream
S hift histogram back Q uad-tree segm atation
(a) Original
b ( x, z x ) overhead Payload form atting
S can im age & data extracting
(b) 1000 bits hidden
no
S hift histogram back A ll of z> 3 ? yes R ecovered original im age
Figure 10. Flowchart of the extracting process.
© 2011 ACADEMY PUBLISHER
(c) 5457 bits hidden
(d) 13279 bits hidden
Figure 12. Original and marked images
We show the results from our proposed and other methods based on histogram shifting in Figures 15 to18. In the figures, P1 stands for our proposed algorithm with one pair maximum point and minimum point used. Similarly, P2 represents our proposed algorithm with two pairs of maximum and minimum points used. N1 is short
JOURNAL OF MULTIMEDIA, VOL. 6, NO. 4, AUGUST 2011
356
(a) Original
(b)1000 bits hidden (a)1000 bits hidden
(c) 5457 bits hidden
(d) 13279 bits hidden
Figure 13. Histograms of original and marked images
for Ni’s method for one pair of maximum and minimum points. N2 is Ni’s method with two pairs of maximum and minimum points. Hwang is the method suggested by Hwang [14]. Kuo is the method suggested by Kuo [16]. We don’t show the results of Chung [15] because it is the same as the results of Ni when we tested it for nature images. The capacities shown in these figures are already subtracted by the sizes of overhead1 and overhead2. Notice that the capacities and PSNRs of P2 are usually better than that of P1 because P1 should shift more blocks than P2 to the same size of embed data. The capacities result from our proposed method is usually more than 16000 bits and PSNRs are larger than 46.5 dB without any compression method.
(b) 5457 bits hidden
(c) 13279 bits hidden
V. CONCLUSIONS
Figure 14. Histograms of pixel differences between the original and the marked images.
This paper proposes to use the quad-tree segmentation for increasing the hiding capacity of the reversible image data hiding scheme that embeds secret data through shifting the histogram of image pixels. The improvement of the proposed algorithm is validated by a theoretical explanation and verified via experiments on a set of natural images. Although Chung’s method [15] that employs dynamic programming approach is good but it needs more execution times and only has significant improvement on the sort of map images. In summary, the proposed algorithm possesses the following advantageous properties: Be able to provide more capacity than other methods. Retain a higher marked image quality at more than one pair of maximum and minim points. Be suitable for most kinds of image.
© 2011 ACADEMY PUBLISHER
Figure 15.Performance comparison for image Lenna.
JOURNAL OF MULTIMEDIA, VOL. 6, NO. 4, AUGUST 2011
357
REFERENCES
Figure 16.Performance comparison for image Baboon.
Figure 17.Performance comparison for image F16.
Figure 18.Performance comparison for image Goldhill.
ACKNOWLEDGMENT This research was supported in part by National Science Council, Taiwan under research grants NSC 1002221-E-150-071.
© 2011 ACADEMY PUBLISHER
[1] W. Zeng, “Digital watermarking and data hiding: technologies and applications,” in Proc. Int. Conf. Inf. Syst. Anal. Synth., vol. 3, pp.223-229,1998. [2] C. W. Honsinger, P. Jones, M. Rabbani and J. C. Stoffel, “Reversible recovery of an original image containing embedded data,” U.S. patent: 6,278,791, 2001. [3] J. Fridrich, M. Goljan and R. Du, “Invertible authentication,” in Proc. Security Watermarking Multimedia Contents, pp. 197-208, 2001. [4] R. Caldelli, F. Filippini, and R. Becarelli, “Reversible watermarking techniques: an overview and a classification,” EURASIP Journal on Information Security, vol. 2010, Article ID 134546, 19 pages, 2010. [5] D. C. Lou, M. C. Hu and J. L. Liu, “Multiple layer data hiding scheme for medical images,” Computer Standards & Interfaces, vol. 31, no. 2, pp. 329-335, 2009. [6] J. Nayak, P. S. Bhat, R. Acharya U and M. S. Kumar, “Efficient storage and transmission of digital fundus images with patient information using reversible watermarking technique and error control codes,” Journal of Medical Systems, vol. 33, no. 3, pp. 163-171, 2009 [7] S. Rohini and V. Bairagi, “Lossless medical image security,” International Journal of Applied Engineering Research, Dindigul, vol. 1, no. 3, pp. 536-541, 2010. [8] J. Tain,“ Reversible data embedding using a difference expansion,” IEEE Transactions on Circuits and Systems for Video Ttechnology, vol. 13, no. 8, pp. 890-896, 2003. [9] A. M. Alattar, “Reversible watermarking using the difference expansion of a generalized integer transform,” IEEE Transactions on Image Processing, vol. 13, no. 8, pp.1147-1156, 2004. [10] D. Coltuc and J. M. Chassery, “High capacity reversible watermarking,” in Proc. IEEE International Conference on Image Processing, pp. 2565-2568, 2006. [11] D. Coltuc and J. M. Chassery, “Very fast watermarking by reversible contrast mapping,” IEEE Signal Processing Letters, vol. 14, no 4, pp. 255-258, 2006. [12] D. M. Thodi and J. J. Rodriguez, “Expansion embedding techniques for reversible watermarking,” IEEE Transactions on Image Processing, vol.16, no. 3, pp.721730, 2007. [13] Z. Ni, Y. Q. Shi, N. Ansari, and W. Su, “Reversible data hiding,” IEEE Transactions on Circuits and Systems Video Technology, vol. 16, no. 3, pp. 354-362, 2006. [14] J. H. Hwang, J. W. Kim, and J. U. Choi, “A reversible watermarking based on histogram shifting,” Lecture Notes in Computer Science, vol. 4283, pp 384-361, 2006. [15] K. L. Chung, Y. H. Huang, W. N. Yang, and Y. C. Hsu, “Capacity maximization for reversible data hiding based on dynamic programming approach,” Applied Mathematics and Computation, vol. 208, no. 1, pp 284-292, 2009. [16] W. C. Kuo, D. J. Jiang, and Y. C. Huang, “A reversible data hiding based on block division,” Congress on Image and Signal Processing, vol. 1, pp 365-369, 2008. Yih-Chuan Lin received the BS degree in Applied Mathematics from the Chinese Culture University, Taipei, Taiwan, in 1990 and the MS and Ph.D. degrees in Electrical Engineering from National Cheng Kung University, Tainan, Taiwan, in 1992 and 1997, respectively. He is currently an associate professor of computer science and information engineering at the National Formosa University. His research interests include computer networks, wireless sensor networks, Internet technology and applications, image/video coding and processing. He is a member of IEEE.
358
Tzung-Shian Li received the B.S. degree in math and M.S. degree in computer science and information engineering from National Formosa University, Yunlin, Taiwan. He is now a
© 2011 ACADEMY PUBLISHER
JOURNAL OF MULTIMEDIA, VOL. 6, NO. 4, AUGUST 2011
Process Engineer in Inotera Memories, Taiwan. His research interests include digital watermarking, image processing, and automatic optical inspection.