IEEE standard – hidden AQL code for screen communication

HA-QL (Hidden Asynchronous Quick-Link) is a hidden modulation mode among Screen-2-Camera operating modes those are being standardized at IEEE 802.15.7m. This post describes what it is for and how it operates.

Figure 1 – Example of mono-color code displaying with video on a screen. The additional intensity modulator will make this code imperceptible to human eyes.


The name Hidden A-QL briefly describes how it operates. The mapping from bits into the screen cells during modulation in HA-QL shall follow nearly the same as that of A-QL. However, to make the code imperceptible to human eyes (or less noticeable by human eyes if the code is not totally hidden required), an intensity modulator is added at the end of the modulation process.

So in this post, we will discover the method to modulate light intensity for the Tx on the screen.


Getting started with screen intensity modulation

Figure 1 displays a mono-color (black and white) code onto the screen display. Just not care about how Rx can decode the data, the way how human eyes see it is discussed here.

The intensity for 8-bit-color displaying ranges from 0 to 255. I have created a Labview software to modulate the intensity of the code, and Figure 2 gives examples of the resulting code when the intensity is controlled.

Capture 1.PNG
Figure 2 – Modulation of the intensity applied to the mono-color code

So, it is feasible that we can add the intensity modulator after the bits-to-intensity mapper. Instead of using the maximum intensity for the ON state (i.e., 255), we can use lower intensity (i.e., <255) for the ON state while the OFF state is still at 0. At the amplitude =10, the code is less perceptible to our eyes. Depending on the requirement, in some scenarios, the code is required to be hidden (totally); however, the reduction of the ON amplitude shall degrade the communication performance. Accordingly, the code is modulated at a gradient intensity (partially visible) for some applications.


Practical data transfer test over gradient screen 

Unlike the A-QL, HA-QL is challenging for Rx in determining which specific area on the screen is used for modulation. The reason is that HA-QL is hidden, and Rx needs to know the code area before it demodulates the data within the code.

Accordingly, in most of our application, a full-screen modulation mode is applied. Figure 3 and Figure 4 show examples of our Tx/Rx in practice.

Capture 2.PNG
Figure 3 – Tx modulation at different intensity amplitudes
Rx - 20 intensity.PNG
Figure 4 – Example of Rx demodulating the intensity at a particular amplitude modulated (amplitude =20)

An analysis of how the camera responses to the intensity modulation is recorded as in Figure 5. Just care about the distance between the ON and the OFF states, it is predicted that the pixel amplitude of camera is proportional to the screen amplitude.

Figure 5 – Pixel amplitude responses to the screen amplitude modulation, 16×16 cells Tx is applied in the test

Figure 6 records the channel amplitude response. It is seen that the amplitude response is nearly linear. The communication performance thus depends on the amplitude used at Tx.

Figure 6 – Amplitude response curve

An implementation demo is captured in Figure 7.

Figure 7 – An implementation of HA-QL system (Rx User Interface)



  • This post is a basic start to operate the HA-QL code. It shows how the gradient code (or hidden code) can be generated.
  • Note that the communication performance of this method depends so much on the intensity modulation; so in the next post, I will show the other methods (or improvement techniques) to generate the hidden code with better communication performance. The 2D frequency domain is a keyword.