# Adaptive PVD Steganography Using Horizontal, Vertical, and Diagonal Edges in Six-Pixel Blocks

Authors: Anita Pradhan; K. Raja Sekhar; Gandharba Swain
Journal: Security and Communication Networks
 (2017)

---

## Abstract

The traditional pixel value differencing (PVD) steganographical schemes are easily detected by pixel difference histogram (PDH) analysis. This problem could be addressed by adding two tricks: (i) utilizing horizontal, vertical, and diagonal edges and (ii) using adaptive quantization ranges. This paper presents an adaptive PVD technique using 6-pixel blocks. There are two variants. The proposed adaptive PVD for2×3-pixel blocks is known as variant 1, and the proposed adaptive PVD for 3×2-pixel blocks is known as variant 2. For every block in variant 1, the four corner pixels are used to hide data bits using the middle column pixels for detecting the horizontal and diagonal edges. Similarly, for every block in variant 2, the four corner pixels are used to hide data bits using the middle row pixels for detecting the vertical and diagonal edges. The quantization ranges are adaptive and are calculated using the correlation of the two middle column/row pixels with the four corner pixels. The technique performs better as compared to the existing adaptive PVD techniques by possessing higher hiding capacity and lesser distortion. Furthermore, it has been proven that the PDH steganalysis and RS steganalysis cannot detect this proposed technique.


---

## Body

## 1. Introduction

In image steganography techniques, the images are used for covert communication [1]. Since we hide the artificial message inside an image, the image statistics change, so the goal is to minimize this change [2]. Least significant bit (LSB) substitution methods are the age-old methods of image steganography, wherein the LSB bits of a pixel are substituted by secret data bits. This LSB steganography can very easily be detected by RS analysis. Wu and Tsai [3] discovered the fact that the edge regions in an image can conceal more amount of data as compared to the smooth regions. Based on this principle, they proposed pixel value differencing (PVD) steganography. The image should be partitioned into different blocks, each of size of 1×2. For a block, the difference between the two pixels is computed and changed to a new value by hiding data in it. The PVD technique with block size of 2×2 has been proposed to enhance the embedding capacity [4, 5]. Chang and Tseng [6] considered the values of 2, 3, and 4 neighboring pixels to calculate the pixel value differences. But they did not address the FIEP problem, which was resolved in [7]. To achieve higher embedding capacity, Swain [8] proposed PVD steganography considering the maximum difference out of all the differences calculated with all the neighbors. LSB substitution techniques offer higher embedding capacity, but PVD techniques offer higher imperceptibility. Thus, PVD and LSB techniques have been combined to obtain larger hiding capacity and better imperceptibility [9, 10]. Tseng and Leng also proposed one PVD steganography in blocks of size of 1×2 based on the concept of perfect square in the range table [11].The traditional PVD steganography techniques [3–5] follow a static range table. Due to this, some undesired steps are introduced in pixel difference histograms of the stego images. These step effects can be avoided by applying two tricks: (i) exploiting horizontal, vertical, and diagonal edges and (ii) using adaptive range table. Luo et al. [12] also proposed an adaptive PVD steganography with three-pixel blocks, which does not suffer from the step effects. Swain [13] proposed two PVD steganography techniques using vertical, horizontal, and diagonal edges, which do not suffer from step effects. The first technique uses pixel blocks of size of 2×2 and the second technique uses pixel blocks of size of 3×3. Balasubramanian et al. [14] and Pradhan et al. [15] have proposed PVD schemes with 3×3 size pixel blocks to achieve higher hiding capacity. Chen [16] proposed a PVD steganography using two reference tables to randomize the data embedding. To improve upon the security, Wang et al. [17] have proposed a different type of PVD steganography. They used modulus function to modify the remainder of a pair of pixels instead of their difference. Lee et al. [18] observed that this technique is also suffering from step effects. So they proposed some improved way to avoid these step effects. Based on pixel value differences, adaptive LSB substitution has been performed in [19, 20]. Nguyen et al. [21] used more than one bit planes and pixel block complexity measure to perform adaptive embedding. In this method, the high textured regions carry more number of bits and low textured regions carry less number of bits. In general, adaptive image steganography schemes possess lower embedding capacity. The edges can be predicted by some prediction functions and hiding capacity depends upon this prediction. Smooth regions cannot hide more number of bits. Based on the level of complexity of the edge regions, adaptive embedding can be applied [22]. Capacity is increased and chance of detection is decreased. To prevent the detection from pixel difference histogram (PDH) analysis, multidirectional edges have been exploited in [15]. A combination of LSB substitution and PVD against RS analysis has been proposed in [23] and a technique based on group of bits substitution against PDH analysis has been proposed in [24]. Compression and encryption techniques can be used with steganography in various ways to add additional measures. In [25], the steganography algorithm uses a public key and a private key to generate pseudorandom numbers that identify the embedding locations.Being motivated by Luo et al.’s [12] and Swain’s [13] adaptive PVD techniques, an adaptive PVD technique with two variants has been proposed using 6-pixel blocks. The number of conditions used for range detection is lesser as compared to Luo et al.’s [12] and Swain’s [13] adaptive PVD techniques. The hiding capacity and PSNR have been improved.


