PAMTOJPEG2K
Updated: 27 October 2002
Table Of Contents
NAME
pamtojpeg2k - convert PAM/PNM image to a JPEG-2000 code stream
SYNOPSIS
pamtojpeg2k [-imgareatlx=column] [-imgareatly=row] [-tile-
grdtlx=column]
[-tilegrdtly=row] [-tilewidth=columns] [-tile-
height=rows]
[-prcwidth=columns] [-prcheight=rows] [-cblk-
width=columns]
[-cblkheight=rows] [-mode={integer|int|real}] [-compres-
sion=ratio]
[-ilyrrates=ratestring] [-numr-
lvls=number]
[-progression={lrcp|rlcp|rpcl|pcrl|cprl}][-numgbits=num-
ber][-nomct][-sop]
[-eph] [-lazy] [-termall] [-segsym] [-vcausal] [-pterm]
[-resetprob]
[-verbose] [-debuglevel=number] filename
Minimum unique abbreviation of option is acceptable. You may
use double
hypens instead of single hyphen to denote options. You may use
white space
in place of the equals sign to separate an option name from
its value.
DESCRIPTION
This program is part of Netpbm.
pamtojpeg2k converts the named PBM, PGM, PPM, or PAM file, or
Standard Input
if no file is named, to a JPEG-2000 code stream file on Stan-
dard Output.
The JPEG-2000 specification specifies two different formats:
JP2 and
JPEG-2000 code stream (JPC). JP2 represents a visual im-
age quite
specifically, whereas JPC is a more or less arbitrary array of
codes. The
JPC image that pamtojpeg2k produces is very similar to a JP2
if the input is
a PBM, PGM, or PPM image or equivalent PAM image. One differ-
ence is that
that RGB intensity values in a JP2 are SRGB values, while
pamtojpeg2k
produces ITU Rec 709 values. Those are very similar, but not
identical.
Another difference is that a JP2 can contain extra information
about an
image that JPC cannot.
When the input is a PAM image other than a PBM, PGM, or PPM
equivalent, the
JPC raster produced contains whatever the PAM raster does. It
can have any
number of planes with any meanings; the planes are in the same
order in the
JPC output as in the PAM input.
A JPC image has a "precision," which is the number of bits
used for each
code (in Netpbm lingo, "sample"). Actually, it has a separate
precision for
each component. pamtojpeg2k uses for the precision of every
component the
least number of bits that can represent the maxval of the in-
put image. A JPC
image does not have an independent concept of maxval; the max-
val of a JPC
sample is the maximum value that the number of bits speci-
fied by the
precision can represent in pure binary code. E.g. if the pre-
cision is 4, the
maxval is 15. pamtojpeg2k does of course scale the sample val-
ues from the
input maxval to the output maxval. Example: The input maxval
is 99. This
means JPC precision is 7 bits and the JPC maxval is 127. A
sample value of
33 in the input becomes a sample value of 43 in the output.
pamtojpeg2k generates the JPC output with the Jasper JPEG-2000
library. See
documentation of the library for details on what pamtojpeg2k
produces. Note
that the Jasper library contains facilities for reading PNM
images, but
pamtojpeg2k does not use those. It uses the Netpbm library in-
stead. Note
that the makers of the Jasper library write it "JasPer,"
but Netpbm
documentation follows standard American English typography
rules, which
don't allow that kind of capitalization.
Use jpeg2ktopam to convert in the other direction.
The program jasper, which is packaged with the Jasper
JPEG-2000 library,
also converts between JPEG-2000 and PNM formats. Because it's
packaged with
the library, it may exploit it better, especially recently
added features.
However, since it does not use the Netpbm library to read and
write the
Netpbm formats, it doesn't do as good a job on that side.
OPTIONS
Most of the options are identical in name and function to op-
tions that the
Jasper library JPC encoder subroutine takes. See Jasper docu-
mentation for
details. Here, we document only options that are not direct
analogs of
Jasper options.
-compression=ratio
ratio is a floating point number that specifies the
compression
ratio. pamtojpeg2k will adjust quality as necessary to
ensure that
you get this compression ratio. E.g. 4 means the output
will be about
one fourth the size in bytes of the input file.
The compression ratio must be at least 1. The default
is 1, which
means the output has all the quality of the input --
the conversion
is lossless.
Note that though Jasper library takes a compression
factor, this
option specifies a compression ratio. The compression
factor is the
multiplicative inverse of (1 divided by) the compres-
sion ratio.
-verbose
This option causes pamtojpeg2k to issue informational
messages about
the conversion process.
-debuglevel=number
This option controls debug messages from the Jasper
library.
pamtojpeg2k passes number as the debug level to the
Jasper JPC
encoder.
EXAMPLES
This example compresses losslessly.
pamtojpeg2k myimg.ppm >myimg.jpc
jpeg2ktopam will recreate myimg.ppm exactly.
This example compresses the file to one tenth its original
size, throwing
away information as necessary.
pamtojpeg2k -compression=10 myimg.pgm >myimg.jpc
ABOUT JPEG-2000
JPEG-2000 is a format that compresses a visual image (or a
similar set of
data) into a minimal number of bytes for storage or transmis-
sion. In that,
its goal is similar to JPEG. It has two main differences from
JPEG.
One difference is that it does a much better job on most im-
ages of throwing
out information in order to achieve a smaller output. That
means when you
reconstruct the image from the resulting compressed file, it
looks a lot
closer to the image you started with with JPEG-2000 than with
JPEG, for the
same compressed file size. Or, looked at another way, with
JPEG-2000 you get
a much smaller file than with JPEG for the same image quality.
The second difference is that with JPEG-2000, you decide
how much
compression you want and the compressor adjusts the quality to
meet your
requirement, whereas with JPEG, you decide how much quality
you want and the
compressor adjusts the size of the output to meet your re-
quirement. I.e.
with JPEG-2000, the quality of the result depends on the com-
pressibility of
the input, but with JPEG, the size of the result de-
pends on the
compressibility of the input.
With JPEG-2000, you can specify lossless compression, thus
making it compete
with GIF and PNG. With standard JPEG, you always lose some-
thing. (There are
rumored to be variations of JPEG around that are lossless,
though).
JPEG is much older than JPEG-2000 and far more popular. JPEG
is one of the
half dozen most popular graphics formats and virtually all
graphics
facilities understand it. JPEG-2000 is virtually unknown.
There is no compatibility between JPEG and JPEG-2000. Programs
that read
JPEG do not automatically read JPEG-2000 and vice versa.
SEE ALSO
jpeg2ktopam, pnmtopeg, ppm, pgm, pbm, pam,
History
pamtojpeg2k was added to Netpbm in Release 10.12 (November
2002).
_________________________________________________________________
Table Of Contents
* SYNOPSIS
* DESCRIPTION
* OPTIONS
* EXAMPLES
* ABOUT JPEG-2000
* SEE ALSO
UNIX/Linux commands referenced on this page:
- convert
- file
- more
- less
- as
- which
- write
- jpeg2ktopam
- size
- at