IEEE standard – A-QL code for screen communication

A-QL (Asynchronous Quick-Link) is a Screen-2-Camera operating mode being standardized at IEEE 802.15.7m. This post describes what it is for and how it operates.
Figure 1 – Example of color code displaying with video on a screen
And before we start talking about A-QL system, a short demo of it is here:

IntroductionThe use of statistic version of two-dimensional codes such as QR code is on the fade-out phase in the market when it cannot meet the demand for the higher amount of data delivery in addition to the decoration purpose. The dynamic version of QR could solve this issue. However, from my study and implementation of QR codes (including an implementation of the sequential transmission of a tri-color QR code), the existing code does not meet the need for sequential transmission protocol due to its huge amount of overhead per code and its delay-processing time at the receiver side to detect and track the code. Indeed, my programmed sequential color-QR system performed that no more than five codes can be delivered per second using a PC. The delay may delay even more in a smartphone application.Inevitably, a new design of two-dimensional code must provide comparable performance as QR does in a specific environment with critical features including quick-detection and tracking, rotation support, and compatibility with a variety of screen infrastructure and cameras. Also, it must outperform the performance of QR in term of transmission overhead and optimal frame packet, as the primary purpose of new screen code design. Also, the manner to support some possible modes at different data rates for some promising applications must be considered; this means the configuration of different PHY data frame formats is critically considered. Once these challenging issues are figured out, the newly designed code can potentially take over the place of any existing statistic-or-dynamic code from the commercial market.
What’s new in A-QL The A-QL system is a new design for multi-color, two-dimensional multi-cells code that aims to deliver tens of kbps (or higher) depending on the size of A-QL code via an optimal asynchronous sequential transmission protocol. This system can support challenging technical issues, including
  • Rotation support: Unlike QR code that supports rotation by identifying the known-patterns at the corners of the code, A-QL code recovers any rotation performed by a matrix transpose with the knowledge of rotation is bit-based. The performance of the proposed A-QL rotation correction at the output of the de-mapped information matrix outperforms the QR rotation-correction method, while the spatial redundancy consumed in A-QL is much minimal than QR rotation patterns.
  • Code detection and extraction: A-QL is designed with its surrounding borders to support a quicker and more reliable detection and extraction of the code. Edges detection algorithm is applied, and the proposed code-tracking processing delay is roughly several times less in compared with that of the QR code.
In comparing, the QR code extraction is solely based on its known patterns located at four corners. However, the more we work on the two-dimensional code, especially sequential transmission of the code, the more necessary of the outer bolder is recognized.
  • Asynchronous bits: The reference cells in A-QL is to deliver clock bits, supporting the Rx in detecting and ignoring the rolling-affected images. Also, any time-variant frame rate camera with its shutter of either global shutter or rolling shutter applies to the proposed code wherein asynchronous bits are integrated.
  • Multiple essential features added related to the modulation and coding. A reliable asynchronous sequential communication is provided along with the following features (1) The downsampling of a time-variant frame rate Rx, (2) the bit-to-intensity mapping for tri-band color transmission, (3) the channel estimation and color calibration supportive by transmitting orthogonal bit sequences. Particularly processing guidance at Rx side is described for a complete tutorial of A-QL system.
An effective FEC as one of the second generation of FEC is also ready-implemented in this system. The choice of a combination of inner FEC and outer FEC is naturally suitable for this system; also, it co-exists with current and ongoing OCC standards of IEEE SA. The implemental results reveal that bit-error-rate (BER) can be achieved at lower than 10-5 within several meters indoor. Practical measurement of BER will show that A-QL works reliably at greater than 3m-distance at a wide viewing angle greater than 30-perspective degree.The practical implementation of A-QL code has two versions, 16×16 cells, and 32×32 cells. Additionally, there are multiple configurable parameters inside the system such as the size of cells (in pixels), the outer bolder size, the number of reference cells, the number of colors, and the configuration of FEC, etc. The configuration of these parameters is application-based, as approved by IEEE TG7m standardization committee.
A-QL System
  1. Reference Architecture
