**Journal of Software Engineering and Applications**

Vol.10 No.01(2017), Article ID:73784,22 pages

10.4236/jsea.2017.101004

Block-Based Steganographic Algorithm Using Modulus Function and Pixel-Value Differencing

Ahlam K. Al-Dhamari^{1}, Khalid A. Darabkh^{2 }

^{1}Computer Engineering Department, Hodeidah University, Hodeidah, Yemen

^{2}Computer Engineering Deartment, The University of Jordan, Amman, Jordan

Copyright © 2017 by authors and Scientific Research Publishing Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).

http://creativecommons.org/licenses/by/4.0/

Received: December 19, 2016; Accepted: January 20, 2017; Published: January 24, 2017

ABSTRACT

The main purpose in developing the steganographic algorithms lies in achiev- ing most of the steganographic objectives which comprise the embedding capacity, imperceptibility, security, robustness and complexity. In this paper, we propose a high quality steganographic algorithm using new block structure which makes a good use of both modulus function and pixel-value differencing, namely, MF-PVD. We have made many experiments with various test images from several galleries, such as USC-SIPI and UWATERLOO-LINK. The performance of our proposed algorithm is verified using three different performance metrics which include peak signal-to-noise ratio (PSNR), structural similarity index measure (SSIM), and embedding capacity (EC). Experimental results and comparisons with six pertinent state-of-art algorithms are given to prove the validation and efficiency of the proposed algorithm.

**Keywords:**

Data Hiding, Steganography, Watermarking, Pixel-Value Differencing, Modulus Function, Performance Metrics

1. Introduction

Nowadays, digital communications become an essential part of our daily life [1] [2] [3] [4] [5] . A lot of applications are based on the Internet and in some cases it is required that communication have to be secret. The wide proliferation of the Internet and wireless networks makes delivery and exchange the digital data easy [6] - [13] . Apart from the problems of the wireless networks which include low bandwidth, insecure links, and high error rate [14] - [22] . Security is an important matter when exchange data over the internet and wireless networks [23] - [29] .

In security systems, data hiding is a common discipline to protect data. Data hiding, which concerned by concealing a message (a sequence of bits) in a digital object or cover, has two important sub-disciplines: steganography and watermarking [30] [31] . Steganography and watermarking are very close to each other and may be correspond but with different requirements and objectives as well, and thus leads to different technical solutions. Watermarking is a technique with a trade-off between the robustness, embedding capacity, and visual quality. Its aim is to obstruct piracy or to prove the proprietorship by imperceptibly modifying the digital media cover. The goal of steganographic techniques is to modify the cover object in imperceptible way, that is, nobody except the intended recipient can be able to identify the modified cover object [32] .

The steganography term is not new concept [33] . It is believed that steganography was found during the Golden Age in Greece and literally means “concealed/covert writing” which is derived from two Greek words “Stegan Graphien” [34] [35] [36] . Ancient Greek history mentioned that how ancient Greeks dig secret messages into the waxed wooden tablets and then the melting wax was reapplied to the wood, giving the appearance of a new and unused tablet. Thus, the resulted tablets could be transported without anyone doubting about the presences of a secret message under the wax [37] . An alternate smart method was to shave head of a messenger and tattoo a message or an image on the head of messenger. After the hair grew again, the message would not be discovered till the head was shaved again [38] . At the present time, steganographic algorithms obscure secret data as noise in a cover object that is assumed to be harmless [39] .

Generally, the algorithms used in steganography are based on the fact that the modifications occurred in texts, images, audio files and video files are not detected by human visual or auditory systems [40] . There are several stegano- graphic algorithms that have been proposed for data hiding when the cover media is digital images [41] [42] [43] . Since the digital images have a lot of redundant data, there has been an increased interest in using digital images as cover media for steganographic purposes [44] [45] . On the other hand, millions of digital images transfer through the internet each second, therefore it is necessary to say that digital image steganography becomes an important topic in IT security field [46] [47] . However, the remainder of the paper is organized as follows. In Section 2, a literature review of the most related works in the field is presented. Section 3, detailed extensively the proposed algorithm. Experimental results and discussions are provided in Section 4. Section 5 concludes the work and provides future possible directions.

2. Related Work

The first pixel-value differencing (PVD) steganographic algorithm was introduced by [41] . The embedding algorithm of Wu and Tsai’s method uses a cover image I sized by M × N. B_{i} is a sub-block of I, which has two consecutive pixels p_{i} and p_{i}_{+1} broken down by partitioning I in raster scan order such that
$I=\left\{{B}_{i}|i=1,2,\cdots ,\left(M\times N\right)/2\right\}$
. The difference value d_{i} between p_{i} and p_{i}_{+1} can be derived by using the following equation:

${d}_{i}\text{\hspace{0.17em}}=\text{\hspace{0.17em}}{p}_{i+1}\text{\hspace{0.17em}}-\text{\hspace{0.17em}}{p}_{i}\text{\hspace{0.17em}}$ (1)