## 2. The Proposed Adaptive PVD Technique with 2 × 3-Pixel Blocks

### 2.1. The Embedding and Extraction Procedures

The data embedding is performed by traversing the image in raster scan order and splitting the image into blocks of size of 2×3 pixels. A sample block is given in Figure 1(a). The four corner pixels, g1, g2, g3, and g4, are used to hide confidential message bits, based on the two centre pixels gu and gb. The embedding scheme is narrated in the following steps.Figure 1
(a) The original block. (b) The stego block.
(a)
(b)Step 1.
Fori=1,2,3,4, eight difference values, diu=gi-gu and dib=gi-gb, are calculated.Step 2.
Fori=1,2,3,4, for target pixel gi, the lower and upper bounds of the range, li and ui, respectively, are calculated based on the four cases narrated below.
Case  1. If diu>0 and  dib > 0, then li=max⁡gu+1,gb+1 and ui=255.
Case  2. If diu≤0 and  dib≤0, then li=0 and ui=min⁡gu,gb.
The termmin⁡a,b is a function to find the minimum of two values a and b.
Case  3. If diu>0 and  dib≤0, then li=gu+1 and ui=gb.
Case  4. If diu≤0 and  dib>0, then li=gb+1 and ui=gu.
Thus, four sets of lower and upper bounds, (i)l1 and u1 for g1, (ii) l2 and u2 for g2, (iii) l3 and u3 for g3, and (iv) l4 and u4 for g4, are calculated.Step 3.
Fori=1,2,3,4, ni should be the embedding length in gi. It is estimated by the following equation: (1)ni=min⁡floorlog2⁡ui-li+1,3.In (1), floor is a function to find the lower integer of its floating point argument. For example, floor (3.4)=3.Step 4.
Fori=1,2,3,4, ni bits of secret data are taken and converted to decimal equivalents, bi. After hiding bi in gi, the new value gi′ is calculated as follows:(2)gi′=argmine⁡e-gi∣e-gu≡bimod2ni,e∈li,ui.It means, for the original pixel gi, the stego pixel gi′ is a value e chosen from the range li,ui such that it satisfies the following conditions: (i) (e-gu-bi)mod2ni=0 and (ii) e-gi is minimum. Thus the stego-pixel block of size of 2×3 is shown in Figure 1(b).The data extraction can be performed by traversing the stego image in raster scan fashion and partitioning it into blocks of sizes of 2×3. Figure 1(b) is an example of a 2×3-stego-pixel block. Data is to be extracted from the pixels g1′, g2′, g3′, and g4′ using the following steps.Step 1.
Fori=1,2,3,4, the eight difference values, diu=gi′-gu and dib=(gi′-gb), are calculated.Step 2.
Fori=1,2,3,4, assume that lower bounds and upper bounds of the ranges for the four corner pixels are li and ui. These are calculated using Step  2 of embedding procedure.Step 3.
The embedding length,ni, is calculated using the equation in Step  3 of embedding procedure.Step 4.
Fori=1,2,3,4, the decimal equivalent of the binary data to be extracted from gi′ is bi. This is calculated using (3). Finally each bi is converted to ni, binary bits.(3)bi≡gi′-gumod2ni.Equation (3) means that, out of the list of values of bi, those satisfying the condition ((bi-|gi′-gu|)mod2ni)=0, the smallest one should be chosen to be the final value of bi.


### 2.2. Flow Charts for Embedding and Extraction Procedures

The image is traversed in raster scan order and splitted into nonoverlapped blocks of size of2×3 pixels. The flow chart in Figure 2 represents embedding into a block.Figure 2
Flow chart for embedding into a2×3-pixel block.The flow chart in Figure3 represents the retrieval of secret binary data from a 2×3-pixel block.Figure 3
Flow chart for extraction of secret data from a2×3-pixel block.


### 2.3. Examples of Embedding and Extraction Procedures

An example of embedding is described below. Figure 4(a) is a sample block. Here g1=98, gu=100, g2=98, g3=102, gb=102, and g4=104.Figure 4
(a) An original sample block and (b) the stego sample block.
(a)
(b)Step 1.
Eight difference values are given as follows:(4)d1u=g1-gu=98-100=-2,d1b=g1-gb=98-102=-4,d2u=g2-gu=98-100=-2,d2b=g2-gb=98-102=-4,d3u=g3-gu=102-100=2,d3b=g3-gb=102-102=0,d4u=g4-gu=104-100=4,d4b=g4-gb=104-102=2.Step 2.
Now let us find out the lower and upper boundsli and ui for i = 1, 2, 3, and 4: d1u≤0 and d1b≤0. Case  2 is satisfied. Hence, l1=0 and u1=min⁡gu,gb=100.d2u≤0 and d2b≤0. Case  2 is satisfied. Hence, l2=0 and u2=min⁡(gu,gb)=100.d3u>0 and d3b≤0. Case  3 is satisfied. Hence, l3=gu+1=101 and u3=gb=102.d4u>0 and d4b>0. Case  1 is satisfied. Hence, l4=max⁡gu+1,gb+1=103 and u4=255.Step 3.
(5)
n
1
=
min
⁡
f
l
o
o
r
log
2
⁡
u
1
-
l
1
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
100
-
0
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
101
,
3
=
min
⁡
6,3
=
3
,
n
2
=
min
⁡
f
l
o
o
r
log
2
⁡
u
2
-
l
2
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
100
-
0
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
101
,
3
=
min
⁡
6,3
=
3
,
n
3
=
min
⁡
f
l
o
o
r
log
2
⁡
u
3
-
l
3
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
102
-
101
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
102
-
101
+
1
,
3
=
min
⁡
1,3
=
1
,
n
4
=
min
⁡
f
l
o
o
r
log
2
⁡
u
4
-
l
4
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
255
-
103
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
255
-
103
+
1
,
3
=
min
⁡
7,3
=
3
.Step 4.
Suppose that the secret data stream is10110011110011⋯. Take n1, that is, 3 bits of data from the secret data stream and convert to its decimal value b1. Thus, b1 is 5. Similarly, take n2, n3, and n4 bits of data from the secret data stream and convert to decimal values b2,b3, and b4, respectively. Thus, b2, b3, and b4 values are 4, 1, and 7, respectively.Now calculateg1′ as follows:(6)g1′=argmine⁡e-g1∣e-gu≡b1mod2n1,e∈l1,u1;that is,(7)g1′=argmine⁡e-98∣e-100≡5mod23,e∈0,100.It means that (e-100-5)mod23=0 for e∈[7,15,23,31,39,47,55,63,71,79,87,95] and g1′ should be chosen as one of the values from this list subject to the condition that e-98 is minimum. Thus, g1′ is 95.Calculateg2′ as follows:(8)g2′=argmine⁡e-g2∣e-gu≡b2mod2n2,e∈l2,u2;that is,(9)g2′=argmine⁡e-98∣e-100≡4mod23,e∈0,100.It means that (e-100-4)mod23=0 for e∈[8,16,24,32,40,48,56,64,72,80,88,96] and g2′ should be chosen as one of the values from this list subject to the condition that e-98 is minimum. Thus, g2′ is 96.Calculateg3′ as follows:(10)g3′=argmine⁡e-g3∣e-gu≡b3mod2n3,e∈l3,u3;that is,(11)g3′=argmine⁡e-102∣e-100≡1mod21,e∈101,102.It means that (e-100-1)mod21=0 for e∈[101,102] and g3′ should be chosen as one of the values from this list subject to the condition that e-102 is minimum. Thus, g3′ is 101.Calculateg4′ as follows:(12)g4′=argmine⁡e-g4∣e-gu≡b4mod2n4,e∈l4,u4;that is,(13)g4′=argmine⁡e-104∣e-100≡7mod23,e∈103,255.It means that (e-100-7)mod23=0 for e∈[107,115,123,131,…,227,235,243,251] and g4′ should be chosen as one of the values from this list subject to the condition that e-104 is minimum. Thus, g4′ is 107.Thus the stego block is as shown in Figure4(b).An example of extraction is as described below. Let us extract the embedded data from the stego block shown in Figure 4(b). Here g1′=95, gu=100, g2′=96, g3′=101, gb=102, and g4′=107.Step 1.
Eight difference values are given as follows:(14)d1u=g1′-gu=95-100=-5,d1b=g1′-gb=95-102=-7,d2u=g2′-gu=96-100=-4,d2b=g2′-gb=96-102=-8,d3u=g3′-gu=101-100=1,d3b=g3′-gb=101-102=-1,d4u=g4′-gu=107-100=7,d4b=g4′-gb=107-102=5.Step 2.
Now let us find out the lower and upper boundsli and ui for i=1,2,3, and 4:d1u≤0 and d1b≤0. Case  2 is satisfied. Hence, l1=0 and u1=min⁡gu,gb=100.d2u≤0 and d2b≤0. Case  2 is satisfied. Hence, l2=0 and u2=min⁡gu,gb=100.d3u>0 and d3b≤0. Case  3 is satisfied. Hence, l3=gu+1=101 and u3=gb=102.d4u>0 and d4b>0. Case  1 is satisfied. Hence, l4=max⁡gu+1,gb+1=103 and u4=255.Step 3.
(15)
n
1
=
min
⁡
f
l
o
o
r
log
2
⁡
u
1
-
l
1
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
100
-
0
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
101
,
3
=
min
⁡
6,3
=
3
,
n
2
=
min
⁡
f
l
o
o
r
log
2
⁡
u
2
-
l
2
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
100
-
0
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
101
,
3
=
min
⁡
6,3
=
3
,
n
3
=
min
⁡
f
l
o
o
r
log
2
⁡
u
3
-
l
3
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
102
-
101
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
102
-
101
+
1
,
3
=
min
⁡
1,3
=
1
,
n
4
=
min
⁡
f
l
o
o
r
log
2
⁡
u
4
-
l
4
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
255
-
103
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
255
-
103
+
1
,
3
=
min
⁡
7,3
=
3
.Step 4.
Fori=1,2,3,4, the decimal equivalent of the binary data to be extracted from gi′ is bi. That means b1 is extracted from g1′, b2 is extracted from g2′, b3 is extracted from g3′, and b4 is extracted from g4′. It is performed as follows.(16)b1≡g1′-gumod2n1;that is,(17)b1≡95-100mod23.It means that (b1-95-100)mod23=0.
(
b
1
-
5
)
m
o
d
8
=
0 implies that minimum value of b1 is 5. This b1 is converted to n1 binary bits. That means 5 is converted to 3 binary bits as 1012. (18)b2≡g2′-gumod2n2;that is,(19)b2≡96-100mod23.It means that (b2-96-100)mod23=0.
(
b
2
-
4
)
m
o
d
8
=
0 implies that minimum value of b2 is 4. This b2 is converted to n2 binary bits. That means 4 is converted to 3 binary bits as 1002.(20)b3≡g3′-gumod2n3;that is,(21)b3≡101-100mod23.It means that b3-101-100mod23=0.
(
b
3
-
1
)
m
o
d
8
=
0 implies that minimum value of b3 is 1. This b3 is converted to n3 binary bits. That means 1 is converted to a single binary bit. It is 12. (22)b4≡g4′-gumod2n4;that is,(23)b4≡107-100mod23.It means that b4-107-100mod23=0.
(
b
4
-
7
)
m
o
d
8
=
0 implies that minimum value of b4 is 7. This b4 is converted to n4 binary bits. That means 7 is converted to 3 binary bits as 1112.
Thus the extracted bits are1011001111. These are the embedded bits.


