.
Таблица 4 — Значения шаблонов поиска и ширина элементов
Вариант шаблона поиска |
Ширина элемента в модулях (при нумерации снаружи вовнутрь) для элемента с номером |
|||||
1 |
2 |
3 |
4 |
5 |
||
0 |
3 |
8 |
2 |
1 |
1 |
|
1 |
3 |
5 |
5 |
1 |
1 |
|
2 |
3 |
3 |
|
1 |
1 |
|
3 |
3 |
1 |
9 |
1 |
1 |
|
4 |
2 |
|
4 |
1 |
1 |
|
5 |
2 |
5 |
6 |
1 |
1 |
|
6 |
2 |
3 |
8 |
1 |
1 |
|
|
1 |
5 |
|
1 |
1 |
|
8 |
1 |
3 |
9 |
1 |
1 |
Пары со значениями шаблона поиска (левый и правый) 8и0и0и8не используют, так как значения 0 и 8 могут быть преобразованы в противоположные значения при возникновении одиночной краевой ошибки 1-Х. Оставшиеся 79 возможных пар значений шаблона поиска кодируют величину контрольной суммы по mod 79.
Вычисление контрольной суммы
Значения для двух шаблонов поиска CLEFT и CR|GHT могут быть представлены одним из девяти воз- можныхзначений. Пары значений шаблонов поиска 0и8и8и0не используют. Таким образом, остается 79 (9 х 9 - 2 = 79) сочетаний пар значений шаблонов поиска. Значение контрольной суммы равно остатку от деления по модулю 79 взвешенной суммы значений ширины элементов в знаке символа.
Значение контрольной суммы по модулю 79 вычисляют по формуле
(W-ijEt j + W, 2Е.] 2 + ...+ W18E18 + W21E21 + ...+W48E48) mod 79,
где WN MEN м — произведение ширины элемента (в модулях) на весовой коэффициент этого элемента по таблице 5, расположенного в позиции М знака символа N1).
Весовые коэффициенты вычисляют как степенную функцию с аргументом 3 по модулю 7934.
Таблица 5 — Весовые коэффициенты элементов знаков символа для вычисления значения контрольной суммы
Номер знака символа |
Весовой коэффициент для элемента с номером |
||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
||
1 |
1 |
3 |
9 |
27 |
2 |
6 |
18 |
54 |
|
2 |
4 |
12 |
36 |
29 |
8 |
24 |
72 |
58 |
|
3 |
16 |
48 |
65 |
37 |
32 |
17 |
51 |
74 |
|
4 |
64 |
34 |
23 |
69 |
49 |
68 |
46 |
59 |
Кодирование двух значений шаблона поиска проводят в следующем порядке: temp равно значению контрольной суммы;
если temp больше или равно 8, то temp = temp + 1;
если temp больше или равно 72, то temp = temp + 1;
Cleft = temp div 9;
cright = temp mod 9-
В приложении F (F.1) приведен пример вычисления контрольной суммы и выбора контрольного знака.
Декодирование шаблона поиска
Декодирование шаблона поиска начинают с его идентификации путем сравнения общей ширины четырех расположенных рядом элементов со значениями ширины крайней левой или крайней правой пар элементов. Для шаблона поиска это отношение должно находиться в пределах от 12:9,5 до 14:12,5. Левый и правый шаблоны поиска отличают по инверсии темных и светлых элементов.
Установление шаблона поиска и проверка действительных пропорций знака символа и соответствующего шаблона поиска должны быть подтверждением того, что был сканирован надлежащий сегмент символа GS1 DataBar Всенаправленный, GS1 DataBar Усеченный, GS1 DataBar Двустрочный или GS1 DataBar Двустрочный Всенаправленный, соответствующий четверти символа.
2.5 Рекомендуемый алгоритм декодирования
Системы считывания штриховых кодов обеспечивают считывание настолько несовершенных символов, насколько это позволяют используемые на практике алгоритмы декодирования. В настоящем пункте приведен рекомендуемый алгоритм декодирования, используемый для расчета значения декодируемости по ISO/IEC 15416 при измерении качества печати символа.
Алгоритм включает в себя следующие этапы декодирования символа:
обнаружение сегмента при поиске в символе слева направо и справа налево последовательности из четырех элементов с заданным соотношением:
при сканировании слева направо:
9,5:12 < ((элемент 1 + элемент 2):(элемент 1 + элемент 2 + элемент 3 + элемент 4)) <12,5:14;
при сканировании справа налево:
9,5:12 < ((элемент 3 + элемент 4): (элемент 1 + элемент 2 + элемент 3 + элемент 4)) <12,5:14.
Данное соотношение определяет со второго по пятый элементы шаблона поиска.
Используя метод, изложенный в перечислении с) 1) — 3), декодируют шаблон поиска для нахождения нормированных значений «от края до подобного края» (штрих плюс пробел и пробел плюс штрих) Е1 и Е2, исходя из размера р, а также сумму размеров первых четырех элементов шаблона поиска. Проверяют соответствие значений Е1 и Е2 действительному шаблону поиска символов штрихового кода GS1 DataBar Всенаправленный, GS1 DataBar Усеченный, GS1 DataBar Двустрочный или GS1 DataBar Двустрочный Всенаправленный.
Примечание — Нумерация элементов соответствует порядку их следования от внешнего края символа к его центру, таким образом, первым элементом в левом шаблоне поиска считают крайний левый элемент, а первым элементом правого шаблона поиска — крайний правый (см. рисунок 2);
определяют направление следования элементов и инверсию элементов «черный — белый» шаблона поиска. С помощью шаблона поиска и ориентации устанавливают, какая (n,k) структура — (16,4) или (15,4) — подходит для прилегающего к нему знак символа, а также цвет (черный или белый) начального элемента;
декодируют каждый прилегающий знак символа со структурой (16,4) следующим образом:
измеряют ширину семи размеров р, ег е2, е3, е4, е5 и е6 (рисунок 3).
Нечетньїщ Нечетный2 Нечетный3
Нечетный4
Четный^ Четный2
Четный3
Четный4
Рисунок 3 — Измеряемые размеры при декодировании
п
2)
реобразуют измеренные размеры еъ е2, е3, е4, е5, и е6 в нормированные значения Е^Ег, Е3, Е4, Е5 и Е6, которые представляют собой ширину в целых значениях модулей (Е,) измеренных размеров. Для значения Е, используют следующие выражения:Е
если 1,5р/16 < е, < 2,5р/16, то Е
если 2,5р/16 < е если 3,5р/16 < е если 4,5р/16 < е если 5,5р/16 < е если 6,5р/16 < е если 7,5р/16 < е если 8,5р/16 < е
<3,5р/16, тоЕ < 4,5р/16, то Е < 5,5р/16, то Е < 6,5р/16, то Е <7,5р/16, тоЕ < 8,5р/16, то Е < 9,5р/16, то Е
= 2;
= 3;
= 4;
= 5;
= 6;
= 8;
= 9.
о
3)
пределяют нормированные значения ширины элементов, исходя из значений Е. К ширине последнего элемента знака символа относят оставшиеся модули (вместо вычисления его ширины по значениям Е). Установление действительных размеров ширины элементов является единственным решением, при котором в знаке символа не должны присутствовать элементы с шириной менее одного модуля, и должен быть включен хотя бы один четный элемент с шириной один модуль. Например, на рисунке 3 значения от Е1 до Е6 равны {434554}. Возможные производные наборы элементов могут быть рассчитаны как {4031 41 30} (следует обратить внимание на присутствие элементов шириной 0 модулей), {31 223221}, {221 3231 2} (следует обратить внимание на отсутствие четных элементов шириной один модуль) или {1 3 0 41 4 0 3} (следует обратить внимание на присутствие элементов шириной 0 модулей и на отсутствие четных элементов шириной один модуль). Только восемь значений ширины элементов {31 22 322 ^удовлетворяют этим требованиям, поэтому их выбирают в качестве значений ширины элементов. Если ни один из полученных наборов элементов не является действительным, то знак считают ошибочным. В приложении G приведена реализация алгоритма декодирования ширины этих элементов на языке программирования С;
определяют значения четного и нечетного поднаборов с помощью программы, приведенной в приложении В;
вычисляют значение знака символа из значений четного и нечетного поднаборов;
вычисляют и сохраняют значения произведений весовых коэффициентов на значения ширины элементов для расчета контрольной суммы;
декодируют каждый прилегающий знак символа со структурой (15,4) следующим образом:
измеряют ширину семи размеров р, еъ е2, е3, е4, е5 и е6 (рисунок 3);
преобразуют измеренные размеры е^ е2, е3, е4, е5 и е6 в нормированные значения Еп Е2, Е3, Е4, Е5 и Е6, которые представляют собой ширину в целых значениях модулей (Е) этих измеренных размеров. Для і-го значения Е используют следующие выражения:
Е
если 1,5р/15 < е, < 2,5р/15, то Е если 2,5р/15 < е, < 3,5р/15, то Е если 3,5р/15 < е, < 4,5р/15, то Е
если 4,5р/15 < е если 5,5р/15 < е если 6,5р/15 < е если 7,5р/15 < е если 8,5р/15 < е
< 5,5р/15, то Е < 6,5р/15, то Е <7,5р/15, тоЕ < 8,5р/15, то Е < 9,5р/15, то Е
= 2;
= 3;
= 4;
= 5;
= 6;
= 8;
= 9.
о
3)
пределяют значение знака символа со структурой (15,4) в соответствии с порядком, установленным в перечислениях с) 3) — 6);
декодируют значение шаблона поиска с помощью следующего метода, использующего нормиро
ванные значения ширины элементов:
находят значение р как сумму элементов еп е2, е3 и е4 шаблона поиска;
преобразуют измеренные размеры еъ е2, е3 и е4 в нормированные значения Еп Е2, Е3 и Е4, которые представляют собой ширину в целых значениях модулей (Е) этих измеренных размеров. Для і-го значения Е используют следующие выражения:
если 1,5р/14 < е, < 2,5р/14, то Е, =2;
если 2,5р/14 < ej < 3,5р/14, то Еі = 3;
если 3,5р/14 < е, < 4,5р/14, то Е, = 4;
если 4,5р/14 < е, < 5,5р/14, то Е, = 5;
если 5,5р/14 < е, < 6,5р/14, то Е, = 6;
если 6,5р/14 < е, < 7,5р/14, то Е, = 7;
если 7,5р/14 < е, < 8,5р/14, то Е, = 8;
если 8,5р/14 < е, < 9,5р/14, то Е, = 9;
значения для Еї, Е2, Е3 и Е4 шаблона поиска приведены в таблице 4;
после декодирования всех четырех знаков данных и двух шаблонов поиска проверяют значения обоих шаблонов поиска на принадлежность к установленному набору из 79 действительных пар значений, а также на совпадение значения контрольной суммы по модулю 79, вычисленной по двум шаблонам поиска, результатам расчета по модулю 79 суммы взвешенных значений ширины элементов (5.2.4.2) для знаков символа;
д) вычисляют значение флага сопровождения и идентификационного номера предмета по четырем знакам данных;
h) в качестве дополнительной меры проводят вторичные проверки изменения скорости сканирования, абсолютного времени сканирования, размеров символа и т.п., целесообразность которых определяют исходя из конкретного типа устройства считывания и предполагаемых условий применения.
При разработке сканеров, предназначенныхдля практического считывания символов GS1 DataBar, требуются средства обеспечения надежности измерений, такие как сбор избыточных данных. В приложении Н приведены дополнительные рекомендации по декодированию символов, которые следует учитывать для минимизации ошибочных считываний.
5.3 Специальные виды символов для особых применений
Символ GS1 DataBar Усеченный
Структура и правила кодирования символа GS1 DataBar Усеченный (рисунок 4) аналогичны символу GS1 DataBar Всенаправленный; отличием является высота символа, уменьшенная до минимального размера 13Х. Символ GS1 DataBar Усеченный может быть использован для маркировки мелких предметов торговли вместо символа GS1 DataBar Ограниченный в случае, когда требуется, чтобы разряд индикатора мог принимать более одного значения. Символ GS1 DataBar Усеченный применяют также с целью уменьшения высоты символа GS1 Композитный в случае, когда двумерный компонент состоит из четырех столбцов.
Символы GS1 DataBar Усеченный предназначены для считывания информации сканерами различного типа— считывающими карандашами, ручными (переносными) лазерными сканерами, а также линейными и двумерными сканерами изображения. Всенаправленные сканеры на кассовых терминалах в пунктах розничной торговли не позволяют осуществлять эффективное считывание указанных символов.
Рисунок 4 — Символ GS1 DataBar Усеченный, представляющий номер (01)00012345678905