diff options
author | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2006-08-19 03:12:28 +0000 |
---|---|---|
committer | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2006-08-19 03:12:28 +0000 |
commit | 1fd361a1ea06e44286c213ca1f814f49306fdc43 (patch) | |
tree | 64c8c96cf54d8718847339a403e5e67b922e8c3f /converter/ppm/ppmtompeg/docs | |
download | netpbm-mirror-1fd361a1ea06e44286c213ca1f814f49306fdc43.tar.gz netpbm-mirror-1fd361a1ea06e44286c213ca1f814f49306fdc43.tar.xz netpbm-mirror-1fd361a1ea06e44286c213ca1f814f49306fdc43.zip |
Create Subversion repository
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@1 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'converter/ppm/ppmtompeg/docs')
-rw-r--r-- | converter/ppm/ppmtompeg/docs/EXTENSIONS | 41 | ||||
-rw-r--r-- | converter/ppm/ppmtompeg/docs/INPUT.FORMAT | 79 | ||||
-rw-r--r-- | converter/ppm/ppmtompeg/docs/parallel.param | 142 | ||||
-rw-r--r-- | converter/ppm/ppmtompeg/docs/param-summary | 14 | ||||
-rw-r--r-- | converter/ppm/ppmtompeg/docs/template.param | 154 | ||||
-rw-r--r-- | converter/ppm/ppmtompeg/docs/users-guide.ps | 3233 |
6 files changed, 3663 insertions, 0 deletions
diff --git a/converter/ppm/ppmtompeg/docs/EXTENSIONS b/converter/ppm/ppmtompeg/docs/EXTENSIONS new file mode 100644 index 00000000..c683fbf8 --- /dev/null +++ b/converter/ppm/ppmtompeg/docs/EXTENSIONS @@ -0,0 +1,41 @@ +EXTENSIONS +---------- + +This is a list of things that we'd like to incorporate into the encoder. +If you succeed in implementing any of them, please let us know! + +* better B-frame search technique +* use DCT-space when computing error terms +* vary the q-scale according to the error term +* other motion vector search techniques +* modify the program to have a finer-grained parallelism option -- we + can probably encode slices in parallel (this will only be useful if we + want to do a few B-frames using exhaustive search) +* include system layer +* VBV delay with rate control + + +CREATING YOUR OWN MOTION SEARCH ROUTINES +---------------------------------------- + +Adding your own special motion search routine is very easy. We'll explain +adding a P-frame search routine; adding a B-frame routine is similar. + +First, edit the procedures PMotionSearch and SetPSearchAlg (both in the +file psearch.c) to recognize your new search routine. You probably want +to define a constant + PSEARCH_<your search name> in headers/search.h + +Have PMotionSearch call your search procedure just as it calls the other +standard search procedures. Make sure your procedure follows the guidelines +in the comments for PMotionSearch. + +Note: The encoder uses MAD as its search criterion. The reason for this: + "Among the various criteria that can be used as a measure of the + match between the two blocks, the mean absolute difference (MAD) + is favored because it requires no multiplication and gives + similar performance as the mean squared error (MSE)." + - Liu and Zaccarin, + "New Fast Algorithms for the Estimation of Block Motion Vectors," + IEEE Transactions on Circuits and Systems for Video Technology + Volume 3 No. 2 (April 1993) diff --git a/converter/ppm/ppmtompeg/docs/INPUT.FORMAT b/converter/ppm/ppmtompeg/docs/INPUT.FORMAT new file mode 100644 index 00000000..8a663d3a --- /dev/null +++ b/converter/ppm/ppmtompeg/docs/INPUT.FORMAT @@ -0,0 +1,79 @@ + ---------------- + | FILE FORMATS | + ---------------- + +PPM FORMAT +---------- + +See http://netpbm.sourceforge.net/doc/ppm.html . + + +UCB YUV FORMAT +-------------- + +You should be aware that the YUV format used in the MPEG encoder is DIFFERENT +than the Abekas YUV format. The reason for this is that in MPEG, the U and +V components are subsampled 4:1. + +To give you an idea of what format the YUV file must be in, the following +code will read in a YUV file: + + unsigned char **y_data, **cr_data, **cb_data; + + void ReadYUV(char *fileName, int width, int height) + { + FILE *fpointer; + register int y; + + /* should allocate memory for y_data, cr_data, cb_data here */ + + fpointer = fopen(fileName, "r"); + + for (y = 0; y < height; y++) /* Y */ + fread(y_data[y], 1, width, fpointer); + + for (y = 0; y < height / 2; y++) /* U */ + fread(cb_data[y], 1, width / 2, fpointer); + + for (y = 0; y < height / 2; y++) /* V */ + fread(cr_data[y], 1, width / 2, fpointer); + + fclose(fpointer); + } + +There are two reasons why you'd want to use YUV files rather than PPM files: + 1) The YUV files are 50% the size of the corresponding PPM files + 2) The ENCODER will run slightly faster, since it doesn't have to + do the RGB to YUV conversion itself. + + +ABEKAS YUV FORMAT +----------------- + +The Abekas YUV Format interlaces the Y, U, and V values in a 4:2:2 format. +The interlacing pattern is + +UYVY + +for each group of 4 bytes in the file. + + +PHILLIPS YUV FORMAT +------------------- + +The Phillips YUV Format interlaces the Y, U, and V values in a 4:2:2 format. +The interlacing pattern is + +YVYU + +for each group of 4 bytes in the file. + + +You may specify either ABEKAS, PHILLIPS, or UCB as the YUV_FORMAT when +encoding ; the encoder defaults to UCB YUV_FORMAT if not specified. +In addition, if you've got a weird interlacing format, you can also +try and de-interlace it by giving the YUV pattern in the YUV_FORMAT. +So a YUV 4:4:4 format would be + +YUVYUV + diff --git a/converter/ppm/ppmtompeg/docs/parallel.param b/converter/ppm/ppmtompeg/docs/parallel.param new file mode 100644 index 00000000..0702d32c --- /dev/null +++ b/converter/ppm/ppmtompeg/docs/parallel.param @@ -0,0 +1,142 @@ +# parameter file template with parallel execution +# +# you can use this as a template, copying it to a separate file then modifying +# the copy +# +# +# any line beginning with '#' is a comment +# +# no line should be longer than 255 characters +# +# +# general format of each line is: +# <option> <spaces and/or tabs> <value> +# +# lines can generally be in any order +# +# only exception is the option 'INPUT' which must be followed by input +# files in the order in which they must appear, followed by 'END_INPUT' +# +# <option> MUST be in UPPER CASE +# + +PATTERN IBBPBBI +OUTPUT /n/picasso/users/keving/encode/output.mpg + +# mpeg_encode really only accepts 3 different file formats, but using a +# conversion statement it can effectively handle ANY file format +# +# you must specify whether you will convert to PNM or PPM or YUV format +# (must be upper case) +# +BASE_FILE_FORMAT YUV + +# +# if YUV format (or using parallel version), must provide width and height +# YUV_SIZE widthxheight +# this option is ignored if BASE_FILE_FORMAT is PPM or PNM and you're running +# on just one machine +# +YUV_SIZE 352x240 + +# the conversion statement +# +# Each occurrence of '*' will be replaced by the input file +# +# e.g., if you have a bunch of GIF files, then this might be: +# INPUT_CONVERT giftoppm * +# +# e.g., if you have a bunch of files like a.Y a.U a.V, etc., then: +# INPUT_CONVERT cat *.Y *.U *.V +# +# e.g., if you are grabbing from laser disc you might have something like +# INPUT_CONVERT goto frame *; grabppm +# 'INPUT_CONVERT *' means the files are already in the base file format +# +INPUT_CONVERT * + +# number of frames in a GOP. +# +# since each GOP must have at least one I-frame, the encoder will find the +# the first I-frame after GOP_SIZE frames to start the next GOP +# +# later, will add more flexible GOP signalling +# +GOP_SIZE 6 + +# number of slices in a frame +# +# 1 is a good number. another possibility is the number of macroblock rows +# (which is the height divided by 16) +# +SLICES_PER_FRAME 1 + +# directory to get all input files from (makes this file easier to read) +# can't use stdin with parallel encoding +INPUT_DIR /n/picasso/users/keving/encode/input/tennis + +INPUT +# '*' is replaced by the numbers 01, 02, 03, 04 +# if I instead do [01-11], it would be 01, 02, ..., 09, 10, 11 +# if I instead do [1-11], it would be 1, 2, 3, ..., 9, 10, 11 +# if I instead do [1-11+3], it would be 1, 4, 7, 10 +# the program assumes none of your input files has a name ending in ']' +# if you do, too bad!!! +# +# +stennis.*.yuv [0-7] +# can have more files here if you want...there is no limit on the number +# of files +END_INPUT + + + +# all of the remaining options have to do with the motion search and qscale + +# FULL or HALF -- must be upper case +PIXEL HALF + +# means +/- this many pixels +RANGE 10 + +# this must be one of {EXHAUSTIVE, SUBSAMPLE, LOGARITHMIC} +PSEARCH_ALG LOGARITHMIC + +# this must be one of {SIMPLE, CROSS2, EXHAUSTIVE} +# +# note that EXHAUSTIVE is really, really, really slow +# +BSEARCH_ALG CROSS2 + +# +# these specify the q-scale for I, P, and B frames +# (values must be between 1 and 31) +# +IQSCALE 8 +PQSCALE 10 +BQSCALE 25 + +# this must be ORIGINAL or DECODED +REFERENCE_FRAME ORIGINAL + + +# the following two are optional (default = 10, 60) + +# number of frames to do initially to gauge speed of machine +PARALLEL_TEST_FRAMES 3 + +# number of seconds per chunk thereafter +PARALLEL_TIME_CHUNKS 30 + + +PARALLEL +# lines must be of form "machine <whitespace> username <whitespace> executable" +charlie-brown keving ~keving/encode/bin/dec-alpha/mpeg_encode +#woodstock keving ~keving/encode/bin/dec-alpha/mpeg_encode +#REMOTE charlie-brown keving ~keving/encode/bin/dec-alpha/mpeg_encode ~keving/encode/examples/parallel.param +# remote machine: "REMOTE machine username executable param_file" +# mickey keving ~keving/encode/bin/dec-5000/mpeg_encode +#REMOTE mickey keving ~keving/encode/bin/dec-5000/mpeg_encode ~keving/encode/examples/parallel.param +#REMOTE mickey keving ~keving/encode/bin/dec-5000/mpeg_encode ~keving/encode/examples/parallel.param +REMOTE woodstock keving ~keving/encode/bin/dec-alpha/mpeg_encode ~keving/encode/examples/parallel.param +END_PARALLEL diff --git a/converter/ppm/ppmtompeg/docs/param-summary b/converter/ppm/ppmtompeg/docs/param-summary new file mode 100644 index 00000000..d8322bfb --- /dev/null +++ b/converter/ppm/ppmtompeg/docs/param-summary @@ -0,0 +1,14 @@ +Different MPEG coding strategies +-------------------------------- + +Strategy Speed Compression Quality +-------- ----- ----------- ------- +Increase MV Search Range Down Up Up? +Increasing Q-Scale Same Up Down +Decreasing Q-Scale Same Down Up +Use half-pixel search Down Up Up? +Use pixel subsampling Up Down Down? +Use motion vector subsampling Up Down Down? +Use decoded frame as reference Same Unknown Up? +Varying q-scale Down Up Down + diff --git a/converter/ppm/ppmtompeg/docs/template.param b/converter/ppm/ppmtompeg/docs/template.param new file mode 100644 index 00000000..66b6dd98 --- /dev/null +++ b/converter/ppm/ppmtompeg/docs/template.param @@ -0,0 +1,154 @@ +# parameter file template with lots of comments to assist you +# +# you can use this as a template, copying it to a separate file then modifying +# the copy +# +# +# any line beginning with '#' is a comment +# +# no line should be longer than 255 characters +# +# +# general format of each line is: +# <option> <spaces and/or tabs> <value> +# +# lines can generally be in any order +# +# an exception is the option 'INPUT' which must be followed by input +# files in the order in which they must appear, followed by 'END_INPUT' +# +# Also, if you use the `command` method of generating input file names, +# the command will only be executed in the INPUT_DIR if INPUT_DIR preceeds +# the INPUT parameter. +# +# <option> MUST be in UPPER CASE +# + +PATTERN IBBPBBPBBPBBPBBP +OUTPUT output.mpg + +# mpeg_encode really only accepts 3 different file formats, but using a +# conversion statement it can effectively handle ANY file format +# +# You must specify the type of the input files. The choices are: +# YUV, PPM, JMOVIE, Y, JPEG, PNM +# (must be upper case) +# +BASE_FILE_FORMAT YUV + +# +# if YUV format (or using parallel version), must provide width and height +# YUV_SIZE widthxheight +# this option is ignored if BASE_FILE_FORMAT is not YUV and you're running +# on just one machine +# +YUV_SIZE 352x240 + +# If you are using YUV, there are different supported file formats. +# EYUV or UCB are the same as previous versions of this encoder. +# (All the Y's, then U's then V's, in 4:2:0 subsampling.) +# Other formats, such as Abekas, Phillips, or a general format are +# permissible, the general format is a string of Y's, U's, and V's +# to specify the file order. + +INPUT_FORMAT UCB + +# the conversion statement +# +# Each occurrence of '*' will be replaced by the input file +# +# e.g., if you have a bunch of GIF files, then this might be: +# INPUT_CONVERT giftoppm * +# +# e.g., if you have a bunch of files like a.Y a.U a.V, etc., then: +# INPUT_CONVERT cat *.Y *.U *.V +# +# e.g., if you are grabbing from laser disc you might have something like +# INPUT_CONVERT goto frame *; grabppm +# 'INPUT_CONVERT *' means the files are already in the base file format +# +INPUT_CONVERT * + +# number of frames in a GOP. +# +# since each GOP must have at least one I-frame, the encoder will find the +# the first I-frame after GOP_SIZE frames to start the next GOP +# +# later, will add more flexible GOP signalling +# +GOP_SIZE 16 + +# number of slices in a frame +# +# 1 is a good number. another possibility is the number of macroblock rows +# (which is the height divided by 16) +# +SLICES_PER_FRAME 1 + +# directory to get all input files from (makes this file easier to read) +INPUT_DIR ../input/tennis + +# There are a bunch of ways to specify the input files. +# from a simple one-per-line listing, to the following +# way of numbering them. See the manual for more information. +INPUT +# '*' is replaced by the numbers 01, 02, 03, 04 +# if I instead do [01-11], it would be 01, 02, ..., 09, 10, 11 +# if I instead do [1-11], it would be 1, 2, 3, ..., 9, 10, 11 +# if I instead do [1-11+3], it would be 1, 4, 7, 10 +# the program assumes none of your input files has a name ending in ']' +# if you do, too bad!!! +# +# +stennis.*.yuv [0-23] +# can have more files here if you want...there is no limit on the number +# of files +END_INPUT + + + +# Many of the remaining options have to do with the motion search and qscale + +# FULL or HALF -- must be upper case +PIXEL HALF + +# means +/- this many pixels for both P and B frame searches +# specify two numbers if you wish to serc different ranges in the two. +RANGE 10 + +# this must be one of {EXHAUSTIVE, SUBSAMPLE, LOGARITHMIC} +PSEARCH_ALG LOGARITHMIC + +# this must be one of {SIMPLE, CROSS2, EXHAUSTIVE} +# +# note that EXHAUSTIVE is really, really, really slow +# +BSEARCH_ALG CROSS2 + +# +# these specify the q-scale for I, P, and B frames +# (values must be between 1 and 31) +# These are the Qscale values for the entire frame in variable bit-rate +# mode, and starting points (but not important) for constant bit rate +# +IQSCALE 8 +PQSCALE 10 +BQSCALE 25 + +# this must be ORIGINAL or DECODED +REFERENCE_FRAME ORIGINAL + +# for parallel parameters see parallel.param in the exmaples subdirectory + +# if you want constant bit-rate mode, specify it as follows (number is bits/sec): +BIT_RATE 1000000 + +# To specify the buffer size (327680 is default, measused in bits, for 16bit words) +BUFFER_SIZE 327680 + +# The frame rate is the number of frames/second (legal values: +# 23.976, 24, 25, 29.97, 30, 50 ,59.94, 60 +FRAME_RATE 30 + +# There are many more options, see the users manual for examples.... +# ASPECT_RATIO, USER_DATA, GAMMA, IQTABLE, etc. diff --git a/converter/ppm/ppmtompeg/docs/users-guide.ps b/converter/ppm/ppmtompeg/docs/users-guide.ps new file mode 100644 index 00000000..2e39be0a --- /dev/null +++ b/converter/ppm/ppmtompeg/docs/users-guide.ps @@ -0,0 +1,3233 @@ +%! +%%BoundingBox: (atend) +%%Pages: (atend) +%%DocumentFonts: (atend) +%%EndComments +% +% FrameMaker PostScript Prolog 3.0, for use with FrameMaker 3.0 +% Copyright (c) 1986,87,89,90,91 by Frame Technology Corporation. +% All rights reserved. +% +% Known Problems: +% Due to bugs in Transcript, the 'PS-Adobe-' is omitted from line 1 +/FMversion (3.0) def +% Set up Color vs. Black-and-White + /FMPrintInColor systemdict /colorimage known + systemdict /currentcolortransfer known or def +% Uncomment this line to force b&w on color printer +% /FMPrintInColor false def +/FrameDict 195 dict def +systemdict /errordict known not {/errordict 10 dict def + errordict /rangecheck {stop} put} if +% The readline in 23.0 doesn't recognize cr's as nl's on AppleTalk +FrameDict /tmprangecheck errordict /rangecheck get put +errordict /rangecheck {FrameDict /bug true put} put +FrameDict /bug false put +mark +% Some PS machines read past the CR, so keep the following 3 lines together! +currentfile 5 string readline +00 +0000000000 +cleartomark +errordict /rangecheck FrameDict /tmprangecheck get put +FrameDict /bug get { + /readline { + /gstring exch def + /gfile exch def + /gindex 0 def + { + gfile read pop + dup 10 eq {exit} if + dup 13 eq {exit} if + gstring exch gindex exch put + /gindex gindex 1 add def + } loop + pop + gstring 0 gindex getinterval true + } def + } if +/FMVERSION { + FMversion ne { + /Times-Roman findfont 18 scalefont setfont + 100 100 moveto + (FrameMaker version does not match postscript_prolog!) + dup = + show showpage + } if + } def +/FMLOCAL { + FrameDict begin + 0 def + end + } def + /gstring FMLOCAL + /gfile FMLOCAL + /gindex FMLOCAL + /orgxfer FMLOCAL + /orgproc FMLOCAL + /organgle FMLOCAL + /orgfreq FMLOCAL + /yscale FMLOCAL + /xscale FMLOCAL + /manualfeed FMLOCAL + /paperheight FMLOCAL + /paperwidth FMLOCAL +/FMDOCUMENT { + array /FMfonts exch def + /#copies exch def + FrameDict begin + 0 ne dup {setmanualfeed} if + /manualfeed exch def + /paperheight exch def + /paperwidth exch def + /yscale exch def + /xscale exch def + currenttransfer cvlit /orgxfer exch def + currentscreen cvlit /orgproc exch def + /organgle exch def /orgfreq exch def + setpapername + manualfeed {true} {papersize} ifelse + {manualpapersize} {false} ifelse + {desperatepapersize} if + end + } def + /pagesave FMLOCAL + /orgmatrix FMLOCAL + /landscape FMLOCAL +/FMBEGINPAGE { + FrameDict begin + /pagesave save def + 3.86 setmiterlimit + /landscape exch 0 ne def + landscape { + 90 rotate 0 exch neg translate pop + } + {pop pop} + ifelse + xscale yscale scale + /orgmatrix matrix def + gsave + } def +/FMENDPAGE { + grestore + pagesave restore + end + showpage + } def +/FMFONTDEFINE { + FrameDict begin + findfont + ReEncode + 1 index exch + definefont + FMfonts 3 1 roll + put + end + } def +/FMFILLS { + FrameDict begin + array /fillvals exch def + end + } def +/FMFILL { + FrameDict begin + fillvals 3 1 roll put + end + } def +/FMNORMALIZEGRAPHICS { + newpath + 0.0 0.0 moveto + 1 setlinewidth + 0 setlinecap + 0 0 0 sethsbcolor + 0 setgray + } bind def + /fx FMLOCAL + /fy FMLOCAL + /fh FMLOCAL + /fw FMLOCAL + /llx FMLOCAL + /lly FMLOCAL + /urx FMLOCAL + /ury FMLOCAL +/FMBEGINEPSF { + end + /FMEPSF save def + /showpage {} def + FMNORMALIZEGRAPHICS + [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall + fx fy translate + rotate + fw urx llx sub div fh ury lly sub div scale + llx neg lly neg translate + } bind def +/FMENDEPSF { + FMEPSF restore + FrameDict begin + } bind def +FrameDict begin +/setmanualfeed { +%%BeginFeature *ManualFeed True + statusdict /manualfeed true put +%%EndFeature + } def +/max {2 copy lt {exch} if pop} bind def +/min {2 copy gt {exch} if pop} bind def +/inch {72 mul} def +/pagedimen { + paperheight sub abs 16 lt exch + paperwidth sub abs 16 lt and + {/papername exch def} {pop} ifelse + } def + /papersizedict FMLOCAL +/setpapername { + /papersizedict 14 dict def + papersizedict begin + /papername /unknown def + /Letter 8.5 inch 11.0 inch pagedimen + /LetterSmall 7.68 inch 10.16 inch pagedimen + /Tabloid 11.0 inch 17.0 inch pagedimen + /Ledger 17.0 inch 11.0 inch pagedimen + /Legal 8.5 inch 14.0 inch pagedimen + /Statement 5.5 inch 8.5 inch pagedimen + /Executive 7.5 inch 10.0 inch pagedimen + /A3 11.69 inch 16.5 inch pagedimen + /A4 8.26 inch 11.69 inch pagedimen + /A4Small 7.47 inch 10.85 inch pagedimen + /B4 10.125 inch 14.33 inch pagedimen + /B5 7.16 inch 10.125 inch pagedimen + end + } def +/papersize { + papersizedict begin + /Letter {lettertray letter} def + /LetterSmall {lettertray lettersmall} def + /Tabloid {11x17tray 11x17} def + /Ledger {ledgertray ledger} def + /Legal {legaltray legal} def + /Statement {statementtray statement} def + /Executive {executivetray executive} def + /A3 {a3tray a3} def + /A4 {a4tray a4} def + /A4Small {a4tray a4small} def + /B4 {b4tray b4} def + /B5 {b5tray b5} def + /unknown {unknown} def + papersizedict dup papername known {papername} {/unknown} ifelse get + end + /FMdicttop countdictstack 1 add def + statusdict begin stopped end + countdictstack -1 FMdicttop {pop end} for + } def +/manualpapersize { + papersizedict begin + /Letter {letter} def + /LetterSmall {lettersmall} def + /Tabloid {11x17} def + /Ledger {ledger} def + /Legal {legal} def + /Statement {statement} def + /Executive {executive} def + /A3 {a3} def + /A4 {a4} def + /A4Small {a4small} def + /B4 {b4} def + /B5 {b5} def + /unknown {unknown} def + papersizedict dup papername known {papername} {/unknown} ifelse get + end + stopped + } def +/desperatepapersize { + statusdict /setpageparams known + { + paperwidth paperheight 0 1 + statusdict begin + {setpageparams} stopped pop + end + } if + } def +/savematrix { + orgmatrix currentmatrix pop + } bind def +/restorematrix { + orgmatrix setmatrix + } bind def +/dmatrix matrix def +/dpi 72 0 dmatrix defaultmatrix dtransform + dup mul exch dup mul add sqrt def +/freq dpi 18.75 div 8 div round dup 0 eq {pop 1} if 8 mul dpi exch div def +/sangle 1 0 dmatrix defaultmatrix dtransform exch atan def +/DiacriticEncoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl +/numbersign /dollar /percent /ampersand /quotesingle /parenleft +/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K +/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash +/bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h +/i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar +/braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute +/Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis +/atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis +/iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve +/ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex +/udieresis /dagger /.notdef /cent /sterling /section /bullet +/paragraph /germandbls /registered /copyright /trademark /acute +/dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef +/yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown +/exclamdown /logicalnot /.notdef /florin /.notdef /.notdef +/guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde +/Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright +/quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis +/fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl +/periodcentered /quotesinglbase /quotedblbase /perthousand +/Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute +/Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve +/Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron +/breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron +] def +/ReEncode { + dup + length + dict begin + { + 1 index /FID ne + {def} + {pop pop} ifelse + } forall + 0 eq {/Encoding DiacriticEncoding def} if + currentdict + end + } bind def +/graymode true def + /bwidth FMLOCAL + /bpside FMLOCAL + /bstring FMLOCAL + /onbits FMLOCAL + /offbits FMLOCAL + /xindex FMLOCAL + /yindex FMLOCAL + /x FMLOCAL + /y FMLOCAL +/setpattern { + /bwidth exch def + /bpside exch def + /bstring exch def + /onbits 0 def /offbits 0 def + freq sangle landscape {90 add} if + {/y exch def + /x exch def + /xindex x 1 add 2 div bpside mul cvi def + /yindex y 1 add 2 div bpside mul cvi def + bstring yindex bwidth mul xindex 8 idiv add get + 1 7 xindex 8 mod sub bitshift and 0 ne + {/onbits onbits 1 add def 1} + {/offbits offbits 1 add def 0} + ifelse + } + setscreen + {} settransfer + offbits offbits onbits add div FMsetgray + /graymode false def + } bind def +/grayness { + FMsetgray + graymode not { + /graymode true def + orgxfer cvx settransfer + orgfreq organgle orgproc cvx setscreen + } if + } bind def + /HUE FMLOCAL + /SAT FMLOCAL + /BRIGHT FMLOCAL + /Colors FMLOCAL +FMPrintInColor + + { + /HUE 0 def + /SAT 0 def + /BRIGHT 0 def + % array of arrays Hue and Sat values for the separations [HUE BRIGHT] + /Colors + [[0 0 ] % black + [0 0 ] % white + [0.00 1.0] % red + [0.37 1.0] % green + [0.60 1.0] % blue + [0.50 1.0] % cyan + [0.83 1.0] % magenta + [0.16 1.0] % comment / yellow + ] def + + /BEGINBITMAPCOLOR { + BITMAPCOLOR} def + /BEGINBITMAPCOLORc { + BITMAPCOLORc} def + /BEGINBITMAPTRUECOLOR { + BITMAPTRUECOLOR } def + /BEGINBITMAPTRUECOLORc { + BITMAPTRUECOLORc } def + /K { + Colors exch get dup + 0 get /HUE exch store + 1 get /BRIGHT exch store + HUE 0 eq BRIGHT 0 eq and + {1.0 SAT sub setgray} + {HUE SAT BRIGHT sethsbcolor} + ifelse + } def + /FMsetgray { + /SAT exch 1.0 exch sub store + HUE 0 eq BRIGHT 0 eq and + {1.0 SAT sub setgray} + {HUE SAT BRIGHT sethsbcolor} + ifelse + } bind def + } + + { + /BEGINBITMAPCOLOR { + BITMAPGRAY} def + /BEGINBITMAPCOLORc { + BITMAPGRAYc} def + /BEGINBITMAPTRUECOLOR { + BITMAPTRUEGRAY } def + /BEGINBITMAPTRUECOLORc { + BITMAPTRUEGRAYc } def + /FMsetgray {setgray} bind def + /K { + pop + } def + } +ifelse +/normalize { + transform round exch round exch itransform + } bind def +/dnormalize { + dtransform round exch round exch idtransform + } bind def +/lnormalize { + 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop + } bind def +/H { + lnormalize setlinewidth + } bind def +/Z { + setlinecap + } bind def + /fillvals FMLOCAL +/X { + fillvals exch get + dup type /stringtype eq + {8 1 setpattern} + {grayness} + ifelse + } bind def +/V { + gsave eofill grestore + } bind def +/N { + stroke + } bind def +/M {newpath moveto} bind def +/E {lineto} bind def +/D {curveto} bind def +/O {closepath} bind def + /n FMLOCAL +/L { + /n exch def + newpath + normalize + moveto + 2 1 n {pop normalize lineto} for + } bind def +/Y { + L + closepath + } bind def + /x1 FMLOCAL + /x2 FMLOCAL + /y1 FMLOCAL + /y2 FMLOCAL + /rad FMLOCAL +/R { + /y2 exch def + /x2 exch def + /y1 exch def + /x1 exch def + x1 y1 + x2 y1 + x2 y2 + x1 y2 + 4 Y + } bind def +/RR { + /rad exch def + normalize + /y2 exch def + /x2 exch def + normalize + /y1 exch def + /x1 exch def + newpath + x1 y1 rad add moveto + x1 y2 x2 y2 rad arcto + x2 y2 x2 y1 rad arcto + x2 y1 x1 y1 rad arcto + x1 y1 x1 y2 rad arcto + closepath + 16 {pop} repeat + } bind def +/C { + grestore + gsave + R + clip + } bind def + /FMpointsize FMLOCAL +/F { + FMfonts exch get + FMpointsize scalefont + setfont + } bind def +/Q { + /FMpointsize exch def + F + } bind def +/T { + moveto show + } bind def +/RF { + rotate + 0 ne {-1 1 scale} if + } bind def +/TF { + gsave + moveto + RF + show + grestore + } bind def +/P { + moveto + 0 32 3 2 roll widthshow + } bind def +/PF { + gsave + moveto + RF + 0 32 3 2 roll widthshow + grestore + } bind def +/S { + moveto + 0 exch ashow + } bind def +/SF { + gsave + moveto + RF + 0 exch ashow + grestore + } bind def +/B { + moveto + 0 32 4 2 roll 0 exch awidthshow + } bind def +/BF { + gsave + moveto + RF + 0 32 4 2 roll 0 exch awidthshow + grestore + } bind def +/G { + gsave + newpath + normalize translate 0.0 0.0 moveto + dnormalize scale + 0.0 0.0 1.0 5 3 roll arc + closepath fill + grestore + } bind def +/A { + gsave + savematrix + newpath + 2 index 2 div add exch 3 index 2 div sub exch + normalize 2 index 2 div sub exch 3 index 2 div add exch + translate + scale + 0.0 0.0 1.0 5 3 roll arc + restorematrix + stroke + grestore + } bind def + /x FMLOCAL + /y FMLOCAL + /w FMLOCAL + /h FMLOCAL + /xx FMLOCAL + /yy FMLOCAL + /ww FMLOCAL + /hh FMLOCAL + /FMsaveobject FMLOCAL + /FMoptop FMLOCAL + /FMdicttop FMLOCAL +/BEGINPRINTCODE { + /FMdicttop countdictstack 1 add def + /FMoptop count 4 sub def + /FMsaveobject save def + userdict begin + /showpage {} def + FMNORMALIZEGRAPHICS + 3 index neg 3 index neg translate + } bind def +/ENDPRINTCODE { + count -1 FMoptop {pop pop} for + countdictstack -1 FMdicttop {pop end} for + FMsaveobject restore + } bind def +/gn { + 0 + { 46 mul + cf read pop + 32 sub + dup 46 lt {exit} if + 46 sub add + } loop + add + } bind def + /str FMLOCAL +/cfs { + /str sl string def + 0 1 sl 1 sub {str exch val put} for + str def + } bind def +/ic [ + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 + 0 + {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} + {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} + {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} + {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} + {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} + {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} + {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} + {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} + {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} + ] def + /sl FMLOCAL + /val FMLOCAL + /ws FMLOCAL + /im FMLOCAL + /bs FMLOCAL + /cs FMLOCAL + /len FMLOCAL + /pos FMLOCAL +/ms { + /sl exch def + /val 255 def + /ws cfs + /im cfs + /val 0 def + /bs cfs + /cs cfs + } bind def +400 ms +/ip { + is + 0 + cf cs readline pop + { ic exch get exec + add + } forall + pop + + } bind def +/wh { + /len exch def + /pos exch def + ws 0 len getinterval im pos len getinterval copy pop + pos len + } bind def +/bl { + /len exch def + /pos exch def + bs 0 len getinterval im pos len getinterval copy pop + pos len + } bind def +/s1 1 string def +/fl { + /len exch def + /pos exch def + /val cf s1 readhexstring pop 0 get def + pos 1 pos len add 1 sub {im exch val put} for + pos len + } bind def +/hx { + 3 copy getinterval + cf exch readhexstring pop pop + } bind def + /h FMLOCAL + /w FMLOCAL + /d FMLOCAL + /lb FMLOCAL + /bitmapsave FMLOCAL + /is FMLOCAL + /cf FMLOCAL +/wbytes { + dup + 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse + } bind def +/BEGINBITMAPBWc { + 1 {} COMMONBITMAPc + } bind def +/BEGINBITMAPGRAYc { + 8 {} COMMONBITMAPc + } bind def +/BEGINBITMAP2BITc { + 2 {} COMMONBITMAPc + } bind def +/COMMONBITMAPc { + /r exch def + /d exch def + gsave + translate rotate scale /h exch def /w exch def + /lb w d wbytes def + sl lb lt {lb ms} if + /bitmapsave save def + r + /is im 0 lb getinterval def + ws 0 lb getinterval is copy pop + /cf currentfile def + w h d [w 0 0 h neg 0 h] + {ip} image + bitmapsave restore + grestore + } bind def +/BEGINBITMAPBW { + 1 {} COMMONBITMAP + } bind def +/BEGINBITMAPGRAY { + 8 {} COMMONBITMAP + } bind def +/BEGINBITMAP2BIT { + 2 {} COMMONBITMAP + } bind def +/COMMONBITMAP { + /r exch def + /d exch def + gsave + translate rotate scale /h exch def /w exch def + /bitmapsave save def + r + /is w d wbytes string def + /cf currentfile def + w h d [w 0 0 h neg 0 h] + {cf is readhexstring pop} image + bitmapsave restore + grestore + } bind def + /proc1 FMLOCAL + /proc2 FMLOCAL + /newproc FMLOCAL +/Fmcc { + /proc2 exch cvlit def + /proc1 exch cvlit def + /newproc proc1 length proc2 length add array def + newproc 0 proc1 putinterval + newproc proc1 length proc2 putinterval + newproc cvx +} bind def +/ngrayt 256 array def +/nredt 256 array def +/nbluet 256 array def +/ngreent 256 array def + /gryt FMLOCAL + /blut FMLOCAL + /grnt FMLOCAL + /redt FMLOCAL + /indx FMLOCAL + /cynu FMLOCAL + /magu FMLOCAL + /yelu FMLOCAL + /k FMLOCAL + /u FMLOCAL +/colorsetup { + currentcolortransfer + /gryt exch def + /blut exch def + /grnt exch def + /redt exch def + 0 1 255 { + /indx exch def + /cynu 1 red indx get 255 div sub def + /magu 1 green indx get 255 div sub def + /yelu 1 blue indx get 255 div sub def + /k cynu magu min yelu min def + /u k currentundercolorremoval exec def + nredt indx 1 0 cynu u sub max sub redt exec put + ngreent indx 1 0 magu u sub max sub grnt exec put + nbluet indx 1 0 yelu u sub max sub blut exec put + ngrayt indx 1 k currentblackgeneration exec sub gryt exec put + } for + {255 mul cvi nredt exch get} + {255 mul cvi ngreent exch get} + {255 mul cvi nbluet exch get} + {255 mul cvi ngrayt exch get} + setcolortransfer + {pop 0} setundercolorremoval + {} setblackgeneration + } bind def + /tran FMLOCAL +/fakecolorsetup { + /tran 256 string def + 0 1 255 {/indx exch def + tran indx + red indx get 77 mul + green indx get 151 mul + blue indx get 28 mul + add add 256 idiv put} for + currenttransfer + {255 mul cvi tran exch get 255.0 div} + exch Fmcc settransfer +} bind def +/BITMAPCOLOR { + /d 8 def + gsave + translate rotate scale /h exch def /w exch def + /bitmapsave save def + colorsetup + /is w d wbytes string def + /cf currentfile def + w h d [w 0 0 h neg 0 h] + {cf is readhexstring pop} {is} {is} true 3 colorimage + bitmapsave restore + grestore + } bind def +/BITMAPCOLORc { + /d 8 def + gsave + translate rotate scale /h exch def /w exch def + /lb w d wbytes def + sl lb lt {lb ms} if + /bitmapsave save def + colorsetup + /is im 0 lb getinterval def + ws 0 lb getinterval is copy pop + /cf currentfile def + w h d [w 0 0 h neg 0 h] + {ip} {is} {is} true 3 colorimage + bitmapsave restore + grestore + } bind def +/BITMAPTRUECOLORc { + gsave + translate rotate scale /h exch def /w exch def + /bitmapsave save def + + /is w string def + + ws 0 w getinterval is copy pop + /cf currentfile def + w h 8 [w 0 0 h neg 0 h] + {ip} {gip} {bip} true 3 colorimage + bitmapsave restore + grestore + } bind def +/BITMAPTRUECOLOR { + gsave + translate rotate scale /h exch def /w exch def + /bitmapsave save def + /is w string def + /gis w string def + /bis w string def + /cf currentfile def + w h 8 [w 0 0 h neg 0 h] + { cf is readhexstring pop } + { cf gis readhexstring pop } + { cf bis readhexstring pop } + true 3 colorimage + bitmapsave restore + grestore + } bind def +/BITMAPTRUEGRAYc { + gsave + translate rotate scale /h exch def /w exch def + /bitmapsave save def + + /is w string def + + ws 0 w getinterval is copy pop + /cf currentfile def + w h 8 [w 0 0 h neg 0 h] + {ip gip bip w gray} image + bitmapsave restore + grestore + } bind def +/ww FMLOCAL +/r FMLOCAL +/g FMLOCAL +/b FMLOCAL +/i FMLOCAL +/gray { + /ww exch def + /b exch def + /g exch def + /r exch def + 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul + b i get .114 mul add add r i 3 -1 roll floor cvi put } for + r + } bind def +/BITMAPTRUEGRAY { + gsave + translate rotate scale /h exch def /w exch def + /bitmapsave save def + /is w string def + /gis w string def + /bis w string def + /cf currentfile def + w h 8 [w 0 0 h neg 0 h] + { cf is readhexstring pop + cf gis readhexstring pop + cf bis readhexstring pop w gray} image + bitmapsave restore + grestore + } bind def +/BITMAPGRAY { + 8 {fakecolorsetup} COMMONBITMAP + } bind def +/BITMAPGRAYc { + 8 {fakecolorsetup} COMMONBITMAPc + } bind def +/ENDBITMAP { + } bind def +end + /ALDsave FMLOCAL + /ALDmatrix matrix def ALDmatrix currentmatrix pop +/StartALD { + /ALDsave save def + savematrix + ALDmatrix setmatrix + } bind def +/InALD { + restorematrix + } bind def +/DoneALD { + ALDsave restore + } bind def +%%EndProlog +%%BeginSetup +(3.0) FMVERSION +1 1 612 792 0 1 12 FMDOCUMENT +0 0 /Times-Roman FMFONTDEFINE +1 0 /Times-Bold FMFONTDEFINE +2 0 /Courier FMFONTDEFINE +3 0 /Times-Italic FMFONTDEFINE +32 FMFILLS +0 0 FMFILL +1 .1 FMFILL +2 .3 FMFILL +3 .5 FMFILL +4 .7 FMFILL +5 .9 FMFILL +6 .97 FMFILL +7 1 FMFILL +8 <0f1e3c78f0e1c387> FMFILL +9 <0f87c3e1f0783c1e> FMFILL +10 <cccccccccccccccc> FMFILL +11 <ffff0000ffff0000> FMFILL +12 <8142241818244281> FMFILL +13 <03060c183060c081> FMFILL +14 <8040201008040201> FMFILL +16 1 FMFILL +17 .9 FMFILL +18 .7 FMFILL +19 .5 FMFILL +20 .3 FMFILL +21 .1 FMFILL +22 0.03 FMFILL +23 0 FMFILL +24 <f0e1c3870f1e3c78> FMFILL +25 <f0783c1e0f87c3e1> FMFILL +26 <3333333333333333> FMFILL +27 <0000ffff0000ffff> FMFILL +28 <7ebddbe7e7dbbd7e> FMFILL +29 <fcf9f3e7cf9f3f7e> FMFILL +30 <7fbfdfeff7fbfdfe> FMFILL +%%EndSetup +%%Page: "11" 11 +%%BeginPaperSize: Letter +%%EndPaperSize +612 792 0 FMBEGINPAGE +57.97 26.65 554.03 40.82 R +7 X +0 K +V +0 10 Q +0 X +(11) 301 34.15 T +56.69 54.99 297.64 735.31 R +7 X +V +1 12 Q +0 X +(7. Fr) 56.69 727.31 T +(equently Asked Questions) 81.12 727.31 T +0 F +(7.1 Questions) 56.69 699.31 T +(1. How do I encode a sequence that can be) 82.49 672.31 T +(played by the Xing player?) 56.69 658.31 T +(2. I\325m using the Parallax XV) 82.49 644.31 T +(ideo card to) 220.34 644.31 T +(digitize; how do I MPEG-encode the resulting) 56.69 630.31 T +(data?) 56.69 616.31 T +(3. How do I convert the MPEG-encoder) 82.49 602.31 T +(YUV \336les into PPM \336les?) 56.69 588.31 T +(7.2 Answers) 56.69 546.31 T +-0.76 (1. The XING player samples video at 160x120 and) 56.69 518.31 P +(expands to output 320x240. This is where their) 56.69 504.31 T +(speed comes from. The player cannot buf) 56.69 490.31 T +(fer a) 255.32 490.31 T +(320x240 and thus had data overruns. The xing) 56.69 476.31 T +(player would \325) 56.69 462.31 T +(theoretically\325 handle 160x120 I) 126.42 462.31 T +(frames.) 56.69 448.31 T +(Thus, to encode, use P) 56.69 420.31 T +(A) 163.52 420.31 T +(TTERN I and 160x120) 170.85 420.31 T +(frames.) 56.69 406.31 T +(\050jboucher@\337ash.bu.edu\051) 56.69 392.31 T +(2. Use the type JMOVIE, or use the jmovie2jpeg) 56.69 364.31 T +(utility in the misc/ directory) 56.69 350.31 T +(.) 189.84 350.31 T +(3. Stanford\325) 56.69 322.31 T +(s CVv1.2.2.tar) 113.33 322.31 T +(.Z includes) 182.62 322.31 T +(cyuv2ppm.c.) 56.69 308.31 T +-0.2 (Which after you split the Y) 56.69 294.31 P +-0.2 (, U, and V components) 185.05 294.31 P +(out, works \336ne. \050curly@hsn.cftnet.com\051) 56.69 280.31 T +(This can be ftp\325d from) 56.69 252.31 T +2 F +(havefun.stanford.edu) 56.69 238.31 T +0 F +(, in the directory) 200.61 238.31 T +2 F +(/) 282.89 238.31 T +(pub/cv/) 56.69 224.31 T +0 F +(.) 107.07 224.31 T +314.36 54.99 552.76 735.31 R +7 X +V +FMENDPAGE +%%EndPage: "11" 10 +%%Page: "10" 10 +612 792 0 FMBEGINPAGE +57.97 26.65 554.03 40.82 R +7 X +0 K +V +0 10 Q +0 X +(10) 301 34.15 T +56.69 54.99 297.64 735.31 R +7 X +V +0 X +(Usage:) 85.04 728.64 T +2 F +(ppmtoeyuv < input.ppm > output.yuv) 85.04 715.64 T +0 F +0.33 (This takes as input a ppm file and outputs a subsam-) 85.04 689.64 P +(pled yuv file suitable for the encoder.) 56.69 678.64 T +0 12 Q +(6.2 jmovie2jpeg) 56.69 636.31 T +0 10 Q +(Usage:) 85.04 610.64 T +2 F +4.9 (jmovie2jpeg infile outfile start-) 85.04 597.64 P +(frame end-frame) 56.69 586.64 T +(infile) 85.04 560.64 T +0 F +( is a version 2 Parallax J_Movie) 121.02 560.64 T +2 F +(outfile) 85.04 547.64 T +0 F +( is a base file name for the output files) 127.02 547.64 T +2 F +5.44 (start-frame) 85.04 534.64 P +0 F +2.27 ( and) 151 534.64 P +2 F +5.44 (end-frame) 174.97 534.64 P +0 F +2.27 ( are the starting) 228.94 534.64 P +(and ending frame numbers) 56.69 523.64 T +1.39 (This takes as input a J_Movie and creates separate) 85.04 497.64 P +0.09 (JFIF compatible JPEG files with the names base<num>.jpg,) 56.69 486.64 P +(where base is outfile, and <num> are the frame numbers.) 56.69 475.64 T +9.6 (jmovie2jpeg was written by Jim Boucher) 85.04 462.64 P +(\050jboucher@\337ash.bu.edu\051.) 56.69 451.64 T +0 12 Q +(6.3 movieT) 56.69 424.31 T +(oV) 111.15 424.31 T +(id) 125.09 424.31 T +0 10 Q +(Usage:) 85.04 398.64 T +2 F +22.34 (movieToVid movieFile dataDir) 85.04 385.64 P +(indexDir srcHostName) 56.69 374.64 T +0 F +0.95 (This program is used to convert a Parallax J Movie) 85.04 348.64 P +0.58 (into a \322.vid\323 file, which is video only. vid files are used by) 56.69 337.64 P +(some of the programs described later.) 56.69 326.64 T +0.55 (See the README file in misc/mtv/ for more details) 85.04 313.64 P +(on usage.) 56.69 302.64 T +0.58 (movieToVid was written by Brian Smith \050bsmith@-) 85.04 289.64 P +(cs.berkeley.edu\051) 56.69 278.64 T +0 12 Q +(6.4 eyuvtojpeg) 56.69 236.31 T +0 10 Q +(Usage:) 85.04 210.64 T +2 F +(eyuvtojpeg infile outfile) 85.04 197.64 T +0 F +0.27 (This takes as input an encoder yuv file and outputs a) 85.04 171.64 P +(jpeg file. It uses cjpeg to do the compression.) 56.69 160.64 T +0 12 Q +(6.5 blockrun) 56.69 118.31 T +0 10 Q +(Usage:) 85.04 92.64 T +2 F +2.9 (blockrun command num_args firstnum) 85.04 79.64 P +(lastnum skip arg1 ... argn) 56.69 68.64 T +314.36 54.99 552.76 735.31 R +7 X +V +0 F +0 X +7.53 (This runs the given command \050which has) 342.71 715.64 P +2 F +0.32 (num_args) 314.36 704.64 P +0 F +0.13 ( args\051, with the args) 362.34 704.64 P +2 F +0.32 (arg1 ... argn) 444.61 704.64 P +0 F +0.13 (, where) 523.21 704.64 P +-0.04 (any \325=\325 character is replaced by a number from) 314.36 693.64 P +2 F +-0.09 (firstnum) 504.78 693.64 P +0 F +(to) 314.36 682.64 T +2 F +(lastnum) 324.64 682.64 T +0 F +( skipping by) 366.61 682.64 T +2 F +(skip) 418.54 682.64 T +0 F +(. For example:) 442.52 682.64 T +2 F +7.23 (blockrun eyuvtojpeg 2 13 19 3) 342.71 669.64 P +(flow=.yuv flow=.jpg) 314.36 658.64 T +0 F +(will run:) 342.71 632.64 T +2 F +(eyuvtojpeg flow13.yuv flow13.jpg) 342.71 606.64 T +(eyuvtojpeg flow16.yuv flow16.jpg) 342.71 593.64 T +(eyuvtojpeg flow19.yuv flow19.jpg) 342.71 580.64 T +0 12 Q +(6.6 vidtoppm) 314.36 553.31 T +0 10 Q +(Usage:) 342.71 527.64 T +2 F +10.05 (vidtoppm filename width height) 342.71 514.64 P +(start end outbase [quality]) 314.36 503.64 T +0 F +0.39 (This takes as input a .vid file of given) 342.71 477.64 P +2 F +0.94 (height) 499.45 477.64 P +0 F +0.39 ( and) 535.43 477.64 P +2 F +2.91 (width) 314.36 466.64 P +0 F +1.22 (, and turns them into a bunch of ppm files named) 344.35 466.64 P +2 F +(outbase) 314.36 455.64 T +0 F +(.N, where N is a number from) 356.34 455.64 T +2 F +(start) 478.74 455.64 T +0 F +( to) 508.73 455.64 T +2 F +(end) 521.5 455.64 T +0 F +(.) 539.49 455.64 T +0 12 Q +(6.7 vidtojpeg) 314.36 428.31 T +0 10 Q +(Usage:) 342.71 402.64 T +2 F +8.05 (vidtojpeg filename width height) 342.71 389.64 P +(start end outbase [quality]) 314.36 378.64 T +0 F +2.83 (This is the same as vidtoppm, except it outputs) 342.71 352.64 P +(JPEG files instead of PPM files.) 314.36 341.64 T +0 12 Q +(6.8 vidtoeyuv) 314.36 314.31 T +0 10 Q +(Usage:) 342.71 288.64 T +2 F +8.05 (vidtoeyuv filename width height) 342.71 275.64 P +(start nth outbase [quality]) 314.36 264.64 T +0 F +0.39 (This takes as input a .vid file of given) 342.71 238.64 P +2 F +0.94 (height) 499.45 238.64 P +0 F +0.39 ( and) 535.43 238.64 P +2 F +3.58 (width) 314.36 227.64 P +0 F +1.49 (, and turns them into a bunch of yuv files named) 344.35 227.64 P +2 F +2.87 (outbase) 314.36 216.64 P +0 F +1.2 (.N, where N is a number from) 356.34 216.64 P +2 F +2.87 (start) 487.12 216.64 P +0 F +1.2 ( to) 517.1 216.64 P +2 F +2.87 (end) 532.27 216.64 P +0 F +1.2 (,) 550.26 216.64 P +(skipping by) 314.36 205.64 T +2 F +(nth) 363.79 205.64 T +0 F +(.) 381.77 205.64 T +0 12 Q +(6.8 PBMPLUS) 314.36 176.31 T +0 10 Q +-0.04 (There is a very useful package called pbmplus avail-) 342.71 150.64 P +1.46 (able for ftp \050ee.utah.edu:/pbmplus for example\051. This has) 314.36 139.64 P +0.31 (conversions from TIFF, GIF, and many other common for-) 314.36 128.64 P +0.86 (mats to PPMs, which the encoder can read. You can even) 314.36 117.64 P +0.58 (keep the originals in their own format, and do conversions) 314.36 106.64 P +(via) 314.36 95.64 T +2 F +(INPUT_CONVERT.) 329.07 95.64 T +FMENDPAGE +%%EndPage: "10" 9 +%%Page: "9" 9 +612 792 0 FMBEGINPAGE +57.97 26.65 554.03 40.82 R +7 X +0 K +V +0 10 Q +0 X +(9) 303.5 34.15 T +56.69 54.99 297.64 735.31 R +7 X +V +0 X +0.08 (ating input files must work on the remote machine. Also the) 56.69 728.64 P +1.78 (USER_DATA and CDL_FILE files must be available on) 56.69 717.64 P +2.53 (the remote sites as specified in the parameter file. This) 56.69 706.64 P +(should be fixed in future versions.) 56.69 695.64 T +1 12 Q +(4. Performance) 56.69 668.31 T +0 10 Q +1.23 (Table seven shows a comparison of sequential per-) 85.04 641.64 P +(formance on different machine types.) 56.69 630.64 T +1.31 (Parallel performance is dependent not only on pro-) 85.04 422.64 P +1.87 (cessor performance, but network performance. If you are) 56.69 411.64 P +-0.21 (using a 10 Mb/s Ethernet, don\325t expect to get better than 4 or) 56.69 400.64 P +0.89 (5 frames per second -- no matter how fast your processors) 56.69 389.64 P +(are.) 56.69 378.64 T +2.5 (Parallel performance is also greatly dependent on) 85.04 365.64 P +1.16 (how big the input files are \050YUV is better than PPM, and) 56.69 354.64 P +0.81 (JPEG is better than both\051, and how big the output files are) 56.69 343.64 P +(\050better compression will lead to less I/O\051.) 56.69 332.64 T +1 12 Q +(5. Other Options) 56.69 305.31 T +0 10 Q +-0 (This section gives example of some more rarely used) 85.04 278.64 P +0.12 (options in the parameter \336le, such as customizing the Quan-) 56.69 267.64 P +(tization tables, or setting the aspect ratio.) 56.69 256.64 T +0 12 Q +(5.1 Custom Quantization T) 56.69 229.31 T +(ables \050parameter \336le\051) 186.45 229.31 T +0 10 Q +(You can specify your own custom quantization tables.) 56.69 206.64 T +-0.31 (Currently you can only do this once per MPEG file.) 56.69 194.64 P +-0.31 ( Y) 260.99 194.64 P +-0.31 (ou can) 269.39 194.64 P +-0.06 (specify both Intra- and Non-intra quantization tables. If you) 56.69 182.64 P +-0.44 (don\325) 56.69 170.64 P +-0.44 (t specify them, then the default tables are used \050c.f. page) 74.83 170.64 P +(D-16, D-17 of the standard\051.) 56.69 158.64 T +(Usage:) 85.04 141.64 T +2 F +(IQTABLE) 85.04 115.64 T +(table row 1) 85.04 102.64 T +(table row 2) 85.04 89.64 T +(...) 85.04 76.64 T +(table row 8) 85.04 63.64 T +100.63 478.31 253.7 484.31 C +0 0 612 792 C +0 10 Q +0 X +0 K +0.06 (a. Macroblocks per second; a) 118.63 471.64 P +1.5 (320x240 pixel image is 300) 118.63 459.64 P +(macroblocks per frame.) 118.63 447.64 T +1 12 Q +(T) 99.59 594.31 T +(able 7: Machine Comparison) 106.49 594.31 T +0 10 Q +(Machine) 121.41 572.64 T +(MPS) 203.66 572.64 T +0 8 Q +(a) 223.66 576.64 T +0 10 Q +(HP 9000/755) 120.13 554.64 T +(280) 207.94 554.64 T +(DEC 3000/400) 112.92 538.64 T +(247) 207.94 538.64 T +(HP 9000/750) 120.13 522.64 T +(191) 207.94 522.64 T +(Sparc 10) 137.91 506.64 T +(104) 207.94 506.64 T +(DEC 5000) 130.69 490.64 T +(68) 210.44 490.64 T +100.63 584.06 100.63 484.56 2 L +V +0.5 H +0 Z +N +177.16 584.56 177.16 484.06 2 L +V +N +253.7 584.06 253.7 484.56 2 L +V +N +100.38 584.31 253.95 584.31 2 L +V +N +100.88 565.56 253.45 565.56 2 L +V +N +100.88 563.06 253.45 563.06 2 L +V +N +100.38 548.31 253.95 548.31 2 L +V +N +100.38 532.31 253.95 532.31 2 L +V +N +100.38 516.31 253.95 516.31 2 L +V +N +100.38 500.31 253.95 500.31 2 L +V +N +100.38 484.31 253.95 484.31 2 L +V +N +314.36 54.99 552.76 735.31 R +7 X +V +0 X +0.96 (This specifies the intra-coding quantization table \050I) 342.71 715.64 P +0.01 (frames and I-blocks in P and B frames\051. Each) 314.36 704.64 P +2 F +0.03 (table row) 498.76 704.64 P +0 F +(is simply 8 integers, separated by tabs and/or spaces.) 314.36 693.64 T +(Usage:) 342.71 680.64 T +2 F +(NIQTABLE) 342.71 654.64 T +(table row 1) 342.71 641.64 T +(table row 2) 342.71 628.64 T +(...) 342.71 615.64 T +(table row 8) 342.71 602.64 T +0 F +4.63 (This specifies the non-intra-coding quantization) 342.71 576.64 P +(table \050difference vectors in P and B frames\051.) 314.36 565.64 T +0 12 Q +(5.2 Aspect Ratio \050parameter \336le\051) 314.36 538.31 T +0 10 Q +(Y) 340.16 512.64 T +(ou can specify the aspect ratio to be one of the) 346.37 512.64 T +(fourteen legal values as speci\336ed in the standard \050c.f.) 314.36 500.64 T +(Section 2.4.3.2\051. This sets the requested aspect ration for) 314.36 488.64 T +(playback.) 314.36 476.64 T +0 12 Q +(Usage:) 340.16 463.31 T +(ASPECT_RA) 340.16 449.31 T +(TIO \337oat) 406.13 449.31 T +2 10 Q +8.03 (float) 342.71 436.64 P +0 F +3.34 ( is one of {1.0, 0.6735, 0.7031, 0.7615,) 372.69 436.64 P +2.25 (0.8055, 0.8437, 0.8935, 0.9157, 0.9815, 1.0255, 1.0695,) 314.36 425.64 P +(1.0950, 1.1575, 1.2015}.) 314.36 414.64 T +0 12 Q +(5.3 Frame Rate \050parameter \336le\051) 314.36 374.31 T +0 10 Q +-0 (You can specify the frame rate to be one of the eight) 342.71 348.64 P +1.97 (legal values \050c.f. Section 2.4.3.2\051. This is used by some) 314.36 337.64 P +(playback systems to gauge the playback rate.) 314.36 326.64 T +(Usage:) 342.71 313.64 T +2 F +(FRAME_RATE float) 342.71 300.64 T +4.91 (float) 342.71 287.64 P +0 F +2.05 ( is one of {23.976, 24, 25, 29.97, 30, 50,) 372.69 287.64 P +(59.94, 60}.) 314.36 276.64 T +0 12 Q +(5.4 Floating Point DCT \050command line\051) 314.36 249.31 T +0 10 Q +2.13 (The encoder normally uses a quick algorithm for) 342.71 236.64 P +2.06 (forward and reverse DCTs. However, in sequences with) 314.36 225.64 P +0.5 (many P frames, this can result in errors when decoded ref-) 314.36 214.64 P +0.4 (erence frames are used. To use the \050slow\051 double precision) 314.36 203.64 P +(accurate dcts, use the following flag:) 314.36 192.64 T +(Usage:) 342.71 179.64 T +(mpeg_encode -float_dct) 342.71 166.64 T +1 12 Q +(6. Other T) 314.36 139.31 T +(ools) 366.89 139.31 T +0 10 Q +(The misc/ directory contains several useful tools.) 314.36 112.64 T +0 12 Q +(6.1 ppmtoeyuv) 314.36 83.31 T +FMENDPAGE +%%EndPage: "9" 8 +%%Page: "8" 8 +612 792 0 FMBEGINPAGE +57.97 26.65 554.03 40.82 R +7 X +0 K +V +0 10 Q +0 X +(8) 303.5 34.15 T +56.69 54.99 297.64 735.31 R +7 X +V +0 X +(frame-to-I-frame scale.) 56.69 728.64 T +(Usage:) 85.04 715.64 T +2 F +(-bit_rate_info rate_file) 85.04 702.64 T +0 F +(This puts the bit rate info into the specified file) 85.04 689.64 T +(\050order of info, etc.\051) 85.04 676.64 T +1 12 Q +(3. Parallel Usage) 56.69 641.31 T +0 10 Q +1.03 (In parallel execution there are slave processes. You) 85.04 610.64 P +(can have those processes run nicely if you want.) 56.69 599.64 T +(Usage:) 85.04 586.64 T +2 F +(-nice) 85.04 573.64 T +0 F +3.56 (This makes all slave processes run nicely. This) 85.04 560.64 P +0.8 (means that interactive users take precedence, so they don\325t) 56.69 549.64 P +-0.2 (feel like they\325re running in molasses. If you want to be mean) 56.69 538.64 P +(to them, don\325t use this option. :-\051) 56.69 527.64 T +0 12 Q +(3.1 Architecture Overview) 56.69 500.31 T +0 10 Q +1.3 (Figure 1 shows a diagram of the system architecture. The) 56.69 474.64 P +-0.03 (slaves exist on the different slave machines which you spec-) 56.69 463.64 P +1.5 (ify \050see Section 3.2\051. The server processes all live on the) 56.69 452.64 P +(machine you run the encoder on.) 56.69 441.64 T +0 12 Q +(3.2 Specifying Slave Machines \050both\051) 56.69 412.31 T +0 10 Q +0.03 (You specify the slave machines in the parameter file.) 85.04 386.64 P +-0.2 (For each slave you must specify the username to use, as well) 56.69 375.64 P +0.06 (as the executable mpeg_encode program. If a slave does not) 56.69 364.64 P +1.52 (have NFS access, then it is REMOTE and you must also) 56.69 353.64 P +(specify where the parameter file is.) 56.69 342.64 T +(Usage:) 85.04 316.64 T +2 F +(PARALLEL) 85.04 303.64 T +(slave_specification) 85.04 290.64 T +(END_PARALLEL) 85.04 277.64 T +(slave_specification) 85.04 251.64 T +0 F +( can be either:) 198.98 251.64 T +2 F +(machine username executable) 85.04 238.64 T +0 F +(or) 85.04 225.64 T +2 F +2.9 (REMOTE machine username executable) 85.04 212.64 P +(param_file) 56.69 201.64 T +0 F +0.76 (You must have an account with the given username) 85.04 175.64 P +0.06 (on each machine, and you must place your machine/login in) 56.69 164.64 P +(the appropriate .rhosts files.) 56.69 153.64 T +1.59 (To make it easier to run experiments with varying) 85.04 127.64 P +1.35 (numbers of processors, there is a command-line argument) 56.69 116.64 P +(which limits the number of slave machines.) 56.69 105.64 T +(Usage:) 85.04 79.64 T +2 F +(-max_machines num_machines) 85.04 66.64 T +314.36 54.99 552.76 735.31 R +7 X +V +0 F +0 X +0.98 (This means that the encoder will use no more than) 342.71 728.64 P +2 F +(num_machines) 314.36 717.64 T +0 F +( machines as slaves.) 386.32 717.64 T +0 12 Q +(3.3 Remote Shell \050parameter \336le\051) 314.36 677.31 T +0 10 Q +0.98 (To run processes on the slave machines, mpeg_en-) 342.71 651.64 P +1.52 (code uses the remote shell command. On most machines) 314.36 640.64 P +-0.09 (this is the command) 314.36 629.64 P +2 F +-0.2 (rsh) 396.76 629.64 P +0 F +-0.09 (. On HP machines, however, rsh is) 414.75 629.64 P +0.39 (the restricted shell; on HP machines, the right command to) 314.36 618.64 P +(use is) 314.36 607.64 T +2 F +(remsh) 339.35 607.64 T +0 F +(, rather than) 369.33 607.64 T +2 F +(rsh) 419.84 607.64 T +0 F +(.) 437.83 607.64 T +(Usage:) 342.71 594.64 T +2 F +(RSH <rsh command>) 342.71 568.64 T +0 12 Q +(3.4 Scheduling Algorithms \050parameter \336le\051) 314.36 528.31 T +0 10 Q +0.87 (The encoder provides 3 different scheduling algorithms to) 314.36 502.64 P +(schedule which processors get which frames.) 314.36 491.64 T +2.03 (The first scheduling algorithm simply assigns N/P) 340.16 478.64 P +0.28 (frames to each processor, where N is the number of frames) 314.36 467.64 P +0.72 (and P is the number of processors. This has the advantage) 314.36 456.64 P +-0.01 (of minimal overhead, but only works well when all the pro-) 314.36 445.64 P +0.3 (cessors run at nearly the same speed. Also, since most pro-) 314.36 434.64 P +0.37 (cessors will finish at about the same time, you will have to) 314.36 423.64 P +1.41 (wait at the end while the Combine Server gathers all the) 314.36 412.64 P +(frame files together.) 314.36 401.64 T +(Usage:) 340.16 388.64 T +(PARALLEL_PERFECT) 340.16 375.64 T +3.6 (The second scheduling algorithm first assigns S) 340.16 349.64 P +-0.09 (frames to each processor. When a processor is finished, it is) 314.36 338.64 P +1.49 (assigned T seconds of work \050the scheduler estimates this) 314.36 327.64 P +1.97 (based on previous performance\051. S should be at least 3,) 314.36 316.64 P +0.37 (preferably at least 5 or 6, to insure a good estimate of each) 314.36 305.64 P +(processor\325s speed.) 314.36 294.64 T +(Usage:) 340.16 281.64 T +(PARALLEL_TEST_FRAMES S) 340.16 268.64 T +(PARALLEL_TIME_CHUNKS T) 340.16 255.64 T +0.79 (The third scheduling algorithm is probably the best.) 340.16 229.64 P +2.43 (It also first assigns S frames to each processor. Subse-) 314.36 218.64 P +3.44 (quently, however, whenever a processor finishes, it is) 314.36 207.64 P +1.1 (assigned enough work to keep it busy until almost every-) 314.36 196.64 P +2.04 (thing is done. Effectively, a processor is assigned many) 314.36 185.64 P +-0.06 (frames, and then fewer and fewer frames as more work gets) 314.36 174.64 P +2.92 (done. This insures good load balancing, while limiting) 314.36 163.64 P +(scheduling overhead.) 314.36 152.64 T +(Usage:) 340.16 139.64 T +(PARALLEL_TEST_FRAMES S) 340.16 126.64 T +(PARALLEL_CHUNK_TAPER) 340.16 113.64 T +0 12 Q +(3.5 Parallel problems \050parameter \336le\051) 314.36 86.31 T +0 10 Q +8.16 (There are some unsupported features using) 340.16 73.64 P +-0.18 (REMOTE to specify slaves: The \324command\324 form of gener-) 314.36 62.64 P +FMENDPAGE +%%EndPage: "8" 7 +%%Page: "7" 7 +612 792 0 FMBEGINPAGE +57.97 26.65 554.03 40.82 R +7 X +0 K +V +0 10 Q +0 X +(7) 303.5 34.15 T +56.69 54.99 297.64 477.36 R +7 X +V +0 X +(you can specify frame files to combine.) 56.69 470.69 T +1.11 (The parameter file may specify input frame files in) 85.04 457.69 P +0.94 (the same manner as normal input files -- except instead of) 56.69 446.69 P +7.11 (using INPUT_DIR, INPUT, and END_INPUT, use) 56.69 435.69 P +28.3 (FRAME_INPUT_DIR, FRAME_INPUT, and) 56.69 424.69 P +1.83 (FRAME_END_INPUT. If no input frame files are speci-) 56.69 413.69 P +0.16 (fied, then the default is to use the output file name with suf-) 56.69 402.69 P +(fix \322.frame.<frame_num>\323 starting from 0 as the input files.) 56.69 391.69 T +0 12 Q +(2.15 Stats and Other Options \050command line\051) 56.69 364.36 T +0 10 Q +0.43 (There are several options for printing or suppressing) 85.04 338.69 P +(useful information.) 56.69 327.69 T +0.75 (The encoder always prints \050to stdout\051 parameter file) 85.04 314.69 P +2.87 (information and statistics about how many I, P, and B) 56.69 303.69 P +0.8 (frames there were, and information about compression and) 56.69 292.69 P +2.31 (quality. You can send these statistics, in addition to the) 56.69 281.69 P +(screen, to a file.) 56.69 270.69 T +(Usage:) 85.04 257.69 T +2 F +( -stat stat_file) 110.83 244.69 T +0 F +2.56 (This appends the parameter file info and stats to) 85.04 231.69 P +2 F +(stat_file) 56.69 220.69 T +0 F +0.87 (Normally, the statistics do not include any informa-) 85.04 194.69 P +1.77 (tion about quality. This is because computing the quality) 56.69 183.69 P +2.02 (takes a little more time. If you wish to have the quality) 56.69 172.69 P +1.17 (included in the statistics, use the -snr command line argu-) 56.69 161.69 P +(ment.) 56.69 150.69 T +(Usage:) 85.04 137.69 T +2 F +(-snr) 85.04 124.69 T +0 F +1.78 (This prints the signal-to-noise ratio \050snr\051 and peak) 85.04 111.69 P +(snr.) 56.69 100.69 T +3.69 (An additional statistic measure is mean squared) 85.04 74.69 P +0.78 (error. If you wish to see the per-block mean squared error,) 56.69 63.69 P +314.36 54.99 552.76 477.36 R +7 X +V +0 X +(use the -mse command line flag \050sets -snr as a side effect\051.) 314.36 470.69 T +(Usage:) 342.71 457.69 T +2 F +(-mse) 342.71 444.69 T +0 F +(This prints the MSE for each block encoded) 342.71 431.69 T +1.02 (Another set of data which can be useful is a histo-) 342.71 418.69 P +0.44 (gram of the motion vectors. The encoder can keep track of) 314.36 407.69 P +-0.16 (P-frame motion vectors and forward and backward B-frame) 314.36 396.69 P +0.4 (motion vectors. The output is in the form of a matrix, each) 314.36 385.69 P +0.98 (entry corresponding to a motion vector in the search win-) 314.36 374.69 P +0.49 (dow. The center of the matrix represents \0500,0\051 motion vec-) 314.36 363.69 P +(tors.) 314.36 352.69 T +(Usage:) 342.71 339.69 T +2 F +(-mv_histogram) 342.71 326.69 T +0 F +1.47 (During normal execution, the encoder outputs two) 342.71 300.69 P +0.58 (kinds of information. It prints a single line for each frame,) 314.36 289.69 P +0.86 (summarizing block type and time info. It also prints, after) 314.36 278.69 P +-0.07 (each frame, an estimate of the remaining running time. You) 314.36 267.69 P +(can modify how often or if this information is to be shown.) 314.36 256.69 T +(Usage:) 342.71 243.69 T +2 F +( -quiet num) 342.71 230.69 T +( -no_frame_summary) 342.71 217.69 T +(-realquiet) 349.8 204.69 T +0 F +-0.13 (If) 342.71 191.69 P +2 F +-0.31 (num) 351.74 191.69 P +0 F +-0.13 ( is negative, the time estimate is never shown;) 369.73 191.69 P +1.94 (otherwise, it reports a time estimate no more often than) 314.36 180.69 P +1.22 (every) 314.36 169.69 P +2 F +2.92 (num) 340.27 169.69 P +0 F +1.22 ( seconds \050unless the time estimate rises, which) 358.26 169.69 P +1 (will happen near the beginning of the run\051. The default is) 314.36 158.69 P +2 F +(num) 314.36 147.69 T +0 F +( = 0, which means report after every frame.) 332.35 147.69 T +1.08 (If) 342.71 134.69 P +2 F +2.59 (-no_frame_summary) 352.94 134.69 P +0 F +1.08 ( is given, then informa-) 454.89 134.69 P +(tion about each frame is not printed.) 314.36 123.69 T +2 F +10.05 (-realquiet stops all printing,) 342.71 110.69 P +(other than error messages.) 314.36 99.69 T +0 F +1 (Another nice feature is that the encoder can output) 342.71 73.69 P +0.75 (the bit rate, on both a frame-to-frame scale, and also an I-) 314.36 62.69 P +385.51 518.46 470.55 575.15 R +7 X +V +0.5 H +0 Z +0 X +N +141.05 721.49 294.05 766.49 18 RR +7 X +V +0 X +N +1 18 Q +(Master Server) 165.05 738.43 T +102.05 623.49 181.05 660.49 R +7 X +V +0 X +N +(Slave) 121.05 637.49 T +452.05 625.49 531.05 662.49 R +7 X +V +0 X +N +(Slave) 471.05 639.49 T +333.05 624.49 412.05 661.49 R +7 X +V +0 X +N +(Slave) 352.05 638.49 T +218.05 623.49 297.05 660.49 R +7 X +V +0 X +N +(Slave) 237.05 637.49 T +147.47 523.06 300.47 568.06 18 RR +7 X +V +0 X +N +(Combine Server) 165.31 539.33 T +498.64 673.25 501.04 661.49 492.77 670.19 495.71 671.72 4 Y +V +472.44 709.73 470.04 721.49 478.31 712.79 475.37 711.26 4 Y +V +495.71 671.72 475.38 711.26 2 L +7 X +V +0 X +N +137.07 670.41 129.04 661.49 131.12 673.31 134.09 671.86 4 Y +V +149.02 710.57 157.04 719.49 154.97 707.67 151.99 709.12 4 Y +V +134.1 671.86 152 709.12 2 L +7 X +V +0 X +N +164.04 661.55 152.04 661.49 162.18 667.9 163.11 664.73 4 Y +V +344.03 719.43 356.03 719.49 345.89 713.08 344.96 716.26 4 Y +V +163.12 664.72 344.98 716.25 2 L +7 X +V +0 X +N +392.55 667.26 382.02 661.5 387.89 671.96 390.22 669.61 4 Y +V +430.5 714.73 441.02 720.49 435.15 710.03 432.82 712.38 4 Y +V +390.24 669.6 432.85 712.37 2 L +7 X +V +0 X +N +277.89 664.38 266.04 662.49 275.09 670.37 276.49 667.37 4 Y +V +377.19 717.6 389.04 719.49 379.98 711.61 378.59 714.61 4 Y +V +276.5 667.37 378.6 714.61 2 L +7 X +V +0 X +N +241.78 672.73 248.04 662.49 237.31 667.86 239.55 670.29 4 Y +V +192.3 709.25 186.04 719.49 196.78 714.12 194.54 711.69 4 Y +V +239.55 670.29 194.54 711.69 2 L +7 X +V +0 X +N +353.94 670.32 363.03 662.49 351.17 664.31 352.56 667.32 4 Y +V +245.13 712.66 236.04 720.49 247.9 718.67 246.52 715.67 4 Y +V +352.57 667.31 246.52 715.66 2 L +7 X +V +0 X +N +470.93 667.95 481.05 661.49 469.05 661.61 469.99 664.78 4 Y +V +287.16 714.03 277.05 720.49 289.05 720.37 288.1 717.2 4 Y +V +469.99 664.78 288.1 717.2 2 L +7 X +V +0 X +N +336.05 720.49 489.05 765.49 18 RR +7 X +V +0 X +N +(Decode Server) 360.05 737.43 T +134.71 613.56 130.39 624.76 139.99 617.55 137.35 615.56 4 Y +V +168.59 579.26 172.91 568.07 163.31 575.27 165.95 577.27 4 Y +V +137.35 615.56 165.96 577.26 2 L +7 X +V +0 X +N +234.18 617.55 243.77 624.76 239.45 613.56 236.82 615.56 4 Y +V +210.85 575.27 201.26 568.07 205.58 579.26 208.21 577.27 4 Y +V +236.82 615.56 208.22 577.26 2 L +7 X +V +0 X +N +352.39 622.81 364.23 624.77 355.23 616.83 353.81 619.82 4 Y +V +255.6 570.03 243.76 568.08 252.77 576.01 254.18 573.02 4 Y +V +353.83 619.81 254.2 573.01 2 L +7 X +V +0 X +N +465.63 624.68 477.63 624.76 467.5 618.33 466.56 621.51 4 Y +V +291.21 568.14 279.21 568.07 289.34 574.49 290.28 571.32 4 Y +V +466.57 621.51 290.28 571.31 2 L +7 X +V +0 X +N +393.94 616.24 385.49 624.76 397.17 622.01 395.55 619.12 4 Y +V +440.83 597.86 449.27 589.33 437.59 592.09 439.21 594.98 4 Y +V +395.57 619.11 439.23 594.97 2 L +7 X +V +0 X +N +281.34 617.08 272.12 624.76 284.01 623.14 282.67 620.11 4 Y +V +376.28 582.84 385.5 575.16 373.61 576.78 374.94 579.81 4 Y +V +282.68 620.1 374.96 579.8 2 L +7 X +V +0 X +N +168.9 618.38 158.74 624.76 170.74 624.73 169.82 621.56 4 Y +V +375.34 567.36 385.51 560.98 373.51 561 374.43 564.18 4 Y +V +169.82 621.55 374.43 564.18 2 L +7 X +V +0 X +N +312.01 543.5 300.47 546.8 312.01 550.11 312.01 546.8 4 Y +V +373.98 550.11 385.51 546.8 373.98 543.5 373.98 546.8 4 Y +V +312.01 546.8 373.98 546.8 2 L +7 X +V +0 X +N +302.9 498.61 259.93 498.61 2 L +V +1.14 H +N +1 12 Q +(Figure 1) 259.93 499.8 T +385.51 498.49 302.9 498.49 2 L +V +0.59 H +N +0 F +(: Network Model) 302.9 499.8 T +495.43 619 505.95 624.77 500.08 614.3 497.76 616.65 4 Y +V +473.96 588.02 463.44 582.25 469.3 592.72 471.63 590.37 4 Y +V +497.79 616.64 471.66 590.35 2 L +7 X +V +0.5 H +0 X +N +1 18 Q +(Disk) 410.52 530.49 T +7 X +90 450 42.52 14.17 428.03 575.15 G +0 X +90 450 42.52 14.17 428.03 575.15 A +7 X +180 270 42.94 21.26 428.45 521.28 G +2 Z +0 X +180 270 42.94 21.26 428.45 521.28 A +7 X +270 360 42.94 21.26 427.68 521.61 G +0 X +270 360 42.94 21.26 427.68 521.61 A +FMENDPAGE +%%EndPage: "7" 6 +%%Page: "6" 6 +612 792 0 FMBEGINPAGE +57.97 26.65 554.03 40.82 R +7 X +0 K +V +0 10 Q +0 X +(6) 303.5 34.15 T +56.69 54.99 297.64 735.31 R +7 X +V +0 X +3.03 (number\051. This field entry can be changed by adding a) 56.69 728.64 P +1.27 (USER_DATA parameter whose vale is the name of a file) 56.69 717.64 P +(continuing the data to add to the header.) 56.69 706.64 T +(Usage:) 85.04 693.64 T +(USER_DATA ./user_data.txt) 85.04 667.64 T +0 12 Q +(2.1) 56.69 640.31 T +(1 Compression Decision List \050CDL, also) 71.24 640.31 T +(Speci\336cs File \050parameter \336le\051\051) 56.69 626.31 T +0 10 Q +0.18 (If you want to be very exact in what is set during the) 85.04 599.64 P +1.71 (encoding, use CDL_FILE \050the older SPECIFICS_FILE is) 56.69 588.64 P +0.18 (supported as well\051 to point to a file describing the exact set-) 56.69 577.64 P +0.22 (tings wished for the encoding. The version 1.0 of CDL sup-) 56.69 566.64 P +(port has the following format:) 56.69 555.64 T +(version 1) 85.04 542.64 T +(frame FN T Q) 85.04 529.64 T +(slice SN Q) 85.04 516.64 T +(block BN Q | BN Q skip | BN Q bi fx fy bx by |) 85.04 503.64 T +(BN Q forw fx fy | BN Q back bx by) 109.7 490.64 T +3.51 (FN, SN, and BN signal which frame/slice/block) 85.04 477.64 P +1.64 (number the command applies to. Note that if you have a) 56.69 466.64 P +2.22 (block or slice command, must be proceeded by a frame) 56.69 455.64 P +0.63 (command for that frame. T sets the type of the frame \050I, P,) 56.69 444.64 P +-0.06 (B, or - to not set\051. Q sets the q-scale \0501-31 or +N -N for rela-) 56.69 433.64 P +0.17 (tive scaling, or 0 for no change\051. The detailed block specifi-) 56.69 422.64 P +2.81 (cations set the motion vectors \050in half-pixel units\051. See) 56.69 411.64 P +(specifications.c for more information.) 56.69 400.64 T +2.25 (Version 2 CDL files have relative Qscales, so \3222) 85.04 387.64 P +1.89 (\322means decrease the Qscale by 2, \3222\323 means increase it.) 56.69 376.64 P +(Unsigned numbers like \3224\323 set the Qscale \050to 4\051.) 56.69 365.64 T +(Usage:) 85.04 352.64 T +(CDL_FILE filename) 85.04 326.64 T +(CDL_DEFINES string) 85.04 313.64 T +3 (where filename contains the specifics, and string) 85.04 300.64 P +0.61 (\050optional\051 are defines to be passed to the C preprocessor to) 56.69 289.64 P +(use on the file \050-Db=block for example\051.) 56.69 278.64 T +0 12 Q +(2.12 Gamma Correction \050parameter \336le\051) 56.69 251.31 T +0 10 Q +-0.13 (If your movies are too light or too dark for your play-) 85.04 224.64 P +(back system, you can pre-gamma correct them.) 56.69 213.64 T +(Usage:) 85.04 200.64 T +2 F +(GAMMA gamma-val) 85.04 174.64 T +0 F +1.5 (gamma-corrects by raising each luminance fraction) 85.04 161.64 P +(to the power) 56.69 150.64 T +2 F +(gamma-val) 109.15 150.64 T +0 F +(\050a float\051) 169.12 150.64 T +0.18 (This works by converting the luminance \050brightness\051) 85.04 137.64 P +-0.17 (of the input image to a fraction zero to one, and then raises it) 56.69 126.64 P +-0.17 (to the power) 56.69 115.64 P +2 F +-0.4 (gamma-val) 108.65 115.64 P +0 F +-0.17 (. Thus values less than 1 brighten,) 162.62 115.64 P +2.36 (and greater than 1 dim. If your output device has good) 56.69 104.64 P +0.92 (brightness controls, it is better to control brightness at that) 56.69 93.64 P +(end.) 56.69 82.64 T +314.36 54.99 552.76 735.31 R +7 X +V +0 12 Q +0 X +(2.13 Encoding GOPs at a T) 314.36 727.31 T +(ime \050command line\051) 445.86 727.31 T +0 10 Q +2.65 (Instead of encoding an entire sequence, you can) 342.71 700.64 P +1.57 (encode a single GOP. GOPs can later be joined together) 314.36 689.64 P +(with the encoder to form an MPEG file.) 314.36 678.64 T +(Usage:) 342.71 665.64 T +2 F +(-gop num) 342.71 652.64 T +0 F +1.81 (This only encodes the numbered GOP \050which are) 342.71 639.64 P +(numbered beginning at 0.) 314.36 628.64 T +1.2 (The output file will be the normal output filename) 342.71 615.64 P +(with the suffix \322.gop.<gop_num>\323) 314.36 604.64 T +1.18 (GOP files can be joined at any time using the fol-) 342.71 578.64 P +(lowing command-line argument.) 314.36 567.64 T +(Usage:) 342.71 554.64 T +2 F +(-combine_gops) 342.71 541.64 T +0 F +2.05 (This causes the encoder to simply combine some) 342.71 528.64 P +0.52 (GOP files into a single MPEG stream. A sequence header/) 314.36 517.64 P +0.03 (ender are inserted. In this case, the parameter file need only) 314.36 506.64 P +0.18 (contain the YUV_SIZE value, an output file, and perhaps a) 314.36 495.64 P +0.21 (list of input GOP files. If no list of input GOP files is used,) 314.36 484.64 P +0.45 (then the encoder assumes you\325re using the same parameter) 314.36 473.64 P +-0.08 (file you used with the) 314.36 462.64 P +2 F +-0.19 (-gop) 403.08 462.64 P +0 F +-0.08 (option, and calculates the cor-) 432.88 462.64 P +0.52 (responding gop filenames itself. If this is not the case, you) 314.36 451.64 P +0.58 (can specify input GOP files in the same manner as normal) 314.36 440.64 P +0.44 (input files -- except instead of using INPUT_DIR, INPUT,) 314.36 429.64 P +1.79 (and END_INPUT, use GOP_INPUT_DIR, GOP_INPUT,) 314.36 418.64 P +1.38 (and GOP_END_INPUT. If no input GOP files are speci-) 314.36 407.64 P +-0.05 (fied, then the default is to use the output file name with suf-) 314.36 396.64 P +(fix \322.gop.<gop_num>\323 starting from 0 as the input files.) 314.36 385.64 T +4.1 (Thus, to summarize, unless you\325re mixing and) 342.71 372.64 P +0.2 (matching GOP files from different sources, you can simply) 314.36 361.64 P +1.37 (use the same parameter file for the) 314.36 350.64 P +2 F +3.28 (-gop) 464.63 350.64 P +0 F +1.37 ( and) 488.62 350.64 P +2 F +3.28 (-combi-) 510.78 350.64 P +(ne_gops) 314.36 339.64 T +0 F +( options.) 356.34 339.64 T +0 12 Q +(2.14 Encoding Frames at a T) 314.36 299.31 T +(ime \050command line\051) 452.51 299.31 T +0 10 Q +2.65 (Instead of encoding an entire sequence, you can) 342.71 273.64 P +0.34 (encode individual frames. These frames can later be joined) 314.36 262.64 P +(together to form an MPEG file.) 314.36 251.64 T +(Usage:) 342.71 238.64 T +(-frames first_frame last_frame) 342.71 225.64 T +2.37 (This causes the encoder to encode the numbered) 342.71 212.64 P +(frames in the given range, inclusive.) 314.36 201.64 T +0.89 (The output will be placed in separate files, one per) 342.71 188.64 P +0.21 (frame, with the filenames being the normal output file with) 314.36 177.64 P +(the suffix \322.frame.<frame num>\323) 314.36 166.64 T +(The frame files can later be combined as follows:) 342.71 140.64 T +(Usage:) 342.71 127.64 T +(-combine_frames) 342.71 114.64 T +2.05 (This causes the encoder to simply combine some) 342.71 101.64 P +2.21 (frames into a single MPEG stream. Sequence and GOP) 314.36 90.64 P +1.11 (headers are inserted appropriately. You can either use the) 314.36 79.64 P +1.39 (same parameter file for -frames and -combine_frames, or) 314.36 68.64 P +FMENDPAGE +%%EndPage: "6" 5 +%%Page: "5" 5 +612 792 0 FMBEGINPAGE +57.97 26.65 554.03 40.82 R +7 X +0 K +V +0 10 Q +0 X +(5) 303.5 34.15 T +72 72 297 732.47 R +7 X +V +2 F +0 X +(sflowg.07.yuv) 100.35 725.81 T +(sflowg.08.yuv) 100.35 712.81 T +(sflowg.09.yuv) 100.35 699.81 T +(sflowg.10.yuv) 100.35 686.81 T +0 F +1.37 (If there is no star, then the file name is simple) 100.35 660.81 P +0.99 (repeated the appropriate number of times \050[1-10] is 10) 72 649.81 P +(times\051.) 72 638.81 T +-0.18 (Commands can be used to dynamically create the) 100.35 625.81 P +(list of files, for example:) 72 614.81 T +2 F +(INPUT) 100.35 588.81 T +(\324ls July-*.ppm\324) 100.35 575.81 T +(\324cat file-list\324) 100.35 562.81 T +(END_INPUT) 100.35 549.81 T +0 F +1.41 (The command\050s\051 will be executed in the direc-) 100.35 523.81 P +0.44 (tory named by INPUT_DIR if it appears before INPUT) 72 512.81 P +2.09 (in the parameter file. Note that the encoder-provided) 72 501.81 P +(filling in of *\325s is not supported in this mode.) 72 490.81 T +0.36 (The encoder allows you to use other file formats) 100.35 477.81 P +1.61 (by providing an input conversion specifier. You must) 72 466.81 P +0.18 (describe how to convert the input format into one of the) 72 455.81 P +(base file types.) 72 444.81 T +2 F +(Usage:) 100.35 431.81 T +(INPUT_CONVERT conversion) 100.35 405.81 T +3.25 (conversion) 100.35 379.81 P +0 F +1.35 ( must be a multi-star expression.) 160.31 379.81 P +-0.16 (If) 72 368.81 P +2 F +-0.37 (conversion) 81 368.81 P +0 F +-0.16 ( is simply \324*\325, then no conversion takes) 140.97 368.81 P +0.92 (place. Otherwise, each of the file lines are replaced by) 72 357.81 P +0.3 (the conversion line with the file name wherever there is) 72 346.81 P +0.88 (a \324*\325. The conversion line must send the output to std-) 72 335.81 P +-0.12 (out. For example, suppose we have a bunch of GIF files.) 72 324.81 P +(Then we would do:) 72 313.81 T +2 F +(BASE_FILE_FORMAT) 100.35 300.81 T +( PPM) 196.29 300.81 T +(INPUT) 100.35 287.81 T +(pictures.*.gif [0-10]) 100.35 274.81 T +(END_INPUT) 100.35 261.81 T +(INPUT_CONVERT giftoppm *) 100.35 248.81 T +0 F +0.9 (Another example: Suppose we have separate Y,) 100.35 222.81 P +1.18 (U, and V files \050where the U and V have already been) 72 211.81 P +(subsampled\051. Then we might have:) 72 200.81 T +2 F +(BASE_FILE_FORMAT) 100.35 187.81 T +( YUV) 196.29 187.81 T +(INPUT) 100.35 174.81 T +(pictures.* [0-10]) 100.35 161.81 T +(END_INPUT) 100.35 148.81 T +(INPUT_CONVERT cat *.Y *.U *.V) 100.35 135.81 T +(YUV_FORMAT UCB) 100.35 122.81 T +0 F +0.68 (As you can see, the \322files\323 between) 100.35 109.81 P +2 F +1.63 (INPUT) 249.41 109.81 P +0 F +0.68 ( and) 279.39 109.81 P +2 F +2.41 (END_INPUT) 72 98.81 P +0 F +1 ( don\325t have to be files at all! This can be) 125.97 98.81 P +(very useful.) 72 87.81 T +315 72 540 732.47 R +7 X +V +0 X +(To read data from standard input, set:) 343.35 712.81 T +2 F +(INPUT_DIR stdin) 343.35 699.81 T +0 F +1.05 (Note that you cannot use the stdin option when) 343.35 686.81 P +0.07 (coding in parallel. \050Use GOPINPUTDIR or FRAMEIN-) 315 675.81 P +(PUTDIR if combining frames/GOPs.\051) 315 664.81 T +(The output file is specified by:) 343.35 638.81 T +2 F +(OUTPUT filename) 343.35 625.81 T +0 F +(for example:) 343.35 612.81 T +2 F +(OUTPUT /u/keving/mpg/flowers.mpg) 343.35 599.81 T +0 12 Q +(2.8 Original or Decoded \050parameter \336le\051) 315 559.47 T +0 10 Q +0.09 (The encoder can use either the original frames as) 343.35 532.81 P +3 (reference frames, or the decoded frames. Using the) 315 521.81 P +2.48 (decoded frames gives better playback quality, but is) 315 510.81 P +1.93 (slower and seems to give worse compression. It also) 315 499.81 P +0.63 (causes some complications with parallel encoding. \050see) 315 488.81 P +0.95 (the section on parallel encoding\051 One recommendation) 315 477.81 P +0.52 (is to use original, and lower the q-scale if the quality is) 315 466.81 P +(not good enough. Table six shows the trade-offs.) 315 455.81 T +(Usage:) 343.35 429.81 T +2 F +(REFERENCE_FRAME ORIGINAL) 343.35 403.81 T +0 12 Q +(2.9 Bit-rate Control \050parameter \336le\051) 315 272.47 T +0 10 Q +1.53 (The default encoding uses variable bit rate. To) 343.35 245.81 P +0.33 (limit the bit rate, the MPEG-2 Standard\325s algorithm has) 315 234.81 P +2.39 (been implemented \050suitably adjusted\051. There are two) 315 223.81 P +(parameters which must be set to use bit-rate control:) 315 212.81 T +2 F +(BUFFER_SIZE N \050in bits\051) 343.35 199.81 T +(BIT_RATE M \050in bytes/sec\051) 343.35 186.81 T +0 F +-0.09 (N sets the largest required buffer, M specifies the) 343.35 173.81 P +1 (continual rate. N is set in number of bits, the buffer is) 315 162.81 P +(actually in 16bit ints.) 315 151.81 T +0 12 Q +(2.10 Userdata \050parameter \336le\051) 315 124.47 T +0 10 Q +0.01 (An identification string is added by default to the) 343.35 97.81 P +2.96 (Sequence layer user-data field. It is \322UCB Encoder) 315 86.81 P +1.41 (Vers\323 \050where Vers is replaced by the encoder version) 315 75.81 P +1 12 Q +-0.15 (T) 315 380.47 P +-0.15 (able 6: Original or Decoded? \050Normalized\051) 321.9 380.47 P +0 10 Q +(Reference) 323.62 352.81 T +(Compress) 373.49 358.81 T +(ion) 387.1 346.81 T +(Speed) 429.46 352.81 T +(Quality) 486.21 358.81 T +(I/P/B) 490.65 346.81 T +(Decoded) 329.87 328.81 T +(1000) 383.49 328.81 T +(1000) 431.68 328.81 T +(1000/969/919) 473.44 328.81 T +(Original) 332.08 312.81 T +(885) 385.99 312.81 T +(1373) 431.68 312.81 T +(1000/912/884) 473.44 312.81 T +318.37 370.22 318.37 306.72 2 L +V +0.5 H +0 Z +N +369.39 370.72 369.39 306.22 2 L +V +N +417.58 370.72 417.58 306.22 2 L +V +N +465.77 370.72 465.77 306.22 2 L +V +N +536.63 370.22 536.63 306.72 2 L +V +N +318.12 370.47 536.88 370.47 2 L +V +N +318.62 339.72 536.38 339.72 2 L +V +N +318.62 337.22 536.38 337.22 2 L +V +N +318.12 322.47 536.88 322.47 2 L +V +N +318.12 306.47 536.88 306.47 2 L +V +N +FMENDPAGE +%%EndPage: "5" 4 +%%Page: "4" 4 +612 792 0 FMBEGINPAGE +57.97 26.65 554.03 40.82 R +7 X +0 K +V +0 10 Q +0 X +(4) 303.5 34.15 T +56.69 54.99 297.64 735.31 R +7 X +V +0 X +(A standard sequence is IBBPBBPBBPBBPB) 85.04 715.64 T +(Usage:) 85.04 702.64 T +2 F +(PATTERN) 85.04 676.64 T +( <IPB pattern>) 127.02 676.64 T +0 F +1.84 (Note that if the last frame in an encoding is a B-) 85.04 650.64 P +0.07 (frame, it will not be encoded \050since it has no future frame to) 56.69 639.64 P +1.81 (reference from\051. Pre-I patters like BBIBBP are legal, but) 56.69 628.64 P +0 (seem to have bugs, so watch out! To insure that every frame) 56.69 617.64 P +0.63 (is encoded, the encoder can force the last frame to be an I-) 56.69 606.64 P +(frame.) 56.69 595.64 T +(Usage:) 85.04 582.64 T +2 F +(FORCE_ENCODE_LAST_FRAME) 85.04 556.64 T +0 12 Q +(2.7 Specifying Input Files \050parameter \336le\051) 56.69 516.31 T +0 10 Q +0.03 (The encoder can accept five base types of input files:) 85.04 489.64 P +0.08 (PPM, PNM, JMOVIE, JPEG, and YUV. Note that PPM is a) 56.69 478.64 P +1.38 (subset of PNM; the PPM option is available because it is) 56.69 467.64 P +0.49 (faster to read if the files are known to be PPM. JMOVIE is) 56.69 456.64 P +0.19 (the format created by the Parallax video grabber. JPEGs are) 56.69 445.64 P +-0.06 (a standard image format. YUV formats are described below.) 56.69 434.64 P +0.98 (If you use YUV format, you must specify the pixel) 85.04 421.64 P +0.61 (size of the image in the parameter file and the YUV_FOR-) 56.69 410.64 P +(MAT.) 56.69 399.64 T +(Usage:) 85.04 386.64 T +2 F +(BASE_FILE_FORMAT format) 85.04 360.64 T +(YUV_SIZE widthxheight) 85.04 347.64 T +(YUV_FORMAT yuv_format) 85.04 334.64 T +0.1 (format) 85.04 308.64 P +0 F +0.04 ( is one of {) 121.02 308.64 P +2 F +0.1 (YUV, PPM, PNM, JMOVIE,) 165.4 308.64 P +(JPEG) 56.69 297.64 T +0 F +(}) 80.68 297.64 T +2 F +(width) 85.04 284.64 T +0 F +( and) 115.02 284.64 T +2 F +(height) 134.45 284.64 T +0 F +( are integers \050like 320x240\051) 170.43 284.64 T +2 F +5.81 (yuv_format) 85.04 271.64 P +0 F +2.42 (is one of) 156.81 271.64 P +2 F +5.81 ( {ABEKAS, EYUV,) 196.07 271.64 P +1.66 (PHILLIPS, UCB, {SPECIAL}},) 56.69 260.64 P +0 F +0.69 (where) 223.59 260.64 P +2 F +1.66 ( SPECIAL) 248 260.64 P +0 F +1.83 (is a specification of the pattern of Y, U, and V, such as) 56.69 249.64 P +2 F +-0.57 (UYVY) 56.69 238.64 P +0 F +-0.24 (for) 86.1 238.64 P +2 F +-0.57 ( ABEKAS. The pattern can be of any) 97.76 238.64 P +1.18 (length, or order, but must consist only) 56.69 227.64 P +0.15 (of Ys, Us, andVs, and must represent two) 56.69 216.64 P +3.18 (pixels of data \050thus YUVYUV for 4:4:4) 56.69 205.64 P +(source\051.) 56.69 194.64 T +0 F +1.73 (You must specify the directory in which the input) 85.04 168.64 P +-0.12 (files are located. You can use \324.\325 to specify the current direc-) 56.69 157.64 P +(tory.) 56.69 146.64 T +(Usage:) 85.04 133.64 T +(INPUT_DIR directory) 85.04 107.64 T +1.08 (You must also specify the names of the files them-) 85.04 81.64 P +1.11 (selves. You list them sequentially, one per line, in display) 56.69 70.64 P +2.12 (order. There are shortcuts, however, which allow you to) 56.69 59.64 P +314.36 54.99 552.76 735.31 R +7 X +V +0 X +(condense many files into one line.) 314.36 728.64 T +(Usage:) 342.71 715.64 T +2 F +(INPUT) 342.71 689.64 T +(file) 342.71 676.64 T +2 8 Q +(1) 366.7 674.14 T +2 10 Q +(file) 342.71 663.64 T +2 8 Q +(2) 366.7 661.14 T +2 10 Q +(...) 342.71 650.64 T +(file) 342.71 637.64 T +2 8 Q +(n) 366.7 635.14 T +2 10 Q +(END_INPUT) 342.71 624.64 T +8.17 (file) 342.71 598.64 P +2 8 Q +6.53 (i) 366.7 596.14 P +0 10 Q +3.4 ( can be either a file name, a single-star) 371.49 598.64 P +0.28 (expression followed by a bracketed expansion for star, or a) 314.36 587.64 P +0.28 (command to be executed. There are two types of bracketed) 314.36 576.64 P +(expansions. For example:) 314.36 565.64 T +2 F +(sflowg.*.yuv [0-10]) 342.71 539.64 T +0 F +(is expanded to:) 342.71 513.64 T +2 F +(sflowg.0.yuv) 342.71 487.64 T +(sflowg.1.yuv) 342.71 474.64 T +(sflowg.2.yuv) 342.71 461.64 T +(sflowg.3.yuv) 342.71 448.64 T +(sflowg.4.yuv) 342.71 435.64 T +(sflowg.5.yuv) 342.71 422.64 T +(sflowg.6.yuv) 342.71 409.64 T +(sflowg.7.yuv) 342.71 396.64 T +(sflowg.8.yuv) 342.71 383.64 T +(sflowg.9.yuv) 342.71 370.64 T +(sflowg.10.yuv) 342.71 357.64 T +(sflowg.*.yuv [0-10+3]) 342.71 331.64 T +0 F +(is expanded to:) 342.71 305.64 T +2 F +(sflowg.0.yuv) 342.71 279.64 T +(sflowg.3.yuv) 342.71 266.64 T +(sflowg.6.yuv) 342.71 253.64 T +(sflowg.9.yuv) 342.71 240.64 T +0 F +(Also, the encoder will pad with 0\325s if necessary:) 342.71 214.64 T +2 F +(sflowg.*.yuv [00-10]) 342.71 188.64 T +0 F +(is expanded to:) 342.71 162.64 T +2 F +(sflowg.00.yuv) 342.71 136.64 T +(sflowg.01.yuv) 342.71 123.64 T +(sflowg.02.yuv) 342.71 110.64 T +(sflowg.03.yuv) 342.71 97.64 T +(sflowg.04.yuv) 342.71 84.64 T +(sflowg.05.yuv) 342.71 71.64 T +(sflowg.06.yuv) 342.71 58.64 T +FMENDPAGE +%%EndPage: "4" 3 +%%Page: "3" 3 +612 792 0 FMBEGINPAGE +57.97 26.65 554.03 40.82 R +7 X +0 K +V +0 10 Q +0 X +(3) 303.5 34.15 T +56.69 54.99 297.64 735.31 R +7 X +V +0 X +1.31 (For some reason Simple seems to give better com-) 85.04 616.64 P +(pression, but it depends on the image sequence.) 56.69 605.64 T +(Usage:) 85.04 579.64 T +2 F +(PSEARCH_ALG ptechnique) 85.04 553.64 T +(BSEARCH_ALG btechnique) 85.04 540.64 T +0 F +0.87 (where) 85.04 514.64 P +2 F +2.08 (ptechnique) 112.82 514.64 P +0 F +0.87 (is one of {LOGARITHMIC,) 180.87 514.64 P +(SUBSAMPLE, TWOLEVEL, EXHAUSTIVE}) 56.69 503.64 T +3.14 (where) 85.04 490.64 P +2 F +7.54 (btechnique) 115.1 490.64 P +0 F +3.14 ( is one of {EXHAUSTIVE,) 175.07 490.64 P +(CROSS2, SIMPLE}) 56.69 479.64 T +0 12 Q +(2.3 GOP \050parameter \336le\051) 56.69 439.31 T +0 10 Q +1.94 (A Group of Pictures \050GOP\051 is a roughly indepen-) 85.04 412.64 P +3.02 (dently decodable sequence of frames. An MPEG video) 56.69 401.64 P +0 (stream is made of one or more GOPs. You may specify how) 56.69 390.64 P +0.8 (many frames each GOP should be. A GOP must start with) 56.69 379.64 P +0.2 (an I-frame, and the encoder will enforce that by taking your) 56.69 368.64 P +(number as the) 56.69 357.64 T +3 F +(minimum) 115.26 357.64 T +0 F +( number of frames in a GOP.) 152.46 357.64 T +(Usage:) 85.04 331.64 T +2 F +(GOP_SIZE) 85.04 305.64 T +( num) 133.01 305.64 T +0 F +(where) 85.04 292.64 T +2 F +(num) 111.96 292.64 T +0 F +( = the number of frames in a GOP) 129.95 292.64 T +0 12 Q +(2.4 Slice \050parameter \336le\051) 56.69 252.31 T +0 10 Q +-0.25 (A slice is an independently decodable unit in a frame.) 85.04 226.64 P +0.54 (It can be as small as one macroblock, or it can be as big as) 56.69 215.64 P +1.47 (the entire frame. Barring transmission error, adding slices) 56.69 204.64 P +0.55 (does not change quality or speed; the only effect is slightly) 56.69 193.64 P +-0.1 (worse compression. More slices are used for noisy transmis-) 56.69 182.64 P +2.81 (sion so that errors are more recoverable. Because most) 56.69 171.64 P +0.28 (transmission systems have more sophisticated error correct-) 56.69 160.64 P +(ing routines, we usually just use one slice per frame.) 56.69 149.64 T +(Usage:) 85.04 123.64 T +2 F +(SLICES_PER_FRAME) 85.04 97.64 T +( num) 180.99 97.64 T +0 F +(where) 85.04 84.64 T +2 F +(num) 111.96 84.64 T +0 F +( is the number of slices in a frame) 129.95 84.64 T +2.31 (Note: Some MPEG playback systems require that) 85.04 58.64 P +1 12 Q +(T) 76.29 727.31 T +(able 4: B-frame Motion V) 83.18 727.31 T +(ector Sear) 213.99 727.31 T +(ch) 266.05 727.31 T +(\050Normalized\051) 143.19 713.31 T +0 10 Q +(T) 84.14 691.64 T +(echnique) 89.54 691.64 T +(Compression) 139.45 691.64 T +(Speed) 204.64 691.64 T +(Quality) 242.96 691.64 T +(Exhaustive) 86.23 673.64 T +(1000) 155.83 673.64 T +(?) 214.63 673.64 T +(1000) 247.96 673.64 T +(Cross2) 102.88 657.64 T +(975) 158.33 657.64 T +(1000) 206.86 657.64 T +(996) 250.46 657.64 T +(Simple) 102.32 641.64 T +(938) 158.33 641.64 T +(1765) 206.86 641.64 T +(991) 250.46 641.64 T +75.12 703.06 75.12 635.56 2 L +V +0.5 H +0 Z +N +134.65 703.56 134.65 635.06 2 L +V +N +197.01 703.56 197.01 635.06 2 L +V +N +236.69 703.56 236.69 635.06 2 L +V +N +279.21 703.06 279.21 635.56 2 L +V +N +74.87 703.31 279.46 703.31 2 L +V +N +75.37 684.56 278.96 684.56 2 L +V +N +75.37 682.06 278.96 682.06 2 L +V +N +74.87 667.31 279.46 667.31 2 L +V +N +74.87 651.31 279.46 651.31 2 L +V +N +74.87 635.31 279.46 635.31 2 L +V +N +314.36 54.99 552.76 735.31 R +7 X +V +0 X +1.26 (each slice must consist of whole rows of macroblocks. If) 314.36 728.64 P +0.55 (this is the case, then if the height of the image is H pixels,) 314.36 717.64 P +1.97 (then you should set the SLICES_PER_FRAME to some) 314.36 706.64 P +0.32 (number which divides H/16. For example, if H = 240, then) 314.36 695.64 P +0.82 (you should only use SLICES_PER_FRAME values of 15,) 314.36 684.64 P +(5, 3, or 1.) 314.36 673.64 T +0.3 (Note to the note: these MPEG playback systems are) 342.71 660.64 P +1.07 (really at fault, since the MPEG standard says this doesn\325t) 314.36 649.64 P +(have to be so.) 314.36 638.64 T +0 12 Q +(2.5 Search W) 314.36 611.31 T +(indow \050parameter \336le\051) 378.83 611.31 T +0 10 Q +0.65 (The search window is the window in which motion) 342.71 585.64 P +0.47 (vectors are searched for. The window is a square. You can) 314.36 574.64 P +1.22 (specify the size of the square, and whether to allow half-) 314.36 563.64 P +(pixel motion vectors or not.) 314.36 552.64 T +(Usage:) 342.71 526.64 T +2 F +(PIXEL) 342.71 500.64 T +( <FULL or HALF>) 372.69 500.64 T +(RANGE num [numB]) 342.71 487.64 T +-0.54 (HALF) 342.71 461.64 P +0 F +-0.22 ( means that half-pixel vectors are allowed. The) 366.7 461.64 P +0.19 (search window is +/-) 314.36 450.64 P +2 F +0.47 (num) 401.27 450.64 P +0 F +0.19 ( pixels in the X and Y directions.) 419.26 450.64 P +-0.02 (It is usually important that you use) 314.36 439.64 P +2 F +-0.05 (HALF) 455.54 439.64 P +0 F +-0.02 (, because it results) 479.53 439.64 P +2.12 (in both better quality and better compression. It is only) 314.36 428.64 P +(undesirable for computer-generated images.) 314.36 417.64 T +2 F +-0.25 (num) 342.71 404.64 P +0 F +-0.1 ( should probably be set to at least 8 or 10 pixels.) 360.7 404.64 P +2.35 (This number depends on the image. Using much larger) 314.36 393.64 P +0.68 (numbers such as 20 or 30 doesn\325t seem to help much, and) 314.36 382.64 P +0.02 (increases the CPU cost drastically. The optional numB is in) 314.36 371.64 P +2.67 (case you wish to specify different ranges for predicted) 314.36 360.64 P +3.37 (frames \050P-frames, num\051, and Bi-directional frames \050B-) 314.36 349.64 P +0.31 (frames, numB\051. B-frame limits are optional as indicated by) 314.36 338.64 P +-0 (the braces above \050so \322RANGE 10 6\323 is a valid command as) 314.36 327.64 P +(is \322RANGE 9\323\051.) 314.36 316.64 T +0 12 Q +(2.6 IPB Pattern \050parameter \336le\051) 314.36 276.31 T +0 10 Q +2.24 (You can set the sequence of I, P, and B-frames.) 342.71 249.64 P +0.45 (Later versions will allow you to do more than set a repeat-) 314.36 238.64 P +2.49 (ing IPB pattern. The pattern affects speed, quality, and) 314.36 227.64 P +(compression. Table five shows some of the trade-offs.) 314.36 216.64 T +(\050this is given a certain Q-scale\051) 342.71 59.64 T +1 12 Q +(T) 337.17 193.31 T +(able 5: Comparison of I/P/B-Frames) 344.06 193.31 T +(\050Normalized\051) 399.59 179.31 T +0 F +(Frame) 331.84 156.31 T +(T) 335.26 142.31 T +(ype) 341.74 142.31 T +(Compress) 384.37 156.31 T +(ion) 400.7 142.31 T +(Speed) 451.3 149.31 T +(Quality) 505.57 149.31 T +(I-frames) 334.94 122.31 T +(1000) 396.36 122.31 T +(1000) 453.96 122.31 T +(1000) 511.57 122.31 T +(P-frames) 332.26 104.31 T +(409) 399.36 104.31 T +(601) 456.96 104.31 T +(969) 514.56 104.31 T +(B-frames) 330.93 86.31 T +(72) 402.36 86.31 T +(260) 456.96 86.31 T +(919) 514.56 86.31 T +314.76 169.06 314.76 79.56 2 L +V +N +379.56 169.56 379.56 79.06 2 L +V +N +437.16 169.56 437.16 79.06 2 L +V +N +494.76 169.56 494.76 79.06 2 L +V +N +552.36 169.06 552.36 79.56 2 L +V +N +314.51 169.31 552.61 169.31 2 L +V +N +315.01 134.56 552.11 134.56 2 L +V +N +315.01 132.06 552.11 132.06 2 L +V +N +314.51 115.31 552.61 115.31 2 L +V +N +314.51 97.31 552.61 97.31 2 L +V +N +314.51 79.31 552.61 79.31 2 L +V +N +FMENDPAGE +%%EndPage: "3" 2 +%%Page: "2" 2 +612 792 0 FMBEGINPAGE +57.97 26.65 554.03 40.82 R +7 X +0 K +V +0 10 Q +0 X +(2) 303.5 34.15 T +72 72 297 720 R +7 X +V +0 X +2.84 (Here is a description of the different command-line) 72 700.33 P +0.03 (options available and parameter-file options available in) 72 689.33 P +2.37 (sequential \050one-machine\051 encoding. You should defi-) 72 678.33 P +3.43 (nitely read sections 2.1-2.9. The other sections are) 72 667.33 P +(optional.) 72 656.33 T +0.21 (In the following, whenever a space in the parameter file) 72 630.33 P +4.29 (appears, it can be represented by any amount of) 72 619.33 P +(whitespace \050tabs or spaces\051.) 72 608.33 T +0 12 Q +(2.1 Q-Scale \050parameter \336le\051) 72 581 T +0 10 Q +1.78 (The quantization scale values \050Q-Scale\051 give a) 100.35 554.33 P +1.37 (trade-off between quality and compression. Using dif-) 72 543.33 P +-0.16 (ferent Q-Scale values has very little effect on speed. The) 72 532.33 P +1.74 (Q-Scale values can be set separately for I, P, and B-) 72 521.33 P +(frames.) 72 510.33 T +(Usage:) 100.35 484.33 T +2 F +(IQ-Scale) 126.21 471.33 T +( num) 174.18 471.33 T +(PQ-Scale num) 125.5 458.33 T +(BQ-Scale num) 126.21 445.33 T +0 F +(num in all three cases is a number from 1 to 31.) 100.35 432.33 T +3.47 (Larger numbers give better compression, but) 100.35 406.33 P +0.3 (worse quality. In the following, the quality numbers are) 72 395.33 P +(peak signal-to-noise ratio, defined as:) 72 384.33 T +(where MSE is the mean squared error.) 100.35 332.18 T +0.12 (Tables one and two show the Q-scale vs. Quality) 100.35 306.18 P +(relationship for the flower-garden sequence.) 72 295.18 T +1.84 (Note that when rate-control \050Section 2.9\051 is in) 100.35 282.18 P +0.19 (use, the rate control mechanism will change the Q-scale) 72 271.18 P +1.37 (throughout the blocks of the frame, so these specified) 72 260.18 P +(values are merely starting points.) 72 249.18 T +1 12 Q +(T) 95.77 212.85 T +(able 1: Q-Scale vs. Quality \050SNR\051) 102.66 212.85 T +0 10 Q +(Q-Scale) 91.87 191.18 T +(I-Frames) 140.95 191.18 T +(P-Frames) 190.86 191.18 T +(B-Frames) 241.33 191.18 T +(1) 124.48 173.18 T +(43.2) 150.24 173.18 T +(46.3) 201.27 173.18 T +(46.5) 252.29 173.18 T +(6) 124.48 157.18 T +(32.6) 150.24 157.18 T +(34.6) 201.27 157.18 T +(34.3) 252.29 157.18 T +(1) 119.85 141.18 T +(1) 124.48 141.18 T +(28.6) 150.24 141.18 T +(29.5) 201.27 141.18 T +(30.0) 252.29 141.18 T +(16) 119.48 125.18 T +(26.3) 150.24 125.18 T +(26.8) 201.27 125.18 T +(28.6) 252.29 125.18 T +(21) 119.48 109.18 T +(24.7) 150.24 109.18 T +(25.0) 201.27 109.18 T +(27.9) 252.29 109.18 T +(26) 119.48 93.18 T +(23.5) 150.24 93.18 T +(23.9) 201.27 93.18 T +(27.5) 252.29 93.18 T +82.45 202.6 82.45 87.1 2 L +V +0.5 H +0 Z +N +133.48 203.1 133.48 86.6 2 L +V +N +184.5 203.1 184.5 86.6 2 L +V +N +235.52 203.1 235.52 86.6 2 L +V +N +286.55 202.6 286.55 87.1 2 L +V +N +82.2 202.85 286.8 202.85 2 L +V +N +82.7 184.1 286.3 184.1 2 L +V +N +82.7 181.6 286.3 181.6 2 L +V +N +82.2 166.85 286.8 166.85 2 L +V +N +82.2 150.85 286.8 150.85 2 L +V +N +82.2 134.85 286.8 134.85 2 L +V +N +82.2 118.85 286.8 118.85 2 L +V +N +82.2 102.85 286.8 102.85 2 L +V +N +82.2 86.85 286.8 86.85 2 L +V +N +72 72 297 720 C +72 341.85 297 381 C +0 12 Q +0 X +0 K +(2) 148.86 360.39 T +(0) 154.85 360.39 T +3 F +(l) 161.56 360.39 T +(o) 165.6 360.39 T +(g) 172.3 360.39 T +0 9 Q +(1) 178.76 356.63 T +(0) 183.25 356.63 T +0 12 Q +(2) 196.32 367.58 T +(5) 202.32 367.58 T +(5) 208.31 367.58 T +3 F +(M) 196.45 349.78 T +(S) 207.15 349.78 T +(E) 213.85 349.78 T +221.18 360.98 196.45 360.98 2 L +0.33 H +0 Z +N +196.45 360.98 193.45 347.78 2 L +N +193.45 347.78 191.45 351.58 2 L +N +191.45 351.58 190.45 349.68 2 L +N +189.45 362.98 220.93 362.98 2 L +N +72 72 297 720 C +0 0 612 792 C +315 72 540 720 R +7 X +0 K +V +0 12 Q +0 X +(2.2 Search T) 315 471 T +(echniques \050parameter \336le\051) 375.11 471 T +0 10 Q +0.77 (There are several different motion vector search) 343.35 445.33 P +2.44 (techniques available for both P-frame search and B-) 315 434.33 P +0.54 (frame search. Using different search techniques present) 315 423.33 P +-0.04 (little difference in quality, but a large difference in com-) 315 412.33 P +(pression and speed.) 315 401.33 T +0.26 (There are 4 types of P-frame search: Exhaustive,) 343.35 388.33 P +(TwoLevel, SubSample, and Logarithmic.) 315 377.33 T +0.1 (There are 3 types of B-frame search: Exhaustive,) 343.35 364.33 P +(Cross2, and Simple.) 315 353.33 T +1.53 (The suggested search techniques are TwoLevel) 343.35 340.33 P +2.17 (and Logarithmic for P-frame search, and Cross2 and) 315 329.33 P +0.68 (Simple for B-frame search. Tables three and four com-) 315 318.33 P +(pare the different search methods:) 315 307.33 T +318.37 170 536.63 176 C +0 0 612 792 C +0 10 Q +0 X +0 K +(a. Smaller numbers mean better compression) 336.37 163.33 T +(b. Larger numbers mean faster execution) 336.37 151.33 T +(c. Larger numbers mean better quality) 336.37 139.33 T +(31) 362.48 672.33 T +(22.6) 393.24 672.33 T +(23.0) 444.27 672.33 T +(27.3) 495.29 672.33 T +1 12 Q +(T) 342.04 646 T +(able 2: Q-Scale vs. Compr) 348.94 646 T +(ession) 482.3 646 T +0 10 Q +(Q-Scale) 334.87 624.33 T +(I-Frames) 383.95 624.33 T +(P-Frames) 433.86 624.33 T +(B-Frames) 484.33 624.33 T +(1) 367.48 606.33 T +(2:1) 395.6 606.33 T +(2:1) 446.62 606.33 T +(2:1) 497.65 606.33 T +(6) 367.48 590.33 T +(7) 399.49 590.33 T +(10) 448.01 590.33 T +(15) 499.04 590.33 T +(1) 362.85 574.33 T +(1) 367.48 574.33 T +(1) 397.18 574.33 T +(1) 401.8 574.33 T +(18) 448.01 574.33 T +(43) 499.04 574.33 T +(16) 362.48 558.33 T +(15) 396.99 558.33 T +(29) 448.01 558.33 T +(97) 499.04 558.33 T +(21) 362.48 542.33 T +(19) 396.99 542.33 T +(41) 448.01 542.33 T +(173) 496.54 542.33 T +(26) 362.48 526.33 T +(24) 396.99 526.33 T +(56) 448.01 526.33 T +(256) 496.54 526.33 T +(31) 362.48 510.33 T +(28) 396.99 510.33 T +(73) 448.01 510.33 T +(330) 496.54 510.33 T +1 12 Q +(T) 326.96 284 T +(able 3: P-frame Motion V) 333.86 284 T +(ector Sear) 463.98 284 T +(ch) 516.05 284 T +(\050Normalized\051) 393.53 270 T +0 10 Q +(T) 327.39 248.33 T +(echnique) 332.79 248.33 T +(Compression) 382.34 248.33 T +0 8 Q +(a) 435.09 252.33 T +0 10 Q +(Speed) 454.39 248.33 T +0 8 Q +(b) 478.82 252.33 T +0 10 Q +(Quality) 498.61 248.33 T +0 8 Q +(c) 528.59 252.33 T +0 10 Q +(Exhaustive) 329.48 230.33 T +(1000) 400.5 230.33 T +(1000) 458.61 230.33 T +(1000) 505.38 230.33 T +(SubSample) 328.36 214.33 T +(1008) 400.5 214.33 T +(2456) 458.61 214.33 T +(1000) 505.38 214.33 T +(T) 333.52 198.33 T +(woLevel) 338.92 198.33 T +(1009) 400.5 198.33 T +(3237) 458.61 198.33 T +(1000) 505.38 198.33 T +(Logarithmic) 324.48 182.33 T +(1085) 400.5 182.33 T +(8229) 458.61 182.33 T +(998) 507.88 182.33 T +1 12 Q +(T) 338.77 712 T +(able 1: Q-Scale vs. Quality \050SNR\051) 345.66 712 T +0 10 Q +(Q-Scale) 334.87 690.33 T +(I-Frames) 383.95 690.33 T +(P-Frames) 433.86 690.33 T +(B-Frames) 484.33 690.33 T +325.45 701.75 325.45 666.25 2 L +V +0.5 H +0 Z +N +376.48 702.25 376.48 665.75 2 L +V +N +427.5 702.25 427.5 665.75 2 L +V +N +478.52 702.25 478.52 665.75 2 L +V +N +529.55 701.75 529.55 666.25 2 L +V +N +325.2 702 529.8 702 2 L +V +N +325.7 683.25 529.3 683.25 2 L +V +N +325.7 680.75 529.3 680.75 2 L +V +N +325.2 666 529.8 666 2 L +V +N +325.45 635.75 325.45 504.25 2 L +V +N +376.48 636.25 376.48 503.75 2 L +V +N +427.5 636.25 427.5 503.75 2 L +V +N +478.52 636.25 478.52 503.75 2 L +V +N +529.55 635.75 529.55 504.25 2 L +V +N +325.2 636 529.8 636 2 L +V +N +325.7 617.25 529.3 617.25 2 L +V +N +325.7 614.75 529.3 614.75 2 L +V +N +325.2 600 529.8 600 2 L +V +N +325.2 584 529.8 584 2 L +V +N +325.2 568 529.8 568 2 L +V +N +325.2 552 529.8 552 2 L +V +N +325.2 536 529.8 536 2 L +V +N +325.2 520 529.8 520 2 L +V +N +325.2 504 529.8 504 2 L +V +N +318.37 259.75 318.37 176.25 2 L +V +N +377.89 260.25 377.89 175.75 2 L +V +N +443.09 260.25 443.09 175.75 2 L +V +N +494.11 260.25 494.11 175.75 2 L +V +N +536.63 259.75 536.63 176.25 2 L +V +N +318.12 260 536.88 260 2 L +V +N +318.62 241.25 536.38 241.25 2 L +V +N +318.62 238.75 536.38 238.75 2 L +V +N +318.12 224 536.88 224 2 L +V +N +318.12 208 536.88 208 2 L +V +N +318.12 192 536.88 192 2 L +V +N +318.12 176 536.88 176 2 L +V +N +FMENDPAGE +%%EndPage: "2" 1 +%%Page: "1" 1 +612 792 0 FMBEGINPAGE +56.69 111.69 297.64 565.23 R +7 X +0 K +V +1 12 Q +0 X +(Contents) 56.69 557.23 T +0 10 Q +(0. Contacts/History) 56.69 539.56 T +(1. Installation) 56.69 526.56 T +(2. Sequential Usage) 56.69 513.56 T +(2.1 Q-Scale) 85.04 500.56 T +(2.2 Search Techniques) 85.04 487.56 T +(2.3 GOP) 85.04 474.56 T +(2.4 Slices) 85.04 461.56 T +(2.5) 85.04 448.56 T +( Search window) 97.53 448.56 T +(2.6 IPB pattern) 85.04 435.56 T +(2.7 Specifying Input Files) 85.04 422.56 T +(2.8) 85.04 409.56 T +( Original or Decoded) 97.53 409.56 T +(2.9 Bit-rate Control) 85.04 396.56 T +(2.10 User-data) 85.04 383.56 T +(2.11 Compression Decision List \050CDL\051) 85.04 370.56 T +(2.12 Gamma Correction) 85.04 357.56 T +(2.13 Encoding GOPs at a time) 85.04 344.56 T +(2.14) 85.04 331.56 T +( Encoding Frames at a time) 102.53 331.56 T +(2.15) 85.04 318.56 T +( Stats and other info) 102.53 318.56 T +(3. Parallel Usage) 56.69 305.56 T +(3.1) 85.04 292.56 T +( Architecture) 97.53 292.56 T +(3.2 Specifying slave machines) 85.04 279.56 T +(3.3) 85.04 266.56 T +( Remote Shell) 97.53 266.56 T +(3.4 Scheduling Algorithms) 85.04 253.56 T +(3.5 Parallel Problems) 85.04 240.56 T +0 12 Q +(4. Performance) 56.69 226.23 T +0 10 Q +(5. Other Options) 56.69 213.56 T +(5.1) 85.04 200.56 T +( Custom Quantization Tables) 97.53 200.56 T +(5.2 Aspect Ratio) 85.04 187.56 T +(5.3) 85.04 174.56 T +( Frame Rate) 97.53 174.56 T +(6. Other Tools) 56.69 161.56 T +(6.1) 85.04 148.56 T +(ppmtoeyuv) 100.03 148.56 T +(6.2 jmovie2jpeg) 85.04 135.56 T +(6.3 movieToVid) 85.04 122.56 T +314.36 54.99 552.76 565.23 R +7 X +V +0 X +(6.4) 342.71 558.56 T +(yuvtojpeg) 357.7 558.56 T +(6.5) 342.71 545.56 T +( blockrun) 355.2 545.56 T +(6.6) 342.71 532.56 T +( vidtoppm) 355.2 532.56 T +(6.7 vidtojpeg) 342.71 519.56 T +(6.8 vidtoeyuv) 342.71 506.56 T +(7. Frequently Asked Questions) 314.36 493.56 T +(7.1 Questions) 342.71 480.56 T +(7.2 Answers) 342.71 467.56 T +1 12 Q +(0. Contacts/History) 314.36 432.23 T +0 10 Q +2.56 (The Berkeley MPEG encoder was written by Kevin L.) 314.36 414.56 P +0.59 (Gong in the Berkeley Plateau Multimedia Research group,) 314.36 403.56 P +2.29 (headed by Professor Lawrence Rowe. It has since been) 314.36 392.56 P +2.69 (modified by Stephen Smoot, Eugene Hung, and Darryl) 314.36 381.56 P +0.69 (Brown. Please use the following e-mail addresses to reach) 314.36 370.56 P +(us:) 314.36 359.56 T +-0.23 (mpeg-bugs@plateau.cs.berkeley.edu \050bug reports and ques-) 314.36 346.56 P +(tions\051 larry@cs.berkeley.edu \050research funding!\051) 314.36 335.56 T +1 12 Q +(1. Installation) 314.36 300.23 T +0 10 Q +(To install, read the directions in doc/INSTALL.) 342.71 282.56 T +1.32 (Note that the) 342.71 269.56 P +2 F +3.17 (bin/) 400.8 269.56 P +0 F +1.32 ( directory contains binaries for) 424.79 269.56 P +0.35 (several different platforms. The program has been success-) 314.36 258.56 P +(fully ported to the following platforms:) 314.36 247.56 T +(SunOS 4.x) 342.71 234.56 T +(DEC Alpha running OSF1) 342.71 221.56 T +(DECstation 5000 running Ultrix) 342.71 208.56 T +(HP 9000 series) 342.71 195.56 T +-0.06 (If you are successful in porting to a new platform, or) 342.71 169.56 P +0.15 (have problems installing, please let us know \050at the address) 314.36 158.56 P +(above\051.) 314.36 147.56 T +1 12 Q +(2. Sequential Usage) 314.36 112.23 T +0 10 Q +(The encoder is invoked in the following manner:) 314.36 81.56 T +1 F +(mpeg_encode) 352.7 68.56 T +0 F +( <options> parameter_file) 410.44 68.56 T +56.69 570.9 552.76 735.31 R +7 X +V +1 18 Q +0 X +(Berkeley MPEG-1 V) 174.89 723.31 T +(ideo Encoder) 333.11 723.31 T +290.64 685.53 254.68 685.53 2 L +V +1.71 H +0 Z +N +(User) 254.68 687.31 T +296.95 685.53 290.96 685.53 2 L +V +N +(\325) 290.96 687.31 T +354.77 685.53 296.29 685.53 2 L +V +N +(s Guide) 296.29 687.31 T +3 12 Q +(Plateau Resear) 245.54 657.31 T +(ch Gr) 318.71 657.31 T +(oup) 345.92 657.31 T +(Computer Science Division) 239.1 643.31 T +(University of California) 247.08 629.31 T +(Berkeley) 239.59 615.31 T +(, California 94720) 280.89 615.31 T +(mpeg-bugs@cs.berkeley) 236.26 596.31 T +(.edu) 352.87 596.31 T +56.69 54.99 297.64 104.6 R +7 X +V +56.69 94.59 297.64 104.6 C +56.69 94.59 297.64 104.6 R +7 X +0 K +V +56.69 103.59 525.7 103.59 2 L +V +1 H +2 Z +0 X +N +0 0 612 792 C +0 9 Q +0 X +0 K +(Last Updated: 30 January 1995) 56.69 88.59 T +FMENDPAGE +%%EndPage: "1" 0 +%%Trailer +%%BoundingBox: 0 0 612 792 +%%Pages: 11 -1 +%%DocumentFonts: Times-Roman +%%+ Times-Bold +%%+ Courier +%%+ Times-Italic |