Технические характеристики QR-кодов

«Код должен легко считываться» — это стало главной целью для японской компании «Denso-Wave» при создании двумерного матричного кода в 1994г.

Действительно, QR-код распознается даже в перевернутом состоянии. Три угловых квадрата привязки, ставшие отличительной особенностью кода, позволяют правильно развернуть его в памяти программы сканера.

По спецификации коды делятся на версии. Номера версий варьируются от 1 до 40. Каждая версия имеет особенности в конфигурации и количестве точек(модулей) составляющих QR-код. Версия 1 содержит 21×21 модулей, версия 40 — 177×177. От версии к версии размер кода увеличивается на 4 модуля на сторону.

При создании матричного кода следует учесть, что лучшие QR-ридеры
способны прочитать версию 40, стандартные мобильные устройства — вплоть
до версии 4 (33x33 модулей)

Каждой версии соответствует определенная емкость с учетом уровня коррекции ошибок. Чем больше информации необходимо закодировать и чем больший уровень избыточности используется, тем большая версия кода нам потребуется. Современные QR-генераторы автоматически подбирают версию QR-кода с учетом этих моментов.

В следующей таблице показаны характеристики различных версий QR-кодов:

ВерсияКоличество модулейУровень коррекции
ошибок
Максимальное количество символов с учетом уровня коррекции ошибок и типа символов
Числа: 0 — 9Числа и символы латинского алфавита*,

пробел, $ % * + — . / :
Двоичные данныеСимволы японского алфавита

Kanji
121×21L41251710
M3420148
Q2716117
H171074
225×25L77473220
M63382616
Q48292012
H3420148
329×29L127775332
M101614226
Q77473220
H58352415
433×33L1871147848
M149906238
Q111674628
H82503421
1057×57L652395271167
M513311213131
Q36422115193
H28817411974
40177×177L7,0894,2962,9531,817
M5,5963,3912,3311,435
Q3,9932,4201,6631,024
H3,0571,8521,273784

* При использовании кириллицы один символ считается за 2 латинских символа (кодировка UTF-8)

Уровни коррекции ошибок в QR-кодах

QR-код имеет специальный механизм увеличения надежности хранения зашифрованной информации. Для кодов созданных с самым высоким уровнем надежности могут быть испорчены или затерты до 30% поверхности, но они сохранят информацию и будут корректно прочитаны. Для исправления ошибок используется алгоритм Рида-Соломона (Reed-Solomon). При создании QR-кода можно использовать один из 4 уровней коррекции ошибок. Увеличение уровня способствует увеличению надежности хранения информации, но приводит к увеличению размера матричного кода.

Допустимый процент нарушений
Lоколо 7%
Mоколо 15%
Qоколо 25%
Hоколо 30%