Данная статья начинает цикл «Структура QR кода».Ориентировочно будет около 10 статей посвященных принципам формирования изображений с помощью данного кода и 2 — 3 статьи посвящены библиотеке на .Net, которая производит кодирование и декодирование ��анного кода.Цель цикла разобрать QR код «по косточкам», чтобы помочь интересующимся в его быстром освоении.

Статья 1:«Базовые характеристики QR»

QR Code, как и любой другой представитель двумерных штрих кодов, использует матричную символику оперирует следующими присущими ему характеристиками:
  • Формат:
    • QR Code, имеет полный спектр возможностей и максимально поддерживаемый объем шифруемой информации;
    • MicroQR Code, обладает укороченным заголовком и обрезанным объемом шифруемой информации;

  • Тип кодирования:
    • numeric data(числовой, поддеживает цифры 0-9);
    • alphanumeric data(альфачисловой, поддерживает цифры 0-9, буквы верхнего регистра A-Z,9 спецсимволов: пробел,$ % * + — / :);
    • byte data(битовый, по умолчанию ISO/IEC 8859-1);
    • Kanji data(Кандзи упаковывается в 13 бит);

  • Модульные размеры:
    • QR Code, может иметь размеры от 21х21 модуль до 177х177 модулей, в зависимости от используемой версии Version1...Version40, в общем случае количество модулей увеличивается на 4 с каждым шагом;
    • MicroQR Code, может иметь размер от 11х11 модулей до 17х17 модулей;

  • Количество знаков на символ
    • QR Code
      • numeric data, числовой 7089 знаков;
      • alphanumeric data, альфачисловой 4296 знаков;
      • byte data, битовый 2953 знака;
      • Kanji data, Кандзи 1817 знаков;
    • MicroQR Code
      • numeric data, числовой 35 знаков;
      • alphanumeric data, альфачисловой 21 знак;
      • byte data, битовый 15 знаков;
      • Kanji data, Кандзи 9 знаков;


  • Уровни коррекции ошибок(опционально)
    • L 7%
    • M 15%
    • Q 25%
    • H 30%

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

Не менее интересными являются дополнительные возможности:
  • Structured append -Структурированное дополнение(конкатенация), предоставляет возможность объединения логически разбитой информации на 16 символов, в любой последовательности без ущерба для восстановления.
  • Extended Channel Interpretations-Дополнительный канал интерпретации, позволяет использовать набор символов отличный от набора по умолчанию(к примеру: Арабские символы, Кириллица, Греческие символы) и другие специфические наборы, используемые в промышленных стандартах.
  • Reflectance reversal-Обратное отражение, по международному стандарту рекомендуется использовать черные изображения на белом фоне, однако поддерживается возможность нанесения белых с��мволов на черном фоне, обязательным условием является то, что данного рода код должен базироваться на стандартном(проще всего это сделать поменяв местами цветовую гамму, где был черный стал белый и наоборот).
  • Mirror imaging-Зеркальное отображение, по стандарту слои обнаружения должны располагаться в правом верхнем, левом верхнем, левом нижнем углах изображения, однако поддерживается возможность использования данных слоев в порядке левый верхний, правый верхний, правый нижний, соответсвенно происходит обмен позиций строк и колонок модулей.

Далее 2 рисунка описывающие последние 2 пункта:


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

Источники:
Information technology — Automatic identification and data capture techniques — Bar code symbology — QR Code
Information technology — Automatic identification and data capture techniques — QR Code 2005 bar code symbology specification
Information technology — Automatic identification and data capture techniques — Bar code print quality test specification — Two-dimensional symbols