Чтение онлайн

на главную

Жанры

Христианство на пределе истории
Шрифт:
Алгоритм декодирования ГОСТа

"4.6 Рекомендуемый алгоритм декодирования Системы считывания штриховых кодов на основе соответствующих алгоритмов декодирования позволяют считывать символы, параметры которых отличны от номинальных. В этом разделе рассмотрен алгоритм декодирования, используемый для установления допусков Те, Тb, Тр[950].

Для каждого знака символа принимают измеренную ширину знака равной S. Значение S используют для определения базовых пороговых (RT) значений. Индивидуальные измерения от кромки одного штриха до соответствующей кромки следующего штриха (е) сравнивают с базовым пороговым значением (RT), чтобы определить значение Е.

Значение e1 по определению представляет собой расстояние от передней кромки штриха до передней кромки соседнего штриха, а значение е2 – измеренное расстояние от задней кромки штриха до задней кромки соседнего штриха.

Базовые пороговые значения RT1, RT2, RT3, RT4 и RT5 представлены следующим образом:

RT1=(1, 5/7)S;

RT2=(2, 5/7)S;

RT3=(3, 5/7)S; (1)

RT4=(4, 5/7)S;

RT5=(5, 5/7)S.

Внутри каждого знака измеренные значения e1 и е2 сравниваются с базовыми пороговыми. Соответствующие интегральные значения измерений Е1 и Е2 считаются равными 2, 3, 4 или 5, как показано ниже:

RTKei<RT2, Ei=2;

RT2<ei<RT3, Ei=3; (2)

RT3<ei<RT4, Ei=4;

RT4<ei<RT5, Ei=5.

В противном случае знак является ошибочным. Определенные таким образом значения Е1 и Е2 должны соответствовать значениям, установленным в таблице 4.10 для соответствующих знаков".

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

1, 5<ei/m<2, 5;Ei=2;

2, 5<ei/m<3, 5; Ei=3; (3)

3, 5<ei/m<4, 5; Ei=4;

4, 5<ei/m<5, 5; Ei=5.

где i=1,2; m=S/7 – ширина модуля знака символа,

Итак, алгоритм декодирования, изложенный ГОСТом, предписывает следующие действия:

1. Измерение ширины знака S;

2. Определение ширины модуля m=S/7;

3. Измерение величин e1, e2, в1, в2; где в1 и в2 – ширина штриховых элементов знака;

4. Определение отношений e1/m; e2/m; (в1+ в2)/m[951];

5. Определение параметров Е1 и Е2 – в зависимости от того, в какой интервал попадают значения e1/m и е2/m;

6. Определение знака данных по табл.4.10 по параметрам Е1 и Е2. В некоторых случаях необходимо использовать дополнительный параметр («вторичный детерминант») (в1+в2)/m.

На эту последовательность действий мы будем ссылаться в дальнейшем следующим образом: «п... Алгоритма» 

Ошибка или…?

Что же сделали авторы рассматриваемого исследования? Решив сравнить результаты декодирования вспомогательных знаков и знака цифры "6" с одинаковой шириной модуля m=1, они сразу обратились к п. З Алгоритма. Заметив, что далее при декодировании использовались только два измеренных значения – расстояния e1 и е2, авторы сделали такой вывод: «для распознавания используется толькоширина обоих штрихов знака и пробела между ними. Все пробелы, подчеркиваем – все, находящиеся за пределами этих двух штрихов, составляющих знак, просто игнорируются алгоритмом распознавания! Следуя ГОСТу…, подсчитывается параметр e1, равный расстоянию от передней кромки первого штриха до передней кромки второго штриха знака; параметр е2, равный расстоянию от задней кромки первого штриха до задней кромки второго штриха; иногда еще требуется сумма ширин первого и второго штрихов»; и что имеет значение только "знак «штрих-пробел-штрих» (все – шириной в один «модуль»[952] ); количество пробелов справа и слева от знака – по вкусу (они все равно не участвуют в декодировании)".

Далее авторы для знака цифры "6" и для вспомогательных знаков при m=1 (не объяснив, как они получили это значение) выполнили все действия, предусмотренные Алгоритмом, начиная с п. З, и получили для всех знаков: e1=2; e2=2; Е1=2; Е2=2. По табл.4.10 определили значение знака данных: "6" – одно и то же и для всех знаков, и сделали вывод: алгоритм декодирования ГОСТа единственным образом распознает вспомогательные знаки как цифру "6". Этот результат они и ожидали получить в соответствии со своим общим (и ошибочным) выводом: «все пробелы, лежащие за пределами трех элементов знака Ш П Ш игнорируются алгоритмом декодирования».

В чем же ошибка приведенных выше рассуждений?

