Hi David
for a all-platform POV, agreed.
I must try codec 2 on the M7 soon....
On 17/06/2016 8:06 AM, David Rowe wrote:
> 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
>
------------------------------------------------------------------------------
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