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 )”
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?
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: