Научная статья на тему 'Побудова кольорових матричних штрихових кодів з корекцією помилок'

Побудова кольорових матричних штрихових кодів з корекцією помилок Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
99
28
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Тарасенко Володимир Петрович, Дичка Іван Андрійович

На основі аналізу особливостей зберігання даних у вигляді кольорових матричних штрихових кодів запропоновано спосіб корекції помилок при зчитуванні штрихкодових позначок. Спосіб грунтується на використанні кодів БЧХ, здатних виправляти багатократні помилки многозначних символів. Наведено приклади кодування та декодування даних. Показано, що виправлення багатократних помилок дозволяє істотно підвищити завадостійкість кольорових матричних штрихових кодів.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Тарасенко Володимир Петрович, Дичка Іван Андрійович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Creation of color matrix barcodes with errors correction

On the base of analysis of features of data storing the paper considers a method of error correction in color matrix barcodes. Method is based on using BCH -correcting codes, which are able to correct multiple errors. There are also examples of coding and encoding the data described. The correction of multiple errors allows essentially to increase the noise immunity of color matrix barcodes.

Текст научной работы на тему «Побудова кольорових матричних штрихових кодів з корекцією помилок»

УДК 681.3.04

ПОБУДОВА КОЛЬОРОВИХ МАТРИЧНИХ ШТРИХОВИХ КОДІВ З КОРЕКЦІЄЮ ПОМИЛОК

ТАРАСЕНКО В.П., ДИЧКА I.A.

Пропонується спосіб корекції багатократних помилок в кольорових матричних штрихових кодах, який дозволяє підвищити завадостійкість штрихкодових позначок. Особливістю алгоритму виправлення помилок є простота реалізації та підвищена швидкодія порівняно з існуючими способами.

1. Вступ

Штрихові коди (ШК) є одним з видів автоматичної ідентифікації [1,2]. Серед ШК помітне місце посідають матричні штрихові коди (МШК) — завдяки значній ємності їх штрихкодових позначок (ШК-позначок).

Відомі МШК є чорно-білими [3]. Однак, якщо для розфарбовування елементів ШК-позначок застосовувати понад два кольори (такі МШК називатимемо кольоровими), то це дає можливість у декілька разів підвищити інформаційну щільність подан -ня даних. Кольорові МШК можуть подавати декілька тисяч алфавітно-цифрових символів.

ШК-позначка кольорового МШК складаєтьсяз різнокольорових чарунок, сформованих у вигляді прямокутної матриці, одного або кількох маркерів, які використовуються для визначення орієнтації ТТТК-позначки відносно сканера, і мірних лінійок, елементи яких задають розміри чарунок та використовувані кольори, що періодично повторюються в елементах мірної лінійки (рис. 1). Розміри ШК-позначки та чарунок задаються в модулях. Модуль (мод) — це мінімальна безрозмірна величина, якій кратні розміри всіх елементів ШК-позначки. Мінімальна чарунка має розмірність 1мод х 1 мод і площу 1 мод2.

Мірні

Рис. 1. Узагальнений вигляд кольорового МШК (кольори подано відтінками сірого)

Оскільки геометричні розміри елементів ШК-позначки надзвичайно малі (1мод=0,2^0,8мм), а ШК-позначка містить кілька тисяч елементів, то питання забезпечення належного рівня завадостійкості є актуальним, бо навіть незначне ушкодження ШК-позначки може призвести до виникнення багатократних помилок.

2. Завадостійке кодування даних

Мінімальною інформаційною одиницею МШК є штрихкодовий знак (ШК-знак), що являє собою матрицю чарунок розмірністью sxv (s — кількість рядків, v — кількість стовпців), зазвичай s,v=2,3. ШК-знак подає один алфавітно-цифровий символ (букву, цифру тощо). Якщо застосовуються спеціальні алгоритми ущільнення даних, то ШК-знак може подавати два або три текстові символи. ШК-знаки в ШК-позначці розміщуються у вигляді матриці, яку заповнюють порядково зліва направо.

