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.

DSPC 8681E Support for JPEG 2000 on Windows 7 (64 bits)

I hope that I am asking this question on the right forum. I am interested in learning about the extent of JPEG 2000 support on the Advantech DSPC 8681E board.

http://downloadt.advantech.com/ProductFile/Downloadfile1/1-JJ1I3T/PCIe%20DSPC-8681E%20User%20Guide%200%203.pdf

I believe they use TI developed JPEG2000 codec. I am interested in knowing the following.

a. Is there support for Windows Embedded Standard 7 (64 bits)

b. What is the compression performance of JPEG 2000 codec? How many pixels per second?

c. What is the decompression performance?

d. Can tile size be changed? What are the minimum and max tile size supported?

e. What progression orders are supported?

d. What is the largest raw image sizes supported?

f. What is the minimum codeblock size supported?

g. What image types and depths are supported?

I am not interested in getting too involved in learning to use the development tool chain. I am only interested in pre built executibles

Thanks in advance.

Imran

  • Imran,

    JPEG2K Encoder and Decoder are developed by TI. They are available publicly on the web in binary form to download. You can access the codecs at following links:

    http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C6678_Video_Codecs/JPEG2K_D/latest/index_FDS.html

    http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C6678_Video_Codecs/JPEG2K_E/latest/index_FDS.html

    Image sizes up to 4096 x 2160 are supported. Please refer to the data sheets available for the Decoder and Encoder at the above links to know details about the performance and supported configurations. Please let us know if you need any additional information regarding J2K that is not mentioned in the datasheet/userguides.

    We also have a product called MCSDK_Video (Multicore Software Development Kit - Video application) that bundles all the codecs into a single application and provides some Out of Box demos that can run on EVM C668, DSPC-8681 and DSPC-8682. You can download the MCSDK Video 2.1 application software from http://software-dl.ti.com/sdoemb/sdoemb_public_sw/mcsdk_video/latest/index_FDS.html

    More details about Standard OOB demos in MCSDK Video 2.1 can be found @ http://processors.wiki.ti.com/index.php/MCSDK_VIDEO_2.1_Demo_Guide

    Regards,

    Vivek

  • Vivek:

    You pointed me to some very good sources of info. In my application I am interested in image sizes considerably larger than what is currently supported. The images can be either monochromatic or color with different formats. The bit depth of the pixel can be larger than 8 bits.

    What are the different options that I have to handle these different cases. I assume I will need to get very conversant with MCSDK and your tool chain. Is there a way

    to mitigate my time and use resources available at TI.

    I noticed that most of your examples are Linux based. How easy is it to have them working on Windows?

    How easy is it to port your codec implementations on the EVM  to the DSPC 8681E board?

    What is the support model if I buy the DSPC board from Advantech but most of my problems are software and code related that is developed by TI.

    Will someone at TI be able to assist me with my issues?

    Imran

  • Imran,

    Please see my responses inline...

    You pointed me to some very good sources of info. In my application I am interested in image sizes considerably larger than what is currently supported. The images can be either monochromatic or color with different formats. The bit depth of the pixel can be larger than 8 bits.

    >> You can read from the data sheet that JPEG2K Encoder supports up to 12-bits per color sample, supports grey-scale or 3 component images, supports RGB, YUV444, YUV422, and YUV420 image formats, supports ICT/RCT color transform, supports for image sizes up to 4096 x 2160 pixels. Similar details can be found in the data sheet for JPEG2K Decoder. If you think that something is not supported or explicitly mentioned in the data sheet, please post those specific use-case requirements on e2e and we can follow-up.

    What are the different options that I have to handle these different cases. I assume I will need to get very conversant with MCSDK and your tool chain. Is there a way to mitigate my time and use resources available at TI.

    >> If you provide more details about your use case, we can help map it to MCSDK-Video. By use case details, I mean - where is the raw data coming from? What functionality is needed on the DSP (encode only?, decode only? both?)., what happens to the processed data? How many concurrent sessions would be running? Any network/security operations involved (C6678 has packet and security accelerator), etc. 

    I noticed that most of your examples are Linux based. How easy is it to have them working on Windows?

    >> It would be good for you to take a look at Desktop Linux SDK (MCSDK-Video builds on top of Desktop Linux SDK). There is a simple Out of Box demo available as part of the Desktop Linux SDK, called filetestdemo. What that demo does is - reads a file from HDD on X86, copies that frame into the DDR of DSP and sends a message to the DSP. The code running on DSP is a simple memcopy function. DSP picks up message from host, does memcopy to another region and responds back to X86. X86 will pick up that message from DSP, retrieves the new buffer and writes to HDD. The goal of this demo is to show data I/O to any DSP/DDR and be able to communicate (via mailboxes) with the DSPs. 

    Desktop Linux SDK is completely user-space and can be ported over to Windows pretty much as-is. There are two things we depend on the Kernel which needs manual effort to port to Windows. 1) CMEM module - to allocate physically contiguous memory. We need physically contiguous memory on host - so we can program DSP's EDMA to do I/O. (memcpy is very slow over PCIe and we need to use EDMA for throughput). and 2) libpciaccess - the standard PCIe driver available from Linux (nothing specific to TI). We get this using sudo apt-get. There has to be an equivalent in Windows world.

    After you go through the documentation of Desktop Linux SDK, please post questions - and we can clarify.

    How easy is it to port your codec implementations on the EVM  to the DSPC 8681E board?

    >> Codecs published on the web run as-is on runs on C66x, whether it is EVM C6678, DSPC-8681 and DSPC-8682. Codecs are platform independent. There is a unit-test available with each codec that does data I/O using JTAG. With PCIe based demos (you will need MCSDK_Video 2.1 to run the PCIe based demos), we use Desktop Linux SDK as foundational software that preloads the data to DDR (over PCIe). So, from codec point of view, the data is already available in DDR. The codec consumes the data in DDR, produces the results also in its DDR. The results in DDR are exported back to X86 via PCIe.

    What is the support model if I buy the DSPC board from Advantech but most of my problems are software and code related that is developed by TI. Will someone at TI be able to assist me with my issues?

    >> All software from TI (i.e. Codecs, MCSDK Video 2.1 and Desktop Linux SDK application) are supported via e2e.

    Regards,

    Vivek

  • I am primarily interested in the JPEG2000 compression performance of your codec running on DSPC 8681E under windows 7. The input image of size 6576x4384 resides in pc memory. It can be monochromatic or bayer of 8/10/ or 12 bits. I am interested in PCRL packet order, tile size of 512 and codeblock of 32x32. I would like to be able to specify the number of quality layers. At the end of the compression I need jp2 compliant compressed output to reside back in the PC memory. There is no need for security as such.

    I don't have access to any Linux box. I am willing to work with your engineers in porting the few pieces that need to be ported. It seems the Desktop Linux SDK requires Linux OS.

    If the compression performance is adequate then I would be interested in decompression of up to four simultaneous data streams of jp2 data residing in PC memory and the results appearing back in the PC memory.

    I have Visual Studio 2010/C++ as my development environment on the Windows 7 to work with.

    Thanks.

  • Imran,

    Thanks for the details. I think there are two problems here.

    1) PCIe driver for Windows, so data I/O can happen to DSPs in a Windows environment.

    2) Checking the capabilities of JPEG2K according to your requirements.

    Regarding #1, I believe there might be something available from Advantech directly. Currently, from TI - only Linux based SDK is available.

    Regarding #2, I am forwarding this to codec team and either the codec team or I would get back.

    Regards,

    Vivek

  • Vivek:

    1. I am told by Advantech that they have the board pre-configured with a "windows loader". I am assuming by this they mean that "BIOS MCSDK" kernel on the board

       that can talk to a windows driver that can perform loading of the compiled code as well as EDMA capabilities.

    2. Secondly I noticed that TI offer Code Composer and MCSDK for Windows as well.

    http://processors.wiki.ti.com/index.php/MCSDK_VIDEO_2.1_Windows_Getting_Started_Guide

    Do you think that these two packages will be adequate for me to work with the codec code that you provide and run it on the board under windows 7?

    Imran

  • Regarding #1, we need to check w/ Advantech.

    Regarding #2, Windows getting started guide is primarily for EVM C6678 stand-alone single Shannon EVM. Even when the card is plugged into a Linux PC, you can always use CCS installed on a windows machine to connect to DSPs via JTAG emulation. You'll be able to fread/fwrite over JTAG. The codec provided earlier has a unit-test that'll work with JTAG. Does your windows PC boot and power the DSPC 8681 card? If so, you can use the DSPs. You'll need driver on X86 only if you want to use PCIe based I/O.

    Regards,

    Vivek

  •  

     #1)  Please check with Advantech as they are in the process of shipping me a board with "Windows Loader" on it. You can see some driver info at

    http://support.advantech.com.tw/Support/SearchResult.aspx?keyword=DSPC-8681&searchtabs=BIOS,Certificate,Datasheet,Driver,Firmware,Manual,Online%20Training,Specification,Utility,FAQ,Installation,Software%20API,Software%20API%20Manual&select_tab=Driver

    #2) The Windows PC will be booting and powering the DSPC board. I should be able to use the JTAG for doing the basic testing in the short term. In the end I would need PCIe based I/O.

    I look forward to hearing back from you regarding the frame rates for the compression of image size and formats that I had mentioned earlier.

    I really appreciate your timely responses.

    Imran

     

     

     

     

     

     

     

     

     

  • Imran,

    The codec team came back with the below response:

    The TI JPEG2K library supports up to 12 bits per component, PCRL progression order, 512x512 tile size, and 32x32 code-block size, 6 decomposition levels, and up to 5 quality layers. However, the libraries have not been tested for the input image sizes beyond 4K. The higher input image size can also be supported but this may require some additional testing and some minor changes to the library. Once customer validates the existing library with a smaller image size we can help them in extending the library to accomodate the larger input image."

    Regards,

    Vivek

  • Vivek,

    That is great. I hopefully will be able to test the existing library using the windows loader or if  need be JTAG. In the meantime it would be helpful to get a feel what might be the expected throughput in frames/sec of compression for the image size that I am interested in. Can I expect to get 2-4 frames per second of compression?

    Imran

  • Imran,

    What is the compression ratio that you will be using in your application? This has an implication on the performance.

    Thanks, Krishna

  • Krishna:

    I expect it to be typically 10x. I would be interested in 15x as well.

    Imran

     

     

     

     

  • Imran,

    For encoder, given the image size of 6576 x 4384 at 12 bits per component, and 3 components per frame, you would need an octal shannon (6678) card  to achieve throughput of about 4 frames/second.

    For decoder, a quad shannon (6678) card should be sufficient to achieve a throughput of 4 frames/second.

    Thanks, Krishna

  •  

    Krishna:

    Unfortunately the computer on our platform cannot accept full length octal shannon card DSPC8682. 

    A performance of 1.8-2.5 frames per second would be acceptable. Please confirm that quad shannon based DSPc 8681E

    can achieve that.

    Imran

     

     

     

     

     

     

  • Hi Imran

    Throughput of 2 fps should be possible for encoder on quad Shannon. Note that there will be an initial delay. Hope this is OK in your application.

    Thanks, Krishna

  •  

      Hello Krishna:

    Excellent. Initial delay is not a problem. Any idea how long that will be for.

    I plan to do initial testing with your standard codec and break the images up so as to conform to the size it can handle. In the meantime I would appreciate if I could get a version of the codec that can handle the size and formats that I am interested in. I will be testing the PCIe driver for windows from Advantech.

    Lastly I would really appreciate if you can give me a rough idea when I could expect the codec that I need.

    Best Regards,

    Imran

     

     

     

     

     

     

     

  • Hello Imran,

    I also want to use the Lightning board DSPC 8681E from Advantech to encode pictures to JPEG2000.

    My development environment should be Visual Studio 2010/C++ with windows. I got windows drivers for the board and the board is well recognized by the system, with the given sample DSP-Loader i can write some data to the memory and read out the memory again. So the board seems to work fine! But the given samples like "image_processing" doesn't work. The card gets no IP-addresses, so I can't connect to the card via browser. My Ethernet settings are correct (IP: 192.168.1.100, subnet: 255.255.254.0) Even I got no code to this sample so I can't check were the problem may be...

    Have you made any progress in using Visual Studio to compile the samples from MCSDK Video?

    I am absolutely new to programming like this and do not really know what i need to develop a little programm for encoding to JPEG2000.

    For any help i would be very lucky:-)

    Best regards,

    tobi

  •   Hello Tobi:

    You are ahead of me as I have yet to receive the board. Nonetheless my development environment is similar to yours. Once I have had the opportunity to try out

    the board I am going to write a blog on my experience with it and will share it on this forum.

    Imran

     

     

     

     

     

     

     

  • Hello Imran,

    thanks for your answer! I hope you will get your board soon, it seems that no one else has the same development environment as we have!

    A question to the community here:

    Is it generally possible to develop for the advantech board in visual studio?

    For any help I would be still very lucky!

    best regards,

    tobias

  • Hello Krishna:

    I was wondering if you have a feel for when the codec for the resolution and frame rates will be ready for testing.

    Imran

  • Hi Imran,

    Have you received your Advantech board? Are you able to use it in windows environment and do the out of box tests to get data I/O between host and DSP over PCIe in your environment? Also, are you able to run JPEG2K (up to 4K) resolutions using the release published on the web? 

    I believe you are requesting to have J2K at 6576 x 4384 at 12 bits per component, and 3 components per frame. Do you need J2K Encoder or Decoder or both? And what is the timeline you are looking for this enhancement in the codec?

    Regards,

    Vivek


  • Tobi,

    With the Advantech supplied Windows driver, you should be able to offload processing to DSP from a host application. Yes, the host application can be in a visual studio environment. If you are facing any issues, I believe Advantech can help here. If you are facing any issues offloading from a Linux Ubuntu enviroment, using Desktop Linux SDK (http://software-dl.ti.com/sdoemb/sdoemb_public_sw/desktop_linux_sdk/latest/index_FDS.html), we can help..

    Regards,

    Vivek

  • Hello Vivek:

    Yes I have the Advantech board and the windows driver. I am just in the process of getting the appropriate power supply since the board requires an additional 90 Watts.

    I should be ready for testing in a week. I will run the JPEG2K codec. 

    I need the encoder for the resolution that I am interested in. I am also interested in other resolutions. I would like to be able to modify the code so as to support other formats. I would like to get the 6576x4384 working in my environment by the end of April.

    Thanks.

    Imran

  • Imran,

    Who is your local TI sales rep?

    Regards,

    Vivek

  • I interact with Alex Wilson. 

    Distribution Business Manager – Boston & CT

    Since the board is made by Advantech there is no need for a TI sales rep.

  • Imran,

    Thanks for the information. We have entered your request of JPEG2K enhancements to support 6K resolution into the queue of enhancements. Currently, you are the only customer requesting this change. End of April doesn't look feasible at this time. We have committed releases in progress until June. We'll re-evaluate this once we finish the committed releases on other codec enhancements. Meanwhile, if you face any issues with supporting images up to 4K or with using the Advantech card, please let us know.

    Regards,

    Vivek

  • Dear Vivek:

    Could you please let me know approximately when could you get me the encoder at the format  that I am interested. In the meantime would it be remotely possible to have access to the code that I could try to modify?

    Thanks.

    Imran

  • Imran,

    I would let our business manager work with you on getting access to JPEG2K source code and commitments in delivering the encoder enhancements you are requesting. What is your email address that our manager could contact you at?

    Regards,

    Vivek

  • i.khan@softserv-intl.com

  • Thanks Imran. I have passed your contact to the business manager and he'll follow up with you via email.

    Regards,

    Vivek