MPEG-1 support to UNIX ports of VIC

Distribution:

Download:
vicsrc_mpeg1.tgz
Contact:
Andy Adamson - andros@umich.edu
Filelist:
 
dist/
mpegdiffs
README
vic-2.8/
decoder-mpeg1SW.cc
grabber-xil-pci.cc
grabber-xil.cc
mpeg/src/
16bit.c          decoders.h       gray.c           proto.h
2x2.c            dither.h         hybrid.c         readfile.c
Imakefile.proto  doit.c           hybriderr.c      tags
Makefile         floatdct.c       jrevdct.c        util.c
Makefile.proto   fs2.c            main.c           util.h
README           fs2.h            mb_ordered.c     util32.c
bzero.c          fs2fast.c        mono.c           video.c
check-shift.c    fs4.c            motionvector.c   video.h
ctrlbar.c        fs4.h            ordered.c
ctrlbar.h        gdith-old.c      ordered2.c
decoders.c       gdith.c          parseblock.c

 

Encoder:

Currently, Sun SBus SunVideo Card is the only supported MPEG-1 encoder.
I'd like more!
Platforms: SBus Solaris 2.5.1, 2.6

The following files were modified to support the hardware encoding.

        grabber-xil.cc  XIL Interface for Sbux Mpeg-1 encoding added.
        ui-resource.tcl Encoder Menu additions.
        ui-ctrlmenu.tcl

We have the Sun PCI bus SunVideo Card partially ported - it delivers an
MPEG-1 stream, but there are artifacts (tearing).
Platforms: PCI Bus Solaris 2.6

        grabber-xil-pci.cc  XIL interface for PCI bus Mpeg-1 encoding
 

Decoder:

Platforms: Solaris 2.5.1, 2.6, AIX 4.1,4.2, OpenBSD 2.2,2.4

The following files were added to support software decoding and rendering
of MPEG-1 video.

        decoder-mpeg1SW.cc

        Berkeley Mpeg_play software. The origional is available at the URL
        ftp://mm-ftp.cs.berkeley.edu/pub/multimedia/mpeg/bmt1r1.tar.gz. We
        changed the buffering and merged the X, Tcl.
 
 
 

Note: We currently hard code MPEG-1 Sequence header values passed
to mpeg_play. (FakeSeqHeader() in mpeg/src/video.c). The current port has
values consistant with the MPEG-1 stream emitted from the Sun
Sbus SunVideo board. Obviously, we need to receive the sequence
header from the encoder.....
 
 

Software MPEG-1 Decode Performance

This table shows the performance for platfroms receiving a 3.5Mbps,
30 fps MPEG-1 input stream. Only one of the receivers is capable of
displaying the full stream; the other receivers are CPU-bound and
can not decode the iput stream at the offered rate.

Platform, OS                    fps     Effective Stream        CPU Usage
---------------------------------------------------------------------------
200Mhz Sun Ultra5, Solaris2.6   30      3.5 Mbps                84%
50Mhz Sun Sparc-20, SLoaris2.5  10      1.0 Mbps                85%
122Mhz IBM 42T, AIX 4.1         19      1.9 Mbps                74%
400Mhz Pentium, OpenBSD         24      3.0 Mbps                80%