Автор Тема: Как закодирован файл (в DjVu)?  (Прочитано 23543 раз)

sergiokapone

  • Постоялец
  • ***
  • Сообщений: 103
    • Просмотр профиля
Re: Как закодирован файл (в DjVu)?
« Ответ #15 : 09 ёоЭм 2011, 21:30:18 »
Я точки на сером фоне точки специально оставил, мне показалось что так красивее, хотя в некоторых вариантах и убирал полностью.
Основная проблема сейчас для меня - это работа в Фотошопе, у меня нехватает практики.  Кое-что уже научился, читая интернет. Сканы я пытаюсь готовить по методу Минора, правда в фотошопе, и затруднения вызывают два пункта:
Цитировать
7. Каждому субскану назначить изначальный цвет (из п.4).
8. Совместить субсканы в один (исходный) (как именно это сделать - непонятно).
С п. 8. еще можно справится используя слои, а вот п.7. ... Не пойму как можно битовому изображению назначить цвет. Я ч/б перевожу в RGB и потом раскрашиваю, т.к. не все участки тщательно раскрасил, или это из-за режима RGB (не знаю) у меня на выходе получилось все-таки многоцветное изображение, благо что утилиты его поместили в foreground.
Может подскажете как черно-белое изображение (битовый формат) толком раскрасить, а то уже второй день ищу в нете, глаза красные?

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Как закодирован файл (в DjVu)?
« Ответ #16 : 09 ёоЭм 2011, 22:53:16 »
sergiokapone
Точки создают значительное увеличение размера djvu, т.к. практически не сжимаются.

Насчет 7 и 8 пунктов, речь, по-видимому идет о том, чтобы собрать все в один скан с общей палитрой. В ST Separator недавно ввел режим объединения одно-двухцветных малоцветных сканов, в один с общей палитрой. Но там условие для входных файлов - должны быть задействованы именно второй и, может быть, третий цвета 256цветной палитры (первый и последний цвета зарезервированы за черным и белым цветом). Такие сканы получаются после раскраской Сепаратором.

К сожалению, приведенный пример не особенно удобен для обработки СТ Сепаратором, его конек - раскраска текста.
Поэтому цветной текст (который в вашем djvu стал черным) он закрасил без проблем.
Результат получился такой.

Правда, FSD почему-то криво его задежавюшил, заменив цвета.
Причем, и csepdjvu и msepdjvu. Похоже, что проблема именно в объединенной палитре... Причем эффект похож на если бы некоторые цвета были инвертированными.

yuree

  • Постоялец
  • ***
  • Сообщений: 172
    • Просмотр профиля
    • E-mail
Re: Как закодирован файл (в DjVu)?
« Ответ #17 : 10 ёоЭм 2011, 00:57:22 »
Уважаемые! Может мне кто-то пояснит, зачем все эти танцы с бубном?
В том, что конечный файл будет весить на пару сотен килобайт меньше или ещё чего?
Проясните пожалуйста :)

sergiokapone

  • Постоялец
  • ***
  • Сообщений: 103
    • Просмотр профиля
Re: Как закодирован файл (в DjVu)?
« Ответ #18 : 10 ёоЭм 2011, 00:59:04 »
sergiokapone
Точки создают значительное увеличение размера djvu, т.к. практически не сжимаются.

Насчет 7 и 8 пунктов, речь, по-видимому идет о том, чтобы собрать все в один скан с общей палитрой. В ST Separator недавно ввел режим объединения одно-двухцветных малоцветных сканов, в один с общей палитрой. Но там условие для входных файлов - должны быть задействованы именно второй и, может быть, третий цвета 256цветной палитры (первый и последний цвета зарезервированы за черным и белым цветом). Такие сканы получаются после раскраской Сепаратором.

К сожалению, приведенный пример не особенно удобен для обработки СТ Сепаратором, его конек - раскраска текста.
Поэтому цветной текст (который в вашем djvu стал черным) он закрасил без проблем.
Результат получился такой.

Правда, FSD почему-то криво его задежавюшил, заменив цвета.
Причем, и csepdjvu и msepdjvu. Похоже, что проблема именно в объединенной палитре... Причем эффект похож на если бы некоторые цвета были инвертированными.


Уже разобрался с п.7.
С Сепаратором еще не совсем разобрался, попробовал, но получил окрашенный текст (весь).
Нашел как фотошопе уменьшать цвета в палитре, уменьшил до нужного количества. Через FSD тоже не получил нужного результата, поэтому сделал перегонкой через *.rle *.ppm .  Вот результат
 и еще нюанс, хотел закрасить строку колонтитула книги программой DjVu sep 1.3, так она мне перелила часть цвета на верхнюю часть рисунка, поэтому раскраску колонтитула тоже пришлось сделать в фотошопе.
