18-796 Final Project Report
Joseph Huang
WeeChoon Teo

18-796 Multimedia Communications: Coding, Systems, and Networking

Bit errors in a wireless channel for a H.263 bitstream

 

For this project, we introduced wireless communication capabilities via serial port to an existing H.263 Codec. We also made the decoder output the decoded YUV frame to a window during decoding. We also conducted some empirical tests to determine if the Codec is robust to bit errors from a wireless channel.

The encoder is able to encode a YUV video and transmit the bitstream simultaneously through the serial port to the decoder. This is done using threads to guarantee a constant bit rate outputted by the serial port. The various modes and switches for the H.263 encoder are specified prior to encoding via a dialog box. All output information is ported to the encoder window console for status report. The bitstream sent to the decoder via the serial port is then decoded back to the YUV video format. As the decoding progresses, decoded YUV video frames are outputted to a window for viewing. All these occur simultaneously in one system. Decoder output information is also ported to a decoder window console for status report. The H.263 Codec CMU is encapsulated within a multithreaded serial port communication sample program developed by Microsoft in C++ for the Windows platform.

We have tested our serial port H.263 Codec using both lap-link type serial cable and wireless communication. Wireless communication is achieved by using Linx wireless RF transmitter and receiver. This wireless device has no error correction built in and thus it is highly suited to our needs. When using cable to transmit the bitstream, a comparison between the transmitted bitstream and the received bitstream shows no bit loss. This is expected, as there should not be any significant noise in the cable to cause bit errors. When the wireless device is used, bit errors are introduced depending on the separation between the transmitter and receiver, and noise in the environment. When they are about 5 inches apart, we do not perceive any bit error. As we moved the RF transmitter and receiver apart up to a distance of 3 feet, we get a bit error that is in the order of 10-5 at a baud rate of 19200 bps. This distance might seem to be really short for a RF device but it is obtained in the noisy condition of our lab possibly from the RF interference from the computers. At this bit error, there is no significant loss in picture quality apart from a color splotch. With a greater distance between the transmitter and receiver, significant loss in picture quality develop. Bit errors forces the decoder to synchronize for another sync word dropping the current group of blocks or slice which degrades the picture quality significantly.

We have accomplished what we have aimed for the project but we have some suggestions on further work that can be done. Firstly, it will be really interesting to have a more comprehensive study on the effect of bit error on the Codec. Instead of the empirical methodology that we have adopted for this project, it will be better to use quantitative metrics like PSNR to determine the drop in video quality. Bit errors due to separation between transmitter and receiver, and the noise level in the place of experimentation should also be accurately calibrated. This is a painstaking and tedious task, but the payoff is great. The result will be interesting and useful for assessing the performance and robustness of the Codec against bit errors. Lastly, from the various tests we did with the Codec, we feel that it should do away with some of the hard exits when it encounters bit errors at the start frame. This requires a little work to touch up on the original H.263 Codec.

A ZIP file to our work.

The code has been compiled under WinNT using Visual C++ v6.0. The ZIP file contains the source code as well as an executable compiled for speed.