FAQ

From Diracvideo

Jump to: navigation, search

Contents

[edit] About Dirac

[edit] What is Dirac?

Dirac is a open and royalty free high quality codec developed by BBC Research. Dirac is named after famous British theoretical physicist and Nobel prize winner Paul Dirac. There are now a number of Dirac software and hardware products, including the Schrodinger high-speed software codec.

[edit] Who are you guys?

Within the BBC, the project leader is Tim Borer, and Thomas Davies developed the original algorithm and has written the bulk of the specification for Dirac and VC-2. The research software is managed by Anu Suraparaju. Other developers are Jonathan Rosser and David Flynn. In the recent past, Andrew Kennedy, Michael Prior-Jones, Chris Bowley and others have all been involved in the project.

The Schrodinger high speed codec has been written by David Schleef, the initial development funded by the BBC.

[edit] How did Dirac begin?

Dirac was originally developed at BBC Research at Kingswood Warren in the UK. The BBC have specialists in compression technology, and have been working on digital television and its ramifications since the 1960s.

Thomas began experimenting with compression techniques in about 2001. The ideas were originally developed as part of an idea to deliver high definition services as a layered addition to conventional MPEG-2 broadcasts. As with most similar proposals, he did not manage to achieve any real benefit from linking the standard definition and high definition coding, but the algorithm he used was pretty efficient in isolation. It was the foundation of Dirac.

[edit] 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, but 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.

[edit] Why did the BBC release 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.

[edit] Are you going to charge for Dirac?

No, there will be no charges or royalties for the Dirac software.

[edit] When will Dirac be ready?

It's pretty much ready now. The Schrodinger real-time implmentation has reached version 1.0 and hardware products based on the VC-2 professional subset are already being sold (and will be used in the Beijing Olympics). There are continual improvements we want to make to improve support in applications and get better performance, but it's useable now.

[edit] Is the BBC going to stream video using Dirac?

A good question. Now we have version 1.0 of Schro, the BBC is exploring opportunities to adopt Dirac for operational use. We have real-time decoding, integration with players, a bytestream spec and a choice of transport stream formats.

[edit] Is the BBC 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.

[edit] How can I help?

By telling people about Dirac and the Schrodinger real-time implementation. By contributing to the codebases. See getting involved or contact us to find out more.

[edit] Flavours of Dirac

[edit] What's the difference between Dirac and Schrodinger?

Schrodinger is a high-speed implementation in C of the Dirac codec. Dirac itself is a compression format, specification and system. The initial development of Dirac at the BBC resulted in a research implementation, which is sometimes confusingly referred to as the Dirac codebase. We're now calling that dirac-research.

[edit] What is VC-2 and how does it relate to Dirac?

VC-2 is a draft SMPTE standard (which will probably be finalised in October 2008) covering the Intra coding parts of Dirac. Since it doesn't have motion compensation VC-2 is not suitable for low bit rate coding so VC-2 is aimed at the professional market.

[edit] What is the difference between Dirac and Dirac Pro?

Dirac Pro is the brand name for Dirac Intra/VC-2 products adopted by Numedia Ltd, the BBC's hardware partner for Dirac development.

[edit] Code

[edit] Where can I get Dirac software?

You can get the latest releases of Schrodinger and dirac-research from the download page. There are git repositories here.

[edit] What are the license conditions?

The Schrodinger software is available under any of the GPLv2, MIT or MPL licences. Libraries may also be used under LGPL.

The Dirac research software source code is licenced under the Mozilla Public License Version 1.1, and allows relicensing under the GPL and LGPL.

Our intention is that code be used as widely and as freely as possible. This is why we have allowed (re-)licensing under the terms of the GPL and LGPL licences. Both the research and Schrodinger codebases can be used in free and commercial projects.

[edit] What is liboil?

Liboil is a library for doing low-level optimizations. The creator of liboil, David Schleef, is also working on Schrodinger. For more information about liboil check the [liboil] homepage.

[edit] What programing language are used for Schrodinger? Is it portable?

The libraries themselves have been developed in ANSI C89 and special Dirac optimizations were developed in both C and Assembly in the liboil library. The libraries are designed to be as portable as possible.

[edit] Who originally wrote and now maintains the Schrodinger library?

Schrodinger was originally written and is now maintained by David Schleef with contributions from . More information about David can be found on the website of his company Big Kitten.

[edit] Using Dirac

[edit] Which container formats do you recommend?

The goal is to offer Dirac support for a range of container formats. As part of this project we have already defined mappings for the Ogg and MPEG TS container formats. Check our developer page for details on those.

[edit] What audio codec should I use with Dirac?

If you want a good high quality audio format that is available under royalty free terms like Dirac is then we suggest you take a look at the Vorbis audio codec or FLAC lossless audio codec developed by Xiph.org

[edit] How do I play compressed video?

Dirac playback is now integrated into VLC and we are developing DirectShow filters. For full details see Main_Page#End_user_applications_that_support_Dirac_video.

There are also software decoders - see the SourceForge and Schrödinger web sites.

[edit] How do I code video?

There are several ways, using gstreamer, ffmpeg or command line tools: see Main_Page#Using_the_Schroedinger_libraries

[edit] Dirac technology

[edit] How does it work?

See the algorithm documentation.

[edit] 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.

[edit] Do the BBC have patents in Dirac?

No. We did have patent applications in train which included some of the techniques involved in Dirac, but we let those parts that related to Dirac lapse. If we had allowed them to continue, users of the Dirac code would still have been covered in perpetuity by the licence: by letting them lapse, the BBC has no IPR interest in any implementation of Dirac by anyone, based on the Dirac software or not.

[edit] Do you infringe any patents?

The short answer is that we don't know for certain, but we're pretty sure we don't.

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.

[edit] What will you do if you infringe 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 was relatively easy, even though this may mean issuing a new version of the specification.

Personal tools