Как работают QR-коды?

Изображение, показывающее структуру QR-кодов.

QR-коды добились успеха. Их используют для всего: от билетов в кино до андеграундных рейвов. Если вам нужно поделиться ссылкой, загрузить приложение или даже проверить состояние здоровья человека, вы можете использовать QR-код. Но как работает эта технология… и удивитесь ли вы, узнав, что она существует с 90-х годов? Мы рассмотрим, как именно работают QR-коды, почему они настолько улучшились на современных устройствах и как эти забавные квадратики стали неотъемлемой частью нашей повседневной жизни.

QR-коды — это просто причудливые штрих-коды.

Они имеют корни в японском автопроизводстве.

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

В галерее выше представлены некоторые другие стандарты штрих-кодов по порядку: UPC, Code128, PDF417, ацтекский код и матрица данных.

2D-штрих-код — это то, на что он похож — 1D-штрих-код с добавленным вторым измерением. Вместо кодирования данных в одну строку строк они кодируют данные в двух измерениях. Это значительно увеличивает количество бит данных, которые можно хранить. Если 1D-штрих-код может хранить n бит, то 2D-штрих-код может хранить n^2. QR-коды — это не что иное, как особый тип 2D-штрих-кода с некоторыми дополнительными функциями.

Первые QR-коды были разработаны для использования на производственных линиях.

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

QR-коды обычно сканируются по-другому.

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

Квадраты в квадратах, в квадратах?

Изображение, показывающее структуру QR-кодов.

Источник: Викисклад.

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

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

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

Биты формата и версии

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

Определив версию и размер QR-кода и правильно его сориентировав, можно прочитать рыночный формат QR-кода. Существуют две уникальные копии этого файла, и они содержат информацию об уровне исправления ошибок и битах шаблона маски. Уровень исправления ошибок — это одно из четырех значений, представленных двумя битами в QR-коде (т. е. двумя отдельными крошечными квадратами), кодирующими одно из низких, средних, квартильных или высоких значений, которые допускают 7%, 15%, 25% или 30% от общего количества QR-кода, соответственно, могут быть уничтожены, а данные все равно можно восстановить.

QR-коды используют алгоритм исправления ошибок под названием Рид-Соломон. Мы не будем вдаваться в подробности того, как это работает (чтобы эта статья не превратилась в лекцию по информатике), но он очень эффективен и используется во всем, от DVD до RAID6. Рид-Соломон допускает либо частичную реконструкцию, либо просто обнаружение ошибок, в зависимости от того, насколько данные повреждены.

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

Чтение QR-кодов

Раскодировать QR-коды вручную сложно, но возможно.

Схема, показывающая, как читаются QR-коды.

Источник: Викисклад.

Область данных QR-кода считывается из нижнего правого угла, при этом QR-код ориентирован по шаблону выравнивания в правом нижнем углу. Размер области данных варьируется, некоторые кодируют несколько тысяч символов. Начиная с нижнего угла, QR-код считывает отдельные квадраты (или пиксели) блоками по 8. То, чему соответствует каждый шаблон, зависит от настроек кодировки QR-кода, но обычно они представляют собой символы ASCII (т. е. буквенно-цифровые). Обычно сначала идут длина кода и режим кодирования, затем блок данных, а затем снова данные, используемые для проверки ошибок.

QR-код считывается змеиным узором снизу справа вверху слева, по одному блоку по 8 пикселей за раз. Эти данные извлекаются, упорядочиваются, а затем декодируются для получения исходной строки.

QR-коды часто содержат URL-адреса.

Перенаправление URL-адреса можно использовать для открытия приложения с помощью QR-кода.Изображение приложения с QR-кодом.

Безусловно, наиболее распространенным использованием QR-кодов является сохранение URL-адресов. Эти URL-адреса могут обрабатываться вашим устройством различными способами: от открытия веб-страницы в браузере до отправки электронной почты. URL-адреса можно использовать для перенаправления URL-адресов — метода, при котором веб-страница интерпретируется вашим устройством как открытие приложения, которое затем передает метаданные в приложение. Вероятно, это то, что вы использовали, если отсканировали QR-код, который открылся на веб-сайте, прежде чем открыть приложение с некоторыми метаданными или контекстом.

Но не всегда…

QR-коды можно использовать не только в URL-адресах. Большинство смартфонов могут открыть ссылку в URL-адресе с помощью приложения камеры по умолчанию, но другие приложения, имеющие доступ к камере, могут использовать QR-коды для самых разных целей. Это может быть что угодно: от геокэшинга до появления 3D-монстров дополненной реальности. Скорость и удобство использования QR-кодов для альтернативных приложений улучшились вместе с камерами смартфонов и общей вычислительной мощностью.

Ваше устройство решает, как интерпретировать данные

Лучший способ понять QR-коды — сделать их простыми. QR-код — это просто сообщение. Он представляет собой строку символов некоторой длины от очень короткой до 4000+ символов. Расшифровка QR-кода сама по себе не имеет никакого эффекта — что произойдет дальше, решает приложение или пользователь, декодирующий его. Различные приложения могут использовать QR-коды для разных целей. Билеты часто содержат UUID (универсальный уникальный идентификатор), который представляет ваш билет, и многие системы здравоохранения или пропуска вакцинации от COVID используют аналогичные системы. Стандарт самого QR-кода не меняется, меняется только его применение и интерпретация.

Графические QR-коды

Вы когда-нибудь задумывались, как некоторые люди получают логотипы на своих QR-кодах?QR-код с логотипом Scan Me посередине.

Одна из странностей QR-кодов, которые вы, возможно, видели, — это коды, в центре которых есть логотип, текст или изображение. Как это работает?

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

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

QR-коды здесь, чтобы остаться

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *