Как расшифровывается код. Как cчитать QR-код: все способы

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

Код типа «quick response» может считать каждый. Информация, которую он заключает в себе, также различна. Это ссылки, слоганы, адреса и телефоны, названия компаний, географические координаты и прочее. В пользу данного типа шифрования говорит его компактность и «нейтральность», удобство в использовании за счет значительного распространения портативной техники. Практически любой современный смартфон может понять QR-код посредством встроенной или устанавливаемой программы. Самые популярные из них называются QR Droid Code Scanner (для Андроида), Kaywa reader или QuickMark (для операционной среды Symbian OS V9 или Windows Mobile), iMatrix для Mac-техники, BeeTagg для Блэкбэрри, Plam OS и простых телефонов на Java. “Nokia barcode reader” примечателен тем, что поддерживает управление с тачскрина и быстро справляется даже с нечеткими или поврежденными изображениями. Скачать программы для распознавания шифра проще всего на сайте разработчиков или в таких авторитетных онлайн-ресурсах, как “Магазин Windows “, “Google Play” , “App Store” . Это гарантирует безопасность пользователя и бесплатное получение ПО. Итак, выбираем программу, устанавливаем так, как указано на инструкции к ней, запускаем и находим нужный КьюАр-код. Далее наводим камеру на картинку, которая распознается автоматически или после сохранения снимка. Информация тут же обрабатывается избранным приложением и выводится на экран. Ссылки на сайты обычно открываются в браузере.


При желании QR-код можно создать самостоятельно. Для этого даже не потребуется стороннего программного обеспечения, так как некоторые сайты предлагают провести шифрование онлайн. К примеру, поэкспериментировать с кодировкой можно посредством букмарклета на QRCoder.ru. Сервис позволяет зашифровать смс, визитку, послание, ссылку в виде картинки лишь с помощью смартфона и его камеры. Сообщение может содержать до 7089 цифр, 4296 латинских и 1450 кириллических букв, 1817 иероглифов. Размер изображения колеблется от 21х21 до 177х177 пикселей.С другой стороны, самый гигантский КьюАр, занесенный в книгу рекордов Гиннесса, занимает около 3-х гектар и находится на кукурузном поле в Канаде. Современная сфера использования QR настолько широка, что их даже начали печатать на футболках. Весьма удобно отсканировать такой шифр, моментально получив ссылку на страницу в социальных сетях или даже телефон. Создать расширенную версию кода для знакомств поможет QrRussia.RU.


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

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

Ранее для регистрации пользовались исключительно идентификационным номером налогоплательщика (ИНН). Но со временем, когда число создаваемых юридических лиц начало неуклонно расти, возникла необходимость в создании еще одной регистрационной формы. Ею стал ОГРН.

Что же означает и как расшифровывается аббревиатура ОГРН ?

Первым шагом при создании нового юридического лица является обязательное присваивание основного государственного регистрационного номера , или, если говорить сокращенно, ОГРН.

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

В состав основного регистрационного номера входят всего 13 цифр. Рассмотрим значение каждой из них на конкретном примере. Представим, что юридическое лицо имеет номер 1-14-37-02-87345-5. Расшифруем, что же это значит.

  • Первое число в перечне (в данном случае — цифра «1 ») означает, что конкретно этот номер регистрации принадлежит частному юридическому лицу . Точно такое же значение имеет цифра «5», нужно учитывать это, если ОГРН начинается именно с нее.

На первом месте в основном регистрационном гос номере также могут находиться числа «2» и «3» .

Если первое значение «2», то данный номер характеризует государственное учреждение, если «3» – это ОГРНИП, то есть регистрационный гос номер, принадлежащий индивидуальному предпринимателю.

Итак, в примере, который мы рассматриваем, юридическое лицо занесено в гос реестр записью 87345, сделанной в 2014 году 2-й инспекцией ФНС по г. Иваново.

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

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

Для проверки подлинности госномера применяется контрольное число.

ОГРНИП: чем отличается ОГРН для индивидуальных предпринимателей

Как уже упоминалось выше, разновидностью регистрационного гос номера, который присваивается организациям, является ОГРНИП, предназначенный для индивидуального предпринимателя.

Этот номер так же присваивается каждому ИП, регистрируемому налоговой службой, однако содержит 15 цифр вместо 13, так как имеет пару отличий:

  1. Решений о регистрации индивидуальных предпринимателей принимается гораздо больше, чем об образовании юридического лица, поэтому номер записи, которая фиксирует в гос реестре создание нового ИП, имеет 9 цифр вместо пяти .
    Таким образом, если ОГРНИП 3-14-77-854396754-9, то номером решения в гос реестре будет 854396754.
  2. Несколько отличаться будет и расчет проверочного числа. Для того чтобы узнать правильность последней цифры регистрационного номера, его первые 14 цифр необходимо разделить на число 13 .
    Если полученный остаток совпадет с последним значением в указанном номере, то он является достоверным.

Научившись правильно расшифровывать код ОГРН, можно получить достаточно много информации об интересующем юридическом лице или ИП.

Свидетельство, подтверждающее наличие у организации ОГРН, является одним из наиболее важных учредительных документов, определяющих ее деятельность. К тому же, данный документ будет первичен по отношению к любому другому учредительному документу.

Н а свидетельстве, утверждающем внесение ОГРН в ЕГРЮЛ, указываются:

  • дата сделанной записи,
  • наименование регистрируемого юридического лица, как полное, так и сокращенное,
  • и название органа, осуществившего регистрацию.

Что делать, если утерян бланк свидетельство ОГРН?

Исходя из того, что основной регистрационный гос номер присваивается юридическому лицу раз и навсегда, соответственно, при утере оригинала свидетельства ОГРН, может быть выдан его дубликат . Для того чтобы получить копию, необходимо выполнить следующее:

С оплатой пошлины могут возникнуть недоразумения, особенно для организаций, зарегистрированных раньше 2002 года, когда регистрационный госномер попросту не применялся. В этом случае размер гос пошлины следует уточнить непосредственно в ИФНС, иначе существует риск потратить средства впустую.

  • Реквизиты получателя гос пошлины можно узнать как в самой ИФНС, так и на официальном сайте налоговой службы.

Чтобы узнать реквизиты через интернет , посетите официальный портал ФНС и перейдите по ссылке « Адреса и платежные реквизиты вашей инспекции».

Потребуется только заполнить форму, в которой необходимо будет последовательно выбрать нужный регион и населенный пункт. Здесь можно узнать все необходимые данные – ИНН, ОКАТО, счет, БИК и многое другое.

  • После оплаты гос пошлины необходимо написать заявление, адресуемое начальнику соответствующего регистрационного органа ФНС.

Заявление о выдаче копии свидетельства ОГРН заполняется в двух экземплярах, в нем указывают наименовании организации, номера ОГРН и ИНН, контактный телефон и адрес.

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

  • После подачи заявления потребуется лишь посетить ФНС через 5 дней, чтобы забрать готовый дубликат свидетельства о присвоении регистрационного гос номера.

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

Не забывайте, что весь «необходимый пакет документов » – это только паспорт, два экземпляра заявления и квитанция об оплате пошлины, а подавать заявление необходимо лично главе организации, который также должен будет присутствовать при выдаче дубликата.

Поэтому не стоит доверять фирмам, предлагающим посреднические услуги в этом случае – времени вы не сэкономите, но деньги потеряете.

Подобно индивидуальному номеру налогоплательщика, ОГРН будет оригинальным и уникальным для любого зарегистрированного лица, будь оно юридическим, или речь идет про индивидуального предпринимателя.

Он показывает, имеет ли право конкретная организация на осуществление какой-либо деятельности; в своем роде это основной документ, легализующий работу предприятия .

Поэтому, осуществляя проверку ОГРН, можно установить, легально ли существует какая-либо фирма и не является ли ее деятельность мошеннической.

Как подтвердить или узнать подлинность ОГРН компании и организации?

Установить, настоящий ли регистрационный номер указан организацией, можно следующими путями:

  1. Отправив налоговым органам официальный запрос. В этом случае для получения необходимой информации потребуется предварительная оплата государственной пошлины.
  2. Информацию о зарегистрированных индивидуальных предпринимателях и юридических лицах можно получить на официальном сайте ФНС. Если информация об организации есть в Едином государственном реестре, она обязательно найдется на сайте.
  3. Рассчитать подлинность ОГРН можно при помощи контрольного числа.

Первый вариант будет самым длительным и потребует вложения средств, однако с его помощью можно получить наиболее полные и точные данные.

Как выяснить ОГРН при помощи сети интернет

Самый быстрый и удобный способ узнать ОГРН – воспользоваться официальным порталом федеральной налоговой службы.

Чтобы это сделать, вам потребуется выполнить следующие действия:

  • Посетите сайт www.nalog.ru;
  • На основной странице сайта, в меню крупно выделены центральные ссылки. Это «Индивидуальные предприниматели», «Юридические лица» и «Физические лица». Соответственно, если вы ищете госномер индивидуального предпринимателя или юридического лица – выбирайте нужную ссылку.
  • После перехода по нужной ссылке система выдаст перечень доступных ссылок, из которых нужно выбрать услугу «Проверка контрагентов». Данная услуга доступна как по юридическим лицам, так и по индивидуальным предпринимателям.
  • После выбора услуги «Проверка контрагентов» вы перейдете к форме поиска, с помощью которой можно найти нужную организацию по номеру ОГРН или ИНН, либо по наименованию.

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

Все цифры в нем имеют свое значение. Для того чтобы узнать ОГРН какой-либо организации, можно воспользоваться официальным сайтом ФНС, а быстро проверить его подлинность позволит расчет контрольного числа.

  • Tutorial

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

В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.

Иллюстраций: 14, символов: 8 510.

Для тех, кто не в курсе что такое QR код , есть в английской Wikipedia. Также можно почитать тематический блог на Хабре и несколько хороших статей по смежной тематике, которые можно найти поиском .

Решение задачи непосредственного чтения информации с QR-картинки рассмотрим на примере двух кодов. Информация была закодирована в online-генераторе QR Coder.ru .

Чтобы понять, как извлечь данные из кода, нужно разобраться в алгоритме. Существует несколько стандартов в семействе QR кодов, с их базовыми принципами можно ознакомиться в спецификациях. Кратко поясню: данные, которые необходимо закодировать, разбиваются на блоки в зависимости от режима кодирования. К разбитым по блокам данным прибавляется заголовок, указывающий на режим и количество блоков. Существуют и такие режимы, в которых используется более сложная структура размещения информации. Данные режимы рассматривать не будем ввиду того, что извлекать вручную из них информацию нецелесообразно. Однако, основываясь на тех принципах, которые описаны ниже, можно адаптироваться и к этим режимам.

На случай некорректного чтения данных, в QR применяются специальные коды, которые способны исправить недочёты при чтении. Это так называемые коды Рида-Соломона . Принцип вычисления кодов, а также исправление ошибок в блоках информации рассматривать не будем, это тема отдельной статьи. Корректирующие ошибки коды Рида-Соломона (RS) записываются после всех информационных данных. Это очень упрощает задачу непосредственного чтения информации: можно просто считать данные, не трогая коды. Как показывает практика, обычно бОльшую часть QR -матрицы занимают корректирующие RS-коды.

По стандарту, данные с RS-кодами перед записью в картинку «перемешиваются». Для этих целей используют специальные маски. Существует 8 алгоритмов, среди которых выбирается наилучший. Критерии выбора основаны на системе штрафов, о которых можно также почитать в спецификации.

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

Здесь зелёным фломастером подчёркнуты пункты, которые нужно будет выполнить при непосредственном чтении кода. Остальные пункты можно опустить ввиду того, что считывание производит человек.

Шаг 0. QR код

Взглянув на картинки, можно заметить несколько отчётливых областей. Эти области используются для детектирования QR кода. Эти данные не представляют интереса с точки зрения записанной информации, но их нужно вычеркнуть или просто запомнить их расположение, чтобы они не мешали. Всё остальное поле кода несёт уже полезную информацию. Её можно разбить на две части: системная информация и данные. Также существует информация о версии кода. От версии кода зависит максимальный объём данных, которые могут быть записаны в код. При повышении версии – добавляются специальные блоки, например как здесь:

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

Размещение системной информации показано на рисунке:

Системная информация дублируется, что позволяет значительно понизить вероятность возникновения ошибок при детектировании кода и считывании. Системная информация – это 15 бит данных, среди которых первые 5 - это полезная информация, а остальные 10 - это BCH (15,5) код, который позволяет исправлять ошибки в системных данных. К классу BCH кодов относят и RS коды. Обратите внимание, что на рисунке две полоски по 15 бит не пересекаются.

Шаг 1. Чтение 5 бит системной информации

Как уже говорилось, интерес представляют только первые 5 бит. Из которых 2 бита показывают уровень коррекции ошибок, а остальные 3 бита показывают какая маска из доступных 8 применяется к данным. В рассматриваемых QR кодах системная информация содержит:

Шаг 2. Маска для системной информации

Кроме уже озвученных схем зашиты системной информации, вдобавок, используется статическая маска, которая применяется к любой системной информации. Она имеет вид: 101010000010010 . Так как имеет интерес только первые 5 бит, то маску можно сократить и легко запомнить: 10101 (десять - сто один). После применения операции «исключающего или» (xor) получаем информацию.

Возможные уровни коррекции ошибок:

L 01
M 00
Q 11
H 10

Возможные маски:

000 (i + j) mod 2 = 0
001 i mod 2 = 0
010 j mod 3 = 0
011 (i + j) mod 3 = 0
100 ((i div 2) + (j div 3)) mod 2 = 0
101 (i j) mod 2 + (i j) mod 3 = 0
110 ((i j) mod 2 + (i j) mod 3) mod 2 = 0
111 ((i+j) mod 2 + (i j) mod 3) mod 2 = 0

Шаг 3. Чтение заголовка данных

Чтобы понять с какими данными предстоит иметь дело, необходимо изначально прочитать 4-х битный заголовок, который содержит в себе информацию о режиме. Специфика чтения данных изображена на картинке:

Список возможных режимов:

P.S. Соблюдайте правила ресурса и условия Creative Commons Attribution 3.0 Unported (CC BY 3.0)

P.P.S. Если ошибся блогом, то подскажите куда - перенесу.

Теги: Добавить метки

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

В первую очередь, для того чтобы приступать к штурму кода, необходимо разобраться, каким именно образом происходит шифрование. Существуют несколько типов кодирования данных:

  • числовой (цифры 0-9);
  • альфачисловой (цифры 0-9, буквы A-Z, спецсимволы: пробел,$ % * + — / :);
  • битовый;
  • Кандзи (файлы упаковываются в 13 бит);

Как расшифровать QR код?

Вся информация в коде разбивается на блоки. Их можно условно разделить на 4 типа:

  1. область детектирования, то есть преобразовывающий модуль (расположенные по углам кода большие отчетливые квадраты, внутри которых находится еще один черный квадрат). Эта область не несет полезной информации с точки зрения расшифровки данных;
  2. системная информация. Она представляет собой две полосы данных, которые дублируются по 2 раза (итого 4 полосы, расположенных сбоку, справа и снизу от блоков детектирования);
  3. информация о версии кода. От версии кода зависит максимальное количество данных, которое можно зашифровать. Чем выше версия, тем сложнее данные расшифровать вручную. Иногда это просто не целесообразно. С повышением версии, количество блоков в коде будет больше. То есть между преобразовывающими модулями по краям пространство будет заполнено плотнее;
  4. непосредственно данные.