## 2.1. The Embedding and Extraction Procedures

The data embedding is performed by traversing the image in raster scan order and splitting the image into blocks of size of 2×3 pixels. A sample block is given in Figure 1(a). The four corner pixels, g1, g2, g3, and g4, are used to hide confidential message bits, based on the two centre pixels gu and gb. The embedding scheme is narrated in the following steps.Figure 1
(a) The original block. (b) The stego block.
(a)
(b)Step 1.
Fori=1,2,3,4, eight difference values, diu=gi-gu and dib=gi-gb, are calculated.Step 2.
Fori=1,2,3,4, for target pixel gi, the lower and upper bounds of the range, li and ui, respectively, are calculated based on the four cases narrated below.
Case  1. If diu>0 and  dib > 0, then li=max⁡gu+1,gb+1 and ui=255.
Case  2. If diu≤0 and  dib≤0, then li=0 and ui=min⁡gu,gb.
The termmin⁡a,b is a function to find the minimum of two values a and b.
Case  3. If diu>0 and  dib≤0, then li=gu+1 and ui=gb.
Case  4. If diu≤0 and  dib>0, then li=gb+1 and ui=gu.
Thus, four sets of lower and upper bounds, (i)l1 and u1 for g1, (ii) l2 and u2 for g2, (iii) l3 and u3 for g3, and (iv) l4 and u4 for g4, are calculated.Step 3.
Fori=1,2,3,4, ni should be the embedding length in gi. It is estimated by the following equation: (1)ni=min⁡floorlog2⁡ui-li+1,3.In (1), floor is a function to find the lower integer of its floating point argument. For example, floor (3.4)=3.Step 4.
Fori=1,2,3,4, ni bits of secret data are taken and converted to decimal equivalents, bi. After hiding bi in gi, the new value gi′ is calculated as follows:(2)gi′=argmine⁡e-gi∣e-gu≡bimod2ni,e∈li,ui.It means, for the original pixel gi, the stego pixel gi′ is a value e chosen from the range li,ui such that it satisfies the following conditions: (i) (e-gu-bi)mod2ni=0 and (ii) e-gi is minimum. Thus the stego-pixel block of size of 2×3 is shown in Figure 1(b).The data extraction can be performed by traversing the stego image in raster scan fashion and partitioning it into blocks of sizes of 2×3. Figure 1(b) is an example of a 2×3-stego-pixel block. Data is to be extracted from the pixels g1′, g2′, g3′, and g4′ using the following steps.Step 1.
Fori=1,2,3,4, the eight difference values, diu=gi′-gu and dib=(gi′-gb), are calculated.Step 2.
Fori=1,2,3,4, assume that lower bounds and upper bounds of the ranges for the four corner pixels are li and ui. These are calculated using Step  2 of embedding procedure.Step 3.
The embedding length,ni, is calculated using the equation in Step  3 of embedding procedure.Step 4.
Fori=1,2,3,4, the decimal equivalent of the binary data to be extracted from gi′ is bi. This is calculated using (3). Finally each bi is converted to ni, binary bits.(3)bi≡gi′-gumod2ni.Equation (3) means that, out of the list of values of bi, those satisfying the condition ((bi-|gi′-gu|)mod2ni)=0, the smallest one should be chosen to be the final value of bi.


