Project:
Implementation of a video conferencing system based on H.261
Final Status:
The H.261 encoder and decoder developed for the midterm were used to create
an IP network based videoconferencing system.
The video player which previously could use only an X11 PseudoColor display
now has the added functionality to deal with PsuedoColor and DirectColor
displays (8,16,32 bits). Using DirectColor has fixed the previous pixel
color display problems encountered during the midterm.
The encoder and decoder use a fast DCT of the form shown on Page 52 of
the JPEG book. The exhaustive motion estimation search used during the
midterm was replaced with a 3-step search which dramatically speeded up the
encoder. Both the encoder and decoder were modified to operate on a
macro-block by macro-block level and tolerate lost macroblocks. The encoded
bitstream was packetized into UDP/RTP packets using RFC 2032. This can
also be found in the H.225 document.
The decoder was able to recover from lost packets which could contain
any part of the H.261 stream.
For the conferencing, call setup and tear down were implemented. With QCIF
files the conferencing system can easily do more than 5 frames per second
when taking image input from a file.
There was not enough time to interface a camera with the system.
The implementation of this system was done on Linux Redhat 5.2.
The following compoments and libraries were used
Links to resources:
The code is available here.