Шаг 1.

Интерес, с точки зрения расшифровки информации, представляет только одна строка системного кода. Она находится сразу под левым верхним преобразовывающим модулем. Тут находится 5 бит информации.

Теперь нужно вспомнить двоичную систему счисления и записать данные в этой строке. Итак, смотрим на строку (строка заканчивается под левым верхним преобразовывающим модулем) и записываем 0 на пустом месте и 1 на заполненном. Нас интересуют только первые 5 бит информации. Таким образом, получаем строку из 5 цифр (например 10111).

Шаг 2.

Теперь применяем маску к системной информации. Маска — это дополнительный способ защиты информации. Она имеет вид: 101010000010010. Поскольку мы работаем только с 5 битами информации, то и маску сокращаем соответственно. Оставляем первые 5 цифр и получаем 10101. Теперь к нашим 5 битам применяем маску с помощью операции исключающего или (XOR).

Например: 10111 XOR 10101 = 00010

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

где i — строка, j—раздел.

Шаг 3.

Переходим к заголовку данных в коде. Заголовок находится в правом нижнем углу. Мысленно выделяем прямоугольник 2×12, который располагается с краю справа и направлен вверх. Запомним его расположение, он нам понадобится при непосредственном чтении данных.

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

Например: 0100

Список возможных режимов приведен ниже:

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

Опять применяем к вычисленным данным маску с помощью оператора XOR.

Например 0100 XOR 0000 = 0100

Шаг 4.

Приступаем к чтению данных. Данные записаны в нашей прямоугольной области 2×12, начиная с 3-й строки (первые 2 строки- заголовок данных). Строки мы читаем снизу вверх. Итак, переводим в двоичный код всю оставшуюся область прямоугольника. Двигаемся змейкой справа налево. Получаем ряд из 20 цифр. Применяем маску с помощью оператора XOR. Для 8-битного типа данных полная маска будет 0000 0000 0000 0000 0000, для численного- 0001 1000 0110 0001 1000. (Вычисляем маску по приведенным выше формулам).

Теперь определяем режим чтения данных по таблице, приведенной ниже:

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

Если полученное число пакетов больше, чем 1, то приступаем к дальнейшей расшифровке. Для этого переходим к чтению следующего столбца. Мысленно выделяем область 2×12 слева от первого выделенного прямоугольника. Переводим его в двоичный код, используя тот же принцип «змейки». К получившемуся ряду цифр применяем маску, вычисленную с помощью приведенных выше формул, с помощью оператора XOR. Далее для расшифровки ряда цифр делим его на группу из 8, 9 или 10 цифр (ряд читать справа налево), в зависимости от режима чтения (таблица представлена выше). Переводим каждую группу из двоичной системы. Для численных значений используем перевод в десятичную систему. Для перевод 8-битных данный используем таблицу кодировки ASCII.

  • Tutorial

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

В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.

Иллюстраций: 14, символов: 8 510.

Для тех, кто не в курсе что такое QR код , есть в английской Wikipedia. Также можно почитать тематический блог на Хабре и несколько хороших статей по смежной тематике, которые можно найти поиском .

Решение задачи непосредственного чтения информации с QR-картинки рассмотрим на примере двух кодов. Информация была закодирована в online-генераторе QR Coder.ru .

Чтобы понять, как извлечь данные из кода, нужно разобраться в алгоритме. Существует несколько стандартов в семействе QR кодов, с их базовыми принципами можно ознакомиться в спецификациях. Кратко поясню: данные, которые необходимо закодировать, разбиваются на блоки в зависимости от режима кодирования. К разбитым по блокам данным прибавляется заголовок, указывающий на режим и количество блоков. Существуют и такие режимы, в которых используется более сложная структура размещения информации. Данные режимы рассматривать не будем ввиду того, что извлекать вручную из них информацию нецелесообразно. Однако, основываясь на тех принципах, которые описаны ниже, можно адаптироваться и к этим режимам.

