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