Dirac: BBC Open Source Video Codec
NickFitz writes "Need To Know this week has a piece about Dirac, a BBC R&D project to produce a video codec, which has been released as an Open Source project. From BBCi: 'Dirac is a general-purpose video codec aimed at resolutions from QCIF (180x144) to HDTV (1920x1080) progressive or interlaced... Our algorithm seems to give a two-fold reduction in bit rate over MPEG-2 for high definition video (e.g. 1920x1080 pixels), its original target application. It has been further developed to optimise it for internet streaming resolutions.'"
The great thing about them is that there are so many to choose from and support.
BBC Open Source Video Codec
Finally a codec to convert all the dry witty intelligent British TV humor over to bland cliche' stale American TV humor!
Seems like a bit of a waste of license payers money when there already a several open source video codecs (eg. Ogg Theora, 3ivx). What does this offer that those don't?
That seems to answer your question, even without reading the article.
Thank you. Drive through.
Because it's open source and being developed/supported by one of the bigger distibuters of video content on the web!
right now I have good quality with 3vix but it is 1 gig.
if this can get me to 700 MBs at the same quality (about 85 in the 3vix) that would rock!!!
I am the Alpha and the Omega-3
True... just give me one free and powerful codec and I'll be happy... Can't we just have a standard here?
After 3 days without programming, life becomes meaningless
- The Tao of Programming
Hopefully the BBC will use this instead of RAM, silly real player!
I spent ages trying to think of sig, but never did
Could this be related to the archive of video content they are purported to be setting up? Seems like a very unnessecary step to accomplish that, unless they have some sort of conflict with the legalaties of other codecs out there...
Their documentaries are so interesting that I often choose to watch them over other movies or shows I may have on my computer. Bravo BBC.
Buy Steampunk Clothing Online!
Yes, why would anyone need a new, free high quality codec that is backed by a huge media company? Why not use one of the patented, commercial codecs that Microsoft or Real.com want us to use?
I would be a bit wary of a codec that claims to be all things to all people, ie supporting broadcast-quality HDTV and internet-quality video
Video codecs typically have ``sweet-spots'' for resolution and bitrate. The MPEG specs work well for higher bitrate video, and we have several codecs that work well for lower bitrate video.
Also, MPEG video quality can vary from encoder to encoder. The specs only define the bitstream, and the encoder can do what it wants. This is why there is a huge difference between the quality that Media Cleaner produces versus a multi-chip hardware encoder found in a cable plant.
(S(SKK)(SKK))(S(SKK)(SKK))
Looks good, but why are all the male American comedy leads now in drag???
Why would they compare it to MPEG2? In order to impress me, you'll have to compare quality and bitrates with MPEG4.
...
Check out k-litecodecpack.com.
Because this CODEC uses WAVELETS and Wavelet theory is probably one of the most useful tools for working with time varying signals that has been developed. It is especially useful in high quality compression algorithms. Here is a decent background article on Wavelets.
"I went on a diet, swore off drinking and heavy eating. And in fourteen days, I had lost exactly two weeks. Joe E. Lewis
Who modded this pile of crap as informative?
From the Xvid FAQ
What is XviD? XviD is an ISO MPEG-4 compliant video codec. It's no product, it's an open source project which is developed and maintained by lots of people from all over the world.
And don't get me started on all the other crap, audio? FFS, it's a video codec! You have to include audio an either mp3/ogg/wav/whathaveyou into the stream.
Even more impressive than the codec itself, in my opinion, is that they managed to develop a new video codec without infringing any patents! And given that it's the BBC, I assume they could go to court to defend themselves in prior art.
:-)
Very cool. But then all the engineers in their R&D dept. are apparently very anti software patents, and have been doing their bit writing letters to that effect
I went to a day at the Research and Development facility with the BBC, and saw a demonstration of Dirac.
It does look quite impressive, and for those who are interested, I believe it works on wavelet theory. Lots of information on this is provided at http://www.wavelet.org/ but I believe its scalable frequency analysis enables significantly better compression than other codecs (typically DCT based?) out there.
I think.
This is total crap. Xvid can be interleaved with audio just fine and is enormously better than just a series of JPEGs.
The parent is completely full of crap.
Did you ever consider that they intend to use this for their plans to put their archives online?
The poster stated that "It has been further developed to optimise it for internet streaming resolutions" which is one way for such a thing to be distributed. Have a look here. The register states that "The BBC's new media director, Ashley Highfield, said that a P2P network will allow the BBC to handle the volume of traffic it expects when the Internet Media Player (IMP) goes live. The IMP will enable users to download or stream content to their PC, laptop or palmtop computer."
If this is the case then Aunty Beeb is well underway to providing the tools we will need for accessing their archives.
-- Enditallnow
Presumably 24 or 32 bits per pixel, like most video. (8 bits per channel color, 8 bits transparency (optional and normally unused)).
So:
1920x1080 = 2073600 pixels per frame * 24 bits/pixel = 49766400 bits per frame * 30 frames per second =
177.98 megabytes per second, uncompressed.
---
Mod me down, you fucking twits. Go ahead. I dare you.
(I read with sigs off.)
The source is licence-free, but it is not patent free. Pay MPEG LA or it's illegal. For you and every other individual out there that might not matter, but the BBC couldn't use it without paying.
Kjella
Live today, because you never know what tomorrow brings
US codecs incorrectly drop a vowel from colour, so a British codec is bound to look better.
How are they going to convince set-top manufacturers to support their codec or conglomerates to broadcast it? It's already been proven a hundred times over the superior and/or open rarely win out to their more profitable brethren. All the article states is there's a 'hint of a chance' of it being adopted by big media...
LilMikey.com... I'll stop doing it when you sto
Er, BBC != british government
It's on sourceforge, and is entirely open. Its licenses, as stated by sourceforge are: GNU General Public License (GPL), GNU Library or Lesser General Public License (LGPL), Mozilla Public License 1.1 (MPL 1.1), so you could hardly say it's 'owned' by the BBC, let alone the british government.
Cocodude
Seems like a bit of a waste of license payers money when there already a several open source video codecs (eg. Ogg Theora, 3ivx). What does this offer that those don't?
Does the current work being done on Linux seem like a waste of time and money, when there are already several other operating systems (Windows, Macintosh, Unix) available? And don't try and use the argument "but those are closed source; open source is better!" argument -- in the end, it's just software people use, regardless of the licensing / development model.
Getting back on-topic: apparently it offers the BBC something that warrants the time, effort and money required to fund such an undertaking. At the very least, it's yet another example of big companies using open-source to reduce costs and/or fulfill their own specific needs, and can only encourage other companies to fund future OSS development efforts.
This is really wonderful news. The BBC is sharing its work with the Open Source community - and most of the British Open Source community are BBC TV licence payers.
I am glad that the BBC has recognised the need for this codec to be Open Source. It means that everyone, not just those beholden to private corporations, will get the chance to experience BBC content. The BBC is also a highly influential body; I would be surprised if other European content providers did not display an interest in this. PAL was a joint development between the BBC and its German counterpart; SUSE is German.
This is going to be one to watch.
Je fume. Tu fumes. Nous fûmes!
hey man
we were commissioned to be in charge of video archiving for our university and couldn't decide which codec to use to archive the student films and such for our school, let alone what software to use.
I heard some stuff about xvid, divx, etc, and based on a bit of word of mouth, thought about giving xvid a try. I read your post. I honestly can't believe I was actually about to use xvid for the job. thank god i came across this page. The part that influenced the decision mostly was the +1 informative moderation backing up your facts.
later man
What do companies do when they have products which, though not being best of breed, require huge and increasingly unjustifiable Research and Development funds? They go Open Source! (no, I am not naming names... sap db netscape interbase ...
Well, I suppose we could use Microsoft's Windows MediGeneral Protection Fault: Access Violation 0xc0000005 in WMPLAYER.EXE, Rebooting Now ...
Bah, stupid Windows, let's try Real Player inst[BUFFERING......]ead, I hear it's mu[BUFFERING.........]ch better than it used to b[BUFFERING.........]e!
I confess to not knowing that much about this topic, but I still don't think you can say the codec is owned by the government. Even if it was, it doesn't really matter being GPLed etc.
Although it's not an authoritative source, I refer you to this article on Google Groups which states, amongst other things, that "The BBC is run under a Royal Charter, not by the government" and "But it was part of the Government to start with, yes? The BBC was not, and has never been, and will never been part of the British Government."
I mean all the BBC's services in general. I think I know the answer in assuming that the British people pay for it in tax and TV license fees. That's something I'm grateful for as a New Zealander living in the US. The BBC is a refreshing change to the somewhat mind numbing American news sources.
/. I definitely want on of those beside my bed when it becomes available. It seems like its the ideal thing for BBC listeners. I wonder if its availbility will significantly increase the load on their servers, all costing real money of course.
My real question to Brits here is: How well is this burden accepted by the British people? Are the BBC TV and radio stations in the UK really non-commercial? I know the US government gives money to PBS and NPR but I don't know how it compares (especially per capita) to what the British government must spend on the BBC. It must cost a fortune and they are effectively supplying (IMHO) a good quality product for free to the rest of the world via internet and shortwave. I imagine some of the international motivation of the BBC stems back to the days of the old empire. It almost seems too good to be true.
I assume that NPR and others like it around the world pay to carry the program. Maybe that earns a lot.
This question came up in my mind the other day when the wi-fi radio was mentoned here on
That's interesting. When I visited the R and D centre, they said that WMP streaming had a royalty model which they didn't like. They prefered Real's and gave no hint that they'll be doing WMP soon, but rather concentrate on Dirac. This is of course in an informal demonstration/chat, not official information.
Wavelet and DCT based codecs are alike in that they both quantize in the frequency domain and thus tend to have blurring and ringing artifacts. However, wavelet ringing looks more evenly spread-out than DCT ringing and doesn't coincide with a regular 8x8 pixel grid. Compare JPEG and JPEG2000 artifacts.
Since the BBC is the media-organ branch of the British government, this means government-owned codecs. Is this a good thing?
Unlike some of the stateside media organisations the BBC is actually one of the world's most impartial media organisations. I'm not saying they are perfect but some US news bulletins I cann't watch without laughing.
I know that the BBC is somewhat of an enigma in broadcasting compared to what we're used to in North America (although some would argue networks like PBS and the Canadian Broadcasting Corporation are somewhat similar)....but I can't help think how utterly cool it is the BBC does this sort of thing. Progressive (no pun intended) stuff like putting their achives online is also really damn cool...not to mention the fact they have *gobs* of content that a traditional broadcaster wouldn't have (I've been taking Welsh language lessons courtesy of the BBC!).
-psy
Except that 1920x1080 is 1080i, or interlaced, where they only send half the lines each frame, so the uncompressed bitrate is half of what you calculated, or around 90 megabytes per second
Let's say you compare
a) 640x360 vid at 1x bandwidth
b) 640x360 vid at 9x bandwidth
c) 1920x1080 vid at 9x bandwidth
a) and c), MPEG4 will win. b) will be much much closer. What you define as "low" bitrates really depends on resolution. The dual-layer DVDs coming now should be able to do full HDTV resolution with somewhat better quality than a 1CD DVDrip. Since 2CD rips typically use 3-400mb on AC3 track, actually not that far away from 2CD rip. But something like 8-10Mbit (aren't they usually 1Mbit today?) is hardly a low-bitrate stream in my opinion...
Kjella
Live today, because you never know what tomorrow brings
I was fortunate enough to speak to a BBC employee about the codec at the Linux User & Developer Expo in London.
For one, MXF and AFF are two wrappers for convential video codecs, which add invaluable meta data to the file.
Dirac stands out as being a unique codec as it concentrates wavlets, motion compensation and arithmetic coding. This is not your standard codec.
D'oh! Except you were working with 30fps instead of 60, so you took that into account. Sorry. My bad.
By removing the superfluous "U" from "colour" and other words, American English has acheived a higher compression ratio than British English.
mbbac
They also said that while they had no objection to paying licensing fee's per se, and that they did pay MS and Real, these were so inflexible in their licencing that scaling up operations was problematic. Their expressed hope was that with such a codec widely adopted they could massively scale up operations such as streaming without being crippled with licencing costs, or having the administrative burden of unwieldy licensing schemes.
-he who laughs last, is a bit slow.
journal
Do you have any information about how many Britons are languishing in prisons for not paying the license fee? I did not know it was that serious. As Amnesty International written a report on this?
Don't blame Durga. I voted for Centauri.
A matter of disclaimer: I've done some work on Dirac, for BBC, over the last several months. Here's a bit of background on Dirac:
By nature, Dirac has many similarities to existing algorithms such and MPEG-2 and H.264/AVC -- however, Dirac is an original invention that uses wavelet transforms, arithmetic encoding, rate-distortion optimization, variable block-size motion compensation, and hierarchical motion estimation in some new and unique ways. Again, this is a research project, so there's much experimentation to be done!
As a research project, Dirac continues to be analyzed, optimized, and documented. What you're seeing now is very preliminary code; I suspect it will improve and evolve dramatically in the coming months, both in terms of clarity and functionality. The goal is to produce a universal codec, which is one reason behind the open source move.
The codec source code is licensed under dual MPL/GPL licenses.
Dirac is modular, and thus well-suited to implementation with an object-oriented programming language. The reference engine is written in ISO Standard C++, and has been tested under various forms of 32- and 64-bit Linux, as well as under Windows 2000/XP.
I'll try to answer questions here, to the best of my ability.
All about me
We have a library named after him here at Florida State University. Is this the same guy?
Perhaps even more impressive than the improved bit rates is that the source code actually looks competently written and is small. It also seems to use C++ in a reasonable way: to achieve just around the right amount of abstraction, without building a useless, general framework.
You sir, have betrayed your ignorance and stupidity with your comment. Extensions do not a codec indicate. A .avi can use DivX, Xvid, Indeo, or any of another number of codecs. each of those codecs can also be used in a .ogm or a .mkv (and Xvid is NOT short for Xvideo, that's a completely different bit of technology related to X11) A .avi merely shows the format the audio/video is stored in. (eg: it's a container) A .ogm stores them a different way than a .avi (and .ogm/.mkv can handle more types of media than a .avi, multiple subtitles and audio streams that can be switched through during playback, depending on your media player) A Matroska (.mkv) file can even have DVD-style menus(although I'm not certain that the tools have been released for that yet, but the format is extendable and does support it)...
Many people, esp our american friends, many not be familar with the sheer scale of the BBC's operation. There is a lot of dressing applied to their funding but in essence almost every UK home pays a BBC tax, giving them vast cash funds and allowing them to take a 'long term' view to development.
This is very unpopular with their competition. People like Sky (NewsCorp) and ITV ('free' UK advert funded network tv) have no means of building the digital services the BBC have. Lets face it - both buy in a lot of programming from the US and that doesn't work well online.
At a recent LINX meeting (a meeting of all the major UK ISPs and many of the major european ISPs) where the BBC gave a presentation about their 'Summer of sports' coverage. They are predicting up to 12Gbps (yes Gigabits) leaving their network during the olympics. This is a huge undertaking and requires them to put Gbps direct connections into the major UK ISPs such as BT. Without private peering of this type the BBC couldn't cope, LINX couldn't cope, the target ISP couldn't cope, it'd be meltdown all round. Their presentation was aimed at heading off a potential doom of them DOSing a major ISP into the ground.
They're using Real at the moment. If they eventually move to an open codec the it will become a MAJOR player overnight. A national broadcaster using a codec to pump out Gigabits per second of content is the only case study/endorsement needed.
I've not spoken to the techs pushing this within the BBC but the feeling I have from whitepapers, presentations and rumour are:
- they need to be pragmatic. Its public money they're spending and the solution has to work. Currently the only solutions that work are propeirtary codecs.
- They are under attack from the competition, who want to cut off their r&d funding which they see as unfair.
- The intend to share their technology and want to grow the stability and performance through sharing things with their peers.
For BBC network info (and a boatload of mrtg goodness) visit the ever popular support pages
0daymeme.com: Great stuff.
The BBC is not a part of the government, nor is it owned by or controlled by the government. While the BBC World Service is funded by an annual grant-in-aid from the Foreign Office, they have no editorial control (and the World Service is financially seperate from the rest of the corporation). The BBC has no shareholders.
The BBC is legally a corporation established by Royal Charter and operates under strict rules of editorial independence and public service, which means that almost uniquely among broadcasters its job is to deliver programmes to audiences, rather than audience eyeballs to advertisers.
In order to receive television broadcasts in the UK it's necessary to have a television licence (see the Wireless Telegraphy Act 1949 for details - in the old days you needed a licence for a radio as well, but no more). This isn't a tax, and the BBC isn't funded out of general taxation - it's a simple deal that if you want to watch television, you need a TV licence. The money from the TV licence goes to the BBC. In addition, the BBC makes a lot of money from the sale of programmes overseas and from various other commercial enterprises (magazines, DVDs, whatever). This money goes back into the BBC - there aren't any shareholders to be paid, just more programmes to be made.
If you ask me, just under a tenner a month is a bargain for what it means - some of the best quality television in the world, a bunch of excellent radio stations and value-added stuff like news.bbc.co.uk. And what the TV licence means most of all is that all this stuff goes out without commercials and without commercial or political considerations. The BBC's editorial independence regularly lands it in hot water with governments who don't like it broadcasting certain things ("Maggie's Militant Tendency", the whole Hutton business). There's a lot of stuff which would never have appeared anywhere else as the BBC can actually take risks rather than just always following the path of maximum guaranteed commercial gain.
Having recently taken a trip to the USA and tried watching television there, I really started to appreciate just how important the BBC is. Bite-size chunks of advertiser-friendly blandovision split up into five minute segments interspersed with huge amounts of commercials don't seem to educate, entertain and inform very much.
Ultimately, nobody is forcing you to pay the television licence fee unless you have a television. If you don't want to have to get a licence, the choice to not own a television is available to you!
Thats incorrect - 1080i is sent at 60i, which means 60 interlaced frames per second. The frame rate is still 30, it just comes in 2 parts. So the 177 megabyte figure is correct.
Your post sums things up quite well. Because we all pay for it, they have a duty to make sure it's available to all.
And that duty's not just 'something they should do to be nice', it's the law -- the Royal Charter and Agreement which the BBC operates under makes this clear.
Incidentally, the BBC are pretty big Linux/F/OSS proponents. Their entire BBC Interactive digital service is run from Linux systems. There are some very clever folk at the Beeb, used to 'rolling their own' technologies. I'd imagine something like Linux is the perfect tool to do this kinda stuff with. They've got vast amounts of in-house software and hardware which they've developed over the best part of a century.
Anyone else remember the BBC Micro? They, and the Open University have to take quite a significant amount of credit for kick-starting interest in computing in the UK during the late 70's and early 80's.
Incidentally, the Open University, whose course materials BBC 2 broadcast nationally and for free, is a fantastic organisation. Like the BBC, it was founded by Royal Charter, and is another example of how something spawned by government need not be tethered to it. It's been a highly respected institution from which to graduate for decades. Here's some info
What's the frequency, Kenneth?
Don't forget that "Friends" US --> UK "Coupling".
Not really. Friends is about... well, friends,and Coupleing is about coupling. Yes, the format has obvious similarities, but the the characters are different, the type of humour is different, the relationships are all different.
There was a made-in-the-US version of "Red Dwarf"? Did not know that.
They tried twice. Two pilots. Actually, according to one of the writers the second pilot was great until the studios got their hands on it.
Here are two extremely successful UK to US sitcom adaptations:
I was not aware of those. I stand corrected. Perhaps it's just a recent thing that they've been oversanitising them, or something.
It's still in development.
In the end, they will be parallelised; I'm doing the analysis and design work right now. I'm a big believer in parallel code; just this week, AMD annouced that their dual-core Opterons will be drop-in replacements for current single-core Opterons. Parallel is the future.
Some of both. We're doing some profiling with different implementations to find out what works best. This is one joy of working on a research projects -- we can do research!
I don't know. The entropy encoding is lossless, but that's after quantisation which is lossy, I believe. Motion estimation/compensation is also lossy.
Not at this time.
I've done a lot of past work with data compression and wavelet analysis of photos, and Dirac has been a fascinating experience for me. My expertise is more on the optimisation/parallelisation/UI side of the coin; the theoretical work and algorithm design is the province of some very bright mathematicians and DSP experts at BBC.
All about me
This is known as lossy compression.
The BBC Broadband content is available to all ISPs that are peered with the BBC at LINX. The BBC are happy to peer so that they don't need to pay bandwidth charges. Complain to your ISP if they don't provide it. The URL is below.
http://www.bbc.co.uk/broadband/
Water looked alot better, still had some problems with key frames ghosting arround sharp edges the picture improved after a few deltas. It was pretty neat however sound is still a problem ogg is not high fi enough so they are going to license something.
James
Guys, as you may know we are busy building the world best 100% open source media player, called the Helix Player (https://player.helixcommunity.org). We welcome all open source codecs and formats, including Dirac.
Secondly, this summer we will be releasing the RealPlayer 10 for Linux, which is built on top the Helix Player and includes the non-open source components of MP3, MPEG4, Flash, and RealAudio and RealVideo.
Both the Helix Player and RealPlayer 10 have a Mozilla plug-in and are going to be a major no cost update for your current RealPlayer 8.
Kevin Foreman
One of the biggest differences between MPEG4 and MPEG2 codecs is the seek times - that's the time between keyframes or I-frames (same thing, different terms).
The typcial keyframe rate in MPEG4 stuff is around 8-10 seconds. In MPEG2 it tends to be around 2-5 ms, which is about as good as the eye gets, apparently. So, if you watch it from start to finish, that's fine - but if you want to do anything non-linear, MPEG2 gives a good win.
In terms of broadcasting, you need to add the seek time onto the total 'tune in to pictures' latency. Remember that this is applied everytime that you change channel, and it's pretty clear that 8-10 seconds is way too much.
Also, MPEG4 is a much more complex beast, with things like motion compensation much greater than MPEG2. This is where MPEG2 wins ove MPEG4. Consider a slowly panning camera, over a scene that changes slowly, with a foreground object - think left to right pan over a nature scene with birds and gentle breeze, with the presenter in the foreground. In the low bandwidth limit, MPEG4 will approximate this to a static background, and just move it. However, as the bandwidth improves, it uses this a baseline, and records deltas to it. In the high bandwidth limit, it can be seen that this is a lot more work than just recordsing the background as a much simpler object, rather than all the moving, and altering. Doing it the way that works at low bandidth is actually more expensive, then, for the high bandwidth situation. MPEG4 _can_ drop all that, and just to it the simple way (as MPEG2 would do), but doesn't have to.
There are many more, similar, examples. The short answear is that if you set the keyframe interval short, and give it lots of bandwidth, MPEG4 can be as good as MPEG2 - but can also be much worse (in terms of picture quality vs bandwidth, and CPU required). MPEG2 is a lot more dependable in this case. Plus, if you set the keyframe intervals to match, I have a sneaky feeling that MPEG2 will have a slight win here.
That's bullshit.
You do the exact same number of fetches, adds and stores. Just different coefficients and different strides. Your neighborhood of fetches will be about the same, so cache usage should be about similar.
Wavelets are slower mostly because people haven't had years to fiund all the clever tricks (SIMD instructions on various targets, DFT->FFT-like optimizations for popular wavelets)
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
The typcial keyframe rate in MPEG4 stuff is around 8-10 seconds. In MPEG2 it tends to be around 2-5 ms
Seeing as how one frame is 1/25 (0.04) or 1.001/30 (0.03) seconds depending on which part of the world you live in, 0.005 is just plain impossible. At least as far as DVDs go, MPEG2 keyframe intervals are usually 12-18 frames, which works out to 0.4-0.6 seconds for NTSC--still a lot less than MPEG4.