«Код должен легко считываться» — это стало главной целью для японской компании «Denso-Wave» при создании двумерного матричного кода в 1994г.
Действительно, QR-код распознается даже в перевернутом состоянии. Три угловых квадрата привязки, ставшие отличительной особенностью кода, позволяют правильно развернуть его в памяти программы сканера.
По спецификации коды делятся на версии. Номера версий варьируются от 1 до 40. Каждая версия имеет особенности в конфигурации и количестве точек(модулей) составляющих QR-код. Версия 1 содержит 21×21 модулей, версия 40 — 177×177. От версии к версии размер кода увеличивается на 4 модуля на сторону.
При создании матричного кода следует учесть, что лучшие QR-ридеры
способны прочитать версию 40, стандартные мобильные устройства — вплоть
до версии 4 (33x33 модулей)
Каждой версии соответствует определенная емкость с учетом уровня коррекции ошибок. Чем больше информации необходимо закодировать и чем больший уровень избыточности используется, тем большая версия кода нам потребуется. Современные QR-генераторы автоматически подбирают версию QR-кода с учетом этих моментов.
В следующей таблице показаны характеристики различных версий QR-кодов:
Версия | Количество модулей | Уровень коррекции ошибок |
Максимальное количество символов с учетом уровня коррекции ошибок и типа символов | |||
---|---|---|---|---|---|---|
Числа: 0 — 9 | Числа и символы латинского алфавита*, пробел, $ % * + — . / : |
Двоичные данные | Символы японского алфавита Kanji |
|||
1 | 21×21 | L | 41 | 25 | 17 | 10 |
M | 34 | 20 | 14 | 8 | ||
Q | 27 | 16 | 11 | 7 | ||
H | 17 | 10 | 7 | 4 | ||
2 | 25×25 | L | 77 | 47 | 32 | 20 |
M | 63 | 38 | 26 | 16 | ||
Q | 48 | 29 | 20 | 12 | ||
H | 34 | 20 | 14 | 8 | ||
3 | 29×29 | L | 127 | 77 | 53 | 32 |
M | 101 | 61 | 42 | 26 | ||
Q | 77 | 47 | 32 | 20 | ||
H | 58 | 35 | 24 | 15 | ||
4 | 33×33 | L | 187 | 114 | 78 | 48 |
M | 149 | 90 | 62 | 38 | ||
Q | 111 | 67 | 46 | 28 | ||
H | 82 | 50 | 34 | 21 | ||
10 | 57×57 | L | 652 | 395 | 271 | 167 |
M | 513 | 311 | 213 | 131 | ||
Q | 364 | 221 | 151 | 93 | ||
H | 288 | 174 | 119 | 74 | ||
40 | 177×177 | L | 7,089 | 4,296 | 2,953 | 1,817 |
M | 5,596 | 3,391 | 2,331 | 1,435 | ||
Q | 3,993 | 2,420 | 1,663 | 1,024 | ||
H | 3,057 | 1,852 | 1,273 | 784 |
* При использовании кириллицы один символ считается за 2 латинских символа (кодировка UTF-8)
Уровни коррекции ошибок в QR-кодах
QR-код имеет специальный механизм увеличения надежности хранения зашифрованной информации. Для кодов созданных с самым высоким уровнем надежности могут быть испорчены или затерты до 30% поверхности, но они сохранят информацию и будут корректно прочитаны. Для исправления ошибок используется алгоритм Рида-Соломона (Reed-Solomon). При создании QR-кода можно использовать один из 4 уровней коррекции ошибок. Увеличение уровня способствует увеличению надежности хранения информации, но приводит к увеличению размера матричного кода.
Допустимый процент нарушений | |
---|---|
L | около 7% |
M | около 15% |
Q | около 25% |
H | около 30% |