From 26b8a7aa55fbbca21cb0711df195074d94aa00cd Mon Sep 17 00:00:00 2001 From: Sandesh Venkatesh Date: Tue, 27 Feb 2024 15:14:40 +0530 Subject: [PATCH] Issue 692: Fixes crash due to uninitialized cosine pointer --- lib_com/edct_fx.c | 80 ++++++++ lib_com/rom_com.c | 512 ++++++++++++++++++++++++++++++++++++++++++++++ lib_com/rom_com.h | 4 + 3 files changed, 596 insertions(+) diff --git a/lib_com/edct_fx.c b/lib_com/edct_fx.c index 5b88f1f77..4b628e7d6 100644 --- a/lib_com/edct_fx.c +++ b/lib_com/edct_fx.c @@ -45,10 +45,42 @@ static Word16 get_edxt_factor( Word16 length ) /* Returns value of sqrtf(2.f/len { factor = 5181; } + ELSE IF( EQ_16( length, 40 ) ) + { + factor = 7327; + } ELSE IF( EQ_16( length, 960 ) ) { factor = 1496; } + ELSE IF( EQ_16( length, 480 ) ) + { + factor = 2115; + } + ELSE IF( EQ_16( length, 240 ) ) + { + factor = 2991; + } + ELSE IF( EQ_16( length, 120 ) ) + { + factor = 4230; + } + ELSE IF( EQ_16( length, 1200 ) ) + { + factor = 1338; + } + ELSE IF( EQ_16( length, 800 ) ) + { + factor = 1638; + } + ELSE IF( EQ_16( length, 400 ) ) + { + factor = 2317; + } + ELSE IF( EQ_16( length, 200 ) ) + { + factor = 3277; + } return factor; } @@ -555,12 +587,60 @@ void edxt_fx( sinPtr = sin_scale_tbl_640; n = 8; } + ELSE IF( EQ_16( length, 40 ) ) + { + cosPtr = cos_scale_tbl_640; + sinPtr = sin_scale_tbl_640; + n = 16; + } ELSE IF( EQ_16( length, 960 ) ) { cosPtr = cos_scale_tbl_960; sinPtr = sin_scale_tbl_960; n = 1; } + ELSE IF( EQ_16( length, 480 ) ) + { + cosPtr = cos_scale_tbl_960; + sinPtr = sin_scale_tbl_960; + n = 2; + } + ELSE IF( EQ_16( length, 240 ) ) + { + cosPtr = cos_scale_tbl_960; + sinPtr = sin_scale_tbl_960; + n = 4; + } + ELSE IF( EQ_16( length, 120 ) ) + { + cosPtr = cos_scale_tbl_960; + sinPtr = sin_scale_tbl_960; + n = 8; + } + ELSE IF( EQ_16( length, 1200 ) ) + { + cosPtr = cos_scale_tbl_1200; + sinPtr = sin_scale_tbl_1200; + n = 1; + } + ELSE IF( EQ_16( length, 800 ) ) + { + cosPtr = cos_scale_tbl_800; + sinPtr = sin_scale_tbl_800; + n = 1; + } + ELSE IF( EQ_16( length, 400 ) ) + { + cosPtr = cos_scale_tbl_800; + sinPtr = sin_scale_tbl_800; + n = 2; + } + ELSE IF( EQ_16( length, 200 ) ) + { + cosPtr = cos_scale_tbl_800; + sinPtr = sin_scale_tbl_800; + n = 4; + } #ifdef FAST_EDXT IF( EQ_16( kernelType, MDST_II ) || EQ_16( kernelType, MDCT_II ) ) diff --git a/lib_com/rom_com.c b/lib_com/rom_com.c index 313ae0715..0fe05112e 100644 --- a/lib_com/rom_com.c +++ b/lib_com/rom_com.c @@ -41958,4 +41958,516 @@ const Word16 cos_scale_tbl_512[512] = /* Q15 */ 703, 603, 502, 402, 301, 201, 100 }; + +const Word16 sin_scale_tbl_1200[1200] = { /* Q15 */ + 0, 42, 85, 128, 171, 214, 257, 300, + 343, 386, 428, 471, 514, 557, 600, 643, + 686, 729, 771, 814, 857, 900, 943, 986, + 1029, 1072, 1114, 1157, 1200, 1243, 1286, 1329, + 1372, 1414, 1457, 1500, 1543, 1586, 1629, 1672, + 1714, 1757, 1800, 1843, 1886, 1929, 1971, 2014, + 2057, 2100, 2143, 2185, 2228, 2271, 2314, 2357, + 2399, 2442, 2485, 2528, 2570, 2613, 2656, 2699, + 2741, 2784, 2827, 2870, 2912, 2955, 2998, 3040, + 3083, 3126, 3169, 3211, 3254, 3297, 3339, 3382, + 3425, 3467, 3510, 3553, 3595, 3638, 3680, 3723, + 3766, 3808, 3851, 3893, 3936, 3979, 4021, 4064, + 4106, 4149, 4191, 4234, 4276, 4319, 4361, 4404, + 4446, 4489, 4531, 4574, 4616, 4659, 4701, 4744, + 4786, 4829, 4871, 4913, 4956, 4998, 5041, 5083, + 5125, 5168, 5210, 5252, 5295, 5337, 5379, 5422, + 5464, 5506, 5549, 5591, 5633, 5675, 5718, 5760, + 5802, 5844, 5886, 5929, 5971, 6013, 6055, 6097, + 6139, 6182, 6224, 6266, 6308, 6350, 6392, 6434, + 6476, 6518, 6560, 6602, 6644, 6686, 6728, 6770, + 6812, 6854, 6896, 6938, 6980, 7022, 7064, 7106, + 7147, 7189, 7231, 7273, 7315, 7357, 7398, 7440, + 7482, 7524, 7565, 7607, 7649, 7691, 7732, 7774, + 7816, 7857, 7899, 7940, 7982, 8024, 8065, 8107, + 8148, 8190, 8231, 8273, 8314, 8356, 8397, 8439, + 8480, 8522, 8563, 8604, 8646, 8687, 8729, 8770, + 8811, 8853, 8894, 8935, 8976, 9018, 9059, 9100, + 9141, 9182, 9224, 9265, 9306, 9347, 9388, 9429, + 9470, 9511, 9552, 9593, 9634, 9675, 9716, 9757, + 9798, 9839, 9880, 9921, 9962, 10003, 10043, 10084, + 10125, 10166, 10207, 10247, 10288, 10329, 10370, 10410, + 10451, 10491, 10532, 10573, 10613, 10654, 10694, 10735, + 10775, 10816, 10856, 10897, 10937, 10978, 11018, 11059, + 11099, 11139, 11180, 11220, 11260, 11300, 11341, 11381, + 11421, 11461, 11502, 11542, 11582, 11622, 11662, 11702, + 11742, 11782, 11822, 11862, 11902, 11942, 11982, 12022, + 12062, 12102, 12142, 12181, 12221, 12261, 12301, 12340, + 12380, 12420, 12460, 12499, 12539, 12579, 12618, 12658, + 12697, 12737, 12776, 12816, 12855, 12895, 12934, 12973, + 13013, 13052, 13092, 13131, 13170, 13209, 13249, 13288, + 13327, 13366, 13405, 13444, 13484, 13523, 13562, 13601, + 13640, 13679, 13718, 13757, 13796, 13834, 13873, 13912, + 13951, 13990, 14029, 14067, 14106, 14145, 14183, 14222, + 14261, 14299, 14338, 14376, 14415, 14453, 14492, 14530, + 14569, 14607, 14646, 14684, 14722, 14761, 14799, 14837, + 14875, 14914, 14952, 14990, 15028, 15066, 15104, 15142, + 15180, 15218, 15256, 15294, 15332, 15370, 15408, 15446, + 15484, 15521, 15559, 15597, 15635, 15672, 15710, 15748, + 15785, 15823, 15860, 15898, 15935, 15973, 16010, 16048, + 16085, 16122, 16160, 16197, 16234, 16271, 16309, 16346, + 16383, 16420, 16457, 16494, 16531, 16568, 16605, 16642, + 16679, 16716, 16753, 16790, 16827, 16863, 16900, 16937, + 16974, 17010, 17047, 17084, 17120, 17157, 17193, 17230, + 17266, 17303, 17339, 17375, 17412, 17448, 17484, 17521, + 17557, 17593, 17629, 17665, 17702, 17738, 17774, 17810, + 17846, 17882, 17918, 17953, 17989, 18025, 18061, 18097, + 18132, 18168, 18204, 18240, 18275, 18311, 18346, 18382, + 18417, 18453, 18488, 18524, 18559, 18594, 18630, 18665, + 18700, 18735, 18770, 18806, 18841, 18876, 18911, 18946, + 18981, 19016, 19051, 19086, 19120, 19155, 19190, 19225, + 19259, 19294, 19329, 19363, 19398, 19433, 19467, 19502, + 19536, 19570, 19605, 19639, 19673, 19708, 19742, 19776, + 19810, 19845, 19879, 19913, 19947, 19981, 20015, 20049, + 20083, 20117, 20150, 20184, 20218, 20252, 20285, 20319, + 20353, 20386, 20420, 20453, 20487, 20520, 20554, 20587, + 20620, 20654, 20687, 20720, 20753, 20787, 20820, 20853, + 20886, 20919, 20952, 20985, 21018, 21051, 21084, 21116, + 21149, 21182, 21215, 21247, 21280, 21313, 21345, 21378, + 21410, 21443, 21475, 21507, 21540, 21572, 21604, 21637, + 21669, 21701, 21733, 21765, 21797, 21829, 21861, 21893, + 21925, 21957, 21989, 22020, 22052, 22084, 22115, 22147, + 22179, 22210, 22242, 22273, 22305, 22336, 22367, 22399, + 22430, 22461, 22493, 22524, 22555, 22586, 22617, 22648, + 22679, 22710, 22741, 22772, 22802, 22833, 22864, 22895, + 22925, 22956, 22987, 23017, 23048, 23078, 23109, 23139, + 23169, 23200, 23230, 23260, 23290, 23320, 23351, 23381, + 23411, 23441, 23471, 23500, 23530, 23560, 23590, 23620, + 23649, 23679, 23709, 23738, 23768, 23797, 23827, 23856, + 23886, 23915, 23944, 23974, 24003, 24032, 24061, 24090, + 24119, 24148, 24177, 24206, 24235, 24264, 24293, 24321, + 24350, 24379, 24407, 24436, 24465, 24493, 24522, 24550, + 24578, 24607, 24635, 24663, 24692, 24720, 24748, 24776, + 24804, 24832, 24860, 24888, 24916, 24944, 24971, 24999, + 25027, 25054, 25082, 25110, 25137, 25165, 25192, 25220, + 25247, 25274, 25302, 25329, 25356, 25383, 25410, 25437, + 25464, 25491, 25518, 25545, 25572, 25599, 25625, 25652, + 25679, 25705, 25732, 25759, 25785, 25811, 25838, 25864, + 25891, 25917, 25943, 25969, 25995, 26021, 26047, 26073, + 26099, 26125, 26151, 26177, 26203, 26228, 26254, 26280, + 26305, 26331, 26356, 26382, 26407, 26433, 26458, 26483, + 26509, 26534, 26559, 26584, 26609, 26634, 26659, 26684, + 26709, 26734, 26758, 26783, 26808, 26832, 26857, 26882, + 26906, 26931, 26955, 26979, 27004, 27028, 27052, 27076, + 27100, 27125, 27149, 27173, 27197, 27220, 27244, 27268, + 27292, 27316, 27339, 27363, 27386, 27410, 27433, 27457, + 27480, 27504, 27527, 27550, 27573, 27596, 27620, 27643, + 27666, 27689, 27711, 27734, 27757, 27780, 27803, 27825, + 27848, 27871, 27893, 27916, 27938, 27960, 27983, 28005, + 28027, 28049, 28072, 28094, 28116, 28138, 28160, 28182, + 28203, 28225, 28247, 28269, 28290, 28312, 28334, 28355, + 28377, 28398, 28419, 28441, 28462, 28483, 28504, 28525, + 28547, 28568, 28589, 28610, 28630, 28651, 28672, 28693, + 28713, 28734, 28755, 28775, 28796, 28816, 28837, 28857, + 28877, 28897, 28918, 28938, 28958, 28978, 28998, 29018, + 29038, 29058, 29077, 29097, 29117, 29136, 29156, 29176, + 29195, 29215, 29234, 29253, 29273, 29292, 29311, 29330, + 29349, 29368, 29387, 29406, 29425, 29444, 29463, 29482, + 29500, 29519, 29537, 29556, 29575, 29593, 29611, 29630, + 29648, 29666, 29684, 29703, 29721, 29739, 29757, 29775, + 29792, 29810, 29828, 29846, 29863, 29881, 29899, 29916, + 29934, 29951, 29968, 29986, 30003, 30020, 30037, 30055, + 30072, 30089, 30106, 30122, 30139, 30156, 30173, 30190, + 30206, 30223, 30239, 30256, 30272, 30289, 30305, 30321, + 30338, 30354, 30370, 30386, 30402, 30418, 30434, 30450, + 30465, 30481, 30497, 30513, 30528, 30544, 30559, 30575, + 30590, 30605, 30621, 30636, 30651, 30666, 30681, 30696, + 30711, 30726, 30741, 30756, 30771, 30786, 30800, 30815, + 30829, 30844, 30858, 30873, 30887, 30901, 30916, 30930, + 30944, 30958, 30972, 30986, 31000, 31014, 31028, 31041, + 31055, 31069, 31082, 31096, 31109, 31123, 31136, 31149, + 31163, 31176, 31189, 31202, 31215, 31228, 31241, 31254, + 31267, 31280, 31293, 31305, 31318, 31331, 31343, 31356, + 31368, 31380, 31393, 31405, 31417, 31429, 31441, 31453, + 31465, 31477, 31489, 31501, 31513, 31525, 31536, 31548, + 31559, 31571, 31582, 31594, 31605, 31616, 31628, 31639, + 31650, 31661, 31672, 31683, 31694, 31705, 31716, 31726, + 31737, 31748, 31758, 31769, 31779, 31790, 31800, 31810, + 31821, 31831, 31841, 31851, 31861, 31871, 31881, 31891, + 31901, 31911, 31920, 31930, 31940, 31949, 31959, 31968, + 31977, 31987, 31996, 32005, 32014, 32023, 32033, 32042, + 32050, 32059, 32068, 32077, 32086, 32094, 32103, 32112, + 32120, 32128, 32137, 32145, 32154, 32162, 32170, 32178, + 32186, 32194, 32202, 32210, 32218, 32226, 32233, 32241, + 32249, 32256, 32264, 32271, 32279, 32286, 32293, 32300, + 32308, 32315, 32322, 32329, 32336, 32343, 32350, 32356, + 32363, 32370, 32376, 32383, 32389, 32396, 32402, 32409, + 32415, 32421, 32427, 32434, 32440, 32446, 32452, 32457, + 32463, 32469, 32475, 32481, 32486, 32492, 32497, 32503, + 32508, 32513, 32519, 32524, 32529, 32534, 32539, 32544, + 32549, 32554, 32559, 32564, 32569, 32573, 32578, 32582, + 32587, 32591, 32596, 32600, 32604, 32609, 32613, 32617, + 32621, 32625, 32629, 32633, 32637, 32641, 32644, 32648, + 32652, 32655, 32659, 32662, 32665, 32669, 32672, 32675, + 32679, 32682, 32685, 32688, 32691, 32694, 32696, 32699, + 32702, 32705, 32707, 32710, 32712, 32715, 32717, 32719, + 32722, 32724, 32726, 32728, 32730, 32732, 32734, 32736, + 32738, 32740, 32741, 32743, 32744, 32746, 32748, 32749, + 32750, 32752, 32753, 32754, 32755, 32756, 32757, 32758, + 32759, 32760, 32761, 32762, 32762, 32763, 32764, 32764, + 32765, 32765, 32765, 32766, 32766, 32766, 32766, 32766 +}; + +const Word16 cos_scale_tbl_1200[1200] = { /* Q15 */ + 0, 42, 85, 128, 171, 214, 257, 300, + 343, 386, 428, 471, 514, 557, 600, 643, + 686, 729, 771, 814, 857, 900, 943, 986, + 1029, 1072, 1114, 1157, 1200, 1243, 1286, 1329, + 1372, 1414, 1457, 1500, 1543, 1586, 1629, 1672, + 1714, 1757, 1800, 1843, 1886, 1929, 1971, 2014, + 2057, 2100, 2143, 2185, 2228, 2271, 2314, 2357, + 2399, 2442, 2485, 2528, 2570, 2613, 2656, 2699, + 2741, 2784, 2827, 2870, 2912, 2955, 2998, 3040, + 3083, 3126, 3169, 3211, 3254, 3297, 3339, 3382, + 3425, 3467, 3510, 3553, 3595, 3638, 3680, 3723, + 3766, 3808, 3851, 3893, 3936, 3979, 4021, 4064, + 4106, 4149, 4191, 4234, 4276, 4319, 4361, 4404, + 4446, 4489, 4531, 4574, 4616, 4659, 4701, 4744, + 4786, 4829, 4871, 4913, 4956, 4998, 5041, 5083, + 5125, 5168, 5210, 5252, 5295, 5337, 5379, 5422, + 5464, 5506, 5549, 5591, 5633, 5675, 5718, 5760, + 5802, 5844, 5886, 5929, 5971, 6013, 6055, 6097, + 6139, 6182, 6224, 6266, 6308, 6350, 6392, 6434, + 6476, 6518, 6560, 6602, 6644, 6686, 6728, 6770, + 6812, 6854, 6896, 6938, 6980, 7022, 7064, 7106, + 7147, 7189, 7231, 7273, 7315, 7357, 7398, 7440, + 7482, 7524, 7565, 7607, 7649, 7691, 7732, 7774, + 7816, 7857, 7899, 7940, 7982, 8024, 8065, 8107, + 8148, 8190, 8231, 8273, 8314, 8356, 8397, 8439, + 8480, 8522, 8563, 8604, 8646, 8687, 8729, 8770, + 8811, 8853, 8894, 8935, 8976, 9018, 9059, 9100, + 9141, 9182, 9224, 9265, 9306, 9347, 9388, 9429, + 9470, 9511, 9552, 9593, 9634, 9675, 9716, 9757, + 9798, 9839, 9880, 9921, 9962, 10003, 10043, 10084, + 10125, 10166, 10207, 10247, 10288, 10329, 10370, 10410, + 10451, 10491, 10532, 10573, 10613, 10654, 10694, 10735, + 10775, 10816, 10856, 10897, 10937, 10978, 11018, 11059, + 11099, 11139, 11180, 11220, 11260, 11300, 11341, 11381, + 11421, 11461, 11502, 11542, 11582, 11622, 11662, 11702, + 11742, 11782, 11822, 11862, 11902, 11942, 11982, 12022, + 12062, 12102, 12142, 12181, 12221, 12261, 12301, 12340, + 12380, 12420, 12460, 12499, 12539, 12579, 12618, 12658, + 12697, 12737, 12776, 12816, 12855, 12895, 12934, 12973, + 13013, 13052, 13092, 13131, 13170, 13209, 13249, 13288, + 13327, 13366, 13405, 13444, 13484, 13523, 13562, 13601, + 13640, 13679, 13718, 13757, 13796, 13834, 13873, 13912, + 13951, 13990, 14029, 14067, 14106, 14145, 14183, 14222, + 14261, 14299, 14338, 14376, 14415, 14453, 14492, 14530, + 14569, 14607, 14646, 14684, 14722, 14761, 14799, 14837, + 14875, 14914, 14952, 14990, 15028, 15066, 15104, 15142, + 15180, 15218, 15256, 15294, 15332, 15370, 15408, 15446, + 15484, 15521, 15559, 15597, 15635, 15672, 15710, 15748, + 15785, 15823, 15860, 15898, 15935, 15973, 16010, 16048, + 16085, 16122, 16160, 16197, 16234, 16271, 16309, 16346, + 16383, 16420, 16457, 16494, 16531, 16568, 16605, 16642, + 16679, 16716, 16753, 16790, 16827, 16863, 16900, 16937, + 16974, 17010, 17047, 17084, 17120, 17157, 17193, 17230, + 17266, 17303, 17339, 17375, 17412, 17448, 17484, 17521, + 17557, 17593, 17629, 17665, 17702, 17738, 17774, 17810, + 17846, 17882, 17918, 17953, 17989, 18025, 18061, 18097, + 18132, 18168, 18204, 18240, 18275, 18311, 18346, 18382, + 18417, 18453, 18488, 18524, 18559, 18594, 18630, 18665, + 18700, 18735, 18770, 18806, 18841, 18876, 18911, 18946, + 18981, 19016, 19051, 19086, 19120, 19155, 19190, 19225, + 19259, 19294, 19329, 19363, 19398, 19433, 19467, 19502, + 19536, 19570, 19605, 19639, 19673, 19708, 19742, 19776, + 19810, 19845, 19879, 19913, 19947, 19981, 20015, 20049, + 20083, 20117, 20150, 20184, 20218, 20252, 20285, 20319, + 20353, 20386, 20420, 20453, 20487, 20520, 20554, 20587, + 20620, 20654, 20687, 20720, 20753, 20787, 20820, 20853, + 20886, 20919, 20952, 20985, 21018, 21051, 21084, 21116, + 21149, 21182, 21215, 21247, 21280, 21313, 21345, 21378, + 21410, 21443, 21475, 21507, 21540, 21572, 21604, 21637, + 21669, 21701, 21733, 21765, 21797, 21829, 21861, 21893, + 21925, 21957, 21989, 22020, 22052, 22084, 22115, 22147, + 22179, 22210, 22242, 22273, 22305, 22336, 22367, 22399, + 22430, 22461, 22493, 22524, 22555, 22586, 22617, 22648, + 22679, 22710, 22741, 22772, 22802, 22833, 22864, 22895, + 22925, 22956, 22987, 23017, 23048, 23078, 23109, 23139, + 23169, 23200, 23230, 23260, 23290, 23320, 23351, 23381, + 23411, 23441, 23471, 23500, 23530, 23560, 23590, 23620, + 23649, 23679, 23709, 23738, 23768, 23797, 23827, 23856, + 23886, 23915, 23944, 23974, 24003, 24032, 24061, 24090, + 24119, 24148, 24177, 24206, 24235, 24264, 24293, 24321, + 24350, 24379, 24407, 24436, 24465, 24493, 24522, 24550, + 24578, 24607, 24635, 24663, 24692, 24720, 24748, 24776, + 24804, 24832, 24860, 24888, 24916, 24944, 24971, 24999, + 25027, 25054, 25082, 25110, 25137, 25165, 25192, 25220, + 25247, 25274, 25302, 25329, 25356, 25383, 25410, 25437, + 25464, 25491, 25518, 25545, 25572, 25599, 25625, 25652, + 25679, 25705, 25732, 25759, 25785, 25811, 25838, 25864, + 25891, 25917, 25943, 25969, 25995, 26021, 26047, 26073, + 26099, 26125, 26151, 26177, 26203, 26228, 26254, 26280, + 26305, 26331, 26356, 26382, 26407, 26433, 26458, 26483, + 26509, 26534, 26559, 26584, 26609, 26634, 26659, 26684, + 26709, 26734, 26758, 26783, 26808, 26832, 26857, 26882, + 26906, 26931, 26955, 26979, 27004, 27028, 27052, 27076, + 27100, 27125, 27149, 27173, 27197, 27220, 27244, 27268, + 27292, 27316, 27339, 27363, 27386, 27410, 27433, 27457, + 27480, 27504, 27527, 27550, 27573, 27596, 27620, 27643, + 27666, 27689, 27711, 27734, 27757, 27780, 27803, 27825, + 27848, 27871, 27893, 27916, 27938, 27960, 27983, 28005, + 28027, 28049, 28072, 28094, 28116, 28138, 28160, 28182, + 28203, 28225, 28247, 28269, 28290, 28312, 28334, 28355, + 28377, 28398, 28419, 28441, 28462, 28483, 28504, 28525, + 28547, 28568, 28589, 28610, 28630, 28651, 28672, 28693, + 28713, 28734, 28755, 28775, 28796, 28816, 28837, 28857, + 28877, 28897, 28918, 28938, 28958, 28978, 28998, 29018, + 29038, 29058, 29077, 29097, 29117, 29136, 29156, 29176, + 29195, 29215, 29234, 29253, 29273, 29292, 29311, 29330, + 29349, 29368, 29387, 29406, 29425, 29444, 29463, 29482, + 29500, 29519, 29537, 29556, 29575, 29593, 29611, 29630, + 29648, 29666, 29684, 29703, 29721, 29739, 29757, 29775, + 29792, 29810, 29828, 29846, 29863, 29881, 29899, 29916, + 29934, 29951, 29968, 29986, 30003, 30020, 30037, 30055, + 30072, 30089, 30106, 30122, 30139, 30156, 30173, 30190, + 30206, 30223, 30239, 30256, 30272, 30289, 30305, 30321, + 30338, 30354, 30370, 30386, 30402, 30418, 30434, 30450, + 30465, 30481, 30497, 30513, 30528, 30544, 30559, 30575, + 30590, 30605, 30621, 30636, 30651, 30666, 30681, 30696, + 30711, 30726, 30741, 30756, 30771, 30786, 30800, 30815, + 30829, 30844, 30858, 30873, 30887, 30901, 30916, 30930, + 30944, 30958, 30972, 30986, 31000, 31014, 31028, 31041, + 31055, 31069, 31082, 31096, 31109, 31123, 31136, 31149, + 31163, 31176, 31189, 31202, 31215, 31228, 31241, 31254, + 31267, 31280, 31293, 31305, 31318, 31331, 31343, 31356, + 31368, 31380, 31393, 31405, 31417, 31429, 31441, 31453, + 31465, 31477, 31489, 31501, 31513, 31525, 31536, 31548, + 31559, 31571, 31582, 31594, 31605, 31616, 31628, 31639, + 31650, 31661, 31672, 31683, 31694, 31705, 31716, 31726, + 31737, 31748, 31758, 31769, 31779, 31790, 31800, 31810, + 31821, 31831, 31841, 31851, 31861, 31871, 31881, 31891, + 31901, 31911, 31920, 31930, 31940, 31949, 31959, 31968, + 31977, 31987, 31996, 32005, 32014, 32023, 32033, 32042, + 32050, 32059, 32068, 32077, 32086, 32094, 32103, 32112, + 32120, 32128, 32137, 32145, 32154, 32162, 32170, 32178, + 32186, 32194, 32202, 32210, 32218, 32226, 32233, 32241, + 32249, 32256, 32264, 32271, 32279, 32286, 32293, 32300, + 32308, 32315, 32322, 32329, 32336, 32343, 32350, 32356, + 32363, 32370, 32376, 32383, 32389, 32396, 32402, 32409, + 32415, 32421, 32427, 32434, 32440, 32446, 32452, 32457, + 32463, 32469, 32475, 32481, 32486, 32492, 32497, 32503, + 32508, 32513, 32519, 32524, 32529, 32534, 32539, 32544, + 32549, 32554, 32559, 32564, 32569, 32573, 32578, 32582, + 32587, 32591, 32596, 32600, 32604, 32609, 32613, 32617, + 32621, 32625, 32629, 32633, 32637, 32641, 32644, 32648, + 32652, 32655, 32659, 32662, 32665, 32669, 32672, 32675, + 32679, 32682, 32685, 32688, 32691, 32694, 32696, 32699, + 32702, 32705, 32707, 32710, 32712, 32715, 32717, 32719, + 32722, 32724, 32726, 32728, 32730, 32732, 32734, 32736, + 32738, 32740, 32741, 32743, 32744, 32746, 32748, 32749, + 32750, 32752, 32753, 32754, 32755, 32756, 32757, 32758, + 32759, 32760, 32761, 32762, 32762, 32763, 32764, 32764, + 32765, 32765, 32765, 32766, 32766, 32766, 32766, 32766 +}; + +const Word16 sin_scale_tbl_800[800] = { /* Q15 */ + 0, 64, 128, 193, 257, 321, 386, 450, + 514, 579, 643, 707, 771, 836, 900, 964, + 1029, 1093, 1157, 1222, 1286, 1350, 1414, 1479, + 1543, 1607, 1672, 1736, 1800, 1864, 1929, 1993, + 2057, 2121, 2185, 2250, 2314, 2378, 2442, 2506, + 2570, 2635, 2699, 2763, 2827, 2891, 2955, 3019, + 3083, 3147, 3211, 3275, 3339, 3403, 3467, 3531, + 3595, 3659, 3723, 3787, 3851, 3915, 3979, 4042, + 4106, 4170, 4234, 4298, 4361, 4425, 4489, 4553, + 4616, 4680, 4744, 4807, 4871, 4935, 4998, 5062, + 5125, 5189, 5252, 5316, 5379, 5443, 5506, 5570, + 5633, 5696, 5760, 5823, 5886, 5950, 6013, 6076, + 6139, 6203, 6266, 6329, 6392, 6455, 6518, 6581, + 6644, 6707, 6770, 6833, 6896, 6959, 7022, 7085, + 7147, 7210, 7273, 7336, 7398, 7461, 7524, 7586, + 7649, 7711, 7774, 7836, 7899, 7961, 8024, 8086, + 8148, 8211, 8273, 8335, 8397, 8460, 8522, 8584, + 8646, 8708, 8770, 8832, 8894, 8956, 9018, 9079, + 9141, 9203, 9265, 9326, 9388, 9450, 9511, 9573, + 9634, 9696, 9757, 9819, 9880, 9941, 10003, 10064, + 10125, 10186, 10247, 10308, 10370, 10431, 10491, 10552, + 10613, 10674, 10735, 10796, 10856, 10917, 10978, 11038, + 11099, 11159, 11220, 11280, 11341, 11401, 11461, 11522, + 11582, 11642, 11702, 11762, 11822, 11882, 11942, 12002, + 12062, 12122, 12181, 12241, 12301, 12360, 12420, 12479, + 12539, 12598, 12658, 12717, 12776, 12835, 12895, 12954, + 13013, 13072, 13131, 13190, 13249, 13307, 13366, 13425, + 13484, 13542, 13601, 13659, 13718, 13776, 13834, 13893, + 13951, 14009, 14067, 14125, 14183, 14241, 14299, 14357, + 14415, 14473, 14530, 14588, 14646, 14703, 14761, 14818, + 14875, 14933, 14990, 15047, 15104, 15161, 15218, 15275, + 15332, 15389, 15446, 15502, 15559, 15616, 15672, 15729, + 15785, 15841, 15898, 15954, 16010, 16066, 16122, 16178, + 16234, 16290, 16346, 16402, 16457, 16513, 16568, 16624, + 16679, 16735, 16790, 16845, 16900, 16955, 17010, 17065, + 17120, 17175, 17230, 17284, 17339, 17394, 17448, 17503, + 17557, 17611, 17665, 17720, 17774, 17828, 17882, 17936, + 17989, 18043, 18097, 18150, 18204, 18257, 18311, 18364, + 18417, 18470, 18524, 18577, 18630, 18682, 18735, 18788, + 18841, 18893, 18946, 18998, 19051, 19103, 19155, 19207, + 19259, 19311, 19363, 19415, 19467, 19519, 19570, 19622, + 19673, 19725, 19776, 19827, 19879, 19930, 19981, 20032, + 20083, 20133, 20184, 20235, 20285, 20336, 20386, 20437, + 20487, 20537, 20587, 20637, 20687, 20737, 20787, 20836, + 20886, 20936, 20985, 21034, 21084, 21133, 21182, 21231, + 21280, 21329, 21378, 21426, 21475, 21524, 21572, 21620, + 21669, 21717, 21765, 21813, 21861, 21909, 21957, 22004, + 22052, 22100, 22147, 22194, 22242, 22289, 22336, 22383, + 22430, 22477, 22524, 22570, 22617, 22663, 22710, 22756, + 22802, 22849, 22895, 22941, 22987, 23032, 23078, 23124, + 23169, 23215, 23260, 23305, 23351, 23396, 23441, 23486, + 23530, 23575, 23620, 23664, 23709, 23753, 23797, 23842, + 23886, 23930, 23974, 24017, 24061, 24105, 24148, 24192, + 24235, 24278, 24321, 24364, 24407, 24450, 24493, 24536, + 24578, 24621, 24663, 24706, 24748, 24790, 24832, 24874, + 24916, 24957, 24999, 25041, 25082, 25123, 25165, 25206, + 25247, 25288, 25329, 25370, 25410, 25451, 25491, 25532, + 25572, 25612, 25652, 25692, 25732, 25772, 25811, 25851, + 25891, 25930, 25969, 26008, 26047, 26086, 26125, 26164, + 26203, 26241, 26280, 26318, 26356, 26395, 26433, 26471, + 26509, 26546, 26584, 26622, 26659, 26696, 26734, 26771, + 26808, 26845, 26882, 26918, 26955, 26991, 27028, 27064, + 27100, 27137, 27173, 27208, 27244, 27280, 27316, 27351, + 27386, 27422, 27457, 27492, 27527, 27562, 27596, 27631, + 27666, 27700, 27734, 27769, 27803, 27837, 27871, 27904, + 27938, 27972, 28005, 28038, 28072, 28105, 28138, 28171, + 28203, 28236, 28269, 28301, 28334, 28366, 28398, 28430, + 28462, 28494, 28525, 28557, 28589, 28620, 28651, 28682, + 28713, 28744, 28775, 28806, 28837, 28867, 28897, 28928, + 28958, 28988, 29018, 29048, 29077, 29107, 29136, 29166, + 29195, 29224, 29253, 29282, 29311, 29340, 29368, 29397, + 29425, 29453, 29482, 29510, 29537, 29565, 29593, 29621, + 29648, 29675, 29703, 29730, 29757, 29784, 29810, 29837, + 29863, 29890, 29916, 29942, 29968, 29994, 30020, 30046, + 30072, 30097, 30122, 30148, 30173, 30198, 30223, 30248, + 30272, 30297, 30321, 30346, 30370, 30394, 30418, 30442, + 30465, 30489, 30513, 30536, 30559, 30582, 30605, 30628, + 30651, 30674, 30696, 30719, 30741, 30763, 30786, 30807, + 30829, 30851, 30873, 30894, 30916, 30937, 30958, 30979, + 31000, 31021, 31041, 31062, 31082, 31103, 31123, 31143, + 31163, 31183, 31202, 31222, 31241, 31261, 31280, 31299, + 31318, 31337, 31356, 31374, 31393, 31411, 31429, 31447, + 31465, 31483, 31501, 31519, 31536, 31554, 31571, 31588, + 31605, 31622, 31639, 31656, 31672, 31689, 31705, 31721, + 31737, 31753, 31769, 31785, 31800, 31816, 31831, 31846, + 31861, 31876, 31891, 31906, 31920, 31935, 31949, 31963, + 31977, 31991, 32005, 32019, 32033, 32046, 32059, 32073, + 32086, 32099, 32112, 32124, 32137, 32149, 32162, 32174, + 32186, 32198, 32210, 32222, 32233, 32245, 32256, 32267, + 32279, 32290, 32300, 32311, 32322, 32332, 32343, 32353, + 32363, 32373, 32383, 32393, 32402, 32412, 32421, 32430, + 32440, 32449, 32457, 32466, 32475, 32483, 32492, 32500, + 32508, 32516, 32524, 32532, 32539, 32547, 32554, 32561, + 32569, 32576, 32582, 32589, 32596, 32602, 32609, 32615, + 32621, 32627, 32633, 32639, 32644, 32650, 32655, 32660, + 32665, 32670, 32675, 32680, 32685, 32689, 32694, 32698, + 32702, 32706, 32710, 32713, 32717, 32720, 32724, 32727, + 32730, 32733, 32736, 32739, 32741, 32744, 32746, 32748, + 32750, 32752, 32754, 32756, 32757, 32759, 32760, 32761, + 32762, 32763, 32764, 32765, 32765, 32766, 32766, 32766 +}; + +const Word16 cos_scale_tbl_800[800] = { /* Q15 */ + 0, 64, 128, 193, 257, 321, 386, 450, + 514, 579, 643, 707, 771, 836, 900, 964, + 1029, 1093, 1157, 1222, 1286, 1350, 1414, 1479, + 1543, 1607, 1672, 1736, 1800, 1864, 1929, 1993, + 2057, 2121, 2185, 2250, 2314, 2378, 2442, 2506, + 2570, 2635, 2699, 2763, 2827, 2891, 2955, 3019, + 3083, 3147, 3211, 3275, 3339, 3403, 3467, 3531, + 3595, 3659, 3723, 3787, 3851, 3915, 3979, 4042, + 4106, 4170, 4234, 4298, 4361, 4425, 4489, 4553, + 4616, 4680, 4744, 4807, 4871, 4935, 4998, 5062, + 5125, 5189, 5252, 5316, 5379, 5443, 5506, 5570, + 5633, 5696, 5760, 5823, 5886, 5950, 6013, 6076, + 6139, 6203, 6266, 6329, 6392, 6455, 6518, 6581, + 6644, 6707, 6770, 6833, 6896, 6959, 7022, 7085, + 7147, 7210, 7273, 7336, 7398, 7461, 7524, 7586, + 7649, 7711, 7774, 7836, 7899, 7961, 8024, 8086, + 8148, 8211, 8273, 8335, 8397, 8460, 8522, 8584, + 8646, 8708, 8770, 8832, 8894, 8956, 9018, 9079, + 9141, 9203, 9265, 9326, 9388, 9450, 9511, 9573, + 9634, 9696, 9757, 9819, 9880, 9941, 10003, 10064, + 10125, 10186, 10247, 10308, 10370, 10431, 10491, 10552, + 10613, 10674, 10735, 10796, 10856, 10917, 10978, 11038, + 11099, 11159, 11220, 11280, 11341, 11401, 11461, 11522, + 11582, 11642, 11702, 11762, 11822, 11882, 11942, 12002, + 12062, 12122, 12181, 12241, 12301, 12360, 12420, 12479, + 12539, 12598, 12658, 12717, 12776, 12835, 12895, 12954, + 13013, 13072, 13131, 13190, 13249, 13307, 13366, 13425, + 13484, 13542, 13601, 13659, 13718, 13776, 13834, 13893, + 13951, 14009, 14067, 14125, 14183, 14241, 14299, 14357, + 14415, 14473, 14530, 14588, 14646, 14703, 14761, 14818, + 14875, 14933, 14990, 15047, 15104, 15161, 15218, 15275, + 15332, 15389, 15446, 15502, 15559, 15616, 15672, 15729, + 15785, 15841, 15898, 15954, 16010, 16066, 16122, 16178, + 16234, 16290, 16346, 16402, 16457, 16513, 16568, 16624, + 16679, 16735, 16790, 16845, 16900, 16955, 17010, 17065, + 17120, 17175, 17230, 17284, 17339, 17394, 17448, 17503, + 17557, 17611, 17665, 17720, 17774, 17828, 17882, 17936, + 17989, 18043, 18097, 18150, 18204, 18257, 18311, 18364, + 18417, 18470, 18524, 18577, 18630, 18682, 18735, 18788, + 18841, 18893, 18946, 18998, 19051, 19103, 19155, 19207, + 19259, 19311, 19363, 19415, 19467, 19519, 19570, 19622, + 19673, 19725, 19776, 19827, 19879, 19930, 19981, 20032, + 20083, 20133, 20184, 20235, 20285, 20336, 20386, 20437, + 20487, 20537, 20587, 20637, 20687, 20737, 20787, 20836, + 20886, 20936, 20985, 21034, 21084, 21133, 21182, 21231, + 21280, 21329, 21378, 21426, 21475, 21524, 21572, 21620, + 21669, 21717, 21765, 21813, 21861, 21909, 21957, 22004, + 22052, 22100, 22147, 22194, 22242, 22289, 22336, 22383, + 22430, 22477, 22524, 22570, 22617, 22663, 22710, 22756, + 22802, 22849, 22895, 22941, 22987, 23032, 23078, 23124, + 23169, 23215, 23260, 23305, 23351, 23396, 23441, 23486, + 23530, 23575, 23620, 23664, 23709, 23753, 23797, 23842, + 23886, 23930, 23974, 24017, 24061, 24105, 24148, 24192, + 24235, 24278, 24321, 24364, 24407, 24450, 24493, 24536, + 24578, 24621, 24663, 24706, 24748, 24790, 24832, 24874, + 24916, 24957, 24999, 25041, 25082, 25123, 25165, 25206, + 25247, 25288, 25329, 25370, 25410, 25451, 25491, 25532, + 25572, 25612, 25652, 25692, 25732, 25772, 25811, 25851, + 25891, 25930, 25969, 26008, 26047, 26086, 26125, 26164, + 26203, 26241, 26280, 26318, 26356, 26395, 26433, 26471, + 26509, 26546, 26584, 26622, 26659, 26696, 26734, 26771, + 26808, 26845, 26882, 26918, 26955, 26991, 27028, 27064, + 27100, 27137, 27173, 27208, 27244, 27280, 27316, 27351, + 27386, 27422, 27457, 27492, 27527, 27562, 27596, 27631, + 27666, 27700, 27734, 27769, 27803, 27837, 27871, 27904, + 27938, 27972, 28005, 28038, 28072, 28105, 28138, 28171, + 28203, 28236, 28269, 28301, 28334, 28366, 28398, 28430, + 28462, 28494, 28525, 28557, 28589, 28620, 28651, 28682, + 28713, 28744, 28775, 28806, 28837, 28867, 28897, 28928, + 28958, 28988, 29018, 29048, 29077, 29107, 29136, 29166, + 29195, 29224, 29253, 29282, 29311, 29340, 29368, 29397, + 29425, 29453, 29482, 29510, 29537, 29565, 29593, 29621, + 29648, 29675, 29703, 29730, 29757, 29784, 29810, 29837, + 29863, 29890, 29916, 29942, 29968, 29994, 30020, 30046, + 30072, 30097, 30122, 30148, 30173, 30198, 30223, 30248, + 30272, 30297, 30321, 30346, 30370, 30394, 30418, 30442, + 30465, 30489, 30513, 30536, 30559, 30582, 30605, 30628, + 30651, 30674, 30696, 30719, 30741, 30763, 30786, 30807, + 30829, 30851, 30873, 30894, 30916, 30937, 30958, 30979, + 31000, 31021, 31041, 31062, 31082, 31103, 31123, 31143, + 31163, 31183, 31202, 31222, 31241, 31261, 31280, 31299, + 31318, 31337, 31356, 31374, 31393, 31411, 31429, 31447, + 31465, 31483, 31501, 31519, 31536, 31554, 31571, 31588, + 31605, 31622, 31639, 31656, 31672, 31689, 31705, 31721, + 31737, 31753, 31769, 31785, 31800, 31816, 31831, 31846, + 31861, 31876, 31891, 31906, 31920, 31935, 31949, 31963, + 31977, 31991, 32005, 32019, 32033, 32046, 32059, 32073, + 32086, 32099, 32112, 32124, 32137, 32149, 32162, 32174, + 32186, 32198, 32210, 32222, 32233, 32245, 32256, 32267, + 32279, 32290, 32300, 32311, 32322, 32332, 32343, 32353, + 32363, 32373, 32383, 32393, 32402, 32412, 32421, 32430, + 32440, 32449, 32457, 32466, 32475, 32483, 32492, 32500, + 32508, 32516, 32524, 32532, 32539, 32547, 32554, 32561, + 32569, 32576, 32582, 32589, 32596, 32602, 32609, 32615, + 32621, 32627, 32633, 32639, 32644, 32650, 32655, 32660, + 32665, 32670, 32675, 32680, 32685, 32689, 32694, 32698, + 32702, 32706, 32710, 32713, 32717, 32720, 32724, 32727, + 32730, 32733, 32736, 32739, 32741, 32744, 32746, 32748, + 32750, 32752, 32754, 32756, 32757, 32759, 32760, 32761, + 32762, 32763, 32764, 32765, 32765, 32766, 32766, 32766 +}; #endif // IVAS_FLOAT_FIXED diff --git a/lib_com/rom_com.h b/lib_com/rom_com.h index 86a2e82c0..e662b8a99 100644 --- a/lib_com/rom_com.h +++ b/lib_com/rom_com.h @@ -2134,4 +2134,8 @@ extern const Word16 cos_scale_tbl_640[640]; extern const Word16 sin_scale_tbl_640[640]; extern const Word16 sin_scale_tbl_512[512]; extern const Word16 cos_scale_tbl_512[512]; +extern const Word16 cos_scale_tbl_1200[1200]; +extern const Word16 sin_scale_tbl_1200[1200]; +extern const Word16 cos_scale_tbl_800[800]; +extern const Word16 sin_scale_tbl_800[800]; #endif -- GitLab