C44(1) DjVuLibre-3.5 C44(1)NAME
c44 - DjVuPhoto encode.
SYNOPSIS
c44 [options] inputfilename [outputfilename]
DESCRIPTION
Produces a DjVuPhoto encoded image. The input image file inputfilename
can be either a portable gray-map (PGM) or a portable pix-map (PPM).
Input images compressed with JPEG are also accepted. It is however sug‐
gested to only use high quality JPEG files (low compression ratio,
large size) because the wavelet compression will increase the defects
already present in highly compressed JPEG files.
The program produces a DjVuPhoto file outputfilename. If the output
file name is not specified, a default file name will be generated by
replacing the input file name suffix by suffix djvu.
The main design objective for the DjVu wavelets consisted of allowing
progressive rendering and smooth scrolling of large images with limited
memory requirements. Decoding functions process the compressed data
and update a memory efficient representation of the wavelet coeffi‐
cients. Imaging function then can quickly render an arbitrary segment
of the image using the available data. Both process can be carried out
in two threads of execution. This design plays an important role in
the DjVu system. We investigated various state-of-the-art wavelet com‐
pression schemes. Although these schemes may achieve slightly smaller
file sizes, the decoding functions did not even approach our require‐
ments. The IW44 wavelets reach these requirements today and may in the
future implement more modern refinements if these refinements can be
implemented within our constraints.
QUALITY SELECTION OPTIONS
DjVuPhoto files are logically composed of a sequence of "slices" con‐
taining successive image refinements. Slices are grouped in "chunks"
defining the progressive rendering sequence. The viewer is able to
display an intermediate image after processing each chunk. A typical
DjVuPhoto files contains 80 to 120 slices grouped into 1 to 4 chunks.
The quality selection options provide various ways to specify the num‐
ber of chunks and the number of slices per chunk. The c44 program adds
slices to the current chunk until exceeding a target number of slices,
a target file size, or a target quality specification. The following
options define targets for each chunk. The option argument contain
several numerical values (one per chunk) separated by either commas or
pluses.
-slice n+...+n
Specify the number of slices in each chunk. The option argument
contains plus-separated numerical values (one per chunk) indi‐
cating the number of slices per chunk. Option -slice 74+13+10,
for instance, would be appropriate for compressing a photo‐
graphic image with three progressive refinements. More quality
and more refinements can be obtained with option -slice
72+11+10+10.
-slice n,...,n
Specify the cumulative number of slices for each chunk. Since
the final quality is determined by the total number of slices,
it is often more convenient to use comma-separated values (one
per chunk) indicating the cumulative number of slices for each
chunk (i.e. including those encoded in all previous chunks).
The values suggested above can also be expressed as -slice
74,87,97 and -slice 72,83,93,103.
-size n,...,n
Specify size targets for each chunk expressed in bytes. The
option argument can be either a plus-separated list specifying a
size for each chunk, or a comma separated list specifying cumu‐
lative sizes for each chunk and all previous chunks. Size tar‐
gets are approximates. Slices will be added to each chunk until
exceeding the specified target.
-bpp n,...,n
Specify size targets for each chunk expressed in bits-per-pixel.
Both comma-separated and plus-separated specifications are
accepted. Option -bpp 0.25,0.5,1 usually provides good results.
-percent n,...,n
Specify size targets for each chunk expressed as a percentage of
the input file size. Both comma-separated and plus-separated
specifications are accepted. Results can be drastically differ‐
ent according to the format of the input image (raw or JPEG com‐
pressed).
-decibel n,...,n
Specify quality targets for each chunk expressed as a comma-sep‐
arated list of increasing decibel values. Decibel values range
from 16 (very low quality) to 48 (very high quality). This cri‐
terion should not be relied upon when re-encoding an image pre‐
viously compressed by another compression scheme. Selecting
this option significantly increases the compression time.
-dbfrac frac
Indicate that the decibel values specified in option -decibel
should be computed by averaging the mean squared errors of only
the fraction frac of the most mis-represented blocks of 32 x 32
pixels. This option is useful with composite images containing
solid color features (e.g. an image with a large white border).
Providing no quality specification options automatically selects a
default quality specification -slice 74,89,99. Multiple quality speci‐
fication options are allowed. The program outputs a file whose total
number of chunks is the largest number of chunks of all quality speci‐
fications. Slices are added to each chunk until reaching any of the
quality target for this chunk.
OTHER OPTIONS
The following additional options are supported:
-dpi n Specify the resolution information encoded into the output file
expressed in dots per inch. The resolution information encoded
in DjVu files determine how the decoder scales the image on a
particular display. Meaningful resolutions range from 25 to
1200. The default value, 100 dpi, should be suitable for most
photographic images.
-gamma n
Specify the gamma correction information encoded into the output
file. The argument n specified the gamma value of the device
for which the input image was designed. The default value is
2.2. This is appropriate for images designed for a standard
computer monitor.
-mask pbmfilename
The design of the IW44 wavelets allows for compressing partially
masked images. This option can be used when certain pixels of a
background image are going to be covered by foreground objects
like text or drawings. File pbmfile must be a PBM file whose
size matches the size of the input file. Each black pixel in
pbmfile means that the value of the corresponding pixel in the
input file is irrelevant. The IW44 encoder will replace the
masked pixels by a color value whose coding cost is minimal (see
http://www.djvuzone.org/djvu/techpapers/mask/index.djvu for
technical details.)
-crcbnormal
Select normal chrominance encoding. Chrominance information is
encoded at the same resolution as the luminance. This is the
default.
-crcbhalf
Selects half resolution chrominance encoding. Chrominance
information is encoded at half the luminance resolution.
-crcbdelay n
This option can be used with -crcbnormal and -crcbhalf to modify
the quality of the chrominance information. The option argu‐
ments specifies a parameter n, expressed in slices, that reduces
the bit-rate associated with the chrominance. The default
chrominance encoding delay is 10 slices.
-crcbfull
Select the highest possible quality for encoding the chrominance
information. This is equivalent to specifying -crcbnormal and
-crcbdelay 0.
-crcbnone
Disable the encoding of the chrominance. Only the luminance
information will be encoded. The resulting image will show in
shades of gray.
REMARKS
The default quality setting of the DjVuLibre version of c44 has been
increased. It produces larger files with a better quality. Quality
can be lowered using the quality selection options!
BUGS
The encoder requires more memory than necessary.
The rechunking capability is currently broken.
CREDITS
This program was written by Léon Bottou <leonb@users.sourceforge.net>
and was then improved by Andrei Erofeev <andrew_erofeev@yahoo.com>,
Bill Riemers <docbill@sourceforge.net> and many others.
SEE ALSOdjvu(1), pnm(5), cjpeg(1).
DjVuLibre-3.5 10/11/2001 C44(1)