This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

JPEG encoding on the c6a816x

Hi,

We are currently evaluating the C6 Integra platform for suitability for our GigEVision camera application. For this application we are capturing images of 1280x1024 @ 10 FPS through gigabit ethernet and encoding these images to JPEG.

Capturing the data is no problem but for the encoding part using libjpeg8 I am only getting about 3,5 FPS on the ARM CPU. I am assuming this library does not take advantage of the NEON instruction set but even with a 2x speedup we would still be too slow.

I know the Integra has a DSP that should be capable to handle JPEG encoding but I could not find any example for JPEG encoding in the EZSDK. There are a number of DSP related directories in the EZSDK but I could not find an example handling JPEG encoding or decoding.

Is there any example application that shows the C6 Integra doing JPEG encoding that I can use as a starting point for benchmarking and porting our libjpeg based application? Let me point out that we have experience with C/C++ and Linux but we do not have any experience using a DSP.

Thanks in advance,

Henk-Jan

  • Hello,

    if you really don't want to go near the DSP have a look in the c64plus-imglib_2_02_00_00 folder in the EZSDK. You would have to port libjpeg to use this interface with the DSP but it would certainly speed things up.

    Ralph

  • You need to use Codec Engine to run the JPEG Encoder on the DSP.  The codec may be available from TI, but unfortunately the tools required to build a DSP Server are not yet supported by the C6a8168.  There are a couple of wizards in CCS to implement this, but at the moment the Server Wizard will not develop code for the c6a816x platform.  You'll need to bug TI to get them to add the required functionality.

    Lee Holeva

  • I got the impression that genserver will be in the next version of the EZSDK.

    As for pure-DSP JPEG encode/decode, I know that the old Davinci series had binary JPEG encoder/decoders supplied for use with the Davinci chip (and its associated HDVICPs, though not sure if the codecs used them) so fingers crossed that there is an OpenMax framework for JPEG stuff in the next EZSDK (this may only be for Davinci though).

    Ralph

  • Yes, as I understand it, the next EZSDK will have a new enough Codec Engine release with a functional GenServer.

    A few things about your post that set off some flags of concern...

    • The EZSDK requires ELF-formatted binaries on the DSP (not compatible with the COFF formatted libraries used on the older DM644x-like devices).  I don't know if there are ELF JPEG codecs, but it should be something you can ask around for - maybe on the Multimedia Codec forum(?).  While SysLink does provide a COFF loader, it's not supported on the TI81XX devices.  (Might work for you... but again, it's not supported/tested).
    • Per this ELF-only support, GenServer also only supports creating ELF Servers for TI81XX devices.
    • I wouldn't assume there's an OpenMax framework for JPEG.  I don't know, but my hunch is that it _won't_ be there.

    Chris

  • Hi,

        I was able to integrate the JPEG codec and get the Jpeg encoder working on the IVAHD subsystem (M3) through openMax. You can check:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/218538/983344.aspx#983344

    -DavidSoto