Авторы упоминают только e1 и е2, но ведь для декодирования необходимо знать их относительные значения: e1/m и е2/m. А для их определения необходимо знать значение ширины модуля m. Но как его узнать? Это же не универсальная константа вроде постоянной Планка. Ширина модуля разная не только для разных этикеток со штрих-кодом – она меняется даже в пределах одного и того же символа за счет искажений, возникающих при считывании его сканером (например, если этикетка находится на цилиндрической поверхности), и даже в пределах одного и того же знака символа. Но в этом последнем случае считают, что на протяжении знака она меняется незначительно, и полагают m=S/7, где S – ширина информационного знака символа, состоящего из 7 модулей. И такое определение m в реальных считывающих устройствах проводится для каждого знакасимвола[953]. Оно предусмотрено и алгоритмом декодирования ГОСТа (при вычислении базовых пороговых значений). Таким образом, для декодирования информационного знака символа существенно необходимо знать общую ширину знака, которая определяется всемиштрихами и пробелами, образующими знак.

Приведем пример. Пусть нам встретился знак из трех элементов «штрих-пробел-штрих», в котором все элементы –равной ширины, а ширина поля пробелов справа или слева от этого трехэлементного знака неизвестна. Как он будет декодирован? Для декодирования нужно определить, сколько модулей укладывается в расстояниях e1 и е2, а для этого необходимо знать ширину одного модуля. Но ее можно определить только тогда, когда виден весь знак в целом, со всеми принадлежащими ему пробелами. Если рядом будет пробел с шириной в четыре раза большей, чем ширина каждого из упомянутых элементов, то ширина модуля будет равна ширине каждого элемента; при этом e1/m=e2/m=2, и знак будет декодирован как "6". Если же рядом будет пробел шириной в половину ширины элемента, то модуль будет вдвое уже каждого элемента; при этом e1/m=e2/m=4, и знак будет декодирован как "1".

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

Что же привело авторов исследования к ошибке? Об этом можно лишь догадываться. Может быть, некорректная запись: е1=Е1 и е2=Е2 (нельзя ставить знак равенства между размерной и безразмерной величинами даже если они численно равны). Может быть, то, что авторы свои рассуждения начали с п. З Алгоритма, не показав, как же все-таки они получили значение m=1. Может быть, то, что они отбросили часть процедуры декодирования, связанную с определением «базовых значений RT», не заметив, что она важна не только как задающая некоторые интервалы при наличии всевозможных неточностей, но и как устанавливающая (и это очень важно) масштаб, задающая единицу длины S/7, в которой и выражаются расстояния e1 и е2. Так или иначе, ученые специалисты забыли о величине m и о том, что ее необходимо измерять.

Тем не менее, они получили определенный результат, как будто действительно игнорируя пробелы: «все вспомогательные знаки алгоритмом ГОСТа декодируются как шестерки». Как это могло быть? Теперь-то мы, наконец, приступаем к главной «тайне» исследования, скрываемой его авторами: какие же все-таки знаки они сначала начертали в тетрадке для арифметики, а потом декодировали? Попробуем восстановить пропущенное авторами: п.1 и п.2 Алгоритма.

Тайна исследования ученых – специалистов
Популярные книги

Бывший муж

Рузанова Ольга
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Бывший муж

Возрождение империи

Первухин Андрей Евгеньевич
6. Целитель
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Возрождение империи

Титан империи 2

Артемов Александр Александрович
2. Титан Империи
Фантастика:
фэнтези
боевая фантастика
аниме
5.00
рейтинг книги
Титан империи 2

Жена со скидкой, или Случайный брак

Ардова Алиса
Любовные романы:
любовно-фантастические романы
8.15
рейтинг книги
Жена со скидкой, или Случайный брак

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Кодекс Охотника. Книга X

Винокуров Юрий
10. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга X

Кодекс Охотника. Книга XIX

Винокуров Юрий
19. Кодекс Охотника
Фантастика:
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XIX

Курсант: Назад в СССР 4

Дамиров Рафаэль
4. Курсант
Фантастика:
попаданцы
альтернативная история
7.76
рейтинг книги
Курсант: Назад в СССР 4

Герцогиня в ссылке

Нова Юлия
2. Магия стихий
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Герцогиня в ссылке

Неудержимый. Книга XVIII

Боярский Андрей
18. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XVIII

Право налево

Зика Натаэль
Любовные романы:
современные любовные романы
8.38
рейтинг книги
Право налево

#Бояръ-Аниме. Газлайтер. Том 11

Володин Григорий Григорьевич
11. История Телепата
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 11

Отмороженный

Гарцевич Евгений Александрович
1. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный

Матрос империи. Начало

Четвертнов Александр
1. Матрос империи
Фантастика:
героическая фантастика
4.86
рейтинг книги
Матрос империи. Начало