Анатомия QR-кодов: как устроены загадочные черно-белые квадраты

Квадратные шифры уже несколько лет являются неотъемлемой частью нашей жизни: с их помощью можно оплатить покупки, просмотреть меню в ресторане, пройти в кинотеатр, узнать, кто произвел и откуда ввезли какой-либо товар. QR-коды могут содержать разнообразную информацию, как же им удается это все впитывать?
Анатомия QR-кодов: как устроены загадочные черно-белые квадраты
Unsplash
Штрихкоды — уже прошлый век. Настала пора QR-кодов!

Как и развитие многих технологий, создание QR-кодов было вынужденной мерой. Так, в 1960-х годах в Японии наблюдался резкий скачок экономического роста. В супермаркетах стали продаваться не только продукты питания, но и одежда, и аксессуары, и косметика... Естественно, спрос на все был огромный, однако существующая в то время техника не была к нему готова, и продавцам приходилось вручную вводить в компьютеры стоимость каждого товара. Только представьте: 8 часов с одним перерывом на обед стоять на кассе и печатать суммы. Немудрено, что многие торговцы поувольнялись из-за развившегося у них синдрома запястного канала — неврологического заболевания, проявляющееся ноющей болью в запястьях и онемением пальцев рук.

РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

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

Казалось бы, проблема решена, но впоследствии супермаркеты столкнулись с другой трудностью: штрих-коды могли хранить информацию максимум из 20 буквенно-цифровых символов и функционировать в пределах одного измерения (одного направления кодирования). И здесь в игру вступает компания DENSO WAVE, а именно ее ведущий разработчик Масахиро Хара. В 1994 году он предложил разработать 2D-код для хранения большего количества информации, выполненного в форме квадрата.

QR — это аббревиатура, которая расшифровывается как Quick Response. С английского языка это расшифровывается как «быстрый отклик».

QR-код VS штрих-код

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

РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ
РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ
QR-код и штрих-код
Соцсети

Из чего состоят QR-коды

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

Для считывания QR-код изспользуются оптические датчики, а не привычные многим лазерные сканеры. Последние считаются устаревшими для этой разработки: в случае с 1D-баркодом, луч пробегает по линиям и преобразовывает информацию в ноли и единицы. С QR-кодом ситуацию куда сложнее — лазеру пришлось бы считывать каждый квадратик, каждую полоску отдельно. На это уходило бы уйму времени.

Вокруг этих квадратов есть области (черточки и точечки, отделенные от блоков пробелом), содержащие информацию о том, что именно здесь зашифровано: текст, фото, аудиоматериал, видео или URL-адрес. Они получили название «шаблоны формата».

РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ
QR-код
Соцсети
РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

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

РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ
QR-код
Соцсети

Последняя — область данных. Это все, что находится в центре кода, за исключением перечисленных ваше частей. В ней хранятся модули данных, содержащие фактическую закодированную информацию, и коды Рида-Соломона для функций исправления ошибок.

Область данных в QR-коде
Соцсети
РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

Кстати, об этих кодах. Разработчики наделили квадратные шифры поистине важной суперспособностью — автоматическое исправление ошибок. Допустим, на бумажном носителе какая-то область кода стерлась или заляпалась чернилами ручки. В таком случае алгоритм все равно сможет восстановить данные и полностью расшифровать код, но только если оказались повреждены не более 30% картинки.

QR-коды могут быть разных размеров. Самый большой шифр размером 177 x 177 может содержать до 1264 символов текста ASCII, но чаще всего можно встретить коды размеров от 29 x 29 до 33 x 33, содержащие около 50 символов. Все размеры совместимы с современными устройствами для чтения.

QR-код
При этом сам QR-код окружен областью пробела, называемой «тихой зоной», которая помогает считывателю находить его границы.
Freepik
РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

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

Как генерировать QR-коды

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