Вернуться к разделу "Материалы по сканированию и оцифровке бумажных книг".


Использование DjVu Sep


Программа DjVu Sep морально устарела. Вместо неё следует использовать программу DjVu Imager.


1. Введение

Программа DjVu Sep v2.3 (978 КБ) предназначена для кодирования в формат DjVu полутоновых иллюстраций (встречающихся на сканах книг) по методу разделённых сканов (МРС). DjVu Sep на практике воплощает в себе МРС. Программа имеет cвободно-бесплатную лицензию GPL и полностью открытые исходные коды (59 КБ).

DjVu Sep использует разновидность метода разделённых сканов, которую я предлагаю назвать условно "технология вставки разделённых страниц". Возможный английский вариант: "Separated pages insertion technology".

Полутоновые иллюстрации - это серые (или цветные) фотографии объектов реального мира или иные реалистичные рисунки, состоящие (на вид) из объектов различных оттенков серого цвета (или многоцветные) (не путать с чёрно-белыми рисунками - т.е. состоящими только из объектов чёрного и белого цветов).

Программа DjVu Sep не может работать "сама по себе" - а только в связке с двумя другими программами: ScanKromsator v5.91 (или любым другим графическим редактором) и DjVu Small v0.3.3.

Смысл метода разделённых сканов (МРС) состоит в том, чтобы подменить при кодировании в DjVu автоматическую сегментацию (с использованием documenttodjvu - обычный вариант) ручной (с использованием csepdjvu). Это даёт полный контроль над сегментацией, обеспечивающий следующие преимущества:

1. Исключение ошибок кодирования (визуальных артефактов).

2. Возможность подобрать вручную для каждой полутоновой иллюстрации оптимальное соотношение сжатия "размер-качество".

3. Оптимальное сжатие (в DjVu) различных по своей сути объектов - текста и полутоновых рисунков.

МРС следует применять для чёрно-белых книг, содержащих полутоновые иллюстрации - это, например, всевозможные каталоги (см. рис. 1), учебники по использованию компьютера с изображениями диалоговых окон (см. рис. 2) и т.п. Для таких книг МРС даёт очень хорошие результаты.

sep01.jpg (31595 bytes)

Рис. 1. Каталог продукции с фотографиями.

sep02.jpg (18426 bytes)

Рис. 2. Компьютерный учебник с изображениями диалоговых окон.

МРС не всегда даёт хорошие результаты для книг, содержащих малоцветные объекты - цветной текст, рисунки плакатного типа, схемы из монотонных цветов и т.п - а именно, он зачастую даёт проигрыш по размеру результирующего DjVu-файла - по сравнению с автоматической сегментацией, которая отправляет такие рисунки частично в задний фон DjVu-файла (а МРС помещает их целиком в слой переднего плана), что значительно снижает размер результирующего DjVu-файла. Для таких книг лучше применять (после специальной обработки в СканКромсаторе v5.91) либо автоматическую сегментацию (с использованием documenttodjvu), либо метод Minor'а.

2. Применение МРС

Общая схема обработки сканов с полутоновыми иллюстрациями выглядит так:


ScanKromsator v5.91 -> DjVu Small v0.3.3 -> DjVu Sep v2.3


2.1. Обработка в ScanKromsator v5.91


Рис. 3. Исходный скан с полутоновой
картинкой (взято с сайта U235).
Картинка заключена в Picture-зону
(в СканКромсаторе v5.91) - прямоугольник
из редкого красного пунктира.

1. Загружаем в ScanKromsator v5.91 сканы книги (в режиме Greyscale), содержащие полутоновые иллюстрации (как обычно).

2. Составляем задание для кромсания: расставляем опции, резаки и т.п. (как обычно).

3. В процессе составления задания заключаем попадающиеся на сканах полутоновые иллюстрации в Picture-зоны (выделяем на глаз мышкой и по правой кнопке назначаем тип зоны как Picture-зона) (см. рис. 3).

4. Пройдя по всем сканам и составив задание, нажимаем на кнопку Process!.

5. Переходим в главное окно и в меню Zones -> Picture zone -> Merge zones... ставим флажок Create separate files for non-b/w zones, жмём ОК и соглашаемся с вопросом Merge zones for output files?.

6. ScanKromsator v5.91 обработает каждый скан, где присутствует хоть одна Picture-зона, особым образом:

- Каждый такой скан будет "разбит" на 2 т.н. "субскана" - субскан переднего плана (foreground subscan) и субскан заднего фона (background subscan). (см. рис. 4 и 5).

- Субскан переднего плана (в чёрно-белом формате) - это исходный скан за вычетом полутоновой картинки.

- Субскан заднего фона (в сером или цветном формате) - это исходный скан за вычетом всего, что не относится к полутоновой картинке (если на исходном скане 2 или более Picture-зоны, то все они адекватно переносятся на субскан заднего фона).

Рис. 4. Субскан переднего плана (foreground subscan) - чёрно-белый.

