[Sound-open-firmware] [PATCH 1/4] SRC: Bug fixes, add support for int16 coefficients, comments cleanup

Seppo Ingalsuo seppo.ingalsuo at linux.intel.com
Mon Sep 4 08:31:18 CEST 2017


On 31.08.2017 15:43, Liam Girdwood wrote:
> On Fri, 2017-08-25 at 18:29 +0300, Seppo Ingalsuo wrote:
>> This patch fixes bugs in sink and source buffers handling and adds
>> support for short coefficient type to save RAM in platforms with less
>> space such as BYT. The patch introduces also a RAM saving minimum
>> conversions set between 16, 44.1, and 48 kHz. A new possible rate 18.9 kHz
>> was added to supported rates indication bits. SRC filters quality is also
>> adjusted for lower default performance. The higher performance will need
>>> 16bit coefficients usage. The larger conversion set and 32 bit
>> filter coefficients can be easily restored with the SRC tools in rimage.
>>
>> Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo at linux.intel.com>
>> ---
>>   src/audio/src.c                                    |   62 +-
>>   src/audio/src_core.c                               |   67 +-
>>   src/audio/src_core.h                               |   11 +
>>   .../coefficients/src/src_int16_1_3_4375_5000.h     |  251 +++++
>>   .../coefficients/src/src_int16_20_21_4020_5000.h   | 1066 ++++++++++++++++++++
>>   .../coefficients/src/src_int16_21_20_4020_5000.h   | 1056 +++++++++++++++++++
>>   .../coefficients/src/src_int16_3_1_4375_5000.h     |  252 +++++
>>   .../coefficients/src/src_int16_7_8_4375_5000.h     |  657 ++++++++++++
>>   .../coefficients/src/src_int16_8_7_4375_5000.h     |  662 ++++++++++++
>>   .../reef/audio/coefficients/src/src_int16_define.h |   11 +
>>   .../reef/audio/coefficients/src/src_int16_table.h  |   32 +
>>   11 files changed, 4076 insertions(+), 51 deletions(-)
>>   create mode 100644 src/include/reef/audio/coefficients/src/src_int16_1_3_4375_5000.h
>>   create mode 100644 src/include/reef/audio/coefficients/src/src_int16_20_21_4020_5000.h
>>   create mode 100644 src/include/reef/audio/coefficients/src/src_int16_21_20_4020_5000.h
>>   create mode 100644 src/include/reef/audio/coefficients/src/src_int16_3_1_4375_5000.h
>>   create mode 100644 src/include/reef/audio/coefficients/src/src_int16_7_8_4375_5000.h
>>   create mode 100644 src/include/reef/audio/coefficients/src/src_int16_8_7_4375_5000.h
>>   create mode 100644 src/include/reef/audio/coefficients/src/src_int16_define.h
>>   create mode 100644 src/include/reef/audio/coefficients/src/src_int16_table.h
> I've applied for 1.0-rc1, but we need to revisit the division in copy().

Yes, next patch will address it. The processing block size can be 
computed in initialization, the division can be moved there. It should 
also improve performance for simple conversions where the block size 
(1-3 samples) is unnecessarily small for typical 1 ms buffers. The block 
size can be made larger in such cases.

Thanks,
Seppo

>
> Thanks
>
> Liam
>
> _______________________________________________
> Sound-open-firmware mailing list
> Sound-open-firmware at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/sound-open-firmware
>



More information about the Sound-open-firmware mailing list