Figure 2 shows the A-QL system diagram with light cells blinking a combination of three primary colors (band i, j, k). The valid combination of these three bands is described in the standard. Among the possible combinations, the possible primary wavelength options for tri-color bands are also standardized by IEEE 802.15.7-2011 std. to guarantee the quality of wavelength de-multiplexing. The selection of colors in A-QL system shall be configured as the app-based solution by reading a PHY PIB attribute called phyAqlColorSelection. An example of color band combination (110, 010, 000) for bands i, j, k respectively called red, green, and blue (suitable in most of the screens) is used throughout this section.
3 (D4-Fig 201)- A-QL system with color calibration.png
Figure 2 – A-QL block diagram
As illustrated in Figure 2, the data sequence (including PHR, PSDU, and Ab bits) shall be feed into the channel encoder. This A-QL channel encoder controls the intensity of RGB channels (Pi, Pj, and Pk) based on the input bits. However, unlike the Color Shift Keying (CSK) system in PHY III operating modes of IEEE 802.15.7-2011 std., the intensity modulation of each color channel in A-QL system is independent of the others, and there is no requirement of color combination such as Pi +Pj +Pk =1 as in the CSK system. This proposed intensity mapping manner is because A-QL modulation operates with a flickering clock rate (e.g., 10Hz), and no effort is made to generate a desired color within the triangle IJK on the xy color coordinates.2. 2D color code designA conceptual design of A-QL code for sequential transmission is shown in Figure 3. The A-QL code consists of multiple features for their purposes. The outer area of the code is to support the detection of the code, while the inner area is to carry data. Similar to the configurable ability of color selection, the configuration of the size of individual cells to be modulated and the size of the outer border is of desire. The PHY PIB attributes (phyAqlCellSize and phyAqlBolderSize) are read by Tx and Rx for the proper configuration.Likewise, the number of cells on the A-QL code (m×n) is read by the PHY PIB attribute phyAqlNumCells. Our implementation provides two exemplary versions of A-QL, 16×16 and 32×32 cells.
2 (D4-Fig 200)- A-QL code design n allocation of bits.png
Figure 3 – A-QL design, (left) Design example of 16×16-cell A-QL code, (right) Allocation of bits onto A-QL code
Among the color cells of the inner area of the code, four cells (each cell is 2×2) at the four corners of the code called reference cells are to support the receiver in identifying the starting corner of the code. The intensity of these reference cells does not change over time.  Also, a corner has the number of reference cells that is configurable via the PHY PIB phyAqlNumCellReference for a proper selection of relative ratio between the reference cells area and the entire code area.The remaining cells are to be modulated by their intensity to transmit data, called data cells.3. Asynchronous bits InsertionTo support Rx in dealing with its frame rate variation, Ab shall be generated and inserted into every block of data bits, and then, error correction is applied, and coded bits are mapped into intensity. The number of Ab bits generated for each block of data is configurable via PHY PIB phyAqlNumAb.4. Error CorrectionThe PHY header field (PHR, optional for A-QL), the PHY service data unit (PSDU), and Ab bits are FEC coded to protect from the imperfect channel as described as follows.

Table 1 – FEC choices for A-QL

 Outer codeInterleaver Inner code
PHR, PSDU, Ab bitsRS(15,7)n=15CC (1/4)
RS code, either RS(15,7) or RS(15,11), shall be applied to A-QL system.Additionally, the inner code based on CC(1/3) with constraint length seven (K=7) shall be optionally used for each block of data.The selection of error correction is configurable by the value of PHY PIB attribute phyAqlFec.When both RS(15,7)/ RS(15,11) and CC(1/3)/ CC(1/4) are applied, a block interleaver with the interleaver height n=15 shall be implemented between the inner FEC layer and the outer FEC layer. The description of the block interleaver is described in IEEE 802.15.7-2011.
A-QL Rx Decoding TechniquesA channel estimation sequence shall be added as an extended subfield after the optional PHR subfields to support a receiver dealing with multi-color imbalance or multi-color interference.Three Walsh codes with the length of four, including W(1,4) = {1,–1,1,–1}, W(2,4)= {1,1,–1,–1}, and W(3,4)= {1,–1,–1,1}, are used at bands R, G, B respectively for the channel estimation before color calibration. Each binary of the Walsh code is transmitted multiple times thus an accurate channel estimation can be obtained. In the 802.15.7-2011 standard defines twice repeating the code, though practically, the length of repeating is customized depending on the accuracy requirement of the color calibration.
4 (D4-FIg 202)- A-QL - ---preamble n Channel estimation seq.png
Figure 4 – A block with the preamble and Walsh code for color calibration
From the received intensity matrix of a known channel estimation sequence, the compensation of color intensity is performed. Figure 5 shows the impact of using the Walsh sequence in our system.
Figure 5 – Example of Walsh training outcome at Rx

  • This first post of A-QL introduces its fundamentals and operation.
  • A-QL characteristics and its technical contributions are also discussed.
  • The next post will discuss the performance evaluation for this system from an implemental perspective.
  • Single-carrier and color mapping as in A-QL is not the unique solution for Screen-Camera OCC. Soon, I will share an implementation of Multi-carrier modulation over Screen with you. This Screen-OFDM system is even more interesting.