On the other hand, in PVD method a range table has been designed with n contiguous sub-ranges R_{j} (i.e.
$R=\left\{{R}_{j}|j=1,2\cdots n\right\}$
. The main job of the range table is to provide the lower and upper bound values for each
$\left|{d}_{i}\right|$
that follow each B_{i}. The lower and upper bound values are called by
${l}_{j}$
and
${u}_{j}$
, so that we have
${R}_{j}\in \left[{l}_{j},{u}_{j}\right]$
. Each sub-range R_{j} has width W_{j} which is selected to be a power of 2 and can be calculated by using this equation:

${W}_{j}\text{\hspace{0.17em}}=\text{\hspace{0.17em}}{u}_{j}\text{\hspace{0.17em}}-\text{\hspace{0.17em}}{l}_{j}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+\text{\hspace{0.17em}}1$ (2)

However, using the width W_{j} of each R_{j} they can obtain the hiding capacity of two consecutive pixels by using:

${t}_{i\text{\hspace{0.17em}}}=\text{\hspace{0.17em}}\lfloor {\mathrm{log}}_{2}{W}_{j}\rfloor $ (3)

According to the above equation, t_{i} means the number of bits that can be hidden in each B_{i}. Read t_{i} bits from the binary secret bit-stream and it will be transform into its integer value b_{i}. For example, if t_{i} bits = “100”, then the converted value of b_{i} = 4. Now, a new difference value
${{d}^{\prime}}_{i}$
can be calculated by adding l_{j} and b_{i} together where:

${{d}^{\prime}}_{i}=\text{\hspace{0.17em}}\left\{\begin{array}{l}{l}_{j}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+\text{\hspace{0.17em}}{b}_{i},\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{if}\text{\hspace{0.17em}}{d}_{i}\ge 0\text{\hspace{0.17em}}\\ -\text{\hspace{0.17em}}\left({l}_{j}\text{\hspace{0.17em}}+\text{\hspace{0.17em}}{b}_{i}\right),\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{otherwise}\end{array}\right\}$ (4)

You should notice that the calculated
${{d}^{\prime}}_{i}$
will replace the original d_{i}. Finally, the secret data can be hidden into B_{i} by modifying its pixel values p_{i}_{ }and p_{i}_{+1} as follows:

$\begin{array}{l}{{p}^{\prime}}_{i}\text{\hspace{0.17em}}=\text{\hspace{0.17em}}{p}_{i}-\text{\hspace{0.17em}}\lceil m/2\rceil \\ {{p}^{\prime}}_{i+1}\text{\hspace{0.17em}}=\text{\hspace{0.17em}}{p}_{i+1}\text{\hspace{0.17em}}+\text{\hspace{0.17em}}\lfloor m/2\rfloor \end{array}$ (5)

where: $m=\left({{d}^{\prime}}_{i}\u2013{d}_{i}\right)$ . However, all the above steps are repeated for each sub- block until all secret data bits are hidden into the cover-image. Therefore, the stego-image is obtained.

Maleki, et al in [48] proposed an adaptive scheme based on Human Visual System (HVS), thus the pixels in edge regions can tolerate much more modifications than smooth regions. They use five secret keys, which are R_{1}, R_{2}, v_{1}, v_{2} and T, where v_{1} ≥ 1, v_{2} ≥ 1 and (v_{1} + v_{2} < 6). First of all, two parameters K_{r} and K_{c} are generated using H_{r}(R_{1}, v_{1}) and H_{c}(R_{2}, v_{2}), respectively. Then, they calculate the average difference value D of 4-neighborhing pixels in a block as follows:

$D\text{\hspace{0.17em}}=\text{\hspace{0.17em}}\frac{1}{3}\text{\hspace{0.17em}}{\displaystyle \sum _{i=0}^{3}\left({y}_{i\text{\hspace{0.17em}}}-\text{\hspace{0.17em}}{y}_{\mathrm{min}}\right)},\text{\hspace{0.17em}}\text{where}:\text{\hspace{0.17em}}{y}_{\mathrm{min}}\text{\hspace{0.17em}}=\text{\hspace{0.17em}}\mathrm{min}\left\{{y}_{0},\text{\hspace{0.17em}}{y}_{1},\text{\hspace{0.17em}}{y}_{2},\text{\hspace{0.17em}}{y}_{3}\right\}$ (6)

According to a threshold secret key T, they classify the current block into edge region or smooth region. Pixels in edge regions are embedding with a larger number of bits than that belongs to smooth regions. On the other words, If D ≤ T that means the block belongs to smooth regions and then Q = v_{1} bits will be embedded in that block. Otherwise, the block belongs to edge regions and then Q = v_{1} + v_{2}. They have to determine if the current block is an error block or not by using this condition:
$D\text{\hspace{0.17em}}\le \text{\hspace{0.17em}}T,\text{\hspace{0.17em}}\left({y}_{\mathrm{max}}-{y}_{\mathrm{min}}\right)\text{\hspace{0.17em}}>\text{\hspace{0.17em}}2\text{\hspace{0.17em}}\times \text{\hspace{0.17em}}T\text{\hspace{0.17em}}+\text{\hspace{0.17em}}2.$
If that condition is satisfy, then this block is called an error block and it is not used to embed secret data.

The main goal of the overlapping PVD (OPVD) method is to maximize the embedding capacity of the original PVD while maintaining acceptable image quality [49] . OPVD method embeds the secret data bits using singular pixels rather than embedding in pixel pairs using least significant bit (LSB) substitution. If the difference value of the pixel pair before and after embedding the secret data bits belongs to the same range, then the embedding procedure is implemented. Otherwise, there is no embedding for secret bits and the second pixel is adjusted. Despite the fact that this method conceals more secret data bits than PVD, its embedding capacity is limited since it still has a large number of unused pixels in embedding process. Moreover, using simple LSB approach and the adjustment process distorts the stego-image histogram. Therefore to increase the embedding capacity and improving the security of OPVD method while maintaining the image quality, [50] proposed a novel steganographic method based on OPVD. Like OPVD, the proposed method uses the difference of a two pixel block to recognize the smoothness and contrast in the current block. Then, it hides the secret bits in the second pixel based on the computed difference. After that, the second pixel is employed as first pixel in the next block and the embedding process is repeated. Moreover, a correction procedure is used to reduce the number of unused pixels.

To overcome the limitation of embedding capacity in PVD method, there are some PVD-based steganographic methods used a combination of PVD and LSB to dramatically enlarge the embedding capacity of secret data [13] [51] . Khodaei and Faez in [52] have proposed a steganographic method based on the PVD and modified LSB to embed the secret data within a greyscale cover-image. Their proposed method firstly divides all possible differences into lower and higher levels with a number of ranges. Secondly, it partitions the cover-image into non-overlapping blocks of three consecutive pixels and obtains the second pixel of each block as the base pixel. Next, by using LSB substitution followed by optimal pixel adjustment process (OPAP) which will described later, they embed k-bits of secret data in the base pixel. After that, they calculate the differences of pixel values between the base pixel and other two adjacent pixels in each block. Finally, they apply the modified PVD algorithm to embed secret data into the two pixels. In this method, each pixel embedded by modified PVD will conceal at least 3 bits, while in the original PVD each pixel pair will conceal at least 3 bits. Therefore, this method can embed large amount of secret data with maintaining acceptable visual quality of the stego-image.

Wang, et al in [53] proposed a high quality steganographic method based on PVD and modulus function, which is more secure against the RS detection attack and performs better than the PVD scheme. This scheme increased the peak signal-to-noise ratio (PSNR) values to 44.15 dB while concealed 51,219 bytes. It exploits the remainder of the two consecutive pixels to record the information of the embedded data, which achieves more flexibility, capable of deriving the optimal remainder of the two pixels at the least distortion. This method increased the PSNR (up to 8.9%) more than the simple PVD method. To maintain the difference in the same range before and after embedding process, this method uses readjusting procedure to alter the reminder of the pixel pair.

Joo, et al. in [54] presented an enhancement on [53] method by embedding different amounts of secret data based on pixel-pair complexity. Tests in this method showed that the difference histogram had a shape closer to the cover-image which was hard to be detected by histogram analysis. Although this method improved the problems of the shapes in the difference histogram, its embedding capacity is not higher than Wang et al. method. In Joo et al. method, the embedding order is diverse for the odd and even embedding areas.

Chen in [55] introduced a PVD method using pixel pair matching (PPM). PPM [56] used two pixels as a unit for embedding a message digit S_{B} in B-ary notational system. In Chen method, the cover-image is partitioned into 2 × 2 embedding cells for embedding by random embedding arrangements. To increase the random embedding characteristic, two reference tables are created. This random mechanism raises the security of the embedded data from detection and other steganalysis attacks. The major contributions of this approach are that: (1) PPM was utilized thus more data was concealed than original PVD, (2) Effectively decreasing the falling-off-boundary problem by manipulating only on Pivot Embedding Unit (PEU). (3) The secret data was concealed based on two reference tables which raised the random characteristic and the visual quality. (4) This method is harder to be detected since its difference histogram demonstrates that the values of the stego-image are very close to the values of the cover-image. Comparison this method with [54] , Chen scheme significantly had higher capacity and image quality.

3. The Proposed Algorithm

3.1. Embedding Phase

The embedding phase for our proposed algorithm used the same equations as employed in [41] [48] [52] [57] . The nitty gritty embedding steps for inserting secret data bits in a cover-image are described as follows:

Input: Cover-image CI, secret data S, and secret keys (R_{1}, R_{2}, α, β).

Output: Stego-image SI.

Step 1. The cover-image is dividing into non-overlapping two-pixel blocks
$B=\left\{{B}_{i}|i=1,2,3,\cdots ,\left(W\times H\right)/2\right\}$
. In each block, there are two neighboring pixels p_{i} and p_{i}_{+1}, and their corresponding gray values are g_{0} and g_{1}, respectively.

Step 2. Transform S into a binary bitstream S'.

Step 3. As explained previously, H_{r}(R_{1}, α) and H_{c}(R_{2}, β) are used to generate two binary sets K_{r} and_{ }K_{c}, respectively.

Step 4. Calculate Q as follows:

$Q=\left(\alpha +\beta \right)$ (7)

Step 5. For the first pixel p_{i} in the block, S_{Q} = Q bits of binary bitstream S'. After that, this S_{Q} is divided into two sub-sets S_{Q}_{1} and_{ }S_{Q}_{2}, where S_{Q}_{1} has α bits and S_{Q}_{2} has β bits.

Step 6. Find the indices i and j using S_{Q}_{1} = K_{ri} and S_{Q}_{2} = K_{cj}, where K_{ri} and K_{cj} are ith and jth binary elements in K_{r} and_{ }K_{c} sets, respectively.

Step 7. Compute y as follows:

$y={2}^{\beta}\times \left(i-1\right)+j$ (8)

Step 8. Generate a pixel group G which is a subset of the pixel intensity set $G=\left\{{g}_{i}|i=1,2,\cdots ,n\right\}$ and is generated as follows:

$f\left({p}_{i}\right)\text{\hspace{0.17em}}=\text{\hspace{0.17em}}{p}_{i}\text{\hspace{0.17em}}\mathrm{mod}\text{\hspace{0.17em}}n\text{\hspace{0.17em}},\text{where}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}n\text{\hspace{0.17em}}=\text{\hspace{0.17em}}{2}^{Q}$ (9)

