about summary refs log tree commit diff
path: root/pnmtojbig.html
diff options
context:
space:
mode:
Diffstat (limited to 'pnmtojbig.html')
-rw-r--r--pnmtojbig.html285
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">&nbsp;</A>
+<H2>NAME</H2>
+
+pnmtojbig - PNM to JBIG file converter
+
+<A NAME="lbAC">&nbsp;</A>
+<H2>SYNOPSIS</H2>
+
+<B>pnmtojbig</B>
+
+[<I>options</I>]
+[<I>input-file</I> [<I>output-file</I>]]
+
+<A NAME="lbAD">&nbsp;</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">&nbsp;</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 &#215; 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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</A>
+<H2>SEE ALSO</H2>
+
+<B><A HREF="pnm.html">pnm</A></B>,
+<B><A HREF="jbigtopnm.html">jbigtopnm</A></B>
+
+<A NAME="lbAJ">&nbsp;</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">&nbsp;</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>