[ This brand-new encoder is really nice. Supports parralell computation ! ] [ There is also a really nice TKTCL-X11-Interface included !!! ] [ I already ported this to DOS (surely without the parallel stuff. ] From: Larry Rowe Date: Fri, 30 Jul 1993 17:15:56 -0700 Subject: MPEG Video Encoder Release 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 mm-ftp.cs.berkeley.edu (128.32.149.157) 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. Larry and Kevin 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: 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. 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). 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. [ He added the very nice patch that allows mpeg_play to decode ] [ a MPEG-stream to produce a series of pbm-files. The DOS-port ] [ of this utility is called MPEG2P11.ZIP ] --------- 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. --------------------------------------------------------------------------- [ You can find this in the /pub/multimedia/mpeg-directory of Berkeley's ] [ ftp-server. Belongs to there codec. ] This directory includes 150 raw YUV frames suitable for use with the MPEG encoder. The YUV frames are the files flower.*.tar.z. To uncompress, use the GNU 'gunzip' program. You should uncompress all of these files inside a directory named 'flowg'. To run the test, simply do 'mpeg_encode flower.param' To make sure the test worked, do 'diff flowgard.mpg result.mpg' (there shouldn't be any difference; if there is, let us know) Please see the file 'times,' which includes time results for various machines and compilers. ---------------------------------------------------------------------------