[Sound-open-firmware] [PATCH 3/4] SRC: Add tiny 16 bit coefficient set and set it as default for BYT

Seppo Ingalsuo seppo.ingalsuo at linux.intel.com
Fri Sep 22 15:08:46 CEST 2017


This patch adds a very small size and fast to compute SRC coefficients set
for converting between 8/16/24/32/44.1/48 kHz and 48 kHz. It is
set as default for BYT platform until a more optimized SRC core is
available. The quality of this set has been reduced to achieve the faster
computation.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo at linux.intel.com>
---
 src/audio/src_config.h                             |   6 +-
 .../src/src_tiny_int16_1_2_3750_5100.h             |  44 +++
 .../src/src_tiny_int16_1_3_1875_5100.h             |  33 +++
 .../src/src_tiny_int16_1_3_3750_5100.h             |  62 ++++
 .../src/src_tiny_int16_20_21_3445_5100.h           | 326 +++++++++++++++++++++
 .../src/src_tiny_int16_21_20_3445_5100.h           | 321 ++++++++++++++++++++
 .../src/src_tiny_int16_2_1_3750_5100.h             |  46 +++
 .../src/src_tiny_int16_2_3_3750_5100.h             |  64 ++++
 .../src/src_tiny_int16_3_1_1875_5100.h             |  33 +++
 .../src/src_tiny_int16_3_1_3750_5100.h             |  63 ++++
 .../src/src_tiny_int16_3_2_3750_5100.h             |  63 ++++
 .../src/src_tiny_int16_7_8_3750_5100.h             | 167 +++++++++++
 .../src/src_tiny_int16_8_7_3750_5100.h             | 166 +++++++++++
 .../audio/coefficients/src/src_tiny_int16_define.h |  11 +
 .../audio/coefficients/src/src_tiny_int16_table.h  |  72 +++++
 15 files changed, 1474 insertions(+), 3 deletions(-)
 create mode 100644 src/include/reef/audio/coefficients/src/src_tiny_int16_1_2_3750_5100.h
 create mode 100644 src/include/reef/audio/coefficients/src/src_tiny_int16_1_3_1875_5100.h
 create mode 100644 src/include/reef/audio/coefficients/src/src_tiny_int16_1_3_3750_5100.h
 create mode 100644 src/include/reef/audio/coefficients/src/src_tiny_int16_20_21_3445_5100.h
 create mode 100644 src/include/reef/audio/coefficients/src/src_tiny_int16_21_20_3445_5100.h
 create mode 100644 src/include/reef/audio/coefficients/src/src_tiny_int16_2_1_3750_5100.h
 create mode 100644 src/include/reef/audio/coefficients/src/src_tiny_int16_2_3_3750_5100.h
 create mode 100644 src/include/reef/audio/coefficients/src/src_tiny_int16_3_1_1875_5100.h
 create mode 100644 src/include/reef/audio/coefficients/src/src_tiny_int16_3_1_3750_5100.h
 create mode 100644 src/include/reef/audio/coefficients/src/src_tiny_int16_3_2_3750_5100.h
 create mode 100644 src/include/reef/audio/coefficients/src/src_tiny_int16_7_8_3750_5100.h
 create mode 100644 src/include/reef/audio/coefficients/src/src_tiny_int16_8_7_3750_5100.h
 create mode 100644 src/include/reef/audio/coefficients/src/src_tiny_int16_define.h
 create mode 100644 src/include/reef/audio/coefficients/src/src_tiny_int16_table.h

diff --git a/src/audio/src_config.h b/src/audio/src_config.h
index f983723..a34e8a5 100644
--- a/src/audio/src_config.h
+++ b/src/audio/src_config.h
@@ -35,9 +35,9 @@
 #include <config.h>
 
 #if CONFIG_BAYTRAIL
-#define SRC_SHORT 0
-#include <reef/audio/coefficients/src/src_small_int24_define.h>
-#include <reef/audio/coefficients/src/src_small_int24_table.h>
+#define SRC_SHORT 1
+#include <reef/audio/coefficients/src/src_tiny_int16_define.h>
+#include <reef/audio/coefficients/src/src_tiny_int16_table.h>
 #else
 #define SHORT_SHORT 0
 #include <reef/audio/coefficients/src/src_std_int24_define.h>
