ENHANCEMENT OF PIXEL-VALUE-ORDERING BASED DATA HIDING BY ROW BLOCK PARTITION

The development of information and communication technology that supports digital data transmission such as text, image, audio and video gives several effects. One of them is data security that becomes the main priority during the transmission process. Pixel-Value-Ordering (PVO) which is one of data hiding methods can be implemented to meet that requirement. It embeds data on maximum pixel and minimum pixel in a block which is a part of the carrier image. However, PVO has limitation, that only 2 bits per block can be hidden. To handle this problem, we propose a new approach by dividing blocks dynamically based on its complexity. These blocks are grouped into 4: smooth block, semi-smooth block, normal block and rough block. Using this method, the stego capacity can be improved up to 2.6 times in average from the previous one by keeping the quality stego more than 65 dB for all testing images.


Introduction
Data security has become one of the most important requirements in the progress of information and communication technology to transfer various data, for example audio, image, text and video. To satisfy this requirement, cryptography, steganography or their combination can be implemented in every data transmission [1,2]. Cryptography itself is a process that changes data from readable data into unreadable data using encryption key [3], while steganography is a technique to hide data in a medium without harming the media.
There are many steganography methods which are being developed, e.g. Reversible Data Hiding (RDH). It is able to embed data into the media, and then retrieve them using extraction algorithm without any defect [4,5,6]. This advantage makes RDH be one of the most commonly used methods for copyright and sensitive data protection such as military and medical data [7]. Some examples of the RDH method are histogram shifting (HS) and difference expansion (DE). Histogram shifting (HS) utilizes histogram which statistic component of embedding media (carrier) to embed data. The performance of HS highly depends on the pixel value with the highest number of occurrences, the characteristic and the number of zero and peak point of carrier [7,8]. Different with HS, DE-based embedding algorithm 78 Jurnal Ilmu Komputer dan Informasi (Journal of a Science and Information), volume 11, issue 2, February 2018 uses difference value of adjacent pixels to embed data. The higher of the difference, the greater of distortion of embedding media (stego) [9,10].
Another RDH method with DE framework is proposed by Thodi et al [11] called Prediction-Error-Expansion (PEE). Before embedding the data, PEE predicts the change of the pixel value that is used in the embedding process. This method is further developed by Li et al [12] in Pixel-Value-Ordering (PVO) by implementing a sorting concept to calculate the prediction value. Here, the second largest pixel value is used to predict the highest pixel value (maximum pixel value) and the second smallest pixel value is used to predict the smallest pixel value (minimum pixel value). However, this method only embeds data whose prediction value is 1, and ignores other values (they are not used for embedding data). This weakness is overcome by Peng et al [13] that propose a new predicting method which is able to embed the prediction value by 1 and 0, and perform 1shifthing of other values.
In that method, before embedding data, the carrier is divided into non-overlapping blocks whose size is same. These blocks are divided into 2 type: smooth and rough type. Here, only smooth block is used to embed data that a block can carry maximum of 2 bits of data which is embedded to the minimum and maximum pixel values, while the other pixels are ignored. The larger block size leads to the decreasing of the stego capacity. This problem is also explained by Wang et al [14] that the performance of PVO depends on the block size being used. So, it is necessary to find out a better concept of block division to maximize the embedding capacity.
Based on that problem, we propose a new approach to enhance embedding capacity at PVO. This can be summarized as follows: First, we will calculate the block's complexity using the new algorithm to increase the performance. Second, based on the block's complexity value, we divide the block into some types. In this case, the higher of the complexity value, the smaller of the blocks embedding capacity. Also, the smaller of the complexity value means the pixel value is more distributed and the embedding capacity is higher. The blocks are grouped into 4 types: smooth block, semi-smooth block, normal block, and rough block. In this case, the rough block is not used for embedding data. This is done to keep stego image quality still good.
The paper structure as follows. Section 2 explains the related works. Section 3 describes our proposed method. The experimental result of the proposed method is provided in Section 4. Finally, it is concluded in Section 5.

