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 transcode, 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
|