# Spectral Domain-Based Data-Embedding Mechanisms for Display-to-Camera Communication
## 2 Display to Camera Communication System  
The basic D2C system includes an electronic display on the transmitter side and a commercial camera on the receiver side. A wireless optical channel acts as a medium to transmit information between the two devices. Figure 1 shows a schematic block diagram of the proposed D2C model. First, the input data vector \(\mathbf{b}\) is converted into symbol \(\mathbf{S}\) via channel-coding and bits mapping. At the same time, the input image \(\mathbf{I}\) is subjected to DCT to obtain its frequency coefficients. Subsequently, a coefficient vector \(\mathbf{X}_{\mathbf{F}}\) is selected from the DCT image \(\mathbf{I_{F}}\), where \(\mathbf{X_{F}}\) contains the frequency coefficients preferred for embedding. The data are encoded into the coefficient vector using one of three different mechanisms: M1, additive; M2, multiplicative; or M3, exponential. After data embedding is completed, the embedded coefficient vector \(\mathbf{X_{E}}\) and the other frequency coefficients are concurrently transformed back into the spatial domain via the inverse discrete cosine transform (IDCT) to obtain the data-embedded image \(\mathbf{I_{E}}\). The image quality of \(\mathbf{I_{E}}\) is preserved despite the insertion of additional data; thus, the visual difference between \(\mathbf{I_{E}}\) and \(\mathbf{I_{ref}}\) is negligible. Later, \(\mathbf{I_{E}}\) and the reference image \(\mathbf{I_{ref}}\) are sequentially transmitted via the electronic screen as shown in Figure 2. These image frame sequences are displayed on the screen as a visual content for the human eye. The human vision system has a temporal resolution of 40-50 Hz, beyond which the flickers cannot be perceived [8]. Taking this into consideration, the transmit rate of the display, \(\mathbf{R_{D}}\) must be higher than the maximum threshold of the temporal resolution of human vision. Therefore, the image frames are sequentially transmitted through the display without any noticeable artifacts or flickers. Note that the purpose of sending \(\mathbf{I_{ref}}\), which is adjointly placed with \(\mathbf{I_{E}}\) is to support the decoding at the receiver. The frequency coefficients of the reference image are used to extract the embedded data from the frequency coefficients of the received data-embedded image. At the receiver side, a rolling shutter camera captures the intensity of display pixels that have passed through a noisy optical wireless channel. Due to the rolling shutter effect, a camera cannot capture all the transmitted image frames if \(\mathbf{R_{D}}\) is faster than the capture rate, \(\mathbf{R_{C}}\), of the camera [8]. Therefore, frame synchronization is achieved by capturing the transmitted image frames at least twice; i.e., \(\mathbf{R_{D}}\leq\frac{1}{2}\mathbf{R_{C}}\). By doing so, the camera is  
Figure 1: Schematic of the network architecture of the proposed D2C system. Figure 2: Sequential image frames of the displayed by the screen. able to capture all the displayed frames without losing any of them, and the decoding becomes easier. The noises in the channel affect the pixel intensity of the image, which varies markedly from the original ones. The captured images \(\hat{\mathbf{I}}_{\mathbf{F}}\) and \(\hat{\mathbf{I}}_{\mathbf{ref}}\) are subjected to a degree of geometric distortion and are susceptible to other distortions such as rotation, scaling, and translation (RST) effects. Therefore, a geometric correction technique is utilized to correct the image distortions. As the data are present in the frequency coefficients of the image, the corrected images \(\hat{\mathbf{I}}_{\mathbf{G}(\mathbf{E})}\) and \(\hat{\mathbf{I}}_{\mathbf{G}(\mathbf{ref})}\) are subjected to DCT. Next, the coefficient vectors \(\hat{\mathbf{X}}_{\mathbf{F}}\) and \(\hat{\mathbf{X}}_{\mathbf{F}(\mathbf{ref})}\) are extracted from the frequency-domain images \(\mathbf{I}_{\mathbf{F}}\) and \(\hat{\mathbf{I}}_{\mathbf{F}(\mathbf{ref})}\), respectively, and used for data decoding.