Маска

Также называют: mask pattern, маска данных, маскирование

Определение

Маска — это один из восьми фиксированных шаблонов, накладываемых операцией XOR на область данных QR-кода, чтобы разбить крупные блоки и вводящие в заблуждение формы. Кодировщик выбирает маску с наилучшей оценкой по четырём штрафным правилам.

Что делает маскирование

После размещения битов данных и коррекции ошибок в некоторых областях могут оказаться длинные цепочки одного цвета или формы, похожие на поисковые узоры. Маскирование исправляет это: оно инвертирует модули везде, где выполняется простая формула, и тёмные и светлые модули распределяются равномернее.

Маска применяется только к области данных и коррекции ошибок. Поисковые, синхронизирующие и выравнивающие узоры, информация о формате и версии, а также тёмный модуль никогда не маскируются.

Восемь масок

Маски пронумерованы от 000 до 111. Каждая определяется условием для строки i и столбца j модуля; там, где условие выполняется, модуль инвертируется. Считыватель узнаёт номер маски из информации о формате и применяет ту же маску повторно, чтобы её снять.

  • 000: (i + j) mod 2 = 0, шахматная доска
  • 001: i mod 2 = 0, чередующиеся строки
  • 010: j mod 3 = 0, каждый третий столбец
  • 011: (i + j) mod 3 = 0, диагональные полосы
  • 100–111: более сложные сочетания строк, столбцов и произведений

Как выбирается лучшая маска

Кодировщик пробует все восемь масок и оценивает каждый результат по четырём штрафным правилам. Используется маска с наименьшей суммой штрафов, благодаря чему готовый код камерам читать проще.

Некоторые генераторы пропускают полную оценку и используют фиксированную маску: код всё равно получается корректным, но сканируется, возможно, чуть хуже. В Micro QR применяется меньший набор из четырёх масок со своим правилом оценки.

  • Правило 1: длинные цепочки одного цвета в строке или столбце
  • Правило 2: блоки 2 × 2 одного цвета
  • Правило 3: узоры, напоминающие соотношение поисковых узоров 1:1:3:1:1
  • Правило 4: общий дисбаланс между тёмными и светлыми модулями

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

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

Они могут использовать разные маски, уровни коррекции ошибок или версии. Любое из этого меняет расположение модулей, а расшифрованное содержимое остаётся тем же.

Сколько масок бывает у QR-кода?

Стандарт определяет восемь, пронумерованных от 000 до 111. Выбранная маска записана в информации о формате, чтобы сканер мог её снять.

Источники и стандарты

Все термины