Пишу, по большей части, про историю, свою жизнь и немного про программирование.

JPEG vs. DjVu

Мне кажется, формат DjVu получает незаслужено мало внимания. Те, кому надо хранить документы, делают это, чаще всего, в JPEG или TIFF (а то и в PNG), а об DjVu вообще мало кто слышал. Я взял первый попавшийся в поиске документ, чтобы проиллюстрировать всю мощь формата.

JPEG vs. DjVu (69.42КиБ)

Картинку я уменьшил (до 636 по ширине) и сконвертировал в два формата. Слева на картинке JPEG, справа DjVu. Картинка в JPEG занимает 85КБ (качество — 85%, сжато jpegtran), в DjVu — 13КБ (качество — «normal», сжималось any2djvu). Выигрыш в 6,5 раз при сходном качестве.

За счёт чего достигается такой результат?

Дело в том, что JPEG — формат общего назначения, он ничего не знает о том какое изображение хранит, DjVu придумывался специально под текстовые документы и знает — внутри него, в основном, чёрно-белый текст (возможно с фоном) и вкрапления иллюстраций.

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

Эффективность сжатия DjVu сильно зависит от того есть ли на картинке задний фон, если его нет и изображение только чёрно-белое, то размер отсканированной страницы в разрешении 600dpi (говорит нам Википедия) — всего 15КБ!

27 комментариев
Внутреннее Коралио (kalvado.livejournal.com) 2011

Один из моментов, которые подвели дежа вю — основным, едва ли не единственным, софтом долго был жутко кривой вариант от LizardTech. Он пытался становиться как плагин в броузер. Надо признать, изредка ему это даже удавалось.
Если бы была нормальная поддержка формата... По крайней мере в Федоре и Убунте, дежа вю открывается без проблем — а вот разумного варианта под win, окромя WinDjVu нету. Но поддержка одним человеком — это не то что нужно для формата.
Опять таки, в узких кругах качающих техническую литературу формат известен очень широко..

Дмитрий Радищев (dibr.livejournal.com) 2011

в DjVu — 13КБ

На полноразмерный результат посмотреть бы. А то двухцветный (ч/б) GIF размером 636х875 у меня ужался в ~15кб, но качество с «половинкой» сравнивать нет смысла. Сравнил с тем, что выдаёт http://any2djvu.djvuzone.org/  — в-общем, сложно сказать что лучше...
Мой GIF вариант — http://pics.livejournal.com/dibr/pic/001a6e11

indeec17 2011

Кроме «жутко кривого вариантв от LizardTech», проблемы с плохой распространённостью были связаны с лицензированием, небесплатностью.
В качестве комплимента этому формату могу сказать, что на практике я использую только 4 архиватора:
7-zip.org
DjVu
RAR
UPX
Можно получить большой выигрыш в размере фотоальбома, если хранить кучу фоток не в виде кучи фоток, а как страницы одного .djvu. Т. к. фотки и так сжимаются с потерями (JPEG), то не страшно (мне).
В своё время устал искать прогу, теперь беру свежую отсюда
http://sourceforge.net/projects/djvu/

Евгений Степанищев (bolknote.ru) 2011

Комментарий для dibr.livejournal.com:

На полноразмерный результат посмотреть бы.

Ссылки будут жить 10 дней.

Вот в «normal»: http://zalil.ru/31451149 (только я забыл текстовый слой вырубить, но на отображение это не влияет)
Вот в «loseless»: http://zalil.ru/31451160
Вот 600dpi loseless: http://zalil.ru/31451162

Внутреннее Коралио (kalvado.livejournal.com) 2011

Комментарий для indeec17:

winDjVu пользую уже давно — но вопрос насколько хорош в долгосрочной перспективе _формат_, который поддерживается в основном на sourceforge.
PDF тоже в те годы для записи не был сильно бесплатным; но тем не менее распространился только так. Не в последнюю очередь, наверное, из-за акробата, который был _везде_. Безглючностью он тоже не отличался, но ситуаций когда бы я не смог прочесть файл у меня не было.

Дмитрий Радищев (dibr.livejournal.com) 2011

