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

на главную - закладки

Жанры

Журнал «Компьютерра» №35 от 28 сентября 2005 года
Шрифт:

Попытки заменить линейный штрих-код делались многократно, и сегодня Wikipedia перечисляет больше тридцати таких разработок. В PARC наверняка изучали их и обсуждали, как можно втиснуть на квадратный дюйм побольше байтов. Очевидный ответ – взять не «зебру» из длинных линий, а некую таблицу или решетку (такие разработки тоже известны, обычно они представляют собой матрицу из черных и белых точек). И вот в какой-то умной голове родилась мысль: а почему нули-единицы обязательно передавать на бумаге белыми и черными участками? Почему бы не рисовать один-единственный символ, а два бита – 1 или 0 – кодировать вариантами его ориентации? Какой выбрать символ? Самый простой – короткую прямую. Эта изящная идея позже была названа DataGlyphs – датаглифы.

Цепочка

косых штрихов, наклоненных влево или право, соответствует цепочке из нулей и единиц.

Штрихи взаимно перпендикулярны, и потому распознающее устройство вычисляет их ориентацию, как бы криво ни лежала бумага. Кстати, кодирование данных с помощью ориентации символа вообще устойчивее к помехам, чем привычный способ «есть символ/нет символа».

Здесь уместен вопрос: насколько больше площади требует косой штрих в сравнении с черно-белой точкой других стандартов? Все зависит, конечно, от длины линий. Разработчики советуют делать их не короче пяти пикселов, а лучше – семи. Может показаться, что тогда один штрих займет квадрат, куда влезло бы 25 или 49 точек, но не все так просто. Точечный штрих-код не стоит печатать на пределе разрешения – одно его поле (черное или белое) должно быть размером в несколько пикселов. Сколько именно – зависит от зоркости сканера[Двухмерные штрих-коды, включая датаглифы, не распознаются обычным лазерным сканером из супермаркета, им нужна упрощенная фотокамера или 2D-сканер]. Если сравнивать датаглифы и, например, самый популярный точечный штрих-стандарт PDF-417, то оказывается, что при одинаковой распознаваемости черно-белые точки на той же площади вмещают по крайней мере в полтора раза меньше данных.

Подобно другим двухмерным штрих-кодам в датаглифы можно добавлять избыточную информацию. При декодировании эти добавки позволяют восстановить оригинал, если часть штрихов повреждена. Кроме того, биты располагаются не подряд, по вертикали или горизонтали, а перемешаны и уложены по размашистой зигзагообразной траектории. Таким образом, избыточность и глубокое перемешивание обеспечивают прочтение всех данных с листа, даже если от него оторвали угол и заляпали кляксами (до известной степени, конечно). Для надежного чтения весь блок датаглифов пронизывают синхронизирующие штрихи, позволяющие работать с криво отснятыми и даже изогнутыми поверхностями.

Интересно, что когда люди видят датаглифы, они не воспринимают их как специальные знаки. Из-за малых размеров и регулярного расположения бумага кажется просто заштрихованной, и датаглифная полоса, размещенная выше или ниже текста, выглядит декоративным элементом. Более того, установив высокую избыточность, буквы можно печатать вообще поверх датаглифов. Конечно, правильнее печатать текст и датаглифы вместе, размещая штрихи между буквами и строками. Тогда высокая избыточность не понадобится. Еще лучше делать документ не черно-белым, а цветным. Человек по-разному различает цвета, и тонкие желтые линии на белом фоне мы почти не замечаем. В то же время фотокамеры и сканеры хорошо видят желтый на белом. Можно печатать черные буквы поверх желтой датаглифной штриховки и получать почти обычный документ, но содержащий десятки килобайт данных и лишь слегка желтоватый, как на старой бумаге.

***

Теперь вспомним, что текстовые данные хорошо сжимаются. Древний Zip-алгоритм и его родственники способны уменьшать обычный текст примерно вдвое. Современный WinRar – вчетверо-впятеро, а экспериментальные программы, настроенные на конкретные языки, уже достигли соотношения один к шести. Поскольку дешевая офисная техника, оперирующая разрешением 300 dpi, может работать с датаглифами плотностью двести байт на квадратный дюйм, то применив даже несложное сжатие, можно получить штриховую полосу шириной

с палец (напечатанную внизу листа), содержащую около 10 Кбайт информации. Для сравнения: стандартная емкость того же листа, заполненного обычными буквами, – 1800 символов (лист журнала – около 4500 символов. – Прим. ред.). Ну а весь лист А4, заполненный датаглифами до краев (с тем же разрешением и умеренной избыточностью), будет содержать на одной стороне около 50 Кбайт несжатых данных.

