Використання djvu imager

1. Введення

Що таке "DjVu Imager" і навіщо він потрібен?

Програма DjVu Imager v2.9 (1,17 МБ) призначена для кодування в DjVu сканів книг, що містять ілюстрації (напівтонові і / або багатобарвні - см. Терміни в Додатку нижче). Програма має Вільно-безкоштовну ліцензію "GPL 2 і вище" і повністю відкриті вихідні коди (73 КБ).

Програма має свою передісторію. Колись давно, створюючи DjVu-файли, багато людей звернули увагу на те, що в DjVu добре виходило кодувати скани з текстом, а ось скани, що містять текст і ілюстрації, викликали чималі проблеми.

Приклади сканів з ілюстраціями:

Використання djvu imager

Використання djvu imager

Мал. 1. Каталог продукції з фотографіями.

Мал. 2. Комп'ютерний підручник з зображеннями діалогових вікон.

Вся справа в тому, що текст і ілюстрації - це занадто різнорідні речі (для формату DjVu). Вони і кодуються при створенні DjVu-файлу по-різному - точніше, протилежними за змістом способами.

Текст кодується максимально чітко, а ось ілюстрації - навпаки, значно "розмиваються" (по різкості).

Тому при кодуванні таких сканів (текст з ілюстраціями) виникала проблема: як саме їх кодувати? У ті часи було всього лише 3 можливих варіанти: або кодувати їх "як текст" (режим DjVuBitonal), або "як ілюстрацію" (режим DjVuPhoto), або в режимі автоматичної сегментації (автоматичне створення DjVuDocument).

Розглянемо це на прикладі конкретного ськана:

Використання djvu imager

Мал. 3. Вихідний скан з напівтонової
картинкою (взято з сайту U235).

Перший спосіб (кодувати "як текст") був поганий тим, що, по-перше, виходили DjVu-файли великого об'єму, по-друге, ілюстрація втрачала плавні переходи тонів і ставала схожою на середньовічну гравюру:

Використання djvu imager

Мал. 4. Вихідний скан кодований "як текст".

Другий спосіб (кодувати "як ілюстрацію") був набагато гірше. При цьому способі текст навколо ілюстрації виходив абсолютно розмитим і практично нечитабельним:

Використання djvu imager

Мал. 5. Вихідний скан кодований "як ілюстрація".

Третій спосіб (автоматична сегментація, що створює DjVuDocument) був поганий тим, що він породжував неприємні артефакти на ілюстраціях - через те, що автоматика помилково намагалася виділити на них текстоподобние елементи:

Використання djvu imager

Мал. 6. Вихідний скан кодований з автоматичною сегментацією.

На малюнку 6 досить добре видно помилкові артефакти у вигляді точок на ілюстрації. Але зазвичай такі артефакти виглядають набагато гірше - як грубі монохромні лінії або "клапті".

ВАЖЛИВО: Через цих помилок автоматичної сегментації свого часу виникло і широко поширилося помилкове думка про те, що "формат DjVu псує картинки" і тому "його не можна використовувати".

І одного разу був знайдений вихід з цієї проблеми. Людина на ім'я manfred запропонував так званий "Метод розділених сканів" - четвертий спосіб.

Суть його в тому, що на сканах, де є текст з ілюстраціями, текст попередньо відділяється від ілюстрацій в інший файл (до DjVu-кодування), потім обидва цих файлу кодуються в DjVu окремо один від одного (своїми оптимальними способами), а отримані в підсумку 2 DjVu-файлу поєднуються воєдино спеціальним чином:

Використання djvu imager

Мал. 7. Текст, відокремлений від ськана "текст з ілюстраціями" (за методом розділених сканів).

Називається "передній субскан".

Використання djvu imager

Мал. 8. Ілюстрація, відокремлена від ськана "текст з ілюстраціями" (за методом розділених сканів).

Називається "задній субскан".

Такий підхід повністю закриває проблему кодування сканів "текст з ілюстраціями":

Використання djvu imager

Мал. 9. DjVu-файл, отриманий методом розділених сканів.

На малюнку 9 видно, що при застосуванні методу розділених сканів і текст виходить чітким, і ілюстрація зберігає півтони. Також і розмір одержуваного DjVu-файлу стає оптимальним.

З моменту відкриття методу розділених сканів технологія його практичної реалізації зазнавала різноманітні зміни. В остаточному підсумку всі ці зміни вилилися в створення програми DjVu Imager, яка реалізує метод розділених сканів практично-зручним способом.

Схема застосування DjVu Imager виглядає так:


Scan Tailor Featured -> DjVu Small v0.4 -> DjVu Imager v2.9

Спочатку в програмі Scan Tailor Featured скани "текст з ілюстраціями" поділяються на "текст" (передній субскан) і "ілюстрації" (задній субскан) - як показано на малюнках 7 і 8. "Передній" - тому що він є прототипом майбутнього переднього шару DjVu, а "задній" - відповідно, заднього.

Далі передні субскани кодуються в DjVu за допомогою програми DjVu Small.

DjVu Imager кодує в DjVu задні субскани, і тут же "наклеює" вийшли DjVu-файли ілюстрацій на DjVu-файли тексту (що вийшли з DjVu Small).

2. Використання

Розглянемо весь процес кодування в DjVu сканів з ілюстраціями докладніше (на прикладі випадку сірих сканів (Greyscale) - як найбільш типовий).

2.1. Обробка в Scan Tailor Featured

2. На стадії "Висновок" скани, що містять напівтонові ілюстрації, обробляємо особливим чином. Для цього (на стадії "Висновок") робимо наступне:

