Коррекция ошибок в QR кодах

Кодирование

Емкость QR-кода

Micro QR-код

Структурное объединение

Сравнение с другими символиками


QR-код

 

QR код - это разновидность матричного кода (2D-barcode), созданная Японской корпорацией Denso-Wave в 1994 году. "QR" - это сокращение от "Quick Response", "Быстрый отклик", этим названием создатели хотели показать, что QR-код позволяет быстро доносить свое содержание до пользователя. QR коды очень распространены в Японии, там они являются самым популярным видом двухмерных штрих-кодов.

 

 

Общая информация

 

Несмотря на то, что QR коды изначально использовались для учета деталей в машиностроении, сейчас они используются более широко, как для коммерческих систем учета, так и для быстрой доставки информации пользователям мобильных телефонов. QR коды могут хранить контактную информацию, текст, платежные реквизиты, телефонные номера, адреса e-mail и гипертекстовые ссылки. При этом QR-код может быть напечатан в журнале, на постере в метро, на визитной карточке, на платежном документе, да и вообще практически на чем угодно. Пользователи с телефоном, оснащенным камерой и с соответствующим программным обеспечением могут сосканировать QR-код, при этом откроется закодированная в QR гиперссылка, или закодированный контакт добавится в адресную книгу. И наоборот, QR-код может быть отправлен пользователю на мобильный телефон и предъявлен для считывания прямо с его экрана.

 

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

Основные области применения QR кода:

  • Реклама и развлечения (хранение web-ссылок, контактной информации)
  • Банковское дело (хранение платежных реквизитов)
  • Логотипы, содержащие информацию о фирме
  • Визитки (код содержит подробную информацию о человеке)
  • Туризм (для предоставления web-ссылки или информации об объекте, бронирования гостиниц)
  • Электронные билеты и ключи (код предъявляется на мониторе мобильного устройства)
  • Проездные билеты (печатается на билете)
  • Маркировка продуктов

 

Коррекция ошибок в QR кодах

 

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

 

L 7%
M 15%
Q 25%
H 30%

 





 

Эта возможность используется для построения QR-кодов с элементами дизайна, например:

 

                                                                                       Лого BiZone

 

Кодирование

 

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

  • Mixed: Кодирование данных, используя комбинацию всех нижеприведенных режимов, в зависимости от типа найденных данных.
  • Numeric: позволяет кодировать только цифры от 0 до 9.
  • Alphanumeric: позволяет кодировать цифры, только заглавные буквы и несколько специальных символов. Лучше всего подходит для алфавитно-цифровых кодов с текстом в верхнем регистре.
  • Byte: специальная кодировка для произвольных данных в диапазоне от 0 до 255. Алгоритм кодирования позволяет кодировать любые значения от 0x00 до 0xFF (десятичные 0 ~ 255).
  • Kanji: позволяет кодировать иероглифы в системе Shift JIS, используемой для японских символов.

 

Данные в QR Code:
012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789

 

 

 

Кодировка Numeric                                           Кодировка Byte
Кодировка Numeric      Кодировка Byte

 

Емкость QR-кода

 

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

 

Только цифры  7,089 символов
Цифры+латинские буквы 4,296 символов
Двоичные данные (8 bit) 2,953 байт
Kanji/Kana (символы японского алфавита)  1,817 символов

 

 

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

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

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

 

Характеристики различных версий QR-кодов:

 

Версия

Количество модулей

Уровень коррекции
ошибок

Максимальное количество символов с учетом уровня коррекции ошибок и кодировки

Numeric

Alphanumeric

Byte

Kanji

1

21x21

L

41

25

17

10

M

34

20

14

8

Q

27

16

11

7

H

17

10

7

4

2

25x25

L

77

47

32

20

M

63

38

26

16

Q

48

29

20

12

H

34

20

14

8

3

29x29

L

127

77

53

32

M

101

61

42

26

Q

77

47

32

20

H

58

35

24

15

4

33x33

L

187

114

78

48

M

149

90

62

38

Q

111

67

46

28

H

82

50

34

21

10

57x57

L

652

395

271

167

M

513

311

213

131

Q

364

221

151

93

H

288

174

119

74

40

177x177

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

 

Micro QR-код

 

Micro QR код - это разновидность обычного QR кода, предназначенная для экономии места, занимаемого QR кодом, для уменьшения размера QR кода и для хранения небольших объемов данных. Эффективность хранения данных по сравнению с традиционным QR кодом значительно улучшена благодаря использованию всего одной метки позиционирования, по сравнению с тремя метками в обычном QR коде. Из-за этого освобождается определенное пространство, которое может быть использовано под данные.
Кроме того, QR код требует свободного поля вокруг кода шириной минимум в 4 модуля (имнимальной единицы построения QR-кода), в то время как Micro QR код требует поля в два модуля шириной.

Micro QR код, однако, неспособен хранить большой объем данных (максимум 35 цифр). Однако, из-за большей эффективности хранения данных, размер Micro QR кода увеличивается не столь значительно с увеличением объема закодированных данных, как традиционный QR код.
По аналогии с уровнями коррекции ошибок в QR кодах, Micro QR код бывает четырех версий, М1-М4. Максимальное количество данных, которые могут быть закодированы в Micro QR коде, в зависимости от версии, приведено в таблице ниже.

 

Версия кода

Количество модулей

Уровень коррекции ошибок

Максимальное количество символов с учетом уровня коррекции ошибок и кодировки

Numeric

Alphanumeric

Byte

Kanji

M1

11

-

5

-

-

-

M2

13

L

10

6

-

-

M

8

5

-

-

M3

15

L

23

14

9

6

M

18

11

7

4

M4

17

L

35

21

15

9

M

30

18

13

8

Q

21

13

9

5

 

Структурное объединение

 

QR код может быть разделен на несколько кодов меньшего размера, причём информация, сохранённая в наборе кодов, восстанавливается в виде единого блока данных (Structured Append). Один символ может быть разложен в набор до 16 символов меньшего размера, благодаря чему можно повысить размер модулей штрих-кода при размещении на ограниченной площади (например, в вытянутой прямоугольной области). За счёт такого подхода повышается надёжность считывания данных. 

 

Сравнение с другими символиками

 

QR-код позволяет эффективнее (на меньшей площади при одинаковом размере модуля), чем Aztec и Data Matrix кодировать большие объёмы цифровых данных. Символика Data Matrix уступает QR коду при кодировании более 88 цифр, Aztec уступает QR-коду при кодировании более 170 цифр. Но по эффективности кодирования текста QR-код значительно уступает Aztec, а Data Matrix превосходит только при объёме текста большем 298 символов. Однако, при кодировании текста набранного прописными (заглавными) буквами эффективности QR-код и Aztec близки, а Data Matrix уступает QR-коду уже при кодировании 88 букв. 

 

В настоящий момент (2014 год) подготовлены документы для принятия ГОСТа на спецификацию QR-кода, ранее был принят ГОСТ для использования QR-кода в финансовых платёжных документах.