## 2.2. Flow Charts for Embedding and Extraction Procedures

The image is traversed in raster scan order and splitted into nonoverlapped blocks of size of2×3 pixels. The flow chart in Figure 2 represents embedding into a block.Figure 2
Flow chart for embedding into a2×3-pixel block.The flow chart in Figure3 represents the retrieval of secret binary data from a 2×3-pixel block.Figure 3
Flow chart for extraction of secret data from a2×3-pixel block.


## 2.3. Examples of Embedding and Extraction Procedures

An example of embedding is described below. Figure 4(a) is a sample block. Here g1=98, gu=100, g2=98, g3=102, gb=102, and g4=104.Figure 4
(a) An original sample block and (b) the stego sample block.
(a)
(b)Step 1.
Eight difference values are given as follows:(4)d1u=g1-gu=98-100=-2,d1b=g1-gb=98-102=-4,d2u=g2-gu=98-100=-2,d2b=g2-gb=98-102=-4,d3u=g3-gu=102-100=2,d3b=g3-gb=102-102=0,d4u=g4-gu=104-100=4,d4b=g4-gb=104-102=2.Step 2.
Now let us find out the lower and upper boundsli and ui for i = 1, 2, 3, and 4: d1u≤0 and d1b≤0. Case  2 is satisfied. Hence, l1=0 and u1=min⁡gu,gb=100.d2u≤0 and d2b≤0. Case  2 is satisfied. Hence, l2=0 and u2=min⁡(gu,gb)=100.d3u>0 and d3b≤0. Case  3 is satisfied. Hence, l3=gu+1=101 and u3=gb=102.d4u>0 and d4b>0. Case  1 is satisfied. Hence, l4=max⁡gu+1,gb+1=103 and u4=255.Step 3.
(5)
n
1
=
min
⁡
f
l
o
o
r
log
2
⁡
u
1
-
l
1
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
100
-
0
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
101
,
3
=
min
⁡
6,3
=
3
,
n
2
=
min
⁡
f
l
o
o
r
log
2
⁡
u
2
-
l
2
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
100
-
0
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
101
,
3
=
min
⁡
6,3
=
3
,
n
3
=
min
⁡
f
l
o
o
r
log
2
⁡
u
3
-
l
3
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
102
-
101
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
102
-
101
+
1
,
3
=
min
⁡
1,3
=
1
,
n
4
=
min
⁡
f
l
o
o
r
log
2
⁡
u
4
-
l
4
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
255
-
103
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
255
-
103
+
1
,
3
=
min
⁡
7,3
=
3
.Step 4.
Suppose that the secret data stream is10110011110011⋯. Take n1, that is, 3 bits of data from the secret data stream and convert to its decimal value b1. Thus, b1 is 5. Similarly, take n2, n3, and n4 bits of data from the secret data stream and convert to decimal values b2,b3, and b4, respectively. Thus, b2, b3, and b4 values are 4, 1, and 7, respectively.Now calculateg1′ as follows:(6)g1′=argmine⁡e-g1∣e-gu≡b1mod2n1,e∈l1,u1;that is,(7)g1′=argmine⁡e-98∣e-100≡5mod23,e∈0,100.It means that (e-100-5)mod23=0 for e∈[7,15,23,31,39,47,55,63,71,79,87,95] and g1′ should be chosen as one of the values from this list subject to the condition that e-98 is minimum. Thus, g1′ is 95.Calculateg2′ as follows:(8)g2′=argmine⁡e-g2∣e-gu≡b2mod2n2,e∈l2,u2;that is,(9)g2′=argmine⁡e-98∣e-100≡4mod23,e∈0,100.It means that (e-100-4)mod23=0 for e∈[8,16,24,32,40,48,56,64,72,80,88,96] and g2′ should be chosen as one of the values from this list subject to the condition that e-98 is minimum. Thus, g2′ is 96.Calculateg3′ as follows:(10)g3′=argmine⁡e-g3∣e-gu≡b3mod2n3,e∈l3,u3;that is,(11)g3′=argmine⁡e-102∣e-100≡1mod21,e∈101,102.It means that (e-100-1)mod21=0 for e∈[101,102] and g3′ should be chosen as one of the values from this list subject to the condition that e-102 is minimum. Thus, g3′ is 101.Calculateg4′ as follows:(12)g4′=argmine⁡e-g4∣e-gu≡b4mod2n4,e∈l4,u4;that is,(13)g4′=argmine⁡e-104∣e-100≡7mod23,e∈103,255.It means that (e-100-7)mod23=0 for e∈[107,115,123,131,…,227,235,243,251] and g4′ should be chosen as one of the values from this list subject to the condition that e-104 is minimum. Thus, g4′ is 107.Thus the stego block is as shown in Figure4(b).An example of extraction is as described below. Let us extract the embedded data from the stego block shown in Figure 4(b). Here g1′=95, gu=100, g2′=96, g3′=101, gb=102, and g4′=107.Step 1.
Eight difference values are given as follows:(14)d1u=g1′-gu=95-100=-5,d1b=g1′-gb=95-102=-7,d2u=g2′-gu=96-100=-4,d2b=g2′-gb=96-102=-8,d3u=g3′-gu=101-100=1,d3b=g3′-gb=101-102=-1,d4u=g4′-gu=107-100=7,d4b=g4′-gb=107-102=5.Step 2.
Now let us find out the lower and upper boundsli and ui for i=1,2,3, and 4:d1u≤0 and d1b≤0. Case  2 is satisfied. Hence, l1=0 and u1=min⁡gu,gb=100.d2u≤0 and d2b≤0. Case  2 is satisfied. Hence, l2=0 and u2=min⁡gu,gb=100.d3u>0 and d3b≤0. Case  3 is satisfied. Hence, l3=gu+1=101 and u3=gb=102.d4u>0 and d4b>0. Case  1 is satisfied. Hence, l4=max⁡gu+1,gb+1=103 and u4=255.Step 3.
(15)
n
1
=
min
⁡
f
l
o
o
r
log
2
⁡
u
1
-
l
1
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
100
-
0
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
101
,
3
=
min
⁡
6,3
=
3
,
n
2
=
min
⁡
f
l
o
o
r
log
2
⁡
u
2
-
l
2
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
100
-
0
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
101
,
3
=
min
⁡
6,3
=
3
,
n
3
=
min
⁡
f
l
o
o
r
log
2
⁡
u
3
-
l
3
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
102
-
101
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
102
-
101
+
1
,
3
=
min
⁡
1,3
=
1
,
n
4
=
min
⁡
f
l
o
o
r
log
2
⁡
u
4
-
l
4
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
255
-
103
+
1
,
3
=
min
⁡
f
l
o
o
r
log
2
⁡
255
-
103
+
1
,
3
=
min
⁡
7,3
=
3
.Step 4.
Fori=1,2,3,4, the decimal equivalent of the binary data to be extracted from gi′ is bi. That means b1 is extracted from g1′, b2 is extracted from g2′, b3 is extracted from g3′, and b4 is extracted from g4′. It is performed as follows.(16)b1≡g1′-gumod2n1;that is,(17)b1≡95-100mod23.It means that (b1-95-100)mod23=0.
(
b
1
-
5
)
m
o
d
8
=
0 implies that minimum value of b1 is 5. This b1 is converted to n1 binary bits. That means 5 is converted to 3 binary bits as 1012. (18)b2≡g2′-gumod2n2;that is,(19)b2≡96-100mod23.It means that (b2-96-100)mod23=0.
(
b
2
-
4
)
m
o
d
8
=
0 implies that minimum value of b2 is 4. This b2 is converted to n2 binary bits. That means 4 is converted to 3 binary bits as 1002.(20)b3≡g3′-gumod2n3;that is,(21)b3≡101-100mod23.It means that b3-101-100mod23=0.
(
b
3
-
1
)
m
o
d
8
=
0 implies that minimum value of b3 is 1. This b3 is converted to n3 binary bits. That means 1 is converted to a single binary bit. It is 12. (22)b4≡g4′-gumod2n4;that is,(23)b4≡107-100mod23.It means that b4-107-100mod23=0.
(
b
4
-
7
)
m
o
d
8
=
0 implies that minimum value of b4 is 7. This b4 is converted to n4 binary bits. That means 7 is converted to 3 binary bits as 1112.
Thus the extracted bits are1011001111. These are the embedded bits.


