Project description for INF5071 / Fall 2010Project DetailsThis project will be conducted in pairs (unless a valid reason for working individually is provided). It should consume roughly 30 hours per person for a total of 60 hours per pair. The project consists of nine milestones:
Finding a partnerIf you require help in finding a partner please send an e-mail to (paulbb at ifi.uio.no) and we will coordinate it so everyone has someone to work with. To aid in this process select a few topics or key-words of your interests, and we will try to match people based on these criteria.Project planThe project plan is not meant to be a formal project plan as taught in software engineering. That alone would consume the entire allocated time. Instead, we expect an informal description that includes the following:
Selecting and submitting a topicWe have provided a list of topics we find interesting, but if none of these topics are of interest to you or are already taken, we encourage you to come up with your own suggestions. The only mandate is that it be related to efficiency in some manner. Wether you come up with your own project idea or select one from the list below send an e-mail to (paulbb at ifi.uio.no) with the name of yourself and your partner and we will let you know if it is approved/available.
It is becoming increasingly common to purchase service from cloud operators such as Amazon's EC2 (http://aws.amazon.com/ec2/) or Rackspace. As a result in this shift towards renting services in the cloud, how well do various applications cope in such a scenario? Do the providers specialize in providing certain services, how, and why? How is the distribution of data centers and how can this effect your application?
There exists a number of libraries, such as POSIX Threads and Boost Threads, for threading applications, i.e., to allow for running multiple threads of execution within a processor. How do the various libraries compare to eachother? In terms of functionality, cleaning up, portability, scalability, spawning of threads and so forth?
VP8 is a new video codec released and promoted by Google. VP8 is a general purpose video codec and can in theory be used for any number of applications including video-conferencing. Video-conferencing requires a very low latency in order to provide a sufficient Quality of Service. As such, it is interesting to measure the latency of different configurations of VP8 end-to-end latency from a web camera to the display. Implementations for VP8 are available via ffmpeg and the WebM project For further inspiration, you can also take a look at the topic suggestions from 2008 and from 2009. Current Pairs and Selected Projects
|