PDF417 - PDF417

PDF417 - это многослойный линейный формат штрих-кода , используемый в различных приложениях, таких как транспорт, идентификационные карты и управление запасами. «PDF» расшифровывается как Portable Data File. Число «417» означает, что каждый шаблон в коде состоит из 4 штрихов и пробелов в шаблоне длиной 17 единиц (модулей). Символика PDF417 была изобретена Инджиуном П. Вангом из компании Symbol Technologies в 1991 году ( Ван, 1993 ). Она определена в стандарте ISO 15438.

Приложения

PDF417 используется во многих приложениях как коммерческих, так и государственных организаций. PDF417 - это один из форматов (наряду с матрицей данных ), который можно использовать для печати почтовых отправлений, принимаемых Почтовой службой США . PDF417 также используется в стандарте авиационной индустрии посадочных талонов со штрих-кодом ( BCBP ) как символика двухмерного штрих-кода для бумажных посадочных талонов. PDF417 - это стандарт, выбранный Министерством внутренней безопасности в качестве технологии машиночитаемых зон для водительских прав, совместимых с RealID, и удостоверений личности государственного образца . Штрих-коды PDF417 также включены в визы и карты для пересечения границы, выданные Государством Израиль ( пример ).

Функции

Помимо функций, типичных для двухмерных штрих-кодов, PDF417 имеет следующие возможности:

  • Связывание. Символы PDF417 могут связываться с другими символами, которые сканируются последовательно, что позволяет хранить еще больше данных.
  • Указанные пользователем размеры. Пользователь может выбрать ширину самой узкой вертикальной полосы (размер X) и высоту строк (размер Y).
  • Формат общественного достояния. Кто угодно может внедрять системы, использующие этот формат, без какой-либо лицензии .

Введение в документ ISO / IEC гласит:

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

Формат

PDF417 Example.svg

Штрих-код PDF417 (также называемый символом ) состоит из 3–90 строк, каждая из которых похожа на небольшой линейный штрих-код. В каждой строке есть:

  • тихая зона . Это обязательное минимальное количество белого пространства перед началом штрих-кода.
  • шаблон начала, который идентифицирует формат как PDF417.
  • кодовое слово "строка слева", содержащее информацию о строке (например, номер строки и уровень исправления ошибок)
  • 1–30 кодовых слов данных : Кодовые слова представляют собой группу штрихов и пробелов, представляющих одно или несколько чисел, букв или других символов.
  • кодовое слово "строка справа" с дополнительной информацией о строке.
  • шаблон остановки.
  • еще одна тихая зона.

Все ряды одинаковой ширины; каждая строка имеет одинаковое количество кодовых слов.

Кодовые слова

PDF417 использует базовую кодировку 929. Каждое кодовое слово представляет собой число от 0 до 928.

Кодовые слова представлены узорами темных (полоса) и светлых (пробел) областей. Каждый из этих паттернов содержит четыре полоски и четыре пробела (откуда 4 в названии). Общая ширина в 17 раз больше ширины самой узкой разрешенной вертикальной полосы (размер X); Отсюда цифра 17 в названии. Каждый узор начинается с полосы и заканчивается пробелом.

Высота строки должна быть как минимум в 3 раза больше минимальной ширины: Y ≥ 3 X.

Для представления каждого кодового слова используются три различных шаблона штрих-пробела. Эти шаблоны разделены на три группы, известные как кластеры . Кластеры помечены цифрами 0, 3 и 6. Шаблоны штрих-пробел не используются более чем в одном кластере. Строки символа циклически проходят через три кластера, поэтому в строке 1 используются шаблоны из кластера 0, в строке 2 используется кластер 3, в строке 3 используется кластер 6, а в строке 4 снова используется кластер 0.

Какой кластер можно определить с помощью уравнения:

Где K - номер кластера, а b i относится к ширине i-й черной полосы в символе (в единицах X ).

В качестве альтернативы,

Где E i - это i -ое расстояние от края до следующего края. Нечетные индексы - это от передней кромки полосы до передней кромки следующей полосы; четные индексы для задних кромок.