На случай некорректного чтения данных, в QR применяются специальные коды, которые способны исправить недочёты при чтении. Это так называемые коды Рида-Соломона . Принцип вычисления кодов, а также исправление ошибок в блоках информации рассматривать не будем, это тема отдельной статьи. Корректирующие ошибки коды Рида-Соломона (RS) записываются после всех информационных данных. Это очень упрощает задачу непосредственного чтения информации: можно просто считать данные, не трогая коды. Как показывает практика, обычно бОльшую часть QR -матрицы занимают корректирующие RS-коды.

По стандарту, данные с RS-кодами перед записью в картинку «перемешиваются». Для этих целей используют специальные маски. Существует 8 алгоритмов, среди которых выбирается наилучший. Критерии выбора основаны на системе штрафов, о которых можно также почитать в спецификации.

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

Здесь зелёным фломастером подчёркнуты пункты, которые нужно будет выполнить при непосредственном чтении кода. Остальные пункты можно опустить ввиду того, что считывание производит человек.

Шаг 0. QR код

Взглянув на картинки, можно заметить несколько отчётливых областей. Эти области используются для детектирования QR кода. Эти данные не представляют интереса с точки зрения записанной информации, но их нужно вычеркнуть или просто запомнить их расположение, чтобы они не мешали. Всё остальное поле кода несёт уже полезную информацию. Её можно разбить на две части: системная информация и данные. Также существует информация о версии кода. От версии кода зависит максимальный объём данных, которые могут быть записаны в код. При повышении версии – добавляются специальные блоки, например как здесь:

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

Размещение системной информации показано на рисунке:

Системная информация дублируется, что позволяет значительно понизить вероятность возникновения ошибок при детектировании кода и считывании. Системная информация – это 15 бит данных, среди которых первые 5 - это полезная информация, а остальные 10 - это BCH (15,5) код, который позволяет исправлять ошибки в системных данных. К классу BCH кодов относят и RS коды. Обратите внимание, что на рисунке две полоски по 15 бит не пересекаются.

Шаг 1. Чтение 5 бит системной информации

Как уже говорилось, интерес представляют только первые 5 бит. Из которых 2 бита показывают уровень коррекции ошибок, а остальные 3 бита показывают какая маска из доступных 8 применяется к данным. В рассматриваемых QR кодах системная информация содержит:

Шаг 2. Маска для системной информации

Кроме уже озвученных схем зашиты системной информации, вдобавок, используется статическая маска, которая применяется к любой системной информации. Она имеет вид: 101010000010010 . Так как имеет интерес только первые 5 бит, то маску можно сократить и легко запомнить: 10101 (десять - сто один). После применения операции «исключающего или» (xor) получаем информацию.

Возможные уровни коррекции ошибок:

L 01
M 00
Q 11
H 10

Возможные маски:

000 (i + j) mod 2 = 0
001 i mod 2 = 0
010 j mod 3 = 0
011 (i + j) mod 3 = 0
100 ((i div 2) + (j div 3)) mod 2 = 0
101 (i j) mod 2 + (i j) mod 3 = 0
110 ((i j) mod 2 + (i j) mod 3) mod 2 = 0
111 ((i+j) mod 2 + (i j) mod 3) mod 2 = 0

Шаг 3. Чтение заголовка данных

Чтобы понять с какими данными предстоит иметь дело, необходимо изначально прочитать 4-х битный заголовок, который содержит в себе информацию о режиме. Специфика чтения данных изображена на картинке:

Список возможных режимов:

P.S. Соблюдайте правила ресурса и условия Creative Commons Attribution 3.0 Unported (CC BY 3.0)

P.P.S. Если ошибся блогом, то подскажите куда - перенесу.

Теги:

  • QR код
  • код Рида-Соломона
Добавить метки
Похожие публикации