Improving Performance of the Multiplexed Colored QR Codes

The vast popularity and useful applications of the QR code were the incentives that encourage the research towards improving its storage capacity and performance. A colored quick response (QR) algorithm is proposed, devised and tested to expand the capacity of the black and white modules to hold colored modules that can fold as many as those available in the 8 bits red-Green-Blue (RGB) color code. Fast Multiplexing Technique (FMT) is established to improve the performance and the storage capacity of the QR color code by multiplexing the black/white QR codes into RGB color shades then folding them into the QR code Modules. Comparative experiments with the classical multiplexing technique -MUX systemproved that FMT has a much better performance, (exponentially faster), while maintaining the capacity multitude to 24 folds that of the classical QR code. Keywords—Quick response codes; colored quick response codes; data capacity enhancement; multiplexing quick response color coding


I. INTRODUCTION
QR stands for Quick Response indicating that the code contents should be decoded very quickly at high speed. It is a 2-dimensional code that have become widely popular in industry, economics, security and education. It is more useful than a standard barcode because it can store (and digitally present) much more data. It has been utilized in diverse applications including Mobile operating systems, Virtual stores, Website login, Wi-Fi network & TOTP, Payment, Robot Navigation and Education. It can hold information and data, with diverse format and types including URL links, Geo coordinates, Wi-Fi and text. QR code, not only supported by smart systems and many of the modern and smart cell phones but also, its encryption feature could be exploit as a security in terms of data tampering [1]. QR codes system became popular, not only, due to its fast readability, but also because of its greater storage capacity [2,3,4].
The versions of the QR code range from version 1 to version 40, each of which has different module configuration and number of modules. The module refers to the black and white squares that make up QR code [5,6,7]. The capacity of a given QR code version depends upon the error correction level, L (low), M (medium), Q (quartile), H (high) where 7%, 15%, 25% and 30%, respectively, of symbols can be corrected in case the original code has been damaged [7].
The Quick Response (QR) code is invented by the one of major Toyota group companies in 1994 and was initially used for tracking inventory in vehicle parts manufacturing and approved as an ISO international standard (ISO/IEC18004) in June 2000 [8]. A QR code is a type of matrix or twodimensional barcode that stores up to 4296 characters of information and it is designed to be read by smartphones [4]. A QR code consists of black modules arranged in a square pattern on a white background. The information encoded may be text, a URL or other data [6]. The idea behind the development of the QR code is the limitation of the standard Universal Product Code (UPC) barcode information capacity (that holds, only, 20 characters) [8]. QR codes system became popular due to its fast readability and greater storage capacity [3,9,10].

A. Types of Two Dimensional Code
There are many types of 2-D Code [11,12], each of which, has its unique structure. The structure of the QR code is shown in Fig. 1(A), while, Fig. 1(B) [13], depicts the structure of several other types of two-dimensional codes. Yet, QR codes are utilized most often for its higher data storage capacity. Its specifications offer many more advantages than that of the onedimensional code. The advantages of QR Code include:  Reduced space.
 Durability against soil and damage.
 High data capacity.
 Supporting more languages.
 Supporting of 360-degree reading.

B. Improving QR Capabilities
Influenced by QR code structural flexibility, many applications have been focusing in improving QR code data capacity and its tolerance to distortion. Some of these techniques focus on increasing data capacity including data hiding, data compression, Multiplexing and colored QR codes techniques [13][14][15][16][17][18][19][20].

1) Data hiding techniques:
Data hiding techniques distort the QR code during the hiding process, which can be resolved by using additional algorithms for the correction of image distortions. The achieved expansion of the data capacity, however, was limited [14].
2) Data compression techniques: Another way to increase the data capacity is to compress the data before generating a QR code, results, however, shows that data compression technique offers compression up to 52% of the original size [15]. The objective of this work is to utilize, colored coding multiplexing for improving the QR code performance and capacity, therefore, the following Section II will discuss the work related to colored QR code and color code Multiplexing. Section III will discuss the proposed system, while Section IV presents the system evaluation through two experiments and illustrates the results. The paper is concluded by the conclusion in Section V and bibliography.

II. RELATED WORK
The research, in both Academia and Industry have been active to improve both the capacity and the tolerance of the QR code. Most of the researches, however, have targeted the QR code capacity without much compensation for its performance. The related research techniques that focus on increasing data capacity includes colored coding [13,16,17] and Multiplexing [18,19,20].

