Codablock

Codablock (англ. Codablock) — семейство составных штрихкодов, состоящих из нескольких сложенных друг над другом одномерных (1D) штрихкодов (включая разновидности Codablock A, Codablock F и Codablock 256), разработанное в 1989 году в компании Identcode Systeme GmbH (Германия) Генрихом Элманном (Heinrich Oehlmann)[1][2]. Штрихкоды Codablock базируются на сложенных символьных системах Code 39 и Code 128, совмещая некоторые преимущества двумерных (2D) штрихкодов[3][4].

Основная сфера применения Codablock — здравоохранение, в частности стандарты HIBC[5][6]. В настоящее время штрихкоды Codablock вытеснены более современным стандартом Data Matrix[7].

История

Разработка Codablock велась с 1989 по 1995 год. Первая версия, Codablock A, была представлена в 1989 году[8] и стандартизирована как стандарт AIM в 1994 году[9][10]. Codablock A базировался на сложенных штрихкодах Code 39, но не получил широкого распространения из-за ограничений формата Code 39.

Вторая версия — Codablock F[11][12] — была построена на составе Code 128 и принята AIM как стандарт в 1995 году[13]. В настоящее время Codablock F официально считается устаревшим стандартом и не рекомендуется для новых внедрений[14].

Codablock 256[15] был реализован как внутренний стандарт ICS Identcode-Systeme и не прошёл международной стандартизации. Он также построен на базе сложенного Code 128 и позволяет кодировать все 256 знаков набора ISO 8859-1 с помощью символа FNC4; в каждой строке предусмотрена коррекция ошибок. Из-за проблем с распознаванием на сканерах Code 128 в дальнейшем необходимость в отдельном Codablock 256 отпала — восьмибитная кодировка была добавлена в Codablock F, а 256 практически не использовался.

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

Технические особенности

Символьные системы Codablock[16][17] разрабатывались как составная версия кодировок Code 39 и Code 128, обладающая преимуществами 2D-кодов. Такое «составление» позволяет значительно эффективнее использовать прямоугольную область поверхности по сравнению с классическими одномерными штрихкодами, а дополнительные проверочные символы обеспечивают целостность данных в сообщении.

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

Codablock A

Codablock A[18][19] основан на Code 39, поддерживает от 2 до 22 строк, по 1–61 символу в каждой, максимум до 1340 символов. Контрольная сумма для коррекции рассчитывается по модулю 43 по всему блоку.

Codablock F

Codablock F реализован[20] на основе Code 128[21], может содержать от 2 до 44 строк по 4–62 символа, поддерживает кодирование до 2725 символов[22]. Codablock F допускает полное кодирование 8-битного набора ISO 8859-1 и обязателен стартовый символ Start A (Code 128).

Codablock 256

Codablock 256 использует ту же структуру, что и Codablock F, но отличается тем, что каждая строка имеет собственный стартовый символ. Codablock 256, как и Codablock F, может кодировать до 2725 символов. Каждая строка содержит собственную коррекцию ошибок, что позволяет восстанавливать данные при незначительных повреждениях. Этот формат остался внутренней разработкой Identcode Systeme GmbH и не стандартизирован.

Структура Codablock F

Codablock F состоит из массивов строк Code 128 и обладает следующими характеристиками:

  • от 2 до 44 строк;
  • в каждой строке — от 4 до 62 символов данных;
  • максимальная вместимость — до 2725 символов;
  • эффективное использование прямоугольного пространства по сравнению с обычными 1D-кодами;
  • возможность использовать оборудование для чтения Code 128 с минимальными доработками;
  • при печати выглядит как последовательность стандартных строк Code 128;
  • защищён двумя контрольными суммами mod-86 сверх контрольных сумм по каждой строке;
  • поддержка полного набора символов ASCII и 8-битных кодов ISO 8859-1 (через символ FNC4);
  • числовое сжатие: позволяет уплотнить блоки из минимум 4-х цифр, используя только половину пространства;
  • дополнительно защищён блочной контрольной суммой по модулю 103.

Codablock F формируется[23] из строк данных Code 128 между стартовым символом Start A (Code 128) и стоп-символом Code 128. Вторая позиция каждой строки содержит её номер (или в первой строке — общее количество строк). Последняя строка содержит две дополнительные контрольные суммы.

Структура Codablock F
Старт Данные (Code 128) Стоп
Режим/Данные № строки Данные строки (Code 128) Контрольная сумма строки
Start A (Code 128) MD1 Счётчик строк Данные 1-й строки CS1 Stop (Code 128)
MDX RX Данные X-й строки CSX
MDN RN Данные N-й строки CBS1 CBS2 CSN


MDX — селектор режима кодирования или символ данных, если возможно кодирование в режиме Code A.
Счётчик строк — общее количество строк, задаётся в первой строке.
RX — номер строки.
Данные X-й строки — данные, закодированные в строке Code 128.
CSX — контрольная сумма для Code 128.
CBS1, CBS2 — два блочных контрольных символа Codablock F.

Примечания

Литература