# 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