diff --git a/src/include/reef/audio/coefficients/src/src_tiny_int16_1_2_3750_5100.h b/src/include/reef/audio/coefficients/src/src_tiny_int16_1_2_3750_5100.h
new file mode 100644
index 0000000..d3469a6
--- /dev/null
+++ b/src/include/reef/audio/coefficients/src/src_tiny_int16_1_2_3750_5100.h
@@ -0,0 +1,44 @@
+const int16_t src_int16_1_2_3750_5100_fir[38] = {
+	51,
+	-121,
+	-177,
+	149,
+	398,
+	-68,
+	-694,
+	-211,
+	995,
+	777,
+	-1172,
+	-1716,
+	1021,
+	3153,
+	-171,
+	-5516,
+	-2578,
+	11935,
+	26490,
+	26490,
+	11935,
+	-2578,
+	-5516,
+	-171,
+	3153,
+	1021,
+	-1716,
+	-1172,
+	777,
+	995,
+	-211,
+	-694,
+	-68,
+	398,
+	149,
+	-177,
+	-121,
+	51
+
+};
+struct src_stage src_int16_1_2_3750_5100 = {
+	1, 0, 1, 38, 38, 2, 1, 0, 1,
+	src_int16_1_2_3750_5100_fir};
diff --git a/src/include/reef/audio/coefficients/src/src_tiny_int16_1_3_1875_5100.h b/src/include/reef/audio/coefficients/src/src_tiny_int16_1_3_1875_5100.h
new file mode 100644
index 0000000..aface9c
--- /dev/null
+++ b/src/include/reef/audio/coefficients/src/src_tiny_int16_1_3_1875_5100.h
@@ -0,0 +1,33 @@
+const int16_t src_int16_1_3_1875_5100_fir[27] = {
+	-4,
+	223,
+	611,
+	835,
+	394,
+	-994,
+	-2923,
+	-4122,
+	-2891,
+	1966,
+	10180,
+	19698,
+	27355,
+	30291,
+	27355,
+	19698,
+	10180,
+	1966,
+	-2891,
+	-4122,
+	-2923,
+	-994,
+	394,
+	835,
+	611,
+	223,
+	-4
+
+};
+struct src_stage src_int16_1_3_1875_5100 = {
+	1, 0, 1, 27, 27, 3, 1, 0, 2,
+	src_int16_1_3_1875_5100_fir};
diff --git a/src/include/reef/audio/coefficients/src/src_tiny_int16_1_3_3750_5100.h b/src/include/reef/audio/coefficients/src/src_tiny_int16_1_3_3750_5100.h
new file mode 100644
index 0000000..6a58744
--- /dev/null
+++ b/src/include/reef/audio/coefficients/src/src_tiny_int16_1_3_3750_5100.h
@@ -0,0 +1,62 @@
+const int16_t src_int16_1_3_3750_5100_fir[56] = {
+	17,
+	-58,
+	-123,
+	-91,
+	55,
+	221,
+	240,
+	28,
+	-301,
+	-465,
+	-244,
+	291,
+	735,
+	635,
+	-96,
+	-978,
+	-1232,
+	-413,
+	1071,
+	2066,
+	1461,
+	-798,
+	-3284,
+	-3740,
+	-527,
+	6049,
+	13523,
+	18476,
+	18476,
+	13523,
+	6049,
+	-527,
+	-3740,
+	-3284,
+	-798,
+	1461,
+	2066,
+	1071,
+	-413,
+	-1232,
+	-978,
+	-96,
+	635,
+	735,
+	291,
+	-244,
+	-465,
+	-301,
+	28,
+	240,
+	221,
+	55,
+	-91,
+	-123,
+	-58,
+	17
+
+};
+struct src_stage src_int16_1_3_3750_5100 = {
+	1, 0, 1, 56, 56, 3, 1, 0, 1,
+	src_int16_1_3_3750_5100_fir};
diff --git a/src/include/reef/audio/coefficients/src/src_tiny_int16_20_21_3445_5100.h b/src/include/reef/audio/coefficients/src/src_tiny_int16_20_21_3445_5100.h
new file mode 100644
index 0000000..b569d87
--- /dev/null
+++ b/src/include/reef/audio/coefficients/src/src_tiny_int16_20_21_3445_5100.h
@@ -0,0 +1,326 @@
+const int16_t src_int16_20_21_3445_5100_fir[320] = {
+	53,
+	-203,
+	342,
+	-181,
+	-643,
+	2315,
+	-4645,
+	7405,
+	25888,
+	4758,
+	-4056,
+	2414,
+	-916,
+	31,
+	240,
+	-176,
+	54,
+	-211,
+	388,
+	-294,
+	-478,
+	2201,
+	-4854,
+	8785,
+	25680,
+	3510,
+	-3692,
+	2403,
+	-1019,
+	129,
+	186,
+	-158,
+	50,
+	-218,
+	435,
+	-408,
+	-296,
+	2045,
+	-4995,
+	10186,
+	25338,
+	2324,
+	-3294,
+	2356,
+	-1103,
+	219,
+	136,
+	-142,
+	48,
+	-221,
+	473,
+	-524,
+	-98,
+	1846,
+	-5063,
+	11596,
+	24861,
+	1211,
+	-2866,
+	2272,
+	-1161,
+	299,
+	86,
+	-121,
+	40,
+	-221,
+	509,
+	-636,
+	112,
+	1605,
+	-5053,
+	13005,
+	24256,
+	176,
+	-2418,
+	2159,
+	-1201,
+	370,
+	38,
+	-104,
+	35,
+	-215,
+	535,
+	-744,
+	332,
+	1324,
+	-4956,
+	14397,
+	23531,
+	-773,
+	-1959,
+	2015,
+	-1218,
+	431,
+	-6,
+	-83,
+	23,
+	-207,
+	557,
+	-848,
+	558,
+	1005,
+	-4770,
+	15762,
+	22689,
+	-1634,
+	-1495,
+	1850,
+	-1215,
+	481,
+	-48,
+	-66,
+	14,
+	-191,
+	568,
+	-940,
+	789,
+	650,
+	-4491,
+	17087,
+	21742,
+	-2401,
+	-1034,
+	1661,
+	-1192,
+	519,
+	-86,
+	-46,
+	-1,
+	-173,
+	572,
+	-1025,
+	1017,
+	264,
+	-4116,
+	18359,
+	20698,
+	-3071,
+	-583,
+	1458,
+	-1152,
+	548,
+	-121,
+	-31,
+	-13,
+	-148,
+	564,
+	-1094,
+	1242,
+	-149,
+	-3643,
+	19566,
+	19566,
+	-3643,
+	-149,
+	1242,
+	-1094,
+	563,
+	-148,
+	-13,
+	-31,
+	-121,
+	548,
+	-1153,
+	1458,
+	-584,
+	-3072,
+	20699,
+	18359,
+	-4116,
+	264,
+	1017,
+	-1025,
+	572,
+	-173,
+	-1,
+	-46,
+	-86,
+	518,
+	-1192,
+	1661,
+	-1034,
+	-2401,
+	21742,
+	17087,
+	-4491,
+	650,
+	788,
+	-941,
+	568,
+	-191,
+	14,
+	-66,
+	-48,
+	480,
+	-1215,
+	1849,
+	-1495,
+	-1634,
+	22690,
+	15762,
+	-4770,
+	1004,
+	558,
+	-848,
+	557,
+	-207,
+	23,
+	-83,
+	-6,
+	430,
+	-1218,
+	2015,
+	-1959,
+	-773,
+	23531,
+	14397,
+	-4956,
+	1324,
+	332,
+	-744,
+	535,
+	-215,
+	35,
+	-104,
+	38,
+	370,
+	-1201,
+	2159,
+	-2418,
+	175,
+	24256,
+	13004,
+	-5052,
+	1605,
+	112,
+	-637,
+	508,
+	-221,
+	40,
+	-121,
+	86,
+	298,
+	-1162,
+	2273,
+	-2866,
+	1211,
+	24861,
+	11595,
+	-5063,
+	1846,
+	-98,
+	-524,
+	473,
+	-221,
+	48,
+	-142,
+	135,
+	219,
+	-1102,
+	2356,
+	-3293,
+	2325,
+	25337,
+	10186,
+	-4995,
+	2045,
+	-296,
+	-408,
+	435,
+	-218,
+	50,
+	-158,
+	186,
+	130,
+	-1019,
+	2403,
+	-3692,
+	3510,
+	25681,
+	8785,
+	-4853,
+	2201,
+	-478,
+	-294,
+	388,
+	-211,
+	54,
+	-176,
+	240,
+	31,
+	-915,
+	2414,
+	-4056,
+	4758,
+	25888,
+	7406,
+	-4645,
+	2315,
+	-642,
+	-181,
+	342,
+	-203,
+	53,
+	-189,
+	290,
+	-72,
+	-789,
+	2384,
+	-4377,
+	6059,
+	25958,
+	6060,
+	-4377,
+	2385,
+	-789,
+	-72,
+	290,
+	-189,
+	1
+
+};
+struct src_stage src_int16_20_21_3445_5100 = {
+	1, 1, 20, 16, 320, 21, 20, 0, 0,
+	src_int16_20_21_3445_5100_fir};
diff --git a/src/include/reef/audio/coefficients/src/src_tiny_int16_21_20_3445_5100.h b/src/include/reef/audio/coefficients/src/src_tiny_int16_21_20_3445_5100.h
new file mode 100644
index 0000000..0ae042f
--- /dev/null
+++ b/src/include/reef/audio/coefficients/src/src_tiny_int16_21_20_3445_5100.h
@@ -0,0 +1,321 @@
+const int16_t src_int16_21_20_3445_5100_fir[315] = {
+	46,
+	-219,
+	514,
+	-765,
+	579,
+	678,
+	-4314,
+	20545,
+	19276,
+	-4707,
+	1048,
+	344,
+	-653,
+	478,
+	-216,
+	44,
+	-219,
+	542,
+	-871,
+	818,
+	275,
+	-3819,
+	21733,
+	17938,
+	-4998,
+	1381,
+	116,
+	-537,
+	438,
+	-207,
+	37,
+	-212,
+	565,
+	-968,
+	1055,
+	-156,
+	-3219,
+	22830,
+	16547,
+	-5192,
+	1675,
+	-102,
+	-419,
+	393,
+	-199,
+	32,
+	-205,
+	576,
+	-1054,
+	1290,
+	-610,
+	-2518,
+	23826,
+	15113,
+	-5292,
+	1924,
+	-307,
+	-301,
+	345,
+	-186,
+	22,
+	-189,
+	581,
+	-1128,
+	1514,
+	-1081,
+	-1714,
+	24710,
+	13649,
+	-5303,
+	2133,
+	-495,
+	-185,
+	293,
+	-172,
+	13,
+	-172,
+	572,
+	-1188,
+	1726,
+	-1563,
+	-812,
+	25474,
+	12172,
+	-5230,
+	2293,
+	-666,
+	-75,
+	241,
+	-153,
+	-1,
+	-147,
+	557,
+	-1229,
+	1922,
+	-2048,
+	185,
+	26108,
+	10691,
+	-5081,
+	2412,
+	-816,
+	32,
+	187,
+	-136,
+	-12,
+	-120,
+	527,
+	-1253,
+	2097,
+	-2529,
+	1272,
+	26610,
+	9220,
+	-4862,
+	2484,
+	-946,
+	132,
+	136,
+	-117,
+	-30,
+	-85,
+	490,
+	-1256,
+	2245,
+	-2998,
+	2438,
+	26970,
+	7771,
+	-4580,
+	2515,
+	-1053,
+	224,
+	85,
+	-100,
+	-44,
+	-48,
+	438,
+	-1239,
+	2365,
+	-3445,
+	3683,
+	27188,
+	6359,
+	-4245,
+	2501,
+	-1138,
+	306,
+	37,
+	-80,
+	-63,
+	-6,
+	378,
+	-1200,
+	2451,
+	-3864,
+	4992,
+	27261,
+	4992,
+	-3864,
+	2451,
+	-1200,
+	378,
+	-6,
+	-63,
+	-80,
+	38,
+	306,
+	-1138,
+	2501,
+	-4245,
+	6360,
+	27189,
+	3683,
+	-3445,
+	2365,
+	-1239,
+	438,
+	-48,
+	-44,
+	-100,
+	85,
+	224,
+	-1053,
+	2514,
+	-4580,
+	7772,
+	26969,
+	2438,
+	-2997,
+	2245,
+	-1255,
+	489,
+	-85,
+	-30,
+	-117,
+	136,
+	133,
+	-947,
+	2484,
+	-4862,
+	9220,
+	26609,
+	1272,
+	-2529,
+	2097,
+	-1253,
+	527,
+	-120,
+	-12,
+	-136,
+	188,
+	33,
+	-816,
+	2413,
+	-5080,
+	10691,
+	26108,
+	185,
+	-2048,
+	1922,
+	-1228,
+	557,
+	-147,
+	-1,
+	-153,
+	241,
+	-74,
+	-666,
+	2294,
+	-5230,
+	12172,
+	25473,
+	-812,
+	-1563,
+	1727,
+	-1187,
+	572,
+	-172,
+	13,
+	-171,
+	292,
+	-185,
+	-495,
+	2133,
+	-5303,
+	13650,
+	24710,
+	-1714,
+	-1081,
+	1514,
+	-1128,
+	581,
+	-189,
+	22,
+	-186,
+	344,
+	-301,
+	-307,
+	1925,
+	-5292,
+	15113,
+	23826,
+	-2518,
+	-610,
+	1290,
+	-1054,
+	576,
+	-205,
+	32,
+	-199,
+	392,
+	-419,
+	-102,
+	1675,
+	-5192,
+	16547,
+	22831,
+	-3219,
+	-156,
+	1055,
+	-967,
+	565,
+	-212,
+	37,
+	-207,
+	438,
+	-537,
+	116,
+	1381,
+	-4998,
+	17939,
+	21733,
+	-3819,
+	275,
+	818,
+	-871,
+	542,
+	-219,
+	44,
+	-216,
+	479,
+	-654,
+	344,
+	1048,
+	-4707,
+	19276,
+	20545,
+	-4314,
+	678,
+	578,
+	-765,
+	514,
+	-219,
+	46
+
+};
+struct src_stage src_int16_21_20_3445_5100 = {
+	19, 20, 21, 15, 315, 20, 21, 0, 0,
+	src_int16_21_20_3445_5100_fir};
diff --git a/src/include/reef/audio/coefficients/src/src_tiny_int16_2_1_3750_5100.h b/src/include/reef/audio/coefficients/src/src_tiny_int16_2_1_3750_5100.h
new file mode 100644
index 0000000..c23c5b3
--- /dev/null
+++ b/src/include/reef/audio/coefficients/src/src_tiny_int16_2_1_3750_5100.h
@@ -0,0 +1,46 @@
+const int16_t src_int16_2_1_3750_5100_fir[40] = {
+	94,
+	-219,
+	368,
+	-477,
+	444,
+	-128,
+	-656,
+	2235,
+	-5647,
+	20312,
+	20312,
+	-5647,
+	2235,
+	-656,
+	-128,
+	444,
+	-477,
+	368,
+	-219,
+	94,
+	-26,
+	-59,
+	276,
+	-660,
+	1211,
+	-1885,
+	2594,
+	-3223,
+	3657,
+	28793,
+	3657,
+	-3223,
+	2594,
+	-1885,
+	1211,
+	-660,
+	276,
+	-59,
+	-26,
+	1
+
+};
+struct src_stage src_int16_2_1_3750_5100 = {
+	0, 1, 2, 20, 40, 1, 2, 0, 0,
+	src_int16_2_1_3750_5100_fir};
diff --git a/src/include/reef/audio/coefficients/src/src_tiny_int16_2_3_3750_5100.h b/src/include/reef/audio/coefficients/src/src_tiny_int16_2_3_3750_5100.h
new file mode 100644
index 0000000..5cd42a0
--- /dev/null
+++ b/src/include/reef/audio/coefficients/src/src_tiny_int16_2_3_3750_5100.h
@@ -0,0 +1,64 @@
+const int16_t src_int16_2_3_3750_5100_fir[58] = {
+	45,
+	-108,
+	-32,
+	272,
+	-143,
+	-420,
+	569,
+	337,
+	-1242,
+	309,
+	2011,
+	-2155,
+	-2632,
+	9889,
+	19158,
+	9888,
+	-2632,
+	-2155,
+	2011,
+	309,
+	-1242,
+	337,
+	569,
+	-420,
+	-143,
+	272,
+	-32,
+	-108,
+	45,
+	-17,
+	-135,
+	153,
+	172,
+	-439,
+	2,
+	790,
+	-576,
+	-966,
+	1727,
+	483,
+	-3911,
+	2456,
+	16511,
+	16510,
+	2456,
+	-3911,
+	483,
+	1727,
+	-966,
+	-576,
+	790,
+	2,
+	-439,
+	172,
+	153,
+	-135,
+	-17,
+	1
+
+};
+struct src_stage src_int16_2_3_3750_5100 = {
+	1, 1, 2, 29, 58, 3, 2, 0, 0,
+	src_int16_2_3_3750_5100_fir};
diff --git a/src/include/reef/audio/coefficients/src/src_tiny_int16_3_1_1875_5100.h b/src/include/reef/audio/coefficients/src/src_tiny_int16_3_1_1875_5100.h
new file mode 100644
index 0000000..d53be01
--- /dev/null
+++ b/src/include/reef/audio/coefficients/src/src_tiny_int16_3_1_1875_5100.h
@@ -0,0 +1,33 @@
+const int16_t src_int16_3_1_1875_5100_fir[27] = {
+	76,
+	615,
+	-2940,
+	4365,
+	22129,
+	11291,
+	-3043,
+	-154,
+	371,
+	371,
+	-154,
+	-3043,
+	11291,
+	22129,
+	4365,
+	-2940,
+	615,
+	76,
+	676,
+	-1574,
+	-723,
+	17996,
+	17996,
+	-723,
+	-1574,
+	676,
+	-1
+
+};
+struct src_stage src_int16_3_1_1875_5100 = {
+	0, 1, 3, 9, 27, 1, 3, 0, 0,
+	src_int16_3_1_1875_5100_fir};
diff --git a/src/include/reef/audio/coefficients/src/src_tiny_int16_3_1_3750_5100.h b/src/include/reef/audio/coefficients/src/src_tiny_int16_3_1_3750_5100.h
new file mode 100644
index 0000000..cfbd8a1
--- /dev/null
+++ b/src/include/reef/audio/coefficients/src/src_tiny_int16_3_1_3750_5100.h
@@ -0,0 +1,63 @@
+const int16_t src_int16_3_1_3750_5100_fir[57] = {
+	27,
+	-138,
+	361,
+	-698,
+	1103,
+	-1467,
+	1607,
+	-1197,
+	-790,
+	27714,
+	9074,
+	-4927,
+	3100,
+	-1848,
+	953,
+	-366,
+	43,
+	82,
+	-87,
+	-87,
+	82,
+	43,
+	-366,
+	953,
+	-1848,
+	3100,
+	-4927,
+	9074,
+	27714,
+	-790,
+	-1197,
+	1607,
+	-1467,
+	1103,
+	-698,
+	361,
+	-138,
+	27,
+	-184,
+	332,
+	-451,
+	437,
+	-145,
+	-620,
+	2191,
+	-5610,
+	20284,
+	20284,
+	-5610,
+	2191,
+	-620,
+	-145,
+	437,
+	-451,
+	332,
+	-184,
+	1
+
+};
+struct src_stage src_int16_3_1_3750_5100 = {
+	0, 1, 3, 19, 57, 1, 3, 0, 0,
+	src_int16_3_1_3750_5100_fir};
diff --git a/src/include/reef/audio/coefficients/src/src_tiny_int16_3_2_3750_5100.h b/src/include/reef/audio/coefficients/src/src_tiny_int16_3_2_3750_5100.h
new file mode 100644
index 0000000..e66696a
--- /dev/null
+++ b/src/include/reef/audio/coefficients/src/src_tiny_int16_3_2_3750_5100.h
@@ -0,0 +1,63 @@
+const int16_t src_int16_3_2_3750_5100_fir[57] = {
+	27,
+	-140,
+	361,
+	-700,
+	1104,
+	-1468,
+	1609,
+	-1197,
+	-788,
+	27714,
+	9076,
+	-4927,
+	3102,
+	-1848,
+	955,
+	-366,
+	45,
+	82,
+	-85,
+	-85,
+	82,
+	45,
+	-366,
+	955,
+	-1848,
+	3102,
+	-4927,
+	9076,
+	27714,
+	-788,
+	-1197,
+	1609,
+	-1467,
+	1104,
+	-700,
+	361,
+	-140,
+	27,
+	-184,
+	330,
+	-451,
+	435,
+	-145,
+	-622,
+	2191,
+	-5611,
+	20283,
+	20283,
+	-5611,
+	2191,
+	-622,
+	-145,
+	435,
+	-451,
+	330,
+	-184,
+	1
+
+};
+struct src_stage src_int16_3_2_3750_5100 = {
+	1, 2, 3, 19, 57, 2, 3, 0, 0,
+	src_int16_3_2_3750_5100_fir};
diff --git a/src/include/reef/audio/coefficients/src/src_tiny_int16_7_8_3750_5100.h b/src/include/reef/audio/coefficients/src/src_tiny_int16_7_8_3750_5100.h
new file mode 100644
index 0000000..a2f3ee3
--- /dev/null
+++ b/src/include/reef/audio/coefficients/src/src_tiny_int16_7_8_3750_5100.h
@@ -0,0 +1,167 @@
+const int16_t src_int16_7_8_3750_5100_fir[161] = {
+	34,
+	-16,
+	-108,
+	330,
+	-482,
+	300,
+	412,
+	-1539,
+	2503,
+	-2276,
+	-970,
+	22055,
+	16075,
+	-4432,
+	314,
+	1373,
+	-1534,
+	925,
+	-222,
+	-194,
+	271,
+	-162,
+	45,
+	50,
+	-57,
+	-50,
+	299,
+	-568,
+	570,
+	10,
+	-1237,
+	2720,
+	-3515,
+	1774,
+	23969,
+	12430,
+	-5084,
+	1385,
+	634,
+	-1269,
+	999,
+	-416,
+	-35,
+	198,
+	-157,
+	58,
+	59,
+	-97,
+	29,
+	226,
+	-593,
+	798,
+	-440,
+	-745,
+	2617,
+	-4501,
+	5048,
+	24963,
+	8674,
+	-5072,
+	2171,
+	-99,
+	-886,
+	949,
+	-544,
+	110,
+	114,
+	-132,
+	65,
+	65,
+	-132,
+	114,
+	110,
+	-544,
+	950,
+	-886,
+	-99,
+	2170,
+	-5072,
+	8674,
+	24963,
+	5048,
+	-4501,
+	2618,
+	-745,
+	-440,
+	798,
+	-593,
+	226,
+	29,
+	-97,
+	59,
+	58,
+	-157,
+	198,
+	-35,
+	-417,
+	999,
+	-1269,
+	634,
+	1384,
+	-5084,
+	12430,
+	23969,
+	1774,
+	-3515,
+	2721,
+	-1237,
+	9,
+	571,
+	-568,
+	299,
+	-50,
+	-57,
+	50,
+	45,
+	-162,
+	271,
+	-194,
+	-222,
+	925,
+	-1534,
+	1373,
+	314,
+	-4432,
+	16075,
+	22055,
+	-971,
+	-2276,
+	2503,
+	-1539,
+	412,
+	301,
+	-482,
+	330,
+	-108,
+	-16,
+	34,
+	17,
+	-148,
+	317,
+	-351,
+	26,
+	727,
+	-1634,
+	2027,
+	-948,
+	-3062,
+	19359,
+	19359,
+	-3062,
+	-948,
+	2027,
+	-1634,
+	727,
+	26,
+	-351,
+	316,
+	-148,
+	17,
+	1
+
+};
+struct src_stage src_int16_7_8_3750_5100 = {
+	1, 1, 7, 23, 161, 8, 7, 0, 0,
+	src_int16_7_8_3750_5100_fir};
diff --git a/src/include/reef/audio/coefficients/src/src_tiny_int16_8_7_3750_5100.h b/src/include/reef/audio/coefficients/src/src_tiny_int16_8_7_3750_5100.h
new file mode 100644
index 0000000..b6757a3
--- /dev/null
+++ b/src/include/reef/audio/coefficients/src/src_tiny_int16_8_7_3750_5100.h
@@ -0,0 +1,166 @@
+const int16_t src_int16_8_7_3750_5100_fir[160] = {
+	45,
+	-86,
+	79,
+	47,
+	-369,
+	955,
+	-1834,
+	3019,
+	-4624,
+	7804,
+	28097,
+	372,
+	-1841,
+	1956,
+	-1614,
+	1120,
+	-651,
+	300,
+	-91,
+	1,
+	61,
+	-128,
+	175,
+	-126,
+	-116,
+	661,
+	-1609,
+	3092,
+	-5535,
+	12055,
+	26421,
+	-2403,
+	-342,
+	1149,
+	-1238,
+	1003,
+	-666,
+	359,
+	-146,
+	36,
+	67,
+	-161,
+	266,
+	-309,
+	184,
+	248,
+	-1153,
+	2780,
+	-5886,
+	16319,
+	23762,
+	-4384,
+	1004,
+	298,
+	-759,
+	783,
+	-600,
+	367,
+	-174,
+	56,
+	69,
+	-180,
+	334,
+	-474,
+	496,
+	-243,
+	-498,
+	2073,
+	-5534,
+	20313,
+	20313,
+	-5534,
+	2073,
+	-498,
+	-243,
+	496,
+	-474,
+	334,
+	-180,
+	69,
+	56,
+	-174,
+	367,
+	-600,
+	783,
+	-759,
+	298,
+	1004,
+	-4384,
+	23762,
+	16319,
+	-5886,
+	2780,
+	-1153,
+	248,
+	184,
+	-309,
+	266,
+	-161,
+	67,
+	36,
+	-147,
+	360,
+	-666,
+	1003,
+	-1238,
+	1149,
+	-342,
+	-2403,
+	26421,
+	12055,
+	-5535,
+	3092,
+	-1609,
+	661,
+	-116,
+	-126,
+	175,
+	-128,
+	61,
+	1,
+	-91,
+	300,
+	-651,
+	1120,
+	-1614,
+	1956,
+	-1841,
+	372,
+	28097,
+	7804,
+	-4624,
+	3019,
+	-1834,
+	955,
+	-369,
+	47,
+	79,
+	-86,
+	45,
+	-39,
+	-15,
+	195,
+	-553,
+	1110,
+	-1828,
+	2613,
+	-3330,
+	3832,
+	28670,
+	3832,
+	-3330,
+	2613,
+	-1828,
+	1110,
+	-553,
+	195,
+	-15,
+	-39,
+	1
+
+};
+struct src_stage src_int16_8_7_3750_5100 = {
+	6, 7, 8, 20, 160, 7, 8, 0, 0,
+	src_int16_8_7_3750_5100_fir};
diff --git a/src/include/reef/audio/coefficients/src/src_tiny_int16_define.h b/src/include/reef/audio/coefficients/src/src_tiny_int16_define.h
new file mode 100644
index 0000000..5231cb9
--- /dev/null
+++ b/src/include/reef/audio/coefficients/src/src_tiny_int16_define.h
@@ -0,0 +1,11 @@
+/* SRC constants */
+#define MAX_FIR_DELAY_SIZE 415
+#define MAX_OUT_DELAY_SIZE 401
+#define MAX_BLK_IN 21
+#define MAX_BLK_OUT 21
+#define NUM_IN_FS 6
+#define NUM_OUT_FS 6
+#define STAGE1_TIMES_MAX 21
+#define STAGE2_TIMES_MAX 21
+#define STAGE_BUF_SIZE 168
+#define NUM_ALL_COEFFICIENTS 1320
diff --git a/src/include/reef/audio/coefficients/src/src_tiny_int16_table.h b/src/include/reef/audio/coefficients/src/src_tiny_int16_table.h
new file mode 100644
index 0000000..0d4f9d0
--- /dev/null
+++ b/src/include/reef/audio/coefficients/src/src_tiny_int16_table.h
@@ -0,0 +1,72 @@
+/* SRC conversions */
+#include <reef/audio/coefficients/src/src_tiny_int16_1_2_3750_5100.h>
+#include <reef/audio/coefficients/src/src_tiny_int16_1_3_1875_5100.h>
+#include <reef/audio/coefficients/src/src_tiny_int16_1_3_3750_5100.h>
+#include <reef/audio/coefficients/src/src_tiny_int16_2_1_3750_5100.h>
+#include <reef/audio/coefficients/src/src_tiny_int16_2_3_3750_5100.h>
+#include <reef/audio/coefficients/src/src_tiny_int16_3_1_1875_5100.h>
+#include <reef/audio/coefficients/src/src_tiny_int16_3_1_3750_5100.h>
+#include <reef/audio/coefficients/src/src_tiny_int16_3_2_3750_5100.h>
+#include <reef/audio/coefficients/src/src_tiny_int16_7_8_3750_5100.h>
+#include <reef/audio/coefficients/src/src_tiny_int16_8_7_3750_5100.h>
+#include <reef/audio/coefficients/src/src_tiny_int16_20_21_3445_5100.h>
+#include <reef/audio/coefficients/src/src_tiny_int16_21_20_3445_5100.h>
+
+/* SRC table */
+int16_t fir_one = 16384;
+struct src_stage src_int16_1_1_0_0 =  { 0, 0, 1, 1, 1, 1, 1, 0, -1, &fir_one };
+struct src_stage src_int16_0_0_0_0 =  { 0, 0, 0, 0, 0, 0, 0, 0,  0, &fir_one };
+int src_in_fs[6] = { 8000, 16000, 24000, 32000, 44100, 48000};
+int src_out_fs[6] = { 8000, 16000, 24000, 32000, 44100, 48000};
+struct src_stage *src_table1[6][6] = {
+	{ &src_int16_1_1_0_0, &src_int16_0_0_0_0,
+	 &src_int16_0_0_0_0, &src_int16_0_0_0_0,
+	 &src_int16_0_0_0_0, &src_int16_1_3_1875_5100
+	},
+	{ &src_int16_0_0_0_0, &src_int16_1_1_0_0,
+	 &src_int16_0_0_0_0, &src_int16_0_0_0_0,
+	 &src_int16_0_0_0_0, &src_int16_1_3_3750_5100
+	},
+	{ &src_int16_0_0_0_0, &src_int16_0_0_0_0,
+	 &src_int16_1_1_0_0, &src_int16_0_0_0_0,
+	 &src_int16_0_0_0_0, &src_int16_1_2_3750_5100
+	},
+	{ &src_int16_0_0_0_0, &src_int16_0_0_0_0,
+	 &src_int16_0_0_0_0, &src_int16_1_1_0_0,
+	 &src_int16_0_0_0_0, &src_int16_2_3_3750_5100
+	},
+	{ &src_int16_0_0_0_0, &src_int16_0_0_0_0,
+	 &src_int16_0_0_0_0, &src_int16_0_0_0_0,
+	 &src_int16_1_1_0_0, &src_int16_21_20_3445_5100
+	},
+	{ &src_int16_2_1_3750_5100, &src_int16_3_1_3750_5100,
+	 &src_int16_2_1_3750_5100, &src_int16_3_2_3750_5100,
+	 &src_int16_8_7_3750_5100, &src_int16_1_1_0_0
+	}
+};
+struct src_stage *src_table2[6][6] = {
+	{ &src_int16_1_1_0_0, &src_int16_0_0_0_0,
+	 &src_int16_0_0_0_0, &src_int16_0_0_0_0,
+	 &src_int16_0_0_0_0, &src_int16_1_2_3750_5100
+	},
+	{ &src_int16_0_0_0_0, &src_int16_1_1_0_0,
+	 &src_int16_0_0_0_0, &src_int16_0_0_0_0,
+	 &src_int16_0_0_0_0, &src_int16_1_1_0_0
+	},
+	{ &src_int16_0_0_0_0, &src_int16_0_0_0_0,
+	 &src_int16_1_1_0_0, &src_int16_0_0_0_0,
+	 &src_int16_0_0_0_0, &src_int16_1_1_0_0
+	},
+	{ &src_int16_0_0_0_0, &src_int16_0_0_0_0,
+	 &src_int16_0_0_0_0, &src_int16_1_1_0_0,
+	 &src_int16_0_0_0_0, &src_int16_1_1_0_0
+	},
+	{ &src_int16_0_0_0_0, &src_int16_0_0_0_0,
+	 &src_int16_0_0_0_0, &src_int16_0_0_0_0,
+	 &src_int16_1_1_0_0, &src_int16_7_8_3750_5100
+	},
+	{ &src_int16_3_1_1875_5100, &src_int16_1_1_0_0,
+	 &src_int16_1_1_0_0, &src_int16_1_1_0_0,
+	 &src_int16_20_21_3445_5100, &src_int16_1_1_0_0
+	}
+};
-- 
2.11.0



More information about the Sound-open-firmware mailing list