A. Colour Coding Techniqiues
Melgar et al., in [16] purposed a colored QR code structure. It is designed to employ five different RGB colors (red, green, blue, black and white), which enables twice as much as that of the traditional binary QR codes. Each information module represents 2 bits, while the traditional utilize 1 bit for each module. Black modules are used only for alignment purposes. The "red, green, blue and white" colors are chosen because of their maximum equidistance on the RGB color space.
Melgar et al., in [17] proposed CQR Code-9. This code can store up to 2,024 information bits which is twice what was t achieved in their previous research paper [15], and 4 times that of classic QR code. They accomplished this by folding 3 bits of information into the single module.
Blasinki [13], exploit the spectral diversity afforded by the cyan (C), magenta (M), and yellow (Y) print colorant channels, commonly, used for color printing and the complementary red (R), green (G), and blue (B) channels, respectively, used for capturing color images. Specifically, exploiting this spectral diversity to realize a three-fold increase in the data rate by encoding independent data in the C, M, and Y print colorant channels and decoding the data from the complementary R, G, and B channels captured via a mobile phone camera. Developing interference cancellation algorithm to mitigate the effect of cross-channel interference among the print colorant. The authors succeeded, also, in avoiding CMYK/RGB color system interference.

B. Multiplexing Techniques
Vongpradhip [18], introduced the Multiplexing QR Codes. His idea was to divide the original data into several portion of smaller size. Each of which formed QR code pattern in its standard form. The generated set of QR codes is multiplexed into special symbols, encoded as black and white modules. The multiplexed QR code is decoded to give back the number of QR code patterns that was multiplexed. The number of required symbols is defined by 2 n , where n is the number of QR code patterns. The authors utilized pattern recognition algorithm and did succeed to increase the data storage capacity; however, it was limited by the number of the symbols that could be recognized.
Gupta [19], purposed new approach that doubled the storage and accelerated QR decoding. The author divides the data into two portions, then converted each into a classical QR code. Where He encoded the data in, only, one third of the module. Yet, he rotated the second QR code 90 degrees before encoding, then placed it on the first QR code (to form vertical, horizontal and cross shaped black modules). The author performed the decoding by utilizing bar code decoding system.
Galiyawala [20], introduced multiplexing (MUX) method, in which several QR codes are multiplexed to generate a single colored QR code. This technique offered improvement of the data storage capacity up to 24 times that of QR code of the same version. He divided original information into 'n' portions, each was encoded into a classic QR code. That is, to generate 'n' individual QR codes which needed 2 n distinct encoding colors. The author multiplexed the individual set of n-bit (a corresponding bit from each of the generated n QR codes) to the corresponding color from a look up table for encoding. In decoding, however, each color shade was demultiplexed by accessing its corresponding code from the look up table, to obtain n-bit code, representing the corresponding bit in each of the n classic QR codes. The author employed a table for the color coding to be accessed for encoding the 'n' multiplexed bits into the corresponding color. The colored QR code was demultiplexed by searching the table for the color's code to generate the original 'n' QR codes. Galiyawala's procedure, therefore, needed n-entry color-coding table for every given n.

III. PROPOSED SYSTEM: FAST MULTIPLEXING TECHNIQUE
The main objective of the proposed Fast Multiplexing Technique (FMT) is accelerating the multiplexing methodology of Galiyawala [20]. This is accomplished by utilizing the natural Red-Green-Blue (RGB) color coding as three-Dimensional array. RGB is adopted to utilize its maximum equidistance of the Red-Green-Blue color shades. Each single point in this three-dimension space represents a unique code of a color shade. Given that each of the three RGB has 256 different shades, the maximum number of color shades www.ijacsa.thesai.org is 256 3 . In order to represent n different colors, one need 2 n binary digits. The resolution of the color shade coded into the colored QR code depends upon the data size and the QR code version.
The communicated data is divided into several portions, each of which, is encoded into a classical QR code that represent a layer in the multiplexing QR codes as shown in Fig. 2. The black module in the QR code is, normally, represented as '1', while the white module is represented as '0'. The binary value obtained from the corresponding bits (modules) on each layer (as illustrated by the vertical rectangular in Fig. 2(B)) is encoded to the unique color shade of the RGB colors and folded into a single module. The maximum number 'n' of possible portions/layers, is: n= log2(256 3 )= log2((2 8 )^3)= 8×3= 24 portions/layers (1) The integrity of the color is guaranteed by including number of layers as the folding length in a predefined set of modules to be referenced in the decoding stage. The decoding process is carried out in the reversed steps: decoding colors, generating the several black/white layers of QR codes and decoding each into its original portions accordingly.

