Перейти к содержимому

Модуль QR-кода

Модуль — наименьший структурный элемент QR-кода: один квадрат в матрице, который может быть тёмным (1) или светлым (0). Вся информация кода закодирована именно в чередовании таких квадратов.

Модуль QR-кода — элементарная ячейка матрицы, один квадрат тёмного или светлого цвета. Именно из модулей складывается всё: данные, служебные зоны, позиционные маркеры, байты коррекции ошибок. Смартфон при сканировании считывает яркость каждой ячейки и восстанавливает из последовательности 0 и 1 исходную строку.

Версии QR и число модулей

Стандарт ISO/IEC 18004 определяет 40 версий QR-кода. Каждая версия увеличивает размер матрицы на 4 модуля в каждую сторону:

  • Версия 1 — матрица 21×21 = 441 модуль
  • Версия 2 — 25×25 = 625 модулей
  • Версия 10 — 57×57 = 3 249 модулей
  • Версия 20 — 97×97 = 9 409 модулей
  • Версия 40 — 177×177 = 31 329 модулей

Формула: (21 + (N−1) × 4)², где N — номер версии. Чем больше данных нужно закодировать, тем выше версия и тем мельче получается каждый модуль при фиксированном физическом размере кода.

Размер модуля при печати

Минимальный рекомендованный размер одного модуля — 0,33 мм (примерно 1 пт при 96 dpi). На практике для уличной печати ориентируются на другой параметр: дистанция сканирования в сантиметрах должна быть примерно равна 10-кратному размеру всего кода в сантиметрах. Код 3×3 см на визитке читается с 30 см, код 30×30 см на баннере — с трёх метров.

Для версии 1 (21 модуль в стороне) при размере кода 21 мм размер модуля ровно 1 мм — это и есть нижний предел для полиграфии. Версия 10 при том же физическом размере даёт модуль 0,37 мм — на грани. Версия 25 и выше при коде меньше 30 мм надёжно читаются только с хорошей камерой вплотную.

Влияние на считывание

Размер модуля напрямую определяет три параметра надёжности кода:

  • Угол сканирования. Мелкий модуль допускает меньшее угловое смещение камеры — матрицу нужно держать ровнее.
  • Устойчивость к загрязнениям. Если модуль 0,5 мм, пятно размером 0,3 мм уже затрагивает больше половины ячейки. При модуле 2 мм то же пятно практически незаметно.
  • Коррекция ошибок. Уровни L/M/Q/H восстанавливают 7–30% повреждённых данных, но они работают с целыми модулями: если ячейка прочитана неверно, она уходит в резерв коррекции. Мелкие модули «сжигают» этот резерв быстрее.

Практическое правило: для открытого воздуха, наклеек, этикеток с возможным потёртостями — выбирайте уровень коррекции Q или H и проверяйте, что размер модуля не меньше 0,6–0,8 мм.

Частые вопросы

Сколько модулей в обычном QR-коде на упаковке?

Большинство потребительских кодов на упаковках — версия 3–7, то есть матрица 29×29 до 45×45 = от 841 до 2 025 модулей. Размер кода при этом обычно 20–25 мм, что даёт модуль 0,4–0,9 мм — надёжный диапазон для любой камеры.

Можно ли сделать QR-код меньше, не теряя данные?

Да, но только через сокращение объёма закодированных данных. Короткий URL вместо длинного — меньше версия, меньше модулей, крупнее каждый при той же печатной площади. Сокращение ссылки с 80 до 25 символов нередко снижает версию с 5 до 2, то есть матрица уменьшается с 37×37 до 25×25.

Что такое «тихая зона» и как она связана с модулями?

Тихая зона — обязательный белый отступ вокруг матрицы, минимум 4 модуля с каждой стороны (согласно ISO 18004). При модуле 1 мм тихая зона — не менее 4 мм на сторону. Без неё сканер не находит границы матрицы и отказывает в чтении.

Зависит ли число модулей от уровня коррекции ошибок?

Нет. Уровень коррекции (L/M/Q/H) не меняет размер матрицы — только перераспределяет, сколько модулей отведено под данные, а сколько под резервные байты восстановления. При большем объёме коррекции данных помещается меньше, поэтому для того же URL с уровнем H нужна более высокая версия, чем с уровнем L.

Почему QR-код выглядит «зернистым» при печати?

Это следствие слишком мелкого модуля: растеризация на низком dpi создаёт артефакты на границах ячеек. Решение — печатать в векторе (SVG или PDF) или повышать разрешение до 300+ dpi при растре. Генератор на qrcode.website отдаёт SVG по умолчанию, что полностью исключает зернистость при любом масштабе.