Thus, the pixel group G is an ordered set $\left\{{p}_{i}\text{\hspace{0.17em}}-\text{\hspace{0.17em}}f\left({p}_{i}\right),\text{\hspace{0.17em}}{p}_{i}-\text{\hspace{0.17em}}f\left({p}_{i}\right)\text{\hspace{0.17em}}+1,\cdots ,\text{\hspace{0.17em}}{p}_{i},{p}_{i}+\text{\hspace{0.17em}}1,\text{\hspace{0.17em}}{p}_{i}+\text{\hspace{0.17em}}n\text{\hspace{0.17em}}-\text{\hspace{0.17em}}f\left({p}_{i}\right)\text{\hspace{0.17em}}-1\right\}$ . Then, determine the corresponding stego-pixel from yth element of G where ${{p}^{\prime}}_{i}={g}_{y}$ .

Step 9. For reducing perceptual distortion between the cover and stego images, we use “error reducing process”. Let L
$\in $
[−1, 0, 1] and n = 2^{Q}. After that, calculate
${{p}^{\u2033}}_{i}$
as in the following:

${{p}^{\u2033}}_{i}={{p}^{\prime}}_{i}+L\times n$ (10)

Consequently, we get three values for
${{p}^{\u2033}}_{i}$
. We choose one
${{p}^{\u2033}}_{i}$
value, which is the closest value for the original value p_{i}. Thus, the final value for the corresponding stego-pixel
${{p}^{\prime}}_{i}$
after error reducing process will be the chosen
${{p}^{\u2033}}_{i}$
.

Step 10. Until now, we embed Q bits in the first pixel in the block B_{i}. Now, compute the difference value between
${{p}^{\prime}}_{i}$
and the second pixel p_{i}_{+1} in B_{i} as follows:

${d}_{i}=\text{\hspace{0.17em}}\left|{p}_{i+1}\text{\hspace{0.17em}}-\text{\hspace{0.17em}}{{p}^{\prime}}_{i}\right|$ (11)

Step 11. Find the corresponding sub-range
${R}_{i}\in \left[{l}_{i},{u}_{i}\right]$
for the resulted difference value d_{i} from the dividing range table that is shown in Figure 1. Where l_{i} and u_{i} are the lower and higher bounds for sub-range R_{i}.

Step 12. If R_{i} belongs to the lower-level, then 3 secret data bits will be embedded in the second pixel p_{i}_{+1}. Unless 4 secret data bits will be embedded in the second pixel p_{i}_{+1}. By considering t_{i} is the number of embedded secret data bits, then, read t_{i} bits from the binary bitstream S' and convert it into its decimal value s_{t}.

Step 13. Compute the new difference value dd_{i} as follows:

$d{d}_{i}={l}_{i}+{s}_{t}.$ (12)

Step 14. Calculate the stego pixel value
${{p}^{\prime}}_{i+1}$
for the second pixel p_{i}_{+1} in the block B_{i} using the following formula:

${{p}^{\prime}}_{i+1}=\text{\hspace{0.17em}}\left\{\begin{array}{l}{{p}^{\prime}}_{i}\text{\hspace{0.17em}}-\text{\hspace{0.17em}}d{d}_{i},\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{if}\text{\hspace{0.17em}}|{p}_{i+1}-\text{\hspace{0.17em}}{{p}^{\prime}}_{i+1}|\text{\hspace{0.17em}}<\text{\hspace{0.17em}}|\text{\hspace{0.17em}}{p}_{i+1}\text{\hspace{0.17em}}-\text{\hspace{0.17em}}\left({{p}^{\prime}}_{i}+\text{\hspace{0.17em}}d{d}_{i}\right)|\text{\hspace{0.17em}}\text{and}\text{\hspace{0.17em}}0\text{\hspace{0.17em}}\le \text{\hspace{0.17em}}{{p}^{\prime}}_{i+1}\le \text{\hspace{0.17em}}255\\ {{p}^{\prime}}_{i}\text{\hspace{0.17em}}+\text{\hspace{0.17em}}d{d}_{i},\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{otherwise}\end{array}\right\}$ (13)

Figure 1. Dividing range table R.

Step 15. Now, we are getting the stego-block consisting ${{p}^{\prime}}_{i}$ and ${{p}^{\prime}}_{i+1}$ . After that, repeat the steps from 5 to 15 for the next block until all secret data bits are completely embedded and the stego-image SI is obtained.

Figure 2 shows the flowchart of the embedding process in MF-PVD algorithm.

Figure 2. Embedding process in MF-PVD algorithm.

Respect to the side information used in MF-PVD algorithm, they are offline, except the amount of the payload which takes 32 bits from the embedding capacity.

・ Embedding Phase: Example

An illustration of the data embedding phase is shown in Figures 3(a)-(h). Suppose that the simple block is comprised by p_{1} and p_{2} and their corresponding grey values are (47, 48) as shown in Figure 3(a), and the bitstream of secret data is “1000011”, as shown in Figure 3(b). Also, assume α = 1, β = 3, R_{1} = 2 and R_{2} = 2020.

