Results 1 to 13 of 13

Thread: Open source OpenCL jpeg 2000 library

  1. #1
    Member
    Join Date
    May 2014
    Location
    Canada
    Posts
    136
    Thanks
    61
    Thanked 21 Times in 12 Posts

    Open source OpenCL jpeg 2000 library

    Hello List,

    I am developing an open source OpenCL jpeg 2000 library.

    https://github.com/OpenCodec/ThousandthChicken

    Its named after Seymour Cray's famousline:


    "If you were plowing a field, which would you rather use: Two strong oxen or 1024 chickens?"

    Currently I am focusing on decoding.
    If anyone is interested in helping out, please let me know.

    Thanks,
    Aaron



  2. #2
    Member
    Join Date
    Jun 2009
    Location
    Kraków, Poland
    Posts
    1,468
    Thanks
    26
    Thanked 118 Times in 93 Posts
    Some files looks like they're written in CUDA, not OpenCL.

    Do you have some benchmarks? Do you have some sample decoded images to compare with reference decoders?

  3. #3
    Member
    Join Date
    May 2014
    Location
    Canada
    Posts
    136
    Thanks
    61
    Thanked 21 Times in 12 Posts
    Test

  4. #4
    Member
    Join Date
    May 2014
    Location
    Canada
    Posts
    136
    Thanks
    61
    Thanked 21 Times in 12 Posts
    Hi Piotr,
    Yes, this is a port of a CUDA library, and there is still some unconverted CUDA code.
    I have not managed to encode or decode any images yet, so no benchmarks or comparisons.

    I am hoping to interest some hackers in helping with the coding. If I just do it myself, it should take another 3 months
    before I have a working decoder.

    Aaron

  5. #5
    Member
    Join Date
    Sep 2007
    Location
    Denmark
    Posts
    854
    Thanks
    45
    Thanked 104 Times in 82 Posts
    What I'm curious about is quality. It seems that a lot of cuda/opencl implementations of lossy compressions, gets a even more lossy at same output size.
    If quality/size cant keep up, the speed advantage is not really important (well to me at least).

  6. #6
    Member
    Join Date
    Jun 2009
    Location
    Kraków, Poland
    Posts
    1,468
    Thanks
    26
    Thanked 118 Times in 93 Posts
    3 months is not that much. There're very few people that can program in OpenCL or CUDA and are free to volunteer so probably you'll finish your project before someone volunteers.

    I have some little OpenCL experience but I'm busy with my SortingAlgorithmsBenchmark.

  7. #7
    Member
    Join Date
    May 2014
    Location
    Canada
    Posts
    136
    Thanks
    61
    Thanked 21 Times in 12 Posts
    @Sven: I am not sure I understand. The algorithm should be the same, whether on gpu or cpu.

  8. #8
    Member
    Join Date
    May 2014
    Location
    Canada
    Posts
    136
    Thanks
    61
    Thanked 21 Times in 12 Posts
    @Piotr You're right. But, I've been hacking on this project for 3 months now, so the foundation gpu code has been built already. Right now, it is mostly
    getting the j2k algorithm correct. And OpenCL is just C99 with a few extensions, so it is not that difficult to learn. Once the codec is correct,
    the really hard part is optimizing it for a particular platform.

  9. #9
    Member
    Join Date
    May 2014
    Location
    Canada
    Posts
    136
    Thanks
    61
    Thanked 21 Times in 12 Posts
    By the way, Piotr, I would like to create an open benchmark for different j2k codecs when I am done.
    Nothing like this exists at the moment, so it is hard to tell which codecs provide the best performance and quality.

  10. #10
    Member
    Join Date
    Sep 2007
    Location
    Denmark
    Posts
    854
    Thanks
    45
    Thanked 104 Times in 82 Posts
    some info on jp2k encoders benchmarks here
    http://compression.ru/video/codec_co...arison_en.html
    Seems like the acdsee and lurawave deals the best in psnr values.

  11. #11
    Member
    Join Date
    May 2014
    Location
    Canada
    Posts
    136
    Thanks
    61
    Thanked 21 Times in 12 Posts
    Thanks, Sven. Very interesting. Their test images will be useful.
    It would be interesting to extend the test to cover larger images such as 4K digital cinema frames.

  12. #12
    Member
    Join Date
    Nov 2013
    Location
    US
    Posts
    131
    Thanks
    31
    Thanked 29 Times in 19 Posts
    Quote Originally Posted by boxerab View Post
    Yes, this is a port of a CUDA library, and there is still some unconverted CUDA code.
    Is there any new part, or is this project only to convert an existing CUDA library into OpenCL?

  13. #13
    Member
    Join Date
    May 2014
    Location
    Canada
    Posts
    136
    Thanks
    61
    Thanked 21 Times in 12 Posts
    @cade - first step is to convert existing CUDA library and get correct encode/decode. Then, next step is to optimize for various platforms such as Intel and AMD (nVidia has terrible OpenCL drivers, for obvious reasons, so can't target them unfortunately). I would like to see if I can encode 4k DCP in real time on inexpensive hardware.

    Then, I will experiment with different ideas being proposed in papers for parallelizing some of the pieces of the j2k algorithm. For example, papers by Jiri Matela.

Similar Threads

  1. Why not open source?
    By nemequ in forum Data Compression
    Replies: 65
    Last Post: 25th November 2013, 23:05
  2. MCM open source
    By Mat Chartier in forum Data Compression
    Replies: 12
    Last Post: 29th August 2013, 20:22
  3. Fast, portable, open source LZH?
    By m^2 in forum Data Compression
    Replies: 25
    Last Post: 24th March 2012, 16:00
  4. Open source JPEG compressors
    By inikep in forum Data Compression
    Replies: 8
    Last Post: 22nd October 2011, 00:16
  5. New fast open-source paq-based jpeg compressor
    By Bulat Ziganshin in forum Forum Archive
    Replies: 14
    Last Post: 13th September 2007, 13:57

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •