Subject: MPEG-FAQ: multimedia compression [6/8]
Date: 9 Jun 1995 11:02:59 GMT
Summary: This is the summary about the ISO video and audioformats MPEG 1, 2 and 4
answers:9856 comp.answers:12389 news.answers:45909

Version: v 4.0 95/06/07
Posting-Frequency: bimonthly
BEGIN -------------------- CUT HERE --------------------- 6/8

See the INSTALL file for instructions on how to
compile and run the analyzer.

Our future plans consist of more fully supporting an interactive
editor paradigm; specifying changes directly on the display, 
seeing the results of edits on the video stream immediately
as they occur, etc.  We would also like to port the code to
run on more platforms, and add support for system layer streams.
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.

Reporting bugs:
    If you find any bugs in this software, please send them to
    mpeg-bugs@plateau.cs.berkeley.edu.  Since this software
    is unsupported, we make no guarantees about how long it will
    take to fix the bug, or if it will be fixed at all.  Bug fixes
    will be cheerfully accepted.  Please include as much detailed
    information as possible, including:

.1) the version number of the program you are using (cf. VERSION)
.2) the data file that caused the bug (if possible)
.3) the OS version and machine type you ran the program on
.4) the compiler used to compile the program

ACKNOWLEDGEMENTS:
.We gratefully thank Hewlett-Packard, Fujitsu, the Semiconductor
.Research Corporation for financial support.

.We also want to thank the following people for their help:

.Tom Lane of the Independent JPEG Group provided us with
..the basic inverse DCT code used by our player.
..(tom_lane@g.gp.cs.cmu.edu)

.Reid Judd of Sun Microsystems provided advice and assistance.

.Todd Brunhoff of NVR provided advice and assistance.

.Toshihiko Kawai of Sony provided advice and assistance.

-- 
Eugene Hung                             eyhung@garnet.berkeley.edu

---------------------------------------------------------------------------

~Subject: MPEG Blocks Analyzer

                    MPEG Blocks Analyzer
                  (Version 1.0; Feb 1 1995)

                       Ketan Patel
                       Steve Smoot 
                       Brian Smith
                     Sam Tze-San Fung

 Computer Science Division-EECS, Univ. of Calif. at Berkeley

This directory contains a public domain MPEG video software
analyzer.  It operates by playing a video stream in one window, while
another window displays the block type and motion vectors for each block in
the current frame.

The decoder implements the standard described in the Committee 
Draft ISO/IEC CD 11172 dated December 6, 1991 which is
sometimes refered to as "Paris Format." 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)

This directory contains everything required to build and
display video. We have included source code, a makefile, 
installation instructions, and a man page. Data files can
be obtained from the same ftp site this was located in.
See the INSTALL file for instructions on how to
compile and run mpeg_blocks.

Problems, questions, or patches should be sent to:
.mpeg-bugs@Plateau.CS.Berkeley.EDU

ACKNOWLEDGEMENTS:
.We gratefully thank Hewlett-Packard, Fujitsu, the Semiconductor
.Research Corporation for financial support.

.We also want to thank the following people for their help:

.Tom Lane of the Independent JPEG Group provided us with
..the basic inverse DCT code used by our player.
..(tom_lane@g.gp.cs.cmu.edu)

.Reid Judd of Sun Microsystems provided advice and assistance.

.Todd Brunhoff of NVR provided advice and assistance.

.Toshihiko Kawai of Sony provided advice and assistance.

-- 
Eugene Hung                             eyhung@garnet.berkeley.edu

---------------------------------------------------------------------------

~Subject: MPEG Video Software Statistics Gatherer

              MPEG Video Software Statistics Gatherer
                  (Version 2.2; May 8, 1995)

 Lawrence A. Rowe, Steve Smoot, Ketan Patel, and Brian Smith
 Computer Science Division-EECS, Univ. of Calif. at Berkeley

This directory contains a public domain MPEG video statistics gatherer.
The decoder implements the standard described in the Committee 
Draft ISO/IEC CD 11172 dated December 6, 1991 which is
sometimes referred to as "Paris Format." The code has been
compiled and tested on the following platforms:

 HP PA-RISC (HP/UX 9.X) (i.e., HP 9000/7XX and 9000/3XX)
 Sun Sparc (SunOS 4.X)
 DECstation 5000 and Alpha
 Sequent
 Irix 4.0.5
 Linux

See the CHANGES file for information on all the improvements over 2.0

See the manual page for information on how to use mpeg_stat.

