ppmtompeg(1) - phpMan

Command: man perldoc info search(apropos)  


PPMTOMPEG(1)                         General Commands Manual                         PPMTOMPEG(1)

NAME
       ppmtompeg - encodes MPEG-1 bitstreams

SYNOPSIS
       ppmtompeg [ options ] parameter-file

DESCRIPTION
       ppmtompeg  produces an MPEG-1 video stream.  param_file is a parameter file which includes
       a list of input files and other parameters.  The file is described in detail  below.   The
       -gop,  -combine_gops,  -frames,  and  -combine_frames options are all exclusive.  This man
       page is probably incomplete.  For complete usage, see the User's Guide.

OPTIONS
       -stat stat_file : causes the encoder to append the statistics to the file  stat_file.   In
              any  case,  the  statistics are output to stdout.  The statistics use the following
              abbreviations:  bits per block (bpb), bits  per  frame  (bpf),  seconds  per  frame
              (spf), and bits per second (bps).

       -quiet num_seconds : causes the program to not report remaining time for at least num_sec-
              onds seconds.  A negative values tells the program not to report at all.  0 is  the
              default  (reports once after each frame).  Note that the time remaining is an esti-
              mate and does not take into account time to read in frames.

       -realquiet : causes the encoder to run silently, with the only screen output being errors.
              Particularly useful when reading input from stdin.

       -no_frame_summary : prevents the program from printing a summary line for each frame

       -float_dct : forces the encoder to use a more accurate, yet more computationally expensive
              version of the DCT.

       -gop gop_num : causes the encoder to only encode the numbered GOP (first GOP is  0).   The
              parameter file is the same as for normal usage.  The output file will be the normal
              output file with the suffix ".gop.<gop_num>"  No sequence info is output.

       -combine_gops : causes the encoder to simply combine some GOP files  into  a  single  MPEG
              stream.   A  sequence  header/ender are inserted.  In this case, the parameter file
              need only contain the YUV_SIZE value, an output file, and perhaps a list  of  input
              GOP files (see below).

       -frames  first_frame  last_frame  :  causes  the  encoder  to  only encode the frames from
              first_frame to last_frame, inclusive.  The parameter file is the same as for normal
              usage.   The  output will be placed in separate files, one per frame, with the file
              names being the normal output file with the suffix  ".frame.<frame  num>"   No  GOP
              header  information  is  output.   (Thus,  the  parameter file need not include the
              GOP_SIZE value)

       -combine_frames : causes the encoder to simply combine some  frames  into  a  single  MPEG
              stream.   Sequence  and  GOP headers are inserted appropriately.  In this case, the
              parameter file need only contain the YUV_SIZE value, the GOP_SIZE value, an  output
              file, and perhaps a list of frame files (see below).

       -nice : causes the program to run any remote processes 'nicely.'  This is only relevant if
              the program is using parallel encoding.  (see 'man nice.')

       -max_machines num_machines : causes the program to use no more than num_machines  machines
              as slaves for use in parallel encoding.

       -snr  : print the signal-to-noise ratio.  Prints SNR (Y U V) and peak SNR (Y U V) for each
              frame.  In summary, prints averages of luminance  only  (Y).   SNR  is  defined  as
              10*log(variance   of   original/variance   of  error).   Peak  SNR  is  defined  as
              20*log(255/RMSE).  Note that the encoder will run a little slower if you want it to
              print the SNR.

       -mse : computes the mean squared error per block.  Also automatically computes the quality
              of the images when set, so there is no need to specify -snr then.

       -bit_rate_info rate_file : prints bit rate information into the file rate_file.  Bit  rate
              info is bits per frame, and also bits per I-frame-to-I-frame.

       -mv-histogram : prints histogram of motion vectors as part of statistics.  There are three
              histograms -- one for P, forward B, and backward B vectors.  Each  histogram  is  a
              2-dimensional array, and there is one entry for each vector in the search window.

