Each student is responsible to propose and execute a term project. For a larger-scale project, two or three students may form a group, but each of them must work on a different part of the whole project, e.g., a student may work on adaptive streaming server while the other one works on the decoder on a smartphones.

Kinds of projects:

  • Brave new idea: Develop a new idea to solve a challenging research problem in multimedia networking and systems. You must present your innovative idea. Simulation and/or experimental results shall be presented. Hopefully, you will get a publishable technical report (and A+) by the end of the semester.
  • Quantitative and/or qualitative comparisons of multiple published solutions: Implement existing algorithms, techniques, or systems. You need to conduct simulations or experiments to evaluate the solutions. Lessons learned from the simulations or experiments must be discussed.
  • Survey a well-studied problem and its solutions: Write a survey paper to discuss an interesting research problem in multimedia research. You need to discuss the directions of future research related to that research problem.

Potential project topics, please feel free to suggest new topics:

  • Location-based bandwidth estimation system. Please see the instructor if you want to know more. 
  • Generic remote rendering system for online games and (network) latency compensation techniques. Please see the instructor if you like to know more. 
  • Optimized multimedia content transfer on Android smartphones. Please see the instructor if you want to know more. 
  • 3D Virtual Reality System. Please see the instructor if you like to know more. 
  • Intuitive human-computer interaction among multiple smartphones and tablets enabled by WiFi Direct. Please see the instructor if you like to know more. 
  • Port opensvc, an open-source H.264/SVC decoder to Android 2.3+ using NDK. Understand the limitations of opensvc. Optimize opensvc in terms of time and space complexities.
  • Modify the open-source Darwin streaming server to support H.264/SVC streams. Partial implementation (without verification) is available upon request.
  • Implementation and evaluation of a media gateway (a WiFi router that provides simple QoS for multimedia streams). See http://dl.acm.org/citation.cfm?id=1496061 and http://dl.acm.org/citation.cfm?id=1989245 for examples, and propose enhancements on top of their works.
  • Develop an SVC streaming system that leverages stream re-writing feature of H.264/SVC standard. Stream re-writing efficiently converts an scalable H.264/SVC stream into a regular H.264/AVC stream. This allows common video players (such as VLC) and most smartphones to decode SVC streams. The H.264/SVC standard documents the details of how to implement this. Port your code to a WiFi gateway (e.g., an OpenWRT compatible access point) and conduct real experiments on smartphones to show the benefit (if any) of scalable video coding.
  • Haptics-based Multimedia Communications. Multimedia applications that interact with biometric sensors (e.g., e-touch, smell, …). See http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5228689 for an overview. For more examples, check the work being done at University of Ottawa, MCRLab.
  • Stereoscope and/or high definition video encoding and streaming: survey and comparison of different models
  • Survey existing open-source SIP video phones. Set up a SIP server and several open-source SIP video phones among smartphones and/or laptops. Qualitatively and quantitatively compare different implementations, and identify potential research problems.
  • Efficient implementation of network coding schemes in distributed media streaming systems.
  • Video streaming and broadcasting over 3G, WiFi, or WiMAX networks to mobile devices, such as Android smartphones.


The main objective of the term project is to show the students how to conduct systems research in multimedia area. The instructor will walk you through well-defined steps to complete the project. These steps are explained below.

  1. Literature survey: We first need to know what have been done before, more importantly, what haven’t been done in the literature. In this phase, a student searches and reads papers published in reputable journals and conferences. You are excepted to classify all existing solutions into meaningful groups, and give high-level description on representative solutions.
  2. Problem statement: After knowing what hasn’t been done, the student should formally define the research problem he/she plans to address in the term project. The student should clearly define the system models and mathematical notations.
  3. Problem solution: Each student proposes a new, better solution to address the research problem. Often, your solution is inspired by existing one studied in the literature survey; you may also borrow (algorithmic) ideas from other areas. The student should analyze the solution from the aspects of time and space complexities, and argue that the solution is (reasonably) scalable.
  4. Simulations/Experiments:A student must evaluate the proposed solution using simulations and/or experiments. Real experiments are much more convincing than simulations, because simulator often make assumptions to speed up implementation. While real experiments are highly encouraged, simulations are also useful when the test scenarios are too complex to be set up in a real testbed.


In this course, students are required to turn in their reports three times. The reports must be written in Latex and this template. In the first month, each student will pick a research topic, and write a proposal consisting of literature survey and problem statement. If a students needs to borrow equipments (such as wireless routers and smartphones) from the instructor, he/she should explain why the equipments are needed (e.g., experimental setups) and identify the suitable make/model in the presentation. Each student is given 15 min to present their proposal in front of the class. Students are then given 1.5 month to work on their problem solutions and conduct some simulations/experiments. They add new materials to their proposal, and give a 15 min presentation to report the progress. Next, students work on their projects for another 1.5 month, and present and (optional) demo their term projects in the week before the final exam. We don’t have final exams, and the final technical reports are due one week after the last lecture. In summary, each students will turn in three incremental technical reports, give three 15-min talks, and optionally demo their system in the final presentation. All these deliverable will be graded; demos are highly encouraged and incurs considerable bonus points.

To ensure the course covers all aspects of multimedia networking, each student will give a 1-hr presentation about one or two papers relevant to his/her project topic. The presentation will be graded. Students should recommend good and recent papers to present. If that’s not possible, the instructor will assign papers to individual students after the proposal presentation.