## 3. The Proposed Adaptive PVD Technique with 3 × 2-Pixel Blocks

The data embedding is performed by traversing the image in raster scan order and splitting the image into blocks of size of 3 × 2 pixels. A sample block is given in Figure5(a). The four corner pixels, g1, g2, g3, and g4, are used to hide confidential message bits, based on the two centre pixels gL and gr. The embedding scheme is narrated in the steps below.Figure 5
(a) The original block. (b) The stego block.
(a)
(b)Step 1.
Fori=1,2,3,4, eight difference values, diL=(gi-gL) and dir=(gi-gr), are calculated.Step 2.
Fori=1,2,3,4, for target pixel gi, the lower and upper bounds of the range, li and ui, respectively, are calculated based on the four cases narrated below.
Case  1. If diL>0 and  dir>0, then li=max⁡gL+1,gr+1 and ui=255.
Case  2. If diL≤0 and  dir≤0, then li=0 and ui=min⁡gL,gr.
Case  3. If diL>0 and  dir≤0, then li=gL+1 and ui=gr.
Case  4. If diL≤0 and  dir>0, then li=gr+1 and ui=gL.
Thus four sets of lower and upper bounds, (i)l1 and u1 for g1, (ii) l2 and u2 for g2, (iii) l3 and u3 for g3, and (iv) l4 and u4 for g4, are calculated.Step 3.
Fori=1,2,3,4, the embedding length in gi is ni. It is estimated by (24). The term min⁡(a,b) is a function to find the minimum of two values a and b.(24)ni=min⁡floorlog2⁡ui-li+1,3.Step 4.
Fori=1,2,3,4, the ni bits of secret data are taken and converted to decimal equivalents, bi. After hiding bi in gi, the new value gi′ is calculated as follows:(25)gi′=argmine⁡e-gi∣e-gL≡bimod2ni,e∈li,ui.Thus the stego-pixel block of size of 3×2 is as given in Figure 5(b).The data extraction can be performed by traversing the stego image in raster scan fashion and partitioning into blocks of sizes of3×2. Figure 5(b) is an example of a 3×2-stego-pixel block. Data is to be extracted from the pixels g1′, g2′, g3′, and g4′ using the following steps.Step 1.
Fori=1,2,3,4, the eight difference values, diL=(gi′-gL) and dir=(gi′-gr), are calculated.Step 2.
Fori=1,2,3,4, assume that lower bounds and upper bounds of the ranges for the four corner pixels are li and ui. These are calculated using Step  2 of embedding procedure.Step 3.
The embedding length,ni, is calculated using the equation in Step  3 of the embedding procedure.Step 4.
Fori=1,2,3,4, the decimal equivalent of the binary data to be extracted from gi′ is bi. This is calculated using (26). Finally, each bi is converted to ni binary bits.(26)bi≡gi′-gLmod2ni.


## 4. Experimental Results and Discussion

MATLAB is used for simulating this technique. The tested images are collected from SIPI database. Figure6 represents some original sample images. Figures 7 and 8 show their respective stego images. The embedding length in each of these stego images is 140000 (one lakh and forty thousand) bits. The stego images are as good as the original images.Figure 6
The original images.
(a)
Lena
(b)
Baboon
(c)
Peppers
(d)
JetFigure 7
The stego images for adaptive PVD technique in2×3-pixel blocks (variant 1).
(a)
(b)
(c)
(d)Figure 8
The stego images for adaptive PVD technique in3×2-pixel blocks (variant 2).
(a)
(b)
(c)
(d)The proposed adaptive PVD schemes are compared with the adaptive PVD techniques in [12, 13]. There are three parameters considered for comparison. The first parameter is peak signal-to-noise ratio (PSNR). It is an estimation of distortion in the stego image. Higher value of PSNR implies lesser amount of distortion. The PSNR is calculated in terms of mean square error (MSE). Equations (27) and (28) represent the calculations for MSE and PSNR, respectively:(27)MSE=1m×n∑i=1m∑j=1npij-qij2,(28)PSNR=10×log10255×255MSE.The second parameter is hiding capacity. It is the maximum amount of information that can be concealed in the stego image, represented in bits. It can also be represented as bits per byte (BPB). This BPB is often termed as bit rate; it is calculated as in (29). It is used to express the hiding capacity per a byte of the image [13]: (29)BPB=MaximumhidingcapacityinbitsImagesizeinbytes.The third parameter, quality index (Q), is a measure of equivalence between two images. It is evaluated by (30). If the two images are exactly the same, then quality index is 1. (30)Q=4σxyp-q-σx2+σy2p-2+q-2.The terms used in (28) are as follows. The terms p- and q- are the mean pixel value of the original image and stego image, respectively. The terms σx2 and σy2 are the standard deviation for the original image and stego image, respectively. The term σxy is the covariance. The estimation of all these symbols is done using (31), (32), (33), (34), and (35), respectively:(31)p-=1m×n∑i=1m∑j=1npij,(32)q-=1m×n∑i=1m∑j=1nqij,(33)σx2=1m×n-1∑i=1m∑j=1npij-p-2,(34)σy2=1m×n-1∑i=1m∑j=1nqij-q-2,(35)σxy=1m×n-1∑i=1m∑j=1npij-p-qij-q-.Looking at the last rows in Tables 1 and 2, the average over the results of seven sample images is given. It can be noticed that both the capacity and PSNR of the proposed techniques are improved over the existing techniques proposed in [12, 13].Table 1
Results of existing techniques.
Images512 × 512
Swain’s 2 × 2-pixel block adaptive PVD [13]
Luo et al.’s 1 × 3-pixel block adaptive PVD [12]
PSNR
Capacity
Q
BPB
PSNR
Capacity
Q
BPB
Lena
45.04
1341191
0.999
1.70
48.79
229037
0.999
0.29
Baboon
47.13
1489945
0.999
1.89
48.03
611197
0.999
0.77
Peppers
45.73
1350251
0.999
1.71
48.32
264058
0.999
0.33
Jet
44.86
1267690
0.999
1.61
48.76
145755
0.999
0.18
Boat
46.08
1424967
0.999
1.81
48.20
389588
0.999
0.49
House
43.58
1339985
0.999
1.70
48.41
259413
0.999
0.32
Tiffany
45.23
1341498
0.999
1.70
48.70
165873
0.999
0.21
Average
45.37
1365075
0.999
1.61
48.45
294988
0.999
0.37Table 2
Results of proposed technique.
Images512 × 512
Proposed 2 × 3-pixel block adaptive PVD
Proposed 3 × 2-pixel block adaptive PVD
PSNR
Capacity
Q
BPB
PSNR
Capacity
Q
BPB
Lena
50.89
1445784
0.999
1.83
50.61
1425521
0.999
1.81
Baboon
52.29
1532417
0.999
1.94
52.36
1527208
0.999
1.94
Peppers
51.29
1418101
0.999
1.80
51.22
1409621
0.999
1.79
Jet
50.65
1381432
0.999
1.75
50.77
1362765
0.999
1.73
Boat
51.42
1479835
0.999
1.88
51.43
1474106
0.999
1.88
House
49.09
1431346
0.999
1.82
49.18
1429845
0.999
1.82
Tiffany
50.88
1430606
0.999
1.81
50.95
1420300
0.999
1.81
Average
50.93
1445645
0.999
1.83
50.93
1435623
0.999
1.82The security of our proposed technique is evaluated by tools like (i) RS steganalysis and (ii) PDH steganalysis. The RS steganalysis graphs of Lena, Baboon, Peppers, and Jet images are represented in Figures9 and 10 for proposed variant 1 and variant 2, respectively. In all the cases, graphs for Rm and R-m are linear and very near to each other. Similarly, the graphs for Sm and S-m are linear and close to each other. Hence, the relation Rm≅R-m>Sm≅S-m is valid. So we can conclude that the proposed technique cannot be detected by RS analysis.Figure 9
RS analysis of proposed variant 1 for four Images.Figure 10
RS analysis of proposed variant 2 for four Images.Figures11 and 12 represent the PDH analysis for Lena, Baboon, Peppers, and Jet images for proposed variant 1 and variant 2, respectively. In all these eight graphs, the solid line curve is for original image and the dotted line curve is for stego image. We can verify that there are no step effects in the curves of the stego images. This proves that the technique could not be detected by pixel difference histogram analysis.Figure 11
PDH analysis for four images (variant 1).Figure 12
PDH analysis for four images (variant 2).


## 5. Conclusion

The PVD steganography techniques are well known for higher imperceptibility. But for the traditional PVD steganography techniques, the pixel difference histograms show some step effects. This problem has been addressed by using two tricks: (i) exploiting vertical, horizontal, and diagonal edges and (ii) using adaptive quantization ranges. In both proposed variants, the four corner pixels are used to hide data bits and the two middle row/column pixels are used to detect the edges. The quantization ranges are adaptive and are calculated using correlation of the middle pixels with the four corner pixels. From the observations, it is evident that this proposed technique achieves higher embedding length and lesser distortion as compared to that of Luo et al.’s and Swain’s adaptive PVD techniques. Furthermore, it has been experimentally proven that the RS steganalysis and pixel difference histogram steganalysis cannot detect this proposed technique.



---

*Source: 1924618-2017-08-02.xml*