diff options
Diffstat (limited to 'pnmtojbig.html')
-rw-r--r-- | pnmtojbig.html | 285 |
1 files changed, 285 insertions, 0 deletions
diff --git a/pnmtojbig.html b/pnmtojbig.html new file mode 100644 index 00000000..01200628 --- /dev/null +++ b/pnmtojbig.html @@ -0,0 +1,285 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML><HEAD><TITLE>Pnmtojbig User Manual</TITLE></HEAD> +<BODY> +<H1>PNMTOJBIG</H1> +Updated: 20 May 2000 +<BR> +<A HREF="#index">Table Of Contents</A> + +<A NAME="lbAB"> </A> +<H2>NAME</H2> + +pnmtojbig - PNM to JBIG file converter + +<A NAME="lbAC"> </A> +<H2>SYNOPSIS</H2> + +<B>pnmtojbig</B> + +[<I>options</I>] +[<I>input-file</I> [<I>output-file</I>]] + +<A NAME="lbAD"> </A> +<H2>DESCRIPTION</H2> + +<p>This program is part of <a href="index.html">Netpbm</a>. + +<p><b>pnmtojbig</b> reads a PBM or PGM image, compresses it, and +outputs the image as a JBIG bi-level image entity (BIE) file. + +<P>JBIG is a highly effective lossless compression algorithm for +bi-level images (one bit per pixel), which is particularly suitable +for scanned document pages. + +<P>A JBIG encoded image can be stored in several resolutions +(progressive mode). These resolution layers can be stored all in one +single BIE or they can be stored in several separate BIE files. All +resolution layers except the lowest one are stored merely as +differences to the next lower resolution layer, because this requires +less space than encoding the full image completely every time. Each +resolution layer has twice the number of horizontal and vertical +pixels than the next lower layer. JBIG files can also store several +bits per pixel as separate bitmap planes, and <B>pnmtojbig</B> +can read a PGM file and transform it into a multi-bitplane BIE. + +<A NAME="lbAE"> </A> +<H2>OPTIONS</H2> + +<DL COMPACT> + +<DT><B>-q</B> + +<DD>Encode the image in one single resolution layer (sequential +mode). This is usually the most efficient compression method. By +default, the number of resolution layers is chosen automatically such +that the lowest layer image is not larger than 640 × 480 pixels. + +<DT><B>-x</B> <I>number</I> + +<DD>Specify the maximal horizontal size of the lowest resolution +layer. The default is 640 pixels. + +<DT><B>-y</B> <I>number</I> + +<DD>Specify the maximal vertical size of the lowest resolution layer. +The default is 480 pixels. + +<DT><B>-l</B> <I>number</I> + +<DD>Select the lowest resolution layer that will be written to the +BIE. It is possible to store the various resolution layers of a JBIG +image in progressive mode into different BIEs. Options <B>-l</B> and +<B>-h</B> allow you to select the resolution-layer interval that will +appear in the created BIE. The lowest resolution layer has number 0 +and this is also the default value. By default, <b>pnmtojbig</b> +writes all layers. + +<DT><B>-h</B> <I>number</I> + +<DD>Select the highest resolution layer that will be written to the +BIE. By default, <b>pnmtojbig</b> writes all layers. See also option +<B>-l</B>. + +<DT><B>-b</B> + +<DD>Use binary values instead of Gray code words in order to encode +pixel values in multiple bitplanes. This option has only an effect if +the input is a PGM file and if more than one bitplane is +produced. Note that the decoder has to make the same selection but +cannot determine from the BIE, whether Gray or binary code words were +used by the encoder. + +<DT><B>-d</B> <I>number</I> + +<DD>Specify the total number of differential resolution layers into +which the input image will be split in addition to the lowest layer. +Each additional layer reduces the size of layer 0 by 50 %. This +option overrides options <B>-x</B> and <B>-y</B>, which are usually a +more comfortable way of selecting the number of resolution layers. + +<DT><B>-s</B> <I>number</I> + +<DD>The JBIG algorithm splits each image into a number of horizontal +stripes. This option specifies that each stripe shall have +<I>number</I> lines in layer 0. The default value is selected so that +approximately 35 stripes will be used for the whole image. + +<DT><B>-m</B> <I>number</I> + +<DD>Select the maximum horizontal offset of the adaptive template +pixel. The JBIG encoder uses a number of neighbour pixels in order to +get statistical a priori knowledge of the probability, whether the +next pixel will be black or white. One single pixel out of this +template of context neighbor pixels can be moved around. Especially +for dithered images it can be a significant advantage to have one +neighbor pixel which has a distance large enough to cover the period +of a dither function. By default, the adaptive template pixel can be +moved up to 8 pixels away. This encoder supports up to 23 pixels, +however as decoders are only required to support at least a distance +of 16 pixels by the standard, no higher value than 16 for +<I>number</I> is recommended in order to maintain interoperability +with other JBIG implementations. The maximal vertical offset of the +adaptive template pixel is always zero. + +<DT><B>-t</B> <I>number</I> + +<DD>Encode only the specified number of most significant bit planes. +This option allows to reduce the depth of an input PGM file if not all +bits per pixel are needed in the output. + +<DT><B>-o</B> <I>number</I> + +<DD>JBIG separates an image into several horizontal stripes, +resolution layers and planes, were each plane contains one bit per +pixel. One single stripe in one plane and layer is encoded as a data +unit called stripe data entity (SDE) inside the BIE. There are 12 +different possible orders in which the SDEs can be stored inside the +BIE and <I>number</I> selects which one shall be used. The order of +the SDEs is only relevant for applications that want to decode a JBIG +file which has not yet completely arrived from e.g. a slow network +connection. For instance some applications prefer that the outermost +of the three loops (stripes, layers, planes) is over all layers so +that all data of the lowest resolution layer is transmitted first. + +<p>The following values for <I>number</I> select these loop +arrangements for writing the SDEs (outermost loop first): + +<dl> +<dt>0 +<dd>planes, layers, stripes + +<dt>2 +<dd>layers, planes, stripes + +<dt>3 +<dd>layers, stripes, planes + +<dt>4 +<dd>stripes, planes, layers + +<dt>5 +<dd>planes, stripes, layers + +<dt>6 +<dd>stripes, layers, planes + +</dl> + +<P>All loops count starting with zero, however by adding 8 to the +above order code, the layer loop can be reversed so that it counts +down to zero and then higher resolution layers will be stored before +lower layers. Default order is 3 which writes at first all planes of +the first stripe and then completes layer 0 before continuing with the +next layer and so on. + +<DT><B>-p</B> <I>number</I> + +<DD>This option allows you to activate or deactivate various optional +algorithms defined in the JBIG standard. Just add the numbers of the +following options which you want to activate in order to get the +<I>number</I> value: + + +<dl> +<dt>4 +<dd>deterministic prediction (DPON) + +<dt>8 +<dd>typical prediction (TPBON) + +<dt>16 +<dd>diff. layer typical prediction (TPDON) + +<dt>64 +<dd>layer 0 two-line template (LRLTWO) + +</dl> + +<P>Except for special applications (like communication with JBIG +subset implementations) and for debugging purposes you will normally +not want to change anything here. The default is 28, which provides +the best compression result. + +<DT><B>-c</B> + +<DD>The adaptive template pixel movement is determined as suggested in +annex C of the standard. By default the template change takes place +directly in the next line which is most effective. However a few +conformance test examples in the standard require the adaptive +template change to be delayed until the first line of the next stripe. +This option selects this special behavior, which is normally not +required except in order to pass some conformance test suite. + +<DT><B>-v</B> + +<DD>After <b>pnmtojbig</b> creates the BIE, it lists a few technical +details of the created file (verbose mode). + +</DL> + +<A NAME="lbAF"> </A> +<H2>FORMATS</H2> + +<P>Most of the format <B>pnmtojbig</B> creates is defined by the +JBIG standard. + +<P>The standard, however, does not specify which values in the BIE mean +white and which mean black. It contains a recommendation that for a +single plane image zero mean background and one mean foreground, but +the Netpbm formats have no concept of foreground and background. And +the standard says nothing about values for multiple plane BIEs. + +<P><B>pnmtojbig</B> follows Markus Kuhn's implementation of the +standard in the <B>pbmtojbg</B> program that comes with his +JBIG library: If the BIE is a single plane BIE, zero means +white and one means black. If it is a multiple plane BIE, zero means +black and the maximal value is white. + +<A NAME="lbAG"> </A> +<H2>STANDARDS</H2> + +<p>This program implements the JBIG image coding algorithm as +specified in ISO/IEC 11544:1993 and ITU-T T.82(1993). + +<A NAME="lbAH"> </A> +<H2>AUTHOR</H2> + +<B>pnmtojbig</B> is based on the JBIG library by Markus Kuhn, part of +his <B>JBIG-KIT</B> package. The <B>pbmtojbg</B> program is part of +the <I>JBIG-KIT</I> package. The most recent version of that library +and tools set is freely available on the Internet from anonymous ftp +server <A +HREF="ftp://ftp.informatik.uni-erlangen.de">ftp.informatik.uni-erlangen.de</A> +in directory pub/doc/ISO/JBIG/. + +<P><B>pnmtojbig</B> is part of the Netpbm package of graphics tools. + +<A NAME="lbAI"> </A> +<H2>SEE ALSO</H2> + +<B><A HREF="pnm.html">pnm</A></B>, +<B><A HREF="jbigtopnm.html">jbigtopnm</A></B> + +<A NAME="lbAJ"> </A> +<H2>LICENSE</H2> + +If you use <B>pnmtojbig</B>, you are using various patents, +particularly on its arithmetic encoding method, and in all probability +you do not have a license from the patent owners to do so. + +<HR> +<A NAME="index"> </A> +<H2>Table Of Contents</H2> +<UL> +<LI><A HREF="#lbAB">NAME</A> +<LI><A HREF="#lbAC">SYNOPSIS</A> +<LI><A HREF="#lbAD">DESCRIPTION</A> +<LI><A HREF="#lbAE">OPTIONS</A> +<LI><A HREF="#lbAF">FORMATS</A> +<LI><A HREF="#lbAG">STANDARDS</A> +<LI><A HREF="#lbAH">AUTHOR</A> +<LI><A HREF="#lbAI">SEE ALSO</A> +<LI><A HREF="#lbAJ">LICENSE</A> +</UL> +</BODY> +</HTML> |