## 3 Reversible Watermarking Based on intDCT
### Introduction of Location Map  
To solve the above problems, we introduce the location map [22; 37]. The location map is a bit array that expresses the positions of coefficients where the information is embedded. The location maps enable specifying for each frame whether the information is embedded in the frame and, if so, in which band. We can also select hiding coefficients in an adaptable way, which is reserved for future work. The location map is embedded as a portion of the payload. The location map is stored into the coefficients in the highest frequency domain, according to Figure 3. In case of a frame length \(N=2048\), and the number of segments \(M=16\), then the location map is embedded into the [2032-nd, 2048-th] coefficients. For the reverse process, the 16-bit map in the highest frequency domain is referred to in order to extract the embedded data and reconstruct the original data. Thus, a shorter location map is desirable to save capacity. To shorten the location map, we divide a frame with \(N\) DCT coefficients into \(M\) blocks, where \(M\) is a divisor of \(N\). Then, we select the appropriate blocks to expand to reserve hiding capacity. The location map is embedded into DCT coefficients from the highest frequency domain within the range of \(N-M+1\leq i\leq N\). Suppose \(m\) (\(1\leq m\leq M\)) is the index of blocks, where each block includes \(B=N/M\) DCT coefficients with \(i\) as the index of coefficients. We introduce a location map \(\mathbf{\varphi}=(\varphi(1),\ldots,\varphi(M))\), where \(\varphi(m)=1\) means that the information is embedded in the \(m\)-th block, or \(\varphi(m)=0\). Suppose the number of expanded blocks is \(M_{emb}\) and the capacity is \(M_{emb}/M\) [bit/sample]. In our work, we use contiguous blocks for embedding. Therefore, \(\mathbf{\varphi}\) is set as follows:  
\[\varphi(m)=\left\{ \begin{array}{ll}1&M_{b}\leq m<M_{b}+M_{emb}\\ 0&\text{otherwise}\end{array} \right. \tag{21}\]  
Here, \(1\leq M_{b}\leq M-M_{emb}+1\) is the position of the first block for embedding. Since the inverse intDCT of the expanded coefficient does not ensure that the generated time-domain data fit within the limit of the 16-bit sample, we need to check whether  
Figure 3: Illustration of expansion and hiding in expanded DCT coefficients with location map \(\varphi\) (length = \(M\) bits). embedding data into a block causes overflow. To do this, we embed the data block by block and check if the time-domain data overflow. If the amplitude of time-domain data is estimated to be larger than 32,767 after expansion, the blocks that may result in overflow are not to be selected to embed data, i.e., \(\boldsymbol{\varphi}=\boldsymbol{0}\). Note that even when the overflow occurs, we need to embed the \(M\)-bit location map into the DCT coefficients. When \(\boldsymbol{\varphi}=\boldsymbol{0}\), we cannot embed the hash value into that frame, which means we cannot verify the integrity of that frame. However, since one frame is around 32 ms to 128 ms, the absence of a hash value in one frame has almost no effect on tamper detection as long as other frames have hash values. As the point of novelty, a location map is used to control the segments with or without embedding. The proposed method is superior to the previous works [12; 20], because these methods do not achieve controllable embedding. The location map specifies 0 or 1 to determine the embedding in particular segments. If overflow can occur, the segment is skipped for embedding in the proposed method. Data loss occurs in the previous works [12; 20], and the discarded data are irreversible. By the proposed method, in the case of overflow, the location map indicates the overflow segment with 0 in it. Theoretically, it is possible that a signal may have a location map full of zeros, and no verification is carried out if the data have high amplitude values. We discussed the controllable location map in Section 4.7 to explore how frequently this occurs.