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

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

Жанры

Журнал «Компьютерра» №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. Выиграть у времени
Фантастика:
альтернативная история
7.52
рейтинг книги
Менталист. Эмансипация

Кодекс Охотника. Книга V

Винокуров Юрий
5. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
4.50
рейтинг книги
Кодекс Охотника. Книга V

Виконт. Книга 1. Второе рождение

Юллем Евгений
1. Псевдоним `Испанец`
Фантастика:
фэнтези
боевая фантастика
попаданцы
6.67
рейтинг книги
Виконт. Книга 1. Второе рождение

Эволюция мага

Лисина Александра
2. Гибрид
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эволюция мага

(Не)свободные, или Фиктивная жена драконьего военачальника

Найт Алекс
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
(Не)свободные, или Фиктивная жена драконьего военачальника

Месть Паладина

Юллем Евгений
5. Псевдоним `Испанец`
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
Месть Паладина

Новый Рал

Северный Лис
1. Рал!
Фантастика:
фэнтези
попаданцы
5.70
рейтинг книги
Новый Рал

Академия

Кондакова Анна
2. Клан Волка
Фантастика:
боевая фантастика
5.40
рейтинг книги
Академия

Прометей: владыка моря

Рави Ивар
5. Прометей
Фантастика:
фэнтези
5.97
рейтинг книги
Прометей: владыка моря

Тринадцатый

NikL
1. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
6.80
рейтинг книги
Тринадцатый

Мастер темных Арканов

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

Дайте поспать! Том II

Матисов Павел
2. Вечный Сон
Фантастика:
фэнтези
постапокалипсис
рпг
5.00
рейтинг книги
Дайте поспать! Том II

Возрождение Феникса. Том 1

Володин Григорий Григорьевич
1. Возрождение Феникса
Фантастика:
фэнтези
попаданцы
альтернативная история
6.79
рейтинг книги
Возрождение Феникса. Том 1

Его темная целительница

Крааш Кира
2. Любовь среди туманов
Фантастика:
фэнтези
5.75
рейтинг книги
Его темная целительница