Уровень коррекции ошибок (ECC)
Уровень коррекции ошибок ECC — параметр QR-кода, определяющий долю восстанавливаемых данных: L (7%), M (15%), Q (25%), H (30%).
Определение уровня коррекции ошибок
Уровень коррекции ошибок (Error Correction Level, ECC или ECL) — параметр QR-кода, определяющий, какой процент площади кода может быть повреждён или перекрыт без потери считываемости. Коррекция реализована через алгоритм Reed-Solomon, добавляющий избыточные байты в структуру кода. Чем выше уровень ECC, тем больше избыточности и, соответственно, больше размер QR-кода при одинаковых данных. Стандарт ISO/IEC 18004 определяет четыре уровня: L, M, Q, H.
Выбор уровня ECC — это компромисс между размером кода и устойчивостью к повреждениям. Минимальный уровень L даёт самый маленький код, но любая царапина или логотип могут сделать его нечитаемым. Максимальный уровень H позволяет повредить почти треть площади, что необходимо для QR-кодов с встроенным логотипом в центре или нанесения на поверхности с риском износа (упаковка, этикетки, улица).
Четыре уровня ECC в QR-коде
| Уровень | Код | Восстановление | Коэффициент избыточности |
|---|---|---|---|
| L (Low) | 01 | ~7% | Минимальный |
| M (Medium) | 00 | ~15% | Средний |
| Q (Quartile) | 11 | ~25% | Повышенный |
| H (High) | 10 | ~30% | Максимальный |
Обратите внимание: двоичные коды уровней не возрастают линейно — L=01, M=00, Q=11, H=10. Это особенность стандарта: уровни расположены не по алфавиту, а по двоичным кодам, записываемым в область Format Information. При сканировании декодер сначала читает эту область, определяет уровень ECC и только потом применяет соответствующую маску и декодирует данные.
Как выбрать уровень ECC
- L (7%) — чистые условия, цифровые экраны, отсутствие риска повреждений. Минимальный размер кода для одного и того же объёма данных. Подходит для QR на экране презентации, в ТВ-эфире, на электронном билете.
- M (15%) — стандартный выбор для большинства задач. Печать визиток, маркетинговых материалов, упаковки без логотипа. Оптимальный баланс размера и надёжности.
- Q (25%) — повышенная устойчивость. Промышленная маркировка, наклейки на открытом воздухе, упаковка с риском износа при транспортировке, QR-коды с небольшим логотипом.
- H (30%) — максимальная устойчивость. Обязателен при встроенном логотипе в центре, для нанесения на металл, керамику, дерево, стекло. Выбор для наружной рекламы, дорожных указателей, промышленной гравировки.
Влияние ECC на размер QR
Чем выше уровень коррекции, тем больше избыточных байтов добавляется в код, и тем крупнее становится QR-код при одинаковом объёме полезных данных. Например, URL длиной 50 символов:
- Уровень L — QR версии 2 (25×25 модулей)
- Уровень M — QR версии 3 (29×29 модулей)
- Уровень Q — QR версии 4 (33×33 модулей)
- Уровень H — QR версии 5 (37×37 модулей)
Разница в размере при переходе с L на H составляет 50–60% от площади кода. Это нужно учитывать при планировании макета: если QR должен поместиться в узкий блок визитки, не всегда можно себе позволить уровень H. В таких случаях либо сокращают данные (используют короткую ссылку), либо снижают ECC до M.
Особенности использования логотипа
При встраивании логотипа в центр QR-кода он перекрывает 10–20% модулей. Декодер трактует закрытую область как повреждения и применяет Reed-Solomon для восстановления. Если выбран уровень L или M, логотип легко превысит лимит коррекции (7–15%), и код перестанет читаться. Правило: при наличии логотипа всегда выбирать уровень Q или H, чтобы иметь запас восстановления. Также рекомендуется ограничивать площадь логотипа не более 20% от площади кода.
Связанные концепции
- Reed-Solomon — математическая основа коррекции.
- QR-код — носитель коррекции.
- Версия QR — размер матрицы, влияющий на ёмкость.
Частые вопросы
Какой уровень ECC выбрать для QR с логотипом?
Для QR-кода с логотипом в центре выбирайте уровень Q (25%) или H (30%). Логотип обычно перекрывает 10–20% площади кода, и уровни L (7%) или M (15%) не справятся с такой потерей. При уровне Q код останется читаемым при логотипе до 20% площади, при H — до 25%. Для максимальной надёжности используйте H, особенно если QR будет печататься в маркетинговых материалах и сканироваться с разных дистанций и углов.
Насколько больше QR-код при уровне H по сравнению с L?
QR-код уровня H требует примерно на 50–60% больше площади, чем эквивалентный код уровня L с теми же данными. Например, URL длиной 50 символов помещается в QR 25×25 модулей при уровне L и в 37×37 модулей при уровне H. В печатном размере это означает переход с 1×1 см до 1,5×1,5 см при том же размере модуля. Если место ограничено, выбирайте L или M; если важна надёжность — Q или H.
Можно ли изменить уровень ECC после генерации QR?
Нет, уровень ECC жёстко встроен в структуру QR-кода при его генерации. Чтобы изменить уровень, нужно перегенерировать QR-код заново с новыми параметрами — полезные данные останутся теми же, но графическое представление полностью изменится. В сервисах вроде QRkoder это делается за секунду: достаточно выбрать другой уровень в настройках и скачать обновлённый файл PNG или SVG.
Что означают буквы L, M, Q, H?
Буквы ECC обозначают уровни коррекции: L = Low (низкий, 7%), M = Medium (средний, 15%), Q = Quartile (квартиль, 25%), H = High (высокий, 30%). Название Q связано с тем, что 25% — это ровно четверть от максимального восстановления. В двоичном коде уровней они записаны как 01, 00, 11, 10 соответственно — не по алфавиту, а в порядке, заданном стандартом ISO/IEC 18004 для компактного представления в области Format Information кода.
Влияет ли уровень ECC на скорость сканирования?
Влияние минимальное. Современные сканеры обрабатывают любой уровень ECC за 20–50 миллисекунд. Более сложное декодирование Reed-Solomon при уровне H занимает на 5–10 мс больше, но пользователь не замечает разницы. Зато уровень H значительно увеличивает шанс успешного сканирования в реальных условиях: при плохом освещении, под углом, с грязного принтера, на смятой упаковке. Для маркетингового QR-кода выгоднее выбрать более высокий уровень ECC за счёт надёжности считывания с первой попытки.