*1.2. Prediction-Error Expansion*

In this subsection, we introduce the RDH paradigm we mainly follow: the *predictionerror expansion* (PEE) approach, which was first proposed by Thodi and Rodriguez [8]. PEE is a kind of histogram-shifting technique for which histograms of the feature elements (e.g., pixel values, errors between cover pixel values and their predicted values) are shifted to prepare vacant positions for embedding the secret bits. Since the most frequent feature elements determines the EC, and moreover, peaks of the prediction-error histograms usually center at zero, PEE has the advantage over the other histogram-shifting techniques in the spatial domain, especially for the cover image with flat pixel value histogram [9].

PEE can exploit spatial redundancy in the image. The correlation of local neighborhood of each pixel is taken into consideration. Following a certain order of scanning the original image, a *predictor* is used to make prediction of each pixel. Denote by *x*ˆ the predicted value of a pixel *x*. The prediction-error of *x* is defined as *ex* = *x* − *x*ˆ. One can *expand* the prediction-error *ex* to be *e*∗ *x* = *f*(*ex*, *m*) for some shifting operation *f* and a to-be-embedded bit *m* ∈ {0, <sup>1</sup>}. When the context is clear, we omit the parameter *m* in *f* to make formula concise. In the stego-image this pixel will be *x*˜ = *x*ˆ + *e*∗ *x*. As illustrated in [5],

$$e\_x^\* = \begin{cases} e\_\chi + m\_\prime & \text{if } e\_\chi = 0\\ e\_\chi - m\_\prime & \text{if } e\_\chi = -1\\ e\_\chi + 1\_\prime & \text{if } e\_\chi > 0\\ e\_\chi - 1\_\prime & \text{if } e\_\chi < -1 \end{cases} / $$

where *m* ∈ {0, 1} is a to-be-embedded bit. At pixel *x* at which *ex* ∈ {0, <sup>−</sup><sup>1</sup>}, a secret bit is embedded, while for pixel *x* at which *ex* ∈ { / 0, <sup>−</sup><sup>1</sup>}, the pixel value is shifted by 1 or −1. With prediction-errors at hand, the *prediction-error histogram* (PEH) can be created as *h*(*a*) = |{*i* : *ei* = *a*}| for each prediction-error *a*. Specifically, PEE can be implemented as *histogram modification* of the PEH, that is, expanding the bins of −1 and 0 and shifting the other bins to create space to ensure the reversibility. Such a paradigm has been extended to 2D-PEH (e.g., [10]), where the PEH is defined by *h*2(*<sup>a</sup>*, *b*) = |*i* : (*<sup>e</sup>*2*i*−1,*e*2*<sup>i</sup>*)=(*<sup>a</sup>*, *b*)|, and also 3D-PEH (e.g., [5]), where the PEH is defined as *h*3(*<sup>a</sup>*, *b*, *c*) = |*i* : (*<sup>e</sup>*3*i*−2,*e*3*i*−1,*e*3*<sup>i</sup>*)=(*<sup>a</sup>*, *b*, *<sup>c</sup>*)|. Here we have *f* : **Z**<sup>3</sup> → P(**Z**<sup>3</sup>) to be a mapping which realizes RDH, where P(*A*) denotes the power set of a set *A*, such that *f*(*p*) represents the set of marked prediction-errors for a prediction-error *p* (e.g., *p* = (*<sup>e</sup>*3*i*−2,*e*3*i*−1,*e*3*<sup>i</sup>*) for some *i*). As long as *f*(*p*) = ∅ for any prediction-error *p* and *f*(*p*) ∩ *f*(*q*) = ∅ for every two prediction-errors *p* and *q*, the reversibility of the mapping can be guaranteed. PEE has attracted considerable attention [5,8–27] since it can maintain low embedding distortion while at the same time provide sufficiently large payload in terms of high EC.