как-нибудь еще надо будет поюзать возможности Сепаратора.

sergiokapone

  • Постоялец
  • ***
  • Сообщений: 103
    • Просмотр профиля
Re: Как закодирован файл (в DjVu)?
« Ответ #19 : 10 ёоЭм 2011, 01:01:05 »
Уважаемые! Может мне кто-то пояснит, зачем все эти танцы с бубном?
В том, что конечный файл будет весить на пару сотен килобайт меньше или ещё чего?
Проясните пожалуйста :)

Все дело в искустве  ;) . А несомненная практическая выгода - это уже вторично. Мне кажется, что на выходе файл может быт примерно в три раза меньшим.

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Как закодирован файл (в DjVu)?
« Ответ #20 : 10 ёоЭм 2011, 05:38:24 »
Если вручную, то я колонтитулы закрашиваю через Djvu Pal, а не Djvu Sep. Но вручную - уже не интересно ) Разве только если всего пара колонтитулов на книгу.

А результат у Вас отличный получился, впечатлен. Кто разбирается - может оценить.
Особо впечатлил четкий контур концов стрелок на фоне серого. Ведь в оригинале вообще не скажешь толком, что там за цвет и где у него граница.

Однако пропали плюсы и минусы возле обкладок конденсатора. Теряюсь в догадках - куда?

Самое главное - каков при этом масштаб ручной работы и можно ли ее как-либо автоматизировать?

А насчет танцев с бубнами - дело даже не в размере. Цель обработки - получить результат, максимально близкий к оригинал-макету, в данном случае трехцветному, с минимальными  трудозатратами. Тем и занимаемся. А минимальный размер - это уже приятный побочный эффект )

Кстати, понравился файл _acp. Из него простой постеризацией удалось получить вполне удовлетворительный результат. Правда GIMP упорно считал, что в трехцветной постеризации должно быть 6 цветов, половину пришлось удалять вручную.
« Последнее редактирование: 10 ёоЭм 2011, 06:07:46 от 57an »

nbl

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Как закодирован файл (в DjVu)?
« Ответ #21 : 10 ёоЭм 2011, 12:17:31 »
Обработку делал вручную в Фотошопе. Кодировал при помощи NetPbm+csepdjvu. Черед DS (documenttodjvu) никак не получалось, цвет выпадал в задний фон. Если, конечно и есть возможность закодировать нормально через DS, то эта возможность ну очень сильно запрятана.
Попробуйте вместо "DjVu Small" программу "DjVu Sep v2.3". Вот она точно должна закодировать, как вам надо. Правда, ее тут все хоронят, в том числе и автор :)

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Как закодирован файл (в DjVu)?
« Ответ #22 : 11 ёоЭм 2011, 11:52:18 »
nbl
А разве Djvu Sep кодирует малоцвет? Можете ею закодировать один из приведенных выше сканов?

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Как закодирован файл (в DjVu)?
« Ответ #23 : 11 ёоЭм 2011, 12:36:38 »
Загнал свои выложенные выше сканы в СТ - он тоже их отобразил некорректно (как в закодированном djvu).

Корректно и закодировать в FSD и посмотреть в СТ получилось после преобразования палитры из 256-цветную в 16-цветную. В описании метода Минора об этом написано.

sergiokapone

  • Постоялец
  • ***
  • Сообщений: 103
    • Просмотр профиля
Re: Как закодирован файл (в DjVu)?
« Ответ #24 : 11 ёоЭм 2011, 16:56:25 »
Если вручную, то я колонтитулы закрашиваю через Djvu Pal, а не Djvu Sep.
Да, конечно, это очепятка.

А результат у Вас отличный получился, впечатлен. Кто разбирается - может оценить.
Особо впечатлил четкий контур концов стрелок на фоне серого. Ведь в оригинале вообще не скажешь толком, что там за цвет и где у него граница.
Однако пропали плюсы и минусы возле обкладок конденсатора. Теряюсь в догадках - куда?
Самое главное - каков при этом масштаб ручной работы и можно ли ее как-либо автоматизировать?

В общем, конечно же, ручной работы было много. Об автоматизации речь тут не идет, поэтому я собственно пока забросил эту книгу. Я расшил книгу. Думаю на ней тренироватся и довести до ума. Примеры страниц тут