Send bug reports to mpeg-bugs@plateau.cs.berkeley.edu,
job offers (PhD in '96) to smoot@cs.berkeley.edu ;-)

Vendors or other organizations interested in supporting 
this research or discussing other aspects of this project should 
contact Professor Larry Rowe at rowe@CS.Berkeley.EDU.

FUTURE PLANS:
In the next version I'd like to beef up the verification code and do
something with system layer audio (when present).  In addition (major
though) MPEG-2 would be cool.  If you send me code to do any of this, it
will be much appreciated.  (In general, though, I'll only be improving it
to meet my thesis needs. -srs)

INSTALL:
  If you have gcc, type "make"
  See the file INSTALL for slightly more help.

AUDIO (we don't do audio, but Chad Fogg points out):
  CCETT has been distributing executables only of their Audio bitstream
  syntax verifier.  The site address is: 161.105.2.22
  Audio conformance bitstreams are also at ftp.tnt.uni-hannover.de 

ACKNOWLEDGEMENTS:
.We gratefully thank Hewlett-Packard, Fujitsu, the Semiconductor
.Research Corporation for financial support.

.We also want to thank the following people for their help:

.Tom Lane of the Independent JPEG Group provided us with
..the basic inverse DCT code used by our player.
..(tom_lane@g.gp.cs.cmu.edu)

.Reid Judd of Sun Microsystems provided advice and assistance.

.Todd Brunhoff of NVR provided advice and assistance.

.Toshihiko Kawai of Sony provided advice and assistance.

-- 
Eugene Hung                             eyhung@garnet.berkeley.edu

---------------------------------------------------------------------------

~Subject: xmg

XMG v1.0 - The X MPEG Grabber  
*******************************

DESCRIPTION
+++++++++++

XMG is a utility for the X Window System which allows you to create MPEG-1 video streams by repeatedly
grabbing a window on the screen and then joining the frames into an MPEG sequence. XMG has several
options that modify its behaviour, but it also provides sensible defaults for most of them. The two switches that
you'll use most of the time are -fps (or -fpm) and -frames. These specify the number of frames per second (or
per minute) and the total number of frames to grab. Here's an example invocation : 

        xmg -fps 1 -frames 20

This specifies that we want to grab 20 frames, one per second, and also that we want to see what's going on
during the grabbing process. At this point the XMG window will appear : 

                         

Click on the "Grab" button and then click with the left mouse button inside the window that you want to grab.
Once you've done this, the grabbing process will begin immediately, displaying some progress information as
it does it. It is possible to change a few parameters directly from inside the window, instead of specifying them
on the command line. When all the frames have been grabbed, the MPEG encoding process begins: go off and
make yourself a nice cup of tea and come back later. By default the program creates a file called xmgout.mpg
in the current directory. This file can then be viewed with any MPEG player which supports I,P and B frames
of any size (Xing for example, doesn't support them). You can specify a different name for the output file with
the -output switch. For example, the command : 

        xmg -fps 1 -frames 20 -output mympeg.mpg

will create a file called mympeg.mpg. When XMG is grabbing the frames, it stores them in a temporary RLE
compressed and archived format called XLA. This file can become quite large very quickly, especially if you're
grabbing several frames of a certain size. This file will be created by default in the /tmp directory with the
name xmgtmp.$$$. This can be changed with the -tmp option : 

        xmg -fps 1 -frames 20 -tmp /empty/xmpeggrab.tmp

which will create it in the /empty directory with the name xmpeggrab.tmp. Make sure you've got plenty of
space on the device ! To actually perform the encoding, XMG requires a parameter file. By default this file is
called xmg.param and has to be in the current directory. Don't worry if you haven't got one : XMG will create
a default one for you and use that. A different parameter file can be specified with the -param switch : 

        xmg -fps 1 -frames 20 -param flower.param

This will use the file flower.param. A description of the possible contents of the paramter file is provided later
on. 

SYNOPSIS
++++++++

    xmg
        -help
        -display host:dpy
        -frames nframes
        -fps nfps
        -fpm nfpm
        -terse 
        -output filename
        -tmp filename
        -param filename

OPTIONS
+++++++

-fps nfps : specifies the number of frames per second to grab. Even if the machine you're using is slow, XMG
will grab the server during the grab, so that no other application can write to the screen at the same time. As
soon as the frame has been grabbed, the server is released so that the other applications can redraw their client
area. 

-fpm nfpm : specifies the number of frames per minute to grab. 

-frames nframes : specifies the number of frames to grab in total. 

-output filename : specifies a name and location for the generated MPEG stream. By default XMG creates a
file in the current directory called xmgout.mpg. 

-tmp filename : specifies a name and location for the temporary storage of the grabbed frames. This file is
deleted when XMG has completed the encoding process. The default is /tmp/xmgtmp.$$$ 

-terse : does not display the XMG status window during the grabbing/encoding process. The default is to
display the XMG window. 

-param : specifies a name and location for the parameter file. By default the file is called xmg.param and has to
be in the current directory. If one doesn't exist, a default one will be created for you. 

PARAMETER FILE
++++++++++++++

The parameter file MUST contain the following lines : 

PATTERN pattern
---------------

pattern is a sequence of I's, P's and B's, that specifies the order of the frames in the MPEG stream. 

GOP_SIZE n
----------

n is roughly the number of frames in a Group of Pictures (roughly because a GOP must begin with an I-frame) 

SLICES_PER_FRAME n
------------------

n is roughly the number of slices per frame. Note, at least one MPEG player may complain if slices do not start
at the left side of an image. To ensure this does not happen, make sure the number of rows is divisible by
SLICES_PER_FRAME. 

PIXEL (FULL or HALF)
--------------------

use half-pixel motion vectors, or only full-pixel ones 

RANGE 
------

use a search range of +/- n pixels 

PSEARCH_ALG algorithm
---------------------

algorithm must be one of {EXHAUSTIVE, TWOLEVEL, SUBSAMPLE, LOGARITHMIC}. Tells what kind
of search procedure should be used for P-frames. Exhaustive gives the best compression, but logarithmic is the
fastest. You select the desired combination of speed and compression. TWOLEVEL is an exhaustive full-pixel
search, followed by a local half- pixel search around the best full-pixel vector (the PIXEL option is ignored
for this search algorithm). BSEARCH_ALG algorithm must be one of {SIMPLE, CROSS2, EXHAUSTIVE}.
Tells what kind of search procedure should be used for B-frames. Simple means find best forward and
backward vectors, then interpolate. Cross2 means find those two vectors, then see what backward vector best
matches the best forward vector, and vice versa. Exhaustive does an n-squared search and is EXTREMELY
slow in relation to the others (Cross2 is about twice as slow as Simple). 

IQSCALE
-------

use n as the qscale for I-frames 

PQSCALE
-------

use n as the qscale for P-frames 

BQSCALE
-------

use n as the qscale for B-frames 

REFERENCE_FRAME (ORIGINAL or DECODED)
-------------------------------------

If ORIGINAL is specified, then the original images are used when computing motion vectors. To be more
accurate, use DECODED, in which the decoded images are used. This should increase the quality of the image,
but will take a bit longer to encode. 

The lines may appear in any order, except the following exceptions. 

NOTES
+++++

If XMG was compiled with the -DMITSHM switch enabled, then shared memory will be used if available and
will increase performance noticeably. 

AUTHOR
++++++

Tristan Tarrant - University of Sussex, UK, tristant@cogs.susx.ac.uk 

CREDITS
+++++++

MPEG encoding based on mpeg_encode by : 

Kevin Gong - University of California, Berkeley, keving@cs.berkeley.edu 

Ketan Patel - University of California, Berkeley, kpatel@cs.berkeley.edu 

Dan Wallach - University of California, Berkeley, dwallach@cs.berkeley.edu 

BUGS AND LIMITATIONS
++++++++++++++++++++

XMG works only on Pseudo-Color displays. No known bugs. 

Tristan Tarrant, tristant@cogs.susx.ac.uk

---------------------------------------------------------------------------

~Subject: mpegstat

Tom Pfeifer (pfeifer@fokus.gmd.de) announces:

[ mpegstat.tar.Z was uploaded to mm-ftp.cs.berkeley.edu, the DOS-port ]
[ is available on ftp.cs.tu-berlin.de                                 ]
[ It will probably included in the next version of Berkeley's encoder ]

This is mpegstat v1.0 - an analyzing took for MPEG-I video streams for Unix. 
It is based on the Berkeley MPEG player v2.0, utilizing the Berkeley parsing 
and decoding routines for the MPEG data stream.


MPEGSTAT is  a  useful utility for analyzing MPEG-I video
streams. It is based on the Berkeley  MPEG  movie  player.
MPEGSTAT reads  a  video  stream from a file or stdin and
shows the frame type pattern as it is found while parsing.
After  the  stream  is  completely  parsed it displays the
frame pattern as it would be displayed by a  MPEG  viewer.
It then generates a summary of various mpeg format related
statistics.  MPEGSTAT works for MPEG movies that are Paris
format compatible.


Authors

Multimedia  systems  project - Technical University of Berlin, Germany
Tom   Pfeifer,   Dept.   of    Computer    Science, pfeifer@fokus.gmd.de
Jens  Brettin - Alexander Schulze - Harald Masche - Dirk Schubert

---------------------------------------------------------------------------

~Subject: mplex

*********************************************************************
*                                                                   *
*         ANNOUNCING OF A FREE MPEG 1/SYSTEMS MULTIPLEXER           *
*                                                                   *
*   thanks to                                                       *
*   ^^^^^^^^^                                                       *
*    SIEMENS LTD, CORPORATE RESEARCH AND DEVELOPMENT ZFE ST SN 11   *
*         TECHNICAL UNIVERSITY OF MUNICH, PROF. SCHLICHTER          *
*                                                                   *
*********************************************************************


Hello all.

This is an announcing for all of those that have already been waiting
on the release of my code for multiplexing one  MPEG 1 Audio  and one
MPEG 1 Video Stream   into a  MPEG 1/SYSTEMS  multiplexed data stream
according to the ISO/IEC 11172-1 specs.  Sorry for all of those  that
needed the code really bad and kept mailing me on it. I couldn't hold
my promises because of copyright release on part of the University.

But here it is: I uploaded the source code on

URL=ftp://hpsystem2.informatik.tu-muenchen.de//pub/comp/graphics/mpeg/mplex/mplex-1.0beta.tar.gz
    [131.159.0.198]
    ftp.informatik.tu-muenchen.de

.gz means it is compressed with GNU zip. Should somebody not have it,
you can find it on our FTP server under

   /pub/comp/gnu/gzip/

else, just try

   get mplex-1.0beta.tar.Z

Our FTP server will do an on-the-fly-compressing with the 'compress'
(.Z) format.


Now to the code itself:

I have been kept really busy with my papers on multiplexing (they will
shortly be available on the FTP server also, I will post on that),  so
sorry if I couldn'g tighten the code up a bit.  There is no real docu-
mentation yet, please try out the code.  Feel free to email me for any
further questions.

As of now, this code will only run under standard UN*X-Style platforms
providing a (K&R-Style) C compiler (GNU CC is fine). It tested fine on
SUN's, HEWLETT PACKARD's series 700, SILICON GRAPHICS machine's.
There is * NO DOS PORT AVAILABLE (YET) *.

Contact me if you are planning such a thing.

There will be better releases, and I promise to clean up the code soon.

:)

This Software is released under the terms of the GNU public license,
see the tar archive for further details. Feel free to archive the code
on other FTP servers or post it to newsgroups, if there is such
interest.


Research done at 

    SIEMENS LTD, CORPORATE RESEARCH AND DEVELOPMENT ZFE ST SN 11
    TECHNICAL UNIVERSITY OF MUNICH, PROF. SCHLICHTER

Christoph Moar             moar@Informatik.TU-Muenchen.DE (Christoph Moar)

---------------------------------------------------------------------------

~Subject: xmplay

[ Here it is !! The first, fully-featured MPEG-player with X11-interface. ]
[ XMPLAY exists currently in Version 1.0, patches are available. The next ]
[ Version 1.1 is currently in development. Thats the announcement !       ]

            XMPLAY [Version 1.1] - Sun Apr 10 14:51:22 MDT 1994

      This distribution is the result of a project worked out at the
      Technical University (TU) Berlin, held in Winter 93/94 by
      Tom Pfeifer. The basic idea is created by Frank Gadegast,
      the programing work was then done by Juergen Meyer, Metin
      Cetinkaya and Frank Gadegast.

This software is ftp-able from:

URL=ftp://ftp.cs.tu-berlin.de/pub/incoming/xmplay-1.0.tar.gz
    [130.149.17.7]
    quepasa.cs.tu-berlin.de
URL=ftp://ftp.cs.tu-berlin.de/pub/incoming/xmplay-1.0.patch.tar.gz

[ Just to remember .gz means, its compressed using GNU's zip, called ]
[ gzip. Use gunzip to uncompress.                                    ]


XMPLAY [Version 1.1]

<IMG SRC="xmplay1.gif"> <IMG SRC="xmplay2.gif">

XMPLAY is a very nice directory-browser under X11 to use XMPEG,
the interactive X11-MPEG-player.

MPEG is a video-format described by the ISO-standard ISO CD11172.
This implementation here can handle MPEG-stream written down
at the MPEG-group-meeting in Paris '92. It can handle IPB-frames
but no system- nor audio-information.

<IMG SRC="xmplay3.gif"> <IMG SRC="xmplay4.gif">

Additional you get a little utility called MPEGINFO, showing you, if called
with the filename of a MPEG-file the most important parameter it can read
dirrectly from its header, like size, picture rate or frame-style.

It should work under nearly every system, 'cause it's programed without
MOTIF, the X11-Toolit or other stupid things, that are always causing
problems. It only needs the X11-library, no matter if you're using
Release 3, 4 or Release 5.

In addition it has lots of defines to let it run under BSD, SYSV, ISC,
Solaris, SunOS, A/UX, SCO or XENIX and you don't have to hack a difficult
Imake- or Makefile and you will not have trouble with build-in pathnames !!!

It's specially made for those systems, that don't have super hardware
or that have problems with the Toolkit or MOTIF.


XMPEG [Version 1.1]

<IMG SRC="xmpeg1.gif"> <IMG SRC="xmpeg3.gif">

XMPEG is a MPEG-video-player based on the MPEG-widget-implementation
from Jim Frost and the MPEG-movie-player "mpeg_play" from the Portable
Video Research Group at Berkeley.

It just adds a few buttons and is normally getting called
from XMPLAY, but can be used as stand-alone to include into other
programs. Its programmed with the same methods than XMPLAY.

<IMG SRC="xmpeg2.gif"> <IMG SRC="xmpeg4.gif">


You can ftp XMPLAY from 'quepasa.cs.tu-berlin.de' from the
directory '/pub/msdos/incoming'.


If you get problems (not really possible) to compile it or if you have
comments send them to the authors, reachable at:

        phade@cs.tu-berlin.de (responsible for compiling and X11)
        jm@cs.tu-berlin.de (responsible for the mpeg-code) or
        brain@cs.tu-berlin.de

---------------------------------------------------------------------------

~Subject: xplayer

           Version 2.0; Jan 27, 1993)
..  (Motif interface; Jan 30, 1994)

        Lawrence A. Rowe, Ketan Patel, and Brian Smith
 Computer Science Division-EECS, Univ. of Calif. at Berkeley

                  Motif Interface: Daeron Meyer
           The Geometry Center, University of Minnesota

There are several mailing lists established for messages about
the decoder:

mpeg-list-dist@CS.Berkeley.EDU
deo Software Decoder
                  (Version 2.0; Jan 27, 1993)
..  (Motif interface; Jan 30, 1994)

        Lawrence A. Rowe, Ketan Patel, and Brian Smith
 Computer Science Division-EECS, Univ. of Calif. at Berkeley

                  Motif Interface: Daeron Meyer
           The Geometry Center, University of Minnesota

There are several mailing lists established for messages about
the decoder:

mpeg-list-dist@CS.Berkeley.EDU
   General information on the decoder for everyone interested
   should be sent to this list.  This should become active after
   11/20/92

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.

If you have any questions or bug reports for the motif version
(and I'm sure there will be plenty) please send mail to:

   daeron@geom.umn.edu

Also check out the online web documentation for the motif version:

   http://www.geom.umn.edu/docs/mpeg_play/mpeg_play.html

---------------------------------------------------------------------------

~Subject: xmpeg.tk

<IMG SRC="xmpegtk1.gif"> <IMG SRC="xmpegtk2.gif">

It's a bit confusing to have now 2 utilities having the same name
(as xmpeg is already a part of the XMPLAY distritution. It would
be nice to rename the following tool to xmpeg.tk, contacted the author
about that but got no reply :o(


xmpeg (ver 0.5b)

Tk/Tcl based front end to mpeg_play.


xmpeg is a simple script that allows users of mpeg_play to have a graphical
front end to mpeg_play. This means that one does not have to remember 
what the command line switches are needed, or what kinds of dithering are 
available. The idea for this came about when we started using NCSA's xmosaic.
Sometimes it would take 10 minutes to retrieve an mpeg file and it would only
be displayed once. If you missed it or wanted to view it again, you would
have to retreive it again and again. Thus xmpeg came into play. 
It takes a file name as an argument (a temp file in xmosaic's case)
and allows the user to specify the settings they wish to use. Then the user
clicks on 'Play Anim' and mpeg_play is invoked.

REQUIREMENTS: In order to use xmpeg you should have Tk 3.3, Tcl 7.0 and
mpeg_play 2.0. This has been tested on Sun's running SunOS 4.1.3.


Comments and/or questions should be directed to Alexei Rodriguez
(alexei@cis.ufl.edu).

AVAILABILITY:  xmpeg is available at

URL=ftp://ftp.cis.ufl.edu/pub/xmpeg
    [128.227.100.252]

I will upload it to harbor.ecn.purdue.edu.

---------------------------------------------------------------------------

~Subject: mpeg2encode / mpeg2decode

From: cfogg@netcom.com (Chad Fogg)
Subject: MPEG-2 source code and MS-DOS executables available via anon. FTP

We, the MPEG Software Simulation Group, are releasing our MPEG-2 and
MPEG-1 Video encoder and decoder source code, along with example bitstreams
and pre-compiled MS-DOS executables.  Please read the following extracts
from our README file for more information:

...  mpeg2encode / mpeg2decode
...  =========================
.      MPEG-2 Encoder / Decoder, Version 1.0, May 1994

...MPEG Software Simulation Group
...      (MPEG-L@netcom.com)

Contents:
1. Overview
2. Introduction
3. Contacting the MPEG Software Simulation Group
4. Availability 
5. Installation
6. Acknowledgements
7. History of the technical report


1. Overview
===========

This directory contains our implementation of an ISO/IEC DIS 13818-2 codec. 
It converts uncompressed video frames into MPEG-1 and MPEG-2 video 
coded bitstream sequences, and vice versa.

The files mpeg2enc.doc and mpeg2dec.doc in the doc/ directory contain
further information about the codec. The doc directory also contains an
FAQ file answering frequently asked questions about MPEG. A precompiled
version of the programs for MSDOS (requires at least a '386) and a set
of verification files are available separately.

Subdirectories src/mpeg2enc and src/mpeg2dec contain the source code
for the encoder and decoder, subdirectory par/ contains a couple of
example encoder parameter files for 25 and 30 frames/sec MPEG-2 and
MPEG-1 video.


2. Introduction
===============

MPEG-2 Video is a generic method for compressed representation of video
sequences using a common coding syntax defined in the document ISO/IEC
13818 Part 2 (CD: Nov. 1993, DIS: March 1994) by the International
Organization for Standardization (ISO) and the International
Electrotechnical Commission (IEC), in collaboration with the
International Telecommunications Union (ITU) as Recommendation H.262.
The MPEG-2 concept is similar to MPEG-1, but includes extensions to
cover a wider range of applications. The primary application targeted
during the MPEG-2 definition process was the all-digital transmission
of broadcast TV quality video at coded bitrates between 4 and 9
Mbit/sec.  However, the MPEG-2 syntax has been found to be efficient
for other applications such as those at higher bit rates and sample
rates (e.g. HDTV). The most significant enhancement over MPEG-1 is the
addition of syntax for efficient coding of interlaced video (e.g. 16x8
block size motion compensation, Dual Prime, et al).  Several other more
subtle enhancements (e.g. 10-bit DCT DC precision, non-linear
quantization, VLC tables, improved mismatch control) are included 
which have a noticeable imporvement on coding efficiency, even for
progressive video. Other key features of MPEG-2 are the scalable
extensions which permit the division of a continuous video signal into
two or more coded bit streams representing the video at different
resolutions, picture quality (i.e. SNR), or picture rates.

The MPEG Software Simulation Group is currently developing MPEG
software with the purpose of providing aid in understanding the various
algorithms which comprise an encoder and decoder, and giving a sample
implementation based on advanced encoding models. The MPEG-2 software
project is on on-going development. Since the current version of the
encoder already employs a reasonable (and the most popular) subset of
the MPEG-2 signal coding toolkit, and there appears to be sufficient
public interest, we have decided to make a first public release of the
code.

This encoder can also be used for generating good quality constant
bitrate MPEG-1 sequences and is (to our knowledge) the first public
release of an encoder based on the relatively sophisticated TM5 coding
model.


3. Contacting the MPEG Software Simulation Group
================================================

We welcome any project-specific questions, comments, suggestions, bug
reports etc. They should be sent to the Internet address: 

      MPEG-L@netcom.com 

which automatically forwards them to the authors.


4. Availability
===============

The current version of the codec source code is available by anonymous
ftp from:

URL=ftp://ftp.netcom.com/pub/cfogg/mpeg2/ or
URL=ftp://ftp.netcom.com/pub/cf/cfogg/mpeg2/

This directory contains the following files:

  README                         this file
  mpeg2codec_v1.0.tar.gz         codec source code and documentation
  mpeg2codec_verify_v1.0.tar.gz  verification archive       
  mpeg2v10.zip                   MS-DOS executable archive  
  tennis.m2v                     sample MPEG-2 video sequence (8 frames 704x576)
  tennis.par, tennis.stat.gz     parameter file and statistics output
                                 for tennis.m2v
 
You need gunzip (GNU zip/unzip) to uncompress the .gz archives.

Alternatively, the files may be retrieved by sending E-mail to:  

  ftp-request@netcom.com

... with the following line in the body of the message:

  SEND cfogg/mpeg2/mpeg2codec_v1.0.tar.gz

You can retrieve the directory listings by sending the following command
to ftp-request@netcom.com:

  DIR cfogg/mpeg2

General information can be retrieved with the command:   HELP


5. Installation
===============
[ommitted from this Usenet posting]

6. Acknowledgements
===================

Authors of the current release are:

Stefan Eckart    (stefan@lis.e-technik.tu-muenchen.de)
Chad Fogg        (cfogg@netcom.com)
Cheung Auyeung   (auyeung@mot.com)


7. History of Technical Report Project
======================================

The Technical Report, a document which primarily consists of
a C source code program, was initiated by the MPEG committee to: 

 - Provide an example of MPEG video syntax being intelligently employed 
   to generate good quality video.
 - A reference tool for implementors
 - Aid in understanding the MPEG specification 

MPEG would like to especially thank Dr. Stefan Eckart for his
contributions have greatly helped the MPEG-2 Technical Report project
start onto a successful path towards the final 13818-5 document.

MPEG lends a kind acknowledgement to Arian Koster (PTT) for initiating
the MPEG-1 technical report project in Autumn 1992, and Leonardo
Chiariglione (Chairman of MPEG) and Didier Le Gall (Chairman of MPEG
Video) for support throughout both projects.  Also many thanks to MPEG-1
project contributors Peter Au (Hughes Aircraft), Ron Burns (Hughes
Aircraft), Stefan Eckart (Technical University of Munich), Chad Fogg,
Tsuyoshi Hanamura (Waseda University), Kinya Oosa (Nippon Steel), Brian
Quandt (Heuris Logic) and Hiroshi Watanabe (NTT).

Regards,

Chad Fogg
MPEG Chair for Software Simulation
cfogg@netcom.com

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Version 1.1a of the MPEG Software Simulation Group's MPEG-2 codec is
now available via anonymous ftp from

URL=ftp://ftp.netcom.com/pub/cfogg/mpeg2/mpeg2codec_v1.1a.tar.gz
    [192.100.81.1]

If you have mpeg2codec_v1.1.tar.gz and the program 'patch', it is sufficient to download
mpeg2codec_v1.1_v1.1a.diff to upgrade vom v1.1 to v1.1a.

The most import difference between v1.1 and v1.1a is the fix of a bug which
caused decoding of MPEG-1 sequences to fail if the compiler assumes 'char' to
be unsigned. Thanks to all who had offered assistance in finding this bug.

A Windows 32s port of mpeg2decode (and mpeg2play), courtesy of CompCore, is
available as mpeg2w11.zip. A DOS version of mpeg2encode and mpeg2decode is
available as mpeg2d11.zip.

Best regards,

Stefan Eckart, MPEG Software Simulation Group.

---------------------------------------------------------------------------

~Subject: layr_100

Look above in the DOS-section for a description.

---------------------------------------------------------------------------

~Subject: mpegaudio

[ You can find this under the name MPEGAUDI or ftp it from the IUMA-   ]
[ server

URL=ftp://sunsite.unc.edu/pub/electronic-publications/IUMA

[ For a further description of IUMA look into the WHERE-INFOS section. ]

Last updated 1/5/94

The good news is that source is now available. Look in /IUMA/mpeg_players
for the file mpegaudio.tar.Z 

We will continue to gather source and executables and hope that some
enterprising shareware authors or academics will provide various platforms
with real-time players. According to Jared V Boone below, the Xing
real-time player for Windows plays only the lower half of each subband of
only one of the two channels. By my ears, that's pretty good.

Another worthy undertaking would be porting the source to the DSPs
increasingly being found on motherboards and add-in cards, such as the Mac
AV series' AT&T 3210 or the Turtle Beach MultiSound's Motorola 56001, for
real-time full-quality encoding and playback.

That would be cool. =)

-IUMA staff

Here's the latest word on other non-commercial MPEG audio players for Unix
workstations.

I found this in a zip file, the test suite missing, as well as the Makefile.

I hacked together a quick makefile, and altered the musicout code so that if
the destination filename is "stdout" it writes the song to stdout so you can
pipeline it into sox then into /dev/audio or your equivilant.  (Handling
30 meg files takes mucho diskspace I dont have :)

Basically, all you need to do is run it in a pipeline:

decode snd.mp2 stdout | sox [your favorite opts] > /dev/audio (or equiv)

>Some of those favorite opts:
>sox -t .raw -r 44100 -s -w -c 2 file.mp2.dec -t .au -r 8000 file1.au 
>sox -t .au -c 2 -w -s file1.au -t .au -c 1 -b -u file2.au avg

I have both encoded and decoded with this.  I decoded a song off the IUMA 
archives, and encoded a topgun soundtrack I digitzed myself.  One thing to 
note, at the default encoding bitrate of 384 bits, things dont compress hardly
at all, you'll want to input something like 128 bits, which does on average
8-10:x1 compression.

Encoding takes a *LONG* time... :)

-Crh
    Charles Henrich Michigan State University henrich@crh.cl.msu.edu
                     http://rs560.msu.edu/~henrich/

---------------------------------------------------------------------------

~Subject: maplay

From: "Tobias 'Doping' Bading" <bading@cs.tu-berlin.de>

This announcement has been posted to the following newsgroups:
  alt.comp.compression, comp.compression, alt.binaries.multimedia,
  comp.multimedia, alt.binaries.sounds.misc, de.alt.binaries.sounds
last edit: 6/23/94 14:36:07

Hi MPEG audio fans,

I'd like to announce the second release of my free, software-only MPEG
audio player maplay. Those of you who are already familiar with maplay 1.1
may take a look at the list of changes in version 1.2:
  - required CPU time reduced by 50%
  - support of 16 bit soundcarts under Linux
    Implemented by Louis P. Kruger (lpkruger@phoenix.princeton.edu)
  - 8 kHz u-law realtime playback on amd devices (SPARC 2/IPX/...)
    or conversion to 8 kHz u-law to stdout
    Based on an implementation by Jim Boucher (jboucher@flash.bu.edu)
  - some bug-fixes (-u options, Solaris 2.3 problem, problems with older
    GNU C++ releases, makedepend usage removed)

All in all version 1.2 is now capable of
  - playing MPEG audio layer I or II streams on SPARC 10 (SunOS 4.1.3 or
    Solaris 2.x), Silicon Graphics Indigo (IRIX 4.0.x or IRIX 5.x) and Linux
    machines in nearly CD-quality. On a SPARC 10/40, maplay needs about
    46% CPU time for realtime stereo playback and 26% for mono playback.
    (maplay can't be compiled under IRIX 5.x because of the missing audio
     library, but an IRIX 4.0.5F binary works under IRIX 5.x, too)
  - playing these streams in 8 kHz u-law format on SPARC 2/IPX/...
    (SunOS 4.1.x) machines using the amd device. On a SPARCstation IPX,
    maplay needs about 43% CPU time for realtime mono playback.
  - decoding streams to raw 16 bit pcm format at the frequency of the stream
    (32, 44.1 or 48 kHz) or to 8 bit u-law format downsampled to 8 kHz.

The C++ sourcecode of maplay 1.2 and a short layer II MPEG audio stream
for testing purposes has been posted to alt.binaries.multimedia on 6/23/94.

The sources and some binaries are available via the ftp server

URL=ftp://ftp.cs.tu-berlin.de/incoming/maplay1.2/

It contains:
-rw-r--r--   1 bading   doping      4290 Jun 23 14:20 ANNOUNCEMENT
-rw-r--r--   1 bading   doping     95691 Jun 23 14:19 maplay1_2.tar.Z
-rwxr-xr-x   1 bading   doping     96497 Jun 22 12:30 maplay_indigo.Z*
-rwxr-xr-x   1 bading   doping     81469 Jun 22 12:12 maplay_sol2.Z*
-rwxr-xr-x   1 bading   doping     88881 Jun 22 12:17 maplay_sunos4_1_3.Z*
-rwxr-xr-x   1 bading   doping     93125 Jun 22 12:35 maplay_ulaw_sunos4_1_3.Z*
-rw-r--r--   1 bading   doping    372821 Jun 23 12:16 things.mp2

Due to slow Internet connections to this site, please use the mail server
mail-server@cs.tu-berlin.de. Send an email to this address with the contents
SEND incoming/maplay1.2/maplay1_2.tar.Z
and you will receive a mail with an uuencoded copy of the requested file.
Sending a mail containing "SEND help" returns a mail with more infos about
this mail server.

The available precompiled binaries are (in compressed format)
  - maplay_sunos4_1_3.Z
    for SPARCstations with a dbri device (e.g. SPARC 10, CD-quality)
    under SunOS 4.1.x (created under SunOS 4.1.3)
  - maplay_ulaw_sunos4_1_3.Z
    for SPARCstations with an amd device (e.g. SPARC 2 or IPX, telephone
    quality) under SunOS 4.1.x using 8 kHz u-law output
    (created under SunOS 4.1.3)
  - maplay_sol2.Z
    for SPARCstations with a dbri device (e.g. SPARC 10, CD-quality)
    under Solaris 2.x (created under Solaris 2.3 [= SunOS 5.3])
  - maplay_indigo.Z
    for Silicon Graphic Indigo machines (CD-quality)
    under IRIX 4.0.x or IRIX 5.x (created under IRIX 4.0.5F)

To extract the source code, you may use "zcat maplay1_2.tar.Z | tar xvf -"
or "uncompress maplay1_2.tar.Z ; tar xvf maplay1_2.tar". Please take a look
at the README file next.
For a binary, you may use "uncompress maplay_sunos4_1_3.Z".

You may also take a look at the Internet Underground Music Archive (IUMA)
ftp server sunsite.unc.edu (152.2.22.81) in the directory
/pub/electronic-publications/IUMA/audio_utils/mpeg_players/Workstations

If you are also looking for an encoder, please take a look at the file
/pub/electronic-publications/IUMA/audio_utils/converters/source/mpegaudio.tar.Z
on the IUMA ftp server. It contains sources for an encoder and a decoder.

That's all for now,
                    Tobias Bading   (bading@cs.tu-berlin.de)

---------------------------------------------------------------------------

~Subject: Scanning MPEG's ...

STC Version 1.0

A simple program that prints and plots 
the bits-per-picture of a MPEG-1 or MPEG-2 bitstream file.  The program is
called "stc" (since it only checks for picture_start_code's and thus runs
very quickly).  stc can be conveniently run in conjunction with an MPEG 
encoder, since stc can wait on the bitstream file and plot new points as
they become available (or produce a new graph if the bitstream file becomes
shorter, presumably because the MPEG encoder was restarted).

stc is only about 500 lines of C code, but it uses gnuplot for plotting.
stc was developed for an x-windows display and postscript printer, but it
can be very easily modified to use any of the many other displays and printers
that gnuplot supports.

Simply compile stc.c with your favorite ANSI-C compiler, and that's all there 
is to it.  For graphing functions, you must have gnuplot in your $PATH.

 * Copyright (c) 1993 by The Trustees of Columbia University in 
 * the City of New York.
 * All rights reserved.

---------------------------------------------------------------------------

~Subject: MPEG decoder...

Date: Sun, 2 Jan 1994 22:57:48 -0800
From: Jared V Boone <jboone@patriot.wtfd.orst.edu>

I have an MPEG decoder that I can make available.  It is in C and I have
succeeded in compiling it under Windows NT Visual C++ and NetBSD 0.9 with GNU
 V2.4.  The code is rather rough, only decodes Layer II, and is rather
slow.  However, I figure if I release the code to the public, some rocket
scientist can make it ran fast...  My only conditions are that I am acknowleged
and notified when someone uses the code in a freeware/shareware/commercial
product.  Let me know if you're interested.

.- Jared Boone, Oregon State University
.  (jboone@instruction.cs.orst.edu)

P.S.  I'm also working on an encoder.  It appears that Xing's encoder is not
all that great (sound quality), and also does not conform to the MPEG-I spec.
If you'd like, I can keep you posted on this as well...

---------------------------------------------------------------------------

~Subject: MPEGTool

MPEGTool is an application which combines  MPEGTool  encoder  and
MPEGTool statistics with X11/Motif based Graphical User Interface
(GUI). MPEGTool encoder is an MPEG-1 encoder for RGB and CCIR-601
format  input video sequences. MPEGTool statistics is a graphical
statistics tool which can be used to analyze the statistical pro-
perties of the encoding process. MPEGTool allows a user to speci-
fy several of the MPEG parameters such as the intraframe  to  in-
terframe ratio, and the quantizer scale through its GUI.

MPEGTool has been tested on Sun SparcStation and HP9000  current-
ly.   To  compile  under  these  machines,  see  instructions  in
Makefile.

GUI of MPEGTool is based on Motif toolkit from the Open  Software
Foundation  (OSF),  so  Motif (Xm) libraries as well as X Toolkit
(Xt)  libraries  and  Xlib  are  required  to  compile  MPEGTool.
Although  MPEGTool can be executed under several window managers,
Motif window manager (mwm) is recommended. We've tested mwm, Open
look  window  manager  (olwm), Tab window manager (twm). With the
twm, we recommend to  put  'DecorateTransients'  in  your  .twmrc
file.

MPEGTool supports disk and tape device for video data  input  and
MPEG  code  output. Also, MPEGTool creates statistics data on the
disk. Statistics data requires around 1/350  to  1/250  of  video
data  size  and  MPEG  code requires 1/10 to 1/5 depending on the
parameter.

MPEGTool encoder encodes RGB/CCIR-601  format  video  input  data
from  tape  or  disk device by MPEG-1 specification and write the
encoded data into tape or disk. In addition, the statistics  data
can be stored into disk device for MPEGTool statistics analysis.

We can set several encoding parameters from MPEGTool Encoder win-
dow.  For setting device related parameters, click Configure but-
ton and modifying parameters in  MPEGTool  Encoder  Configuration
window. To start Encoding, click Start and MPEGTool begins encode
if there is no parameter error or device related error.

MPEGTool statistics creates types of graphs to analyze  statisti-
cal properties of MPEG encoded video stream. Four types of graphs
can be selected, Distribution, Generation Record, Autocorrelation
and  Interarrival Time. First three of these plot each statistics
of   MPEG   code   in   five   levels,   Bit/Frame,    Bit/Slice,
Bit/MacroBlock,  ATM/Frame and ATM/Slice. Interarrival Time plots
the time elapsed between arrivals of ATM packets within a  frame.
The interarrival times are calculated from the bits generated per
macroblock within a frame.  This interarrival time is  normalized
to units of X seconds (where X will depend on the hardware imple-
mentation of the coder).

"MPEGTool: An X windows  based  MPEG   encoder   and   statistics
tool", Proceedings of ACM Multimedia '93, Anaheim, CA

This paper contains  more  details  and  several  examples  about
MPEGTool.   PostScript  file of this paper is placed on anonymous
ftp on atum.ee.upenn.edu.

---------------------------------------------------------------------------

~Subject: What is "SECMPEG" ?

  SECMPEG is first a newly defined stream, that ensures the service
  of confidentiality and integrity for a MPEG-I-video-stream. 'Cause
  of the amount of multimedia-data it is NOT possible to use the same
  crypto- or checking-techniques for multimedia-data then for normal
  files or streams.

<IMG SRC="secmpegf.gif">

  Therefore we defined a new stream, containing additional security
  information. We tested and filtered the MPEG-I-stream to ensure that
  only important and relevant data is encrypted or checked. The newly
  desinged methods are not proofed but quite good tested. We can't be
  sure so far, if these method really do what they are designed for.

<IMG SRC="secmpegm.gif">

  It is second a tool, that can insert and delete the confidentiality
  and integrity data into/from a MPEG-I-stream.

  If you get any results to proof our methods, we hope to here from you !

  More information is available from te authors, like some PostScript-
  files, pictures and graphs.


  Where is it ?

  It will stored on our ftp-server in the next days (probably there):

        URL= ftp://ftp.cs.tu-berlin.de/pub/msdos/dos/graphics/secmpeg.zip
             (the DOS-Version)

  or probably in the unix-directory somewhere.


  How does it compile ?

  The program already compiles under

  - SunOS 4.1.x            using cc or gcc
  - SunOS 5.0              using cc or gcc
  - Solaris 2.1            using cc or gcc
  - INTERACTIVE Unix 2.2.1 using cc or gcc
  - Linux                  using gcc
  - MS-DOS                 using gcc or Borland C 2.0 (tcc),
                           the dos-port shoulb be included as
                           executable in the archive

  You need a compiler, that understands ANSI-C so far, but the rest is
  straight forward C, so it should compile nearly everywhere.


  What can you do ?

  Permission to use, copy, modify, and distribute this software and
  its documentation for any purpose and without fee is hereby granted,
  provided that the archive remains complete, that this author notice
  will appear in all copies and as long as you don't try to make money
  off it, or pretend that you wrote it.


  Authors

  Juergen Meyer                Frank Gadegast
  Sonnenallee 50               Leibnizstr. 30
  12045 Berlin GERMANY         10625 Berlin GERMANY

  Access: jm@cs.tu-berlin.de
  Access: phade@cs.tu-berlin.de 

---------------------------------------------------------------------------

~Subject: PVRG-MPEG Codec

From: msimmons@ecel.uwa.edu.au (Michael Simmons - mgmt_staff)
Subject: Standford MPEG codec
Date: Thu, 25 Feb 1993 16:07:18 +0800 (WST)

MPEG  Image and Image sequence compression/decompression C software engines

The Portable Video Research Group at Stanford have developed
image/image sequence compression and decompression engines (codecs)
for MPEG, CCITT H.261, and JPEG. The primary goal of these codecs is
to provide the functionality - these codecs are not optimized for
speed, rather completeness, and some of the code is kludgey.

Development of MPEG, P64, and JPEG engines is not the primary goal of
the Portable Video Research Group.  Our research is focused on
software and hardware for portable wireless digital video
communication.  For more information about current research, please
send e-mail to Professor Teresa Meng at meng@tilden.stanford.edu.

COMMENTS/DISCLAIMERS:

This code has been compiled on the Sun Sparc and DECstation UNIX
machines; some code has been further checked on the HP workstations.

For comments, bugs, and other mail relating to the source code, we
appreciate any comments. The code author can be reached at Andy C.
Hung at achung@cs.stanford.edu.  The standard public domain disclaimer
applies: Caveat Emptor - no guarantee on accuracy or software support.

References related to these codecs should NOT use any author's name,
or refer to Stanford University.  Rather the Portable Video Research
Group or the acronym (PVRG) should be used, such as PVRG-MPEG,
PVRG-P64, PVRG-JPEG.

               PVRG-MPEG CODEC: (MPEGv1.1.tar.Z) [ is now MPEGv1.2.tar.gz ]

This public domain video encoder and decoder was generated according
to the Santa Clara August 1991 format.  It has been tested
successfully with decoders using the Paris December 1991 format. The
codec is capable of encoding all MPEG types of frames. The algorithms
for rate control, buffer-constrained encoding, and quantization
decisions are similar, but not identical, to that of the (simulation
model 1-3) MPEG document.  The rate control used is a simple
proportional Q-stepsize/Buffer loop that works though not very well -
better rate-control is the essence for good quality buffer-constrained
MPEG encoding.  Verification of the buffering is possible so as to
provide streams for real-time decoders.

The MPEG codec performs compression and decompression on raw raster
scanned YUV files. The companion display program for the X window
system is described in section IV) below.  A manual of approximately
50 pages describes the program's use.

There are also MPEG compressed files from the table tennis sequence in
tennis.mpg and the flower garden sequence in flowg.mpg.

This codec was recently tested with the MPEG decoder of the Berkeley
Plateau Research group. If what you want is decoding and X display,
then you might want to look into their faster public domain MPEG
decoder/viewer. The Berkeley player is available via anonymous ftp
from

URL=ftp://mm-ftp.cs.berkeley.edu//pub/multimedia/mpeg/mpeg-2.0.tar.Z
    [128.32.149.157]


ACKNOWLEDGEMENTS:

Funded by the Defense Advanced Research Projects Agency.

I am especially grateful to Hewlett Packard and Storm Technology for
their financial support during the earlier stages of codec
development.  Any errors in the code and documentation are my own.
The following people are acknowledged for their advice and assistance.
Thanks, one and all.

        The Portable Video Research Group at Stanford: Teresa Meng,
        Peter Black, Ben Gordon, Sheila Hemami, Wee-Chiew Tan, Eli Tsern.

        Adriaan Ligtenberg of Storm Technology.
        Jeanne Wiseman, Andrew Fitzhugh, Gregory Yovanof and
        Chuck Rosenberg of Hewlett Packard.
        Eric Hamilton and Jean-Georges Fritsch of C-Cube Microsystems.

        Lawrence Rowe of the Berkeley Plateau Research Group.
        Tom Lane of the Independent JPEG Group.
        Katsumi Tahara from Sony.
        Ciaran Mc Goldrick.
        Karl Lillevold

---------------------------------------------------------------------------

~Subject: wdgt

[ Jim Frost was putting the Berkeley-Code into a Motif and/or Xt-Widget. ]
[ Its called WDGT, Version 2.0b is up-todate, but no description         ]
[ was included. This is from the man-page:]

Mpeg  is  a  version  of the MPEG player from the Berkeley
Plateau Research Group group as a widget.  It can be  used
either as a Motif widget subclassed from XmPrimitive or as
a toolkit-independant widget subclassed from Core.

Mpeg inherits from Core. The Motif version  also  inherits from XmPrimitive.
The class pointer is xmpegWidgetClass. The class name is Xmpeg.
END ---------------------- CUT HERE --------------------- 6/8
