CS 640, Spring 2009 Programming Assignment #4 Due: May 10, 2009 The goal of this programming assignment is to understand how a network connection affects different applications. To do this, we will use video applications as an example. In the assignment, you are expected to come up with a single formula that takes a video packet trace as an input, and provides a single value --- a number between 0 and 10 --- as an output. The output will be the quality of the observed video. To do this, you should download and watch a number of videos, and capture the packets corresponding to these videos using a tool such as wireshark. Subsequently, you should input this packet trace to your software that will output a video quality number between 0 and 10 (0 being very low quality, and 10 being the highest quality). You should express the video quality as a single formula, which depends on network layer parameters, e.g., delay, jitter, loss, bandwidth, etc. To do this, you should conjure up as many different network conditions as possible, e.g., low and high bandwidth connections between the server and the client, various loss conditions, variability of latency, etc. At the end of this project, you will demo the performance of your system by running some sample videos, and letting a user score that video in the same scale. At the same time you should feed the video trace to your software to obtain the video quality value. The better the match between the user's opinion and the output of the software, the better the performance. For your demo, you will be asked to prepare a presentation of your work. The presentation should include a precise statement of the formula used, and a demo of your system. Further, you should explain what experiments your ran to arrive at your formula.