Рис. 5. Субскан заднего фона (background subscan) - серый.

Скачать пример с этими файлами (974 КБ)

Таким образом, субсканы получаются такими, чтобы при прозрачном наложении второго на первый получился исходный скан.

7. На выходе из ScanKromsator v5.91 мы получаем папку out, в которой находится смесь простых сканов, пар субсканов, и т.п.

ИТОГ: Таким образом, ScanKromsator v5.91 разбивает каждый исходный скан с полутоновой иллюстрацией (где есть Picture-зоны) на соответствующую ему пару субсканов.

Примечание: Для создания пар субсканов вовсе не обязательно использовать именно ScanKromsator v5.91 - можно применить любой иной графический редактор. Причём в DjVu Sep предусмотрен настраиваемый фильтр имён пар субсканов - что позволяет настроить её на работу со сторонним графическим редактором.


2.2. Обработка в DjVu Small v0.3.3

DjVu Small v0.3.3 в данном контексте применяется для того, чтобы создать итоговую DjVu-книгу без страниц, содержащих полутоновые рисунки (тех самых, которые мы обрабатывали в предыдущем пункте).

Для этого в DjVu Small, начиная с версии 0.3.2, добавлена новая опция "Пропускать sep-файлы из СК 5.91". Эта опция включена по умолчанию (на самом деле я при всём желании не могу представить себе случай, когда эту опцию потребовалось бы отключать). При этом подразумевается, что субсканы имеют имена в базовой нотации СканКромсатора 5.91, а именно:
- Субсканы переднего плана: 0001.tif, 0002.tif, ..., 0100.tif, ...
- Субсканы заднего фона 0001.sep.tif, 0002.sep.tif, ..., 0100.sep.tif, ...

Последовательность работы с программой выглядит как обычно:

1. Загружаем папку out, полученную в ScanKromsator v5.91 в предыдущем пункте - прямо "как есть", т.е. без какой-либо рассортировки её содержимого по сортам сканов (обычные, картинки, и т.п.). Благодаря опции "Пропускать sep-файлы из СК 5.91" DjVu Small v0.3.3 автоматически отсеет на входе всё "лишнее" содержимое папки out (субсканы и картинки) и загрузит в программу только обычные сканы (из папки out). Можно просто перетащить и "бросить" (через Drag-n-Drop) папку out в окошко "Введите файл(ы):".

2. Выбираем профиль кодирования (обычно это user B/W (600 dpi)) и нажимаем кнопку "Пуск".

3. Через некоторое время получаем (по умолчанию на Рабочем столе) файл "DjVu Encoded.djvu". Это - DjVu-книга без страниц, содержащих полутоновые рисунки. Давайте назовём её условно "DjVu-заготовка".

Примечание: При обычной работе (без полутоновых иллюстраций) DjVu Small v0.3.3 используется точно также. Опцию "Пропускать sep-файлы из СК 5.91" отключать не надо.


2.3 Обработка в DjVu Sep v2.3

DjVu Sep работает следующим образом: она создаёт из каждой пары субсканов (полученных в ScanKromsator v5.91 в п. 2.1) одностраничные DjVu-файлы по методу разделённых сканов (МРС) (при этом субскан переднего плана "превращается" в слой переднего плана, а субскан заднего фона - в слой заднего фона создаваемого двухслойного DjVu-файла). Далее каждый такой одностраничный DjVu-файл вставляется между страниц целевой DjVu-книги - при помощи djvm. Именно таким способом достигается иллюстрирование целевой DjVu-книги. Заметим, что в DjVu-заготовке (после DjVu Small) отсутствовали страницы с иллюстрациями (мы так сделали специально) - с таким расчётом, чтобы DjVu Sep вставил их, и уже прямо с иллюстрациями.

Такой способ иллюстрирования DjVu-книг уже рассматривается как архаичный - поэтому вместо DjVu Sep рекомендуется использовать программу DjVu Imager.

У формата DjVu нет понятия "серый" - поэтому слой заднего фона DjVu-файла можно всегда считать "цветным".

Последовательность работы с программой выглядит так:

1. Загружаем папку out, полученную в ScanKromsator v5.91 в п. 2.1 - прямо "как есть", т.е. без какой-либо рассортировки её содержимого по сортам сканов (обычные, картинки, и т.п.). Можно просто перетащить и "бросить" (через Drag-n-Drop) папку out в окошко "Введите файл(ы):".

DjVu Sep автоматически отсеет на входе всё "лишнее" для него содержимое папки out (обычные сканы) и загрузит в программу только пары субсканов (из папки out). Точнее, при открытии мы указываем программе на субсканы заднего фона, находящиеся в папке out, и после нажатия OK программа автоматически находит (в папке out) и подгружает соответствующие субсканы переднего плана (проверяя при этом комплектность загруженных пар субсканов).

