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.

DM6446 jpeg decoder example

Other Parts Discussed in Thread: TIGER, OMAP3530

Is there an example of a DM6446 jpeg decoder demo or applet in the TI collateral somewhere?

I had found one for the DM355 in the /examples directory using the local HW decoder. If it is replaced with a remote jpegdec codec server, should that work on the DM6446?

I have loaded the jpegdec codec and attempted to build the codec server for it, but I am not quite sure about the calling application API. Its not working, but I am not quite sure if it should.

(I am on the MV5 SDK release using the DM6446 EVM hardware in this case)

 

 

 

  • Are you trying to build this to run on the ARM or DSP?  If you only want to run it on the ARM, you can use it as a local codec and do not need a server.

  • On the DSP.   We have gotten "fim"  to decode and show a jpeg image on the ARM (albeit on a later kernel level), but are trying to call the jpegdec remote server.

    I have a couple of variables in play here.

    • I am not 100% that I have built the remote codec server correctly. But I think I have.
      • There are numerous app notes and wiki pages on what seems to be an evolving method of building the codec servers, it is hard to tell which method should be used as the examples I have found often use the older depreciated methods
      • I HAVE been able to add a  mpeg3dec DSP codec to the dvsdk  "decode" demo and it runs fine, and I followed the same procedure to build the jpegdec codec and server, so I assume it is built correctly.
    • what I dont have is an arm-side example of an application that will call the jpegdec image decoder.
      • We had a previous application on the DM355 that caled its jpeg decoder fine
      • I have found a DM355 jpegdec example in ths sdk
      • I have found a CCS  test example buried in the jpegdec codec package itself
      • I have found a DMAI display example, but does not invoke a codec.
    • I(we) are not experienced davinci programmers. My programmer has developed embedded linux systems for many years, but the TI toolchain is a different, very complicated  beast. I am a hardware / assembly level  guy trying to brute force these demos.
    • We are also caught up in the API differences between the MV4 (2.6.10), MV5 (2.6.18), and GIT (2.6.31.rc7) kernels ... what we are using in this case is the MV5 2.6.18 DVSDK release

    The closest example I have to use as a starting point is the DM355 example  found in the dvsdk at ~/dvsdk_2_00_00_22/examples/dm6446/jpegdec>. 

    I have replaced its local jpegdec invocation with the remote jpegdec codec server and rebuilt with package=dm6446.  It compiles without error, and appears to run, but the codec server returns a decoded value of zero, so something is not being setup or called correctly.

    root@192.168.1.112:/test# ./jpegdec frida_720x480.jpg frida.yuv
    @0x000ac13d:[T:0x4001df50] jpegdec - main> jpegdec
    open engine:     decode
    @0x00199e06:[T:0x4001df50] jpegdec - Processing buffer 222546 bytes...
    @0x0019a011:[T:0x4001df50] jpegdec - image decoded: 0 x 0
    @0x001a040d:[T:0x4001df50] jpegdec - app done.
    root@192.168.1.112:/test#

    I was wondering if there was a better "starting point" than this DM355 example, and if the calling API btween the jpeg decoders allowed what I am trying to do to work without modifying other than the codec invocation. I looked at and compared the DSP jpegdec input parameters ... they looked compatible at first blush to the ones that were setup by the DM355 code.

     

     

  • Tiger Team said:
    • We are also caught up in the API differences between the MV4 (2.6.10), MV5 (2.6.18), and GIT (2.6.31.rc7) kernels ... what we are using in this case is the MV5 2.6.18 DVSDK release

     

    MV5 is the correct version you should be working wtih.  The Montavista tools were upgraded from MV4 to MV5 between DVSDK 1.30 and DVSDK2.0 releases.  For now, I would stay away from using the GIT kernel as it is still being updated. 

    Tiger Team said:

    I have replaced its local jpegdec invocation with the remote jpegdec codec server and rebuilt with package=dm6446.  It compiles without error, and appears to run, but the codec server returns a decoded value of zero, so something is not being setup or called correctly.

     

    Have you taken a look at the IUNIVERSAL example?  You don't actually need to create an IUNIVERSAL algorithm, but the two examples that come with it (random number generator and FIR filter) build for both ARM only and ARM+DSP devices.  Those examples can be downloaded here.  It may be helpful to examine the differences in building for ARM only and ARM+DSP devcies.  Specifically, the .cfg files in the "packages\ti\sdo\apps\fir\linux" directory.

    Also, have you tried running your application with DEBUG on?  i.e. root@192.168.1.112:/test# CE_DEBUG=2 ./jpegdec frida_720x480.jpg frida.yuv 
    That might provide some more insight into your problem.

  • sorry for the late response, I I do not get emails if something is updated .

    Thanks for the Debug trick.  I will try it. We have put the jpeg decoder aside for a BRIEF (I hope) moment to get the basic video demo working on our target DM6446 board. Hopefully I will be back on this thread in a day or two.

    I was looking for an example of how to actually setup the argument parmeters for the image jpegdec codec . I am assuming that it is just like the DM355 example, just built with a remote server.

     

     

     

  • Tiger Team,

    The DMAI samples applications provided with the support all the Video/Imaging/Speech/Audio codecs provided by TI. Therefore you can use on of these apps, the image_decode_io1 to test the JPEG decoder.

    Here is what you need to do:

    • Create a server that includes the jpeg decoder
    • Update in dvsdk_2_00_00_22/Rules.mak the CODEC_INSTALL_DIR to point to the new server
    • Go to the folder dvsdk_2_00_00_22/dmai_1_20_00_06/packages/ti/sdo/dmai/apps/image_decode_io1/linux
    • You will notice that there is no config file for the dm6446 platform. The DMAI User's Guide provides the main steps to create a config file for a new platform. Here they are:
      • Create new config file by copying the image_decode_io1_omap3530.cfg and renaming it image_decode_io1_dm6446.cfg
      • Update in the image_decode_io1_dm6446.cfg the name and location of the new server.
      • Go to the apps/image_decode_io1 folder and build the application for the dm6446 platform (make clean, make dm6446_al)
    • The executable is provided in the image_decode_io1/ folder
    • copy the executable and the server to the target and run it

    Could you please provide us with more details about the issues you have had creating the new jpeg decoder server? We wil use your feedback to improve the wiki information

    Thanks

    Cesar