Optimal Parallel MPEG Encoding |
In the beginning in a lab deep in the heart of Upson Hall, there were video tapes of classroom lectures. These tapes were on the shelf collecting dust bunnies. What were we to do about this? Well, Brian Smith decided that he wanted his lectures put online for his students to view and thus began using RIVL to compress his videos. He soon realized that compressing every lecture would take an inordinate amount of time. He calculated that if we could use every machine in the computer science department, it would not take nearly as long to perform this task. We decided it would be fun to help Brian out with his problem, so we came up with an abstract to solve his problem. We all agreed that it was a good place to start. After some time (and a lot of labor) we came up with some code and a paper based on our work which more closely resembles a collection of notes than a coherent piece of work. So, we kept working. We have now arrived at another version of our code. This version works much better than before; it is better, stronger, and faster. And to this end, we have written another technical paper to describe exactly what we did and why we did it.
Lots! We now know the intimate details of how TCL, DP, and RIVL work and why performance suffers when certain things are done. Mastering the black art of TCL programming actually took the smallest amount of time in comparison to the rest of code. Squeezing the most performance out of a single-threaded, event-driven environment given a distributed architecture turned out to be the most time consuming and difficult part of the project. RPC facilities built into DP allowed us to easily perform necessary communication between machines to distribute work requests. The combination of the above scripting environments helped us to acheive our goals of delivering reliable, portable, high performance MPEG encoding.
Very well! The ability to rapidly compress video using all available machines makes many new types of video processing possible. It allows animators and movie editors to view their videos more often, thus shortening development time. Because our version of parallel MPEG encoding is an integral part of RIVL, it is extremely easy to use.
If we are able to compress a large video without becoming old and gray, we will have succeeded.
We are finished with the coding state of the project. Currently, we are working writing a technical report for the project. Hopefully we can pull the main ideas together better than we did earlier. Some of things that could be done to make this project better are: