Skip to content

Copy of man page (Russian)

Alexander Trufanov edited this page Jul 8, 2021 · 1 revision

MINIDJVU-MOD(25) minidjvu-mod-0.9m02 MINIDJVU-MOD(25)

NAME

   minidjvu-mod - кодирование и расшифровка монохромных DJVU-страниц

ОБЗОР

   minidjvu-mod  [options] input_file output_file

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

   minidjvu-mod  [options] input_files output_file

   См. ниже раздел МНОГОСТРАНИЧНОЕ КОДИРОВАНИЕ где об этом сказано более подробно.

ОПИСАНИЕ

   minidjvu-mod может кодировать и расшифровывать одностраничные монохромные файлы DjVu.

   Программа minidjvu-mod основана на коде DjVuLibre, базовой библиотеки, обеспечивающей поддержку формата DjVu.

   Кроме монохромных файлов DjVu, minidjvu-mod распознает форматы Windows BMP, PBM и TIFF (с помощью библиотеки libtiff).
   Как исходный, так и результирующий файлы могут иметь формат BMP, PBM, TIFF или DjVu. Формат файла определяется по  его
   расширению. Исходный и результирующий файлы могут совпадать.

   Если  задано  преобразование  из DjVu в DjVu, minidjvu-mod сначала расшифровывает, а затем вновь кодирует изображение.
   При этом содержимое файла DjVu, за исключением текстового слоя, теряется.

   Преобразование одного битового изображения в другое также допустимо, но имеет  некоторый  смысл  только  при  указании
   параметра --smooth.

   Все  параметры  могут  предваряться  как  одним,  так и двумя дефисами.  Это сделано для того, чтобы сделать интерфейс
   MiniDjvu более удобным для пользователей DjVuLibre.

МНОГОСТРАНИЧНОЕ КОДИРОВАНИЕ

   Чтобы активизировать многостраничный режим, нужно указать в  командной  строке  minidjvu-mod  либо  несколько  файлов,
   подлежащих  обработке,  либо  один  многостраничный  документ  tiff. По умолчанию (если не задан параметр --indirect )
   сжатые страницы помещаются в составной многостраничный документ под тем  именем,  которое  было  указано  в  командной
   строке.

   Некоторые  из  параметров  minidjvu-mod  (  --pages-per-dict,  --indirect,  --Classifier  и  --report  ) предназначены
   специально для контроля работы программы в многостраничном режиме.

