Формат DJVU
Сразу честно: DJVU мы не конвертируем — ни один наш маршрут этот формат не принимает. Причина не в лени, а в устройстве: DjVu режет отсканированную страницу на слои. Резкая чёрно-белая маска с буквами кодируется отдельно и в высоком разрешении, а цветной фон и передний план — вейвлетом и в разрешении в несколько раз ниже. Именно поэтому книжный скан в DjVu весит так мало.
Коротко о цифрах
- Наш ответ
- DJVU не конвертируем: маршрута с этим расширением нет
- Модель страницы
- маска текста, фон и передний план — три слоя
- Методы сжатия
- JB2 для маски, вейвлет IW44 для цветных слоёв
- Свободная реализация
- DjVuLibre, включая утилиту ddjvu
- Родственник в PDF
- JBIG2, который декодируется wasm-модулем
Почему формат вообще появился
DjVu придумали в исследовательской лаборатории Bell Labs в середине девяностых, когда сканы книг весили десятки мегабайт и по модему не передавались вовсе. Идея была в том, чтобы перестать сжимать страницу как одну картинку. Глаз читает буквы по резким границам, а бумажный фон и иллюстрации терпят потерю деталей — значит, и кодировать их надо по-разному.
Маска с буквами сжимается методом JB2, который ищет повторяющиеся формы: буква «а» на странице встречается сотни раз, и вместо сотен картинок в файл кладётся один образец плюс координаты. Фон и передний план уходят под вейвлет IW44 с пониженным разрешением. Разделение слоёв и даёт тот самый выигрыш в размере, за который формат и любят.
Чем DjVu устроен иначе, чем PDF
- DjVu — контейнер из чанков с растровыми слоями; PDF — язык описания страницы, где текст задан операторами и встроенными шрифтами.
- В DjVu разрешение слоёв разное внутри одной страницы; в PDF каждое изображение — самостоятельный объект со своим разрешением.
- Текстовый слой в DjVu возможен, но появляется только после распознавания — сам формат его не создаёт.
- Ближайший родственник JB2 в мире PDF — сжатие JBIG2, и наш просмотрщик декодирует его отдельным wasm-модулем.
- Из-за этого в политике безопасности сайта разрешён wasm-unsafe-eval: без него декодеры сканов не компилируются и цвета CMYK искажаются.
Что делать с файлом .djvu
- Установите просмотрщик из набора DjVuLibre — это свободная реализация формата, доступная на всех настольных системах.
- Экспортируйте страницы в PDF средствами просмотрщика или утилитой ddjvu из того же набора.
- Не удивляйтесь росту размера: слоистая модель при экспорте разбирается в обычные растровые страницы.
- Принесите полученный PDF к нам — сжатие подберёт качество под нужный вес прямо в браузере.
- Если нужны отдельные главы, разделите документ, а для чтения с планшета разложите по несколько страниц на лист.
Частые вопросы
Почему вы не делаете DJVU → PDF?
В нашем стеке нет декодера этого формата: браузеры его не читают, а на сервере стоят qpdf, LibreOffice и конвертер документов, ни один из которых с DjVu не работает. Честный отказ полезнее кнопки, возвращающей ошибку.
Почему PDF из DjVu получается тяжелее оригинала?
Потому что при экспорте слои склеиваются: вместо резкой маски и грубого фона получается одна растровая картинка на страницу. Выигрыш, ради которого формат и создавался, при этом теряется.
Можно ли искать по тексту в DjVu?
Только если внутри уже лежит слой распознанного текста — формат его допускает, но не создаёт сам. У скана без распознавания искать нечего, там одни изображения слоёв.
Чем открыть файл .djvu?
Просмотрщиками из набора DjVuLibre на настольных системах и специализированными читалками на телефоне. Универсальные программы для PDF этот формат не открывают, потому что общего у них только назначение.