PARAMETER FILE
       The  parameter  file MUST contain the following lines (except when using the -combine_gops
       or -combine_frames options):

              PATTERN <pattern>

              OUTPUT <output file>

              INPUT_DIR <directory>
                     all input files must reside in this directory.  If you want to refer to  the
                     current directory, use '.' (an empty INPUT_DIR value would refer to the root
                     directory).  If input files will be  coming  in  from  standard  input,  use
                     'stdin'.

              INPUT
                     This  line  must be followed by a list of the input files (in display order)
                     and then the line
                            END_INPUT
                     There are three types of lines between INPUT and END_INPUT.  First,  a  line
                     may  simply  be the name of an input file.  Secondly, the line may be of the
                     form
                            <single_star_expr> [x-y]
                     single_star_expr can have a single '*' in it.  It is  replaced  by  all  the
                     numbers between x and y inclusive.  So, for example, the line
                            tennis*.ppm [12-15]
                     is replaced by tennis12.ppm, tennis13.ppm, tennis14.ppm, tennis15.ppm.  Uni-
                     form zero-padding occurs, as well.  For example, the line
                            football.*.ppm [001-130]
                     is replaced by football.001.ppm,  football.002.ppm,  ...,  football.009.ppm,
                     football.010.ppm, ..., football.130.ppm.  The third type of line is:
                            <single_star_expr> [x-y+s]
                     Where the line is treated exactly as above, except that we skip by s.  Thus,
                     the line
                            football.*.ppm [001-130+4]
                     is replaced by football.001.ppm, football.005.ppm,  football.009.ppm,  foot-
                     ball.013.ppm, etc.

              BASE_FILE_FORMAT <YUV or PPM or PNM or JPEG or JMOVIE>
                     All  the input files must be converted to YUV, JPEG(v4), JMOVIE, PNM, or PPM
                     format.  This line specifies which of the three formats (actually PPM  is  a
                     subset of PNM).  The reason for having a separate PPM option is for simplic-
                     ity.  If your files are RAWBITS ppm files, then use the  PPM  option  rather
                     than the PNM.  Also, depending on the system, file reads will go much faster
                     with the PPM option (as opposed to PNM).

              INPUT_CONVERT <conversion command>
                     You must specify how to convert a file to the base file format.  In the con-
                     version  command, each '*' is replaced by the filename (the items listed be-
                     tween INPUT and END_INPUT).  If no conversion is necessary, then  you  would
                     just say:
                            INPUT_CONVERT *
                     If you had a bunch of gif files, you might say:
                            INPUT_CONVERT giftoppm *
                     If you have a bunch of separate a.Y, a.U, and a.V files, then you might say:
                            INPUT_CONVERT cat *.Y *.U *.V
                            Input conversion is not allowed with input from stdin.

                     GOP_SIZE <n>
                            n is roughly the number of frames in a Group of Pictures (roughly be-
                            cause a GOP must begin with an I-frame)

                     SLICES_PER_FRAME <n>
                            n is roughly the number of slices per frame.  Note, at least one MPEG
                            player may complain if slices do not start at the left side of an im-
                            age.  To ensure this does not happen, make sure the number of rows is
                            divisible by SLICES_PER_FRAME.

                     PIXEL <FULL or HALF>
                            use half-pixel motion vectors, or only full-pixel ones

                     RANGE <n>
                            use a search range of +/- n pixels

                     PSEARCH_ALG <algorithm>
                            algorithm  must be one of {EXHAUSTIVE, TWOLEVEL, SUBSAMPLE, LOGARITH-
                            MIC}.  Tells what kind of search procedure  should  be  used  for  P-
                            frames.   Exhaustive  gives  the best compression, but logarithmic is
                            the fastest.  You select the desired combination of  speed  and  com-
                            pression.  TWOLEVEL is an exhaustive full-pixel search, followed by a
                            local half- pixel search around the best full-pixel vector (the PIXEL
                            option is ignored for this search algorithm).

                     BSEARCH_ALG <algorithm>
                            algorithm  must  be  one of {SIMPLE, CROSS2, EXHAUSTIVE}.  Tells what
                            kind of search procedure should be used for B-frames.   Simple  means
                            find  best  forward  and  backward vectors, then interpolate.  Cross2
                            means find those two vectors, then  see  what  backward  vector  best
                            matches  the best forward vector, and vice versa.  Exhaustive does an
                            n-squared search and is EXTREMELY slow  in  relation  to  the  others
                            (Cross2 is about twice as slow as Simple).

                     IQSCALE <n>
                            use n as the qscale for I-frames

                     PQSCALE <n>
                            use n as the qscale for P-frames

                     BQSCALE <n>
                            use n as the qscale for B-frames

                     REFERENCE_FRAME <ORIGINAL or DECODED>
                            If ORIGINAL is specified, then the original images are used when com-
                            puting motion vectors.  To be more accurate, use  DECODED,  in  which
                            the decoded images are used.  This should increase the quality of the
                            image, but will take a bit longer to encode.
                     The following lines are optional:

                            FORCE_I_ALIGN
                                   This option is only relevant for parallel execution  (see  be-
                                   low).  It forces each processor to encode a block of N frames,
                                   where N must be a multiple of the pattern length.   Since  the
                                   first  frame  in  any  pattern is an I-frame, this forces each
                                   block encoded by a processor to begin with an I-frame.
                            foo