ПАРАМЕТРЫ

   -A

   --Averaging
          Вычислять усредненные варианты представления символов, для которых обнаружено соответствию образцу.

          Данный параметр активируется при указании --lossy.

   -a n

   --aggression n
          Задает уровень "агрессии" для сопоставления образцов. Чем  выше  агрессия,  тем  меньше  размер  файла  и  выше
          вероятность  ошибочных  подстановок.  По  умолчанию  используется  значение 100. Обычно его можно с большей или
          меньшей уверенностью увеличить примерно до 110. Скорее всего, даже 200 даст вполне подходящий результат, но  на
          это не стоит полагаться.

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

          Данный параметр автоматически активирует параметр --match.

   -C n

   --Classifier n
          Устанавливает режим классификатора (по-умолчанию - 3). 1 - классификатор ведет  себя  аналогично  оригинальному
          классификатору  кодировщика  minidjvu.  2  -  классификатор  предпринимает дополнительные усилия для достижения
          лучшей оптимизации словаря. Этот режим требует больше времени CPU и намного больше  памяти  RAM  (для  хранения
          кэша,  выделяемого  каждому  потоку обработки). 3 - режим похожий на 2, но требующий еще больше времени CPU для
          достижения максимального уровня оптимизации словарей документа (объем потребления RAM такой же, как в 2).

          БУДЬТЕ ОСТОРОЖНЫ в использовании режимов 2 и 3, т.к.  они  способны  замедлить  работу  вашего  компьютера  или
          исчерпать  всю доступную память RAM. Вы можете уменьшить число параллельных потоков (меньше кэшей) для экономии
          RAM ценой роста времени обработки. Или уменьшить число страниц на словарь  (кэш  меньше)  ценой  роста  размера
          файла документа (не рекомендуется).

   -c

   --clean
          Удалять  небольшие  черные  пятна,  которые, скорее всего, представляют собой шум.  Этот алгоритм может оказать
          разрушительное действие на полутоновые картинки, поэтому его следует применять с осторожностью.

          Данный параметр активируется при указании --lossy.

   -d n

   --dpi n
          Указать разрешение изображения в точках на дюйм. Разрешение оказывает влияние на работу некоторых алгоритмов, а
          при записи файлов DjVu и BMP (поддержка формата TIFF должна быть добавлена в будущем) сохраняется в них.

   -e

   --erosion
          Пожертвовать  качеством  изображения  для того, чтобы выиграть 5-10% объема файла.  Одиночное применение эрозии
          практически незаметно, но 10 таких случаев в  одной  строке  могут  сильно  испортить  изображение,  причем,  к
          сожалению,  это  всё  равно  не  даст  слишком  большого  выигрыша  в  размере. Бонус за эрозию начисляется при
          сопоставлении образцов.

          Использование эрозии не имеет смысла, если вывод осуществляется не в формат DjVu.

          Данный параметр активируется при указании --lossy.

   -i

   --indirect

          Этот параметр может использоваться в многостраничном режиме: его указание заставляет minidjvu-mod создавать  на
          выходе   документ   DjVu  indirect.   Такие  документы  состоят  из  индексного  файла,  некоторого  количества
          одностраничных документов (по одному на каждое изображение, указанное на входе),  а  также  файлов,  содержащих
          разделяемые  словари.  Обратите  внимание, что индексному файлу присваивается имя, указанное в командной строке
          для результирующего документа, в то время как отдельные страницы сохраняются под именами исходных изображений с
          заменой расширения на djvu.

          Данный  режим может быть полезен для больших документов, которые планируется разместить на Web-сервере, а также
          если планируется последующая обработка созданных файлов (например, с целью добавления фоновых изображений).   В
          последнем  случае вы можете затем воспользоваться утилитой djvmcvt из поставки DjVuLibre, чтобы сконвертировать
          документ в формат DjVu bundled.

   -j

   --jb2  Сохранять страницы документа как  чанки  jb2  вместо  djvu.  Используется  в  случае  необходимости  дальнейшей
          постобработки jb2 чанков.  Применим только в режиме --indirect

   -l

   --lossy
          Активировать  все  параметры,  отвечающие  за  сжатие  с потерями. Это равнозначно указанию --Averaging --clean
          --erosion --match --smooth.

   -m

   --match
          Запустить сопоставление образцов. Это основной метод, служащий  для  уменьшения  размера  файла,  но  он  может
          привести   к  проблемам  из-за  ошибок  подстановки.  Используйте  параметр  --aggression,  чтобы  регулировать
          соотношение между размером файла и возможностью возникновения ошибок.

          Данный параметр активируется при указании --lossy или --aggression.

   -n

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

   -p

   --pages-per-dict
          Указывает,  сколько страниц следует сжимать за один проход. Значение по умолчанию - 10. При указании значения 0
          ( -p 0 ) minidjvu-mod попытается обработать все страницы сразу, однако следует иметь в виду, что такая операция
          может потребовать очень много памяти, особенно на больших по объему книгах.

   -r

   --report
          Выводить  подробные сообщения о ходе обработки каждой страницы в многостраничном режиме. Это полезно только для
          того, чтобы скрасить долгое ожидание в процессе сжатия книги.

   -s

   --smooth
          Отключить некоторые пиксели, которые, по всей вероятности, представляют собой шум. Это позволяет выиграть около
          5% размера файла. Внешний вид изображения слегка улучшается, но это малозаметно.

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

          Данный параметр активируется при указании --lossy.

   -S settings-file
          Считать параметры кодирования из файла "settings-file". В этом случае многие параметры командной  строки  могут
          быть переопределены. Формат файла настроек описывается в следующем разделе.

   -t n

   --threads-max n
          Обрабатывать  страницы,  принадлежащие  разным  разделяемым  словарям в не более чем N параллельных потоках (по
          словарю на поток). По умолчанию N равно числу ядер CPU, если их 1 или 2, или числу ядер CPU минус 1 в противном
          случае.

          Укажите  "-t 1" для отключения многопоточности.  Для включения этой опции кодировщик должен быть скомпиллирован
          с поддержкой OpenMP.

   -u

   --unbuffered
          Не использовать буферизацию при выводе данных в консоль. Удобен для точного отслеживания прогресса обработки  в
          связке с параметром -r.

   -v

   --verbose
          Выводить сообщения о разных стадиях обработки. Они не особенно полезны, но не лишены некоторого интереса.

   -X  ext

   --Xtension  ext
          Задает  расширение,  которое  minidjvu-mod  будет  использовать  для  файлов,  содержащих  разделяемые  словари
          (начальную точку указывать не нужно).  Значение по умолчанию "iff".

   -w

   --warnings
          Не подавлять предупреждения библиотеки libtiff. По умолчанию такое подавление включено. Дело  в  том,  что  под
          Windows  стандартный  обработчик  предупреждений  TIFF  выводит  их  в виде диалогового окна с сообщением, что,
          конечно, неприемлемо при обработке в пакетном режиме.

