Dirac news

I haven’t written about the Dirac project recently.  We’ve reorganized a bit recently: most information is on diracvideo.org now, “Dirac” is now used to describe the overall project, with various subprojects like Schrödinger, dirac-research (formerly the Dirac codebase, intermingled with the specification), and a bunch others.  I’m finding that a lot of my time recently is cat herding all the subprojects and creating a coherent whole.

One such subproject is Bart Wiegmans’ GSoC project to implement Dirac in Java and get it working in Cortado.  It’s moving along quite nicely, and has reached the feel-good milestone of creating a pretty picture.  Right now, it only handles a very limited set of bitstreams — intra pictures only, variable length coding, and a specific choice of wavelet filter.  I think Bart has fixed a bug related to chroma handling since the time I created this screenshot, which is why it’s in greyscale.

Schro Java Screenshot

Another subproject, and another GSoC project, is Mattias Bolte’s OpenGL decoding backend for Schrödinger.  This is roughly similar to the existing CUDA backend, although hopefully will work on a wider range of hardware.  He’s uncovering a number of resource usage issues in Schrödinger, such as the decoder using up to half a GB of RAM for temporary storage in some cases.   Alas, my hardware does not handle GLSL, so there will be no screenshots here.  The scope of the current project will require the use of GLSL, since serious signal processing is beyond clever texture hacks.

On a related note, progress is being made in gst-plugins-gl, the GStreamer OpenGL plugins.  Julien Isorce has done some amazing infrastructure work expanding on my original gst-plugins-gl code, which was really just an experiment.  At some point, the schrodec GStreamer element will decode directly in hardware using OpenGL, and then deliver the pictures as textures to downstream GStreamer elements, which will render it directly to the display.  Fillipo Argolias has been writing some cool GStreamer video filters that use OpenGL, but on a different branch than Julien’s work.  (My current task is merging these branches.) These filters will be used for Cheese.

Maarten Lankhorst has been working on a DirectShow filter for encoding/decoding Dirac streams based on Schrödinger.  It currently only works with Dirac inside Ogg, and is nearing the point where it is useful for people to use.  We’ll be doing a testing release sometime soon.

I have been working on a QuickTime component in whatever time I’ve had remaining after trying to keep up with everyone else’s work.  It works only with the QuickTime container, but it encodes and decodes pretty consistently with the Apple tools.  It’s pretty much ready for a testing release as well; just need the time to get it out the door.

Update: A screenie of Julien’s glfiltercube example (on a Mac, FTW):

gst-plugins-gl screenshot

10 Responses to “Dirac news”

  1. Frank Says:

    In one word: Awesome!

    Thanks,
    Frank

  2. dré Says:

    some nice projects! direct links would’ve been cool though…

  3. fraggle Says:

    Dirac is a BBC project, right? Surely you should be showing Test Card F.

  4. Joseph Says:

    I’m with those calling “awesome”.

    Looking forward to a very worthy Free format.

  5. Chaz6 Says:

    Bring back Test Card F!

    I would really like to see a directshow filter capable of encoding and decoding raw Dirac streams.

    I am curious as to why OGM was chosen as the container format over Matroska, since OGM was based on a hack and Matroska was designed from the ground up.

  6. windlass Says:

    Hi there,

    I’ve been researching Dirac / Schroedinger today; I’m weirdly obsessed with the idea of using Dirac for my intermediate codec in FCP. In the last hour or so I’ve been running some tests with my Canon HV30 and JES Deinterlacer, doing simple comparisons between ProRes 422 and Dirac. I’m happy to say that Dirac (thanks to your SchroQT plugin) is having a laugh at ProRes. However, as you mentioned on the Dirac Wiki, playback is a significant problem and makes the codec impossible to work with at the moment. A smattering of my results are here: http://blog.windlassfilms.com/

    I can’t wait to see it in action!

  7. Recent URLs tagged Cheese - Urlrecorder Says:

    […] recorded first by mcommercial on 2008-07-27→ David Schleef: Dirac news […]

  8. Caroliano Says:

    It is not OGM. OGM was a hack to permit any VFW codecs in ogg. Dirac and Theora use their own especification to be correctly embebed in ogg.

    Still, I preffer matroska. AFAIK, much lower overhead, more formats suported (especialy important for subtitles), etc. It is too much to list.

    Looking foward to something easily testable in windows.

  9. Filippo Argiolas - Final SoC Report - screencasts, screencasts.. screencasts! Says:

    […] for a while but, needless to say I don’t like blogging :P, I was really busy with the merge. Julien Isorce, another gstreamer developer, was working on his own branch of gstreamer-gl since […]

  10. pup Says:

    now that we have a somewhat working dirac 1 release, is anyone actively working to refactor it to optimise for SIMD (SSE, AltiVec…) use to get FAR more speed out of it from generic CPUs untapped capabilitys?

    the theoretical benefit of vectorization is huge: with SSE, computations of floats can become 4x faster, and more in certain cases.

    Altivec PPC speeds being even far greater even that for a given Mhz if the freevec benchmarks are anything close to general improvements, take a look, very impressive.

    LibFreeVec PPC/Altivec
    http://www.freevec.org/

    Eigen2
    http://bjacob.livejournal.com/6600.html