Why a Damaged QR Code Can Still Work
Matter Made Clear
0:00 / 0:00
Why a Damaged QR Code Can Still Work
13 просмотров · 1 дн. назад
Matter Made Clear
31 подписчик
13 просмотров · 1 дн. назад
Why can 32 changed QR modules still decode while nine changes fail? Follow our own saved-image experiment, the mapping from squares to 8-bit codewords and the separate job of finding the symbol before correcting extracted data.
The test payload is plain text: MMC91. Encoder: python-qrcode 8.2; independent reader: ZXing-C++ 3.1.1. We used version 1-H, fixed mask 0 and a four-module quiet zone. Four whole codewords were flipped in one test; one bit in each of nine distinct codewords was flipped in another. These are deterministic crisp-image tests with one reader, not a universal dirt-area percentage or a physical camera survey. Red outlines and gold traces are explanatory annotations; decoding used the unannotated saved images.
The modulo 7 straight-line example is an original small teaching analogy. It is not QR's actual byte arithmetic. Original Blender blocks rearrange actual mapped modules to make 8-bit grouping visible; dimensions and playback time are illustrative.
Sources and technical references:
https://www.qrcode.com/en/about/error...
https://www.qrcode.com/en/howto/code....
https://github.com/lincolnloop/python...
https://github.com/zxing-cpp/zxing-cpp
Footage and credits:
Gunjee Nyam / Pexels, "A Person Scanning a QR Code", item 5226464. Recorded scan gesture; source excerpt 0–3 seconds at native speed, source audio omitted. Pexels free commercial video licence; no endorsement implied.
https://www.pexels.com/video/a-person...
https://www.pexels.com/license/
Original experiment, graphics and Blender explanatory model: Matter Made Clear.
python-qrcode 8.2: BSD licence, Lincoln Loop contributors. ZXing-C++ 3.1.1: Apache-2.0, ZXing-C++ contributors.
Chapters:
0:00 Missing squares, readable message
0:54 First find the symbol
1:47 The picture is a mapped data structure
2:35 Extra relationships, not a spare photograph
3:29 What our generated symbol contains
4:23 Thirty-two changed modules, four damaged codewords
5:17 Nine changes can be harder than thirty-two
6:08 Why the percentages need a denominator
7:02 A different failure before correction
7:51 Recover the message, not the appearance