Video decoding of streaming JPEG 2000 ( MP2 ) ? Is CUDA appropriate processing for streaming video d

I am investigating CUDA as a coprocessor technology to implement video decoding of streaming Motion JPEG 2000 (MJ2).

I am interested in feedback on whether CUDA is appropriate for this sort of application and if it is worth further investigation? ( I have never used CUDA and never implemented a streaming video decoder. )

Thanks in advance,

-Ed

PS. The “( MP2 )” in the topic title was a mistake but could not edit once posted. It should have been Motion JPEG 2000 “( MJ2 )”

In short, yes, but it’s hard to do the entropy decompression part in parallel.

These guys did a partial JPEG2K implementation on the GPU a while ago:
[url=“Discrete Wavelet Transform on GPU”]http://www.cse.cuhk.edu.hk/~ttwong/demo/dwtgpu/dwtgpu.html[/url]

Hi Simon,

Thank you very much for your reply and link.

I am trying to get a feel for the kind of processing power required to decode and display a JPEG2K video stream in real time. Would you expect doing software decoding of streaming JPEG2K to be achievable on a dual core Intel chip? Or is CUDA, a DSP, or FPGA a more realistic approach?

Thanks again,

-Ed

Obviously the question is… at what resolution?

Unfortunately, if you did specify resolution, I couldn’t find any benchmarks to give you an answer. But it looks like there’s a branch of ffmpeg that supports mj2. Search for it and play around. I think it is impossible that it will be able to decode HD cinema-quality video, if it uses only the CPU.

I did implement another wavelet based codec, Dirac, using CUDA, and this gave a very nice speed-up. It’s certainly possible and you can probably re-use the wavelet stuff… The source code should be included with the Schrodinger distribution:

[url=“http://diracvideo.org/”]http://diracvideo.org/[/url]