Pixel Value Ordering (PVO) based Data Embedding
Pixel-Value-Ordering is firstly proposed by Li et al [12] by utilizing the sorting process to calculate a prediction value (expanded prediction error). It is used to embed data, so the stego image distortion can be kept low. In the first step, it is required to divide the carrier into blocks, = { 1 , … , }. function. Then, second largest pixel ( ( −1) ) is used as a predictor for maximum pixel ( ( ) ). The prediction value is in equation (1).
After this value is obtained, data can be embedded with = 1. If > 1, then ( ) is shifted 1 point and if = 0, then the pixel value does not change ( ′ ( ) = ( ) ). This condition also applies to the smallest pixel value (minimum pixel). While for extraction process, the prediction value of ′ ( ) can be taken using equation (1) whose predictor pixel is ′ ( −1) . The data are extracted if only ′ ∈ {1,2} and the other ' values are not data to be embedded. More detailed explanation of the extraction process is in [12].

Improve Pixel-Value-Ordering
This method is proposed by Peng et al [13] which is developed based on PVO, where it is processed by calculating the expanded prediction error value. The development result on ( ) is provided in equation (2).
This development can utilize = 0 to embed data, so the embedding capacity increases. In this method, equation (2) is also implemented in minimum pixel ( (1) ) prediction. Similarly, in [12], the extraction process is also carried out by computing the predicted value of ′ ( ) and ′ (1) with the concept of equation (2). The data are only (1) . Further extraction process can be found in [13].

Dynamic Block Partition in PVO
This approach is proposed by Wang et al [14] which aims to enhance the performance of PVO. This is done by dividing blocks that used for data embedding according to block's smooth level (NL). Its result determines the complexity of blocks which are then divided into 3 types.
Flat type is the smoothest block, which is able to carry more data. In this type, a block is divided into 2×2 sub-block which all are used to embed data. The maximum capacity of this type, whose size is 4×4, is 8 bits. The second type is normal block which is same as blocks in Peng et al [13] and Li et al [12] methods. The data embedding is carried out in maximum and minimum pixels whose capacity is 2 bits. The last type is rough block. It is not used for data embedding, so the pixel value before and after embedding are same.

Methods
In this research, we adopt Wang et al [14] concept that divides blocks into some sub-blocks. Different with that approach, we divide block into several groups based on its row. This is done because [14] causes uncertainty about the effect of block division, such as dividing blocks based on row-byrow in several block sizes (i.e. = ∈ { , , , , , , }, = row, = column). We predict that if the image is divided based on column, the different value between one pixel and another pixel in the same column is high. It affects the stego image quality after embedding process.

Calculating Block's Complexity Value
In the first step, the proposed method divides carrier into non-overlapping blocks, = { , … , }. Every block is divided into several sub-blocks based on its pixel complexity (∆) which can be calculated using equation (3).
Here, is the rows index and − is the second latest pixel from a row in a block. The example of block complexity is depicted in Figure  1 that shows a calculation process of block size of 5×5.
As shown in that figure, the first block is divided into sub-blocks, in this case is 5 subblocks. Every sub-block is sorted in the ascending mode. The green pixel is one that is used for calculating the block complexity. In example, block complexity is 0.8.

Dividing Block Into Sub-Blocks
For dividing blocks, we differentiate them to several types using as the threshold of block complexity with following condition:

Smooth block
This type divides a block into sub-block if ∆≤ . Every sub-block is used to embed data with maximum capacity bits.

Semi-smooth block
Semi-smooth block is a block with condition < ∆≤ . Here, we divide a block into 2 sub-blocks equally. Every sub-block is used to embed 4 bits data.

Normal block
A normal block is not divided into sub-blocks. This block type is used in Peng et al method [13]. Normal block happens if < ∆≤ whose maximum capacity is 2 bits.

