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.

AAC Encoder on 5509A - need recommendations for how to effectively use off chip memory with this algo

Hello,

I'm posting this for one of my customers so they can reply directly.

Essentially they are having issues with the performance of our AAC Encoder on the 5509A when using off chip memory.  They are experiencing delays and strange sounds when using off chip memory in some instances.  Are there any guidelines for this algo in terms of what data/program can go on/off chip or does everything have to be in on chip RAM?  Obviously having everything on chip is ideal, but is not the most practical as they are tight for space with their application already.  Please let me know much flexibility there is in managing the AAC Encoder algorithm in terms of memory resources to maintain the best performance while using the least internal memory.

Thanks,

Tom

 

  • Hi Tom,

    If the version of AAC-Encoder on 5509 used is 01.00.00.003, the userGuide gives details on different memory placements for best performances.

    Please refer Appendix B of the userGuide.

     

    Ram

  • Thanks Ram,

     

    I thought I'd provide a bit of additional detail.

     

    Our 5509 application includes additional external memory that we'd like to use for the AAC-Encoder.  I've tested many different memory configurations, but haven't had much luck.

     

    If I leave the library memory location internal as described in the example code, the algorithm properly encodes the file (though in a couple of files I've gotten some beeping).

    When I specify that library location as external, the algorithm encodes files with a hiss.  

    When I leave the library at the internal location, yet statically allocate the algorithm memory externally, the encoded files are muffled.

    If both the library and the algorithm memory are external, the encoded files include the hiss.

     

    In all cases the files are intelligible, they simply have imperfections that are directly linked to the memory location of certain algorithm components.

     

    We're not so concerned about performance as we are about internal memory usage, and we'd like to move the algorithm library and required memory off-chip.  I've reviewed the memory allocation in the AAC User Guide as well as the Algorithm Standard API Reference (SPRU360E), but haven't found any suggestions about moving the algorithm off-chip.  I'm hoping I'm overlooking something basic and you might be able to point it out.

     

    Thanks,

     

    James

  • Hi Tom,

    For dual-mac calculations in c55x , data fetching happens though B-Bus.

    For dual-mac, algorithm assumes that coefficients are in DARAM.     If the data is not available in DARAM, result is unknown.

    I guess for this reason, output has noise, when data sections are placed in external memory.

     

    Ram

  • Thanks Ram, we were thinking along those lines as well, that the data may not be ready when the algorithm is executed.  Are there any algorithm parameters that I can adjust to tell the algorithm that data is located externally, or that the algorithm should wait a given period of time for the data to arrive?  As it is currently, the map file indicates only 44words of DARAM is in use by the algorithm library, with the remainder of the library and all algorithm memory in SARAM (roughly 40k), and we'd like to move that 40k off chip if possible. 

     

    Thanks,

     

    James

  • Ram,

     

    I just wanted to get your final thoughts on the AAC library in case I missed something in the documentation.  Is there a parameter I can use to indicate to the algorithm that the memory is external (so that it can wait for data to be ready before processing during each cycle), or is there a parameter that I can use to tell the algorithm to wait a given amount of time between each cycle (to allow time for data to be ready)?

     

    Thanks,

     

    James

  • Hi James,

    It is not possible to inform the algorithm to wait for a given amount of time. Algorithm is expecting data in the DARAM, so that it can access, two values at a time.

    There are 10 memTabs being allocated to AAC-Enc algorithm.

    memTab 2,3,5,6, and 8 can be placed in external memory if performance is not an issue. Total size of these memTabs is 16kb. You can move 16kb to external but remaining 34kb has to be in internal.

     

    Ram

  • Great, Thanks Ram, I'll give it a try.  Any savings we can get internally is helpful.

     

    Thanks for taking the time to walk through the problem with me.

     

    James