Сегодня цифровая литература получила широкое распространение, во многом благодаря развитию портативных устройств (смартфонов, ридеров, ноутбуков). Это привело к появлению большого количества форматов электронных книг. Попробуем разобраться в их особенностях и расскажем историю наиболее популярных из них — начнем с формата DjVu.
/ Flickr / Lane Pearman / CC
Возникновение формата
DjVu был разработан в 1996 году компанией AT&T Labs с одной целью — дать веб-разработчикам инструмент для распространения изображений в высоком разрешении через интернет.
Дело в том, что в то время 90% всей информации все еще хранилось на бумаге, а многие из важных документов имели цветные изображения и фотографии. Чтобы сохранить читаемость текста и качество картинок, приходилось делать сканы в высоком разрешении.
Классические веб-форматы — JPEG, GIF и PNG — позволяли работать с такими изображениями, но ценой объема. В случае JPEG, чтобы текст был читаем на экране монитора, приходилось сканировать документ с разрешением 300 dpi. Цветная страница журнала при этом занимала порядка 500 Кбайт. Скачивание файлов такого объема из интернета в то время было довольно трудоемким процессом.
Альтернативой было оцифровывание бумажных документов с помощью технологий распознавания текста, однако 20 лет назад их точность была далека от идеальной — после обработки финальный результат приходилось серьезно править вручную. При этом графики и изображения оставались «за бортом». И даже если удавалось встроить отсканированную картинку в текстовый документ, терялись некоторые визуальные детали, например, цвет бумаги, её текстура, а это важные компоненты исторических документов.
С целью решить эти проблемы AT&T и разработали DjVu. Он позволил сжимать отсканированные цветные документы с разрешением 300 dpi до 40–60 Кбайт, при размере оригинала в 25 Мбайт. Размеры чёрно-белых страниц DjVu уменьшил до 10–30 Кбайт.
Как DjVu сжимает документы
DjVu может работать как с бумажными отсканированными документами, так и с другими цифровыми форматами, например PDF. В основе работы DjVu лежит технология, разбивающая изображение на три компонента: передний план, задний план и чёрно-белую (битовую) маску.
Маска сохраняется с разрешением исходного файла и содержит изображение текста и прочие чёткие детали — тонкие линии и схемы — а также контрастные картинки.
Она имеет разрешение 300 dpi, чтобы тонкие линии и контуры букв оставались четкими, и сжимается с помощью алгоритма JB2, который представляет собой вариацию алгоритма JBIG2, предложенного AT&T для работы факсов. Особенностью JB2 является то, что он ищет на странице повторяющиеся символы и сохраняет их изображение только один раз. Таким образом, в многостраничных документах каждые несколько последовательных страниц пользуются общим «словарём».
Задний план содержит текстуру страницы и иллюстрации, а его разрешение меньше, чем у маски. Фон без потерь для восприятия сохраняется с разрешением 100 dpi.
Передний план хранит цветовую информацию о маске, и его разрешение обычно понижается ещё сильнее, так как в большинстве случаев цвет текста черный и одинаковый для одного печатного знака. Для сжатия переднего и заднего планов используется вейвлетное сжатие.
Заключительным этапом создания DjVu-документа становится энтропийное кодирование, когда адаптивный арифметический кодировщик превращает последовательности одинаковых символов в бинарное значение.
Достоинства формата
Задачей DjVu было сохранить «свойства» бумажного документа в цифровом виде, позволив работать с такими документами даже слабым компьютерам. Поэтому ПО для просмотра DjVu-файлов обладает возможностью «быстрого рендеринга». Благодаря ей в память загружается только тот кусочек DjVu-страницы, который должен отображаться на экране.
Это также дает возможность просматривать «недокачанные» файлы, то есть отдельные страницы многостраничного DjVu-документа. При этом используется прогрессивная прорисовка деталей изображения, когда компоненты как бы «проявляются» по мере закачки файла (как в JPEG).
20 лет назад, когда был представлен этот формат, загрузка страницы происходила в три этапа: сперва грузилась текстовая составляющая, через пару секунд подгружались первые версии изображений и фон. Уже после «проявлялась» вся страница книги.
Наличие трёхуровневой структуры также позволяет осуществлять поиск по отсканированным книгам (так как есть специальный текстовый слой). Это оказалось удобно при работе с технической литературой и справочниками, поэтому DjVu стал основой для нескольких библиотек научных книг. Например, в 2002 году он был выбран Архивом Интернета в качестве одного из форматов (вместе с TIFF и PDF) для проекта по сохранению отсканированных книг из открытых источников.
Недостатки формата
Однако, как и все технологии, DjVu имеет свои минусы. Например, при кодировании сканов книг в формат DjVu некоторые символы в документе могут подменяться на другие, внешне похожие. Наиболее часто это происходит с буквами «и» и «н», отчего эта проблема получила название «проблема инь». Она не зависит от языка текста и влияет, в том числе, на цифры и другие мелкие повторяющиеся знаки.
Её причина — ошибки классификации символов в кодировщике JB2. Он «дробит» сканы на группы по 10–20 штук и формирует для каждой из групп словарь общих символов. Словарь содержит образцы общих букв и цифр со страницами и координатами их появления. Когда вы просматриваете DjVu-книгу, символы из словаря подставляются в нужные места.
Это позволяет уменьшить размеры DjVu-файла, однако, если отображения двух букв визуально похожи, кодировщик может их или перепутать, или принять за одинаковые. Иногда это приводит к порче формул в техническом документе. Для решения этой проблемы можно отказаться от алгоритмов сжатия, однако это увеличит размеры цифровой копии книги.
Другим недостатком формата является то, что он не поддерживается по умолчанию во многих современных ОС (в том числе мобильных). Поэтому для работы с ним нужно ставить сторонние программы, такие как DjVuReader, WinDjView, Evince и др. Однако здесь хотелось бы отметить, что некоторые электронные читалки (например, ONYX BOOX) поддерживает формат DjVu «из коробки» — так как необходимые приложения там уже установлены.
Кстати, о том, что еще могут приложения для ридеров на базе Android, мы рассказывали в одном из предыдущих материалов.
Ридер ONYX BOOX Chronos
Еще одна проблема формата проявляется при работе с DjVu-документами на небольших экранах мобильных устройств — смартфонах, планшетах, ридерах. Иногда DjVu-файлы представлены в виде скана разворота книги, а профессиональная литература и рабочие документы часто имеют формат А4, поэтому приходится «двигать» изображение в поисках информации.
Однако отметим, что эта проблема также решаема. Проще всего, конечно, поискать документ в другом формате — но если такой вариант невозможен (например, вам нужно работать с большим количеством технической литературы в DjVu), то можно воспользоваться электронными читалками с большой диагональю от 9,7 до 13,3 дюйма, которые специально «заточены» под работу с подобными документами.
Например, в линейке ONYX BOOX такими устройствами являются Chronos и MAX 2 (кстати, мы подготовили обзор этой модели ридера, и в скором времени опубликуем его в нашем блоге), а также Note, который имеет экран E Ink Mobius Carta с диагональю 10,3 дюйма и повышенным разрешением. Такие устройства позволяют спокойно рассмотреть все детали иллюстраций в оригинальном размере и подойдут тем, кому часто приходится читать учебную или техническую литературу. Для просмотра файлов DjVu и PDF используется NEO Reader, который дает настраивать контраст и толщину оцифрованных шрифтов.
Несмотря на имеющиеся у формата недостатки, на сегодняшний день DjVu остается одним из самых популярных форматов для «сохранения» литературных произведений. Во многом это обусловлено тем, что он является открытым, а обойти его некоторые технологические ограничения сегодня позволяют современные технологии и разработки.
В следующих материалах мы продолжим рассказ об истории появления форматов электронных книг и особенностях их работы.
P.S. Несколько оборов ридеров ONYX BOOX:
Комментарии (57)
aram_pakhchanian
07.04.2018 20:16+2PDF может хранить множество слоёв и так же все отображать, как DjVu. Все современные программы просмотра PDF поддерживают необходимые для этого алгоритмы сжатия (в том числе JBIG2, в котором также используется словарь символов). Поэтому DjVu представляет только исторический интерес. К сожалению, библиотека DjVu поддерживает конвертацию только в примитивный формат PDF с сжатием G4. И никто не хочет заморачиваться с более умной конвертацией.
alan008
07.04.2018 20:44Спецификация pdf слишком сложная, формат допускает слишком много всего — и видео внутри документа, и формы ввода и много всего прочего. Результатом этого является практическая невозможность корректно отобразить "произвольный" PDF своими силами. Полностью спецификацию поддерживают только программы от Adobe, т.к. Pdf это их изобретение.
saege5b
07.04.2018 21:34Не поддерживают они полную спецификацию.
Банальный пнг с альфа-каналом в пдф не засунуть не постучав при этом в бубен.
И вообще, вставка картинок там по свински организована. В своё время пришлось порыскать по инету, пока нарыл библиотеку которая умеет вставлять картинку одним куском (минимум накладных расходов, плюсом около 3 кб)
С формами тоже начеку — в читалке текст вводится, но распечатать уже не получится.
В новых форматах есть фишка — наложение элемента шрифта на картинку. Т.е в целях повышения резкости поверх растрового слоя кладётся текстовый слой. и это круто, до тех пор, пока OCR сделан без ошибок. А в случае проблем распознавания можно с удивлением узнать что растровый слой сохранён с чудесным разрешением 100 точек ( и это ещё за счастье).
А правильно подобранные параметры кодирования, от которых 4ядерник с 8 гигами долго и вдумчиво листает страницу — это кривые руки, или такое чуство юмора, как и разрешение на печать с 50 — 80 точками.
aram_pakhchanian
07.04.2018 21:34+1PDF — это стандарт ISO. Полностью поддерживают его множество компаний, и многие отлично конкурируют с Adobe по качеству как создания, так и отображения PDF. Вокруг PDF построена громадная инфраструктура. DjVu не является стандартом, полностью его поддерживает только одна библиотека: DjVulib, и никто ничего не может сделать с файлом, если какая-то функция не поддержана этой библиотекой. Так что ситуация обстоит с точностью до наоборот. В современном мире важна не спецификация, а доступность технологий создания файла. Спецификация, кстати, достаточно простая, и написать корректный PDF совсем несложно даже вручную. Я не уверен, что кто-либо возьмется писать корректный DjVu без использования вышеупомянутой библиотеки.
thousandsofthem
08.04.2018 10:52+1PDF не является стандартом, в отличии от PDF/A (А — архивный). И как раз он не поддерживает всего разнообразия свистелок и перделок что адоб добавляет в очередной версии пдф
zartarn
08.04.2018 13:12Готовить из сканов правильный PDF ничуть не легче чем DjVu, а в некоторых моментах и сложнее. например если делать автоматически CS, и где нибудь на белом фоне окажется точка — то почти всё уйдет в бэкграунд. Не хочу повторяться, если интересно, можете заглянуть в коменты к этой теме, там уже обсуждались и плюсы и минусы обеих сторон habrahabr.ru/post/351266
aram_pakhchanian
08.04.2018 15:34Готовить одинаково тяжело. Смотреть и работать с ним куда проще. Статья ведь об этом.
zartarn
08.04.2018 15:47А какие проблемы с смотреть и работать? на пк постоянно. Под андроид тоже софт был, причем даже выбор существовал. Тоже проблем не замечал. софт абсолютно одинаково работал что с PDF что с DJVU. На андроиде мне нравился Orion Viewer, но сейчас там еще больше выбора.
ps.: даже родной адобовский акробат на ПК работает с PDF Тормознуто, иллюстрации прогружает с задержкой, в то врея когда на основе тех же сканов собраный DjVu — летает по всем фронтам без каких либо задержек и проблем.
tmin10
08.04.2018 16:50При копировании из PDF часто бывает, что текст разбит по куче строчек и его ещё приводить в должный вид надо. Причём это часто с изнчально электронны текстом бывает…
mad_god
07.04.2018 21:33+1на планшете win почти нечем открыть djvu, чтобы можно было листать в обе стороны и свайпать. Или я что-то делаю не так?
Неужели трудно клик вверху и клик внизу обрабатывать по-разному? Или справа-слева? Свайп слева-направо и справа-налево?kAIST
07.04.2018 22:59+1У меня ноутбук трансформер. Я вам скажу даже больше — под windows вообще редко кто предусматривает нормальную работу с тачскрином.
Exchan-ge
07.04.2018 22:29-2DjVu был разработан в 1996 году компанией AT&T Labs с одной целью — дать веб-разработчикам инструмент для распространения изображений в высоком разрешении через интернет.
Времена изменились и Дежавю уже мертв.
В любом случае предпочитаю PDF.
Очень жаль тех людей, которые потратили огромное количество времени на сканирование оригиналов, сохраненных только в этом формате.dan939
07.04.2018 23:38+2ерунда какаято. дежавю-лучший формат для книг в электронном виде. у меня вся библиотека в дежавю(около 10тыс книг). если попадается чтото бумажное ценное, сканирую и преобразую в дежавю. технология отработана.
amarao
08.04.2018 13:31Архивный формат не может быть «мёртвым» до тех пор, пока в нём есть информация, отсутствующая в других форматах. В сравнении с OCR в текстовый вид он менее удобен, но зато он сохраняет массу другой информации, которая теряется при OCR. И при этом он разумен по объёму.
Zenitchik
08.04.2018 18:11зато он сохраняет массу другой информации, которая теряется при OCR
А кроме того — сохраняет оригинальную орфографию, без внесённых при OCR опечаток.SandroSmith
09.04.2018 00:26Как-бы прямо в статье пишут, что JB2, используемый в DJV, может вносить опечатки.
Exchan-ge
08.04.2018 01:07ерунда какаято. дежавю-лучший формат для книг в электронном виде
Тут, выше, в статье — описаны основные недостатки формата.
Хотя, в принципе одного: «он не поддерживается по умолчанию во многих современных ОС (в том числе мобильных)» — уже достаточно для вынесения приговора.
Плюс у большинства сканов в дежавю совершено отвратительное качество текста.
(Объективно этот параметр можно оценить с помощью ABBYY Screenshot Reader)Barafu
08.04.2018 12:42А что, PDF поддерживается по-умолчанию в какой-то современной ОС? Ну, кроме *бунты?
MrKarlKori
08.04.2018 13:25Edge идёт вместе с windows 10, он читает pdf.
Kobalt_x
08.04.2018 14:46Кроме него с win8 есть просмотрщик в виде metro приложения
Kobalt_x
09.04.2018 11:37я имел в виду Reader если что, в win8/win8.1, в какой-то десятке вроде тоже он вроде шел из коробки www.microsoft.com/ru-ru/store/p/reader/9wzdncrfhwg5
betrachtung
08.04.2018 03:57На одном форуме когда-то натолкнулся на интересного персонажа, который утверждал, что художественную литературу надо читать только в формате DjVu, а EPUB и FB2 презрительно называл «распознанкой».
Увы, мне так и не удалось выяснить у него преимущества — любые, пусть даже мнимые — DjVu перед «распознанкой» в случае с художественной литературой, и с тех пор меня так и гложет этот вопрос.Lord_Ahriman
08.04.2018 08:26Рискну предположить, что дело в том, что часто те, кто делает FB2-версию, не утруждают себя вычиткой и коррекцией, а потому довольно часто там встречаются артефакты распознавания, в DJVU же обычно тупо пихают сканы.
Кроме того, извечная проблема — разбивка на странице. Жене для диссертации как-то понадобилось использовать книгу XIX века, она существует в виде DJVU-сканов и в виде FB2. Пришлось пользоваться DJVU, потому что нужны были ссылки на конкретные страницы.
omgiafs
08.04.2018 08:36+3Это всё полумеры.
Художку надо читать исключительно на бумаге (старой), сидя вечером в кресле-качалке под лампой с лампочкой с нитью накаливания, накрыв ноги пледом, попивая изредка тёплый глинтвейн. И чтоб рядом никого не было, кроме кота, свернувшегося калачиком в другом кресле недалеко от камина, в котором иногда потрескивают дрова, а за окном чуть слышно постукивает дождь по исключительно деревянному подоконнику.
И никаких смартфонов и прочей современной гаджетухи в радиусе 5 метров от вас, а если и есть, то выключено или в тихом режиме.
Всё остальное — издевательство.splav_asv
08.04.2018 09:00+1Тоже полумеры — никаких ламп, только свечи и керосиновые фонари.
9660
08.04.2018 10:37Все эти знаки печатные, машин бездушных порождение, суть происки диавола.
Лишь след пера гусиного, рукой писца ведомого, сумления души передать способен.Ravebinovich
08.04.2018 14:45Все эти ваши новомодные веяния не потеснят старые добрые надёжные глиняные таблички в душах настоящих эстетов.
9660
08.04.2018 14:51Приличная книжка занимает пространство размерами с спортзал? :)
Ravebinovich
08.04.2018 14:57Это вы ещё нашу библиотеку не видели.
sHaggY_caT
08.04.2018 16:12+1Ардуину использует для сортировки табличек? А есть прошивка на github'е?
DoctorMoriarty
08.04.2018 13:11Художку надо читать исключительно (...)
Из всего этого невкусовщиной являются только первые три слова, образующие отдельное безусловное высказывание:
«Художку надо читать.»
9660
08.04.2018 09:36-1однако 20 лет назад их точность была далека от идеальной — после обработки финальный результат приходилось серьезно править вручную
Разве что-то изменилось?
YouHim
08.04.2018 13:34Djvu у меня ассоциируется только с электронными схемами. Когда в конце 90-х я вместо библиотек дорвался до интернета. До сих пор эта иконка перед глазами.
RolexStrider
08.04.2018 20:15Замечательный формат, но имел проблемы «с рождения» — там почти каждый параграф (открытой, таки!) спецификации покрыт как минимум двумя патентами. Так что на любую более-менее качественную его реализацию патентные тролли слетались как мухи на известный продукт жизнедеятельности.
coturnix19
08.04.2018 21:26В этом году как раз будет 20 лет как он появился (согласно вики — в 1998, хм, я думал что раньше)
WP_Hedgehog
08.04.2018 22:06Имею мнение, что лень (и жадность) компании Adobe, не позволила им “захватить Мир”. Да, Adobe Reader был доступен и бесплатен ещё со времён Windows 3.0… Однако, выпусти компания одновременно с ним простой PDF-принтер (типа сегодняшнего DoPDF) для всего спектра систем – подозреваю, такого “зоопарка форматов” мы бы сегодня не видели, кроме мест где нужен “мягкий”, “текучий” формат (в отличие от “жёсткого” PDF'а).
Andy_Big
Не люблю DjVu, никогда не загружаю документы или книги в этом формате. Ни оглавления нормального, ни поиска по тексту. Отдельные страницы в нем — нормально, многостраничные документы — изврат.
DoctorMoriarty
Это претензии к тем, кто оформлял документ. Держу в djvu кучу книг, потому что в pdf их банально нет и заметил, что уже несколько лет, как добавлять оглавление стало хорошим тоном на уважаемых трекерах.
Andy_Big
Возможно. Я в основном находил в DjVu техническую литературу и сколько ее видел — это всегда была просто куча отсканированных страниц.
Художественную литературу я вообще предпочитаю в формате FB2 :)
ShadowTheAge
Формат в основном для сканов и разрабатывался — понятно что когда документ в электронном виде есть в виде текста то и формат используют другой
А для человека (непрофессионала), который просто делает скан имеющейся у него книги альтернатива — PDF картинками или архив с jpg/tiff
diversenok
Это исключительно недоделка тех, кто выкладывал книгу. Текстовый слой и оглавление форматом-то поддерживается. В pdf тоже, знаете, иногда пихают просто набор jpeg-ов.
Andy_Big
Да, бывает такое и в PDF, но мой личный опыт говорит, что это редкость, как и в DjVu нормальный текст с оглавлением и поиском :)
saege5b
Журналы по 100-500 метров не редкость. А там всего по 80-200 страниц.
Где-то на винте лежит недокачанный справочник на гиг с хвостиком.
У джв проблема в том, что софта — раз-два и всё. И весь софт представляет собой унылое зрелище. Пока научишься правильно готовить, всё надоест раз сто.
Кстати, уже давно пдф умеет тоже что джв.
Andy_Big
И это тоже, да.
Lord9999
Поиск по тексту возможен, если внедрён текстовый слой. Т.е. это не проблема формата Djvu.
Zenitchik
Иными словами отказываетесь от нужной литературы, если её нет ни в каком другом формате. Оригинальный подход.
Andy_Big
Ищу другую подобную литературу. К счастью, ситуации когда нужная мне информация имеется в одной единственной публикации, доступной в одном единственно неудобном формате, исключительно редки.
Zenitchik
Вы живёте в тепличных условиях. Информация, которая требуется мне, как правило существует исключительно в виде галимого скана. А в DjVu он сохранён или в PDF — уже роли не играет.
Andy_Big
Сочувствую Вам :)