DjVu


DjVu (от фр. déjà vu — «уже виденное») — технология представления и хранения документов (книг, журналов, рукописей и подобных, прежде всего сканированных) с использованием сжатия изображений с потерями.

Изначально технология была разработана Яном Лекуном, Леоном Боту и Патриком Хеффнером в AT&T Labs с 1996 по 2001 годы.

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

Для сжатия цветных изображений в DjVu применяется специальная технология, разделяющая исходное изображение на три слоя: передний план, задний план и чёрно-белую (однобитовую) маску. Маска сохраняется с разрешением исходного файла; именно она содержит изображение текста и прочие чёткие детали. Разрешение заднего плана, в котором остаются иллюстрации и текстура страницы, по умолчанию понижается для экономии места. Передний план содержит цветовую информацию о маске; его разрешение обычно понижается ещё сильнее. Затем задний и передний планы сжимаются с помощью вейвлет-преобразования, а маска — алгоритмом JB2.

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

Для сжатия большинства книг можно обойтись только двумя цветами. В этом случае используется всего один слой, что позволяет достичь рекордной степени сжатия. В типичной книге с чёрно-белыми иллюстрациями, отсканированной с разрешением 600 dpi, средний размер страницы составляет около 15 Кб, то есть приблизительно в 100 раз меньше, чем исходный файл. В присутствии сложного заднего плана выигрыш объёма составляет обычно 4—10 раз. Однако при стандартных настройках в DjVu используется сжатие данных с потерями, поэтому для особо важных документов обычно используются форматы сжатия без потерь: PNG, JPEG 2000, TIFF и т. п. Например, сжатие без потерь предоставляет утилита CJB2 из пакета DjVuLibre.