## 3 The Proposed Approach
### The Embedding and Shifting Phase  
After the training and prediction phase is completed, the scheme enters the embedding and shifting phase. In order to embed the binary secret data in the cover image, the three-dimensional PEH (3D-PEH) modification is used for embedding and shifting. However, in the previous work on 3D-PEH modification, only the points located in the first octant of the three-dimensional coordinate system are modified. This way of hiding secrets did not make use of most of the space in the three-dimensional coordinate system for embedding; hence, the embeddable pixels are relatively less and a less embedding capacity of images is made. Instead, our proposed method embed secret data in eight octants of the three-dimensional space, so that we possibly exploit much more space than previous approaches. We adopt rhombus prediction and double-layered embedding, the same as the way used in [5; 24], for the implementation of the proposed method to generate non-overlapping prediction-error triple \((e_{x},e_{y},e_{z})=(e_{3i-2},e_{3i-1},e_{3i})\) for feasible \(i\) (i.e., each pixel in the triple has four neighboring pixels). A 3D-PEH is generated by counting each non-overlapping prediction error triple, and the data embedding is realized by the obtained 3D-PEH modification using the designed reversible mapping. The data embedding procedure is briefly described as follows. First, adopt double-layered embedding to divide the cover image into two sets denoted as \"star\"and \"dot\"(as shown in Figure 4a). The star and dot sets are embedded with half of the secret data, separately. Except for the pixels located in borders, the pixels of the star or dot set are scanned from left to right and top to bottom to derive the cover sequence \((p_{1},\dots,p_{n})\). The scan orders for star and dot pixels are shown in Figure 4b,c. Figure 3: The structure of our MLP neural network. Then, the 4-neighbor pixels of each \(p_{i}\) are introduced to the trained MLP to obtain its predicted value \(\hat{p}_{i}\). The predicted value is used to determine the prediction-error sequence \((e_{1},\ldots,e_{n})\), and the sequence is divided into the prediction-error triples \(e_{x},e_{y},e_{z}\). The prediction-error \(e_{i}\) can be obtained as  
\[e_{i}=p_{i}-\hat{p}_{i}. \tag{2}\]  
Lastly, modify each prediction-error triple \((e_{x},e_{y},e_{z})\) to be \((e_{x}^{*},e_{y}^{*},e_{z}^{*})\) and get \((\tilde{p}_{x},\tilde{p}_{y},\tilde{p}_{z})=(\hat{p}_{x}+e_{x}^{*},\hat{p}_{y} +e_{y}^{*},\hat{p}_{z}+e_{z}^{*})\) to embed data based on the 3D-PEH in the method shown in Tables 3-5. The 3D-PEH mapping method is divided into seven types: Type \(A\) to Type \(G\). \begin{table}
\begin{tabular}{c c  
\begin{table}
\begin{tabular}{c c c c c c} \hline
**Type** & \(\mathbf{(e_{x},e_{y},e_{z})}\) & **Secret Bits** & **EC (bits)** & \(\mathbf{(e_{x}^{*},e_{y}^{*},e_{z}^{*})}\) & \(\mathbf{(\tilde{p}_{x},\tilde{p}_{y},\tilde{p}_{z})}\) \\ \hline \multirow{4}{*}  
mapping for data hiding is revertible by checking if one point in the mapping diagram can be reached by multiple points. Figure 5: _Cont._  
* _Step 4:_ 1. _Get three bits from_ \(E=\{0,0,0,0,0,0,1,1,-1,\mathbf{1,0,0,0,1,0}\}\)_:_ \((e_{x},e_{y},e_{z})=(1,0,0)\)_. This is a Type-_\(C\) _case._ 2. _Get three bits from_ \(S=\{0,0,0,1,1,0,\mathbf{1,1,1,0}\}\) _if the secret bits are_ \([1],[1],[1]\)_. Since the secret bit is_ \([1],[1],[1]\)_, we have_ \((e_{x}^{*},e_{y}^{*},e_{z}^{*})=(2,-1,0)\)_._ 3. _Get three units from_ \(P=\{210,99,131,65,72,162,17,19,25,\mathbf{161,25,71,86,95,47}\}\)_. and derive_ \((\tilde{p}_{x},\tilde{p}_{y},\tilde{p}_{z})=(161,25,71)+(1,-1,0)=(162,24,71)\) _The results of this step are_ \(E^{*}=\{0,0,0,-1,0,0,1,1,-1,2,-1,0,\dots\}\) _and_ \(\tilde{p}_{x}=\{210,99,131,64,72,162,17,19,25,162,24,71,\dots\}\)_._
* _Step 5:_ 1. _Get three bits from_ \(E=\{0,0,0,0,0,0,1,1,-1,1,0,0,\mathbf{0,1,0}\}\)_:_ \((e_{x},e_{y},e_{z})=(0,1,0)\)_. This is a Type-_\(C\) _case._ 2.