QR codes build on traditional barcodes by encoding information in a grid of black and white modules. Unlike one-dimensional barcodes that scan horizontally, QR codes are two-dimensional, storing data both horizontally and vertically for vastly more capacity.
While it's possible for humans to manually decode parts of a QR code by analyzing pixel patterns, the process is cumbersome—especially since QR codes hold far more data than simple UPC barcode numbers.
Any smartphone or dedicated scanner can instantly decode QR codes containing text, URLs (which open directly in your browser), and more. A standout feature is built-in error correction, enabling reliable reads even if portions are damaged.

The signature finder patterns—three large squares in the corners and one smaller in the lower right—orient the scanner, allowing detection from any angle, including upside down.
Adjacent areas encode format version, error correction details, and masking patterns. A surrounding "quiet zone" of white space ensures scanners accurately identify the code's edges.
QR codes scale from small 21x21 grids to massive 177x177 versions holding up to 1,264 ASCII characters. Everyday sizes like 29x29 or 33x33 accommodate about 50 characters, fully compatible with modern devices.

Error correction capacity, or EDC level, dictates how much data can be recovered from damage. Higher levels trade storage for resilience; generators automatically select the optimal balance.

Masking patterns prevent uniform blocks (like all zeros or ones) for optimal scannability. Applied via binary math without encryption—the key is embedded in the code itself.

Scanning begins in the lower right, reading modules in 8-pixel groups (one byte each). Encoding modes—like ASCII, numeric, kanji—vary interpretation; the "Enc" pattern specifies the mode used.
Manual QR decoding is technically feasible but impractical. Their robust design, flexible encoding, and error tolerance ensure QR codes remain a staple in digital bridging.
Image credit: Yaohua2000