NOTES
       If the BASE_FILE_FORMAT is YUV, then the parameter file must contain:
              YUV_SIZE <w>x<h>
       where w = width, h = height (in pixels) of image, and
              YUV_FORMAT <ABEKAS or PHILLIPS or UCB or EYUV or pattern>.
       See the file doc/INPUT.FORMAT for more information.

       If the -combine-gops option is used, then only the YUV_SIZE  and  OUTPUT  values  need  be
       specified  in  the  parameter file.  In addition, the parameter file may specify input GOP
       files in the same manner as normal input files -- except instead of using  INPUT_DIR,  IN-
       PUT,  and  END_INPUT,  use  GOP_INPUT_DIR,  GOP_INPUT, and GOP_END_INPUT.  If no input GOP
       files are specified, then the  default  is  to  use  the  output  file  name  with  suffix
       ".gop.<gop_num>" starting from 0 as the input files.

       If the -combine-frames option is used, then only the YUV_SIZE, GOP_SIZE, and OUTPUT values
       need be specified in the parameter file.  In addition, the parameter file may specify  in-
       put  frame  files  in the same manner as normal input files -- except instead of using IN-
       PUT_DIR, INPUT, and END_INPUT, use FRAME_INPUT_DIR, FRAME_INPUT, and FRAME_END_INPUT.   If
       no  input  frame files are specified, then the default is to use the output file name with
       suffix ".frame.<frame_num>" starting from 0 as the input files.

       Any number of spaces and tabs may come between each option  and  value.   Lines  beginning
       with  '#'  are  ignored.   Any  other lines are ignored except for those between INPUT and
       END_INPUT.  This allows you to use the same parameter file for normal usage and for  -com-
       bine_gops and -combine_frames.

       The encoder is case-sensitive so, except for file names and directories, everything should
       be in upper case.

       The lines may appear in any order, except the following exceptions.  INPUT must appear be-
       fore END_INPUT  (also, GOP_INPUT before GOP_END_INPUT and FRAME_INPUT before FRAME_END_IN-
       PUT).  All lines between INPUT and END_INPUT must be the frames in play order.

       The encoder is prepared to handle up to 16 B frames between reference frames when encoding
       with  input  from  stdin.   To  increase  this  amount, change the constant B_FRAME_RUN in
       frame.c and recompile.

PARALLEL OPERATION
       The encoder may be run on multiple machines at once.  To do so, add a line  "PARALLEL"  in
       the  parameter  file,  followed  by  a listing, one machine per line, then "END_PARALLEL".
       Each of the lines should be in one of two forms.  If the machine has access  to  the  file
       server, then the line should be:

            <machine> <user> <executable>

       The  executable  is  normally  ppmtompeg (you may need to give the complete path if you've
       built for different architectures).  If the machine is a remote  machine,  then  the  line
       should be:

            REMOTE <machine> <user> <executable> <parameter file>

       Full paths should generally be used when describing executables and parameter files.  This
       INCLUDES the parameter file given as an argument to the original call to ppmtompeg.  Also,
       .rhosts files on the appropriate machines should have the appropriate information.

       The  encoder  will  use  the original machine for the master and I/O server processes, and
       uses the listed machines as slaves to do the computation.

       Optional lines are

       RSH <remote shell command>
              The encoder uses the remote shell command to start  processes  on  other  machines.
              The  default command is 'rsh.'  If your machine supports a different command, spec-
              ify it here.

       PARALLEL_TEST_FRAMES <n>
              n is the number of frames to encode initially on each processor

       PARALLEL_TIME_CHUNKS <t>
              subsequently, each slave processor will be asked to encode for approximately t sec-
              onds.  Smaller values of <t> increase communication, but improve load balancing.

              The default values for these two options are n = 3 frames and t = 30 seconds.

       PARALLEL_PERFECT
              If  this  line is present, then scheduling is done on the assumption that work dis-
              tribution will be perfectly even -- meaning that each machine  is  about  the  same
              speed.   The  frames will simply be divided up evenly between the processors.  This
              has the advantage of very minimal scheduling overhead, but is  obviously  wrong  if
              machines have varying speeds, or if the network load makes performance uneven.

VERSION
       This is version 1.5 it contins new features and bug fixes from version 1.3.

BUGS
       Not really a bug, but at least a limitation: If writing to an output file, ppmtompeg some-
       times uses <filename>.* as temporary files.

       No known bugs, but if you find any, report them to mpeg-bugs AT plateau.edu.

AUTHORS
       Kevin Gong - University of California, Berkeley, keving AT cs.edu

       Ketan Patel - University of California, Berkeley, kpatel AT cs.edu

       Dan Wallach - University of California, Berkeley, dwallach AT cs.edu

       Darryl Brown - University of California, Berkeley, darryl AT cs.edu

       Eugene Hung - University of California, Berkeley, eyhung AT cs.edu

       Steve Smoot - University of California, Berkeley, smoot AT cs.edu

                                         1 February 1995                             PPMTOMPEG(1)

Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache
Under GNU General Public License
2024-12-12 17:00 @18.117.92.86 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0!Valid CSS!