# didjvu manual

didjvu

1 &version;

didjvu

DjVu encoder with foreground/background separation

            didjvu separate

                    -o
                    --output

                output-mask

            option
            input-image

            didjvu separate

                --output-template
                name-template

            option
            input-image

            didjvu encode

                    -o
                    --output

                output-djvu

            option
            input-image

            didjvu encode

                --output-template
                name-template

            option
            input-image

            didjvu bundle

                    -o
                    --output

                output-djvu

            option
            input-image

            didjvu

                --version
                --help
                -h

## Description

`didjvu` uses the Gamera framework to separate foreground/background layers, which can be then encoded into a DjVu file.

`didjvu separate` generates images mask(s) for the supplied input image(s). Masks are saved in the PNG format.

`didjvu encode` converts the supplied input image(s) to single-page DjVu documents(s).

`didjvu bundle` converts the supplied input image(s) to a bundled multi-page DjVu document.

## Options

`didjvu` accepts the following options:

### Input, output

`-o`

`--output=``output-djvu```

- Generate a bundled multi-page document. Write the file into ``output-djvu`` file instead of standard output.

  For `separate` and `encode` commands, this option is allowed only if there is exactly one input file (i.e. exactly one output file).

`--output-template=`template``

- Specifies the naming scheme for output files for the `separate` and `encode` commands. Please consult the template-language.title section for the template language description.

  This option is mandatory if there is more than one input file (i.e. more than one output file).

`--page-id-template=`template``

- Specifies the naming scheme for page identifiers for the `bundle` command. Please consult the template-language.title section for the template language description. The default template is `{base-ext}.djvu`.

  For portability reasons, page identifiers:

  - must consist only of lowercase ASCII letters, digits, `_`, `+`, `-` and dot,

  - cannot start with a `+`, `-` or a dot,

  - cannot contain two consecutive dots,

  - must end with the `.djvu` extension.

### Masks

`--loss-level=`n``

- Specifies the aggressiveness of the lossy compression for the `separate` and `encode` commands. The default is 0 (lossless). Valid values are integers between 0 and 200, inclusive.

  This option is similar to the `-losslevel` option of `cjb2`; please consult the

  cjb2

  1 manual page for details.

`--lossless`

- Synonym for `--loss-level=0`.

`--clean`

- Synonym for `--loss-level=1`.

`--lossy`

- Synonym for `--loss-level=100`.

`-m`

`--method=`method``

- Use the selected method to generate image mask (i.e. separate foreground from background). The following methods should be available:

  `abutaleb`

- Abutaleb locally-adaptive thresholding algorithm

`bernsen`

- Bernsen thresholding algorithm

`brink`

- Brink and Pendock's minimum-cross entropy method

  this method requires Gamera ≥ 3.4.0

`djvu`

- DjVu thresholding algorithm

`global`

- splitting along a global threshold value

`niblack`

- Niblack adaptive thresholding algorithm

`otsu`

- Otsu thresholding algorithm

`sauvola`

- Sauvola adaptive thresholding algorithm

`shading-subtraction`

- thresholds an image after subtracting a possibly shaded background

  this method requires Gamera ≥ 3.3.1

`tsai`

- splitting along a threshold value determined using the Tsai Moment Preserving Threshold algorithm

`white-rohrer`

- White and Rohrer dynamic thresholding algorithm

The default is ‘`djvu`’.

Please consult the Gamera documentation for details.

`-x`

`--param=`name`=`value``

- Set parameter for the binarization method.

  This option can be used more than once.

  Please consult the Gamera documentation for details.

`-p`

`--pages-per-dict=`n``

- For `bundle` command: if `n` > 1, compress masks with `minidjvu` using `n` pages in one pass. The default is 1.

`--masks`

`--mask=`input-mask``

- Use the pre-generated image masks for the `encode` and `bundle` commands.

### Foreground/background quality, resolution

(These options apply to `encode` and `bundle` commands only.)

`-d`

`--dpi=`resolution``

- Specifies the desired resolution to `resolution` dots per inch. The default is to preserve the input file resolution, or 300 dpi if resolution metadata is missing. The allowed range is: 72 ≤ `resolution` ≤ 6000.

`--fg-slices=`n``

- Specifies the encoding quality of the IW44 foreground layer. The default is `100`.

  This option is similar to the `-slice` option of `c44`; please consult the

  c44

  1 manual page for details.

`--fg-crcb=normal`

- Select normal chrominance encoding of the foreground layer.

`--fg-crcb=half`

- Select half resolution chrominance encoding of the foreground layer.

`--fg-crcb=full`

- Select the highest possible quality for encoding the chrominance information of the foreground layer. This is the default.

`--fg-crcb=none`

- Disable the encoding of the chrominance of the foreground layer.

`--fg-subsample=`n``

- Specifies the foreground subsampling ratio. The default is 6. Valid values are integers between 1 and 12, inclusive.

`--bg-slices=`n`+`…`+`n``

`--bg-slices=`n`,`…`,`n``

- Specifies the encoding quality of the IW44 background layer. The default is `74+10+6+7`.

  This option is similar to the `-slice` option of `c44`; please consult the

  c44

  1 manual page for details.

`--bg-crcb=normal`

- Select normal chrominance encoding of the background layer. This is the default.

`--bg-crcb=half`

- Select half resolution chrominance encoding of the background layer.

`--bg-crcb=full`

- Select the highest possible quality for encoding the chrominance information of the background layer.

`--bg-crcb=none`

- Disable the encoding of the chrominance of the background layer.

`--bg-subsample=`n``

- Specifies the background subsampling ratio. The default is 3. Valid values are integers between 1 and 12, inclusive.

### XMP support

(These options apply to `encode` and `bundle` commands only.)

`--xmp`

- Create sidecar XMP metadata.

  This option is experimental!

### Verbosity, help

`-v`

`--verbose`

- Display more informational messages while converting the file.

`-q`

`--quiet`

- Don't display informational messages while converting the file.

`--version`

- Output version information and exit.

`-h`

`--help`

- Display help and exit.

## Environment

The following environment variables affects `didjvu`:

`TMPDIR`

- `didjvu` makes heavy use of temporary files. It will store them in a directory specified by this variable. The default is `/tmp`.

## Template language

### Template syntax

The template language uses the Python string formatting syntax.

### Available field names

`name`

- input file path

`name-ext`

- input file path without file extension

`base`

- input file name without directory components

`base-ext`

- input file name without directory components and without file extension

`page`

`page+`N``

`page-`N``

- page number, optionally shifted by a number `N`

## See also

djvu

1 ,

djvumake

1 ,

c44

1 ,

cjb2

1 ,

minidjvu

1 ,