УДК 004.056.2
ББК 32.973.26-018.2
Я 50
Якшин Андрей Алексеевич
Адъюнкт штатной очной адъюнктуры Краснодарского высшего военного училища им. генерала армии
С.М. Штеменко, Краснодар, e-mail: [email protected]
Повышение достоверности считывания штриховых кодов на основе методов модулярной арифметики
(Рецензирована)
Аннотация. Рассматривается способ повышения достоверности вводимой информации в информационную систему при считывании штриховых кодов. Формируются дополнительные штриховые коды, которые соответствуют избыточным символам модулярного кода. Предложенные решения позволяют обеспечить восстановление правильных (исходных) данных с заданной вероятностью при различных деструктивных воздействиях на них. Представлена оценка достоверности информации при считывании штриховых кодов. В отличие от известных методов контроля, используемых в штриховых кодах, основанных на различных способах помехоустойчивого кодирования, разработанный способ предполагает повышение достоверности информации при считывании штриховых кодов.
Ключевые слова: штриховой код, Китайская теорема об остатках, модулярный код, вычет, модуль.
Yakshin Andrey Alekseevich
Adjunct of full-time staff postgraduate courses of the Krasnodar Higher Military Scholl named after General of
the Army S.M. Shtemenko, Krasnodar, e-mail: [email protected]
Increase in reliability of reading bar codes on the basis of modular arithmetic methods
Abstract. The paper discusses a method for increasing the reliability of input information in an information system when reading barcodes. Additional bar codes corresponding to the excess symbols of the modular code are generated. The proposed solutions make it possible to restore the correct (initial) data with a given probability for various destructive effects on them. The estimation of reliability of the information at reading bar codes is presented. Unlike the known control methods used in bar codes based on various methods of antinoise coding, the method developed assumes an increase in the reliability of information when reading barcodes.
Keywords: bar code, Chinese remainder theorem, modular code, deduction, module.
Введение. Интенсивное развитие средств вычислительной техники и широкое внедрение средств автоматизации в повседневную деятельность заставляют по иному рассмотреть некоторые вопросы, связанные с процедурой ввода информации в информационные системы разных направлений деятельности.
Процедура ввода является наиболее узким местом в автоматизированных системах обработки информации, где необходимо вводить большие объемы информации. Ввод информации вручную с помощью клавиатуры требует больших затрат, а также внимания и сосредоточения оператора, что часто приводит к ошибкам.
Одним из способов повышения оперативности, надежности и эффективности ввода информации в информационную систему является использование технологии штрихового кодирования. Однако в связи с расширением сферы применения штрихового кодирования одной из проблем является обеспечение надлежащего уровня достоверности вводимой информации.
Так в процессе использования штриховые коды могут подвергаться различным деструктивным воздействиям, таким как:
- несоблюдение температурно-влажностных условий хранения материальных носителей с нанесенными штриховыми кодами;
- сбои устройств печати (невидимые искажения в символе штрихового кода);
- повреждение штрихового кода при переноске и использовании материальных носителей.
Результатом таких воздействий является нарушение целостности информации и доступности при вводе информации в информационную систему.
Последствием таких деструктивных воздействий является снижение достоверности об-
рабатываемой информации. Искажение одного символа двоичных данных может нарушить взаимно-однозначное соответствие между сформированными и считанными двоичными данными и, как следствие, влияет на достоверность данных при считывании.
В связи с этим возникает задача по разработке способа, обеспечивающего требуемый уровень достоверности при считывании штриховых кодов в результате различных деструктивных воздействий.
Методы и результаты исследования. Суть предлагаемого решения состоит в том, что, не отказываясь от технологических возможностей по обеспечению безошибочного считывания, дополнительно ввести этап надсистемного помехоустойчивого кодирования, при этом рассматривая данные, заключенные в отдельно взятом штриховом коде как один элемент надсистемного помехоустойчивого недвоичного кода. В качестве надсистемного кода выбран так называемый модулярный код (МК) или код представления числа в избыточной системе остаточных классов.
Предлагаемый способ разделен на два этапа.
На первом этапе производится кодирование данных МК, то есть получение избыточных вычетов.
На втором этапе производится кодирование вычетов МК, в соответствии со Стандартом штрихового кодирования (этап внутреннего кодирования).
Соответственно, декодирование производится в обратном порядке.
Для более подробно рассмотрим процедуры кодирования и декодирования.
Кодирование. На первом этапе подлежащие преобразованию в штриховой код данные A, представленные в виде последовательности бит, разбиваются на блоки фиксированной длинны A =||а11| а21|...|| ак, где || - символ конкатенации, и при необходимости последний блок дополняется битами заполнителями.
Далее каждый блок 0<а1<щ, 0<а2 <т2, ..., 0<ак <тк рассматривается как наименьший неотрицательный вычет МК по соответствующим модулям mi, m^,..., тк.
По дополнительно введенным r модулям вычисляются избыточные вычеты ак+1 = X ,...,ак = X , соответствующие избыточным элементам МК, где X - имеет
I I тк+1 I I тк+r
к к
единственное решение: X = CRT а , 0 <X т. (CRT - оператор решения системы
i т i=i 1
i =1 1
сравнений в соответствии с Китайской теоремой об остатках), причем gcd (тг, т} )= 1; i, j = 1,2, ..., к + r; i Ф j , и тк+г >тк+1 >т1,т2,..,тк.
В совокупности полученное множество вычетов а17а2,...,ак ,ак+17...,ак+г образует расширенный модулярный код (РМК), обладающий свойствами обнаружения и коррекции ошибок [1, 2].
Далее выполняется второй этап кодирования по правилам, определенным Стандартом к выбранной символике штрихового кодирования, который представляет собой двухуровневую структуру.
На первом уровне производится кодирование вычетов МК на основе кодов БЧХ или Рида-Соломона [3-5]. Результатом кодирования является получение кодовых слов данных и кодовых слов обнаружения ошибок Fi (х) в отдельном штриховом коде.
На втором уровне производится преобразование полученных кодовых слов в оптический вид Б°сг.
Таким образом, получим систему штриховых кодов, представленных в РМК (рис. 1).
Декодирование. После считывания штриховых кодов производится восстановление кодовых слов данных и обнаружение ошибок Fi *(х), здесь и далее символ * указывает на возможные ошибки.
Данные (А)
щ а2
Получение информационных вычетов {Ц,
а{
т
а\
«2
а п
1 1
и п
Пер£1.тйэтеи
Второй этап кодирования
W
! \ г 1 1
г . Процедура преобразования Щ (х) в оптический вид
! r г 1 г
1 -jcr fty 1СГ
-"4 Jz: -Л t- _ i-4 t:
н^а S^H
шк^/
ei ха
sis*
н^.н
НЕ?*
пгттг.. .
Рис. 1. Структурная схема кодирования данных, представленных в виде штриховых кодов
на основе метода модулярной арифметики
На следующем шаге производится декодирование данных с использованием кодовых слов обнаружения ошибок. Результатом декодирования является получение системы выче-
I * * * * * I
тов: , ап+1,^.,ап+г).
Если фиксируется ошибка, то в соответствии с Китайской теоремой об остатках произ-
*
водится восстановление искаженных вычетов, путем исключения модуля mi, по которому обнаружена ошибка:
k+r-1
k+r-1
X = CRTKL> < = XL*> M =nm
i =1
i=1
Результатом данного шага станет массив возможно исправленных вычетов, где г избыточных вычетов отбрасываются. Выполнив операцию конкатенации элементов данного массива {эт* \\а*2 ||... || а"п}, получим исходные данные А*.
Структурная схема декодирования данных, представленных в виде штриховых кодов, показана на рисунке 2.
Рис. 2. Структурная схема декодирования данных, представленных в виде штриховых кодов
на основе метода модулярной арифметики
Оценка достоверности считывания данных. Для оценки разработанного способа выполним расчет достоверности считывания данных для штриховых кодов, представленных в РМК сх1,аг,.,ак,ак+1,...,ак+г и штриховых кодов структурированного формата , С^2, • • •, С^к . При этом достоверность считывания данных будем определять вероятностью ошибочного декодирования при исправлении ошибок.
Для этого введем допущение: ошибки кратности q в последовательности штриховых кодов происходят независимо друг от друга, и их распределение подчиняется биномиальному закону распределения вероятностей [6]. При этом под одиночной ошибкой будем понимать произвольное искажение одного штрихового кода С; q - кратная ошибка - произвольное искажение q символов штрихового кода.
Тогда вероятность того, что в последовательности из к штриховых кодов структурированного формата не превысит q искажений, определяется как
p (я )=£ Qpq (i - p)
я=1
k - q
(1)
Исходя из того, что МК исправляет искажения в рамках одного штрихового кода, вероятность того, что кратность исправляемой ошибки МК не превысит q, определяется по формуле:
Р^ ) = (1 - р у Л
q=1
где I = к + г - общее количество штриховых кодов.
Если при считывании произойдут ошибки кратности q +1 и выше, то такие ошибки не будут гарантированно исправлены. Следовательно, вероятность неисправляемых ошибок, которая и определяет вероятность искажения штриховых кодов, определяется как
P(q )= ICV (i - p у-'.
i=q+1
(2)
Учитывая то обстоятельство, что локализацию ошибок в а1 штриховом коде обеспечивает внутренний этап кодирования, то корректирующие возможности разработанного способа кодирования будут отличаться от тех возможностей, используемых в классических МК, то есть обнаруживающее возможности МК будут равны их исправляющим способностям. Таким образом, максимальная кратность исправляемой ошибки q, будет равна значению г - количеству введенных избыточных штриховых кодов.
Для того чтобы оценить степень деструктивных воздействий на последовательность штриховых кодов ах, а2,..., ак, ак+х,..., ак+г, необходимо знать вероятность ошибочного
считывания р штрихового кода а1. Такая вероятность есть величина постоянная и вычисляется, если известна закономерность возникновения искажений при считывании.
Так как воздействия на штриховой код а1 носят непредсказуемый и случайный характер, то влияние таких воздействий указывает на то, что искажения произойдут или нет. Примем следующее допущение: искажения не зависят от человека, и воздействия, связанные с человеческим фактором на а1 штриховой код, носят равновероятный характер. Тогда с учетом принятого допущения, а также с учетом dm¿n, определим вероятность неисправляемых ошибок аг. штрихового кода, вызванного указанными воздействиями:
Р = ■
Pbit I
С'
t=dmin -1/2 »
(3)
где рЫ(. 1/2С1п - общее количество искажений в штриховом коде а1, не обнаружи-
ваемых внутренним кодом; I - кратность ошибок, которые не будут обнаружены внутренним кодом; п - длина кодовой последовательности; 2п - общее количество возможных искажений; рЫ( - вероятность ошибки в бите.
Таким образом, подставив выражение (3) в (1) и (2), получим итоговые выражения для оценки достоверности считывания данных:
1. Для штриховых кодов, представленных в структурированном формате:
Pier =I cq
q=i
Z» Ct Л f ^n
t=d„.„ -1/2 C» i - Pbit It
c.
\k-q
(4)
2. Для штриховых кодов, представленных в РМК:
(
Per = IС
i=q+1
Pb.t I»
С
ti
1 -
Zn
t
С
t Л '
(5)
n
2
n
n
2
2
n
n
2
2
На рисунке 3 графически представлены зависимости вероятности ошибочного декодирования при исправлении ошибки от вероятности возникновения ошибки в штриховом коде со значениями к = 2, I = 3, п = 8, ё = 3, ры = 0,0004.
0.0Û 1 F7
Cl .0000 0J000I 0.0002 0.0003 0.000 +
В ерожность возникновения ошибки е :птшк об ом код« а,-
Рис. 3. Зависимость вероятности ошибочного декодирования при исправлении ошибки от вероятности возникновения ошибки в штриховом коде
Вывод
1. Достоинством рассмотренного способа является возможность исправления искажений в штриховых кодах при любой величине ошибки (в масштабе одного штрихового кода).
2. Предложенный способ позволяет «интегрировать» уже использующиеся на практике методы обеспечения достоверности вводимой информации в более новую технологию, то есть управлять уровнем помехоустойчивости даже в случаях, когда наступает предел возможностей любой известной технологии штрихового кодирования.
3. В отличие от традиционных методов контроля, основанных на различных способах дублирования, связанных с кратным увеличением объема избыточной информации, предложенный способ предполагает существенное уменьшение избыточной информации.
Примечания:
1. Акушский И.Я., Юдицкий Д.И. Модулярная арифметика в остаточных классах. М.: Сов. радио, 1968. 440 с.
2. Бояринов И.М. Помехоустойчивое кодирование числовой информации. М.: Наука, 1983. 194 с.
3. ГОСТ Р ИСО / МЭК 18004-2015 «Информационные технологии. Технологии автоматической идентификации и сбора данных. Спецификация символики штрихового кода QR Code». М.: Стан-дартинформ, 2015. 107 с.
4. ГОСТ Р ИСО / МЭК 24668-2010 «Информационные технологии. Технологии автоматической идентификации и сбора данных. Спецификация символики штрихового кода Aztec Code». М.: Стандартинформ, 2010. 45 с.
5. ГОСТ Р ИСО / МЭК 16022-2008 «Автоматическая идентификация. Кодирование штриховое. Спецификация символики Data Matrix». М., 2009. 124 с.
6. Вентцель Е.С. Теория вероятностей. М.: Наука, 1969. 576 с., ил.
References:
1. Akushsky I.Ya., Yuditsky D.I. Modular arithmetic in the residual classes. M.: Sov. Radio, 1968. 440 pp.
2. Boyarinov I.M. Interference-free encoding of numerical information. M.: Nauka, 1983. 194 pp.
3. GOST R ISO / MEK 18004-2015 Information technologies. Automatic identification and data collection technologies. Specification of QR bar code symbols. M.: Standartinform, 2015. 107 pp.
4. GOST R ISO / MEK 24668-2010 Information technologies. Automatic identification and data collection technologies. Specification of Aztec bar code symbols. M.: Standardinform, 2010. 45 pp.
5. GOST R ISO / MEK 16022-2008 Automatic identification. Bar coding. Specification of Data Matrix symbols. M., 2009. 124 pp.
6. Ventzel E.S. Probability theory. M.: Nauka, 1969. 576 pp., illustrated.