QR-код
Кафе печатает на столиках QR-код меню и ставит в середину свой логотип. На первых столах код читается сразу, а на новых наклейках — нет: дизайнер увеличил логотип. Код вроде бы цел, все три угловых квадрата на месте. Но под логотипом пропала треть байтов одного блока, а коррекция уровня M чинит меньше. Телефон смотрит на код и молчит.
QR-код записывает текст квадратиками-модулями: тёмный — 1, светлый — 0. Данные разбиты на байты и уложены змейкой. К ним добавлены байты коррекции Рида — Соломона: по ним сканер восстанавливает испорченную часть. Поверх данных лежит одна из восьми масок, чтобы в коде не было больших пустых пятен. Номер маски и уровень коррекции записаны рядом с метками поиска, дважды.
| Что это | двумерный матричный код с коррекцией ошибок |
| Стандарт | ISO/IEC 18004; национальные версии — JIS X 0510 в Японии, GB/T 18284 в Китае, ГОСТ Р ИСО/МЭК 18004 в России |
| Размер | версии 1–40: от 21×21 до 177×177 модулей, +4 модуля тихой зоны |
| Ёмкость | до 7089 цифр, 4296 букв и цифр или 2953 байт |
| Защита | Рид — Соломон над GF(256), от 7 до 30 % байтов |
| Чем читают | камерой: лазерной строке нужен один ряд, QR нужна вся картинка |
Этимология
Быстрый ответ, мать и мерка
Название QR — английская аббревиатура, придуманная в Японии; QR Code — зарегистрированный товарный знак Denso Wave. Большинство языков оставили латинские буквы, а китайский назвал код по устройству — «двумерный». В стандарте код называют матричным, а его квадратики — модулями.
01 · Устройство
Служебная рамка и змейка байтов
Три метки поиска в углах говорят камере, где код и как он повёрнут. Пунктир синхронизации между ними задаёт шаг сетки. Начиная со второй версии, внутри стоят метки выравнивания: по ним сканер поправляет перекос и изгиб бумаги. Возле меток поиска — 15 бит формата, у больших версий — ещё 18 бит номера версии.
Всё остальное — данные. Их пишут столбцами по два модуля, змейкой: снизу вверх, потом сверху вниз, справа налево. Байты коррекции идут сразу за данными. В больших версиях байты разбиты на несколько блоков и перемешаны, поэтому одно пятно портит понемногу каждый блок, а не один целиком.
Как код сообщает уровень и маску
Выберите уровень коррекции и маску. Ниже — пять бит данных, десять проверочных и защитная маска. Эту строку пишут дважды: вокруг левой верхней метки и вдоль двух других.
Соберите код и испортите его
Код строится по стандарту из вашего текста: режим, версия, блоки, Рид — Соломон, маска. «Структура» — нажмите на модуль и узнайте, чей это бит. «Маска» — переберите восемь масок и посмотрите штрафы. «Повреждение» — закройте середину логотипом, капните краской, поцарапайте. Сканер читает то, что осталось, и чинит блоки.
02 · Эволюция двумерных кодов
Из строки в плоскость
Линейный код упёрся в длину: больше двух десятков знаков в строку не уложить. Сначала строки поставили стопкой, потом перешли к сетке модулей. Каждый код решал свою задачу: деталь на заводе, посылку на конвейере, билет на экране. QR выиграл, потому что стал бесплатным и пришёл в телефоны.
03 · Режимы и ёмкость
Алфавит решает размер
QR сжимает данные выбором режима. Цифры идут тройками в 10 бит. Прописные латинские буквы, цифры и девять знаков — парами в 11 бит. Всё остальное — байтами по 8 бит. Перед данными стоят 4 бита режима и счётчик знаков.
04 · Что внутри
Просто текст по договорённости
Сам QR не знает, что в нём ссылка или пароль. Он хранит строку. Телефон смотрит на начало строки: https:// — открыть браузер, WIFI: — подключиться к сети, BEGIN:VCARD — сохранить контакт. Платёжные строки в каждой стране свои. Массовые QR-платежи начались в Китае: Alipay и WeChat Pay. В Индии — ссылка upi://pay, в еврозоне — перевод SEPA по формату EPC, в Бразилии — Pix по шаблону EMVCo, в России — реквизиты по ГОСТ Р 56042-2014.
05 · Правила печати
06 · Соседние коды
07 · Исторический раздел
Масахиро Хара рассказывал, что идея сетки пришла ему за игрой в го: чёрные и белые камни на доске уже несут много информации. Трудность была в другом — камера должна мгновенно найти код среди надписей и картинок. Хара перебрал газеты, журналы и коробки и подобрал отношение ширин, которое в печати почти не встречается.
Метка 1 : 1 : 3 : 1 : 1 выглядит одинаково по любой линии через центр, под каким бы углом камера ни смотрела. Найдя три таких метки, сканер знает положение, поворот и размер кода, не читая ни одного бита данных. Поэтому QR читается в любой ориентации, а штрих-код приходится подносить строкой к лучу.
Каталог величин
весь указатель →Семь основных единиц СИ
Капля кислоты меняет цвет сока, соль красит пламя, вода замерзает от стука. Под ними — все листы Simetrium по дисциплинам и по алфавиту.
Открыть указатель →