§ Before the actual embedding, we generate the K_{r} using H_{r} (2, 1) and the K_{c} using H_{c} (2020, 3). All permutations generated by H_{r} and H_{c} for K_{r} and K_{c}, respectively, are shown in Figure 3(c), Figure 3(d). Thus, K_{r} = {1, 0} and K_{c} = {001, 010, 101, 000, 011, 100, 110, 111}.

§ The first pixel is embedded with Q = 4 bits of secret data. Thus, S_{Q} = “1000” will be separated into two sub-strings S_{Q}_{1} = “1” and S_{Q}_{2} = “000”.

§ After that, we find the indices i and j where S_{Q}_{1} = K_{ri} and S_{Q}_{2} = K_{cj}. Therefore,_{ }i = 1 and j = 4.

§ Using the values of i, j and β to compute y = 2^{β} × (i − 1) + j = 2^{3} × (1 − 1) + 4 = 4.

Figure 3. (a)-(h): An example of the embedding process in MF-PVD algorithm.

§ Next, the pixel group G is created as shown in Figure 3(e). Therefore, the stego-pixel
${{p}^{\prime}}_{1}$
can be obtained from the yth element of G (i.e.
${{p}^{\prime}}_{1}$
= g_{4} = 35).

§ To reduce the distortion, we use the error reducing process. As shown in Figure 3(f), we will get three values for ${{p}^{\prime}}_{1}$ , thus, we choose the closest one to the original pixel value 47, which is 51 (i.e. ${{p}^{\prime}}_{1}$ = 51).

§ Now, we compute the difference value between
${{p}^{\prime}}_{1}$
and p_{2} as follows:
$d\text{\hspace{0.17em}}=\text{\hspace{0.17em}}\left|48\text{\hspace{0.17em}}-\text{\hspace{0.17em}}51\right|=\text{\hspace{0.17em}}3\text{\hspace{0.17em}}\in \text{\hspace{0.17em}}{R}_{1}$
where R_{1} = [0, 7] and t_{1} = 3 bits. Thus, s_{t} = 3.

§ Next, the new difference value is computed as follows: dd = s_{t} + 0 = 3

§ Finally, according to step 14, the stego-pixel ${{p}^{\prime}}_{2}$ = ${{p}^{\prime}}_{1}$ + dd = 51 + 3 = 54

Hence, the block after embedding the secret data will be as shown in Figure 3(h).

3.2. Extracting Phase

The details of extracting phase to extract the secret data S are described as follows:

Input: Stego-image SI, and secret keys (R_{1}, R_{2}, α, β).

Output: Secret data S.

Step 1. Similar to the embedding phase, first of all, partition the SI into two-pixel non-overlapping blocks. In each block, there are two neighboring pixels $\left({{p}^{\prime}}_{i},{{p}^{\prime}}_{i+1}\right).$

Step 2. Using H_{r}(R_{1}, α) and H_{c}(R_{2}, β) to generate two binary sets K_{r} and_{ }K_{c}, respectively.

Step 3. Through sets K_{r} and K_{c}, form a Cartesian product K_{r}
$\oplus $
K_{c}. K_{r}
$\oplus $
K_{c} creates an ordered set of combinations of K_{r} and K_{c} with 2^{α} × 2^{β} = 2^{α}^{+β} elements. Each component of the variant Cartesian product K_{r}
$\oplus $
K_{c} is binary string concatenation which includes the two binary strings K_{ri} and K_{cj} jointly to form one string which has the length (α + β) bits

${K}_{r}\oplus {K}_{c}=\left\{{K}_{ri}|\left|{K}_{cj}\right|{K}_{ri}\in {K}_{r}\text{\hspace{0.17em}}\text{and}\text{\hspace{0.17em}}{K}_{cj}\in {K}_{c},i=1,2,\cdots ,{2}^{\alpha},j=1,2,\cdots ,{2}^{\beta}\right\}$ (14)

For example, assume α = 1, β = 3, R_{1} = 2 and R_{2} = 2020. We generate the K_{r} using H_{r}(2, 1) and the K_{c} using H_{c}(2020, 3). Thus, K_{r} = {1, 0} and K_{c} = {001, 010, 101, 000, 011, 100, 110, 111}. We produce the variant Cartesian product K_{r}
$\oplus $
K_{c} as follows: {1001, 1010, 1101, 1000, ∙∙∙, 0011, 0100, 0110, 0111}

Step 4. Calculate Q as was in the Equation (7)

Step 5. For the first pixel
${{p}^{\prime}}_{i}$
in the block create the pixel group G and find the position y of
${{p}^{\prime}}_{i}$
, since the stego pixel
${{p}^{\prime}}_{i}$
equals g_{y} (i.e.
${{p}^{\prime}}_{i}$
= g_{y}, where n = 2^{Q}).

Step 6. Use the Cartesian product of K_{r} and K_{c}(K_{r}
$\oplus $
K_{c}) to extract the yth element which is the secret embedded bits with Q bits, we called this first piece of secret data by S_{Q}.

Step 7. Find the difference value between the first and second pixels in the block where

${{d}^{\prime}}_{i}\text{\hspace{0.17em}}=\left|{{p}^{\prime}}_{i+1}\text{\hspace{0.17em}}-\text{\hspace{0.17em}}{{p}^{\prime}}_{i}\right|$ (15)

Step 8. Find the corresponding range ${R}_{i}\in \left[{l}_{i},{u}_{i}\right]$ for the resulted difference value ${{d}^{\prime}}_{i}$ and compute ${t}_{i}$ .

Step 9. Extract the second piece of secret data S_{t} by using:

${S}_{t}={{d}^{\prime}}_{i}-{l}_{i}$ (16)

Step 10. Transform S_{t} into its binary value.

Step 11. Move to next block and repeat Steps from 5 to 11 until all the pieces of secret data are completely extracted. Then, concatenate all the pieces of secret data sub-bitstreams in order to recover the required hidden secret data S.

The error reducing process in our algorithm can work correctly since it is do not change the hidden secret data. To prove that, remember step 5 in the extracting phase. We mentioned that
${{p}^{\prime}}_{i}$
= g_{y} where n = 2^{Q}, if we applying the following equation:
${{p}^{\u2033}}_{i}$
=
${{p}^{\prime}}_{i}$
+ L × n, where
$L\in \left[-1,0,1\right]$
, we will get three values (
${{p}^{\prime}}_{i}$
− 2^{Q}), (
${{p}^{\prime}}_{i}$
) and (
${{p}^{\prime}}_{i}$
+ 2^{Q}).

All these resulted values have the same reminder to n. Consequently, in the extracting phase, using each of these three values will lead to extract the same secret data correctly. Detection process for secret data in our method is very difficult to any unauthorized users due to existing many permutations (K_{r} has 2^{α}!), (K_{c} has 2^{β}!) and (K_{r}
$\oplus $
K_{c} has 2^{α}! × 2^{β}!). Thus, an attacker will face more difficult in guessing the secret data. Figure 4 shows the flowchart of the extracting process in MF-PVD algorithm.

4. Experimental Results and Discussions

4.1. Simulation Setup: Simulation Parameters and Performance Metrics

