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


Малоцветное DjVu-кодирование

(Статья предназначена не для начинающих книгосканировщиков. Содержит преимущественно теоретическую информацию).

Введение

Кодирование цветных сканов в формат DjVu - это наиболее сложный вид DjVu-кодирования. Приёмы подобного кодирования не универсальны и сильно зависят от вида кодируемых сканов.

Все цветные объекты на сканах можно разделить на 2 принципиальные категории:

а. Photo-объекты ("Photo", "полноцвет"). Это многоцветные изображения - фотографии или реалистические рисунки объектов реального мира и т.п.

б. Color Line Art-объекты (сокращённо "CLA", "рисунки плакатного типа", "Poster", "малоцвет"). Это малоцветные изображения - схематические рисунки, схемы, плакаты, цветной текст, и т.п. - содержащие как правило от 3 до 16 монохроматических цветов, реже до 256 цветов. Максимально возможное количество цветов - 4080.

Файл формата DjVu в общем случае состоит из 3-х слоёв: задний фон, маска, передний план. Но DjVu-файл может состоять и из 2-х слоёв (задний фон, передний план) и даже из 1-го слоя (только задний фон).

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

Обычно при кодировании цветных сканов в формат DjVu утилитой documenttodjvu происходит автоматическая 3-слойная сегментация: Photo-объекты попадают в задний фон, CLA-объекты - в маску, цвета CLA-объектов - на передний план. Передний план нужен для "расцвечивания" объектов из маски - потому что она чёрно-белая.

Задний фон и передний план в 3-слойных DjVu-файлах кодируются методом IW44, а маска - методом JB2. Поскольку JB2 (в отличие от IW44) - это индексированный (palletized) подформат, то передний план поддерживает максимум до 4080 уникальных цветов, тогда как как для IW44 такого ограничения нет. (Что такое "индексированный" формат - см. далее).

JB2 используется для хранения "высокоинформативных" объектов с резкими и чёткими краями (как правило, текст) - поэтому JB2-объекты имеют высокое разрешение (например, 300 dpi). IW44 же используется для противоположной цели - а именно для хранения "малоинформативных" объектов с мягкими, нечёткими контурами (фон, рисунки) - поэтому IW44-объекты имеют малое разрешение (обычно в 3 и более раза меньшее, чем у JB2-объектов).

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

В 2-слойных DjVu-файлах слои переднего плана и маски совмещены в единый слой - "передний план" (точный термин - "слой foreground + mask"). Этот слой кодируется методом JB2 (как маска в 3-слойном DjVu-файле). В отличие от 3-слойного DjVu-файла, это особый "цветной" JB2-режим (сам по себе подформат JB2 - чёрно-белый). Суть его в том, что каждому чёрно-белому JB2-объекту "искусственно" назначается свой монохромный цвет - и вся эта информация хранится там же, где и сами эти объекты - т.е. в комбинированном слое foreground + mask.

1-слойные DjVu-файлы могут быть как только со слоем "задний фон" - так и только со слоем "передний план". При использовании технологий, описанных в данной статье, если DjVu-файл содержит полезную информацию только в слое маски - то в него автоматически добавляется пустой белый задний фон.

Для того, чтобы узнать - сколько слоёв в данном DjVu-файле - нужно посмотреть его "Информацию о странице" в WinDjView: у 1-слойного присутствуют записи типа "IW44 background" и больше ничего (как правило, это файлы, созданные documenttodjvu с профилем Photo), у 2-слойного имеется запись: "JB2 foreground colors" - и непременно указано количество цветов рядом в скобках - о чём, собственно, и говорится в хелпе к DEE 5.1:

The foreground in the two-layer format is encoded by specifying one (palletized) solid color for each object described by the JB2-encoded mask.

У 3-слойного DjVu-файла имеется запись "IW44 foreground colors" - а количество цветов не указано (потому что IW44, в отличие от JB2 - это не индексированный формат, и понятие "количество цветов" к нему неприменимо).

В этой статье мы рассмотрим 2 новых метода кодирования малоцветных сканов:

