Martin Hamilton (
Wed, 25 Aug 1993 17:52:37 +0100 (BST)

Ron said:

> Could anyone point me to some documentation on how to generate mpeg files?

This might be of interest...

>From: larry@TWEETY.CS.BERKELEY.EDU (Larry Rowe)
Subject: UCB MPEG-1 encoder release
Keywords: mpeg-1 codec
Message-ID: <>
Date: 2 Aug 93 17:22:31 GMT
Distribution: inet
Organization: U.C. Berkeley EECS Dept.
Lines: 113

The Berkeley Plateau Research Group is happy to announce the
release of Version 1.0 of its MPEG video encoder.
The encoder is available via anonymous ftp from
( in /pub/multimedia/mpeg/mpeg_encode-1.0.tar.Z.
That directory includes a sample uncompressed video sequence
(flower.tar), our software MPEG video player, and some MPEG movies.

Below is a copy of the README file:

MPEG-1 Video Software Encoder
(Version 1.0; July 30, 1993)

Lawrence A. Rowe, Kevin Gong, Ketan Patel, and Dan Wallach
Computer Science Division-EECS, Univ. of Calif. at Berkeley

This directory contains the freely distributed Berkeley MPEG-1 Video
Encoder. The decoder implements the standard described in the ISO/IEC
International Standard 11172-2. The code has been compiled and tested
on the following platforms:

HP PA-RISC (HP/UX 8.X, X11R4) (i.e., HP 9000/7XX and 9000/3XX)
Sun Sparc (SunOS 4.X, X11R5)
DECstation 5000 and Alpha

If you decide to port the code to a new architecture, please let
us know so that we can incorporate the changes into our sources.

This directory contains everything required to build the encoder
and run it. We have included source code, makefiles, binaries
for selected platforms, documentation, and test data. Installation
instructions are given in the file named src/INSTALL. A man
page is given in the file doc/mpeg_encode.1.

The encoder will accept any input file format as long as you provide
a script to convert the images to PPM or YUV format. Input file
processing is described in the file doc/INPUT.FORMAT. Options to control
input file processing and compression parameters are specified in
a parameter file. Very little error processing is done when reading
this file. We suggest you start with the sample parameter file
examples/template.param and modify it. See also examples/default.param.

We have also provided a Tcl/Tk script, named encode.tcl, that can
be used to set parameters interactively (see the misc/ directory).
The misc/ directory contains utility you might find useful including:
programs to do PPM/YUV conversion and programs to convert Parallax
XVideo JPEG files into PPM or YUV frames.

The motion vector search window can be specified, including half-pixel
block matching, in the parameter file. We have implemented several
search algorithms for P-frames including: 1) exhaustive search,
2) subsampled search, and 3) logarithmic search. We have also implemented
several alternatives for B-frame block matching including: 1) interpolate
best forward and best backward block, 2) find backward block for best
forward or vice-versa (called CROSS2), and 3) exhaustive cross product
(i.e., go out for coffee and a donut!). The search algorithms are controlled
by options in the parameters file. For tips on choosing the right search
technique, see doc/TIPS.

We have done some tuning to produce a reasonable encoder, but there are
many more optimizations that we would like to incorporate. These
extensions are listed in the file EXTENSIONS. If you succeed in
implementing any of them, please let us know! We have established
several mailing lists for messages about the Berkeley MPEG work:

General information on the MPEG-1 decoder and encoder for
everyone interested should be sent to this list.

Requests to join or leave the list should be sent to this
address. The subject line should contain the single word

Problems, questions, or patches should be sent to this address.

Our future plans include porting the encoder to run on other
platforms and completing a portable parallel version of the code
that will run on a network of workstations. Vendors or other
organizations interested in supporting this research or discussing
other aspects of this project should contact Larry Rowe at
Rowe@CS.Berkeley.EDU (+1 510-642-5117).


We gratefully thank Hewlett-Packard and Fujitsu who provided financial
support for this work. We also want to thank the following people for
their help:

Jef Poskanzer who developed the pbmplus package.
Copyright (C) 1989, 1991 by Jef Poskanzer.

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted, provided
that the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation. This software is provided "as is" without express or
implied warranty.

Eiichi Kowashi of Intel and Avideh Zakhor of U.C. Berkeley who
provided valuable suggestions on motion vector searching.

Chad Fogg of the University of Washington who has helped us
understand many issues in MPEG coding and decoding.

Professor Lawrence A. Rowe                 internet:  Rowe@cs.Berkeley.EDU
Computer Science Division - EECS           uucp: uunet!ucbvax!postgres!larry
University of California, Berkeley         phone: 510-642-5117
Berkeley, CA 94720                         fax: 510-642-5615