Maximum Datarate | JPEG_Encoder_Gray

  • Hi there,


    I am currently thinking about a recording application for a CXP grabber which converts the input image directly into JPEG.


    Using a CXP-Grabber datarates will be quite high so I thing the throughput will be challenging. According to the documentation I should be able to achieve approx. 300 MB / s on a Marathon VCX-QP using one JPEG-Encoder_Gray operator.


    My idea would be to split the data stream and use a second or third operator to maximize this boundary to 600 or 900 MB / s. Please see a first draft attached (untested of course =) ). Is there a better option and what do you think would be the maximum possible badwidth?


    I just noticed that the better way probably would be to split the image stream after the ImageBuffer_JPEG_Gray and not before. This would probably safe me a bunch of resources.


    However, what do you think? :)


    best regards,

    Theo

  • Hi Theo,


    we have a pretty elegant solution using restart markers within the JPEG stream to separate it to multiple operators. We can get up to 6 JPEG encoders in a design which results in a datarate of 6 * 300MB/s = 1800 MB/s on a mE5-MA-VCX-QP.


    The design is quite tricky but I am sure you'll understand. We'll send you a VA design and SDK example. Please give us some days to finish it.


    Johannes


    Johannes Trein
    Group Leader R&D
    frame grabber

    Basler AG



  • Hi Theo,

    I have add you a pre-Version of the example for multi Encoder usage in VA. Currently there is a VA-File for

    1. CL Full Gray with 4 encoders

    2. CL Full Bayer with 6 encoders

    3. CXP Gray using 4 encoders

    I still didn't finish the CXP Color with 6 encoders(the design didn't fit) I still hope I can find a solution to get it squized in somehow. Anyway, in the Example.zip you will find the VA Files and the modified JpegCreator.h/C++ project.

    I was limited with the upload for the jpeg-lib. You will need that one as well(it is included in the old example).


    I hope that will help you get a starting point.


    this is the Example:Example.zip


    PS: I will add the docu and missing parts as soon as I find a way to get it small enough ;)

    best regards,

    Björn