All our experiments are developed using MATLAB 8.2.0.701 (R2013b) software on Windows 7 platform with an Intel Core i7-4600U CPU working at 2.1 GHz with a 4 MB cache and 4 GB RAM. We used different benchmark gray level images with size 512 × 512 from various databases such as (USC-SIPI Image Database) and (UWATERLOO-LINKS Image Repository) [58] [59] . Also, we used various formats for images, such as: Tiff, Jpg, Bmp, and Gif. In addition, we use randseq ( ) function to generate random secret message to be embedded in the cover image.

The effectiveness of our proposed algorithm is verified using different performance metrics such as PSNR and structural similarity index measure (SSIM). In general, PSNR and SSIM are used evaluate the overall image quality. PSNR is computed using the following equation [41] [60] - [68] :

$PSNR\text{\hspace{0.17em}}\text{\hspace{0.17em}}=\text{\hspace{0.17em}}10\text{\hspace{0.17em}}\times \text{\hspace{0.17em}}{\mathrm{log}}_{10}\text{\hspace{0.17em}}\left(\frac{{\left({I}_{\mathrm{max}}\right)}^{2}}{MSE}\right)dB$ (17)

where I_{max} equals to 255 for 8-bit gray level images, which means the maximum intensity value of each pixel. Mean square error (MSE) is calculated using:

$MSE\text{\hspace{0.17em}}=\text{\hspace{0.17em}}\frac{1}{MN}\text{\hspace{0.17em}}\times \text{\hspace{0.17em}}{\displaystyle \sum _{i=0}^{M-1}{\displaystyle \sum _{j=0}^{N-1}{\left({x}_{ij}\text{\hspace{0.17em}}-\text{\hspace{0.17em}}{{x}^{\prime}}_{ij}\right)}^{2}}}$ (18)

Figure 4. Extracting process in MF-PVD algorithm.

where MN is the total number of pixels for both cover and stego images. x_{ij} and
${{x}^{\prime}}_{ij}$
represent the pixels in the cover image and stego image, respectively. SSIM is calculated as follows [69] [70] :

$SSIM\left(x,y\right)\text{\hspace{0.17em}}=\text{\hspace{0.17em}}\frac{\left(2{\mu}_{x}{\mu}_{y}+{C}_{1}\right)\left(2{\sigma}_{xy}+{C}_{2}\right)}{\left({\mu}_{x}^{2}+\text{\hspace{0.17em}}{\mu}_{y}^{2}+{C}_{1}\right)\text{\hspace{0.17em}}\left({\sigma}_{x}^{2}+{\sigma}_{y}^{2}+{C}_{2}\right)}$ (19)

where
${C}_{1}={\left({k}_{1}L\right)}^{2}$
and
${C}_{2}={\left({k}_{2}L\right)}^{2},$
which are two constants to stabilize the division when the mean and variance get close to zero. L represents the maximum possible value for image pixel,
$L={2}^{Nbpp}-1$
(where N_{bpp} is the number of bits per pixel).
${\mu}_{x}$
and
${\sigma}_{x}^{2}$
denote the mean and variance of
$x$
, respectively.
${\mu}_{y}$
and
${\sigma}_{y}^{2}$
denote the mean and variance of
$y$
, respectively,
${\sigma}_{xy}$
refers to the covariance of x and y. The value of SSIM lies in the interval [zero, one]. The value “one” means that both images, cover image and stego image, are precisely the same, and the value “zero” means that they are absolutely unrelated. However, for each image, there are several SSIM indexes where each one is calculated within (11 × 11) local window using a certain circular-symmetric Gaussian weighting value (between zero and one) and the final SSIM image index is the average of these indexes.

4.2. Experimental Results and Discussions

The maximum embedding capacity (EC) in our algorithm can be computed by using the following equation:

$EC\text{\hspace{0.17em}}=\text{\hspace{0.17em}}\left({N}_{fp}\text{\hspace{0.17em}}\times \text{\hspace{0.17em}}\left(\alpha \text{\hspace{0.17em}}+\text{\hspace{0.17em}}\beta \right)\right)\text{\hspace{0.17em}}+\text{\hspace{0.17em}}\left({N}_{sp1}\text{\hspace{0.17em}}\times \text{\hspace{0.17em}}3\right)\text{\hspace{0.17em}}+\left({N}_{sp2}\text{\hspace{0.17em}}\times \text{\hspace{0.17em}}4\right)$ (20)

where N_{fp} is the number of first pixel blocks, N_{sp}_{1} is the number of the second pixel blocks that belongs to the lower-level and N_{sp}_{2} is the number of the second pixel blocks that belongs to the higher-level.

We have implemented using a series of α and β secret keys. The value we got from adding α and β values will be embedded in the first pixel in each block (i.e. α + β bits). Figure 5 and Figure 6 demonstrate the experimental results of six stego-images resulted by our algorithm with different values for α and β on Elaine and Splash images.

Elaine Cover Image

Stego Elaine with α = 1 and β = 1

Stego Elaine with α = 2 and β = 1

Stego Elaine with α = 2 and β = 2

EC (Bits)SSIMPSNR669,4770.994739.68801,3060.992638.51935,4550.985435.68

Figure 5. Results of MF-PVD on Stego-Elaine with different secret keys.

Splash Cover Image

Stego Splash with α = 1 and β = 1

Stego Splash with α = 2 and β = 1

Stego Splash with α = 2 and β = 2

EC (Bits)SSIMPSNR658,8410.991438.16790,0050.986137.29921,8880.968534.96

Figure 6. Results of MF-PVD on Stego-Splash with different secret keys.

Tables 1(a)-1(c) shows the results of our adaptive algorithm in terms of the maximum embedding capacity, SSIM and PSNR values. As shown in Table 1, our proposed algorithm is scalable and flexible, so that larger values for α and β improve the embedding capacity whereas a lower values of α and β improve the stego-image quality. Moreover, it is noteworthy that the complexity time presented by our algorithm almost is O(n^{2}), which is less than or equals to 59 s.

Our algorithm outperforms Maleki, et al. scheme [48] since we have not error blocks which is not used to embed secret data. On the other hand, using the PVD method for embedding the secret data in the second pixel according to the specific range table significantly increases the capability of embedding. Therefore, our method is extremely superior Maleki et al. scheme in terms of the embedding capacity. Table 2(a), Table 2(b) demonstrates a comparison between our algorithm and Maleki et al. algorithm. As shown in Table 2, in all different values of α and β, our method provides the highest embedding capacities. In addition to improve the embedding capacity, our method does not degrade much on the visual quality of the stego-image. The embedding rate and the visual quality of the stego-image in our algorithm can be modified depending on the requirements of the practical applications. In other words, if we need high embedding rate, we have to choose larger values for α and β, but if we need high visual quality, we have to choose smaller values for α and β. Compared Maleki et al. algorithm with our proposed algorithm in terms of the EC, the average improvement ratio (AIR) is about 47%, 20%, 25% and 12% when using (α = 1 and β = 1), (α = 2 and β = 1), (α = 2 and β = 2) and (α = 3 and β = 1), respectively. Unfortunately, this will be at the cost of decreasing PSNR values. The average degradation ratio (ADR) is about 18%, 10%, 5% and 8%, respectively. Although, there are decreasing in PSNR values, the stego image visual quality does not show any distortion to be suspected by unauthorized observers.