Наприклад, якщо ШК-знак має розмірність 3х2 і для розфарбування чарунок використовуються три кольори, то можна створити 174 різні ШК-знаки, у яких у кожному рядку та стовпці принаймні одна чарунка відрізняється кольором від решти чарунок рядка (стовпця) (такий спосіб розфарбування запо -бігає появі великої кількості суміжних чарунок однакового кольору в матриці ШК-позначки). Це означає, що за допомогою такого набору ШК-знаків, який називається символікою, можна кодувати текстові повідомлення, символи яких належать алфавіту потужності 174.

Нехай символіка трикольорового МШК налічує N=7 ШК-знаків розмірністю 3х2 (табл.1) (малу потужність символіки взято для спрощення прикладів, що далі розглядаються). За допомогою такої символіки можна подавати будь-які текстові повідомлення, якщо попередньо кожний символ алфавіту замінити його десятковим порядковим номером в алфавіті та перетворити номер у 7-кову систему числення. Далі за допомогою такої символіки слід кодувати символи з множини M={0,1,2,...,6}.

Нехай k — довжина N-кової послідовності, яку належить подати у вигляді МШК. З кожним інформаційним словом a=(ak-i, ak-2, ..., ax, ao), a,є D = {0,1,2, ...,N-1} зв’яжемо многочлен k-1 .

a(x) =

X aix , коефіцієнти якого є відповідними i=0

координатами а. Нехай N — просте число. Тоді можна побудувати поле Галуа GF(N), у якому операції виконуються за модулем N [4]. Закодуємо слово а коректувальним кодом з твірним многочле-

ном

m

g(x) = X g jxj j=0

Операція a(x)g(x)=b(x) пород-n-1

жує кодовий многочлен

b(x) = X bzxz

степеня n-

z=0

1, якому відповідає n-розрядне кодове слово b={bn-

1, bn-2,...,b1, b0}, причому gj, bz eGF(N), n=k+m, а операції над коефіцієнтами виконуються за модулем N. Скористаємось кодом БЧХ, у якого поле символів збігається з полем локаторів помилок. Твірний многочлен такого коду подають у вигляді g(x)=(x-a)(x-a2)(x-am), де a — примітивний елемент поля GF(N). Примітивним елементом поля GF(N) називається такий елемент а, що всі елемен -ти поля, за винятком нуля, можуть бути поданими у вигляді степеня a [4]. Означений вище код БЧХ здатний виправляти t=m/2 помилок у кодових словах завдовжки n розрядів і характеризується мінімальною відстанню d=2t+1=m+1.

106

РИ, 2002, № 4

Нехай t=2, N=7. Тоді g(x) = (x-3)(x-32)(x-33)(x-34) = x4 -x3 + 3x2-5x +4 = x4+6x3 +3x2+ +2x+4 (операції над коефіцієнтами виконано за модулем N=7), де 3 — примітивний елемент поля GF(7) (всі ненульові елементи поля GF(7) є степенями елемента 3 за модулем 7).

Якщо, наприклад, задано 2-розрядне інформаційне слово a={2, 3}, якому відповідає інформаційний многочлен a(x)=2x+3, а t=2, то кодовий многочлен b(x) отримаємо як

b(x)=a(x)g (x)=(2x+3) (x4+6x3+3x2+2x+4)=

Таблиця 1. Приклад символіки трикольорового МШК на основі ШК-знаків розмірності 3х2

Символ ШК-знак Символ ШК-знак Символ ШК-знак

0 а 2 § 4 в

1 \ 3 н 5 я

=2x5+x4+3x3+6x2+5,

а кодове слово дорівнює b={2, 1, 3, 6, 0, 5}.

Кожній компоненті отриманого кодового слова b поставимо у відповідність ШК-знак з табл. 1 і отримаємо ШК-позначку на рис. 2 (без мірних лінійок та маркера); розмірність ШК-позначки — 2х3 ШК-знаки.

