Dynamic Bit Allocation for Video Conferencing
Benjamin Pugliese <pugliese@andrew.cmu.edu>
Matthew Richey <mr6v@andrew.cmu.edu>
Mahesh Saptharishi <mahesh@andrew.cmu.edu>
Goals:
-
Get H.263v2 decoder to work in real-time
-
Add tunable parameters for audio
-
Put audio over the network
-
Add enhancements to control layers to accommodate user specified quality
requirements
-
Be able to specify a set of quality requirements so that the system automatically
adapts to meet the demands of the user
Accomplishments:
-
Frame grabbing using Video for Windows
-
Raw audio inputted and outputted to sound card
-
Datagram socket interface written
-
H.263v2 encoder and decoder modified to take real-time video and work independantly
-
ADPCM audio compression implemented (4:1 compression ratio)
-
Compressed video remotely displayed
-
Audio quantization implemented
-
Quantized audio remotely played
-
Real-time adjustment of video quantization and audio quantization enabled
-
Remote control of video and audio parameters implemented
Shortcomings:
-
Dynamic bit allocation not fully explored
-
System not stable
-
Audio is choppy when put over the network
-
Adjustment of video and audio parameters not intuitive
Conclusions:
Software interfaces to hardware continued to be problematic throughout
this project. Determining an appropriate way to trade off parameters was
a difficult problem, which was not fully solved.
Code:
Find a compressed copy of our code here.
All code was developed using Microsoft Visual C++ 6.0. Some bugs still
exist, mostly when audio and video portions run simultaneously for a long
duration.