Dirac is an experimental Open Source video codec, initially developed by BBC Research and Development. Its design is that of a conventional hybrid motion-compensated codec, except that the the function normally performed by a block transform in most MPEG standard and proprietary codecs is instead performed by the wavelet transform.
Dirac performs well in comparison with other codecs, and certainly much better than MPEG-2 (probably about twice as well). However, performance was not the only factor driving its design. Dirac is intended to be simple, powerful and modular, both conceptually and in implementation.The aim is to produce a codec which replaces the enormous variety of tools normally required for high-performance video compression with a much simpler design, with far fewer choices for the encoder to make. (Although that doesn't mean that Dirac's toolset won't continue to grow for a while yet!) Ultimately, we want Dirac to develop into software that can be used for real-time encoding and decoding in image-processing applications: it is not supposed to be an algorithmic demonstrator. The software is a long way off this point at present, but with time we hope to get there.
This design philosophy has been reflected in the software itself. It's written in C++, rather than the usual C. This creates challenges for optimisation and real-time performance, but allows for much greater clarity of design through encapsulation of compression functions.
We also want a wide variety of developers to be able to work with Dirac, and so we have tried to document Dirac as completely as possible. In addition to this algorithm document, we have provided doxygen-based comments on the code itself. In future we will be working on providing a bitstream specification to allow others to develop compliant coders and decoders using as much or as little of the original Dirac software as they please.
Dirac is still very new and has not been tested very extensively. In the current version, the encoder has a great number of parameters for tuning performance, based on rate-distortion principles, and it would certainly be possible for many frames to improve on the default settings. There are many avenues for further work on the Dirac algorithm, and one of these is the provision of encoder-control systems. In the meantime, if you want to use Dirac, you are referred to the README file in the distribution bundle for a description of what the various options mean.