Loading lib_rend/ivas_dirac_dec_binaural_functions.c +0 −103 Original line number Diff line number Diff line Loading @@ -238,9 +238,6 @@ static void formulate2x2MixingMatrix_fx_func1( Word32 Bre_fx[BINAURAL_CHANNELS][BINAURAL_CHANNELS], /*q_B*/ Word32 Bim_fx[BINAURAL_CHANNELS][BINAURAL_CHANNELS], /*q_B*/ Word16 *q_B, Flag scaleB, //Word32 tmpRe_fx[BINAURAL_CHANNELS][BINAURAL_CHANNELS], /*q_tmp*/ //Word32 tmpIm_fx[BINAURAL_CHANNELS][BINAURAL_CHANNELS], /*q_tmp*/ //Word16 *q_tmp, Word32 Cre_fx[BINAURAL_CHANNELS][BINAURAL_CHANNELS], Word32 Cim_fx[BINAURAL_CHANNELS][BINAURAL_CHANNELS], Word16 *q_C,Flag scaleC, Loading Loading @@ -298,7 +295,6 @@ static void formulate2x2MixingMatrix_fx_func1( Word32 Are_fx_chA_0_LT_0 = LT_32( Are_fx[chA][0], 0 ); Word32 Are_fx_chA_1_GE_0 = GE_32( Are_fx[chA][1], 0 ); // FOR( chB = 0; chB < BINAURAL_CHANNELS; chB++ ) //Unroll this { // ========================================= matrixMul_fx part /* Create testVariables*/ Loading Loading @@ -453,93 +449,7 @@ static void formulate2x2MixingMatrix_fx_func1( } } #if 0 *q_tmp = sub( add( *q_A, *q_B ), 31 ); move16(); if ( L_and( is_zero_arr( tmpRe_fx[0], size ), is_zero_arr( tmpIm_fx[0], size ) ) ) { *q_tmp = Q31; move16(); } #endif #if 0 { min_q_shift3 = sub( s_min( L_norm_arr( tmpRe_fx[0], size ), L_norm_arr( tmpIm_fx[0], size ) ), 1 ); scale_sig32( tmpRe_fx[0], size, min_q_shift3 ); scale_sig32( tmpIm_fx[0], size, min_q_shift3 ); *q_tmp = add( *q_tmp, min_q_shift3 ); move16(); } #endif #if 0 FOR( chA = 0; chA < BINAURAL_CHANNELS; chA++ ) { FOR( chB = 0; chB < BINAURAL_CHANNELS; chB++ ) { /* Create testVariables*/ Word32 Tim_fx_chA_0_GE_0 = GE_32( tmpIm_fx[chA][0], 0 ); Word32 Tim_fx_chA_0_LT_0 = LT_32( tmpIm_fx[chA][0], 0 ); Word32 Tim_fx_chA_1_GE_0 = GE_32( tmpIm_fx[chA][1], 0 ); Word32 Tim_fx_chA_1_LT_0 = LT_32( tmpIm_fx[chA][1], 0 ); Word32 Tre_fx_chA_0_GE_0 = GE_32( tmpRe_fx[chA][0], 0 ); Word32 Tre_fx_chA_0_LT_0 = LT_32( tmpRe_fx[chA][0], 0 ); Word32 Tre_fx_chA_1_GE_0 = GE_32( tmpRe_fx[chA][1], 0 ); Word32 Tre_fx_chA_1_LT_0 = LT_32( tmpRe_fx[chA][1], 0 ); Word32 Cre_fx_chB_0_GE_0 = GE_32( Cre_fx[chB][0], 0 ); Word32 Cre_fx_chB_0_LT_0 = LT_32( Cre_fx[chB][0], 0 ); Word32 Cre_fx_chB_1_GE_0 = GE_32( Cre_fx[chB][1], 0 ); Word32 Cre_fx_chB_1_LT_0 = LT_32( Cre_fx[chB][1], 0 ); Word32 Cim_fx_chB_0_LT_0 = LT_32( Cim_fx[chB][0], 0 ); Word32 Cim_fx_chB_0_GE_0 = GE_32( Cim_fx[chB][0], 0 ); Word32 Cim_fx_chB_1_LT_0 = LT_32( Cim_fx[chB][1], 0 ); Word32 Cim_fx_chB_1_GE_0 = GE_32( Cim_fx[chB][1], 0 ); Word32 LNeg_Cim_fx_chB_0 = L_negate( Cim_fx[chB][0] ); Word32 LNeg_Cim_fx_chB_1 = L_negate( Cim_fx[chB][1] ); tmp1 = matrixMul_func1( Tre_fx_chA_0_LT_0 || Cre_fx_chB_0_LT_0, Tre_fx_chA_0_GE_0 || Cre_fx_chB_0_GE_0, Mpy_32_32( tmpRe_fx[chA][0], Cre_fx[chB][0] ) ); move32(); move32(); tmp2 = matrixMul_func1( Tre_fx_chA_1_LT_0 || Cre_fx_chB_1_LT_0, Tre_fx_chA_1_GE_0 || Cre_fx_chB_1_GE_0, Mpy_32_32( tmpRe_fx[chA][1], Cre_fx[chB][1] ) ); move32(); move32(); tmp3 = L_add( tmp1, tmp2 ); tmp1 = matrixMul_func1( Tim_fx_chA_0_LT_0 || Cim_fx_chB_0_GE_0, Tim_fx_chA_0_GE_0 || Cim_fx_chB_0_LT_0, Mpy_32_32( tmpIm_fx[chA][0], LNeg_Cim_fx_chB_0 ) ); move32(); move32(); tmp2 = matrixMul_func1( Tim_fx_chA_1_LT_0 || Cim_fx_chB_1_GE_0, Tim_fx_chA_1_GE_0 || Cim_fx_chB_1_LT_0, Mpy_32_32( tmpIm_fx[chA][1], LNeg_Cim_fx_chB_1 ) ); move32(); move32(); outRe_fx[chA][chB] = L_sub( tmp3, L_add( tmp1, tmp2 ) ); move32(); tmp1 = matrixMul_func1( Tim_fx_chA_0_LT_0 || Cre_fx_chB_0_LT_0, Tim_fx_chA_0_GE_0 || Cre_fx_chB_0_GE_0, Mpy_32_32( tmpIm_fx[chA][0], Cre_fx[chB][0] ) ); move32(); move32(); tmp2 = matrixMul_func1( Tim_fx_chA_1_LT_0 || Cre_fx_chB_1_LT_0, Tim_fx_chA_1_GE_0 || Cre_fx_chB_1_GE_0, Mpy_32_32( tmpIm_fx[chA][1], Cre_fx[chB][1] ) ); move32(); move32(); tmp3 = L_add( tmp1, tmp2 ); move32(); move32(); tmp1 = matrixMul_func1( Tre_fx_chA_0_LT_0 || Cim_fx_chB_0_GE_0, Tre_fx_chA_0_GE_0 || Cim_fx_chB_0_LT_0, Mpy_32_32( tmpRe_fx[chA][0], LNeg_Cim_fx_chB_0 ) ); move32(); move32(); tmp2 = matrixMul_func1( Tre_fx_chA_1_LT_0 || Cim_fx_chB_1_GE_0, Tre_fx_chA_1_GE_0 || Cim_fx_chB_1_LT_0, Mpy_32_32( tmpRe_fx[chA][1], LNeg_Cim_fx_chB_1 ) ); move32(); move32(); outIm_fx[chA][chB] = L_add( tmp3, L_add( tmp1, tmp2 ) ); move32(); } } #endif #if 1 q_tmp = sub( add( *q_A, *q_B ), 31 ); #endif *q_out = sub( add( q_tmp, *q_C ), 31 ); move16(); Loading @@ -550,19 +460,6 @@ static void formulate2x2MixingMatrix_fx_func1( } return; #if 0 matrixMul_fx( KyRe_fx, KyIm_fx, &q_ky, Pre_fx, Pim_fx, &q_P, tmpRe_fx, tmpIm_fx, &q_temp ); matrixTransp2Mul_fx( tmpRe_fx, tmpIm_fx, &q_temp, Uxre_fx, Uxim_fx, &q_Ux, #ifdef FIX_1072_SPEEDUP_matrixTransp2Mul_fx_scaleSwitch 1 /*int Ascale*/, 0 /*int Bscale*/, #endif Mre_fx, Mim_fx, q_M ); #endif #endif /*FIX1072_SPEEDUP_formulate2x2MixingMatrix_fx_func1*/ } /*------------------------------------------------------------------------- Loading Loading
lib_rend/ivas_dirac_dec_binaural_functions.c +0 −103 Original line number Diff line number Diff line Loading @@ -238,9 +238,6 @@ static void formulate2x2MixingMatrix_fx_func1( Word32 Bre_fx[BINAURAL_CHANNELS][BINAURAL_CHANNELS], /*q_B*/ Word32 Bim_fx[BINAURAL_CHANNELS][BINAURAL_CHANNELS], /*q_B*/ Word16 *q_B, Flag scaleB, //Word32 tmpRe_fx[BINAURAL_CHANNELS][BINAURAL_CHANNELS], /*q_tmp*/ //Word32 tmpIm_fx[BINAURAL_CHANNELS][BINAURAL_CHANNELS], /*q_tmp*/ //Word16 *q_tmp, Word32 Cre_fx[BINAURAL_CHANNELS][BINAURAL_CHANNELS], Word32 Cim_fx[BINAURAL_CHANNELS][BINAURAL_CHANNELS], Word16 *q_C,Flag scaleC, Loading Loading @@ -298,7 +295,6 @@ static void formulate2x2MixingMatrix_fx_func1( Word32 Are_fx_chA_0_LT_0 = LT_32( Are_fx[chA][0], 0 ); Word32 Are_fx_chA_1_GE_0 = GE_32( Are_fx[chA][1], 0 ); // FOR( chB = 0; chB < BINAURAL_CHANNELS; chB++ ) //Unroll this { // ========================================= matrixMul_fx part /* Create testVariables*/ Loading Loading @@ -453,93 +449,7 @@ static void formulate2x2MixingMatrix_fx_func1( } } #if 0 *q_tmp = sub( add( *q_A, *q_B ), 31 ); move16(); if ( L_and( is_zero_arr( tmpRe_fx[0], size ), is_zero_arr( tmpIm_fx[0], size ) ) ) { *q_tmp = Q31; move16(); } #endif #if 0 { min_q_shift3 = sub( s_min( L_norm_arr( tmpRe_fx[0], size ), L_norm_arr( tmpIm_fx[0], size ) ), 1 ); scale_sig32( tmpRe_fx[0], size, min_q_shift3 ); scale_sig32( tmpIm_fx[0], size, min_q_shift3 ); *q_tmp = add( *q_tmp, min_q_shift3 ); move16(); } #endif #if 0 FOR( chA = 0; chA < BINAURAL_CHANNELS; chA++ ) { FOR( chB = 0; chB < BINAURAL_CHANNELS; chB++ ) { /* Create testVariables*/ Word32 Tim_fx_chA_0_GE_0 = GE_32( tmpIm_fx[chA][0], 0 ); Word32 Tim_fx_chA_0_LT_0 = LT_32( tmpIm_fx[chA][0], 0 ); Word32 Tim_fx_chA_1_GE_0 = GE_32( tmpIm_fx[chA][1], 0 ); Word32 Tim_fx_chA_1_LT_0 = LT_32( tmpIm_fx[chA][1], 0 ); Word32 Tre_fx_chA_0_GE_0 = GE_32( tmpRe_fx[chA][0], 0 ); Word32 Tre_fx_chA_0_LT_0 = LT_32( tmpRe_fx[chA][0], 0 ); Word32 Tre_fx_chA_1_GE_0 = GE_32( tmpRe_fx[chA][1], 0 ); Word32 Tre_fx_chA_1_LT_0 = LT_32( tmpRe_fx[chA][1], 0 ); Word32 Cre_fx_chB_0_GE_0 = GE_32( Cre_fx[chB][0], 0 ); Word32 Cre_fx_chB_0_LT_0 = LT_32( Cre_fx[chB][0], 0 ); Word32 Cre_fx_chB_1_GE_0 = GE_32( Cre_fx[chB][1], 0 ); Word32 Cre_fx_chB_1_LT_0 = LT_32( Cre_fx[chB][1], 0 ); Word32 Cim_fx_chB_0_LT_0 = LT_32( Cim_fx[chB][0], 0 ); Word32 Cim_fx_chB_0_GE_0 = GE_32( Cim_fx[chB][0], 0 ); Word32 Cim_fx_chB_1_LT_0 = LT_32( Cim_fx[chB][1], 0 ); Word32 Cim_fx_chB_1_GE_0 = GE_32( Cim_fx[chB][1], 0 ); Word32 LNeg_Cim_fx_chB_0 = L_negate( Cim_fx[chB][0] ); Word32 LNeg_Cim_fx_chB_1 = L_negate( Cim_fx[chB][1] ); tmp1 = matrixMul_func1( Tre_fx_chA_0_LT_0 || Cre_fx_chB_0_LT_0, Tre_fx_chA_0_GE_0 || Cre_fx_chB_0_GE_0, Mpy_32_32( tmpRe_fx[chA][0], Cre_fx[chB][0] ) ); move32(); move32(); tmp2 = matrixMul_func1( Tre_fx_chA_1_LT_0 || Cre_fx_chB_1_LT_0, Tre_fx_chA_1_GE_0 || Cre_fx_chB_1_GE_0, Mpy_32_32( tmpRe_fx[chA][1], Cre_fx[chB][1] ) ); move32(); move32(); tmp3 = L_add( tmp1, tmp2 ); tmp1 = matrixMul_func1( Tim_fx_chA_0_LT_0 || Cim_fx_chB_0_GE_0, Tim_fx_chA_0_GE_0 || Cim_fx_chB_0_LT_0, Mpy_32_32( tmpIm_fx[chA][0], LNeg_Cim_fx_chB_0 ) ); move32(); move32(); tmp2 = matrixMul_func1( Tim_fx_chA_1_LT_0 || Cim_fx_chB_1_GE_0, Tim_fx_chA_1_GE_0 || Cim_fx_chB_1_LT_0, Mpy_32_32( tmpIm_fx[chA][1], LNeg_Cim_fx_chB_1 ) ); move32(); move32(); outRe_fx[chA][chB] = L_sub( tmp3, L_add( tmp1, tmp2 ) ); move32(); tmp1 = matrixMul_func1( Tim_fx_chA_0_LT_0 || Cre_fx_chB_0_LT_0, Tim_fx_chA_0_GE_0 || Cre_fx_chB_0_GE_0, Mpy_32_32( tmpIm_fx[chA][0], Cre_fx[chB][0] ) ); move32(); move32(); tmp2 = matrixMul_func1( Tim_fx_chA_1_LT_0 || Cre_fx_chB_1_LT_0, Tim_fx_chA_1_GE_0 || Cre_fx_chB_1_GE_0, Mpy_32_32( tmpIm_fx[chA][1], Cre_fx[chB][1] ) ); move32(); move32(); tmp3 = L_add( tmp1, tmp2 ); move32(); move32(); tmp1 = matrixMul_func1( Tre_fx_chA_0_LT_0 || Cim_fx_chB_0_GE_0, Tre_fx_chA_0_GE_0 || Cim_fx_chB_0_LT_0, Mpy_32_32( tmpRe_fx[chA][0], LNeg_Cim_fx_chB_0 ) ); move32(); move32(); tmp2 = matrixMul_func1( Tre_fx_chA_1_LT_0 || Cim_fx_chB_1_GE_0, Tre_fx_chA_1_GE_0 || Cim_fx_chB_1_LT_0, Mpy_32_32( tmpRe_fx[chA][1], LNeg_Cim_fx_chB_1 ) ); move32(); move32(); outIm_fx[chA][chB] = L_add( tmp3, L_add( tmp1, tmp2 ) ); move32(); } } #endif #if 1 q_tmp = sub( add( *q_A, *q_B ), 31 ); #endif *q_out = sub( add( q_tmp, *q_C ), 31 ); move16(); Loading @@ -550,19 +460,6 @@ static void formulate2x2MixingMatrix_fx_func1( } return; #if 0 matrixMul_fx( KyRe_fx, KyIm_fx, &q_ky, Pre_fx, Pim_fx, &q_P, tmpRe_fx, tmpIm_fx, &q_temp ); matrixTransp2Mul_fx( tmpRe_fx, tmpIm_fx, &q_temp, Uxre_fx, Uxim_fx, &q_Ux, #ifdef FIX_1072_SPEEDUP_matrixTransp2Mul_fx_scaleSwitch 1 /*int Ascale*/, 0 /*int Bscale*/, #endif Mre_fx, Mim_fx, q_M ); #endif #endif /*FIX1072_SPEEDUP_formulate2x2MixingMatrix_fx_func1*/ } /*------------------------------------------------------------------------- Loading