Rough block
A rough block occurs if < ∆ and this type is not used for data embedding. So, the block pixels do not change.
Those dividing schemes are used to achieve the high embedding capacity. More details of block partitioning process is presented in Figure 2. It is worth to note that semi-block is differentiated into 2: odd value and even value. Those semi-blocks can be seen in Figure 2(b) and 2(c) respectively.

Data Embedding
This data embedding process uses the algorithm proposed by Peng et al [13]. Its process is briefly described in Figure 3  the complexity of every block is calculated using equation (3). The calculation determines the block type and its capacity; (d) Embedding Data, this process is running based on the type of block that has been predetermined. The embedding process in every block is described as follows: LM = 0, smooth block. This block generated sub-block that every sub-block is processed for embedding data; LM = 0, semi-smooth block. This type has 2 sub-blocks and data embedding process is done in every sub-block; LM = 0, normal block. This block type has similar characteristics to that use in [13]; LM = 0. Rough Block. This type will not be used to embed data because it can increase distortion of stego image; and LM = 1. This block is not used in the embedding process because it contains pixel that causes either underflow or overflow; (e) Constructing stego image, in this step, stego image produces a new pixel value that is resulted in embedding process.

Data Extraction and Pixel Value Recovering
Similar to the embedding process, we also use the extraction process from Peng et al concept [13]. It requires stego image and location map as shown in Figure 3(b). The data extraction process has the following steps: (a) Partitioning stego image, it divides stego image into blocks that have the same size as the blocks in the embedding process; (b) Calculating blocks complexity, because pixel position does not change after the embedding process, we can confirm that the complexity value does not change, either; (c) Extracting data and restoring pixel value, this process depends on the number of sub-blocks that has been generated in the previous step. For LM = 1 and LM = 0 with rough block, it is not extracted because the pixel value before and after embedding does not change.  Furthermore, this pixel does not carry data, either; (d) Constructing carrier image, the original pixel value in the extraction process is then used to construct the original image. The example of embedding and extracting processes can be presented in Figure 4(a) and 4(b), sequentially. It uses smooth block with complexity value 0.8 which has 5 sub-blocks. In more details, there is a red and blue pixel in every sub-block. The red indicates minimum pixel value while the blue one is maximum pixel value. Only in these pixels the embedding process is performed. The ′ and ′ values that have been shown are calculated from the first sub-block. Here, the embedding data is only done in the maximum pixel with = and = . Additionally, the minimum pixel is not used for data embedding because it has = − . According to the algorithm in [13], the pixel is not shifted by 1 point

Results and Analysis
For evaluating the proposed method, we use image carriers from USC-SIPI [15]     embedding is generated from the Matlab's rand() function. The proposed method is developed and tested in the following environment: Windows 10 Professional 64-bit, Intel(R) Core(TM) i5-4200U CPU@ 1.60 GHz Processor, and 4096 MB of memory. The example of carrier, stego and extraction images can be seen in Figure 5.

