Уровни коррекции ошибок (L/M/Q/H)
Четыре уровня устойчивости QR-кода к повреждениям: L (≈7%), M (≈15%), Q (≈25%), H (≈30%); выбор влияет на ёмкость и допустимый размер логотипа в центре.
Уровни коррекции ошибок (Error Correction Level, ECL) — стандартный параметр QR-кода по ISO/IEC 18004, определяющий, какую долю повреждённой матрицы декодер способен восстановить с помощью алгоритма Рида-Соломона. Доступны четыре уровня: L, M, Q, H — от минимальной до максимальной устойчивости.
Характеристики каждого уровня
- L (Low, ≈7%) — минимальная избыточность. Наибольшая информационная ёмкость при заданной версии QR. Подходит для чистых поверхностей, где код не подвержен царапинам и загрязнению.
- M (Medium, ≈15%) — баланс между ёмкостью и надёжностью. Используется по умолчанию во многих генераторах. Достаточен для большинства печатных материалов в помещении.
- Q (Quartile, ≈25%) — повышенная устойчивость. Рекомендован для наружной рекламы, упаковки и промышленной маркировки, где возможны загрязнения и частичные повреждения.
- H (High, ≈30%) — максимальная коррекция. Обязателен при размещении логотипа в центре QR-кода, поскольку перекрытая область считается «повреждённой» и должна восстанавливаться из блоков коррекции.
Увеличение уровня коррекции напрямую увеличивает объём служебных данных в матрице. При одинаковом объёме кодируемого текста QR с уровнем H будет крупнее, чем с уровнем L — потребуется матрица большей версии. Это ключевой trade-off при проектировании кода.
Практическое правило: для URL в 30–50 символов разница в размере кода между L и H невелика и хорошо компенсируется. Для длинных строк — данных vCard, Wi-Fi-конфигурации или Base64-содержимого — переход с M на H может прибавить 1–2 версии и заметно уплотнить матрицу. В таких случаях рекомендуется сокращать URL через динамический QR-код, сохраняя уровень H для надёжности.