From 06d432c51833b340975e53e2cdd2caece0cdd52f Mon Sep 17 00:00:00 2001 From: Sandesh Venkatesh Date: Fri, 5 Jul 2024 11:57:58 +0530 Subject: [PATCH] BASOP and instrumentation for lib_rend module files --- lib_dec/d_gain2p_fx.c | 2 +- lib_rend/ivas_reverb_iir_filter.c | 26 ++++++- lib_rend/ivas_rom_TdBinauralRenderer.c | 63 ++++++++--------- lib_rend/ivas_rom_TdBinauralRenderer.h | 46 +++++++------ lib_rend/ivas_rom_binauralRenderer.c | 93 +++++++++++++++++++------- lib_rend/ivas_rom_binauralRenderer.h | 30 ++++----- lib_util/vector3_pair_file_reader.c | 16 +++++ 7 files changed, 176 insertions(+), 100 deletions(-) diff --git a/lib_dec/d_gain2p_fx.c b/lib_dec/d_gain2p_fx.c index 7ab2dec98..1507c284e 100644 --- a/lib_dec/d_gain2p_fx.c +++ b/lib_dec/d_gain2p_fx.c @@ -106,7 +106,7 @@ static void Mode2_gain_dec_mless_fx( /*-----------------------------------------------------------------* * decode pitch gain *-----------------------------------------------------------------*/ - *gain_pit = t_qua_gain[index * 2]; + *gain_pit = t_qua_gain[shl( index, 1 )]; move16(); /*-----------------------------------------------------------------* * calculate the predicted gain code diff --git a/lib_rend/ivas_reverb_iir_filter.c b/lib_rend/ivas_reverb_iir_filter.c index 03745f6b8..1f1508b5e 100644 --- a/lib_rend/ivas_reverb_iir_filter.c +++ b/lib_rend/ivas_reverb_iir_filter.c @@ -54,9 +54,13 @@ void ivas_reverb_iir_filt_init( ) { iirFilter->MaxTaps = maxTaps; + move16(); iirFilter->isFIR = 0; + move16(); iirFilter->nr_taps = 0; /* filter is set to PASS i.e. input copy to output */ + move16(); iirFilter->Output_fx = 0; + move32(); FOR( UWord16 i = 0; i < maxTaps; i++ ) { @@ -114,19 +118,23 @@ void ivas_reverb_iir_filt_set( { UWord16 i; - IF( GT_32( nr_taps, iirFilter->MaxTaps ) ) + if ( GT_32( nr_taps, iirFilter->MaxTaps ) ) { nr_taps = (UWord16) iirFilter->MaxTaps; + move16(); } iirFilter->nr_taps = nr_taps; + move16(); iirFilter->isFIR = ( coefA == NULL ); + move16(); IF( iirFilter->isFIR != 0 ) { FOR( i = 0; i < iirFilter->nr_taps; i++ ) { iirFilter->CoefB_fx[i] = L_shl( coefB[i], 16 ); /*Q30*/ + move32(); } } ELSE @@ -134,7 +142,9 @@ void ivas_reverb_iir_filt_set( FOR( i = 0; i < iirFilter->nr_taps; i++ ) { iirFilter->CoefA_fx[i] = L_shl( coefA[i], 16 ); /*Q30*/ + move32(); iirFilter->CoefB_fx[i] = L_shl( coefB[i], 16 ); /*Q30*/ + move32(); } } @@ -199,20 +209,30 @@ void ivas_reverb_iir_filt_2taps_feed_blk_fx( { UWord16 i; Word32 flt_output_fx = 0; + move32(); Word32 flt_CoefB_0_fx = iirFilter->CoefB_fx[0]; + move32(); Word32 flt_CoefB_1_fx = iirFilter->CoefB_fx[1]; + move32(); Word32 flt_CoefA_1_fx = iirFilter->CoefA_fx[1]; + move32(); Word32 flt_pBuffer_0_fx = iirFilter->pBuffer_fx[0]; + move32(); Word32 flt_pBuffer_1_fx = iirFilter->pBuffer_fx[1]; + move32(); for ( i = 0; i < blk_size; i++ ) { - flt_output_fx = L_add( Mpy_32_32( input[i] << 1, flt_CoefB_0_fx ), flt_pBuffer_0_fx ); - flt_pBuffer_0_fx = L_sub( L_add( flt_pBuffer_1_fx, Mpy_32_32( input[i] << 1, flt_CoefB_1_fx ) ), Mpy_32_32( flt_output_fx << 1, flt_CoefA_1_fx ) ); + flt_output_fx = L_add( Mpy_32_32( L_shl( input[i], 1 ), flt_CoefB_0_fx ), flt_pBuffer_0_fx ); + flt_pBuffer_0_fx = L_sub( L_add( flt_pBuffer_1_fx, Mpy_32_32( L_shl( input[i], 1 ), flt_CoefB_1_fx ) ), Mpy_32_32( L_shl( flt_output_fx, 1 ), flt_CoefA_1_fx ) ); output[i] = flt_output_fx; + move32(); } iirFilter->pBuffer_fx[0] = flt_pBuffer_0_fx; + move32(); iirFilter->pBuffer_fx[1] = flt_pBuffer_1_fx; + move32(); iirFilter->Output_fx = flt_output_fx; + move32(); return; } diff --git a/lib_rend/ivas_rom_TdBinauralRenderer.c b/lib_rend/ivas_rom_TdBinauralRenderer.c index 2bd48fa60..2fb147ee5 100644 --- a/lib_rend/ivas_rom_TdBinauralRenderer.c +++ b/lib_rend/ivas_rom_TdBinauralRenderer.c @@ -44,7 +44,9 @@ * TD Binaural rendering related ROM tables *------------------------------------------------------------------------*/ /* TD renderer default HRIR model */ +#ifndef IVAS_FLOAT_FIXED const float defaultHRIR_rom_latency_s = 0.000020834f; +#endif const Word32 defaultHRIR_rom_latency_s_fx = 44741; /* Q31 */ const int16_t defaultHRIR_rom_azimDim2[15] = { 1, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 1, @@ -64,26 +66,24 @@ const int16_t defaultHRIR_rom_azimShapeIdx[15] = { const int16_t defaultHRIR_rom_azimShapeSampFactor[15] = { -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, }; + +#ifndef IVAS_FLOAT_FIXED const float defaultHRIR_rom_elevKSeq[13] = { -90.000000f, -75.000000f, -60.000000f, -45.000000f, -30.000000f, -15.000000f, 0.000000f, 15.000000f, 30.000000f, 45.000000f, 60.000000f, 75.000000f, 90.000000f, }; -#ifdef IVAS_FLOAT_FIXED +const uint32_t defaultHRIR_rom_elevBsShape[36] = { +0x3f800000,0x3ed80000,0x3e000000,0x3c800000,0x00000000,0xaa000000,0x3efe0000,0x3f180000,0x3eea0000,0x3e800000,0x3dd80000,0x3d000000,0x3b800000,0x00000000,0x29800000,0x3da2aaab,0x3e855555,0x3eea0000,0x3f155555,0x3f13aaab,0x3ef00000,0x3ea0aaab,0x3e2aaaab,0x3d900000,0x3caaaaab,0x3b2aaaab,0x27800000,0xa9000000,0x3b2aaaab,0x3caaaaab,0x3d900000,0x3e2aaaab,0x3ea15555,0x3ef55555,0x3f1caaab,0x3f2aaaab, +}; +const uint32_t defaultHRIR_rom_azimBsShape[21] = { +0x3f2aaaab,0x3f283c13,0x3f21735f,0x3f17152a,0x3f09e60f,0x3ef55555,0x3ed44f30,0x3eb242e7,0x3e90b9af,0x3e627984,0x3e2aaaab,0x3df8d4fe,0x3daec33e,0x3d6a2798,0x3d1374bc,0x3caaaaab,0x3c2ec33e,0x3b9374bc,0x3aaec33e,0x392ec33e,0x26800000, +}; +#else const Word32 defaultHRIR_rom_elevKSeq_fx[13]/*Q22*/ = { -377487360, -314572800, -251658240, -188743680, -125829120, -62914560, 0, 62914560, 125829120, 188743680, 251658240, 314572800, 377487360 }; -#endif // IVAS_FLOAT_FIXED -const uint32_t defaultHRIR_rom_elevBsShape[36] = { -0x3f800000,0x3ed80000,0x3e000000,0x3c800000,0x00000000,0xaa000000,0x3efe0000,0x3f180000,0x3eea0000,0x3e800000,0x3dd80000,0x3d000000,0x3b800000,0x00000000,0x29800000,0x3da2aaab,0x3e855555,0x3eea0000,0x3f155555,0x3f13aaab,0x3ef00000,0x3ea0aaab,0x3e2aaaab,0x3d900000,0x3caaaaab,0x3b2aaaab,0x27800000,0xa9000000,0x3b2aaaab,0x3caaaaab,0x3d900000,0x3e2aaaab,0x3ea15555,0x3ef55555,0x3f1caaab,0x3f2aaaab, - }; -#ifdef IVAS_FLOAT_FIXED const Word32 defaultHRIR_rom_elevBsShape_fx[36]/*Q30*/ = { 1073741824,452984832,134217728,16777216,0,0,532676608,637534208,490733568,268435456,113246208,33554432,4194304,0,0,85284184,279620256,490733568,626349376,619358912,503316480,336942432,178956976,75497472,22369622,2796202,0,0,2796202,22369622,75497472,178956976,338340512,514501280,657107648,715827904 }; -#endif -const uint32_t defaultHRIR_rom_azimBsShape[21] = { -0x3f2aaaab,0x3f283c13,0x3f21735f,0x3f17152a,0x3f09e60f,0x3ef55555,0x3ed44f30,0x3eb242e7,0x3e90b9af,0x3e627984,0x3e2aaaab,0x3df8d4fe,0x3daec33e,0x3d6a2798,0x3d1374bc,0x3caaaaab,0x3c2ec33e,0x3b9374bc,0x3aaec33e,0x392ec33e,0x26800000, - }; -#ifdef IVAS_FLOAT_FIXED const Word32 defaultHRIR_rom_azimBsShape_fx[21]/*Q30*/ = { 715827904,705627328,677173184,633686656,578388928,514501280,445244928,373841120,303511008,237475904,178956976,130459632,91625968,61382240,38654704,22369622,11453246,4831838,1431655,178956,0 }; @@ -9768,8 +9768,7 @@ const UWord32 defaultHRIR_rom_AlphaR16_fx[470 * 43] = { 0xfff79681,0xfff6efd6,0xfff60bef,0xfffcef12,0xfffc9aee,0xfffcff38,0xfffcfd81,0xfffcff0e,0xfffcf933,0xfffd051f,0xfffd11c2,0xfffd35df,0xfffcb524,0xfffcaf46,0xfff68911,0xfff779ec,0xfff7be7c,0xfff82f76,0xfff758ca,0xfff72d7a,0xfff6c569,0xfff685bc,0xfff63a4c,0xfff5ad85,0xfff5fdc3, 0xfff62cd1,0xfff6a08b,0xfff6f7fb,0xfff78045,0xfff80434,0xfff8484b,0xfff884ee,0xfff8f780,0xfff924db,0xfff60a28, }; -#endif - +#else const uint32_t defaultHRIR_rom_AlphaL48[470 * 128] = { 0x3e0946b9,0x3cda8822,0x3e23be7e,0x3e005914,0x3e095697,0x3e097781,0x3e102edf,0x3e12d807,0x3e1514fc,0x3e103703,0x3e0d2242,0x3e09c889,0x3e06fde7,0x3e04b4aa,0x3e035ecf,0x3e0249b7,0x3e0116dd,0x3e008502,0x3dfcee82,0x3dee77e2,0x3e15b7f1,0x3cac1e96,0xbc8dd29b,0xbd855185,0x3d35c945, 0xbc7e4c57,0xbd71b7fd,0xbd7da762,0xbd708def,0xbd3a07f7,0xbd7775d0,0xbd84cf24,0xbd7d084a,0xbc7d5814,0x3d78b324,0xbd72376a,0xbcb689c0,0xbcfdaebc,0x3e0e19d2,0x3e20943f,0x3e1fe583,0x3e2947bb,0x3e3c07e7,0x3e44e230,0x3e463c59,0x3e3a7208,0x3e2f6146,0x3e2475af,0x3e1bd4da,0x3e1633a9, @@ -19453,6 +19452,7 @@ const uint32_t defaultHRIR_rom_AlphaR16[470 * 43] = { 0xba0697fc,0xba1102aa,0xba1f4119,0xb9443bb0,0xb9594495,0xb9403233,0xb9409feb,0xb9403ca5,0xb941b375,0xb93eb877,0xb93b8f84,0xb9328856,0xb952b729,0xb9542e9d,0xba176ef7,0xba08614e,0xba041846,0xb9fa1149,0xba0a7366,0xba0d2864,0xba13a976,0xba17a447,0xba1c5b4b,0xba2527bc,0xba2023da, 0xba1d32f8,0xba15f751,0xba108050,0xba07fbb1,0xb9ff7999,0xb9f6f6a1,0xb9ef625e,0xb9e11009,0xb9db64bd,0xba1f5d84, }; +#endif #ifdef IVAS_FLOAT_FIXED const UWord32 defaultHRIR_rom_EL48_fx[HRTF_MODEL_N_SECTIONS * 470] /*Q28*/ = { @@ -19514,7 +19514,6 @@ const UWord32 defaultHRIR_rom_EL48_fx[HRTF_MODEL_N_SECTIONS * 470] /*Q28*/ = { 0x00004eb9,0x00004ef0,0x00004f16,0x00004fb6,0x0000510d,0x00005600,0x00004f04,0x00004bf4,0x00004a5b,0x0000497c,0x00004a37,0x000049e2,0x00004d5b,0x00004f63,0x00005179,0x00005522,0x00005687,0x00006262,0x00006816,0x00007ec4,0x0000abd6,0x0000706a,0x00008b60,0x0000ca1f,0x0000c5e3, 0x0000bba0,0x0000a655,0x0000b00c,0x0000aaff,0x0000a4e6,0x00007d8e,0x00006765,0x00009e3e,0x00007e4b,0x00007037 }; - const UWord32 defaultHRIR_rom_ER48_fx[HRTF_MODEL_N_SECTIONS * 470] /*Q28*/ = { 0x047ee4d8,0x03f280b8,0x05386b98,0x0472fda0,0x0546eb40,0x076f6d78,0x04382528,0x0488aa00,0x06bd5348,0x0704d428,0x06d60568,0x05f157b8,0x06d09290,0x06f92248,0x06cc8e98,0x0466c600,0x03db67c4,0x07924390,0x048ebf48,0x03f41dd8,0x04657680,0x036a1ca0,0x03cfde2c,0x03e0ba68,0x03f52760, 0x0409ea10,0x0421a660,0x0435ba10,0x04558680,0x047a5fa8,0x04b01dc0,0x04dde948,0x0526fc60,0x0509efe8,0x04e6aa20,0x04840c20,0x047d6488,0x05ed4498,0x05ff8e50,0x068475b0,0x03d7760c,0x03201db0,0x02a62e40,0x02995154,0x02374fd0,0x029927f8,0x02a77ff0,0x028bc644,0x02ad3d58,0x024cb2e0, @@ -19574,7 +19573,6 @@ const UWord32 defaultHRIR_rom_ER48_fx[HRTF_MODEL_N_SECTIONS * 470] /*Q28*/ = { 0x0000654d,0x00007d87,0x00009920,0x000067b9,0x00007d2a,0x0000a4b4,0x0000aad5,0x0000b032,0x0000a656,0x0000bb83,0x0000c5fe,0x0000ca75,0x00008ba1,0x000070cc,0x0000ad9f,0x00007f4d,0x00006826,0x00006217,0x00005680,0x0000552a,0x00005176,0x00004f63,0x00004d5c,0x000049e2,0x00004a38, 0x0000497d,0x00004a60,0x00004bf4,0x00004f03,0x00005602,0x0000510f,0x00004fbb,0x00004f07,0x00004f16,0x00007035 }; - const UWord32 defaultHRIR_rom_EL32_fx[HRTF_MODEL_N_SECTIONS * 470] /*Q28*/ = { 0x054a4eb8,0x04f4f0d8,0x05569b70,0x04b47630,0x052be930,0x0558ee78,0x05a21340,0x05c92f10,0x06092e60,0x05a367d8,0x056ef578,0x053967f0,0x050b7040,0x04e48198,0x04c1a078,0x04ab4c58,0x04922828,0x04796a68,0x045da820,0x040c93f8,0x048b76b0,0x046b48d0,0x04a92308,0x0663b628,0x04465358, 0x047a43a0,0x05ccc530,0x05e3ce48,0x05bf4e28,0x05441fe8,0x05c979c8,0x05fd7718,0x05df75e0,0x04a4ec80,0x04991e50,0x06641720,0x053f2f28,0x06b72af0,0x06f11a08,0x06feb018,0x080029f0,0x08c5c000,0x09cc9040,0x0a736fb0,0x0afda5f0,0x09a82a90,0x08b57570,0x07cbf1f8,0x070ce3d8,0x0679eea8, @@ -19634,7 +19632,6 @@ const UWord32 defaultHRIR_rom_EL32_fx[HRTF_MODEL_N_SECTIONS * 470] /*Q28*/ = { 0x000066f1,0x00005f38,0x00005c09,0x00005867,0x0000562c,0x00005266,0x000052b2,0x000052f8,0x00005635,0x0000595b,0x00005e23,0x0000626c,0x000066b0,0x00006a2e,0x00006dcd,0x00007219,0x000076b9,0x00007e7c,0x00007e2c,0x000080b7,0x0000843c,0x00008350,0x000086c8,0x00009561,0x0000903a, 0x00008f5e,0x00008abf,0x00008b73,0x0000896d,0x00008d88,0x00007df7,0x00007884,0x00007bdd,0x00007824,0x00008e1d }; - const UWord32 defaultHRIR_rom_ER32_fx[HRTF_MODEL_N_SECTIONS * 470] /*Q28*/ = { 0x054a4a90,0x04b59ef0,0x056004c0,0x04f624c8,0x05412248,0x06704ac8,0x0497dc00,0x04a6cb70,0x05db4030,0x05f962d0,0x05ca3a18,0x0545d3b0,0x05bf93a0,0x05e45250,0x05cc2d70,0x0479a490,0x0443aa10,0x06608268,0x04a79d68,0x046b7780,0x048cf9f0,0x040d0960,0x045d49a0,0x04798b10,0x049221d8, 0x04ab4a30,0x04c19e60,0x04e487e0,0x050b7560,0x05396118,0x056ed2e8,0x05a36f38,0x06096f58,0x05c92ae0,0x05a1f158,0x05593640,0x052acdc0,0x06fdff08,0x06daac48,0x06c51e00,0x04ae7998,0x04066aa0,0x038b0910,0x035dec1c,0x02f83044,0x031c4304,0x0322f880,0x03106168,0x0324368c,0x02dda158, @@ -19694,7 +19691,6 @@ const UWord32 defaultHRIR_rom_ER32_fx[HRTF_MODEL_N_SECTIONS * 470] /*Q28*/ = { 0x0000722b,0x0000789e,0x00007c98,0x000078ef,0x00007e1f,0x00008d9b,0x00008974,0x00008b66,0x00008ac2,0x00008f60,0x0000903c,0x0000957b,0x000086e2,0x0000837c,0x00008482,0x000080cd,0x00007e2d,0x00007e7e,0x000076b8,0x00007218,0x00006dcc,0x00006a2d,0x000066b1,0x0000626d,0x00005e25, 0x0000595c,0x00005638,0x000052f9,0x000052b0,0x00005261,0x0000562b,0x00005869,0x00005c08,0x00005f3c,0x00008e1b }; - const UWord32 defaultHRIR_rom_EL16_fx[HRTF_MODEL_N_SECTIONS * 470] /*Q28*/ = { 0x0624a2d8,0x0502a108,0x05b79728,0x056d4278,0x05b9bb98,0x05e5c5a0,0x06306120,0x0654ff78,0x067b1728,0x063a1c20,0x0613f848,0x05ee0980,0x05c33e88,0x059d3e18,0x057b0f90,0x05587a98,0x053bcb90,0x0523f068,0x050f7448,0x04db7478,0x0523f160,0x04961aa0,0x049bddb0,0x05a78478,0x046b85e0, 0x04637c28,0x05380080,0x054a5d90,0x05363028,0x050b2de0,0x05249788,0x0537d5d8,0x053265e8,0x047e3db8,0x04ac31f0,0x05954f50,0x04ef02d8,0x063a6220,0x071ba9b0,0x074d5100,0x07f8d530,0x08ad8a40,0x09c936d0,0x0a6c9e40,0x0abe03a0,0x09ec2c90,0x093fda60,0x089fee20,0x0805d110,0x078068a0, @@ -19754,7 +19750,6 @@ const UWord32 defaultHRIR_rom_EL16_fx[HRTF_MODEL_N_SECTIONS * 470] /*Q28*/ = { 0x0000d58b,0x0000c4a9,0x0000bc7f,0x0000b366,0x0000add0,0x0000a546,0x0000a65b,0x0000a711,0x0000adaa,0x0000b3f7,0x0000bd81,0x0000c5eb,0x0000ceec,0x0000d62a,0x0000ddd5,0x0000e69e,0x0000f020,0x0001004f,0x0000ff52,0x000104a7,0x00010b0c,0x00010ccd,0x000113aa,0x00013070,0x000126bc, 0x00012626,0x00011e5a,0x00012093,0x00011d2c,0x000127d3,0x0001087d,0x0000fe1f,0x0000ff1c,0x0000f85b,0x0001253d }; - const UWord32 defaultHRIR_rom_ER16_fx[HRTF_MODEL_N_SECTIONS * 470] /*Q28*/ = { 0x0624a0e0,0x056db600,0x05bb77a0,0x0503cb18,0x04ef0160,0x05965d08,0x04a9add8,0x047e1d30,0x05325de0,0x053790e8,0x052407d8,0x050a5ea0,0x05357c10,0x054a7a30,0x05383838,0x04636030,0x046979c8,0x05a5d650,0x049bd6d8,0x04969ab0,0x0524e510,0x04dbc5e8,0x050f3628,0x05240978,0x053bc720, 0x055879e8,0x057b1008,0x059d3f68,0x05c342b0,0x05ee07c0,0x0613ed00,0x063a23d0,0x067b3920,0x0654f4f0,0x06303e80,0x05e5f970,0x05b92728,0x074deba8,0x07120130,0x063be4a0,0x0563d9f8,0x049bfa40,0x04522128,0x04164b68,0x03c36a60,0x03b749dc,0x03a7aefc,0x03ae0df8,0x03b453fc,0x0399cf74, @@ -19843,8 +19838,10 @@ const UWord32 defaultHRIR_rom_ITD_W_fx[658] /*Q25*/ = { 0x00073c50,0xffc53d17,0xffaef3ae,0x006c6e6f,0x001e3554,0xff07f047,0xfe85f03e,0x01690b7c,0x002de0f0,0x0004a149,0xff2c94fc,0xfffd8383,0x00bfdc23,0xfff389ae,0xffd2c64d,0xfe883edc,0x0173389c,0x00f2eb6a,0xffdb167a,0xff9bf93c,0x004de8c3,0x003de697,0xfff9603a,0xfeffbcf4,0xffe7c878, 0x006e0794,0x0155a804,0xfe867a7a,0xff23a62f,0xffbef3f5,0x00a43429,0x00169261,0xffff467a, }; -#endif - +const Word32 defaultHRIR_rom_ITD_azimBsShape_fx[84]/*Q30*/ = { +1073741824,782757760,549755840,368293440,231928240,134217728,68719480,28991030,8589935,1073741,0,0,275683200,466003936,582236480,635655168,637534208,599147968,531770624,446676608,355140096,268435456,195689440,137438960,92073360,57982060,33554432,17179870,7247757,2147483,268435,0,0,15121864,56550404,118380040,194705184,279620256,367219712,451597920,526849312,587068352,626349376,640397504,631360192,602995520,559061568,503316480,439518304,371425184,302795200,237386416,178956976,130459632,91625968,61382240,38654704,22369622,11453246,4831838,1431655,178956,0,0,178956,1431655,4831838,11453246,22369622,38654704,61382240,91625968,130459632,178956976,237475904,303511008,373841120,445244928,514501280,578388928,633686656,677173184,705627328,715827904 +}; +#else const uint32_t defaultHRIR_rom_EL48[HRTF_MODEL_N_SECTIONS * 470] = { 0x3e8fdcf1,0x3e8e2708,0x3ea53482,0x3e7c2de6,0x3e8fe783,0x3e906f77,0x3e9cddeb,0x3ea14109,0x3ea4da3b,0x3e9bbc9a,0x3e96062e,0x3e8f4bf3,0x3e8aaf7d,0x3e86b5df,0x3e8433e5,0x3e813d26,0x3e7d4d8a,0x3e78207d,0x3e742259,0x3e5a5203,0x3e8c3f1f,0x3e7d5e54,0x3e9285e3,0x3ef28ede,0x3e7742e2, 0x3e8ce88c,0x3ed9c917,0x3edf1bd9,0x3eda040b,0x3ebdd7d4,0x3eda97bf,0x3ee14156,0x3ed85779,0x3e90d3f7,0x3e8790ef,0x3eec0412,0x3ea8cd79,0x3ece6925,0x3ec47da1,0x3ebd9a80,0x3ed966e3,0x3ee7df3f,0x3f0a6b43,0x3f150db1,0x3f167f00,0x3f073082,0x3ef21552,0x3ed4e4bc,0x3ec08701,0x3eb2e282, @@ -20234,35 +20231,31 @@ const uint32_t defaultHRIR_rom_ITD_azimBsShape[84] = { 0x3e90624e,0x3e6263ab,0x3e2aaaab,0x3df8d4fe,0x3daec33e,0x3d6a2798,0x3d1374bc,0x3caaaaab,0x3c2ec33e,0x3b9374bc,0x3aaec33e,0x392ec33e,0xa6800000,0x00000000,0x392ec33e,0x3aaec33e,0x3b9374bc,0x3c2ec33e,0x3caaaaab,0x3d1374bc,0x3d6a2798,0x3daec33e,0x3df8d4fe,0x3e2aaaab,0x3e627984, 0x3e90b9af,0x3eb242e7,0x3ed44f30,0x3ef55555,0x3f09e60f,0x3f17152a,0x3f21735f,0x3f283c13,0x3f2aaaab, }; -#ifdef IVAS_FLOAT_FIXED -const Word32 defaultHRIR_rom_ITD_azimBsShape_fx[84]/*Q30*/ = { -1073741824,782757760,549755840,368293440,231928240,134217728,68719480,28991030,8589935,1073741,0,0,275683200,466003936,582236480,635655168,637534208,599147968,531770624,446676608,355140096,268435456,195689440,137438960,92073360,57982060,33554432,17179870,7247757,2147483,268435,0,0,15121864,56550404,118380040,194705184,279620256,367219712,451597920,526849312,587068352,626349376,640397504,631360192,602995520,559061568,503316480,439518304,371425184,302795200,237386416,178956976,130459632,91625968,61382240,38654704,22369622,11453246,4831838,1431655,178956,0,0,178956,1431655,4831838,11453246,22369622,38654704,61382240,91625968,130459632,178956976,237475904,303511008,373841120,445244928,514501280,578388928,633686656,677173184,705627328,715827904 -}; #endif + +#ifndef IVAS_FLOAT_FIXED const float defaultHRIR_rom_ITD_azimKSeq[19] = { 0.000000f, 10.000000f, 20.000000f, 30.000000f, 40.000000f, 50.000000f, 60.000000f, 70.000000f, 80.000000f, 90.000000f, 100.000000f, 110.000000f, 120.000000f, 130.000000f, 140.000000f, 150.000000f, 160.000000f, 170.000000f, 180.000000f, }; -#ifdef IVAS_FLOAT_FIXED -const Word32 defaultHRIR_rom_ITD_azimKSeq_fx[19]/*Q22*/ = { - 0< #include "prot.h" #include "options.h" /* only included to get access to the feature-defines */ +#ifdef IVAS_FLOAT_FIXED +#include "prot_fx1.h" +#include "prot_fx2.h" +#include "ivas_prot_fx.h" +#endif struct Vector3PairFileReader @@ -117,6 +122,17 @@ ivas_error Vector3PairFileReader_read( pSecond->y = y2; pSecond->z = z2; +#ifdef IVAS_FLOAT_FIXED + pFirst->q_fact = Q29; + pSecond->q_fact = Q29; + pFirst->x_fx = floatToFixed_32( pFirst->x, pFirst->q_fact ); + pFirst->y_fx = floatToFixed_32( pFirst->y, pFirst->q_fact ); + pFirst->z_fx = floatToFixed_32( pFirst->z, pFirst->q_fact ); + pSecond->x_fx = floatToFixed_32( pSecond->x, pSecond->q_fact ); + pSecond->y_fx = floatToFixed_32( pSecond->y, pSecond->q_fact ); + pSecond->z_fx = floatToFixed_32( pSecond->z, pSecond->q_fact ); +#endif + return IVAS_ERR_OK; } -- GitLab