Вот в «normal»: http://zalil.ru/31451149

Но стоп — это же не «636 пикселей по ширине» («Картинку я уменьшил (до 636 по ширине) и сконвертировал в два формата»), это явно сделано непосредственно из оригинала, 1275 пикселей шириной! Не зря я попросил показать поближе :-) Могу показать увеличенные («с пикселями») скриншоты оригинала, уменьшения до 636px (без компрессии), и этого djvu — там хорошо видно, где сколько «пикселей» :-)

А при попытке пережать в b/w gif оригинал (1275 пикселей шириной), у меня получается около 40кб, что, конечно, уже никак соревноваться с djvu не может. Качество при этом практически неотличимое от djvu (с точностью до того уровня, по которому grayscale переводилось в bitmap).

Евгений Степанищев (bolknote.ru) 2011

Комментарий для kalvado.livejournal.com:

winDjVu пользую уже давно — но вопрос насколько хорош в долгосрочной перспективе формат, который поддерживается в основном на sourceforge.

Ну, это открытый формат, где он ещё должен поддерживаться?

Евгений Степанищев (bolknote.ru) 2011

Комментарий для dibr.livejournal.com:

Так, Дим, ты меня запутал вообще :) Расскажи другими словами что ты хочешь сказать :)

Дмитрий Радищев (dibr.livejournal.com) 2011

Так, Дим, ты меня запутал вообще :) Расскажи другими словами что ты хочешь сказать :)

  1. В посте ошибка: до 13кб сжималась, судя по всему, не уменьшенная версия (636px), а оригинал (1257px). Могу доказать с картинками :-)
  2. С учётом этой поправки, GIF с конкурса снимается: результат в GIF намного больше результата в DJVU. Без учета поправки результаты были бы близкими — 15кб против 13кб.
Евгений Степанищев (bolknote.ru) 2011

Комментарий для dibr.livejournal.com:

В посте ошибка: до 13кб сжималась, судя по всему, не уменьшенная версия (636px), а оригинал (1257px). Могу доказать с картинками :-)

Вот оно что. У меня сейчас уже нет сил всё сжимать заново. Можешь сказать сколько занимают 636px, чтобы я в статье поправил?

kovsky.net 2011

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

kovsky.net 2011

Точно: «Особенностью алгоритма JB2 является то, что он ищет на странице повторяющиеся символы и сохраняет их изображение только один раз.» (Вики)

Дмитрий Радищев (dibr.livejournal.com) 2011

У меня сейчас уже нет сил всё сжимать заново. Можешь сказать сколько занимают 636px, чтобы я в статье поправил?

Так у меня-то сжималки в djvu нет, я потому и просил «показать результат». А при сжатии мной уменьшенной картинки через сайт ( http://any2djvu.djvuzone.org ) почему-то получается больше, чем сжатая тобой неуменьшенная, качество при этом весьма страдает — видимо, нужна нормальная локальная сжималка и правильная её настройка, а мне искать и ставить лениво.

Я лучше скажу, что утрамбовать оригинал в jpeg фотошопом мне удалось только до 115кб, через save for web с минимальным качеством (качество при этом удовлетворительное). Image alchemy позволило утрамбовать сильнее, но меньше ~100кб качество разрушается уже стремительно. То есть разница «почти на порядок» с jpeg сохраняется и в этом случае, ну, и есть разница с GIF примерно в три раза (при почти идентичном качестве).

doctor-lg (doctor-lg.ru) 2011

В универе все лекции конвертили и выкладывали в DJVu, выигрыш в месте и скорости скачивания — колоссальный.

Внутреннее Коралио (kalvado.livejournal.com) 2011

Ну, это открытый формат, где он ещё должен поддерживаться?

А вот вопрос нетривиальный. Насколько коммерческий человек должен на такой формат полагаться? Открытые проекты хороши, когда они уже набрали критическую массу.
В общем обычное дело -пока формат не станетпопулярным, популярным он статьне может.
Сугубое ИМХО — если расскажете почему я не прав, скажу спасибо..

Probably Built In The Fifties (uznick.livejournal.com) 2011

У DJVu сложилась очень мерзкая репутация, по крайней мере в моих глазах. Одно время, да и сейчас по-моему, в нём очень много выкладывали «электронных книг», которые состояли просто из набора картинок. Пользоваться этим трэшем было решительно невозможно, в отличие от нормального распознанного PDF. Меня до сих пор тошнит когда я слышу это слово :(

Внутреннее Коралио (kalvado.livejournal.com) 2011

Пользоваться этим трэшем было решительно невозможно, в отличие от нормального распознанного PDF.

Ну много чего в другом формате еще долго не будет — по крайней мере того что мне надо из старого; тот же ландавшиц. Новые утекают сразу в хороших ПДФах, да. А старые сканированные нераспознанные ПДФ-ки немногим лучше дежавю.
Но для меня честно говоря лучше так, чем шкаф книг..
 
Промежуточный формат времени перехода на 100% электронные документы

Евгений Степанищев (bolknote.ru) 2011

Комментарий для uznick.livejournal.com:

У DJVu сложилась очень мерзкая репутация, по крайней мере в моих глазах. Одно время, да и сейчас по-моему, в нём очень много выкладывали «электронных книг», которые состояли просто из набора картинок.

DjVu и есть набор картинок. Это, по сути, формат графики.

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

Евгений Степанищев (bolknote.ru) 2011

Комментарий для dibr.livejournal.com:

Ну, в обще править не буду :) Разрыв сохраняется и ладно, а конкретные цифры на отдельном документе не очень важны — на другом другие будут.

rodem 2011

Так вроде как у PDF есть аналогичный формат сжатия слоями. Вон свидетельство о рождении Обамы как раз так отсканировано и сохранено. Совсем недавно обсуждали и разбирали на Ютюбе и Хабре.

Евгений Степанищев (bolknote.ru) 2011

Комментарий для rodem:

http://djvu.org/resources/whatisdjvu.php

DjVu files are also about 3 to 8 times smaller than black and white PDF files produced from scanned documents (scanned documents in color are impractical in PDF).

rodem 2011

Комментарий для Евгения Степанищева:

Это хорошо, но PDF стандарт, а DjVu кто такой?
Если только какой-нибудь гигант, типа Гугла/IBM не решит его продвигать. Хотя у Гугла вон WebM есть, можно с ним уже DjVu сравнивать.
То и появляется вопрос: кому он нужен сейчас и где он будет через 10 лет?

Евгений Степанищев (bolknote.ru) 2011

Комментарий для rodem:

Это хорошо, но PDF стандарт, а DjVu кто такой?

Формат. Как GIF, например, который в каждом браузере.

Если только какой-нибудь гигант, типа Гугла/IBM не решит его продвигать.

Зачем? Я не вижу причин не пользоваться форматом, который не стандартизирован каким-нибудь ISO. DjVu жизнь стандартизировала.

Хотя у Гугла вон WebM есть, можно с ним уже DjVu сравнивать.

Нельзя сравнивать специализированный формат и формат общего назначения, последний заведомо проиграет.

То и появляется вопрос: кому он нужен сейчас и где он будет через 10 лет?

Вы какой-то странный вопрос ставите. Что значит «где формат будет через 10 лет»? Там же будет. Что с ним сделается за это время? Появятся новый стандарт? Ну и что? Старый от этого потеряет какие-то свои качества? Нужен он сейчас тем, кто хранит много документов, например, рукописных или исторических.

SiMM (mr-simm.livejournal.com) 2011

Комментарий для Евгения Степанищева:

DjVu и есть набор картинок. Это, по сути, формат графики.

Что не мешает внедрять в него OCR-слой.

Евгений Степанищев (bolknote.ru) 2011

Комментарий для mr-simm.livejournal.com:

Не мешает, конечно. Но в DjVu не бывает текста без картинки, но бывает картинка без текста.

stacmv@ya.ru 2011

Вот уж кто получает незаслуженно мало внимания, так это LuraDocument.

Евгений Степанищев (bolknote.ru) 2011

Комментарий для stacmv@ya.ru:

Зачем сравнивать бесплатное и открытое с платным и закрытым?