Multicolored QR Codes

Team: Brad Gingles and Jarrett Parry

Project

Traditional QR codes are limited by their binary structure, where each module represents only a single bit (black or white). This restricts the overall data capacity of the code, especially when encoding large amounts of information such as text, URLs, or files.

Our project explores how to increase data density by extending QR codes beyond binary encoding. Specifically, we developed a system that uses a 16-color palette, allowing each cell to represent 4 bits of information instead of 1, significantly increasing the amount of data that can be stored in the same physical space.

regular QR code
Colored QR code

System Diagram

System Diagram

Methods

Encoding Process

  1. Color Encoding Each byte is split into two 4-bit values, which are mapped to one of 16 colors.
  2. Error Correction (Reed-Solomon) Data is divided into blocks and encoded with Reed-Solomon error correction.
  3. Grid Construction Encoded values are arranged into a 180×180 grid.
3D graph

Decoding Process

  1. Sampling & Color Detection The image is sampled at regular intervals, and each pixel is mapped to the closest color in the palette.
  2. Data Reconstruction Color indices are recombined into bytes.
  3. Error Correction (Reed-Solomon Decoding) System can correct up to 7.5% byte errors from corruption or noise
  4. Output Processing Padding and metadata are removed, and the original data is reconstructed as text or other formats.

Conclusion

Traditional QR codes can store ~3kB of data, our system successfully encoded 15MB using our 16-color encoding method.

  • Successfully implemented Reed-Solomon encoding and decoding
  • Successfully encoded multiple different data types (plain text, images, binary files)
  • Further work on this project will include making the system available on a mobile operating system, so users can easily scan the codes in the wild