A. Encoding Process
Given a data of size M, the function Info-multiplexing calculates the appropriate number of portions/layers 'L', (depending on the version's capacity of the Classic QR image). Accordingly, the required number of color codes is 2 L . The RGB color resolution is calculated so that the shades are distributed as evenly as possible. That is, 'L' is divided three ways, so that each of the RGB colors has at least 2 L/3 different shades. Assuming that L was divisible by 3, then the values corresponding to each of the Red-Green-Blue colors ranges from 0 to 2 L/3 . This range defines the number of shades per color, SPC (CPR, SPG and SPB respectively). The string of L binary bits obtained from the corresponding black/white modules is denoted by bit-string. The bit-string is converted to the corresponding resolution of the color palette of the SPCs. The proposed system was tested and then evaluated through two experiments. The first was a comparative study of the system performance against that of Galiyawala's classical multiplexing system [20]. The second experiment was performed to measure the capabilities of the system, in handling bigger data size, by utilizing images and picture instead of text files.
All the experiments were performed in server scripting language (php) 1 , and are carried out on a computer with processor specification: Intel(R) Core (TM) i7-3770M CPU @ 3.40GHz and 64-bit windows 10 Pro.

A. Comparison with Mux Technique
The first experiment is performed to test the FMT system performance against that of Galiyawala [20]. Their MUX experiments were performed in MATLAB and carried out on a computer Intel(R) Core (TM) i3-2310M, CPU @ 2.10GHz and 64-bit windows 7 Ultimate operating system. QR code of version 2 (has 252 modules hold maximum of 255 character of information) is used for their experiment. For the sake of comparison, sets of randomly generated data are prepared to occupy the same number of the QR codes as those utilized in [20], each, are applied as input to the FMT system to perform the encode/decode processes for the corresponding colored QR Codes. The system assumed version number 40-L (has 1772 modules, with low level error correction), instead of version 2 to compensate for the faster processor and the current operating system employed for FMT. Table I enlists all the observations and results of the FMT experiments. Column one represents number of QR codes multiplexed, which corresponds to the number of multiplexed layers L. Fig. 3 illustrates a plotting of encoding/decoding execution time versus the number of multiplexed layers for 13 different sets of data (shown in Table I). This figure includes, also, the plotting of the results for encoding and decoding observations of the MUX system [20], which have been scaled down.
The plots are built with the processing time units in milliseconds, yet, the results of the MUX system [20] are scaled down to the log10 of its original values, due to the exponential differences between them and those of the FMT for the corresponding data sets. For 8 Layers of QR codes, FMT consumes 0.383 and 0.226 milliseconds for encoding and decoding, respectively, while, MUX consumes 3911 milliseconds for encoding and 4359 milliseconds for decoding. MUX consumes much more time for decoding than encoding, especially when dealing with more than 9 layers of QR codes.

B. Measuring FMT Capabilities
A second experiment is performed to measure the performance of FMT in processing several different images' sizes. A set of different size images/pictures are applied as real information. FMT is exercised to multiplex each of the images into colored QR code, then demultiplex the colored code back to its originality. The observations and results for encoding and decoding of 11 different size pictures is depicted in Fig. 4. The proposed system can handle images of size up to 51 KB. The 1 https://igy-apps.com/fmt/ time for decoding is, in general, less than that for encoding, for the 51 KB image it consumes less than 0.9 milliseconds. The presented technique has a firm ground for improving the colored QR performance and capacity. It provided a possibility of encoding different kind of data with as much size as it could be hold in 24 folds of the given QR version. The technique based on utilizing RGB color scheme extension as a third dimension of the QR code. The FMT system proved to be very efficient, as it is exponentially faster than the classical MUX technique, yet, possessing the same property of multitude the capacity of the QR code. Its processing time depends, only, on the number of multiplexed QR codes. The FMT technique improved the capacity of QR code up to 24 th fold, while preserving its intrinsic property of having Quick Response.
The presented technique did not consider the problems associated with colors distortions caused by printer while printing QR code or by camera sensor and surrounding lighting during the capture process. Yet, if the means of the data transmission is purely digital, these problems can be disregarded.
Future utilization of the proposed technique is to integrate it into a QR scanning system to provide a colored coded QR version with the merit of much bigger capacity and better performance.