• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

convert/H03-May-2022-

docs/H03-May-2022-19,69419,593

examples/H02-Feb-1995-6,3674,212

headers/H03-May-2022-3,005982

jpeg/H03-May-2022-47,47229,719

tst/H03-May-2022-538411

BUGSH A D16-Aug-19951.8 KiB6339

CHANGESH A D11-Aug-19956.5 KiB181154

COPYRIGHTH A D02-Feb-19951.1 KiB2120

INSTALLH A D16-Aug-19953.3 KiB6656

MakefileH A D03-May-20228.4 KiB26671

NOTESH A D02-Feb-19953.5 KiB13290

READMEH A D02-Feb-19956.2 KiB130103

TODOH A D05-Aug-19955.6 KiB151125

VERSIONH A D12-Jul-199513 21

bframe.cH A D14-Aug-199537.8 KiB1,331874

bitio.cH A D03-May-202213.8 KiB552275

block.cH A D07-Aug-199532 KiB1,237729

bsearch.cH A D07-Aug-199529.2 KiB1,152709

combine.cH A D07-Aug-199512.6 KiB511296

file.cH A D19-Jan-19957 KiB323224

frame.cH A D14-Aug-199524.3 KiB974571

frametype.cH A D29-Jun-19959.2 KiB370225

fsize.cH A D03-Jul-19953.5 KiB13642

huff.cH A D19-Jan-19955.3 KiB13269

huff.hH A D19-Jan-19951.4 KiB355

huff.tableH A D18-Oct-19943.9 KiB173147

iframe.cH A D14-Aug-199530.5 KiB1,148707

jpeg.cH A D03-May-202222.6 KiB663351

jrevdct.cH A D10-Aug-199535.9 KiB1,279888

libpnmrw.cH A D03-May-202236.5 KiB1,7611,491

main.cH A D07-Aug-199515.2 KiB579353

memory.cH A D19-Jan-19951.9 KiB7223

mfwddct.cH A D10-Aug-199511.5 KiB394189

mheaders.cH A D07-Aug-199526.5 KiB1,192713

moutput.cH A D19-Jan-199510 KiB443230

mpeg.cH A D16-Aug-199542.7 KiB1,6651,057

mpeg_encode.1H A D29-Mar-199513.5 KiB387384

mquant.cH A D19-Jan-19951,022 4524

nojpeg.cH A D19-Jan-19955 KiB13627

noparallel.cH A D12-May-19956.4 KiB282147

opts.cH A D03-May-202213.3 KiB522320

parallel.cH A D16-Aug-199549 KiB1,9621,174

param.cH A D16-Aug-199540.2 KiB1,365921

param.newH A D23-Jan-199530.5 KiB1,142999

parseSchedule.cH A D19-Jan-19951.6 KiB6542

parse_huff.plH A D18-Oct-19946.7 KiB199111

pframe.cH A D07-Aug-199529.6 KiB1,098648

postdct.cH A D21-Jun-199514.5 KiB627338

psearch.cH A D18-Jul-199523.9 KiB1,027630

qtest.cH A D19-Jan-19952 KiB6420

rate.cH A D16-Aug-199526.1 KiB959496

readframe.cH A D14-Aug-199528.6 KiB1,168657

rgbtoycc.cH A D14-Aug-199510.2 KiB352205

simple.paramH A D02-Feb-1995547 4125

specifics.cH A D15-Aug-199516.8 KiB689424

subsample.cH A D19-Jan-199528.6 KiB785543

README

