CS414 Spring 2011

Multimedia System Design

Machine Problems and Homework


There are three machine problems and two homework assignments in this course. Machine problems are designed to help you better understand how different components in a multimedia system work and the homework assignments are designed to help you prepare for exams. According to our grading policy, machine problems and homework contribute to 55% of the final score. Therefore, take them seriously! Here are some rules for machine problems.



-          Form a group for machine problems in first two weeks. Select your group mates carefully because no group change is allowed during the semester unless someone drops the class. Write an email with the names and NetIDs of all group members to the TA.

-          The recommended group size is 3. Smaller groups will have the same workloads and larger groups will have heavier workloads.

-          Each group has a group number assigned. Check Compass or email TA to find out your group number.

-          Each group will have a group directory on EWS machines.


Platform and Language

-          Linux is the required platform for all MPs. We recommend using C/C++ for implementation. If you prefer using Java or other language, you may have to find drivers and support libraries all by yourself.

-          In MP3, you will have an option to program on mobile phones. The phones we will use are HTC G2 with Android 1.6. Instructions and tutorials of Android programming will be given.


Submission and Grading

-          Submit all MP solutions, including all source codes, documents, and other necessary materials, through Compass before deadline. No late submission is accepted.

-          The full mark of each MP is 100 points. You have to implement all required features that count for 80 points and then select and implement 20-point optional features from a pool. The optional feature pools of three MPs have 40, 50, and 70 points, respectively. If you are able to get more than 300 points for three MPs, you will receive bonus points in your final score, which can be used to compensate the loss in exams and homework assignments.

-          MP is graded on how features (required and optional) are implemented. For each feature, you get 20% of the allocated points if the feature is implemented and well documented (see documentation instructions below); 20% if the source codes can compile and run; 20% if the required features are partially implemented; 20% if all required features are implemented; 20% if the program runs perfectly (no error, no crash).

-          If you want to re-grade your MP, you have to write to TA first and set up an appointment for your group to meet TA.



-          Write a user manual about how to compile/install the source code, run the program, and test each feature. Add figures or sample commands if necessary. Assume TA is a customer of your software produce (MP submission). It is your responsibility if TA can not run your program by following the instructions in your documentation and you may get 0 point for your MP in the worst case.

-          Write a developer manual about the whole framework of your program and how each feature is implemented. Explain important data flows, data structures, and functions.

-          Your program should implement '--help' option to provide important usage information. You also should add important comments in your source code to indicate how features are implemented.  


Open-Source Codes

-          You are encouraged to borrow codes from any open source project, or use any open libraries to complete your MPs. However, you have to clearly mark out which part is borrowed and which part is your own implementation in your documentation.

-          It is OK to modify an open source program to your MP solution but it is unacceptable to submit any unmodified open source program as your MP solution.

-          You cannot open source your own MP solution and share with other groups. 



-          Necessary hints, reference materials, tutorials will be given when MPs are posted.

-          A help session will be given on the Wednesday one week before deadline. You want to attend this session if you are stuck with your MP.

-          Post your questions in newsgroup.



-          An SVN account has been set up for each group. The URL is: https://subversion.ews.illinois.edu/svn/sp11-cs414/groupX, where X is your group number. For example, the URL for Group 1 is https://subversion.ews.illinois.edu/svn/sp11-cs414/group1.

-          You can create directories for each MP by the command: svn mkdir https://subversion.ews.illinois.edu/svn/sp11-cs414/groupX/MP1

-          Import your initial project by the command: svn import /path/to/your/project/ https://subversion.ews.illinois.edu/svn/sp11-cs414/groupX/MP1/

-          Checkout your project by the command: svn co https://subversion.ews.illinois.edu/svn/sp11-cs414/groupX/MP1/

-          Learn how to use other SVN commands here.


Machine Problems

The ultimate goal is to implement a video conferencing system similar to the Facetime from Apple that allows mobile devices and desktops (connected with webcam) to communicate with each other. In addition, we also want to exploit more features such as: interactive video conferencing, multi-party communication, etc. The whole project is divided into three machine problems. The first focuses on video/audio capturing and playback. The second one is mainly about media streaming over networks. The last one integrates all components and extends the implementation to mobile platforms.

MP1: Video Recorder and Player

Description, Sample Submission, Help Session

Reference Materials: V4L2, OSS/ALSA, SDL, libjpeg doc/sample, luvcview, sample audio player and recorder

More Reference Materials: libwebcam and uvcdynctrl (for pan/tilt. Libraries have already been installed in EWS machines), AVILIB, GTK, lame, x264, ffmpeg,

Help Session: SC1111, 7-8pm Feb 9 (Wed), 2011.

Due: 11:59pm (Compass time) Feb 16, 2011


MP2: Video Streaming

Description, Help Session

Help Session: TBA

Due: 11:59pm (Compass time) Apr 3, 2011


MP3: Video Conferencing Integration

Description of Option 1: Mobile Video Chat, Help Session

Description of Option 2: Multi-Party Video Conferencing

You can select either option for this MP. However, you are not eligible for the final competition if you selection Option 2.

Help Session: SC1304, 7-8pm Apr 13 (Wed), 2011

Due: Apr 29, 2011

Your MP will be face-to-face examined by the instructor and TA on the afternoon of Apr 29. The preliminary selection for the competition finalist is on Apr 27. All source codes and documents are due at 11:59pm (Compass time) on Apr 29. Note that there will be no extension for this MP. More information about the competition and evaluation will be announced.

Instructions for final presentation and Google Competition


Homework Sets


Problem, Solution

Due: 11:59pm (Compass time) Mar 2, 2011


Problem, Solution

Due: 11:59pm (Compass time) May 9, 2011