ФОРМАТ ФАЙЛА НАСТРОЕК

   Этот раздел описывает формат файла, который может быть передан с параметром -S для точной  настройки  всех  параметров
   кодирования.  Формат  предполагает  достаточно  много  текста  и  предполагается, что такой файл будет составляться не
   пользователем вручную, а неким GUI приложением с поддержкой такой функции. В частности, текущий формат  составлен  для
   нужд проекта ScanTailor Universal ver. 0.3.0+
    Идейно  формат  файла настроек вдохновлен форматом установки содержания DjVu документа в приложении djvused из пакета
   DjVuLibre

   Файл настроек должен содержать выражения в скобках следующего вида: ( значения )

   Символы табуляции и новой строки расцениваются как пробелы. Значение может само являться выражением  в  скобках,  т.е.
   поддерживаются  вложенные  друг в друга выражения.  Каждое значение может быть словом или числом. Если значение должно
   содержать несколько слов, оно заключается в кавычки ("").  Первое встреченное значение в выражении считается его id

   Приложение понимает следующие id: options, input-files, djbz, default-djbz, default-image, files, file, image

   Первые 3 из них являются выражениями высокого уровня, остальные встречаются только  во  вложенных  в  них  выражениях.
   Значения  следующие  за  id  (за  исключением  вложенных  выражений)  интерпретируются  как  аргументы, либо как имена
   параметров, за которым ожидается его аргумент. После имени параметра всегда ожидается аргумент (иногда 2).

   Если значение начинается с символа # - оно и всё  до  конца  строки  считается  комментарием.  Комментарии  программой
   игнорируются.

   Давайте рассмотрим выражения высшего уровня:

   options

   Содержит  настройки  приложения  (в  основном  те же, что могут передаваться через командную строку), а также значения
   параметров по-умолчанию для обработки изображений и кодирования разделяемых словарей. В файле может содержаться только
   одно выражение с id "options". Пример:

          (options              # настроки приложения и значений по умолчанию

           (default-djbz        # настройки по-умолчанию для разделяемых djbz словарей
             averaging     0    # averaging по-умолчанию (выкл.)
             aggression    100  # уровень aggression по-умолчанию (100)
             classifier    3    # режим классификатора по-умолчанию (макс. оптимизация)
             erosion       0    # erosion по-умолчанию (выкл.)
             no-prototypes 0    # использование по-умолчанию прототипов при кодировании (вкл.)
             xtension      djbz # расширение идентификатора словаря в документе по-умолчанию ("djbz")
           )

           (default-image       # настройки обработки изображения по-умолчанию

             #dpi           300 # если задано, то использовать это значение dpi для кодирования
                                # изображений, в том случае, если для конкретного изображения
                                # в файле настроек не указано другое.
                                # Если dpi по-умолчанию не задан, то используется значение,
                                # содержащееся в самом в файле изображения. И 300 dpi, если его нет.

             smooth       0     # по-умолчанию сглаживать изображение перед обработкой (выкл.)
             clean        0     # по-умолчанию очищать от мусора изображение после обработки (выкл.)
             erosion      0     # по-умолчанию применять erosion после обработки (выкл.)
           )

           indirect       0     # сохранять документ (многостраничный) в режиме indirect (выкл.)
           #lossy          1    # если указан, отключает или включает следующие опции:
                                # default-djbz::erosion, default-djbz::averaging
                                # default-image::smooth, default-image::clean

           match          1    # аналогичен -m
           pages-per-dict 10   # Изображения, явно не назначенные какому-то общему словарю,
                               # распределяются по автомотически создаваемым словарям.
                               # Эти словари содержат до 10 (по умолчанию) страниц.

           report         0    # выводить информацию о прогрессе обработки в консоль
           #threads-max   2    # если задан, использовать максимум N потоков для обработки
                               # (каждый поток обрабатывает страницы одного словаря).
           verbose        1    # печатать подробности хода выполнения в консоль
           warnings       1    # печатать предупреждения libtiff в консоль )

   input-files

   Содержит  список  обрабатываемых  файлов изображений. Каждый файл может быть представлен в этом списке либо абсолютным
   путем к нему с его именем, либо одним или несколькими (в случае многостраничного файла) вложенными  выражениями  с  id
   "file".  Порядок  файлов в списке определяет порядок страниц в результирующем документа. Только одно выражение "input-
   files" может быть задано в файле настроек. Пример:

          (input-files       # Содержит список обрабатываемых файлов изображений
                             # Порядок соответствует порядку страниц в документе.
                             # Многостраничные tiff'ы воспринимаются как множество отдельных tiff файлов.

           path/file1        # Полное имя файла изображения. Будет использовать настройки по-умолчанию,
                             # либо их переопределения заданные в выражении options.
           "path 2/file2"    # Это имя файла в кавычках, т.к. содержит символ пробела в пути.

           (file             # Вложенное выражение используется для третьего файла
                             # чтобы переопределить для него настройки по умолчанию

             path/file3      # полный путь к файлу третьего изображения
             (image          # выражение image содержит настройки обработки изображения
               smooth   0
               clean    0
               # и т.д. как описано в выражении "default-image"

               #virtual 600 800   # если такой параметр присутствует для изображения
                             # Оно не будет считываться из файловой системы. Вместо того,
                             # пустая страница с шириной 600 и высотой 800  будет создана в
                             # документе. Это несколько быстрее, чем передача кодировщику
                             # файлов пустых изображений.
             )

             # Следующие параметры могут быть указаны для обращению к одной или подмножеству
             # изображений в многостраничном (tiff) файле изображений
             page       0    # если файл многостраничный, использовать страницу 0
             page-start 0    # если файл многостраничный, использовать страницу от 0 до page-end
             page-end   3    # если файл многостраничный, использовать страницу от page-start до 3
            )

           # и т.д. для остальных файлов. Просто введите путь к ним, если настройки обработки
           # изображений по умолчанию вас устраивают, либо заключите путь в выражение file
           # для перезадания настроек или обращения к отдельным страницам многостраничного
           # изображения )

   djbz

   Описывает содержимое одного общего словаря и настройки для  его  создания.  В  файле  настроек  может  быть  несколько
   выражений  с  id  "djbz".  Файлы,  на  которые ссылается "djbz" должны также присутствовать в выражении "input-files".
   Пример:

           (djbz             # Содержит список файлов, принадлежащих одному общему словарю
                             # и его настройки.
             id         0001 # Обязательный ID словаря в документе. Должен быть уникален.
                             # Не обязательно, чтобы это было число.
                             # Расширение будет добавлено к этому значению.

             xtension   iff  # Переопределяет расширение (по-умолчанию, "djbz")
                             # в результате id словаря в документе будет "0001.iff"
             averaging  0    # переопределяет default-djbz averaging (0)
             aggression 100  # переопределяет default-djbz aggression (100)
             classifier 3    # переопределяет default-djbz classifier used to encode this block
             no-prototypes 0 # переопределяет default-djbz no-prototypes
             erosion       0 # переопределяет default-djbz erosion символов в общем словаре
                             # (который по существу также является jb2 изображением)
             (files          # список файлов изображений, которые нужно включить в этот словарь
                             # файлы ДОЛЖНЫ быть заранее объявлены в (input-files ...)
                             # содержимое аналогично (input-files ...),
                             # но выражения (file ...) в (files ...) не должно содержать
                             # параметров (image ...) т.к. они уже есть в (input-files ...)

               path/file1
               (file
                path/file2
                ...
               )
             )
             ...
            )

   Замечание: изображения, упомянутые в "input-files", но не отнесенные явно к какому  либо  из  общих  словарей  "djbz",
   будут распределены между автоматически созданными общими словарями в соответствии с параметром options:pages-per-dict.
   Такие словари будут использовать значения  по-умолчанию  с  учетом  их  переопределения  в  выражении  "default-djbz".
   Уникальные id таких словарей будут сгенерированы автоматически.

   Т.о. в общем виде файл настроек должен выглядеть как:

           (options
               # некоторые параметры приложения и переопределения параметров по-умолчанию
           )

           (input-files
               # список ВСЕХ изображений, которые должны быть включены в документ
           )

           (djbz
               # первый общий словарь
           )

           (djbz
               # второй общий словарь
           )

           # и т.д.

   Вот и всё.

ОШИБКИ

   Многостраничное кодирование работает неправильно, если страницы имеют разные разрешения.

minidjvu-mod-0.9m02 June 2021 MINIDJVU-MOD(25)