home *** CD-ROM | disk | FTP | other *** search
-
- MPEG-1 Video Software Encoder
- (Version 1.3; March 14, 1994)
-
- 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 encoder implements the standard described in the ISO/IEC
- International Standard 11172-2. The code has been compiled and tested
- on the following platforms:
-
- DECstation 5000 and Alpha
- HP PA-RISC (HP/UX 8.X) (i.e., HP 9000/7XX and 9000/3XX)
- IBM RS/6000
- Intel i486 running ISC InterActive 2.2.1 (SysV 3.2), Linux (SLS v1.01),
- and XFree86-1.2 (X11R5)
- SGI Indigo running IRIX 5.0.1
- Sun Sparc (SunOS 4.X)
-
- If you have trouble installing, binaries for DECstation 5000, Dec Alpha,
- HP 9000, and Sun Sparc are included in mpeg_encode-1.3.bin.tar.Z from
- the Berkeley FTP archive (mm-ftp.CS.Berkeley.EDU).
-
- In addition, Rainer Menes from the Technical University of Munich has
- ported the encoder and decoder to the Macintosh. You can get that code
- directly from him (menes@statistik.tu-muenchen.de), or from the
- Berkeley FTP archive. 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. A detailed user manual
- is provided in postscript format in the file doc/user-manual.ps.
-
- 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.
-
- The misc/ directory contains utilities 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 the user manual.
-
- The encoder can be run on one computer (i.e., sequential) or on several
- computers (i.e., parallel). Our goal is to produce a portable, easy-to-use
- encoder that we can use to encode large volumes of video material for
- the Berkeley VOD system (see paper VodsProp93.ps.Z on the FTP archive).
- The parallelism is done on a sequence of pictures. In other words, you
- can spawn one or more children to encode continuous runs pictures. The
- uncompressed data can be accessed either through NFS or TCP sockets.
- The goal is to allow you to encode using multiple processors, think
- spare cycles on workstations, to speed up the encoding time. Although
- performance depends on the speed of individual processors, the file system
- and network, and the P/B frame search methods, we have encoded 3.75
- frames/second on 8 HP Snakes running in parallel as compared with 0.6
- frames/second on 1 Snake. These are preliminary results. We are continuing
- to experiment with and tune the code. Instructions to run the parallel system
- are given in the man page and the parallel.param example parameter file.
-
- 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! In particular, we have not
- implemented rate control to limit the bitrate nor dynamically varying
- compression parameters (e.g., frame sequence, Qscale, search technique, etc.).
-
- We have established several mailing lists for messages about the Berkeley
- MPEG work:
-
- mpeg-list-dist@CS.Berkeley.EDU
- General information on the MPEG-1 decoder and encoder for
- everyone interested should be sent to this list.
-
- mpeg-list-request@CS.Berkeley.EDU
- Requests to join or leave the list should be sent to this
- address. The subject line should contain the single word
- ADD or DELETE.
-
- mpeg-bugs@CS.Berkeley.EDU
- Problems, questions, or patches should be sent to this address.
-
- Anyone interested in providing financial support for this research or
- discussing other aspects of this project should contact Larry Rowe at
- Rowe@CS.Berkeley.EDU (+1 510-642-5117).
-
- This software is freely distributed. That means, you may use it for
- any non-commercial purpose. However, patents are held by several companies
- on various aspects of the MPEG video standard. Companies or individuals
- who want to develop commercial products that include this code must
- acquire licenses from these companies. For information on licensing, see
- Appendix F in the standard.
-
- ACKNOWLEDGEMENTS:
-
- 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.
-
- Rainer Menes of the Technical University of Munich who has ported the
- the Berkeley MPEG encoder and decoder to the Macintosh, and he has
- provided us with many suggestions to improve the code.
-
- Robert Safranek of ATT for comments, suggestions, and most of the
- code for custom quantization tables.
-
- Jim Boucher of Boston University for jmovie2jpeg.
-