1
2                 MPEG-1 Video Software Encoder
3                (Version 1.5; February 1, 1995)
4
5     Lawrence A. Rowe, Kevin Gong, Eugene Hung, Ketan Patel, Steve Smoot
6       and Dan Wallach
7    Computer Science Division-EECS, Univ. of Calif. at Berkeley
8
9This directory contains the freely distributed Berkeley MPEG-1 Video
10Encoder.  The encoder implements the standard described in the ISO/IEC
11International Standard 11172-2.  The code has been compiled and tested
12on the following platforms:
13
14 DECstation 5000 and Alpha
15 HP PA-RISC (HP/UX 9.X) (i.e., HP 9000/7XX and 9000/3XX)
16 SGI Indigo running IRIX 5.0.1
17 Sun Sparc (SunOS 4.X)
18
19In addition, Rainer Menes from the Technical University of Munich has
20ported the encoder and decoder to the Macintosh.  You can get that code
21directly from him (menes@statistik.tu-muenchen.de), or from the
22Berkeley FTP archive (mm-ftp.CS.Berkeley.EDU).  If you decide to port
23the code to a new architecture, please let us know so that we can
24incorporate the changes into our sources.
25
26This directory contains everything required to build the encoder
27and run it.  We have included source code, makefiles, binaries
28for selected platforms, documentation, and test data.  Installation
29instructions are given in the file named src/mpeg_encode/INSTALL.  A man
30page is given in the file doc/mpeg_encode.1.  A detailed user
31manual is provided in postscript format in the file doc/user-manual.ps.
32
33The encoder will accept any input file format as long as you provide
34a script to convert the images to PPM, YUV, JPEG, or JMOVIE format.  Input
35file processing is described in the file doc/INPUT.FORMAT.  Options to
36control input file processing and compression parameters are specified in
37a parameter file.  Very little error processing is done when reading
38this file.  We suggest you start with the sample parameter file
39examples/template.param and modify it.  See also examples/default.param.
40
41The convert directory of Mpeg-Tools contains utilities you might find
42useful including:
43
44programs to do PPM/YUV conversion and programs to convert Parallax
45XVideo JPEG files into PPM, YUV, or JPEG frames.
46
47The motion vector search window can be specified, including half-pixel
48block matching, in the parameter file.  We have implemented several
49search algorithms for P-frames including: 1) exhaustive search,
502) subsampled search, and 3) logarithmic search.  We have also implemented
51several alternatives for B-frame block matching including: 1) interpolate
52best forward and best backward block, 2) find backward block for best
53forward or vice-versa (called CROSS2), and 3) exhaustive cross product
54(i.e., go out for coffee and a donut!). The search algorithms are controlled
55by options in the parameters file.  For tips on choosing the right search
56technique, see the user manual.
57
58The encoder can be run on one computer (i.e., sequential) or on several
59computers (i.e., parallel).  Our goal is to produce a portable, easy-to-use
60encoder that we can use to encode large volumes of video material for
61the Berkeley VOD system (see paper VodsProp93.ps.Z on the FTP archive).
62The parallelism is done on a sequence of pictures.  In other words, you
63can spawn one or more children to encode continuous runs pictures. The
64uncompressed data can be accessed either through NFS or TCP sockets.
65The goal is to allow you to encode using multiple processors, think
66spare cycles on workstations, to speed up the encoding time.  Although
67performance depends on the speed of individual processors, the file system
68and network, and the P/B frame search methods, we have encoded 3.75
69frames/second on 8 HP Snakes running in parallel as compared with 0.6
70frames/second on 1 Snake.  These are preliminary results. We are continuing
71to experiment with and tune the code.  Instructions to run the parallel system
72are given in the man page and the parallel.param example parameter file.
73
74We have done some tuning to produce a reasonable encoder, but there are
75many more optimizations that we would like to incorporate.  These
76extensions are listed in the file doc/EXTENSIONS.  If you succeed in
77implementing any of them, please let us know!
78
79Send bug reports to:
80
81mpeg-bugs@CS.Berkeley.EDU
82   Problems, questions, or patches should be sent to this address.
83
84Anyone interested in providing financial support for this research or
85discussing other aspects of this project should contact Larry Rowe at
86Rowe@CS.Berkeley.EDU (+1 510-642-5117).
87
88This software is freely distributed.  That means, you may use it for
89any non-commercial purpose.  However, patents are held by several companies
90on various aspects of the MPEG video standard.  Companies or individuals
91who want to develop commercial products that include this code must
92acquire licenses from these companies.  For information on licensing, see
93Appendix F in the standard.
94
95ACKNOWLEDGEMENTS:
96
97We gratefully thank Hewlett-Packard and Fujitsu who provided financial
98support for this work.  We also want to thank the following people and
99organizations for their help:
100
101    Jef Poskanzer who developed the pbmplus package.
102    ---------
103    Copyright (C) 1989, 1991 by Jef Poskanzer.
104
105    Permission to use, copy, modify, and distribute this software and its
106    documentation for any purpose and without fee is hereby granted, provided
107    that the above copyright notice appear in all copies and that both that
108    copyright notice and this permission notice appear in supporting
109    documentation.  This software is provided "as is" without express or
110    implied warranty.
111    ---------
112
113    Eiichi Kowashi of Intel and Avideh Zakhor of U.C. Berkeley who
114    provided valuable suggestions on motion vector searching.
115
116    Chad Fogg of the University of Washington who has helped us
117    understand many issues in MPEG coding and decoding.
118
119    Rainer Menes of the Technical University of Munich who has ported the
120    the Berkeley MPEG encoder and decoder to the Macintosh, and he has
121    provided us with many suggestions to improve the code.
122
123    Robert Safranek of ATT for comments, suggestions, and most of the
124    code for custom quantization tables.
125
126    Jim Boucher of Boston University for jmovie2jpeg.
127
128    The San Diego SuperComputing Center for providing facilities to
129    develop some of the code contained within.
130