При этом важно понимать, что субсканы должны иметь имена в базовой нотации СканКромсатора 5.91, а именно:

- Субсканы переднего плана: 0001.tif, 0002.tif, ..., 0100.tif, ...

- Субсканы заднего фона 0001.sep.tif, 0002.sep.tif, ..., 0100.sep.tif, ...

Если Ваши субсканы имеют какие-то специфические префиксы или суффиксы - то Вам необходимо сначала ЯВНО их (префиксы-суффиксы) задать в разделе "Опции" (флажок Произвольные файлы) - и только после этого загружать субсканы в программу - в противном случае программа просто не поймёт, где какие субсканы и куда их вставлять.

2. Выставляем параметры кодирования. Их 2: ДЗФ (делитель (разрешения) заднего фона) и Качество задн. фона (качество заднего фона). Рекомендуемое значение для ДЗФ - от 2 до 4. Эти параметры влияют при кодировании исключительно на качество кодирования субскана заднего фона (субскан переднего плана всегда кодируется с одинаковым качеством).

3. Для каждого субскана заднего фона в списке можно задать индивидуальные значения параметров кодирования (ДЗФ и Качество задн. фона). Для этого кликните мышкой на нужный элемент списка загруженных файлов, выберите селектор Текущий файл и установите желаемые значения ДЗФ и Качество задн. фона. При этом текущий файл выделится жирным шрифтом в списке. Для сброса индивидуальных значений параметров кодирования (данного файла - т.е. того, который выделен в списке) выберите селектор Все файлы. Для сброса индивидуальных значений (параметров кодирования) всех файлов предусмотрена кнопка С - при её нажатии всем "индивидуальным" файлам выставятся текущие настройки "общих" файлов (т.е. "индивидуальные" файлы полностью уравняются с "общими" - тем самым перестав быть "индивидуальными").

4. Нажмите кнопку Пуск и подождите. DjVu Sep создаст для каждой пары субсканов 2-слойный DjVu-файл (я называю их условно "DjVu-картинка"). В результате получится множество одностраничных DjVu-картинок. Сразу после окончания кодирования программа автоматически сгенерирует временный многостраничный DjVu-файл, в который будет "склеено" всё полученное множество одностраничных DjVu-картинок, и откроет его на просмотр в установленом в системе DjVu-просмотрщике. Этот временный файл нужен лишь для удобства просмотра полученного результата - чтобы сразу "оптом" просмотреть результат.

5. Для визуального подбора индивидуальных значений параметров кодирования (для отдельных элементов списка) предусмотрена кнопка Текущий - она кодирует текущий элемент списка файлов с его текущими параметрами (т.е. фактически независимо от того, "индивидуальный" это файл или "групповой") и тут же открывает его на просмотр в установленом в системе DjVu-просмотрщике.

6. Варьируя и комбинируя по-разному параметры кодирования (ДЗФ и Качество задн. фона) то ли для всех сразу, то ли для каждой отдельной пары субсканов, и просматривая получающийся результат в установленом в системе DjVu-просмотрщике, добейтесь оптимального соотношения "размер/качество" получаемого множества одностраничных DjVu-картинок.

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

7. Нажмите кнопку Источн. и выберите в появившемся окне DjVu-заготовку, полученную в предыдущем пункте (по умолчанию - файл "DjVu Encoded.djvu" на Рабочем столе). Нажмите на кнопку Вставить в DjVu. Программа создаст копию DjVu-заготовки (по пути, указанному в поле слева от  кнопки Назнач. - по умолчанию это Рабочий Стол - и с суффиксом "out" по умолчанию) и автоматически вставит полученное множество одностраничных DjVu-картинок (из п. 2.3.6) в соответствующие места копии DjVu-книги (ориентируясь по именам DjVu-картинок).

Эта копия DjVu-книги - и есть результат работы программы. Она является полностью готовой к употреблению DjVu-книгой с иллюстрациями.


3. Термины статьи

1. Метод разделённых сканов (МРС) - Методика DjVu-кодирования с ручной сегментацией.

2. Метод Minor'а - Малоцветная методика DjVu-кодирования (логически дополняет МРС).

3. Субскан - одна из 2 МРС-компонент исходного скана.

4. Субскан переднего плана (foreground subscan) - чёрно-белый субскан - прототип 1 слоя будущего DjVu-файла.

5. Субскан заднего фона (background subscan) - серый (цветной) субскан - прототип 2 слоя будущего DjVu-файла.

6. Пара субсканов - результат МРС-"разбиения" исходного скана.

7. DjVu-картинка - пара субсканов, "превращённая" в готовый 2-слойный одностраничный DjVu-файл.

8. DjVu-заготовка - DjVu-книга без страниц, содержащих полутоновые рисунки.

9. DjVu-книга - готовый к использованию многостраничный DjVu-файл.


Автор: monday2000.

13 октября 2008 г.

E-Mail  (monday2000 [at] yandex.ru)

Hosted by uCoz