MPEG-1 support to UNIX ports of VIC


Andy Adamson -
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



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.  XIL Interface for Sbux Mpeg-1 encoding added.
        ui-resource.tcl Encoder Menu additions.

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  XIL interface for PCI bus Mpeg-1 encoding


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.

        Berkeley Mpeg_play software. The origional is available at the URL 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%