Ликбез по djvu

Удивляет тотальное незнание народа о замечательном формате djvu (читается déjà vu). Поэтому сегодняшний пост будет посвящен этому замечательному графическому формату. Для начала — немного истории.

Где-то в начале 90-х возникла проблема перевода существующих «бумажных» архивов в электронный вид. Для фирмы AT&T эта проблема стояла еще более остро — за годы работы накопилось огромное количество технической документации, содержащей не только текст, но и рисунки, графики, схемы и формулы. Естественно, никто не стал бы «набивать» все эти данные заново, поэтому в 1996 году был разработан формат djvu специально для эффективного хранения сканированных документов.

Естественно, djvu относится к семейству графических форматов, использующих компрессию с потерями. Но сжатие в djvu намного более эффективно, чем, например, jpeg. Просто приведу числа. Сканированная страница формата A3, при разрешении сканирования 300 точек на дюйм и 24-битном цвете занимает при использовании формата без компрессии около 50 Мб. Сжатием без потерь (вроде ZIP или RAR) удается сократить размер примерно до 30-40 Мб. JPEG при сохранении «читабельности» текста «сожмет» файл до 1 Мб. В djvu эта же страница будет «весить» около 200 Кб. Результат впечатляющий.

Дальше будут картинки, они уменьшены, чтобы не рвать френдленту, полная версия — по щелчку.

Медвед-1892, скан 300 dpi
Медвед-1892, скан 300 dpi

За счет чего достигаются такие выдающиеся показатели? При сжатии в djvu изображение «разбивается» на несколько слоев. Один слой содержит «четко выделяющиеся» элементы изображения, такие как текст и графики — он называется foreground, «передний план», другой — background, «фон». К ним применяются различные алгоритмы сжатия.

Фон от того же медведа
Фон от того же медведа

Как легко видеть, «фон» — это крупные цветные пятна, рисунок сохраняется с пониженным разрешением и сильным сжатием. А что представляет собой «передний план»?

Передний план от медведа
Передний план от медведа

В качестве «переднего плана» программа сжатия выделила некоторые контрастные элементы рисунка. Здесь также применяется сжатие с потерями, но работающее по другому алгоритму. В результате наложения переднего плана на фон получим такую картинку:

Медвед после жестокого djvu-сжатия
Медвед после жестокого djvu-сжатия

Конечно, многие уже испугались и навсегда зареклись использовать djvu. Но… В силу вступают новые соображения. Данный формат разработан специально для документов, предназначенных для просмотра на экране компьютера, а не для печати с полиграфическим качеством. Поэтому смотреть рисунки надо не с разрешением 300 точек на дюйм, а ограничиться лишь 72.

Сверху - оригинал, снизу - djvu
Сверху - оригинал, снизу - djvu

В целом, результат вполне радует глаз. Все же преимущества djvu проявляются при сканировании текста. Например, в Petit Journal «фон» — это пожелтевшая от времени бумага, и нет никакой необходимости сохранять в высоком разрешении все нюансы. «Передний план» — это текст, и здесь djvu-компрессия проявляет все свои положительные качества.

Скан 300 dpi
Скан 300 dpi

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

Текст в djvu
Текст в djvu

К сожалению, тут не обошлось без недостатков. В оригинале имеются довольно сильные дефекты печати, которые оказались «не по зубам» djvu-формату. Но там, где текст достаточно хорош, сжатие позволило даже улучшить читаемость за счет повышения контрастности.

И еще немного сжатого в djvu текста
И еще немного сжатого в djvu текста

Совершенно незаменим формат djvu при сканировании книг со «сложным» текстом, насыщенным формулами или графиками. «Среднюю» книгу, например, по математике — около 500 страниц A5, в djvu можно сжать до 5-10 Мб. 10 Кб на страницу — это очень неплохо. Пожалуй, меньше будет только текст книги в TeX. Качество же — вполне на уровне, можно даже печатать:

Всяческие формулы
Всяческие формулы

Впрочем, и книги по совершенно гуманитарным дисциплинам в этом формате выглядят неплохо. Если нет времени на «вычитку» OCR — то вполне можно воспользоваться djvu, «потомки скажут спасибо». Для сравнения, в PDF со сравнимым качеством двухсотстраничная книга «весит» 27 Мб, а в djvu — всего лишь 5 Мб.

Кстати, в djvu предусмотрен еще один слой, о котором я еще не сказал. Это так называемый OCR-слой, предназначенный для хранения текста. В него можно добавить распознанный «читалкой», например ABBYY Fine Reader, текст. Из djvu-документа с вставленным таким образом текстом можно копировать отдельные части, в нем можно искать какие-то слова — фактически, работать, как с простым текстовым файлом.

В ближайшее время напишу еще один пост, посвященный конкретным программам для работы с djvu. Отдельно уделю внимание созданию djvu-документов.

Ликбез по djvu: 4 комментария

  1. Спасибо, дружище! Работаю давно с этим форматом, но ,как пользователь. Теперь узнал, хоть, что это такое поближе.

  2. Еше забыл упомянуть что формат поддерживает ссылки, и можно делать оглавления и прочие прелести, что весьма удобно если в книжке много страниц, когда то помню перевел методичку с TIFF в dejavu :)

  3. В девяностых годах прошлого века, когда разрабатывался этот стандарт, возможно и был смысл в экономии дискового пространства и разница между 27 Мб и 5 Мб поражала воображение пользователей, имевших в компьютере винчестеры на пару сотен мегабайт. Сейчас же эта разница смехотворна, даже у домашних юзеров винчестеры измеряются терабайтами и такое уродование иллюстраций не имеет никакого оправдания.
    Единственное применение, где применение DJVU оправдано — это научные и технические издания со схемами и формулами, там требование к качеству картинок не критическое, главное, чтобы понятно было.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *