Thursday, 20 March 2008

Google Summer of Code 2008

Dirac and Schrodinger are participating jointly this year in the Google Summer of Code. There is a list of suggested projects here, but if you have other ideas please suggest them. Dave Schleed and I hang out on #dirac on irc, so chat to ds or tj_davies there for more info.

The projects are mostly around making Schro as good and as ubiquitous as possible. My personal interest is mainly around improving the encoding side, since although Schro lags a little behind the Dirac reference implementation it's certainly capable of being much better because it already incorporates a great deal of look-ahead and pre-analysis.

Monday, 10 March 2008

Jon's yuvtools

I just thought I should mention yuvtools. This is an image viewer and videoplayer written by Jon Rosser for doing video processing development properly. So it allows you to look at lots of different picture formats, specifying exactly what colour space you want to use. You can inspect the video pixel by pixel if necessary, and the player won't do any unknown transformations or interpolations. The video player will lock to the GPU frame rate, and won't invent pictures or drop them arbitrarily.

The videoplayer also now has support for direct decoding of Dirac video using a wrapper library for the Dirac or Schro decoders. The wrapper will be out in the next Dirac release in a couple of weeks time. There isn't a release of yuvtools at the moment, just the cvs repository - I suppose there will be one at the same time as the Dirac release. If you're doing any video processing development, check it out when it comes out.

Schrodinger 1.0

So we've finally made it! The Schrodinger project has reached version 1.0 and we now have a high performance, compliant solution for Dirac encoding and decoding. The Schro team have produced a press release to mark the event.

Dave Schleef has been working really hard on this for a long time, so many congratulations to him for getting to this point.

We're now working on transport stream wrappings for the Dirac format and ffmpeg plugins for both the Dirac and Schro software. What I _hope_ to do over the next few months is to port across many of the compression algorithm ideas used in Dirac encoding (and some new ones) into the fast Schro encoder to improve its compression performance. Schro has a much more flexible architecture and we should be able to get much better compression in the long-term than with the Dirac codebase, which should eventually die.

We also want to look at more GPU acceleration, especially in the encoder (where we could have lots of GPUs if we liked), building on the work Wladamir van der Laan has been doing on the decoder.

Thanks again to Dave, and to everyone who's contributing to turning Dirac into a practical reality.

Tuesday, 12 February 2008

VC-2 progress

We recently had the first round of voting within SMPTE for the standardisation of Dirac Intra coding as VC-2. For those well-versed in the minutiae of standards processes, this was for elevating the VC-2 draft from CD (Committee Draft) to FCD (Final Committee Draft) status.

Things went pretty well: the core spec went through with no votes against, and so will be adopted as FCD when the comments are addressed. We also put in a conformance document which describes the reference software we've written, the test bit streams and the procedures for developers to use them to establish conformance of their implementations. There was a strong majority in favour, but two votes against this time. We need to address the No votes to take this forward to FCD, so this document needs a bit more work, although we think we understand the issues.

Far more importantly, I now have this on my desk. It's very shiny. I think I'm going to have a bit of fun getting the colours to look reasonable, though ...

Tuesday, 29 January 2008

BBC Festival of Technology

We had our Festival of Technology last week, where BBC Research and Innovation showed off some of the things that we've been doing over the last year. Dirac was there of course, showing some of our professional HW and 1920x1080 HDTV at 8Mb/s. But a big part of what we were showing came from the Virtual Production team: surround video, the iView system for virtual camera angles and a really neat image stabilisation tool for extracting a stable video image from tiny body-mounted cameras.

We've all seen these things on undercover reporter programs: cameras hidden in lapels or bags. Well, the quality is generally pretty awful as soon as the camera is moved. What the VP team have done is put a fish-eye lens on the camera and use real-time global motion compensation to stabilise it. Then you can pick a rectangular area to display and undo the geometric distortion. All this done in OpenGL on the graphics board in real time. Something that wouldn't have been possible a couple of years ago without some very powerful specialist hardware, done cheaply and easily to produce a great tool for TV.

Given sufficient resolution, maybe in a few years we won't even be using standard lenses in sports coverage : everything will be fish-eye lenses with virtual cameras cut out in the production gallery.

Monday, 21 January 2008

On the road to a Dirac standard ... at last

Ok, so I know that people think that Dirac disappeared into a black hole some while ago but we're still hanging in there and getting it done. We're just coming up to some really major milestones and things are looking really exciting.

First, Dirac (or part of it) is going to be an international standard. Yay! We made a cut-down version doing intra coding only and this has only just been submitted to the SMPTE. If it goes through it will become VC-2 (Windows Media 9 became VC-1 when they standardised it). After a lot of hard work fighting SMPTE's preferred Word format (yuk) it went in just before Christmas and is being voted on as a Committee Draft as I write this.

At the same time we've been updating the full spec and that's been published today. Version 1.0 covers the professional VC-2 stuff, whilst version 2.0 covers the whole system. If VC-2 is well-received we'll propose an extension so that it covers the whole of Dirac. Then at last there'll be a royalty-free video compression standard ...

There'll be a new release (0.9) of the Dirac reference software in the next couple of days to comply with the spec. The compression performance of the reference encoder keeps improving and we'll carry on adding tools in later spec versions (3.0 etc) so that it stays as competitive as possible.

The second really exciting thing is that Dave Schleef has been going great guns on the Schrodinger (NB the code is no longer in SVN - it's available from git clone git: //diracvideo. schleef. org/git/schroedinger.git) high-speed implementation of Dirac. This really is very fast and Wladimir van der Laan is doing great things to make it even faster with a CUDA implementation some of which Dave is merging in. Dave is getting really close to a 1.0 release that will be fast enough for realistic use for encoding and decoding.

The third thing is that our hardware partner Numedia have produced some Dirac hardware using the low-delay syntax. This isn't the stuff of streaming video but it allows the BBC and other broadcasters to re-use all our SD infrastructure to carry HDTV transparently, with almost no delay (so no audio sync cock-ups in production).

So it's been a long haul (the first software was released in 2004, although it feels like a decade ago) but we're getting there.

Thomas