1051-8215 (c) 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See
http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI
10.1109/TCSVT.2015.2473235, IEEE Transactions on Circuits and Systems for Video Technology
T-CSVT-9331
two-dimensional DCT to the non-overlapping 8×8 blocks, the
original image data are transformed from the spatial domain to
the frequency domain. The obtained DCT coefficients are then
fed to the quantizer and quantized using the predetermined
quantization table. The quantized DCT coefficients are
arranged in a zigzag scanning order and pre-compressed using
the differential pulse code modulation (DPCM) on direct
current (DC) coefficients and run length encoding (RLE) on
AC coefficients. Finally, the symbol string is Huffman coded
to obtain the final compressed bitstream. After pre-pending the
header, we obtain the final JPEG file.
In the proposed scheme, we only choose to embed message
into AC coefficients (See some explanations to be provided
next). Thus, in the following paragraphs, DPCM on DC
coefficients is neglected and only RLE for AC coefficients is
described in detail.
Fig. 1. Block diagram of JPEG compression process.
The AC coefficients are encoded in a specific RLE format
as intermediate symbols (R/C,V). Here, R ( 0 ≤R ≤15 )
denotes the zero run length (i.e., the number of zero AC
coefficients before the next nonzero AC coefficient), and C
(1 ≤C≤10) denotes the category of the next nonzero AC
coefficients (i.e., the number of bits needed to represent the
amplitude of the next nonzero AC coefficient), which is shown
in Table I. There are 160 combinations of R and C. Each R/C is
encoded with a variable-length code (VLC) from the Huffman
table; the code length ranges from 1 to 16. In addition, because
the run length of zero coefficients may exceed 15, the value
R/C F0H is defined to represent a run length of 15 zero
coefficients followed by a coefficient of zero amplitude (this
can be interpreted as a run length of 16 zero coefficients), and
a special value R/C 00H is used to code the end-of-block
(EOB) when all remaining coefficients in the block are zero,
where “H” implies that “F0” and “00” are hexadecimal
numbers. Thus, there are in total 162 different VLC codes in
the standard Huffman table.
TABLE I
CATEGORIES ASSIGNED TO COEFFICIENT VALUES
Note that all R/C values are encoded with variable-length
Huffman codes, but the V values are not Huffman coded. Each
V value is encoded with a variable-length integer (VLI) code,
whose length in bits is given in the first column of Table I.
They are appended to the Huffman-coded R/C to form the final
JPEG bitstream. For more detail, please refer to the JPEG
guidelines released by International Telecommunication
Union [30].
B. Selection of Coefficients for RDH
Almost all state-of-the-art HS-based RDH algorithms
consist of three steps. The first step is to generate a sequence
with small entropy from the host image, which can be realized
by using the original histogram of the host image directly, the
difference histogram, or the prediction error histogram. The
second step is to divide the obtained histogram into two
regions. One is called the inner region, and the other is called
the outer region. In general, some bins associated with the
peak points are divided into the inner region and the rest of the
bins are divided into the outer region. The third step is to
reversibly embed the message. That is, the bins in the inner
region are expanded to carry data, whereas these in the outer
region are shifted so that the inner and outer regions are still
separate from each other after data hiding. Note that the
expansion and shifting of bins are accomplished by modifying
the corresponding pixel/coefficient values of the host image.
For ease of presentation, in the following discussion, the
pixels/coefficients corresponding to the elements in the inner
region and the outer region are called inner pixels/coefficients
and outer pixels/coefficients, and the modifications made on
the inner and outer pixels/coefficients are called expansion and
shifting, respectively.
For JPEG images, the quantized DCT coefficient histogram
can be easily obtained, and the message can be embedded into
the JPEG images with a (DCT coefficient) histogram shifting
strategy directly. However, because of the de-quantization
process, any modification of the quantized DCT coefficients
may introduce considerable distortion in the spatial domain,
and it may also significantly increase the JPEG file size. In the
following paragraphs, we will present an analysis on which
types of coefficients can be selected for data hiding. For the
ease of explanation, we resort to the standard 512×512 Lena
image with different quality factors in our discussion, which is
the most popularly utilized image for testing the efficiency of
different RDH schemes currently.
1) About DC coefficients
As pointed out by Reininger and Gibson [31], for most of
the JPEG images, the statistics of the DC coefficients are best
approximated by a Gaussian distribution.
The histograms of all quantized DC coefficients of the Lena
image with different quality factors (i.e., QF = 70, 80, 90, 100)
are shown in Fig. 2. As shown, the histograms of DC
Original
Image Data
(8×8 blocks)