3. Виправлення

помилок при

зчитуванні

ШК-позначок

Рис. 2. Подання послідовності 2 1 3 6 0 5 у вигляді трикольорового МШК

Під час виготовлення, зберігання, переміщення, експлуатації ШК-позначки можливе виникнення спотворень окремих штрихкодових елементів позначки. Вважатимемо, що ушкодження деякого ШК -знака символіки МШК призводить до отримання іншого ШК-знака символіки. Отже, помилкою називатимемо перехід одного ШК-знака символіки в інший ШК-знак. В такому випадку після зчитування ШК-позначки, виокремлення кожного ШК-знака і заміни його на відповідний символ алфавіту, який він кодує, отримуємо вектор с=(сп-1, сп-2,...,с1, с0), сіє GF(N), що містить помилки. Вважатимемо, що декодеру відомі параметри m та п коректувального коду.

Зчитаному слову відповідає многочлен n-1

. Декодер обчислює значення ком-

c(x) = X Cz?

z=0 ,

понентів S1, S2,...,Sm сицдрома: Бі=с(аі). Якщо всі компоненти сицдрома дорівнюють нулю, то у зчитаному слові помилки відсутні.

многочлен локаторів помилок; v —кількість помилок; 6 Х/ — локатори помилок. Для

отримання W(x) перш за все -----

необхідно знайти Х(х).

Для знаходження многочлена локаторів помилок Х(х) скористаємося блок-схемою алгоритму на рис. 3, де r, L, А — допоміжні змінні, а B(x), T(x) — допоміжні многочлени.

Розглянемо знаходження X(x) на конкретному прикладі: нехай після зчитування ШК-позначки МШК отримано слово 233505 (подамо його у вигляді

а1: 35 34 З3 32 31 30

с: с5 с4 с3 с2 с1 с0 ,

2 3 3 5 0 5

що містить дві помилки (підкреслено), і відомо, що N=7, a=3, n=6, m=4. Цьому слову відповідає многочлен с ^)=2x5+3x4+3x3+5x2+5.

Знайдемо компоненти синдрома: S^^3)=6, S2=с(з2)=0, Sз=с(33)=1, S4=с(34)=6. Тоді за алгоритмом на рис.3 отримаємо X^)=x2+x+5 (табл.2).

Таблиця 2. Знаходження многочлена локаторів помилок 7(x)

г А г T(x) B(x) A,(x) L

0 1 1 0

1 6 1-6x=x+1 6 1-6x=x+1 1

2 6 1 6x 1 1

3 1 x2+1 1 x2+1 2

4 6 x2+x+1 x x2+x+1 2

Після знаходження X(x) необхідно знайти локатори помилок X1, X2,..., Xv. Для цього слід розв’язати рівняння X(x)=0 і знайти його корені x1, x2, ..., xv.

Нехай не всі компоненти сицдрома дорівнюють нулю, що означає, що прийняте слово с містить

помилки. Утворимо синдромний многочлен

m

S(x) = 1+Х Six1 i=1

та многочлен значень помилок

W(x) = S(x)A,(x)modxm+1,

Локаторами помилок є обернені до x/ величини:

X1 — Xj Xv — xv .

Для нашого прикладу (X(x)=x2+x+1) розв’язками рівняння X(x)=0 є x1=2, x2=4. Тоді локатори помилок дорівнюють

Xj = Xj-1 = 2= 4 = 34 mod7 (помилка в 4-му розряді (с4)),

де

V

Mx) = ^ (1 - Xjx) = Xv x v + ^v_1xv 1 +... + A^x +1 l=1

X2 = x-1 = 4= 2 = 32 mod7 (помилка в 2-му розряді (с2)).

Знаючи X(x), знайдемо многочлен значень помилок

РИ, 2002, № 4

107

W(x)=S(x)X(x)mod x5 =

= (1+6x+x3+6x4)^ (x2+x+1)mod x5=1.

