1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
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
|