а. При обраному в списку мініатюр скане з напівтонової ілюстрацією в групі елементів управління "Режим" перемикається в режим "Змішаний" (для звичайних сканів - тобто без напівтонових ілюстрацій - використовуємо режим "Чорно-білий"):

Мал. 10. Вибір "змішаного" виведення для поточного скана в Scan Tailor.

В результаті цього відбудеться переобробку поточного скана - в режим "Змішаний". А саме, програма сама, повністю автоматично, розпізнає зони напівтонових (кольорових) ілюстрацій на поточному скане.

ВАЖЛИВО: Зверніть увагу - параметр "Режим" ( "Чорно-білий" - "Кольоровий / Сірий" - "Змішаний") - це сторінково-залежний параметр! Тобто, кожен скан з завантажених може мати свій режим (будь на вибір з цих 3-х). Це поширена помилка - користувачі часто не розуміють цей момент, їм здається, що якщо найперший скан в списку має режим (наприклад) "Чорно-білий" - то, значить (нібито) і всі інші скани мають цей же режим. У загальному випадку це не так.

б. Перейдіть на вкладку "Зони картинок". Автоматично розпізнані зони напівтонових ілюстрацій виділяться пульсуючим синім кольором:


Мал. 11. Картинка виділяється (в Scan Tailor) пульсуючим синім кольором.

3. Після закінчення процесу сканобработкі неоходімо зробити експорт готових сканів. У меню Інструменти виберіть пункт Експорт. і Ви побачите вікно експорту:

Мал. 12. Вікно експорту готових сканів в Scan Tailor Featured.

Експорт сканів - це засіб для отримання готових сканів, перейменованих в "суцільну послідовність імен" виду 0001.tif, 0002.tif. 0010.tif. 0100.tif.

Справа в тому, що Scan Tailor створює вихідні файли (в папці out поточного проекту) з досить своєрідними іменами, в яких закодовано вихідне ім'я файлу і ліве-праве положення сторінки. А для мети подальшого створення DjVu-файлу вкрай важлива саме наскрізна нумерація імен файлів.

Прапорець "Папка експорту за замовчуванням":

Якщо його встановити, то програма автоматично створить папку "Export" всередині папки "out", що відноситься до даного проекту, і здійснить експорт сканів туди.

Якщо не встановити, то тоді Ви зможете вказати програмі будь-яку бажану папку експорту. Але навіть і в цьому випадку програма створить всередині зазначеної папки папку "Export", і здійснить експорт сканів в неї. Тобто при будь-якому стані прапорця "Папка експорту за замовчуванням" скани будуть експортуватися в папку "Export".

Прапорець "Розділяти змішаний висновок":

Якщо його встановити, то при експорті готові "змішані" скани будуть розділятися на пари "передній субскан" і "задній субскан". При цьому всередині папки "Export" будуть автоматично створені папки "1" і "2" - в які будуть міститися відповідно передні і задні (однойменні) субскани.

Якщо не встановити, то поділ сканів не здійснюватиметься, і експорт зведеться просто до отримання сканів (в папці "Export"), перейменованих в суцільну послідовність імен (що теж корисно - для подальшого звичайного випадку DjVu-кодування).

Рекомендується встановити обидва прапорці - "Розділяти змішаний висновок" і "Папка експорту за замовчуванням" (як на малюнку 12).

Натисніть на кнопку "Експорт" і дочекайтеся закінчення експорту.

4. На цьому робота в Scan Tailor Featured закінчена. Закрийте програму (зберігши проект про всяк випадок).

2.2. Обробка в DjVu Small v0.4 і вище

DjVu Small v0.4 і вище в даному контексті застосовується для того, щоб створити DjVu-заготовку - тобто DjVu-книгу без ілюстрацій (тих самих, які ми обробляли в попередньому пункті). DjVu-заготовка - це завжди чорно-білий DjVu-файл (може бути ще і з кольоровим текстом) - з білими "більмами" (порожніми місцями) на місці майбутніх ілюстрацій (які ми вклеїмо потім через DjVu Imager).

Створення DjVu-заготовки нічим не відрізняється від звичайного використання DjVu Small при кодуванні чорно-білих сканів. Для отримання DjVu-заготовки потрібно просто закодувати в DjVu вміст папки "1" папки "Export", отриманої з Scan Tailor Featured (рекомендований профіль кодування - "User BW"). І все. DjVu-заготовка готова! На цьому участь DjVu Small завершено.

2.3. Обробка в DjVu Imager

DjVu Imager створює з задніх субсканов, отриманих в Scan Tailor Featured, DjVu-картинки (див. Терміни в Додатку нижче), і вклеює їх в DjVu-заготовку, отриману в DjVu Small.

Послідовність роботи з програмою виглядає так:

1. Натисніть кнопку Можливості та встановіть галку Довільні файли. Це відключить в діалозі відкриття файлів фільтр імен файлів в нотації ScanKromsator (спочатку DjVu Imager створювався під ScanKromsator).

2. Завантажуємо підпапку "2" папки "Export", отриману в Scan Tailor Featured (тобто субскани заднього фону - які містять напівтонові ілюстрації).

3. У стовпці № автоматично сформуються номера завантажених файлів (виходячи з цифр, що містяться в їхніх іменах). Кожен такий номер позначає номер тієї DjVu-сторінки, куди буде вклеєна даний завантажений графічний файл (в якості ілюстрації). При необхідності можна змінити вручну будь-який такий номер (за подвійним клацанням миші на ньому, тобто на осередку шпальти, що містить номер):