Одна из целей трех кластеров состоит в том, чтобы определить, в какой строке (mod 3) находится кодовое слово. Кластеры позволяют считывать части символа с использованием одной строки развертки, которая может быть отклонена от горизонтали. Например, сканирование может начинаться в строке 6 в начале строки, но заканчиваться в строке 10. В начале сканирования сканер видит постоянный начальный шаблон, а затем он видит символы в кластере 6. Когда сканирование с перекосом сдвигает строки 6 и 7, тогда сканер обнаруживает шум. Когда сканирование выполняется в строке 7, сканер видит символы в кластере 0. Следовательно, сканер знает направление перекоса. К тому времени, когда сканер достигнет правого края, он окажется в строке 10, поэтому он видит шаблоны кластера 0. Сканер также будет видеть постоянный шаблон остановки.

Кодирование

Из 929 доступных кодовых слов 900 используются для данных и 29 для специальных функций, таких как переключение между основными режимами. Три основных режима кодируют разные типы данных по-разному и при необходимости могут быть смешаны в одном штрих-коде:

  • Байт : каждая группа из 5 кодовых слов представляет 6 байтов. (Потому что 900 5 > 256 6. ) Дополнительные байты кодируются по одному на кодовое слово.
  • Числовой : n цифр закодированы в кодовых словах ⌊ n / 3 +1, максимум до 44 цифр в 15 кодовых словах.
  • Текст : каждое кодовое слово представляет две цифры с основанием 30, которые используются системой из четырех подрежимов для представления печатаемых символов ASCII (плюс CR , LF и HT ):
    • Прописные буквы : A – Z, SP , перейти на строчные, изменить на смешанный, интерпретировать следующую цифру как знак препинания.
    • Строчные: a – z, SP, интерпретировать следующую цифру как прописную, изменить на смешанный, интерпретировать следующую цифру как знаки препинания
    • Смешанные: 0–9, &, CR, HT, запятая,:, #, -, точка, $, /, +,%, *, =, ^, изменение на пунктуацию, SP, изменение на нижний регистр, изменение на верхний регистр, Интерпретировать следующую цифру как знаки препинания
    • Пунктуация:;, <,>, @, [, \,], _, `, ~,!, CR, HT, запятая,:, LF, -, точка, $, /,", |, *, (, ),?, {,}, ', Изменить на верхний регистр

Исправление ошибки

При создании символа PDF417 добавляются от 2 до 512 кодовых слов для обнаружения и исправления ошибок. PDF417 использует исправление ошибок Рида – Соломона . Когда символ сканируется, максимальное количество исправлений, которые могут быть сделаны, равно количеству добавленных кодовых слов, но стандарт рекомендует удерживать два кодовых слова, чтобы гарантировать надежность исправленной информации.

Сравнение с другими символиками

PDF417 - это сложенный штрих-код, который можно прочитать простым линейным сканированием, проведенным по символу. Для этого линейного сканирования нужны левый и правый столбцы с кодовыми словами начала и конца. Кроме того, сканирование должно знать, какую строку оно сканирует, поэтому каждая строка символа должна также кодировать свой номер строки. Более того, строчная развертка читателя не будет сканировать только строку; обычно он начинает сканирование одной строки, но затем переходит к соседнему и, возможно, продолжает пересекать последовательные строки. Чтобы свести к минимуму влияние этих пересечений, модули PDF417 бывают высокими и узкими - высота обычно в три раза больше ширины. Кроме того, каждое кодовое слово должно указывать, к какой строке оно принадлежит, чтобы можно было обнаруживать пересечения, когда они возникают. Кодовые слова также предназначены для дельта-декодирования, поэтому некоторые кодовые слова являются избыточными. Каждое кодовое слово данных PDF представляет около 10 бит информации (log 2 (900) ≈ 9,8), но напечатанное кодовое слово (символ) имеет ширину 17 модулей. Включая высоту 3 модуля, кодовое слово PDF417 занимает 51 квадратный модуль для представления 10 бит. В этой области не учитываются другие служебные данные, такие как информация о начале, остановке, строке, формате и ECC.

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

На практике символ PDF417 занимает площадь примерно в четыре раза больше, чем DataMatrix или QR-код.

использованная литература

внешние ссылки