1. Прогнал через СТ
2. С помощью Сепаратора разделил рисунки и текст.
3. Далее с помощью программы XnView пакетно перегоняю sep-картинки последовательно в Индексированные цвета (на выходе получаю файлы 16 цветов)
4. Далее редактирую палитру и сохраняю ее в файл  и вручную открываю файлы с картинками и применяю палитру ко всем файлам (вручную, потому что не знаю как в XnView или в чем другом эту процедуру можно автоматизировать)
5. Получаю малоцветные sep-файлы.
6. Далее думаю как пакетно их можно наложить, чтобы из двух файлов *.sep.tif и *.tif  получить одну tif-картинку....

Можно, конечно, не отделяя картинки от текста делать малоцвет, но, как мне показалось, это влияет на качество текста, при корректировке яркость-контраст. Я так уже делал через FSD, но файл вышел все равно внушительных размеров, наверное  из-за большого числа спеклов. Т.е., еще много ручной работы по заливке белых точек на изображении.


« Последнее редактирование: 11 ёоЭм 2011, 17:06:01 от sergiokapone »

yuree

  • Постоялец
  • ***
  • Сообщений: 172
    • Просмотр профиля
    • E-mail
Re: Как закодирован файл (в DjVu)?
« Ответ #25 : 11 ёоЭм 2011, 19:02:22 »
В общем, конечно же, ручной работы было много. Об автоматизации речь тут не идет, поэтому я собственно пока забросил эту книгу. Я расшил книгу. Думаю на ней тренироватся и довести до ума. Примеры страниц тут

1. Прогнал через СТ
2. С помощью Сепаратора разделил рисунки и текст.
3. Далее с помощью программы XnView пакетно перегоняю sep-картинки последовательно в Индексированные цвета (на выходе получаю файлы 16 цветов)
4. Далее редактирую палитру и сохраняю ее в файл  и вручную открываю файлы с картинками и применяю палитру ко всем файлам (вручную, потому что не знаю как в XnView или в чем другом эту процедуру можно автоматизировать)

В Фотошопе можно всё это автоматизировать. Только надо экшэн писать. Ничего сложного, знания компьютерных языков от Вас не потребуется.

5. Получаю малоцветные sep-файлы.
6. Далее думаю как пакетно их можно наложить, чтобы из двух файлов *.sep.tif и *.tif  получить одну tif-картинку....

А DjVu Imager для этих целей не подойдёт?
Только я не помню, надо в TIFF'ы LZW кодирование ставить, ("и в сепы и в текстовые") или оставить несжатыми? Вроде, когда в LZW сохраняешь то глюков от DjVu Imager'а я не встречал ::)
Впрочем, надо повторить.

Можно, конечно, не отделяя картинки от текста делать малоцвет, но, как мне показалось, это влияет на качество текста, при корректировке яркость-контраст. Я так уже делал через FSD, но файл вышел все равно внушительных размеров, наверное  из-за большого числа спеклов. Т.е., еще много ручной работы по заливке белых точек на изображении.

Ваша правда.

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Как закодирован файл (в DjVu)?
« Ответ #26 : 11 ёоЭм 2011, 19:33:35 »
На пробу взял 30 страниц и закрасил маску Сепаратором. Получилось на удивление классно. Особенно порадовало то, что опция раскраски фона, которая в общем-то делалась исходя из других соображений, прекрасно залила белый мусор на цветных областях и подстраховала на 20й странице, где бинаризатор СТ оставил только лица, а цветной прямоугольник забелил.
Просматриваемая на некоторых страницах цветная рамка получилась от границ страниц вследствие выключенной опции белые поля при выводе в режиме цветной/серый. Просто лень было переделывать.

Результат обработки
« Последнее редактирование: 11 ёоЭм 2011, 19:36:24 от 57an »

sergiokapone

  • Постоялец
  • ***
  • Сообщений: 103
    • Просмотр профиля
Re: Как закодирован файл (в DjVu)?
« Ответ #27 : 11 ёоЭм 2011, 21:33:08 »
На пробу взял 30 страниц и закрасил маску Сепаратором. Получилось на удивление классно. Особенно порадовало то, что опция раскраски фона, которая в общем-то делалась исходя из других соображений, прекрасно залила белый мусор на цветных областях и подстраховала на 20й странице, где бинаризатор СТ оставил только лица, а цветной прямоугольник забелил.
Просматриваемая на некоторых страницах цветная рамка получилась от границ страниц вследствие выключенной опции белые поля при выводе в режиме цветной/серый. Просто лень было переделывать.

Результат обработки