Results shown in Table 3(a), Table 3(b) demonstrates that our algorithm outperforms to [50] and [52] algorithms in terms of the embedding capacity. The AIR is about 12% and 2%, respectively. Moreover, our algorithm provides better PSNR values in most stego images than El-Alfy and Al-Sadi. Although our

Table 1. (a)-(c): Experimental results of MF-PVD algorithm.

Table 2. (a) (b): Comparison of the results between Maleki, et al. scheme [48] and MF-PVD algorithm.

Table 3. (a) (b): Comparison of the results between our MF-PVD algorithm against [50] and [52] methods.

algorithm does not greatly increase the embedding capacity than Khodaei and Faez, our algorithm does not degrade on the image quality and it provides higher level of security. The level of security in our proposed algorithm is high, due to two reasons, which are: 1) We have two methods to individually embed each pixel in a block, 2) Our algorithm provides hard detection for the hidden secret data bits due to existing: many permutations and dividing range table.

Table 4(a), Table 4(b) shows the comparison of the results between our algorithm against [53] [54] [55] algorithms. In fact, our algorithm is superior to these three approaches in two features, namely embedding capacity and level of security. The AIR in terms of the embedding capacity is about 62%, 61% and 55%, respectively. However, as inevitable result of the increasing in the embedding capacity, the PSNR is decreased. The ADR in terms of the PSNR is about 11%, 11% and 19%, respectively. Our algorithm has higher level of security than these three methods for the same reasons listed previously.

5. Conclusion and Future Work

We have proposed a new block-based steganographic algirthm using PVD and modulus function techniques, namely, MF-PVD. To evaluate the performance of MF-PVD algorithm, we compare it with six pertinent state-of-art algorithms,

Table 4. (a) (b): Comparison of the results between MF-PVD algorithm, [53] , [54] and [55] methods.

which are existed in [48] [50] [52] [53] [54] [55] . As a matter of fact, our MF-PVD algorithm is outstanding to these mentioned methods in two main features, the embedding capacity and the security. In fact, the security of our algorithm is high due to generating many permutations and existing the dividing range table.

Many trends can be given for further improvements to the proposed algorithm. The algorithm’s framework can be extended to the RGB color images for improving the capability of embedding. Moreover, it can be a good addition to develop an approach that takes into account the hybrid domain. As well, there are future plans to develop modulus function-based schemes for another media such as audios and videos.

Cite this paper

Al-Dhamari, A.K. and Darabkh, K.A. (2017) Block-Based Steganographic Algorithm Using Modulus Function and Pixel-Value Differencing. Journal of Software Engineering and Applications, 10, 56-77. http://dx.doi.org/10.4236/jsea.2017.101004

References

