Man Linux: Main Page and Category List

NAME

       pvrg-jpeg - JPEG compression and decompression

SYNOPSIS

       pvrg-jpeg -iw ImageWidth -ih ImageHeight [-JFIF] [-q(l) Q-Factor]
            [-a] [-b] [-d] [-k predictortype] [-n] [-O] [-y] [-z] [-g]
            [-p PrecisionValue] [-t pointtransform]
            [-r ResyncInterval] [-s StreamName] [-o OutBaseName]
            [[-ci ComponentIndex1] [-fw FrameWidth1] [-fh FrameHeight1]
             [-hf HorizontalFrequency1] [-vf VerticalFrequency1]
             ComponentFile1]
            [[-ci ComponentIndex2] [-fw FrameWidth2] [-fh FrameHeight2]
             [-hf HorizontalFrequency2] [-vf VerticalFrequency2]
             ComponentFile2]
            ....

DESCRIPTION

       pvrg-jpeg  is  a  still-image  compression/decompression  program  that
       performs JPEG encoding and decoding of multiple raster-scanned files.

       These ‘‘raster-scanned files’’ are  basically  PGM  (portable  graymap)
       files  without the PGM header. A typical JPEG image is made of three of
       these files representing the Y, Cr, and Cb color channels. Usually  the
       Y  (lumience)  channel  is full size, while the two chroma channels are
       half width and half height. But no particular channel really  needs  to
       be  full  size,  so  pvrg-jpeg  will need to know the dimensions of the
       original image when creating jpegs.

OPTIONS

       ImageWidth
              specifies  the  width  of  the  original  image.   This   should
              correspond  to  the width of the widest component and, thus, the
              width of the ‘‘original  image’’.  All  components  have  widths
              roughly  corresponding  to an integer decimation ratio from this
              specification.

       ImageHeight
              specifies the height of the tallest component. This  corresponds
              to the height of the ‘‘original image’’.

       -JFIF  specifies  that  a  JFIF header is placed on the encoded stream.
              This is unnecessary for decoding.

       Q-Factor
              option specifies a multiplicative factor for  the  quantization:
              each quantization coefficient of the default matrix is scaled by
              (Q-Factor/50). A Q-Factor of 0 is the same thing as  a  Q-Factor
              of  50 because it disables this function.  -q specifies an 8 bit
              quantization matrix; -ql specifies a 16 bit quantization matrix,
              useful for 12 bit data.

       -a     enables  the  double-precision  floating  point  Reference  DCT.
              (Default is Chen DCT.)

       -b     enables the Lee DCT.  (Default is Chen DCT.)

       -d     enables decoding.  See below.

       -g     This option will put PGM headers on output files when  decoding.

       -k predictortype
              The  lossless  predictor  type,  specified as an integer between
              1-7.  If specified, then lossless mode is used.

       -n     This option specifies that the files should not  be  transmitted
              in interleaved format.

       -o OutBaseName
              This  will  use specified string as a base name for output files
              when decoding.

       -O     signals that the command interpreter will read from the standard
              input.

       -p     Specifies  the  precision.   Normally should be between 2-16 for
              lossless; 8 or 12 for DCT.  If  it  is  specified  as  a  number
              greater  than  8  then  the  input  is considered to be unsigned
              shorts (16 bits, msb first). Not aggressively checked.

       -s JPEGStreamName
              When encoding, this will  be  used  as  the  output  file.  When
              decoding, this will be used as the input file.

       -t pointtransform
              Specifies  the  shifting (right) upon loading input and shifting
              (left) upon writing input.  Generally used by the lossless  mode
              only.  Can be used by the DCT mode to add or subtract bits.

       -y     for decoding only, signals that no resynchronization is enabled,
              thus ignore any markers found in the data stream.

       -z     enables use of default Huffman tables. This converts the  coding
              from  a  two-pass system using the first pass to generate custom
              tables to a one-pass system using internal default tables.  With
              this  option,  the  compression  speed  is  nearly  doubled, but
              because the internal tables are not custom  to  the  image,  the
              compressed file size increases slightly.

       ResyncInterval
              specifies a resync (restart) interval for the input file--if set
              to 0 (default),  resynchronization  is  disabled;  otherwise  it
              signifies the number of MDU between a resync marker.

       StreamName
              is   the   place   to   load(decoder)/store(encoder)  the  coded
              image--if unspecified it defaults to ComponentFile1.jpg.

              For every component in the image we have:

       ComponentIndex
              describes the component index where  the  file  data  should  be
              associated with.  The possible values are between 0 and 255.  As
              a rule Y is in 1; U is in 2; V is in 3.  The file specfications,
              if  left undisturbed, will result in component location of 1 for
              the first component file, 2 for the second component  file,  and
              so  on.   If  -ci  is specified for the previous component file,
              then the next component index defaults to the previous component
              index plus 1.

       FrameWidth
              describes  the  actual  width  of  the component. This should be
              determinable by the size of the original image (ImageHeight  and
              ImageWidth)  and the frequency sampling of that component.  This
              program assumes that the sampling component will be round up  to
              the  nearest  integer  and  other  programs  may not necessarily
              follow that convention, we allow precise  specification  of  the
              FrameWidth.   The program will notify the user if the framewidth
              and frameheight specifications do not correspond  to  a  logical
              MDU  pattern  and  thus  will refuse to take the input (in fact,
              sometimes rounding  down  will  not  result  in  a  logical  MDU
              pattern).

       FrameHeight
              describes   the  actual  height  of  the  component.  Multiplied
              together with FrameWidth, this should equal the file size of the
              component.    See   the   above   discussion   on   the   actual
              specification.

       Hor-Frequency
              specifies the block sampling frequency of the component  in  the
              horizontal direction for every MDU transmitted.

       Ver-Frequency
              specifies  the  block sampling frequency of the component in the
              vertical direction. When multiplied together with the Horizontal
              frequency,  it  corresponds  to  the  number  of  blocks of that
              component in the MDU.

       ComponentFilen
              represents the directory path  location  of  the  nth  component
              file.

EXAMPLES

       In  order  to encode a set of raster-scanned files: 128x128 in image.Y;
       64x128 in image.U; and 64x128 in image.V into the file  image.jpg,  the
       command is

       pvrg-jpeg -iw 128 -ih 128  -hf 2 image.Y image.U image.V -s image.jpg

       In order to decode a compressed file in image.jpg, type

       pvrg-jpeg -d -s image.jpg

       The  three output files will be in image.jpg.1 image.jpg.2 image.jpg.3.
       The images can be displayed by the cv program.  The images can also  be
       converted  to  ppm  and back through the programs cyuv2ppm and ppm2cyuv
       Those   utility   programs   available   by    anonymous    ftp    from
       havefun.stanford.edu:pub/cv/CVv1.2.1.tar.Z.
       There  are  many  more  options within an internal command interpreter.
       Please see the accompanying documentation in doc.ps for more details.

BUGS

       Somewhat slower than many commercial  implementations,  some  bugs  are
       probably  lurking  around.  Lossless coding and decoding are especially
       slow.  This program can produce jpeg files that other  programs  cannot
       understand.

AUTHOR

       Andy Hung