Frequently asked questions
Last revised by Michael Prior-Jones, February 2005.
Who are you guys?
How did Dirac begin?
Why is it called Dirac?
Why are you releasing Dirac Open Source?
Where can I get Dirac?
What are the license conditions?
Are you going to charge for Dirac?
Do the BBC have patents in Dirac?
Do you infringe any patents?
What will you do if you infringe patents?
Is the BBC going to stream video using
Dirac?
Are you going to broadcast TV using Dirac?
What about Ogg Theora?
How does it work?
Why did you choose the techniques that
you're using?
What's with your picture file format?
How do I play compressed video?
How do I code video?
How can I help?
What needs doing?
When will Dirac be ready?
top
Who are you guys?
The BBC Dirac team is led by Tim Borer, Principal
R&D Engineer in the BBC Research and Development Department. The
main algorithm developer is Thomas Davies, Senior R&D Engineer, who
devised the Dirac algorithm. The software is managed by Anu Suraparaju,
Senior R&D Engineer, and Andrew Kennedy, Software Engineer. Michael
Prior-Jones is a Graduate Engineer who's attached to the team until
October 2005.
top
How did Dirac begin?
BBC R&D has always been involved in video coding
research as it's central to what the BBC does. Thomas began
experimenting with compression techniques in about 2001, and developed
various prototypes of coding tools. In January 2003 he had a rough
research system in place which seemed to perform well. Since then he's
been working to translate the software into something that could be the
basis of a working codec, and to streamline the design. This involved
rewriting the codec entirely in C++ to exploit the flexibility and
modularity of the language.
top
Why is it called Dirac?
Dirac is named after the British physicist (of Swiss
extraction) Paul Dirac, who was one of the great figures in modern
physics. We've seen some good explanations on the 'net, suggesting that
we chose the name because the Dirac delta function is fundamental to
signal processing and that Dirac's work underpins wavelets. Sorry, but
the stories aren't true. We thought of hundreds of names, most of them
awful, some of them good, and most of the good ones had been used
already. Tim suggested Dirac. It sounded good. It stuck. It was going
to be called Camel, so maybe we had a lucky escape.
You can find out more about Paul Dirac here.
top
Why are you releasing Dirac Open
Source?
The BBC has always advocated open standards, and has
tried to use them where possible. So far, streaming has been dominated
by proprietary systems and existing licensing regimes for
standards-based systems have not been as attractive as they might be
for large-scale broadcasting, particularly for Public Service
broadcasters.
top
Where can I get Dirac?
You can download the latest version from the Sourceforge project
page. You can also look at the developing code on the CVS there.
top
What are the license conditions?
Dirac is released under the Mozilla triple license
(MPL). This is an Open Source license that allows both free and
commercial use of the software. It also allows for relicensing under
the GPL or the LGPL.
top
Are you going to charge for Dirac?
No. The terms of the MPL mean that as far as the BBC is
concerned, there will be no charges or royalties for the Dirac
software.
top
Do the BBC have patents in Dirac?
Yes. We have patent applications in train for some of
the techniques involved in Dirac, and others that we intend to put into
Dirac in the future. There has been some FUD about this, so we'll be
clear: this does not affect the Open Source status of Dirac, nor does
it affect its royalty-free status. The conditions of the MPL mean that
we're licensing these patents for use within the Dirac software for
free.
top
Do you infringe any patents?
The short answer is that we don't know for certain, but we
don't think so. We
haven't employed armies of lawyers to trawl through the tens of
thousands of video compression techniques. That's not the way to invent
a successful algorithm. Instead we've tried to use techniques of long
standing in novel ways. Where we think we're novel, we're
in the process of getting patent protection ourselves, which will
invalidate others' claims of priority. There are some areas that are
more heavily patented than others. Arithmetic coding is one such, even
though the technique itself has been around for 25 years. We're keeping
an eye on the situation, and we'll adopt alternative techniques if we
have to.
top
What will you do if you infringe any
patents?
Code round them, first and foremost. There are many
alternative techniques to each of the technologies used within Dirac.
Dirac is relatively modular (which is one reason why it's a
conventional hybrid codec rather than, say, 3D wavelets) so removing or
adding tools should be possible until it goes Beta and the bitstream
and decoder functionality are fixed. But we also need to see where in
the world potentially problematic patents apply, and how important they
are.
top
Is the BBC going to stream video
using Dirac?
The software is not quite ready for that yet - we need
real-time decoding, integration with players, a bitstream spec and a
transport stream format. So this will probably have to wait until Dirac
is closer to beta, although it might be possible to set up something
experimental sooner.
top
Are you going to broadcast TV using
Dirac?
Broadcasting or multicasting over the web is likely to
develop over the next few years, and the technology we use for this is
likely to be the same as for standard streaming. There is no likelihood
at all of replacing our existing Digital TV infrastructure, based on
European DVB standards and using MPEG-2, with anything new - the
installed base of millions of customers is too large.
top
What about Ogg Theora?
Theora is coming on very nicely, and has an impressive, well-defined
spec.We're not quite so advanced yet, but we already have much better compression
performance. We think you can't have too many free codecs, and that the Open
Source community also needs to continue to develop codecs with
increasingly better performance. Theora has helped create a pool of Open Source
compression experts, which is of benefit to everyone in the field.
We intend to pack the Dirac elementary stream into MXF,
which has lots of useful features. That doesn't preclude it packing
into Ogg (or Matroska, or anything else ) as well, and it's probably a good idea to have a variety of
packing formats. For this the elementary stream needs to be very well
defined.
top
How does it work?
See the algorithm
documentation
top
Why did you choose the techniques
that you're using?
We chose wavelets for a number of reasons. They perform
very well in still image compression, and can be said to be state of
the art there. They also provide a degree of scalability, so a codec
based on wavelets can perform well across a range of video standards.
By scalability we don't mean embedded bitstreams or the ability to
extract lower-resolution video from higher-resolution bitstreams -
Dirac doesn't do this as it's very complex - only the flexibility to
apply the same tools to a range of resolutions, perhaps with different
parameters. Wavelet coding is also a well-studied and well-understood
field.
Overlapped block motion compensation is used to reduce
blockiness and ease the job of the wavelet transform in coding motion
compensated differences. The wavelet transform may not be the best tool
to do this, and we'd welcome other contributions, but it does have the
benefit of simplicity in that the tools for all frame types are the
same. Dirac supports more or less any block sizes for motion
compensation and this again helps in scaling the algorithms as larger
blocks can be used for higher resolution pictures and smaller ones for
low resolution pictures.
top
What's with your picture file format?
You must have an old version of the codec. Dirac now just uses
raw planar YUV, and there's no need to create a header anymore. We also have patches
for ffmpeg and transfode, so you can use any of the formats they support.We've also got some tools for
converting formats to and from the raw format, and there's advice on using these in the users
README
in the distribution.
top
How do I play compressed video?
We have a DirectShow filter which you can download, and a
patch for MPlayer.
top
How do I code video?
You can use the encoder directly, using raw video in planar YUV format. Or
you can download and install the patches for ffmpeg or transcode and use those.
top
How can I help?
By telling people about Dirac. By contributing to the
code. See getting involved or contact us to find out more.
top
What needs doing?
There's still a lot to do. The spec needs a lot of work and the
code and the spec need to converge. We need optimisation work for the encoder and
decoder - the encoder in particular is still very slow. We also need to integrate tools
like global motion, and optimise other tools. Another thing we lack is a buffer model and
constant bit-rate encoding.
For a full(er) list, see the TODO
list.
top
When will Dirac be ready?
We hope to get to
beta by the end of 2005. This means fixing the bitstream spec and getting the code
to conform to it.
top
|