Because of the flexibility of Berkeley's encoder, this project could be expanded in several directions. The most obvious improvement would be the addition of audio encoding, but extensive modifications would be necessary. The source code for an MPEG-1 audio player is available, but this program did not come from Berkeley, so there would be no simple way to combine them. Furthermore, the part of the program that unites the video and audio data into a single output would have to be written from scratch. Finally, licensing of MPEG-1 audio compression technology is very restrictive compared to the video algorithm.
One of the key advantages that a software encoder has over a hardware encoder is flexibility. In order to achieve higher speeds, much of that flexibility had to be sacrificed due to the constraints imposed by the number of computers and the way they were connected. Some of that flexibility could be regained through further programming, making the encoder a more attractive product. As technology progresses, a single computer will be able to perform real time MPEG-1 video compression. For a considerable period of time, only highly optimized encoders that fully utilize the multimedia capabilities of specific microprocessors will have this ability. When the parallel nature of this encoder becomes obsolete, the other optimizations will still be useful. In fact, the new microprocessor from Intel (Pentium III), which is becoming available in recent personal computers, provides an instruction targeted at the most intensive part of MPEG video encoding. Presently, a version of this encoder modified to use that instruction could provide real time encoding with three computers and soon with just one. Making that change would greatly extend the life of the encoder.
Another way the encoder could be improved would be by enhancing the
interface. Currently, the process is controlled by a parameter file, which
contains a long list of variables allowed by the MPEG standard. Many of
these options require technical knowledge to be set correctly. The encoder
could be improved by adding an interface that allows the user to select
the quality of the output rather than its exact parameters. This would
reduce the user's degree of flexibility, but the added ease of use would
justify the tradeoff.