QR-код: зачем нужен, как работает и почему именно смартфоны сделали QR-коды столь популярными и востребованными

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com

Сейчас QR-коды любой человек, даже если он безумно далек от сферы IT, встречает на каждом шагу. А вот придуманы такие "коды" были в Японии разработчиками из компании Denso Wave в далеком 1994 году для автомобильного гиганта Toyota. Использовались они изначально на автомобильном конвейере для маркировки и отслеживания движения, как авто-комплектующих при сборке, так и уже собранных автомобилей.


Обычные, горизонтальные штрих-коды, существовавшие тогда, содержали в своем коде десятичные цифры, но не могли содержать ни японские иероглифы, ни латинские буквы, ни специальные символы. Так же объем информации, хранящийся в штрих-коде, был очень мал для нужд автогиганта. Поэтому и был разработан новый стандарт штрих-кода, который и получил название QR (Quick Response), что звучит в переводе как «быстрый отклик».  Давайте и мы в дальнейшем повествовании сократим "QR-коды" до аббревиатуры QRC (QR Code).

QRC называют еще "двумерным штрих-кодом", так как он имеет форму квадрата и читается в двух направлениях (по вертикали и по горизонтали). Это позволило кодировать объем информации, несравненно больший, чем в обычном, горизонтальном штрих-коде.

Так бы и применялся QRC, запатентованный  компанией Denso Wave, только на конвейерах Toyota, если бы компания не продемонстрировала "аттракцион невиданной щедрости". Denso Wave добровольно отказалась от своих прав на патент и сделала технологию создания и считывания QRC открытой и общедоступной. Так QRC стали использоваться практически во всех отраслях промышленности и на производствах. Широкому распространению и повсеместному использованию QRC в быту обычными людьми мешала необходимость наличия специальных сканеров для чтения информации, зашифрованной в QRC. Но лишь до тех пор, пока не стали выпускаться (с 2002 года) первые мобильные телефоны, в которые были встроены сканеры QRC. Ну а "золотой век" QRC наступил с бурным распространением по всему миру смартфонов, которые с помощью встроенной камеры могли считывать QRC и декодировать информацию, которая содержится в коде. С тех пор QRC стали использовать практически везде (их можно увидеть на сайтах, рекламных проспектах и листовках, в журналах и меню, с их помощью можно осуществлять оплату товаров и услуг и т.д. и т.п.) 

Как же "устроен" QRC? В трех из четырех углов квадратного QRC расположены небольшие квадратики - метки. По этим меткам считывающее устройство распознает во-первых, что перед ним расположен именно QRC и определяет его ориентацию, а во-вторых, сканер "понимает", что информация для считывания ("служебная информация" и "информация для декодирования") находится в квадрате, который и определяется данными метками.

"Внутренность" QRC представляет собой сетку из квадратных ячеек. Каждой ячейке присваивается одно из двоичных значений в зависимости от её цвета (обычно ячейки бывают черного или белого цвета, но возможно и применение других цветов, единственным условием для использование которых является ярко выраженный контраст между используемыми цветами). Сканер считывает цвет каждой ячейки, анализирует его, и декодирует заложенную в QRC информацию.


Структура стандартного QRC:

  •  белое поле (отступ) - это рамка белого цвета , расположенная по внешнему краю QRC, показывающая сканеру где находятся внешние границы QRC
  • код версии - данная метка указывает сканеру какая версия QRC перед ним
  • код маски и уровня коррекции  - в них находятся сведения о формате кодировки QRC, так-же эти полосы отвечают за контроль ошибок при считывании QRC
  • неизменные части QRC (ячейки данных) - это квадратики, непосредственно содержащие информацию закодированную в QRC
  •  поисковый узор - три квадрата, расположенные в углах QRC, показывающие сканеру ориентацию QRC
  • выравнивающий узор - небольшой квадрат, который располагается в правой нижней части QRC, позволяющий чтение QRC, даже если он перевернут или перекошен
  • полосы синхронизации - это линии между квадратами поискового узора,  которые позволяют произвести считывание информации в случае повреждения QRC и идентифицировать отдельные квадраты в структуре QRC

Существует немало версий QRC, но среди них выделяют четыре основных версии (информация о версии QRC находится в метке "код версии"):

1. Цифровое кодирование

В данной версии QRC используются только десятичные цифры от ноля до девяти. Такая версия QRC позволяет записывать в код до 7089 символов.

2. Буквенно-цифровое кодирование

В данной версии QRC используются заглавные латинские буквы (от А до Z), десятичные цифры (от 0 до 9) и специальные символы. Такая версия QRC позволяет записывать в код до 4296 символов.

3.  Двоичное кодирование


В данной версии QRC используются только два символа - 0 и 1. Такая версия QRC позволяет записывать в код до 2953 символов.

4. Кодирование Кандзи

В данной версии QRC используются только японские иероглифы. Такая версия QRC позволяет записывать в код до 1817 символов.

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