О размножении книг и не только... [Андрей Ачинович] (fb2) читать постранично, страница - 2


 [Настройки текста]  [Cбросить фильтры]

для «самиздата», чем какой-либо другой, и вот почему. В интернете существуют несколько, так сказать, инициативных групп, продвигающих данный формат, существует множество бесплатных программ, в том числе с открытым исходным кодом для создания и просмотра DjVu-файлов, которые динамично развиваются. Есть множество людей, готовых подсказать и помочь разобраться. Есть еще один очень важный довод — файлы DjVu при прочих равных условиях получаются существенно меньше, чем PDF. Но я умышленно не стану приводить результаты сравнения (которое я проводил и для себя лично), дабы не провоцировать очередную Священную Войну на тему «PDF или DjVu».

Врага надо знать в лицо, а друга — тем более!

Итак, с чем же нам предстоит работать? С текстово-графическим форматом DjVu. Изучим его подробнее.

Существующие компактные форматы JPG, GIF, факс-стандарт CCITT и JBIG обеспечивают достаточное сжатие, однако узко специализированы либо на фотографиях, либо на черно-белой графике и тексте. Поэтому смешанные изображения в их исполнении выглядят нечитаемыми. Авторы формата DjVu учли прежний опыт других разработчиков, их продукт представляет собой эдакую матрешку «3 в 1». Иными словами, изображение в формате DjVu состоит из 3 слоев. Первый слой — Mask (монохромная маска-трафарет) — содержит текст и прочие контрастные изображения и имеет разрешение 300 dpi. При таком разрешении текст достаточно хорошо читается, а размер файла остается небольшим. Ввиду того, что легкое размытие фоновой графики даже улучшает восприятие текста, фон без потерь для восприятия сохраняется с разрешением 100 dpi и образует второй слой — Background (цветной фон). В большинстве случаев цвет текста черный. И одинаковый для одного печатного знака. Данный факт позволяет сохранять цветовую информацию о тексте с разрешением всего 25 dpi. Цветовая информация образует третий слой — Foreground (цвета маски).

Как уже было сказано выше, для сжатия фона, маски и цветовой информации о маске применяются различные алгоритмы. Фон сжимается алгоритмом IW44, использующим вейвлет-преобразование. Слой-маска, не содержащая цветовой информации, упаковывается методом JB2, аналогичным применяемому при сжатии факсовых сообщений. Особенностью алгоритма JB2 является то, что он ищет на странице повторяющиеся символы и сохраняет их изображение только один раз. В многостраничных документах каждые несколько подряд идущих страниц пользуются общим «словарём» изображений. Цветовая информация о тексте также кодируется алгоритмом IW44, но разрешение снижается до 25 dpi. Кодер djvu старается создать подобие «графического шрифта» и по возможности довести схожие фрагменты изображения до идентичности. Если рассмотреть буквы в словах при большом увеличении, то видно, что близко стоящие одни и те же буквы абсолютно идентичны, причем таких серий может быть много, совсем не обязательно, чтобы один символ из «графического словаря» был применен ко всем похожим буквам. Напротив, таких эталонов может быть очень много для одной и той же буквы. Но, в целом, это дает существенное уменьшение размера файла. Нечто подобное существует у фирмы Cartesian Products, Inc, она разработала новый формат CPC для черно-белых файлов, очень похожий на CCITT Fax 4, но применяющий «графический OCR», что позволило существенно уменьшить размеры файлов, по сравнению с Fax 4. Эти два формата весьма схожи и взаимно конвертируемы при помощи кодера CPC. К сожалению, формат СРС является закрытым, принадлежит только указанной фирме, бесплатен всего лишь урезанный просмотрщик, и шансов на популярность у формата СРС, видимо, нет. Иными словами, такое сжатие можно с уверенностью назвать адаптивным, т. е. учитывающим особенности сжимаемого материала и восприятия человека.

Дежавю — история болезни

Итак, перед нами задача — превратить бумажную книгу в электронную DjVu-книгу без лишних хлопот… Рассмотрим довольно простой алгоритм, а также его достоинства и недостатки.

Предлагаемый метод будет заключаться в следующем: сканируем развороты книги в какой-либо программе (я предлагаю IrfanView, но можно и в любой другой). Разрешение де-факто для DjVu — 300 dpi, его и используем. Опытным путем определено, что при этом разрешении качество хорошее, а размер не слишком велик. При сканировании стараемся максимально плотно прижимать книгу к стеклу сканера (не перестарайтесь — один мой знакомый, сканируя довольно тяжелую книгу, выдавил стекло сканера!), чтобы увеличить качество сканов. Иначе ваши сканы будут выглядеть плохо.

Без ручной обработки тут не обойтись, а нам это ни к чему. Однако при сканировании программой-вьюером встает одна проблема — книга сканируется разворотом, и в конечном варианте так и останется. Подавляющее большинство DjVu-книг так и делаются. Для чтения это очень неудобно, т. к. весь разворот на экране монитора выглядит довольно мелко, а при увеличении масштаба страницы