# Enhanced Joint and Separable Reversible Data Hiding in Encrypted Images with High Payload
## 2 Related Work  
In this section, we explain the important and related results of the referenced papers to be compared with our research. [PERSON] [15], encrypted the original host image by using an encryption key. The pixels in the original host image are decomposed into bits and a random sequence is determined by an encryption key using standard stream cipher. The exclusive-or results of original bits and pseudo-random bits are calculated to encrypt the original image. Then, the encrypted image is divided into non-overlapping blocks sized \(s\times s\), and according to the data-hiding key, each block is divided into two sets, \(S_{0}\) and \(S_{1}\), pseudo-randomly. Each block is capable of carrying one bit. If the bit to be inserted is 0, then the three least significant bits (LSBs) of each pixel in set \(S_{0}\) are flipped. On the other hand, if the bit to be inserted is 1 then the three LSBs of each pixel in set \(S_{1}\) are flipped. Thus, the embedding process is done. For data extraction and image recovery, the receiver first decrypts the embedded encrypted image. Then, the decrypted image is partitioned into non-overlapping blocks sized \(s\times s\). According to the data-hiding key, the pixels of each block are divided into two sets, \(S_{0}\) and \(S_{1}\), pseudo-randomly in the same way as before. For each decrypted block, two new blocks, \(B_{0}\) and \(B_{1}\), are obtained. In \(B_{0}\), all three LSBs of each pixel in \(S_{0}\) are flipped, and in \(B_{1}\), all three LSBs of the pixels in \(S_{1}\) are flipped. One of \(B_{0}\) and \(B_{1}\) is the original block, and the other is the three LSBs flipped block. To determine which one is the original block, [PERSON] [15] proposed a fluctuation function\(f_{Z}\) to calculate the smoothness of \(B_{0}\) and \(B_{1}\) as follows:  
\[f_{Z}=\sum_{u=2}^{s-1}\sum_{v=2}^{s-1}\left|p(u,v)-\frac{p(u-1,v)+p(u,v-1)+p( u+1,v)+p(u,v+1)}{4}\right| \tag{1}\]  
where \(p(u,v)\in B_{\mathrm{c}}\) for c = 0, 1. In [16], [PERSON] et al. ameliorated data the extraction and image recovery part based on [PERSON]'s method. Firstly, they proposed a new function as (2) where more pixels are considered to reduce the bit error rate. \[f_{\mathrm{H}}=\sum_{u=1}^{s}\sum_{v=1}^{s-1}\left|p(u,v)-p(u,v+1)\right|+ \sum_{u=1}^{s-1}\sum_{v=1}^{s}\left|p(u,v)-p(u+1,v)\right| \tag{2}\]Secondly, data extraction and image recovery is done according to the descending order of the absolute smoothness difference between two candidate blocks. Finally, side match technique is used to achieve a much lower error rate. In order to further reduce the error rate, [PERSON] et al. [17] introduced a new more precise function to calculate the fluctuation of each image block. They employed two, three, or four neighboring pixels according to the location of each pixel. Furthermore, the data embedding ratio is also considered in this technique. In these systems [15; 16; 17], the encrypted image is divided into blocks and the spatial correlation in the block cannot fully reflect the smoothness of natural images, especially when the block size is small. The constraint and centralization of local pixels will cause unreliability in the fluctuation measurement, which is based on the smoothness of natural images. Therefore, in the proposed work, we thoroughly avoid the idea of block division to reduce the bit error rate. Based on prediction error, [PERSON] and [PERSON] [20] proposed two RDH techniques: joint and separable. In joint method, they divided the encrypted image into two sets: \(T_{\text{Qual}}\) and \(T_{\text{Forb}}\), according to the data-hiding key. Then, only pixels in \(T_{\text{Qual}}\), which are about half of the encrypted image, are used for data embedding. For inserting information in data hiding, pixels in \(T_{\text{Qual}}\) are divided into groups, and each group is composed of \(m\) pixels. One bit of information can be embedded in one group. For data extraction and image recovery, the receiver first decrypts the embedded encrypted image.