1. Метод разделённых сканов (другое название - Метод manfred'а).

2. Метод Minor'а

Оба этих метода создают 2-слойные DjVu-файлы.

Основной смысл и цель применения этих 2 методов - борьба с Photo- и CLA-артефактами (т.е. визуальными дефектами) - при создании цветных (а также "серых") DjVu-файлов как можно меньшего размера.

Для того, чтобы убедиться, есть ли артефакты, нужно увеличить DjVu-файл до "натурального" размера и рассмотреть его, т.е. DjVu-300 dpi - увеличить до 300% в WinDjView, DjVu-600 dpi - увеличить до 600%, и т.д.


Метод разделённых сканов

Этот метод придумал и впервые осуществил manfred, а довёл до ума Arcand (90-95% информации об этом методе получено от Arcand). Он может быть применён для сканов, содержащих Photo- и CLA-объекты, отделённые (обязательно) друг от друга промежутком в виде белого или цветного фона. К таким сканам относятся следующие типичные случаи:

1. Чёрно-белый текст с цветными Photo-рисунками рядом с текстом. При этом Photo-рисунки обязательно должны быть отделены от текста промежутком в виде белого или цветного фона.

2. Малоцветные сканы без Photo-рисунков. Это 3-х-цветные книги, или цветной текст на белом или цветном фоне, а также текст с малоцветными рисунками плакатного вида. Важно лишь, чтобы общее количество цветов было меньше 4080. Также важно отметить, что, в отличие от 1-го типа сканов, объекты разных цветов могут соприкасаться друг с другом.

3. Гибрид 1 и 2 типа сканов - например, цветной текст с цветными Photo-рисунками, отделёнными от текста промежутком в виде белого или цветного фона.

Описание:

Суть метода в том, что автоматическая сегментация (с использованием documenttodjvu) заменяется ручной (с использованием csepdjvu) - ради полного контроля над созданием DjVu-файла - что позволяет значительно лучше бороться с артефактами (визуальными дефектами) цветного DjVu-кодирования. Метод годится и для "серого" (greyscale) DjVu-кодирования тоже (и ради тех же целей).

Сканы, подлежащих кодированию по этому методу, необходимо предварительно подготавливать: убирать цветной фон, регулировать контрастность, яркость, глубину цвета, уменьшать количество цветов, производить сглаживание и бинаризацию (если надо) - и т.д. и т.п. Смысл этой подготовки в том, что CLA-объекты на "сыром" скане выглядят как Photo-объекты - а нам нужно добиться того, чтобы CLA-объекты "превратились" на скане именно в CLA-объекты. Это довольно сложная и плохо стандартизуемая процедура, мало доступная для начинающих книгосканировщиков. Наиболее просто она осуществляется только для сканов 1-го вида - "Чёрно-белый текст с цветными Photo-рисунками рядом с текстом".

Пользователь вручную отделяет на скане Photo-объекты от CLA-объектов (за счёт промежутка между ними), и создаёт, таким образом, из одного исходного скана 2 новых "субскана" (например, в Adobe PhotoShop) - один с его Photo-объектами, другой - с его CLA-объектами (т.е. если совместить "субсканы" воедино, то получится исходный скан). Эти 2 новых субскана - слои будущего 2-слойного DjVu-файла. Субскан с Photo-объектами ("background-субскан") - это задний фон будущего DjVu-файла, а субскан с CLA-объектами ("foreground-субскан") - это передний план будущего DjVu-файла (т.е. комбинированный слой "foreground + mask").

Далее при помощи Windows-варианта NetPBM-утилит мы кодируем foreground-субскан в формат DjVu Color RLE (утилитой pamtodjvurle) (или в формат DjVu Bitonal RLE - если у нас ЧБ foreground-субскан - тогда утилитой pbmtodjvurle). Вместо утилит pamtodjvurle и pbmtodjvurle настоятельно рекомендуется пользоваться утилитой pnmtodjvurle (прилагается в пакете ниже), которую создал Arcand по подсказке manfred. Дело в том, что pamtodjvurle имеет глюк - она вылетает с ошибкой "Out of memory allocating ...", а pnmtodjvurle от Arcand во-первых, лишена этого недостатка, а во-вторых - она являтся гибридом pamtodjvurle и pbmtodjvurle - т.е. принимает на входе как чёрно-белые, так и цветные *.pbm, *.pgm и *.ppm файлы - а на выходе выдаёт DjVu Color RLE или DjVu Bitonal RLE - в зависимости от цветности входного файла. Однако pnmtodjvurle имеет одну особенность: она принимает файлы только через stdin, а не через командную строку - поэтому файлы на вход туда нужно подавать через команды "|" и "<".

Затем мы кодируем background-субскан в формат PPM (это довольно известный графический формат - в отличие от узкоспециального DjVu Color RLE / DjVu Bitonal RLE).

Наконец, путём конкатенации DjVu RLE и PPM файлов мы получаем т.н. sep-файл, а его подаём на вход csepdjvu и получаем в итоге готовый DjVu-файл.

Sep-файл - это прообраз 2-слойного одно- или многостраничного файла. Описание формата sep-файла можно посмотреть в документации к csepdjvu.

Так выглядит последовательность команд (в WinXP; под Win98 команды будут в досовском формате имён 8.3):

tifftopnm foreground.tif | pnmtodjvurle > foreground.rle
tifftopnm background.tif > background.ppm
copy /b foreground.rle+background.ppm output.sep
csepdjvu output.sep demo.djvu
del foreground.rle background.ppm output.sep

Вместо NetPBM-утилит можно воспользоваться бесплатной программой Irfan View:

start /w i_view32 foreground.tif /convert=temp.pbm
pnmtodjvurle < temp.pbm > foreground.rle
start /w i_view32.exe background.tif /convert=background.ppm
copy /b foreground.rle+background.ppm output.sep
csepdjvu output.sep demo.djvu
del foreground.rle background.ppm output.sep temp.pbm

Тонкости метода:

1. Оба субскана должны быть пропущены через Irfan View (т.е. открыты и сохранены там) - так как NetPBM-утилиты зачастую не понимают TIF-файлы, полученные во многих других программах (Adobe PhotoShop, Corel DRAW, ScanKromsator).

2. У Photo-субскана можно уменьшить разрешение - для экономии размера будущего DjVu-файла.

3. Вместо утилиты csepdjvu можно применить её коммерческий аналог - msepdjvu. Результат будет таким же, но msepdjvu работает немного быстрее и имеет больше опций.

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

Смысл и преимущества метода:

1. Ликвидация JPG-артефактов (т.е. у Photo-объектов - за счёт полного контроля над сегментацией). Когда documenttodjvu кодирует Photo-объекты с профилем Scanned - то зачастую он их сегментирует на background/foreground. Но Photo-объекты НЕЛЬЗЯ сегментировать на слои - их надо целиком отправлять в background - иначе получается уродство.

2. Ликвидация CLA-артефактов (за счёт отказа от documenttodjvu в пользу csepdjvu). Когда documenttodjvu кодирует CLA-объекты, то он (как это и должно быть по смыслу) сам помещает их в foreground. Но возникают артефакты (сведения от Arcand):

Для 3-слойных DjVu-файлов, полученных в documenttodjvu:

а. Область контакта двух цветов на переднем плане может частично уйти в задний фон - с размытием.

б. Между контактирующими на переднем плане цветами возникает пилообразный переход. Переход как бы вымощен квадратиками - очень похоже на артефакт в JPG низкого качества.

Для 2-слойных DjVu-файлов, полученных в documenttodjvu:

в. Контактирующие на переднем плане цвета кодируются одним промежуточным цветом. Вот что сказано по этому поводу в документации к documenttodjvu:

JB2 is most often used to encode bitonal DjVu documents and the mask of three-layer color DjVu documents. However, this method also supports a mode in which colors are associated with text and line drawings, thus combining the mask and foreground into a single layer. This two-layer color DjVu image is created by specifying the jb2-format option on the command line. The two-layer format results in very small file sizes but is unsuitable for images that contain touching foreground colors.

А вот когда csepdjvu кодирует CLA-объекты, то они тоже (как и в случае documenttodjvu) попадают на передний план - но теперь уже лишь потому, что мы так вручную предопределили - по методу разделенных сканов. И никакие артефакты (как 3 перечисленных выше) уже не возникают - цвета могут контактировать на переднем плане совершенно безболезненно. Именно в отсутствии вышеуказанных артефактов и проявляется различие кодёров documenttodjvu и csepdjvu.

3. Снижение разрешения заднего фона. Когда documenttodjvu кодирует Photo-объекты с профилем Photo - то он отправляет их в задний фон с исходным разрешением. А вот когда csepdjvu кодирует Photo-объекты, то он тоже отправляет их в задний фон (по методу разделённых сканов) - но тут мы можем заранее вручную снизить это разрешение, например, в 4 раза (попутно нужно изменить размеры изображения - подробности см. в инструкции к сsepdjvu) - отчего качество страдает несильно, а размер DjVu-файла уменьшается почти в 2 раза.

Недостатки метода:

1. Высокая сложность предварительной подготовки сырых сканов.

2. Нередко сложно сделать вручную правильную и действительно хорошую сегментацию.

3. Надо вручную менять разрешение background-субскана - иначе размер DjVu-файла на выходе может получится больше, чем у него же, но закодированного в documenttodjvu с профилем Photo.

4. Если на скане много CLA-объектов и у них относительно высокая цветность - то размер DjVu-файла на выходе может получится больше, чем у него же, но закодированного в documenttodjvu с профилем Photo.

Скачать Пакет утилит для работы метода разделённых сканов  (474 КБ)  (На базе csepdjvu и NetPBM-утилит)

Скачать Образец DjVu-файла от Arcand   (83 КБ) (Cтраница из японо-английского словаря, закодированная в DjVu по методу разделённых сканов - с предварительной обработкой сырого скана в Corel DRAW).


Утилита msepdjvu

Коммерческая утилита msepdjvu используется в 2 программах:

Утилита msepdjvu - это гибрид csepdjvu и documenttodjvu:


msepdjvu = csepdjvu | documenttodjvu (т.е. эти компоненты работают только попеременно)

 

В каждый отдельный момент времени msepdjvu ведёт себя либо как csepdjvu, либо как documenttodjvu - но не одновременно как обе эти программы. Когда msepdjvu работает как documenttodjvu, то ей можно указать в опциях командной строки профиль кодирования - точно такой же, как и для documenttodjvu.

Обычно msepdjvu ведёт себя точно также, как и сsepdjvu. Чтобы заставить её вести себя как documenttodjvu, надо сделать следующее: по методу разделенных сканов подготавливаем foreground-субскан и background-субскан: в foreground-субскан помещаем чёрно-белый TIF-файл, представляющий из себя чистый белый лист, а в background-субскан помещаем Photo-изображение, подлежащее кодированию. Запускаем msepdjvu с опцией -fgsep. Таким образом получается, что мы дали msepdjvu один лишь только background-субскан (в формате PPM), а далее msepdjvu САМ извлекает из него исходное изображение, сегментирует его на передний план и задний фон, и создаёт из них 2-слойный DjVu-файл. Вот такая довольно изощрённая и неочевидная схема. Видимо, это нужно, когда виртуальный DjVu-принтер (VPD) или Pdftodjvu кодируют в DjVu растровое, а не векторное изображение (векторное сегментируется: у VPD - в утилите EmfToSep*, а у Pdftodjvu - это делает GsDjVu-драйвер).

Какую же именно из 2 утилит - msepdjvu и сsepdjvu - предпочесть для использования в методе разделённых сканов? Есть ли у msepdjvu какое-то реальное преимущество перед сsepdjvu?

В принципе, для работы метода разделённых сканов вполне достаточно использовать csepdjvu. Именно msepdjvu может понадобиться в том случае, когда мы создаём многостраничный DjVu-файл, где только лишь некоторые его страницы создаются по методу разделённых сканов, а остальные - как обычно. Тогда мы помещаем "обычные" страницы в sep-файл в виде background-субскана, а в качестве foreground-субскана вставляем пустой белый лист в формате DjVu Bitonal RLE. А страницы, создаваемые по методу разделённых сканов - как обычно - т.е. в виде 2 полноценных субсканов. Далее запускаем msepdjvu с опцией -fgsep, и он автоматически распознает где какая страница, и сделает сегментацию только там, где надо.

Но это сложный способ - проще и практичней использовать по отдельности csepdjvu и documenttodjvu.

Опции командной строки msepdjvu:

usage: msepdjvu [options] ...sepfiles... <out.djvu>
-l    select lossless mask compression
-j<type>    select mask quality (use invalid type for a list)
-d<xxx>    select page resolution
-h    disable halftone detection
-p<nn>    select the number of pages per dictionary (default 20)
-q<spec>    select c44 background quality (default: 72+11+10+10)
-m<file>    merge comments in <file> with those in <...sepfiles...>
-convlinks    convert *.pdf relative urls into *.djvu
-v, -vv    select verbosity level
-t    restrict text location to lines
-tc    restrict text location to characters
-nosep    suppress white space in the text chunk
-fgsep    do fg-bg separation on image-only pages
-profile <profile-name>    specify a profile for segmentation.
-T<transid>    specify a (hex-encoded) Usage Meter Transaction ID

Each separated files contain one or more pages
Each page is composed of:
(1) a B&W-RLE or Color-RLE image representing the foreground,
(2) an optional PPM image representing the background layer.

Скачать msepdjvu  (601 КБ)


Метод Minor'а

Метод Minor'а применяется только для малоцветных цветных сканов. Он концептуально похож на метод разделённых сканов. Он тоже создаёт 2-слойные DjVu-файлы и тоже требует сложной предварительной подготовки сырых сканов.

Описание:

1. Сканируем цветной малоцветный скан.

2. В полученном TIF-скане делаем максимальную контрастность и загрубляем цветность последовательно до 256, а потом до 16 цветов (сразу до 16 нельзя - будут цветовые искажения).

3. Делаем n копий сканов из п.2, где n - количество цветов.

4. В каждой копии оставить 1 цвет, остальные - убрать и привести близкие к одному, редактируя палитру. В результате получаем "цветовой субскан".

5. Каждый субскан перевести в черно-белый режим;

6. Каждый субскан почистить руками и Despeckle'ом, залить дырки, если надо.

7. Каждому субскану назначить изначальный цвет (из п.4).

8. Совместить субсканы в один (исходный) (как именно это сделать - непонятно).

9. Готовый обработанный скан отправить на DjVu-принтер (VPD). Настройки принтера - дефолтные.

Подробности:

По сути дела, исходный цветной скан превращается в монохроматическое цветное изображение с количеством цветов <= 16 и в таком виде подаётся на VPD. VPD же автоматически сегментирует такой скан - но совсем не так, как documenttodjvu. Малая цветность (4 бита) и чёткие границы между соседними цветами выступают в качестве своеобразной подсказки сегментёру VPD (без этой подсказки метод не работает). При этом цвет, который занимает на скане максимальную площадь, отправляется в задний фон и со сниженным в 3 раза разрешением, а все остальные цвета - попадают на передний план (точнее, в комбинированный слой "foreground + mask").

В результате получаются 2-слойные безартефактные DjVu-файлы (Minor называет их "факсимильные").

Смысл и преимущества метода:

1. Полное отсутствие CLA-артефактов для малоцветных сканов.

2. Отсутствие необходимости в ручной сегментации. Зачастую человеку довольно сложно выполнить действительно хорошую сегментацию (как это требуется в методе разделённых сканов).

3. На выходе получаются DjVu-файлы довольно малого размера - значительно меньше, чем по методу разделённых сканов.

Тонкости метода:

1. Необходимо в настройках VPD выбрать пункт Variable paper size in pixels - и руками ввести высоту и ширину в пикселях кодируемого скана. Иначе по бокам полученного DjVu-файла будут белые полосы.

2. Нужно обязательно привести кодируемый TIF-файл к 4-битному цветовому режиму (можно в Irfan View). Именно в этом вся соль - только 4-битный скан "правильно" сегментируется - а иначе он просто загоняется в задний фон, и изрядно "расплывается" при этом (т.е. возникают JPG-артефакты).

Недостатки метода:

1. Сложность и неавтоматизированность предварительной подготовки сканов.

2. Относительная сложность настройки VPD.

3. Максимально возможное количество цветов - всего лишь 16.

Для примера посмотрите образец цветных обложек книг, сделанных самим Minor'ом:

Обложки от Minor'а  (261 КБ)

Если Вы хотите проверить работоспособность метода Minor'а - декодируйте его обложки в формат TIF, уменьшите глубину цвета полученных TIF-файлов с 24 до 4 бит (иначе метод не сработает), и повторно закодируйте их в DjVu по этому методу.

ВАЖНО: Метод Minor'а НЕЛЬЗЯ применять для цветных обложек (как он это сделал) - ведь цветные обложки книг - это Photo-объекты, а не CLA-объекты - так что у обложек в его примере потеряна "фактура" - "грубая ткань", "тиснёная кожа" и т.п.

Что такое "редактировать палитру"

Обычно цветной скан - 24-битный. В файле после заголовка идёт карта пикселей, где каждый пиксель - это 3 байта - номер красного цвета , номер синего, номер зелёного (все 0-255). То есть пиксели хранятся "живьём". А в малоцветных TIF-файлах в файле находится уже лишь карта указателей плюс "палитра" (в заголовке). Палитра - это просто массив, в котором перечислены все цвета, встречающиеся в изображении. Выводя растр на экран, программа пробегает по карте указателей, и заменяет каждый указатель на соответствующий цвет из палитры. Указатель - это просто номер цвета в палитре, и указатель занимает меньше места, чем 8-ми или 4-х -битный цвет - отсюда экономия. А в 24-битных цветных файлах указатель был бы не меньше, чем сам пиксель - и такая экономия стала бы уже недостижима - поэтому пиксели хранятся там "живьём".

Файл с палитрой (он может быть как цветным, так и серым) называется "индексированный файл" - palletized bitmap. В таком файле достаточно изменить лишь один цвет в палитре - чтобы всюду в изображении соответствующие пиксели также изменили свой цвет. А вот в 24-битном цветном файле для этого пришлось бы пробежать по всем пикселям и явно заменить их цвет.


Сравнение 2 методов

Метод разделённых сканов и метод Minor'а довольно похожи. Они оба создают цветные 2-слойные DjVu-файлы. И они оба создают безартефактные DjVu-файлы - т.е. без каких-либо видимых визуальных дефектов. Но метод разделённых сканов работает одновременно как с Photo-объектами, так и с CLA-объектами (на одном скане) - а метод Minor'а - только с CLA-объектами (на одном скане).

Какой же из этих 2 методов лучше?

Метод разделённых сканов более практичен и проще в применении. Но метод Minor'а зато обеспечивает гораздо бОльший (в разы) процент сжатия итогового DjVu-файла - за счёт того, что в методе разделённых сканов все CLA-объекты попадают на передний план - а в методе Minor'а цвет, занимающий на CLA-объекте максимальную площадь (как бы "фон"), попадает в задний фон.

TIF-файл, декодированный из обложки Minor'a, и закодированный в DjVu методом разделенных сканов, имеет размер 66 КБ. А у Minor'a он же - 19 КБ.

И тем не менее, на мой взгляд, метод разделённых сканов по совокупности достоинств и недостатков "перевешивает" метод Minor'a - т.е. метод разделённых сканов как бы "лучше", чем метод Minor'a.

О возможности автоматизации

Нетрудно увидеть, что оба метода - метод разделённых сканов и метод Minor'a - можно реализовать в некоей самодельной программе по сканобработке. Вручную это можно делать в таких программах, как Adobe PhotoShop или PaintShopPro (как это делает Minor).

Но можно пойти ещё дальше: в принципе, в такой самодельной программе можно ... совместить воедино оба метода - точнее, их достоинства.

Надо лишь добавить к методу разделённых сканов умение метода Minor'a отправлять самый большой по площади монохромный цвет в задний фон плюс автоматическое снижение разрешения и размеров заднего фона.

Для этого пришлось бы создать самодельный примитивный DjVu-сегментёр. Однако, это задача потребовала бы, скорее всего, лишь самых минимальных знаний - из области школьной арифметики, а не высшей математики. Для реализации этой задачи хватило бы возможностей бесплатных утилит типа csepdjvu, c44 и т.д.


Заключение

Оба рассмотренных в статье метода - метод разделённых сканов и метод Minor'a - не подходят для сканов типа "CLA-объекты на Photo-фоне". Обычно это чёрно-белый или цветной текст на фоне многоцветного Photo-изображения.

Для таких сканов нужно использовать documenttodjvu (можно взять либо DEE 5.1, либо DjVu Small + DEE Help) - и пробовать подобрать настройки под конкретный скан. Или, в крайнем случае, использовать DEE Photo (как минимум, 300).

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

Обычным книгосканировщикам не следует использовать эти методы - а обходиться более простыми средствами - например, использовать documenttodjvu с профилем Photo.

Большинство книгосканировщиков сможет реально пользоваться этими 2 методами в единственном случае - если когда-нибудь удастся воплотить их в виде простой и удобной в применении самодельной программы по обработке сканов.

Ссылки:

Technical Papers on DjVu Technology

Инструкция к сsepdjvu

Инструкция к DEE 5.1


Автор: monday2000.

28 ноября 2007 г.

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

Hosted by uCoz