Hi Glen,

I tried the CMSIS library fft functions a few years back however it went 
slower than the standard kiss fft.  Perhaps I did something wrong.

Apart from ffts, there isn't a lot of general purpose DSP code in Codec 
2 that will benefit from a simple exchange of library function calls.

It is also important that Codec 2 remains cross platform, so I am not 
inclined to make platform-specific changes to the source to benefit just 
one specific platform.

Better to optimise the vanilla C, or just use a faster chip - MIPs are 
cheap these days.

Cheers,

David

On 17/06/16 07:19, glen english wrote:
> Max, are you using the CMSIS optimized DSP libraries for the code?
>
> (IE you will need to modify the stock PC code)
>
> The standard code is PC code. It works in the 160 meg ST just out of
> grunt, not programming performance...
>
> expect substantial improvement.
>
> regards
>
>
>
>
>
> On 17/06/2016 3:12 AM, Maxime Guyon wrote:
>> Hello,
>>
>> I've tested the Codec2 on a TIVA TM4C129 which is a TexasInstrument
>> CORTEX-M4F cadenced at 120MHz.
>> I checkedout the 0.5 TAG version on SVN and take the configuration of
>> your STM32 (running codec at CODEC2_MODE_1300)
>> It looks like that FPU is enabled on my device.
>> I've tested with maximum optimization O3 and also O4 and optimize speed.
>>
>> Here are my profilling code which only add IO toggle on "c2demo.c"
>> file example available in src folder
>> The file input is "hts1a.wav"
>> I only added IO toggling for capturing time encoding and decoding:
>>
>>     /     while(fread(buf, sizeof(short), nsam, fin) == (size_t)nsam) {/
>>
>>     /
>>     //GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_4, GPIO_PIN_4);
>>     //codec2_encode(codec2, bits, buf);
>>     //GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_4, 0);/
>>
>>     /
>>     //GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_5, GPIO_PIN_5);
>>     //codec2_decode(codec2, buf, bits);
>>     //GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_5, 0);/
>>
>>     /
>>     //fwrite(buf, sizeof(short), nsam, fout);
>>     //}/
>>
>>
>> On my scope I've read the time for IO to toggle and here are my result:
>>
>>    -Encoding time is between *25ms *and*42ms*
>>    -Decoding time is between *39ms *and *56ms*
>> *
>> *
>> Example seem to read buffer of 320 sample, so if I take the worst case
>> for each functions:
>>
>>    -Encoding : 320 sample are encoded in 42ms so in 1second I can
>> encode 7619samples.
>>    -Decoding:  320 sample are decoded in 56ms so in 1second I can
>> encode 5714samples.
>>
>> So as you can see I'm not able to do realtime encoding and decoding
>> since I need to be able to encode at least 8000sample for do real time
>> things (8KHz sampling rate)
>>
>> Do you have any suggestion/hint about this?
>> What is your encoding and decoding time on your STM32F4 board running
>> at 168MHz?
>>
>>
>> Regards,
>>
>> Max
>>
>>
>> ------------------------------------------------------------------------------
>> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
>> patterns at an interface-level. Reveals which users, apps, and protocols are
>> consuming the most bandwidth. Provides multi-vendor support for NetFlow,
>> J-Flow, sFlow and other flows. Make informed decisions using capacity 
>> planning
>> reports.http://sdm.link/zohomanageengine
>>
>>
>> _______________________________________________
>> Freetel-codec2 mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/freetel-codec2
>
>
>
> ------------------------------------------------------------------------------
> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
> patterns at an interface-level. Reveals which users, apps, and protocols are
> consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> J-Flow, sFlow and other flows. Make informed decisions using capacity planning
> reports. http://sdm.link/zohomanageengine
>
>
>
> _______________________________________________
> Freetel-codec2 mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/freetel-codec2
>

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports. http://sdm.link/zohomanageengine
_______________________________________________
Freetel-codec2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freetel-codec2

Reply via email to