Да, результаты впечетляют. Я попытался тоже сегодня сделать раскраску Сепаратором, но он у мен пару раз вылетел, я пока не разобрался в причине. А вы можете набросать алгоритм, или это все то же что и в хелпе?
Вот результат моей кропотливой работы, осилит только 27 страниц пока.

В Фотошопе можно всё это автоматизировать.

Основная проблема - это редактирование палитры цветов. Сейчас я пакетно переганяю НЕотсепарированные файлы в 16 цветов. получается так, что те страницы где есть рисунок (практически каждая) заливаются фоном, чуть отличимым от белого, а это не хорошо, так как при просмотре djvu  в режиме ч/б, вся страница будет черной, поэтому в редакторе палитры его нужно заменять на белый, ну и еще добиватся чтобы по возможности было только три цвета (ч, б, синий). Не беда если цвета эти стоят в палитре на тех же местах, но .... , у от файла к файлу цвет фона на в разных местах (чего, кстати, нету у отсепарированных).
Я думю можно автоматизировать так:
Отсепарированные файлы
1. перегнать в 256 цветов
2. Фильтр Blur (опции нужно подбирать)
3. перегнать в 16 цветов
4. Редактировать палитру
5. применить палитру ко всем файлам
------
6. Слить файл с ч/б текстом с соответствующим sep-файлом.
7. Залить оставшиеся дыры, деспекл.


А DjVu Imager для этих целей не подойдёт?

Может и подойдет, только я не знаю какие опции заставят его кодировать в foreground. По умолчанию он цветной рисунок бросает в background, что неинтересно. В принципе, я хоть сейчас могу сделать через DI, но это будет не то, к тому же файл большой выдет.



57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Как закодирован файл (в DjVu)?
« Ответ #28 : 11 ёоЭм 2011, 22:12:13 »
Алгоритм как в руководстве. Прогнал 2 раза - в черно-белом и цветном. Выделил прямоугольный синий участок на одной из картинок, вставил его в образец и для символов и для фона. Оставил для результата усредненный цвет образца, вручную другой цвет задавать не стал. Галки однотонной раскраски символов и удаления соринок фона оставил снятыми (установка галки раскраски символов улучшила бы ситуацию с раскраской заголовков, но для этого их пришлось бы вручную переместить в отдельный набор папок). Пороги оба оставил по 5%. И разделил.
Кстати, по итогам сегодняшней работы обновил версию Сепаратора, добавил возможность отмены операции. Часто было нужно - когда уже по первым сканам результата видно, что требуется корректировка параметров или замена образца.

Посмотрел Вашу версию. К сожалению наряду с очень хорошо обработанными попадаются явно неудачные картинки. Не закрашены некоторые заголовки. На 12 странице мелкие окружности посинели, хотя в оригинале были черными. На 10й отличные крупные синие детали привели к посинению мужика с бутылкой (хотя это и логично )))) ).

Для надежности выделения образца в редакторе можно использовать промежуточное действие - предварительное наложение на цветную картинку отдельного слоя с аналогичной черно-белой с заменой черного цвета на прозрачный и последующим объединением слоев. Тогда (с учетом того, что Сепаратор игнорирует при анализе образца чистые белый и черный цвета) можно выделять бОльшие куски не боясь захватить лишнего.
« Последнее редактирование: 11 ёоЭм 2011, 22:22:44 от 57an »

sergiokapone

  • Постоялец
  • ***
  • Сообщений: 103
    • Просмотр профиля
Re: Как закодирован файл (в DjVu)?
« Ответ #29 : 11 ёоЭм 2011, 22:50:17 »
Спасибо за новую версию Сепаратора. Я тоже, наконец-то, получил раскрашенную картинку, правда страница 20 (с лицами Майкельсона и Морли) не получилась, слишком много белых областей. Но все равно, это сильно упрощает работу.

Посмотрел Вашу версию. К сожалению наряду с очень хорошо обработанными попадаются явно неудачные картинки. Не закрашены некоторые заголовки. На 12 странице мелкие окружности посинели, хотя в оригинале были черными. На 10й отличные крупные синие детали привели к посинению мужика с бутылкой (хотя это и логично )))) ).

Да, я тоже видел эти огрехи, но цвета в 8-ми цветной палитре оказались общими для окружностей.
Для надежности выделения образца в редакторе можно использовать промежуточное действие - предварительное наложение на цветную картинку отдельного слоя с аналогичной черно-белой с заменой черного цвета на прозрачный и последующим объединением слоев. Тогда (с учетом того, что Сепаратор игнорирует при анализе образца чистые белый и черный цвета) можно выделять бОльшие куски не боясь захватить лишнего.
Попробую.