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 Encode at 8kHz on 'C6748 DSP not supported?

Hi,

I want to encode (and decode) 16 bit PCM mono audio at 8kHz sample rate to (and from) the AAC format using the 'C6748 DSP, but the AAC encoder datasheet:

http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C674X_Audio_Codecs/01_00_001/exports/AAC_LC_Encoder_C674x_Datasheet_01_00_01_00.pdf

states that "For mono and stereo channel, input sampling frequencies from 16 KHz to 48 KHz are supported" (AAC-LC Encoder (V01.00.01) on C674x)

Is this correct? or will it work at 8kHz?

 

NOTE: The decoder supports 8kHz:

http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C674X_Audio_Codecs/01_00_001/exports/MPEG4AAC_LC_Decoder_C674X_DataSheet_01_41_00_00.pdf

"Sampling frequency range of 8 kHz – 96 kHz supported as per ISO/IEC 14496-3 standard"

 

I was previously targeting the 'C5502 and the AAC encoder library for it does support 8kHz sample rate, see:

http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C55X_Audio/C55X_Audio_latest//MPEG4AAC_LC_Encoder_C55x_Datasheet_1_00_00_03.pdf

"Input sampling frequencies 8kHz to 96kHz supported" (AAC-LC Encoder (v01.00.00) on C55x)

 

There is also a datasheet for the 'C64x+ (I think compatible with the 'C6748) AAC library:

http://www.ti.com/lit/ml/sprs406/sprs406.pdf

That states: "Input sampling frequencies from 8 KHz to 96 KHz supported" (AAC-LC Encoder (v1.01) on C64x+)

But I can't find the download.

 

 

and again there is a document for "AAC HEv2 Encoder on C64x+":

http://www.ti.com/lit/ug/spruet3a/spruet3a.pdf

Which states "Supports input sampling frequencies from 8 kHz to 96 kHz for AAC-LC encoding"

and "Supports input sampling frequencies from 16 kHz to 48 kHz for AACHE encoding"

But, again, I can't find the download.

 

In fact along with most of the TI software tool and library website, it's quite confusing.

 

Can anyone suggest a solution?

 

Thanks.

 

  • Hi Anthony,

    On C674x, for mono & stereo, input sampling frequencies from 16KHz to 48 KHz are supported & for multi channel(5 & 5.1 channel), 32 KHz to 48 KHz are supported. It does not work for 8KHz sampling frequency on c674x.

    On C64x+, 8KHz to 96 KHz sampling frequencies are supported for AAC-LC encoder & 16KHz - 48 KHz are supported for AAC-HE encoder.

    Best Regards,

    Deepthi

  • Hi Deepthi,

    Thank you for you answer, I have some more questions in response to it:

    For the 'C674x devices there is an AAC HE decoder, but not an encoder, why?
    See: http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C674X_Audio_Codecs/01_00_001/index_FDS.html

    On the 'C6748 datasheet it says that all C64x+ code is upwardly compatible with the 'C6748 core:

    ("C674x Instruction Set Features - Superset of the C67x+™ and C64x+™ ISAs", also "2.2 Device Compatibility: The C674x DSP core is code-compatible with the C6000™ DSP platform and supports features of both the C64x+ and C67x+ DSP families.")

    Will the C64x+ AAC-LC/AAC-HE run on the 'C6748?

    Where can I download the AAC-HE encoder from?

    - I think I've found the download page (I had to google ti.com site to find it!):
    http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C64XPlus_Audio/index_FDS.html

    - But I can't download the codecs as the Gateway times-out!

    Also this is an interesting post:
    http://e2e.ti.com/support/embedded/multimedia_software_codecs/f/356/t/168585.aspx

    - Do you have a version of the MPEG-4 HE-AAC that will run on the 'C674x? Should I contact TI directly to inquire about it?

    Best regards,

    Tony

  • Hi Tony,

    Yes. C64x+ is upwardly compatible with C674x core. So, C64x+ AAC-LC/AAC-HE should run on C6748 as well. 

    For the availability of AAC-HE encoder, you need to contact TI. 

    Best Regards,

    Deepthi

  • Hi Deepthi,

    Just to let you and others know, that the C64x+ AAC LC Encoder (Version 1.20.005) I downloaded from:

    http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C64XPlus_Audio/index_FDS.html

    Works on the LCDK6748.

    I had trouble getting the Test Application compiled and running on the LCDK6748 using CCS v5, so here are some of the things I had to do - if there is a simpler way please let me know!

    In fact I had to start by creating a new CCS Example Project: "typical_LCDK6748". Then (from memory, sorry if bits are missing or incorrect):

    1. Copy the .c & .h files from ...\dm6446_aaclcenc_1_20_005_production\packages\ti\sdo\codecs\aaclcenc\app\Client\Test to my new application.
    2. In app Properties->General RTSC tab, add ...\dm6446_aaclcenc_1_20_005_production\packages
    3. Copy ...\bios_6_35_04_50\packages\ti\bios\bcache.c in to the new app.
    4. Copy all files from dm6446_aaclcenc_1_20_005_production\packages\ti\sdo\codecs\aaclcenc\app\Inc to new app.
    5. Download c674x_aaclcenc_01_00_01_00_elf from: http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C674X_Audio_Codecs/01_00_001/index_FDS.html
    6. Copy alg.h and _alg.h from c674x_aaclcenc_01_00_01_00_elf\packages\ti\sdo\codecs\aaclcenc\app\Inc to new app.
    7. Add C6000 Compiler Include Options:
      1. "${BIOS_LOC}/packages/ti/bios/include"
      2. "${XDAIS_LOC}/packages/ti/xdais"
      3. "${XDC_LOC}/packages/xdc"
      4. "${AACLCENC_LOC}/app/Inc"
      5. and setup the various *_LOC Path Variables in Linked Resources.
    8. Add C6000 Linker File Search Path "${AACLCENC_LOC}/lib" and include the library file: aacenc_tii_lc.l64P
    9. Edit app.cfg (cfg Script):
      1. Add: var AACLCENC = xdc.useModule('ti.sdo.codecs.aaclcenc.AACLCENC');
      2. Increase the heap size: BIOS.heapSize = 0x100000;
    10. Copy the TestVecs directory from ...\dm6446_aaclcenc_1_20_005_production\packages\ti\sdo\codecs\aaclcenc\app\Client\Test to the app directory.
    11. Edit ...\TestVec\Config\Testvecs.cfg and change all the paths to ..\\TestVecs\\ (from ..\\..\\Test\\TestVecs).
    12. Delete main.c

    Build and run !

    Hope this helps someone,

    Tony

  • Hi Deepthi,

    Just run in to another problem, I'm trying to integrate the AAC LC Encoder in to my application, but it's in COFF format and my application and all the other libraries I'm using are in ELF format!

    From: http://processors.wiki.ti.com/index.php/A_Brief_History_of_TI_Object_File_Formats

    ELF is the future, so...

    Can TI provide the C64x+ AAC LC Audio Encoder and Decoder libraries in ELF format?

    http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C64XPlus_Audio/index_FDS.html

    (or provide me with the sources so I can build them??)

     

    or maybe modify the 'C674x AAC LC Audio Encoder (ELF library) to work at 8kHz?

    http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C674X_Audio_Codecs/01_00_001/index_FDS.html

    or provide the 'C674x AAC HE Audio Encoder (ELF library, working at 8kHz)?

    http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C674X_Audio_Codecs/01_00_001/index_FDS.html

     

    Thanks,

     

    Tony

  • Hi Tony,

    For the source packages of C64x+ AAC LC Audio Encoder and Decoder (ELF format), please contact TI.