- 1. Darabkh, K.A., Albtoush, W.Y. and Jafar, I.F. (2016) Improved Clustering Algorithms for Target Tracking in Wireless Sensor Networks. Journal of Supercomputing, Online.
- 2. Darabkh, K.A. and Aygün, R.S. (2007) TCP Traffic Control Evaluation and Reduction over Wireless Networks Using Parallel Sequential Decoding Mechanism. EURASIP Journal on Wireless Communications and Networking, 2007, Article ID: 52492. https://doi.org/10.1155/2007/52492
- 3. Darabkh, K.A. (2010) Queuing Analysis and Simulation of Wireless Access and End Point Systems Using Fano Decoding. Journal of Communications, 5, 551-561. https://doi.org/10.4304/jcm.5.7.551-561
- 4. Darabkh, K.A., Khalifeh, A.F., Jafar, I.F., Bathech, B.A. and Sabah, S.W. (2013) Efficient DTW-Based Speech Recognition System for Isolated Words of Arabic Language. Proceedings of International Conference on Electrical and Computer Systems Engineering, 77, 689-692.
- 5. Darabkh, K.A., Khalifeh, A.F., Jafar, I.F., Bathech, B.A. and Sabah, S.W. (2013) A Yet Efficient Communication System with Hearing-Impaired People Based on Isolated Words of Arabic Language. IAENG International Journal of Computer Science, 40, 183-193.
- 6. Darabkh, K.A. (2011) Evaluation of Channel Adaptive access Point System with Fano Decoding. International Journal of Computer Mathematics, 88, 916-937. https://doi.org/10.1080/00207160.2010.485249
- 7. Darabkh, K.A. (2015) Fast and Upper Bounded Fano Decoding Algorithm: Queuing Analysis. Transactions on Emerging Telecommunications Technologies, Online.
- 8. Hawa, M., Darabkh, K.A., Al-Zubi, R. and Al-Sukkar, G. (2016) A Self-Learning MAC Protocol for Energy Harvesting and Spectrum Access in Cognitive Radio Sensor Networks. Journal of Sensors, 2016, Article ID: 9604526. https://doi.org/10.1155/2016/9604526
- 9. Darabkh, K.A., Abu-Jaradeh, B.N. and Jafar, I.F. (2011) Incorporating Automatic Repeat Request and Thresholds with Variable Complexity Decoding Algorithms over Wireless Networks: Queuing Analysis. IET Communications Journal, 5, 1377-1393. https://doi.org/10.1049/iet-com.2010.0698
- 10. Darabkh, K.A., Jafar, I., Al Sukkar, G., Abandah, G. and Al-Zubi, R. (2012) An Improved Queuing Model for Packet Retransmission Policy and Variable Latency Decoders. IET Communications Journal, 6, 3315-3328. https://doi.org/10.1049/iet-com.2012.0410
- 11. Hawa, M., Darabkh, K.A., Khalaf, L.D. and Rahhal, J.S. (2015) Dynamic Resource Allocation Using Load Estimation in Distributed Cognitive Radio Systems. AEü—International Journal of Electronics and Communications, 69, 1833-1846. https://doi.org/10.1016/j.aeue.2015.09.008
- 12. Ismail, S.S., Al Khader, A.I. and Darabkh, K.A. (2015) Static Clustering for Target Tracking in Wireless Sensor Networks. Global Journal on Technology, 8, 167-173.
- 13. Darabkh, K.A., Jafar, I.F., Al-Zubi, R.T. and Hawa, M. (2014) An Improved Image Least Significant Bit Replacement Method. Proceedings of the 37th IEEE International Convention on Information and Communication Technology, Electronics and Microelectronics, Opatija, 26-30 May 2014, 1182-1186. https://doi.org/10.1109/mipro.2014.6859747
- 14. Al-Zubi, R., Krunz, M., Al-Sukkar, G., Hawa, M. and Darabkh, K.A. (2014) Packet Recycling and Delayed ACK for Improving the Performance of TCP over MANETs. Wireless Personal Communications, 75, 943-963. https://doi.org/10.1007/s11277-013-1401-8
- 15. Darabkh, K.A. and Alsukour, O. (2015) Novel Protocols for Improving the Performance of ODMRP and EODMRP over Mobile Ad Hoc Networks. International Journal of Distributed Sensor Networks, 2015, Article ID: 348967. https://doi.org/10.1155/2015/348967
- 16. Darabkh, K.A., Ibeid, H., Jafar, I.F., Al-Zubi, R.T. (2016) A Generic Buffer Occupancy Expression for Stop-and-Wait Hybrid Automatic Repeat Request Protocol over Unstable Channels. Telecommunication Systems, 63, 205-221. https://doi.org/10.1007/s11235-015-0115-5
- 17. Darabkh, K.A. and Pan, W.D. (2006) Stationary Queue-Size Distribution for Variable Complexity Sequential Decoders with Large Timeout. Proceedings of the 44th ACM Southeast Conference, Melbourne, 10-12 March 2006, 331-336.
- 18. Al-Mistarihi, M.F., Mohaisen, R., Sharaqa, A., Shurman, M.M. and Darabkh, K.A. (2015) Performance Evaluation of Multiuser Diversity in Multiuser Two-Hop Cooperative Multi-Relay Wireless Networks using MRC over Rayleigh Fading Channels. International Journal of Communication Systems, 28, 71-90. https://doi.org/10.1002/dac.2640
- 19. Shurman, M., Al-Shua’b, B., Alsaedeen, M., Al-Mistarihi, M.F. and Darabkh, K. (2014) N-BEB: New Backoff Algorithm for IEEE 802.11 MAC Protocol. Proceedings of 37th IEEE International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO 2014), Opatija, Croatia, May 2014, 540-544.
- 20. Al-Zubi, R., Hawa, M., Al-Sukkar, G. and Darabkh, K.A. (2014) Markov-Based Distributed Approach For Mitigating Self-Coexistence Problem in IEEE 802.22 WRANs. The Computer Journal, 57, 1765-1775. https://doi.org/10.1093/comjnl/bxt092
- 21. Shurman, M., Awad, N., Al-Mistarihi, M.F. and Darabkh, K.A. (2014) LEACH Enhancements for Wireless Sensor Networks Based on Energy Model. Proceedings of the 2014 IEEE International Multi-Conference on Systems, Signals & Devices, Conference on Communication & Signal Processing, Castelldefels, 11-14 February 2014, 1-4.
- 22. Shurman, M., Al-Mistarihi, M., Mohammad, A., Darabkh, K. and Ababnah, A. (2013) Hierarchical Clustering Using Genetic Algorithm in Wireless Sensor Networks. Proceedings of 36th IEEE International Convention on Information and Communication Technology, Electronics and Microelectronics, Opatija, 20-24 May 2013, 479-483.
- 23. Darabkh, K.A., Al-Dhamari, A.K. and Jafar, I.F. A New Steganographic Algorithm Based on Multi Directional PVD and Modified LSB. To Appear in Information Technology and Control, Kaunas University of Technology, Kaunas.
- 24. Jafar, I., Darabkh, K.A. and Saifan, R. (2016) SARDH: A Novel Sharpening-Aware Reversible Data Hiding Algorithm. Journal of Visual Communication and Image Representation, 39, 239-252. https://doi.org/10.1016/j.jvcir.2016.06.002
- 25. Jafar, I., Darabkh, K.A., Saifan, R. and Al-Zubi, R. (2016) An Efficient Reversible Data Hiding Algorithm Using Two Steganographic Images. Signal Processing, 128, 98-109. https://doi.org/10.1016/j.sigpro.2016.03.023
- 26. Jafar, I.F., Darabkh, K.A., Al-Zubi, R.T. and Nam’neh, R. (2016) Efficient Reversible Data Hiding Using Multiple Predictors. The Computer Journal, 59, 423-438. https://doi.org/10.1093/comjnl/bxv067
- 27. Jafar, I., Hiary, S. and Darabkh, K.A. (2014) An Improved Reversible Data Hiding Algorithm Based on Modification of Prediction Errors. Proceedings of 6th International Conference on Digital Image Processing, Athens, 5-6 April 2014, 91591U-91591U-6.
- 28. Darabkh, K.A., Jafar, I.F., Al-Zubi, R.T. and Hawa, M. (2015) A New Image Steganographic Approach for Secure Communication Based on LSB Replacement Method. Information Technology and Control, 44, 315-328. https://doi.org/10.5755/j01.itc.44.3.8949
- 29. Darabkh, K.A. (2014) Imperceptible and Robust DWT-SVD-Based Digital Audio Watermarking Algorithm. Journal of Software Engineering and Applications, 7, 859-871. https://doi.org/10.4236/jsea.2014.710077
- 30. Cox, I., Miller, M., Fridrich, J. and Kalker, T. (2007) Digital Watermarking and Steganography. Morgan Kaufmann Publishers Inc., San Francisco.
- 31. Cheddad, A., Condell, J., Curran, K. and Kevitt, P. (2010) Digital Image Steganography: Survey and Analysis of Current Methods. Signal Processing: Image Communication, 90, 727-752. https://doi.org/10.1016/j.sigpro.2009.08.010
- 32. Saini, S. and Brindha, K. (2014) Improved Data Embedding into Images Using Histogram Shifting. International Journal of Emerging Research in Management & Technology, 3, 83-86.
- 33. Kefa, R. (2004) Steganography—The Art of Hiding Data. Information Technology Journal, 3, 245-269. https://doi.org/10.3923/itj.2004.245.269
- 34. Lin, E. and Delp, J. (1999) A Review of Data Hiding in Digital Images. Proceedings of the Image Processing, Image Quality, Image Capture Systems Conference, Savannah, 25-28 April 1999, 274-278.
- 35. Kumar, A. and Pooja, K. (2010) Steganography—A Data Hiding Technique. International Journal of Computer Applications, 9, 19-23.
- 36. Yadav, D., Agrawal, M. and Arora, A. (2014) Performance Evaluation of LSB and LSD in Steganography. Proceedings of the 5th IEEE International Conference on Confluence the Next Generation Information Technology Summit (Confluence), Noida, 25-26 September 2014, 515-520. https://doi.org/10.1109/confluence.2014.6949380
- 37. Artz, D. (2001) Digital Steganography: Hiding Data within Data. IEEE Internet Computing, 5, 75-80. https://doi.org/10.1109/4236.935180
- 38. Johnson, N. and Jajodia, S. (1998) Exploring Steganography: Seeing the Unseen. IEEE Computer, 31, 26-34. https://doi.org/10.1109/MC.1998.4655281
- 39. Desoky, A. (2012) Noiseless Steganography: The Key to Covert Communications. CRC Press, Boca Raton. https://doi.org/10.1201/b11575
- 40. Tiwari, A., Yadav, S. and Mittal, N. (2014) A Review on Different Image Steganography Techniques. International Journal of Engineering and Innovative Technology, 3, 121-124.
- 41. Wu, D. and Tsai, W. (2003) A Steganographic Method for Images by Pixel-Value Differencing. Pattern Recognition Letters, 24, 1613-1626.
- 42. Chan, C. and Cheng, L. (2004) Hiding Data in Images by Simple LSB Substitution. Pattern Recognition, 37, 469-474. https://doi.org/10.1016/j.patcog.2003.08.007
- 43. Wu, C., Wu, I., Tsai, S. and Hwang, S. (2005) Image Steganographic Scheme Based on Pixel-Value Differencing and LSB Replacement Method. IEE Proceedings: Vision, Image, and Signal Processing, 152, 611-615. https://doi.org/10.1049/ip-vis:20059022
- 44. Chandramouli, R., Kharrazi, M. and Memon, N. (2004) Image Steganography and Steganalysis: Concepts and Practice. Proceedings of the 2nd International Workshop, Book Chapter in Digital Watermarking, Lecture Notes in Computer Science Series, Seoul, 20-22 October 2003, 35-49. https://doi.org/10.1007/978-3-540-24624-4_3
- 45. Martin, A., Sapiro, G. and Seroussi, G. (2005) Is Image Steganography Natural? IEEE Transactions on Image Processing, 14, 2040-2050. https://doi.org/10.1109/TIP.2005.859370
- 46. Kamble, V. and Warvante, G. (2013) A Review on Novel Image Steganography Techniques. IOSR Journal of Computer Engineering, 1-4.
- 47. Rafiuddin, A. and Kumar, C. (2014) Secure Communication with Steganography— An Overview. International Journal of Recent Research and Review, 2, 58-62.
- 48. Maleki, N., Jalali, M. and Jahan, V. (2014) Adaptive and Non-Adaptive Data Hiding Methods for Grayscale Images Based on Modulus Function. Egyptian Informatics Journal, 15, 115-127. https://doi.org/10.1016/j.eij.2014.06.001
- 49. Chang, C., Chuang, C. and Hu, C. (2006) Spatial Domain Image Hiding Scheme Using Pixel-Values Differencing. Fundamenta Informaticae, 70, 171-184.
- 50. El-Alfy, M. and Al-Sadi, A. (2012) High-Capacity Image Steganography Based on Overlapped Pixel Differences and Modulus Function. Proceedings of the 4th International Conference, Book Chapter in Networked Digital Technologies, Dubai, 24-26 April 2012, 243-252. https://doi.org/10.1007/978-3-642-30567-2_20
- 51. El-Alfy, S. and Al-Sadi, A. (2011) A Comparative Study of PVD-Based Schemes for Data Hiding in Digital Images. Proceedings of the 9th IEEE/ACS International Conference on Computer Systems and Applications, Sharm El-Sheikh, 27-30 December 2011, 144-149. https://doi.org/10.1109/aiccsa.2011.6126588
- 52. Khodaei, M. and Faez, K. (2012) New Adaptive Steganographic Method Using Least-Significant-Bit Substitution and Pixel-Value Differencing. IET Image Processing, 6, 677-686. https://doi.org/10.1049/iet-ipr.2011.0059
- 53. Wang, M., Wu, I., Tsai, S. and Hwang, S. (2008) A High Quality Steganographic Method with Pixel-Value Differencing and Modulus Function. Journal of Systems and Software, 81, 150-158. https://doi.org/10.1016/j.jss.2007.01.049
- 54. Joo, C., Lee, Y. and Lee, K. (2010) Improved Steganographic Method Preserving Pixel-Value Differencing Histogram with Modulus Function. Journal on Advances in Signal Processing, 1-13.
- 55. Chen, J. (2014) A PVD-Based Data Hiding Method with Histogram Preserving Using Pixel Pair Matching. Signal Processing: Image Communication, 29, 375-384. https://doi.org/10.1016/j.image.2014.01.003
- 56. Hong, W. and Chen, S. (2012) A Novel Data Embedding Method Using Adaptive Pixel Pair Matching. IEEE Transactions on Information Forensics and Security, 7, 176-184. https://doi.org/10.1109/TIFS.2011.2155062
- 57. Lee, F. and Chen, L. (2010) A Novel Data Hiding Scheme Based on Modulus Function. Journal of Systems and Software, 83, 832-843. https://doi.org/10.1016/j.jss.2009.12.018
- 58. USC-SIPI Image Database Website. http://sipi.usc.edu/database/database.php?volume=misc
- 59. UWATERLOO-LINKS Image Repository Website. http://links.uwaterloo.ca/Repository.html
- 60. Gupta, P., Roy, R. and Changder, S. (2014) A Secure Image Steganography Technique with Moderately Higher Significant Bit Embedding. Proceedings of the 2014 IEEE International Conference on Computer Communication and Informatics, Coimbatore, 3-5 January 2014, 1-6.
- 61. Jafar, I.F., Al Na’mneh, R.A. and Darabkh, K.A. (2013) Efficient Improvements on the BDND Filtering Algorithm for the Removal of High-Density Impulse Noise. IEEE Transactions on Image Processing, 22, 1223-1232. https://doi.org/10.1109/TIP.2012.2228496
- 62. Jafar, I., Darabkh, K.A. and Al-Sukkar, G. (2012) A Rule-Based Fuzzy Inference System for Adaptive Image Contrast Enhancement. The Computer Journal, 55, 1041-1057. https://doi.org/10.1093/comjnl/bxr120
- 63. Jafar, I. and Darabkh, K.A. (2011) Image Contrast Enhancement Based on Equalization of Edge Histograms. IAENG International Journal of Computer Science, 38, 192-204.
- 64. Jafar, I. and Darabkh, K.A. (2011) A Modified Unsharp-Masking Technique for Image Contrast Enhancement. 8th International Multi-Conference on Systems, Signals and Devices, Sousse, 22-25 March 2011, 1-6. https://doi.org/10.1109/SSD.2011.5767489
- 65. Darabkh, K.A., Awad, A.M. and Khalifeh, A.F. (2015) New Video Discarding Policies for Improving UDP Performance over Wired/Wireless Networks. International Journal of Network Management, 25, 181-202. https://doi.org/10.1002/nem.1888
- 66. Darabkh, K.A., Awad, A.M. and Khalifeh, A.F. (2013) Intelligent and Selective Video Frames Discarding Policies for Improving Video Quality over Wired/Wireless Networks. Proceedings of the 2013 IEEE International Symposium on Multimedia, Anaheim, 9-11 December 2013, 297-300. https://doi.org/10.1109/ISM.2013.57
- 67. Darabkh, K.A. and Aygun, R. (2011) Improving UDP Performance Using Intermediate QoD-Aware Hop System for Wired/Wireless Multimedia Communication Systems. International Journal of Network Management, 21, 432-454. https://doi.org/10.1002/nem.768
- 68. Darabkh, K.A. and Aygun, R.S. (2006) Performance Evaluation of Sequential Decoding System for UDP-Based Systems for Wireless Multimedia Networks. Proceedings of 2006 International Conference on Wireless Networks, Las Vegas, 26-29 June 2006, 365-371.
- 69. Wang, Z., Bovik, A., Sheikh, H. and Simoncelli, P. (2004) Image Quality Assessment: From Error Visibility to Structural Similarity. IEEE Transactions on Image Processing, 13, 600-612. https://doi.org/10.1109/TIP.2003.819861
- 70. Darabkh, K.A., Awad, A.M. and Khalifeh, A.F. (2014) Efficient PFD-Based Networking and Buffering Models for Improving Video Quality over Congested Links. Wireless Personal Communications, 79, 293-320. https://doi.org/10.1007/s11277-014-1857-1