Возможно, кто-то спросит: «А зачем вообще нужен штрих-код?» Ведь машины уже хорошо различают нормальные буквы, и если нужна высокая плотность, то можно же печатать их очень мелким шрифтом. Но распознавание штрих-кодов (любых) принципиально отличается от распознавания обычного текста. Человеку кажется, что в обоих случаях компьютер из снимка бумажной страницы получает некие данные. В действительности же узнавание слов требует наличия словарей, очень большой памяти и сложной программы вроде FineReader’а. Наши буквы удобны для нас, но не для компьютеров. Тогда как штрих-коды – это машинопись, изначально задуманная для легкого распознавания «железками». Разница здесь такая же, как между человеческой речью и писком модема. Соответственно и устройства для обработки штрих-кодов могут быть весьма простыми. Фактически их могут понимать сегодня даже мобильные телефоны, тем более что они вовсю оснащаются фотокамерами.

Кстати, о фото. Попробовав менять не цвет датаглифов, а толщину, в PARC придумали разновидность штрих-кода, который переводит само это понятие на новый уровень. Поскольку соседние штрихи разной толщины все равно четко различимы (важна лишь ориентация), таблицу датаглифов можно печатать жирно или блекло в произвольных местах, придавая ей вид любого графического изображения. Иными словами, датаглифы можно «растворить» в любом изображении. Эта технология получила название GliphTones (глифтоны), и на фото хорошо видна ее суть.

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

Теперь отвлечемся от деталей и спросим себя: «Для чего нужен такой штрих-код?» Конечно, хорошо, что утрамбованную WinRar’ом книжицу можно поместить на одну страницу (хотя бы потому, что это здорово сэкономит древесину). Но очевидно, что такие книги не понравятся ни читателям, ни издателям – уж слишком много с ними возни.

Размышляя о приложениях своего изобретения, сотрудники PARC придумали множество вариантов – и вполне заурядных, и весьма неожиданных.

Очевидная идея – дублировать штрих-кодом данные, дополняя их криптографической защитой. Например, любой чек, в котором цена указана цифрами (а не прописью), легко подделать, исправив тройку на восьмерку или, скажем, семерку на двойку. Однако если у чека будет еще и штриховая полоса, содержащая весь текст плюс цифровую подпись, то подделать его будет не легче, чем взломать грамотную шифровку. Платежный документ со сплошным фоном из датаглифов и обычными символами печатается принтером в один проход.

Или еще вариант. Представьте, что вы читаете инструкцию к сложному механизму – моющему пылесосу, кухонному комбайну или кондиционеру. В ней есть картинки, но все они неподвижны. Вдруг вы замечаете, что страницы имеют легкий штриховой фон, да и сами иллюстрации в мельчайших штрихах. Тогда вы достаете из кармана мобильник с фотокамерой (он же всегда с вами), нажимаете пару клавиш и запускаете Java-апплет распознавания датаглифов. С близкого расстояния снимаете одну страницу инструкции – несколько кадров, пока мобильник не запищит, давая знак, что все понял. Еще пара секунд, и вот уже на экране появляется анимация, наглядно показывающая, какой путь в кухонном комбайне проходят овощи, когда установлена какая-нибудь хитрая насадка. Удобно, не правда ли?

Поделиться:
Популярные книги

Довлатов. Сонный лекарь

Голд Джон
1. Не вывожу
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Довлатов. Сонный лекарь

Ворон. Осколки нас

Грин Эмилия
2. Ворон
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ворон. Осколки нас

Безумный Макс. Ротмистр Империи

Ланцов Михаил Алексеевич
2. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
4.67
рейтинг книги
Безумный Макс. Ротмистр Империи

Часовое сердце

Щерба Наталья Васильевна
2. Часодеи
Фантастика:
фэнтези
9.27
рейтинг книги
Часовое сердце

Гримуар темного лорда IX

Грехов Тимофей
9. Гримуар темного лорда
Фантастика:
попаданцы
альтернативная история
аниме
фэнтези
5.00
рейтинг книги
Гримуар темного лорда IX

Адвокат Империи 3

Карелин Сергей Витальевич
3. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Адвокат Империи 3

Город воров. Дороги Империи

Муравьёв Константин Николаевич
7. Пожиратель
Фантастика:
боевая фантастика
5.43
рейтинг книги
Город воров. Дороги Империи

Вонгозеро

Вагнер Яна
1. Вонгозеро
Детективы:
триллеры
9.19
рейтинг книги
Вонгозеро

Барон Дубов 4

Карелин Сергей Витальевич
4. Его Дубейшество
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Барон Дубов 4

Барон Дубов

Карелин Сергей Витальевич
1. Его Дубейшество
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Барон Дубов

Газлайтер. Том 9

Володин Григорий
9. История Телепата
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Газлайтер. Том 9

Не грози Дубровскому! Том III

Панарин Антон
3. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том III

Жестокая свадьба

Тоцка Тала
Любовные романы:
современные любовные романы
4.87
рейтинг книги
Жестокая свадьба

Ведьма Вильхельма

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
8.67
рейтинг книги
Ведьма Вильхельма