ШТРИХ - КОДЫ История изобретения В 1948 Бернард Сильвер (Bernard Silver)(1924-62), аспирант Института Технологии Университета Дрекселя (Drexel University) в Филадельфии, услышал, как президент местной продовольственной сети просил одного из деканов разработать систему, автоматически считывающую информацию о продукте при его контроле. Сильвер рассказал об этом друзьям – Норману Джозефу Вудланду (Norman Joseph Woodland) (1921-) и Джордину Джохэнсону (Jordin Johanson). Norman Joseph Woodland История изобретения Втроём они начали исследовать различные системы маркировки. Их первая работающая система использовала ультрафиолетовые чернила, но они были довольно дороги, а кроме того со временем исчезали. Убежденный в том, что система реализуема, Вудланд покинул Филадельфию и перебрался во Флориду в апартаменты своего отца для продолжения работы. Его следующее вдохновение неожиданно дала Азбука Морзе – он сформировал свой первый штриховой код из песка на берегу. Как он сам сказал: "Я только расширил точки и тире вниз и сделал из них узкие и широкие линии". Чтобы прочитать штрихи, он приспособил технологию саундтрек (звуковой дорожки), а именно оптический саундтрек , используемую для записи звука в кинофильмах. 20 октября 1949 Вудланд и Сильвер подали заявку на изобретение. В результате ими был получен патент США № 2 612 994 , изданный 7 октября 1952. В 1951 Вудланд и Сильвер попытались заинтересовать компанию IBM в развитии их системы. Компания, признав реализуемость и привлекательность идеи, отказалась от её реализации. IBM посчитала, что обработка получающейся информации потребует сложного оборудования, и что его разработку она сможет провести при наличии свободного времени в будущем. В 1952 Вудланд и Сильвер продали патент компании Филко (Philco - в дальнейшем известна как Helios Electric Company). В том же самом году Филко перепродала патент компании RCA. В 1962 Сильвер погиб в автомобильной катастрофе. Способы кодирования информации Линейные Двухмерные Радиометки Способы кодирования информации Линейные Линейные Линейными (обычными) называются штрих-коды, читаемые в одном направлении (по горизонтали). Наиболее распространённые линейные символики: •EAN (EAN-8 состоит из 8 цифр, EAN-13 — используются 13 цифр), •UPC (UPC-A, UPC-E),Code39, Code128 (UCC/EAN-128), •Codabar, •«Interleaved 2 of 5». Линейные символики позволяют кодировать небольшой объём информации (до 20—30 символов, обычно цифр). Линейные. EAN European Article Number, EAN-13 или EAN (европейский номер товара) — Европейский стандарт штрихкода, предназначенный для кодирования идентификатора товара и производителя. Является надмножеством американского стандарта UPC. Линейные. EAN Стандартизация Стандартизацией и регистрацией кодов EAN занималась европейская ассоциация ЕАN, в продолжение развития стандартов разработанных организациями UCC (Uniform Code Council, Inc.) в США и ECCC (Electronic Commerce Council of Canada) в Канаде. В 2005 году все эти организации объединились друг с другом, и образовали глобальную организацию по стандартизации «GS1». «Национальная организация GS1 в России» является представителем этой организации в нашей стране. Теперь именно этот стандарт является универсальным для всех стран, а американская и канадская национальная организация настойчиво рекомендовала всем торговым компаниям своих стран заменить устаревшее оборудование и программы UPC, не способные считывать EAN, на современные. Линейные. UPC UPC или Universal Product Code (универсальный код товара) — американский стандарт штрихкода, предназначенный для отслеживания товаров в магазинах. UPC был разработан в 1973 году Джорджем Джосефом Лорером (George Joseph Laurer) работавшем инженером в корпорации IBM. В июне 1974 года первый UPC сканер, производства корпорации NCR, был установлен в супермаркете Марш (Marsh) в городе Трой (Troy) штата Огайо. 26 июня 1974 года кассиром этого супермаркета был просканирован первый товар - блок 10-и фруктовых жевательных резинок компании Wrigley. Линейные. UPC Стандартизация Стандартизацией и регистрацией кодов UPC занимались организации UCC (Uniform Code Council, Inc.) в США и ECCC (Electronic Commerce Council of Canada) в Канаде. В 2005 году эти организации объединились с европейской ассоциацией EAN и образовали глобальную организацию по стандартизации GS1. «Национальная организация GS1 в России» является представителем этой организации в нашей стране. Линейные. UPC Разновидности кода: • UPC-A (полный) — кодируется 12 цифр. • UPC-E (сокращённый) — кодируется 6 цифр. Код UPC содержит только числа и никаких букв или других символов. Линейные. UPC Усовершенствование кода для применения в других странах UPC, содержащий 12 цифр, является прародителем европейского усовершенствованного кода EAN-13, кодирующего 13 цифр. Код UPC может считаться частным случаем, подмножеством кода EAN-13. Коды UPC легко преобразуются в EAN-13 (но не наоборот). Это достигается простым и естественным для понимания человека способом — добавлением тринадцатой цифры. Просто добавляется «ноль» перед двенадцатью цифрами кода UPC. Таким образом была обеспечена совместимость американских кодов для чтения в Европе, без какой либо перепечатки этикеток или упаковки товара. Линейные. UPC Общее описание структуры Код UPC — простой и практически симметричный линейный штрихкод. Эта простота, симметричность и высокая помехозащищённость обусловлена недостаточно развитой техникой времён создания этих кодов. Код состоит из 2 групп цифр, по 6 цифр в каждой группе — левой и правой. Группы цифр окаймляются так называемыми защитными, или ограждающими, штрихшаблонами (Guard Patterns), которые выделены на рисунке для наглядности зелёным цветом. Эти шаблоны содержат штрихи единичной ширины, которые служат для синхронизации сканера штрихкода. Наличие именно трёх таких полей обусловлено в первую очередь возможным нанесением штрих кода на закруглённую поверхность. Левые и правые защитные шаблоны состоят из 3 штрихов единичной ширины — двух тёмных и одного светлого межу ними. Средний защитный шаблон состоит из 5 штрихов — трех светлых и двух темных. Всё остальное — цифры. Линейные. UPC Общее описание структуры Каждая цифра левой или правой группы кодируется с помощью четырёх штрихов: двух светлых и двух тёмных. Каждый штрих может иметь относительную ширину в одну, две, три или четыре единицы. Общая ширина штрихов для одной цифры всегда составляет семь единиц. Битовая комбинация для каждой цифры разработана таким образом, чтобы цифры насколько это возможно отличались друг от друга. Максимальная длина тёмного или светлого участка не может превышать четырёх единиц. Общая ширина всего кода всегда равна 95 единицам. В любом коде 29 светлых и 30 тёмных штрихов. Все эти технические решения очень важны для надёжности и простоты сканирования этого кода. Линейные. UPC Общее описание структуры Первая цифра кода — это так называемый префикс - имеет некоторое логическое значение, но не столь важна с технической точки зрения. Последняя цифра — контрольное число, служит для выявления возможной ошибки при чтении кода сканером или ручного ввода цифр кода с клавиатуры. Линейные. UPC Общее описание структуры Направление чтения комбинации штрихов значения не имеет, код специально разрабатывался так, чтобы он одинаково просто считывался как в прямом, так и обратном направлении (если товар перевёрнут). Также не имеет значения то, какое исполнение имеет весь штрихкод — фотографически позитивное или негативное. То есть штрих-код, нанесённый светлыми полосками по тёмному фону читается абсолютно также как и тёмными полосками по светлому фону. Мало того цвет штрихов и фона не обязательно должны быть белыми и чёрными, возможны и другие цветовые комбинации. Линейные. UPC Кодировка цифр Кодировка цифр для правых и левых частей кода Левый код Правый код Ширина линий Цифра 0 1 2 3 4 5 6 7 8 9 0001101 1110010 3-2-1-1 0011001 1100110 2-2-2-1 0010011 1101100 2-1-2-2 0111101 1000010 1-4-1-1 0100011 1011100 1-1-3-2 0110001 1001110 1-2-3-1 0101111 1010000 1-1-1-4 0111011 1000100 1-3-1-2 0110111 1001000 1-2-1-3 0001011 1110100 3-1-1-2 Линейные. UPC Кодировка цифр Кодировка защитных шаблонов Шаблон Левый защитный шаблон Средний защитный шаблон Правый защитный шаблон Слева По центру Справа 101 01010 101 Линейные. UPC Кодировка защитных шаблонов Шаблон Левый защитный шаблон Средний защитный шаблон Правый защитный шаблон Слева По центру Справа 101 01010 101 Линейные. UPC Расчёт контрольного числа В коде UPC-A контрольное число (цифра) рассчитывается следующим образом: • Суммируются все цифры на нечётных позициях (первая, третья, пятая, и т. д.) и результат умножается на три. • Суммируются все цифры на чётных позициях (вторая, четвёртая, шестая, и т. д.). • Обе суммы складываются, и от полученного результата оставляется только последняя цифра. • Эту цифру вычитают из 10. • Конечный результат этих вычислений и есть контрольная цифра (десятке соответствует цифра 0). Линейные. UPC Расчёт контрольного числа Например, контрольное число для приведённого на рисунке штрих кода UPC-A «03600029145X», где «X» это искомая контрольная цифра, рассчитывается путём сложения всех нечётных цифр (0+6+0+2+1+5 = 14), умножается на три (14 × 3 = 42), результат суммируется со всеми чётными цифрами (42+3+0+0+9+4 = 58), отбрасывается всё, кроме последней цифры (58 mod 10 = 8), вычитается из 10 (10 − 8 = 2) и ещё раз, если это необходимо, отбрасывается всё, кроме последней цифры (2 mod 10 = 2). Искомое контрольное число — цифра 2. Линейные. UPC Расчёт контрольного числа Например, контрольное число для приведённого на рисунке штрих кода UPC-A «03600029145X», где «X» это искомая контрольная цифра, рассчитывается путём сложения всех нечётных цифр (0+6+0+2+1+5 = 14), умножается на три (14 × 3 = 42), результат суммируется со всеми чётными цифрами (42+3+0+0+9+4 = 58), отбрасывается всё, кроме последней цифры (58 mod 10 = 8), вычитается из 10 (10 − 8 = 2) и ещё раз, если это необходимо, отбрасывается всё, кроме последней цифры (2 mod 10 = 2). Искомое контрольное число — цифра 2.