Home |



Our team spend quite a lot of time deciding on the architecture of the system, and, believe me, it truly paid off. It taught us some important lessons like where different modules should go, and how much time you should spend developing each module. A good architecture simplifies many things, and its always exciting to see your actual code being truly "plug 'n' play". So, before you jump into coding your system, the key is that you 1. decide on your modules and their placement in the architecture, 2. clearly decide the interfaces which fall between the different modules (down to the actual function declarations), and 3. you decide the importance of each module for the development of your project. Go ahead, click on the picture, and see AVRiL's architecture:

AVRiL Architecture

At the lowest level we have cameras that feed video to (hardware) digitizer cards. There is also a microphone array which passes sound streams to sound cards for audio processing. The videos are passed above to the Lecturer Tracking Module for detecting the position of the lecturer; and the sound streams are passed above to Audience Tracking Module. All processed video streams are passed to the Direction Module which selects appropriate streams and encodes data into a single video stream. The encoded video is sent to the Presentation Compiler Module, which compiles the video with all other presentation data like slides into a format which can be easily played back on the Presentation Module. If you want to see the data flow across the AVRiL's modules, check out the diagram below:

AVRiL Data Flow Diagram

mail: | skype: ahmad.humayun | voice: +92 321 4457315