home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Inside Multimedia 1994 October
/
IMM1094.ISO
/
program
/
vmpeg
/
vmpeg.doc
< prev
next >
Wrap
Text File
|
1993-11-15
|
11KB
|
308 lines
VMPEG V1.1
DOS MPEG player
by Stefan Eckart
November 1993
1. Features
===========
- full MPEG-1 video standard (ISO 11172-2): I,P,B frames of arbitrary size;
no restriction to 160x120 or I-frame-only sequences
- also plays system layer (ISO 11172-1) files
- "high" speed: e.g. 16 frames/s on a 386DX/33 for a 160x120 I frame
sequence (mjackson.mpg); about the speed of mpeg_play
running on a Sparcstation1+
- supports VGA and a variety of SVGAs
- '386 or '486 processor required (i.e. no '286); based on the
DOS extender GO32.EXE by DJ Delorie
- dithering options: 4x4 ordered dither normal size
4x4 ordered dither double size
grayscale
- 8 bit and 24 bit (true color) display
2. Overview
===========
VMPEG complements the programs CMPEG (MPEG encoder) and DMPEG (MPEG
decoder and off-line player). It decodes MPEG encoded sequences directly
to the screen at (hopefully) reasonable speed. It is about nine times
faster than DMPEG, more than 60% faster than the latest Xing MPEG player
(mjackson.mpg: XingIt V2.1: 10 frames/s, VMPEG: 16.4 frames/s) and, timed
on a 386DX/33, about as fast as the Berkeley MPEG player (mpeg_play)
on a Sparcstation1+ (about 1/3 to 1/2 the speed of a Sparc10).
VMPEG is compiled with the GNU C compiler (gcc) into '386 code and runs
under the DOS extender GO32 by DJ Delorie which is included in the archive
file. VMPEG cannot be run from Windows or OS/2.
The ninefold speed improvement over DMPEG was obtained by changing the
C compiler, by using algorithms which take advantage of the 32 bit
architecture of the '386 and by rewriting a few key routines in '386
assembler.
VMPEG also plays MPEG system layer files, which usually contain both video
and audio streams. The audio stream is discarded. Most streams from CD-ROM
are of this type. VMPEG automatically detects whether the file is a video
compression layer or a system layer file. I have also included a small
utility (MPGSPLIT) which extracts the video and audio streams from a
system layer stream into seperate files (cf. MPGSPLIT.DOC).
VMPEG is, however, not meant to replace DMPEG (at least not presently),
since it is lacking several of the features of DMPEG (like decoding
to a file, Floyd-Steinberg dithering etc.) and the quality of the decoded
sequences is a bit lower (about 7 bit accuracy instead of 8 bit, which is
however completely masked by the dithering noise and the 6 bit color
register resolution of VGAs and SVGAs).
3. Installation
===============
- You need at least a '386 with a VGA and 512 KB of RAM. 2 MB are strongly
recommended. XT, AT, EGA and CGA are not supported. A '387 is not required
nor does it increase speed. VMPEG doesn't use floating point.
- You should leave about 2 MB of RAM (XMS) unused: if you have, say,
a 4 MB system you shouldn't reserve more than 2 MB for a RAM drive.
Otherwise the DOS extender would start swapping memory pages from and to
disk. This would slow down the program, even if swapping to a RAM drive.
- If you have installed EMM386 make sure you don't have specified the
'noems' option.
- Create a subdirectory for installation:
md \vmpeg
cd \vmpeg
- Unzip the archive into this subdirectory:
pkunzip -d vmpeg11.zip
- Edit VMPEG.BAT and VMPEG24.BAT; you probably have to change drive
and/or path specifications and to select a suitable graphics driver
(see next paragraph).
4. Graphics Drivers
===================
The DRIVERS subdirectory contains a set of graphics drivers for different
Super VGAs. Select the one that matches your graphics card by editing the
files VMPEG.BAT (for 8 bit display) and VMPEG24.BAT (for 24 bit display).
If none of the drivers work, you may try to use VESA.GRN and a TSR VESA BIOS
extension. A collection of such drivers is available at
ftp.rahul.net:/pub/bryanw/pc/vesadrv2.zip (anonymous ftp).
and probably also on other ftp sites or BBSs.
True color support is still limited. It works for my configuration
(a Cirrus Logic GD5422 based card with VESA BIOS and VESA.GRN) and
should work for most other 'well behaved' cards as well. If you get
incorrect colors you have probably a card with R,G,B instead of B,G,R
order. These are currently not supported.
5. Options
==========
vmpeg [options] input.mpg
vmpeg24 [options] input.mpg
options:
-l loop the sequence
-x assume sequence to contain only I frames (including Xing files),
this makes the program running faster
-d0 (default) ordered 4x4 dither
-d1 grayscale
-d2 similar to -d0 but display magnified by a factor of 2
True color mode is selected by using vmpeg24 instead of vmpeg. In this
case the -d switch isn't effective.
The program can be terminated by pressing an arbitrary key.
6. Remarks
==========
This is still a preliminary release of the program. I expect it to be
already relatively stable (most of the code is borrowed from DMPEG) but
there might be problems with more or less exotic SVGAs. While the VGA
mode should always work, a 640x480 display looks much better and is
strongly recommended.
I'm planning to add HiColor in the near future and of course I'm trying
to improve speed even further. I'm also thinking about a UNIX version of
VMPEG.
Please report bugs to my email address:
stefan@lis.e-technik.tu-muenchen.de
or by mail to:
Stefan Eckart
Kagerstr. 4
D-81669 Muenchen, Germany
I'm also interested in obtaining performance figures measured on '486
systems. Don't hesitate to mail me some...
7. Acknowledgements, Copyrights
===============================
This program comes without any warranty. Your are using it at your own
risk. VMPEG is copyrighted software (C) Stefan Eckart, 1993. You may
use, copy and distribute this program without restrictions but only in
unmodified form and without charging money for it.
VMPEG is based on the work of many other people. Without them this program
would not exist. Here are the relevant copyrights:
GO32.EXE, DRIVERS\*.GRD:
Copyright (C) DJ Delorie
24 Kirsten Ave
Rochester NH 03867-2954
These files are part of DJGPP which is available from
host: omnigate.clarkson.edu
login: ftp
password: send your e-mail address
directory: ~ftp/pub/msdos/djgpp
DRIVERS\VESA.GRN:
Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954
Copyright (C) 1992 Csaba Biegl, 820 Stirrup Dr, Nashville, TN 37221
Copyright (C) 1993 Grzegorz Mazur, gbm@ii.pw.edu.pl
VMPEG:
The library VMPEG is linked with is
Copyright (c) Regents of the University of California.
acknowledgement: ``This product includes software developed by the
University of California, Berkeley and its contributors''
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
The program is compiled with GNU GCC, the C compiler of the Free
Software Foundation (FSF), Inc. 675 Mass Ave, Cambridge, MA 02139, USA.
VMPEG does not contain code covered by the FSF General Public License.
8. Known Bugs
=============
The -d2 option is slower than it should be (yet to be rewritten
in assembler).
Interframe coded macroblocks theoretically can experience wrap-around
(255<->0). Up to now I couldn't identify any MPEG sequence which exhibits
this bug.
Accuracy of the IDCT is at the lower margin and definitely does not
meet the requirements of IEEE P1180. It is, however, a reasonable trade-off
between speed and image quality.
9. References
=============
1. Coding of moving pictures and associated audio for digital storage
media up to about 1,5 Mbit/s, International Standard ISO/IEC
IS 11172, 1993.
2. Frequently Asked Questions (FAQ) of the alt.binaries.pictures
newsgroup: contains an introduction to MPEG.
3. Documentation of the PVRG MPEG software: a thorough overview
covering many aspects of MPEG
Appendix A: Related Software
============================
This list is probably incomplete, but it's all I'm aware of. Of course
there are programs for other systems as well (Mac, Amiga etc.).
cmpeg an MPEG encoder for the PC (DOS, 640K, no '386 req.)
for Targa, PBMPLUS and Alchemy RAW images
Author: Stefan Eckart
garbo.uwasa.fi:/pc/graphics/cmpeg10.zip
dmpeg Offline MPEG decoder and player for the PC (DOS, 640K, VGA)
Author: Stefan Eckart
garbo.uwasa.fi:/pc/graphics/dmpeg11.zip
mpeg_play MPEG Video Software Decoder (Version 2.0; Jan 27, 1993)
Authors: Lawrence A. Rowe, Ketan Patel, and Brian Smith
Computer Science Division-EECS, Univ. of Calif. at
Berkeley
toe.cs.berkeley.edu:/pub/multimedia/mpeg/mpeg-2.0.tar.Z
mpegwin Online port of mpeg_play for MS-Windows
by: Michael Simmons, msimmons@ecel.uwa.edu.au
toe.cs.berkeley.edu:/pub/multimedia/mpeg/Ports/mpegw*
(HiColor & TrueColor support, Shareware)
mpeg.exe DOS MPEG player from Xing Technologies (XingIt V2.1)
(high speed, but decodes only a small subset of the
MPEG standard, audio (.WAV,.MP2) support, Windows)
mpegview.zip (available from many ftp sites)
MPEGv1.1/1.2alpha
MPEG Software Encoder/Decoder
Authors: Portable Video Research Group (PVRG)
havefun.stanford.edu:/pub/mpeg/MPEGv*.tar.Z
disp
a display program for pictures and animations
including MPEG (based on mpeg_play)
contains additional drivers that can also be used
with VMPEG.
Author: Jih-Shin Ho, u7711501@bicmos.ee.nctu.edu.tw
NCTUCCCA.edu.tw:/PC/graphics/disp
APPENDIX B: MPEG files
======================
Two good sources for MPEG files:
toe.cs.berkeley.edu:/pub/multimedia/mpeg/movies
havefun.stanford.edu:/pub/mpeg
High quality MPEGs you simply can't afford to miss:
tennis.mpg
flowg.mpg
bike.mpg
--
Stefan Eckart, stefan@lis.e-technik.tu-muenchen.de
Kagerstr. 4, D-81669 Munich, Germany.