Quality and Capacity of Stego Image
The quality of stego image is measured by calculating the PSNR. Higher PNSR means better stego image quality. The testing result is provided in Table 1 which shows the quality of the proposed and main reference method [13]. In this evaluation, we use block of 4×4 with 1Kb data. It is shown that the quality of stego images of the proposed method is slightly lower than that of Peng et al [13]. On average, the PSNR value decreases by 1.256 dB. The highest decrease happens in the 'Boat' image, which is 1.97 dB. The decrease occurs in all image because the proposed method has more shifted pixel. As what has been described before, shifted pixel is a pixel that is not used as the carrier and the value is shifted by 1 point ( ∉ { , } ∉ { , }). The proposed algorithm is also compared with other ones whose result is provided in Table  2. It shows that our method outperforms that of [17] in all test images. For method in [18], our method is better for medical images (i.e. Abdominal, Hand, Head, and Leg). This happens because in [17], there is no block selection before embedding the data; while in [18], pixel grouping is implemented for embedding the data. This method is suitable in non-medical images but does not give significant effect in the smoother carrier images, such as medical images. Different from those methods, our approach has relatively significant effect even in the smooth carrier images. Furthermore, smoother carrier image leads to increasing the quality of the respective stego images. Overall, PSNR value higher than 30 dB is assumed to be good.
The result of the capacity testing is presented in Table 3, which compare that of the proposed and reference methods. It shows that the proposed method is able to improve the stego capacity significantly. On average, the capacity of carrier increases 2.6 times that of the reference method. This achievement happens in smooth images (i.e. Abdominal, Chest, Hand, Head and Leg) because they have more distributed pixel value than the others. The biggest increase occurs in the 'Hand'  For further evaluation, we also measure the effect of various ∆ with respect to = , by implementing 6 scenarios as provided in Table 6. Here, the value of ∆ is varied for each block type. The experimental results of these scenarios are presented in Table 7, which shows the average of PSNR and capacity of each image group. It depicts that decreasing ∆ leads to increasing the PSNR; but, consequently, it reduces the capacity. However, further lowering ∆ will not affect both PSNR and capacity, as shown in scenarios 4, 5 and 6. This trend happens to both medical and nonmedical image groups.

The Effect of Block Size Change and Threshold on Stego Image Quality
Further performance evaluation of the proposed method is carried out by measuring block sizes and threshold changes, depicted in Figure 6 and 7. Each of these factors is described in the following subsections.

The Effect of Block Size Change
The purpose of this testing scheme is to evaluate the stego image quality of proposed method, when the block size has become larger. In this experiment, we use 1Kb of data with threshold 10 for all carrier image. The experiment result is shown in Figure 6. Especially for the 'Baboon' image, we only display image quality up to 6×6. This is because from the block size of 7×7 to 10×10, the image is not able to embed all data.
Overall, the stego image quality is getting better as the block size increases. The best improvement is shown by medical images with sharply upward trend line compared to nonmedical images. On average, the quality of stego images increases 0.5 dB for each block size increment. This is achieved because the larger block size leads to smaller number of shifted pixels. This condition is shown in Table 4 that represents the effect of block changes on the quality and number of shifted pixels. When the block size is 4×4, the stego quality is 68.86 dB and shifted pixel is 1729. This value increases 1.34 dB to 70.2 in block of 8×8. This increase is followed by the decrease of the number of shifted pixels to 1141.

The Effect of Threshold Change
We also perform image quality testing based on threshold changes. This testing uses block of 4×4 with 10Kb of data. The result is provided in Figure  7, where the evaluated threshold values are between 1 and 20.
In the non-medical image group, the data cannot be inserted entirely when the threshold is 1. So, the quality on that threshold cannot be displayed. This also occurs in other images with various thresholds. For example, in the 'Baboon' image, we only show the PSNR value of threshold 14-20. Different with the medical image group, the data are successfully embedded at all threshold values.
Regarding the quality of stego images, greater the threshold values result to lower of the quality of stego images. This is because the threshold value and the number of generated shifted pixels is proportional, whose details can be found in Table  5. It shows the number of shifted pixel changes on the 'Abdominal' image based on threshold used. Furthermore, we find that when the threshold is 1, the quality image is 63.63 dB and shifted pixel is 2329. The quality decreases to 61.32 dB and to 59.54 dB when the thresholds are 5 and 11, respectively. The number of shifted pixel in each thresholds increases to 7516 and 13883. This means that if we decrease the number of shifted pixels, then the PSNR value increases and the security level gets higher.

Conclusion
In this paper, we have proposed a new data hiding method. It has been able to increase the capacity of the payload that can be embedded to the cover, significantly. However, as a trade-off, the quality of the stego data reduces. Nevertheless, this decrease is not significant, as it shows by the generated PSNR value. It occurs because the stego quality is affected by the number of shifted pixels. The more shifted pixels, the more the decrease of the quality. This condition will be reduced in our future work.