Соответствующие интегральные значения измерений Е1 и Е2 считаются равными 2, 3, 4 или 5, как показано ниже:
RTKeiRT2RT3RT4В противном случае знак является ошибочным. Определенные таким образом значения Е1 и Е2 должны соответствовать значениям, установленным в таблице 4.10 для соответствующих знаков".
В приведенной выше процедуре определения параметров Ei расстояния и интервалы фактически измеряются в единицах ширины одного модуля, и систему неравенств можно переписать в эквивалентном и, как нам кажется, более наглядном виде:
1, 52, 53, 54, 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 Алгоритма.
Тайна исследования ученых – специалистов
Известно следующее:
1. В знаке содержится последовательность элементов равной ширины: «штрих-пробел-штрих» («трехэлементный знак»).
2. Ширина каждого элемента равна одному модулю знака.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
RTKei
В приведенной выше процедуре определения параметров Ei расстояния и интервалы фактически измеряются в единицах ширины одного модуля, и систему неравенств можно переписать в эквивалентном и, как нам кажется, более наглядном виде:
1, 5
Итак, алгоритм декодирования, изложенный ГОСТом, предписывает следующие действия:
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 Алгоритма.
Тайна исследования ученых – специалистов
Известно следующее:
1. В знаке содержится последовательность элементов равной ширины: «штрих-пробел-штрих» («трехэлементный знак»).
2. Ширина каждого элемента равна одному модулю знака.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209