Якщо відомий многочлен значень помилок W(x), то значення Yi, Y2,..., Yv помилок отримаємо з рівності

Yl = W(Xf1)

v 1 '

П а - хГ1х|)

l=1,j=1j l

Для прикладу, що розглядається,

Yi =-----1~г~ = 2, Y2 =----1—- = 6 .

1 - х^х2 1 - х21х1

У загальному випадку для виправлення помилок необхідно для кожної пари хр^р (р=1, 2, ..., v): а) записати хр у вигляді хр =аір та знайти ip — номер розряду прийнятого слова с, що містить помилку; б) для ip -го розряду прийнятого слова виконати операцію корекції: (cj - Yp)modN .

У нашому прикладі корекція помилок має вигляд:

(c4 - Y1)mod7 = (3 - 2)mod7 = 1,

(c2 - Y2)mod7 = (5 - 6)mod 7 = 6 .

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Література: 1. Коваленко B.A., СолдатенкоЛ.М. Применение штриховых кодов // Приборы и системы управления. 1986. №8. С. 22-24. 2. Allais, Dr. David C, Bar code Symbology: Some Observations on Theory and Practice, Intermec, Lynnwood, WA, U.S.A., December, 1984. 3. Арманд B. A., Железнов B. B. Штриховые коды в системах обработки информации. М.: Радио и связь, 1989. 92с. 4. Р. Блейхут. Теория и практика кодов, контролирующих ошибки. М.: Мир, 1986. 576 с.

Надійшла до редколегії 07.10.2002

Рецензент: д-р техн. наук, проф. Кривуля Г.Ф.

Тарасенко Володимир Петрович, д-р техн. наук, професор, завідувач кафедри спеціалізованих комп’ютерних систем НТУУ “КПІ”. Адреса: Україна, 03056, Київ, пр. Перемоги, 37, корп. 15, к. 102, тел. (044) 2363202.

Дичка Іван Андрійович, канд. техн. наук, доцент кафедри спеціалізованих комп’ютерних систем НТУУ “КПІ”. Адреса: Україна, 03056, Київ, пр. Перемоги, 37, тел. (044) 2361063.

Отже, скориіоване зчитане слово має вигляд: 2 1 3 6 0 5. 4. Висновки

Реальна ШК-позначка кольорового МШК може налічувати кілька сотень ШК-знаків (аналогічним є значення параметра n). Передбачаючи можливу сферу застосування ШК-позначок, умов їх зберігання та експлуатації, при створенні ШК-позначок на підставі практичного досвіду та певного прогнозу необхідно з’ясувати, яким має бути параметр m, тобто визначити необхідну кількість контрольних ШК-знаків, які забезпечать потрібний рівень завадостійкості (коректувальна здатність t=m/2). Після вибору параметрів n, m генеруються ШК-позначки з відповідною здатністю виправляти помилки. Параметр m слід регулювати (зменшувати або збільшувати) залежно від якості носія ШК-позначки, умов експлуатації та середовища зберігання і зчитування МШК.

Для забезпечення потрібного рівня завадостійкості доцільно застосовувати многозначні коди БЧХ, у яких поле символів збігається з полем локаторів помилок. У цьому випадку потужність N символіки МШК має бути простим числом. Тоді при кодуванні-декодуванні даних операції виконуються за модулем N, що спрощує реалізацію декодера.

Застосування в кольорових МШК многозначних коректувальних кодів, здатних виправляти багатократні помилки, істотно підвищує завадостійкість штрихкодових позначок.

Стоп - у прийнятому слові понад m/2 помилок

B(x):=АГ'А( х)

X(x):=T(x)

L:=r-L

A r =%Х jSr _ j

j=0

Так

T(x) = X(x) - ArxB(x)

->

B(x):=xB(x)

Так

r = m

Hi

■*

Рис. 3. Блок-схема алгоритму визначення многочлена локаторів помилок X(x)

Кінець

108

РИ, 2002, № 4

i Надоели баннеры? Вы всегда можете отключить рекламу.