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.