Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -148,4 +148,5 @@ #define FIX_1824 #define FIX_1822 #define MERGE_REQUEST_1926_SPEEDUP_ivas_svd_dec_fx_NONBE /* FhG: reduce WMOPS of HouseHolderReduction() in ivas_svd_dec.c() by removing redundant mathematics and using 64 bit additions.*/ #endif lib_dec/ivas_svd_dec_fx.c +132 −139 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ the United Nations Convention on Contracts on the International Sales of Goods. *******************************************************************************************************/ #define MYCHANGES #include <stdint.h> #include "options.h" #include "prot_fx.h" Loading Loading @@ -65,15 +64,14 @@ static void HouseholderReduction_fx( const Word16 nChannelsC, /* Q0 */ Word32 *eps_x_fx, /* exp(eps_x_fx_e) */ Word16 *eps_x_fx_e ); #ifdef MYCHANGES #ifdef MERGE_REQUEST_1926_SPEEDUP_ivas_svd_dec_fx_NONBE static void biDiagonalReductionLeft_64( Word64 singularVectors_Left_64[MAX_OUTPUT_CHANNELS][MAX_OUTPUT_CHANNELS], const Word16 nChannelsL, /* Q0 */ const Word16 nChannelsC, /* Q0 */ const Word16 currChannel, /* Q0 */ Word32 *g, /* Q31 */ Word16 *g_e ); Word16 *g_e ); static void biDiagonalReductionRight_64( Word64 singularVectors_Left_64[MAX_OUTPUT_CHANNELS][MAX_OUTPUT_CHANNELS], Loading @@ -81,8 +79,7 @@ static void biDiagonalReductionRight_64( const Word16 nChannelsC, /* Q0 */ const Word16 currChannel, /* Q0 */ Word32 *g, /* Q31 */ Word16 *g_e ); Word16 *g_e ); #else static void biDiagonalReductionLeft_fx( Word32 singularVectors[][MAX_OUTPUT_CHANNELS], /* exp(singularVectors_e) */ Loading Loading @@ -872,7 +869,7 @@ static void HouseholderReduction_fx( Word16 *eps_x_fx_e ) { Word16 nCh; #ifdef MYCHANGES #ifdef MERGE_REQUEST_1926_SPEEDUP_ivas_svd_dec_fx_NONBE Word64 singularVectors_Left_64[MAX_OUTPUT_CHANNELS][MAX_OUTPUT_CHANNELS]; Word32 g_left_fx = 0; Loading @@ -896,7 +893,7 @@ static void HouseholderReduction_fx( Word16 iCh, jCh; Word16 singularVectors_Left_fx_e[MAX_OUTPUT_CHANNELS][MAX_OUTPUT_CHANNELS]; #ifdef MYCHANGES #ifdef MERGE_REQUEST_1926_SPEEDUP_ivas_svd_dec_fx_NONBE FOR( jCh = 0; jCh < nChannelsL; jCh++ ) { FOR( iCh = 0; iCh < nChannelsC; iCh++ ) Loading @@ -912,8 +909,7 @@ static void HouseholderReduction_fx( nChannelsC, nCh, &g_left_fx, &g_left_e ); &g_left_e ); singularValues_fx[nCh] = g_left_fx; move32(); singularValues_fx_e[nCh] = add( singularVectors_Left_e, g_left_e ); Loading @@ -926,8 +922,7 @@ static void HouseholderReduction_fx( nChannelsC, nCh, &g_right_fx, &g_right_e ); &g_right_e ); { Word16 L_temp_e; Word32 L_temp; Loading Loading @@ -992,7 +987,7 @@ static void HouseholderReduction_fx( return; } #ifdef MYCHANGES #ifdef MERGE_REQUEST_1926_SPEEDUP_ivas_svd_dec_fx_NONBE /*------------------------------------------------------------------------- * biDiagonalReductionLeft() * Loading @@ -1005,8 +1000,7 @@ static void biDiagonalReductionLeft_64( const Word16 nChannelsC, /* Q0 */ const Word16 currChannel, /* Q0 */ Word32 *g, Word16 *g_e ) Word16 *g_e ) { #define HEADROOM_LEFT_1 1 Loading Loading @@ -1111,8 +1105,7 @@ static void biDiagonalReductionRight_64( const Word16 nChannelsC, /* Q0 */ const Word16 currChannel, /* Q0 */ Word32 *g, /* Q31 */ Word16 *g_e ) Word16 *g_e ) { Word16 iCh, jCh; Word32 norm_x; Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -148,4 +148,5 @@ #define FIX_1824 #define FIX_1822 #define MERGE_REQUEST_1926_SPEEDUP_ivas_svd_dec_fx_NONBE /* FhG: reduce WMOPS of HouseHolderReduction() in ivas_svd_dec.c() by removing redundant mathematics and using 64 bit additions.*/ #endif
lib_dec/ivas_svd_dec_fx.c +132 −139 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ the United Nations Convention on Contracts on the International Sales of Goods. *******************************************************************************************************/ #define MYCHANGES #include <stdint.h> #include "options.h" #include "prot_fx.h" Loading Loading @@ -65,15 +64,14 @@ static void HouseholderReduction_fx( const Word16 nChannelsC, /* Q0 */ Word32 *eps_x_fx, /* exp(eps_x_fx_e) */ Word16 *eps_x_fx_e ); #ifdef MYCHANGES #ifdef MERGE_REQUEST_1926_SPEEDUP_ivas_svd_dec_fx_NONBE static void biDiagonalReductionLeft_64( Word64 singularVectors_Left_64[MAX_OUTPUT_CHANNELS][MAX_OUTPUT_CHANNELS], const Word16 nChannelsL, /* Q0 */ const Word16 nChannelsC, /* Q0 */ const Word16 currChannel, /* Q0 */ Word32 *g, /* Q31 */ Word16 *g_e ); Word16 *g_e ); static void biDiagonalReductionRight_64( Word64 singularVectors_Left_64[MAX_OUTPUT_CHANNELS][MAX_OUTPUT_CHANNELS], Loading @@ -81,8 +79,7 @@ static void biDiagonalReductionRight_64( const Word16 nChannelsC, /* Q0 */ const Word16 currChannel, /* Q0 */ Word32 *g, /* Q31 */ Word16 *g_e ); Word16 *g_e ); #else static void biDiagonalReductionLeft_fx( Word32 singularVectors[][MAX_OUTPUT_CHANNELS], /* exp(singularVectors_e) */ Loading Loading @@ -872,7 +869,7 @@ static void HouseholderReduction_fx( Word16 *eps_x_fx_e ) { Word16 nCh; #ifdef MYCHANGES #ifdef MERGE_REQUEST_1926_SPEEDUP_ivas_svd_dec_fx_NONBE Word64 singularVectors_Left_64[MAX_OUTPUT_CHANNELS][MAX_OUTPUT_CHANNELS]; Word32 g_left_fx = 0; Loading @@ -896,7 +893,7 @@ static void HouseholderReduction_fx( Word16 iCh, jCh; Word16 singularVectors_Left_fx_e[MAX_OUTPUT_CHANNELS][MAX_OUTPUT_CHANNELS]; #ifdef MYCHANGES #ifdef MERGE_REQUEST_1926_SPEEDUP_ivas_svd_dec_fx_NONBE FOR( jCh = 0; jCh < nChannelsL; jCh++ ) { FOR( iCh = 0; iCh < nChannelsC; iCh++ ) Loading @@ -912,8 +909,7 @@ static void HouseholderReduction_fx( nChannelsC, nCh, &g_left_fx, &g_left_e ); &g_left_e ); singularValues_fx[nCh] = g_left_fx; move32(); singularValues_fx_e[nCh] = add( singularVectors_Left_e, g_left_e ); Loading @@ -926,8 +922,7 @@ static void HouseholderReduction_fx( nChannelsC, nCh, &g_right_fx, &g_right_e ); &g_right_e ); { Word16 L_temp_e; Word32 L_temp; Loading Loading @@ -992,7 +987,7 @@ static void HouseholderReduction_fx( return; } #ifdef MYCHANGES #ifdef MERGE_REQUEST_1926_SPEEDUP_ivas_svd_dec_fx_NONBE /*------------------------------------------------------------------------- * biDiagonalReductionLeft() * Loading @@ -1005,8 +1000,7 @@ static void biDiagonalReductionLeft_64( const Word16 nChannelsC, /* Q0 */ const Word16 currChannel, /* Q0 */ Word32 *g, Word16 *g_e ) Word16 *g_e ) { #define HEADROOM_LEFT_1 1 Loading Loading @@ -1111,8 +1105,7 @@ static void biDiagonalReductionRight_64( const Word16 nChannelsC, /* Q0 */ const Word16 currChannel, /* Q0 */ Word32 *g, /* Q31 */ Word16 *g_e ) Word16 *g_e ) { Word16 iCh, jCh; Word32 norm_x; Loading