[Comp.Sci.Dept, Utrecht] Note from archiver<at>cs.uu.nl: This page is part of a big collection of Usenet postings, archived here for your convenience. For matters concerning the content of this page, please contact its author(s); use the source, if all else fails. For matters concerning the archive as a whole, please refer to the archive description or contact the archiver.

Subject: MPEG-FAQ: multimedia compression [6/9]

This article was archived around: 9 Nov 1996 09:34:05 GMT

All FAQs in Directory: mpeg-faq
All FAQs posted in: news.answers
Source: Usenet Version


Archive-name: mpeg-faq/part6 Last-modified: 1996/06/02 Version: v 4.1 96/06/02 Posting-Frequency: bimonthly
MPEGVIEW.EXE and type "MPEG MPEGFILENAME.MPG". --------------------------------------------------------------------------- ~Subject: mpgaudio Now there is the MPEG AUdio Player for Win3.1 ! This program is Shareware. To encode your own MPEG Audio files, you need to buy the MPEG Audio Software Encoder program for Win3.1 . [ Look above. Get some freeware encoder in software, much better !] --------------------------------------------------------------------------- ~Subject: SUBSECTION - WINDOWS-NT --------------------------------------------------------------------------- ~Subject: mpeg2ply [The June 30 edition of mpeg2w11 does not contain encoder port] MPEG Software Simulation Group codecs for Windows 32s (MPEG-L@netcom.com) MPEG2DEC.EXE and MPEG2ENC.EXE are Windows 32s ports with integrated display functions of the MPEG Software Simulation Group's programs. MPEG2PLY.EXE is the port of mpeg2play---Stefan Eckart's variation of mpeg2decode which optimizes speed through fast decoding methods such as approximation techniques, loop unravelling, et al. All Win32s programs were ported with Microsoft Visual C++. Only the main() program and display files (mpeg2dec.c, mpeg2enc.c, or mpeg2ply.c) differ from the standard "Unix distribution." If you do not have a 32-bit Windows environment (e.g. Win 4.0 Chicago, Windows NT), but plain old Windows 16 (e.g. Windows 3.1), yet you do possess either a 386, 486, or Pentium-based PC, you can download the Microsoft 32-bit extension program, "Win32s" from the Microsoft FTP site: URL=ftp://ftp.microsoft.com/developers/DEVTOOLS/Win32SDK/Win32s115a.zip [198.105.231.1] (this is the latest edition--June 23, 1994) Win32s archive (mpeg2w11.zip): mpeg2dec: mpeg2dec.c Main() routine. Initiates application and display. mpeg2dec.r MS Visual C++ resource file. makefile MS Visual C++ project file. gui.h #include constants for MS GUI values. mpeg2dec.exe Speed-optimized executable grayleo.ico mpeg2dec.exe 32x32 4-bit System Palette icon About the windows icon: The 32x32 4-bit icon for MPEG2DEC.EXE and MPEG2ENC.EXE is a silhouette of Dr. Leonardo Chiariglione (CSELT, Italy), none other than our co-founder and exhaulted lifetime Convenor of MPEG. Acknowledgement: Many thanks to Sorin Papuc (sop@compcore.com) for porting these programs to Windows 32s. --------------------------------------------------------------------------- ~Subject: mpegplay [ This new version of it, is running now extremly nice, the subsystem ] [ is no harm at all. The file should be known as MPEGW32W.ZIP. ] From: michael@ecel.uwa.edu.au (Michael Simmons - division) MPEGPLAY V1.61 (c) 1993,1994 Michael Simmons Please READ ALL of this file! This is Release Version 1.61 of my port of the Berkeley mpeg player. Note this version requires the WIN32s V1.15a Windows(tm) Extender. Also this version will only work under (beta 612) of Windows NT(tm) V3.5 or later. Features added in this version include (1) Support for MPEG1 System Layer files (you don't have to split them now). (2) Support for the Microsoft(tm) WinG(tm) Windows(tm) gaming library. (3) Improved colours for the Ordered and 2x2 Order dithers. (4) "Save As" For all the Mosaic Users. (5) Improved Error handling for corrupt/non standard mpeg files. (6) Support for CDI(tm) and VideoCD Streams. Either as an extracted MPEG sequence or as a RAW CDROM grab. (7) Recompiled using the Microsoft Daytona(tm?) (beta 612) SDK Compiler. Please Email me with any suggestions you may have on improving the player! (See the section CONTACTING ME). This player can play standard mpeg files that include P and B frame encoding, and large 354x288 movie files. It has several display options including mono, gray scale, color dither and Full colour (for Hicolor graphic cards). 8MB of Ram or greater is recommended if large Image size MPEG files are played. This program is SHAREWARE Please read the REGISTER.TXT file for information on registering your copy. To install the player. If you don't have Win32s V1.15a installed, install it first. Unzip the file disk1.zip to a floppy disk. Then run the setup.exe file via the Progman File-Run Menu Item. Note: This will also install the Microsoft WinG(tm) extensions to Windows(tm) Should you wish to remove these extensions at a later date please refer to the section near the end of this Readme.txt file. Read the Disclaimer in the online Help before loading any mpeg movie files. The latest version of this software can be found first on URL=ftp://ftp.ecel.uwa.edu.au/users/michael/ UNREGISTERED VERSION LIMITATIONS: The unregistered version will display the About box at startup. IT WILL ALSO NOT HANDLE FILES BIGGER THAN 1MB! DISTRIBUTION: The Unregistered Version of the Player may be freely Re-Distributed so long as (1) None of the files are modified. (2) All files in this archive are re-distributed together. (3) None of the files are removed from this archive. (4) It is clearly stated that this program is Shareware, extended use of which requires payment to myself Michael Simmons as described in the players about box and the REGISTER.TXT file. (5) If any additional files are added it must be clearly stated which files have been added, who added these files and why!. It must be stated that I "Michael Simmons" am in no way responsible for these additional files. (6) None of the added files can instruct the user or modify the player in any way possible to enable the Unregistered Version Limitations to be overcome. The Registered Version may only be Re-Distributed with my written approval. KNOWN BUGS: The player does not like certain PD/Shareware desktop addons (Clocks etc). A small number of people are getting a GPF in POINTER.DLL. If you have this problem and solve it please contact me. So far I can not reproduce the fault. The player does not multitask while scanning a file to determine whether or not it is a system layer or straight video file. This is only a problem on large misaligned RAW CDI or VideoCD grabs. RAW CDI or VideoCD grabs have only be tested on 4 CDI Disks. Given the variation found between these disks I would not be surprised if there are problems with some disks. If you are having a problem with a certain CDI/VideoCD disk please send a copy (both original CD's) of it to me. If I don't already have it I will treat it as a registration fee. If you have a problem and are really stuck try and find a machine on which it works and compare the two configurations. If you really really get stuck then see the section CONTACTING ME. CHANGE LOG: (there is more to read after this section) Changes V1.0 -> V1.2 (1) Re complied using the latest (March) WIN32 Beta. (2) Includes the latest (March) Win32s windows 3.1 extension. (3) Fix bug in finding help file. The working directory can now be different to the Command Line directory. (4) Increase number of clicks at startup to 4 Changes V1.2 -> 1.25 (1) Major rewrite of source code to clean up bugs (2) Now saves options in a .ini file (3) Can split a multi stream MPEG into separate files. (4) Loop is now a separate option (5) Can be set to skip over B and P frames ( best to stop and rewind player 1st) (6) Decrease the number of About Box clicks to one (7) Can started via the file manager (associate .mpg with the player) (7b) Also startable from other applications i.e. NCSA Mosaic. (8) Recompiled with the release version of the Visual C++ for NT compiler (9) includes the Win32s version 1.1 files (10) Can change InputBufferSize in .ini file (i.e. InputBufferSize=80000) (11) Don't have to Close MPEG before OPEN ing (12) MPEG images are properly clipped when they are displayed (13) Hopefully no one will have any display problems now (try Use Small DIBS) Changes V1.25 -> V1.30 (1) Increased speed 10-20% (mainly P B frames and gray, Full/Hi Color dither). (2) Fixed bug, old mpegs causing exceptions (bus.mpg,flower.mpg,flowb.mpg etc). (3) Decreased the memory usage. (4) Added HiColor Dither (Uses 16 Bit DIBS,These are not supported by many drivers yet, NT emulates support in the GDI). (5) Dropped Fs2 and Fs4 dither (use Fs2Fast) Changes V1.30 -> V1.50 (1) Added Push button, VCR like controls. (2) Now has a Separate Video Window. (3) Automatically Displays the 1st frame of the MPEG. (4) Redraws the current frame when needed. (5) Displays MPEG File Name, Image Dimensions and File Size in Video Caption (6) Saves all window positions correctly when exiting. (7) Detects when saved windows position is off the screen. (8) Added Experimental Set+Blt Mode for transferring images to the screen. Changes V1.50 -> V1.60 (1) Support for MPEG1 System Layer files (you don't have to split them now). (2) Support for the Microsoft(tm) WinG(tm) Windows(tm) gaming library. (3) Improve colors for the Ordered and 2x2 Order dithers. (4) "Save As" For all the Mosaic Users. (5) Improve Error handling for corrupt/non standard mpeg files. (6) Support for CDI(tm) and VideoCD Streams. Either as an extracted MPEG sequence or as a RAW CDROM grab. (7) Recompiled using the Daytona (beta 612) SDK Compiler. ACKNOWLEDGMENTS: This code was derived from the U.C. Berkeley MPEG Player (version 2.0) developed by L.A. Rowe, K. Patel, and B. Smith (Rowe@CS.Berkeley.EDU). Permission to use their code in this Sharware product was obtained. THAT code included the following copyright: /* * Copyright (c) 1992 The Regents of the University of California. * All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without written agreement is * hereby granted, provided that the above copyright notice and the following * two paragraphs appear in all copies of this software. * * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANT ABILITY * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. */ /* OTHER ACKNOWLEDGMENTS: Frank Gadegast (the MPEG FAQ Maintainer) for his helpful suggestions. Many others for their suggestions and support. PATENTS: Should this player infringe on a patent held by someone somewhere. Please contact me as soon as possible. See the section CONTACTING ME CONTACTING ME: In any correspondence please clearly state your email and snail mail addresses! I have been receiving a large number of emails. In-order to handle these efficiently I would ask that you note the following: (1) If possible look on URL=ftp://ftp.ecel.uwa.edu.au/users/michael/faq.txt (2) Mark all emails that do not require a reply "No Reply Expected". I will READ THESE! (3) Bounced replies due to incorrect email addresses (unless obvious) will not be chased up! Email to michael@ecel.uwa.edu.au Talk to michael@div-pc-michael.ecel.uwa.edu.au (8:30am to 5:00pm WA time). Phone to (Int)+ 61 9 344 1998 (Home number with answering machine) Don't automatically expect me to ring outside of Western Australia. I can be contacted via snail mail to PO Box 506,NEDLANDS WA 6009,AUSTRALIA NOTE None of the source code to this player is on any of the machines connected to the net via the University of Western Australia. IF someone on network news is flaming me or my port of the player. Please Email me about it. OTHER INFO: There is another mpeg player for windows available for free from URL=ftp://ftp.netcom.com/pub/cfogg/mpeg2/mpeg2w11.zip I have nothing to do with this player. None of the source for that player is related to mine. All of the money from registration is being spent on tools and hardware to improve the player and further my knowledge of MPEG and programming. This player is written and maintained in my free time. It is in no-way related to the University of Western Australia. They have indicated they have no interest in the player or its copyright. The Source to this player is NOT Available! HOW TO REMOVE THE WIN32s EXTENSIONS to WINDOWS(tm) (1) exit to DOS. (2) backup your hard disk. (3) delete the Win32s directory and all its files. (4) edit the system.ini file in the window directory. and remove the line device=C:\WINDOWS\SYSTEM\WIN32S\W32S.386 (5) return to windows (6) remove the Win32 Applications Progman group HOW TO REMOVE THE WING EXTENSIONS TO WINDOWS(tm) (1) exit to DOS. (2) backup your hard disk. (3) delete the following files from you c:\windows\system directory dva.386 wing.dll wing32.dll wingde.dll wingdib.drv wingpal.wnd (4) edit the system.ini file in the window directory. and remove the line device=C:\WINDOWS\SYSTEM\dva.386 (5) return to windows Windows NT, Win32s, Windows 3.1, WinG are trademarks of the Microsoft Corporation. CDI is a trademark of Phillips. --------------------------------------------------------------------------- ~Subject: SUBSECTION - OS/2 --------------------------------------------------------------------------- ~Subject: mp mp.lha gfx/show 45K 83 MPEG player for EHB display. --------------------------------------------------------------------------- ~Subject: SUBSECTION - X-WINDOWS and UNIX --------------------------------------------------------------------------- ~Subject: FHG Layer 3 ISO-MPEG Audio Layer 3 software only Encoder and Decoder for Unix Version 2.00. copyright Fraunhofer - IIS 1994, 1995 - evaluate highest quality perceptual audio compression technique available today - software only encoder and decoder implementations - implements ISO/MPEG Audio standard ISO/IEC IS 11172-3, Layer 3 - wide range of compression ratios including 6:1 fully transparent quality 11:1 64 kbps per channel, very high quality 16:1 still better than your average 16 bit 44.1 kHz sound card - music data is input in raw format (16 bit signed integer), in RIFF/WAVE format as used by Microsoft Windows .WAV files, in AIFF/AIFC format as used by SGI and Mac or in .snd/.au format used by NeXT and Sun. - 44.1kHz sampling frequency (32 kHz and 48 kHz also for registered users) - packed bit stream conforming to ISO/MPEG Layer III - output of decoder is in raw format (16 bit signed integer), in .snd/.au format, in AIFF/AIFC format or in RIFF/WAVE format - .WAV music files can be played with Windows Media Player - Under rare circumstances the .WAV output is broken. Please use raw format in that cases. - optional decoder output as 24 bit hex ascii data - written by the very same people at Fraunhofer-IIS who did the Layer III codecs for the ISO and ITU-R (former CCIR) tests (best sound quality at low bit rates at all listening tests) - commercial real time products for encoding and/or decoding of Layer III are available. Contact one of the companies listed in the file info.txt The package consists of the following files l3v200.UNIX_NAME.tar.gz: l3enc encoder program V2.00 l3dec decoder program V2.10 manual.txt instructions for encoder and decoder programs register.txt information on registration. PLEASE READ THIS! info.txt infos on ISO MPEG Layer III and Layer III products readme.txt this file history.txt infos on the history of this shareware product go32.exe DOS extender winplay3/ in this directory is a demo version of the realtime Windows player WinPlay3 mp3-bitstreams.tar.gz: contents.txt short discription of the following Layer 3 bitstreams (CR/LF format) contents short discription of the following Layer 3 bitstreams (LF format) funky.mp3 demo layer 3 bitstream (96 kbit/s, stereo, 44.1 kHz) spot1.mp3 demo layer 3 bitstream (96 kbit/s, stereo, 44.1 kHz) spot2.mp3 demo layer 3 bitstream (96 kbit/s, stereo, 44.1 kHz) spot3.mp3 demo layer 3 bitstream (96 kbit/s, stereo, 44.1 kHz) classic1.mp3 demo layer 3 bitstream (56 kbit/s, stereo, 22.05 kHz) classic2.mp3 demo layer 3 bitstream (48 kbit/s, stereo, 22.05 kHz) The song used for funky.mp3 is named "Funky" and was composed and arranged by Juergen Herre. "Funky" is copyright Juergen Herre 1994. You may use "Funky" for all evaluation purposes of this shareware product. You may not use "Funky" for commercial purposes (e.g. radio broadcasting). The other bitstreams were provided by OMNI-Mediasound. This package is distributed as shareware. You may work with the package for 30 days for evaluation purposes. If you want to use this package after the evaluation period, you are required to register the package (see information in the file register.txt). You may give copies of this package to other people as long as no file is changed and no file is omitted. If you need further information on Layer 3 products or if you have any questions concerning this shareware product, please send email to layer3@iis.fhg.de or try http://www.iis.fhg.de/. You can also fax or mail your questions to Layer 3 support Fraunhofer - IIS Am Weichselgarten 3 D-91058 Erlangen Germany Fax: + 49 9131 / 776 399 Disclaimer: Don't forget that there are no warranties associated with this software. While we believe that our software is reasonably bug free and well behaved, we are in no way responsible if our software does not work the way you would expect it to work. No matter if it locks up your computer, garbles your floppy disks or does any other harmful things to your computer - it is entirely your problem. Fraunhofer - IIS is not liable for any infringments or damages of third parties' rights in consequencs of your use of this shareware product. Fraunhofer - IIS is in no event liable for, respectively does not warrant the trustworthiness, quality, industrial exploitability, serviceability of this shareware product for the supposed purpose or any other purposes. All brand names are registered trade marks of their respective owners. --------------------------------------------------------------------------- ~Subject: Berkeley's MPEG Tools [ These tools were still in Beta-Version when the FAQ was compiled ] [ Try ftp to URL=ftp://mm-ftp.cs.berkeley.edu/pub/multimedia/mpeg/ [ find the next 4 tools. ] This version of the Berkeley MPEG Tools packages together the decoder (mpeg_play), the encoder (mpeg_encode), and three analysis tools (mpeg_stat, mpeg_blocks, and mpeg_bits). Our last estimate was that over 60,000 copies of the decoder have been FTP'd since the first release in November 1991, and over 15,000 copies of the encoder have been FTP'd since it was released in July 1993. For other information on multimedia research at U.C. Berkeley, see the home page for the Plateau Multimedia Research Group. http://www-plateau.cs.berkeley.edu/plateau.html Further about the FTP site is included in INDEX. See ANNOUNCE for our posted announcement of the tools. (Last updated: May 5, 1995) -- Eugene Hung eyhung@garnet.berkeley.edu Peter's Theorem: Incompetence plus incompetence equals incompetence. --------------------------------------------------------------------------- ~Subject: MPEG-1 Video Software Encoder MPEG-1 Video Software Encoder (Version 1.5; May 8, 1995) Lawrence A. Rowe, Kevin Gong, Eugene Hung, Ketan Patel, Steve Smoot 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 9.X) (i.e., HP 9000/7XX and 9000/3XX) SGI Indigo running IRIX 5.0.1 Sun Sparc (SunOS 4.X) 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 (mm-ftp.CS.Berkeley.EDU). 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/mpeg_encode/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, YUV, JPEG, or JMOVIE 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 convert directory of Mpeg-Tools contains utilities you might find useful including: programs to do PPM/YUV conversion and programs to convert Parallax XVideo JPEG files into PPM, YUV, or JPEG 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 doc/EXTENSIONS. If you succeed in implementing any of them, please let us know! Send bug reports to: 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 and organizations 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. The San Diego SuperComputing Center for providing facilities to develop some of the code contained within. -- Eugene Hung eyhung@garnet.berkeley.edu --------------------------------------------------------------------------- ~Subject: MPEG Video Software Decoder MPEG Video Software Decoder (Version 2.1; May 1 1995) Lawrence A. Rowe, Ketan Patel, Brian Smith, Steve Smoot, and Eugene Hung Computer Science Division-EECS, Univ. of Calif. at Berkeley This directory contains a public domain MPEG video software decoder. The decoder is implemented as a library that will take a video stream and display it in an X window on an 8, 24 or 32 bit deep display. The main routine is supplied to demonstrate the use of the decoder library. Several dithering algorithms are supplied based on the Floyd-Steinberg, ordered dither, and half-toning algorithms that tradeoff quality and performance. Neither the library nor the main routine handle real-time synchronization or audio streams. 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 9.X, X11R5) (i.e., HP 9000/7XX and 9000/3XX) Sun Sparc (SunOS 4.X, X11R5) DECstation 5000 and Alpha Silicon Graphics Indigo MIPS RISC/os 4.51 If you decide to port the code to a new architecture, please let us know if there are any significant changes, so that we can incorporate them into our sources. This directory contains everything required to build and display video. We have included source code, a makefile, an Imakefile, 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 the decoder. The data files were produced by XING. XING data does not take advantage of P or B frames (ie, frames with motion compensation). Performance of the player on XING data is significantly slower (half or less) than the performance when motion compensated MPEG data is decoded. We are very interested in running the software on other MPEG streams. Please contact us if you have a stream that does not decode correctly. Also, please send us new streams produced by others that do utilize P and B frames. Our future plans include porting the decoder to run on other platforms, integrating it into a video playback system that supports real-time synchronization and audio streams, and further experiments to improve the performance of the decoder. 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. Other Versions: There are three variations of the old mpeg_play: One added a very nice Motif interface (variously named mpeg_play-2.0.1 and xmpegplay). One was mpegvga.patch and let linux play straight to a VC. One was an X interface (mpegplayer.tar.gz on linux sites) We have notified the authors of those programs, and will have new versions of them here as soon as they can find the time to update them. 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 Video Software Analyzer MPEG Video Software Analyzer (Version 1.0; May 81995) Lawrence A. Rowe, Doug Banks, Steve Smoot, and Sam Tze-San Fung Computer Science Division-EECS, Univ. of Calif. at Berkeley This directory contains a public domain tool to monitor and modify MPEG video streams. mpeg_bits takes as input an mpeg stream and presents graphical feedback on the distribution of bits in the stream, on a macroblock-by-macroblock level. mpeg_bits also provides a simple user interface to generate specifics files that can be used by mpeg_encode to re-encode a stream, modifying the encoding on a macroblock-by-macroblock level. [The present version of mpeg_encode does not support this..] This tool does not support system layer streams. mpeg_bits supports 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 at least once on the following platforms: HP PA-RISC (HP/UX 9.X, X11R5) (i.e., HP 9000/7XX and 9000/3XX) Sun Sparc (SunOS 4.X, X11R5) If you decide to port the code to a new architecture, please let us know about important changes, so that we can incorporate the changes into our sources. This directory contains everything required to build and use mpeg_bits. We have included source code, a makefile, installation instructions, and a man page. 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 http://www.powerweb.de/mpeg ] [ 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: http://www.powerweb.de/mpeg [ 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 download XMPLAY from http://www.powerweb.de/mpeg. If you get problems (not really possible) to compile it or if you have comments send them to the authors, reachable at: phade@powerweb.de (responsible for compiling and X11) jm@cs.tu-berlin.de (responsible for the mpeg-code) or brain@cs.tu-berlin.de ---------------------------------------------------------------------------