NAME¶
pnmtofiasco - Convert a portable anymap to FIASCO compressed file
SYNOPSIS¶
pnmtofiasco [
option]... [
filename]...
DESCRIPTION¶
pnmtofiasco compresses the named pbm, pgm, or ppm image files, or
Standard Input if no file is named, and produces a FIASCO file on Standard
Output.
OPTIONS¶
All option names may be abbreviated; for example, --optimize may be written
--optim or --opt. For most options a one letter short option is provided.
Mandatory or optional arguments to long options are mandatory or optional for
short options, too. Both short and long options are case sensitive.
The basic options are:
- -i name,
--input-name=name
- Compress the named images, not Standard Input. If
name is -, read Standard Input. name has to be either
an image filename or a template of the form:
prefix[start-end{+,-}step]suffix
Templates are useful when compressing video streams: e.g., if you specify
the template img0[12-01-2].pgm, then pnmtofiasco compresses
the images img012.pgm, img010.pgm, ..., img002.pgm.
If name is a relative path, pnmtofiasco searches for the image
files in the current directory and in the (colon-separated) list of
directories given by the environment variable FIASCO_IMAGES.
- -o output-file,
--output-name=name
- Write FIASCO output to the named file, not to Standard
Output.
If name is a relative path and the environment variable
FIASCO_DATA is a (colon-separated) list of directories, then
pnmtofiasco writes the output file to the first (writable)
directory of this list. Otherwise, pnmtofiasco write it to the
current directory.
- -q N, --quality=N
- Set quality of compression to N. Quality is 1
(worst) to 100 (best); default is 20.
- -v, --version
- Print pnmtofiasco version number, then exit.
- -V N, --verbose N
- Set level of verbosity to N. Level is 0 (no output
at all), 1 (show progress meter), or 2 (show detailed compression
statistics); default is 1.
- -B N, --progress-meter
N
- Set type of progress-meter to N. The following types
are available; default is 1:
0: no progress meter
1: RPM style progress bar using 50 hash marks
2: percentage meter
- -f name,
--config=name
- Load parameter file name to initialize the options
of pnmtofiasco. See file system.fiascorc for an example of
the syntax. Options of pnmtofiasco are set by any of the following
methods (in the specified order):
1) Global ressource file /etc/system.fiascorc
2) $HOME/.fiascorc
3) command line
4) --config= name
- -h, --info
- Print brief help, then exit.
- -H, --help
- Print detailed help, then exit.
- The options for advanced users are:
-
- -b name,
--basis-name=name
- Preload compression basis name into FIASCO. The
basis name provides the initial compression dictionary. Either use
one of the files "small.fco", "medium.fco", or
"large.fco" that come with pnmtofiasco or create a new
ASCII basis file.
- -z N, --optimize=N Set
optimization level to
- N. Level is 0 (fastes) to 3 (slowest); default is 1.
Be warned, the encoding time dramatically increased when N=2
or N=3 while the compression performance only slightly
improves.
- -P, --prediction
- Use additional predictive coding. If this optimization is
enabled then the image is compressed in two steps. In the first step, a
coarse approximation of the image is computed using large unichrome
blocks. Finally, the delta image is computed and the prediction error is
approximated using the standard FIASCO algorithm.
- -D N,
--dictionary-size=N
- Set size of dictionary that is used when coding the
luminance band to N; default is 10000, i.e., the dictionary is not
restricted.
- -C N,
--chroma-dictionary=N
- Set size of dictionary that is used when coding chroma
bands to N; default is 40.
- -Q N,
--chroma-qfactor=N
- Reduce the quality of chroma band compression
N-times with respect to the user defined quality q of the
luminance band compression ( --quality=q); default is 2.
- -t N,
--tiling-exponent=N
- Subdivide the image into 2^N tiles prior coding;
default is 4, i.e. the image is subdivided into 16 tiles. The processing
order of the individual tiles is defined by the option
--tiling-method= name.
- -T name,
--tiling-method=name
- Order the individual image tiles (the image is subdivided
into; see option --tiling-exponent=N) by method name;
default is "desc-variance".
desc-variance: Tiles with small variances are processed first.
asc-variance: Tiles with large variances are processed first.
desc-spiral: Tiles are process in spiral order starting in the
middle.
asc-spiral: Tiles are process in spiral order starting at the
border.
- --rpf-mantissa=N
- Use N mantissa bits for quantized coefficients.
- --dc-rpf-mantissa=N
- Use N mantissa bits for quantized DC coefficients.
- --rpf-range=N
- Coefficients outside the quantization interval
[-N,+N] are set to zero.
- --dc-rpf-range=N
- DC coefficients outside the quantization interval
[-N,+ N] are set to zero.
- Additional options for video compression are:
-
- -s N, --smooth=N
- Smooth decompressed reference frames along the partitioning
borders by the given amount N. N is 0 (no smoothing) to 100;
default is 70. This factor is stored in the FIASCO file.
- -m N, --min-level=N
- Start prediction (motion compensated prediction or
additional prediction) on block level N; default is level 6. I.e.,
motion compensation is applied to all image blocks of at least 8x8 pixels
(binary tree level N=6), 16x8 (N=7), 16x16 (N=8),
etc.
- -M N, --max-level=N
- Stop prediction (motion compensated prediction or
additional prediction) on block level N; default is level 10. I.e.,
motion compensation is applied to all image blocks of at most 16x16 pixels
( N=8), 32x16 ( N=9), 32x32 (N=10), etc.
- -2, --half-pixel
- Use half pixel precise motion compensation.
- -F N, --fps=N
- Set number of frames per second to N. This value is
stored in the FIASCO output file and is used in the decoder dfiasco(1) to
control the framerate.
- -p type,
--pattern=type
- Defines the type of inter frame compression which should be
applied to individual frames of a video stream. type is a sequence
of characters; default is "IPPPPPPPPP". Element N defines
the type of predicting which should be used for frame N; the frame
type pattern is periodically extended. Valid characters are:
I: intra frame, i.e., no motion compensated prediction is used at
all.
P: predicted frame, i.e., a previously encoded frame is used for
prediction (forward prediction).
B: bidirectional predicted frame, i.e., not only a previously shown
frame but also a frame of the future is used for prediction (forward,
backward or interpolated prediction).
- --cross-B-search
- Instead of using exhaustive search the
"Cross-B-Search" algorithm is used to find the best interpolated
prediction of B-frames.
- --B-as-past-ref
- Also use previously encoded B-frames when prediction the
current frame. If this option is not set, only I- and P-frames are used to
predict the current frame.
EXAMPLES¶
- pnmtofiasco < foo.ppm >foo.wfa
- Compress the still image "foo.ppm" to the FIASCO
file "foo.wfa" using the default options.
- pnmtofiasco -2 -p "IBBPBBPBB" -fps 15 -o
video.wfa foo0*.ppm
- Compress the video frames "foo0*.ppm" to the
FIASCO file "video.wfa" using half pixel precise motion
compensation at a frame rate of 15 frames per second. Intra frame 1 is
used to predict P-frame 4, frames 1 and 4 are used to predict B-frames 2
and 3, and so on. Frame 10 is again an intra-frame.
FILES¶
- /etc/system.fiascorc
- The systemwide initialization file.
- $HOME/.fiascorc
- The personal initialization file.
ENVIRONMENT¶
- FIASCO_IMAGES
- Search path for image files. Default is
"./".
- FIASCO_DATA
- Search and save path for FIASCO files. Default is
"./".
SEE ALSO¶
fiascotopnm(1),
ppmtojpeg(1),
pnmtojbig(1),
ppmtogif(1),
pnm(5)
Ullrich Hafner, Juergen Albert, Stefan Frank, and Michael Unger.
Weighted
Finite Automata for Video Compression, IEEE Journal on Selected Areas In
Communications, January 1998
Ullrich Hafner.
Low Bit-Rate Image and Video Coding with Weighted
Finite Automata, Ph.D. thesis, Mensch & Buch Verlag, ISBN
3-89820-002-7, October 1999.
AUTHOR¶
Ullrich Hafner <hafner@bigfoot.de>