Loading lib_enc/ivas_mc_param_enc_fx.c +14 −19 Original line number Diff line number Diff line Loading @@ -36,14 +36,14 @@ Word16 norm; \ norm = W_norm( x_64 ); \ y_fx = W_extract_h( W_shl( x_64, norm ) ); \ y_e = sub( sub( 62, gb ), norm ); \ y_e = sub( sub62gb, norm ); \ } #define CONVERT_DMX( x_64, y_fx, y_e ) \ { \ Word16 norm; \ norm = W_norm( x_64 ); \ y_fx = W_extract_h( W_shl( x_64, norm ) ); \ y_e = sub( sub( 35, gb ), norm ); \ y_e = sub( sub35gb, norm ); \ } #include <math.h> #include <assert.h> Loading Loading @@ -678,6 +678,8 @@ static void ivas_param_mc_param_est_enc_fx( #ifdef MERGE_REQUEST_1378_SPEEDUP_ivas_mc_param_enc_fx_NONBE Word64 Cy_sum_real_64[PARAM_MC_MAX_PARAMETER_BANDS][MAX_CICP_CHANNELS][MAX_CICP_CHANNELS]; Word64 Cy_sum_imag_64[PARAM_MC_MAX_PARAM_BAND_ABS_COV_ENC][MAX_CICP_CHANNELS][MAX_CICP_CHANNELS]; Word16 sub62gb; Word16 sub35gb; #else Word32 Cy_sum_imag_fx[PARAM_MC_MAX_PARAM_BAND_ABS_COV_ENC][MAX_CICP_CHANNELS][MAX_CICP_CHANNELS]; Word16 Cy_sum_imag_e[PARAM_MC_MAX_PARAM_BAND_ABS_COV_ENC][MAX_CICP_CHANNELS][MAX_CICP_CHANNELS]; Loading Loading @@ -764,6 +766,10 @@ static void ivas_param_mc_param_est_enc_fx( Word16 add20gb = add( 20, gb ); #endif #endif #ifdef MERGE_REQUEST_1378_SPEEDUP_ivas_mc_param_enc_fx_NONBE sub35gb = sub( 35, find_guarded_bits_fx( l_ts ) ); sub62gb = sub( 62, find_guarded_bits_fx( l_ts ) ); #endif FOR( ts = start_ts; ts < num_time_slots; ts++ ) Loading Loading @@ -868,21 +874,12 @@ static void ivas_param_mc_param_est_enc_fx( #ifdef MERGE_REQUEST_1472_SPEEDUP_ivas_mc_param_enc_fx_NONBE CONVERT_DMX( dmx_real_64[ch_idx1], a_fx, a_e ); CONVERT_DMX( dmx_imag_64[ch_idx1], b_fx, b_e ); move32(); move32(); move16(); move16(); #endif FOR( ch_idx2 = 0; ch_idx2 < nchan_transport; ++ch_idx2 ) { #ifdef MERGE_REQUEST_1472_SPEEDUP_ivas_mc_param_enc_fx_NONBE CONVERT_DMX( dmx_real_64[ch_idx2], c_fx, c_e ); CONVERT_DMX( dmx_imag_64[ch_idx2], d_fx, d_e ); move32(); move32(); move16(); move16(); #else a_fx = dmx_real_fx[ch_idx1]; move32(); Loading Loading @@ -1085,10 +1082,6 @@ static void ivas_param_mc_param_est_enc_fx( #ifdef MERGE_REQUEST_1472_SPEEDUP_ivas_mc_param_enc_fx_NONBE CONVERT_DMX( dmx_real_64[ch_idx1], a_fx, a_e ); CONVERT_DMX( dmx_imag_64[ch_idx1], b_fx, b_e ); move32(); move32(); move16(); move16(); #else #ifdef IMPROVE_HIGH_COMPLEXITY_PARAM_MC_PRM_EST_BE a_fx = dmx_real_fx[ch_idx1]; Loading @@ -1107,10 +1100,6 @@ static void ivas_param_mc_param_est_enc_fx( #ifdef MERGE_REQUEST_1472_SPEEDUP_ivas_mc_param_enc_fx_NONBE CONVERT_DMX( dmx_real_64[ch_idx2], c_fx, c_e ); CONVERT_DMX( dmx_imag_64[ch_idx2], d_fx, d_e ); move32(); move32(); move16(); move16(); /* (a-ib)(c+id) = ac + bd + i(ad-bc) */ L_tmp = BASOP_Util_Add_Mant32Exp( Mpy_32_32( a_fx, c_fx ), add( a_e, c_e ), Mpy_32_32( b_fx, d_fx ), add( b_e, d_e ), &tmp_e ); Loading Loading @@ -1320,6 +1309,8 @@ static void ivas_param_mc_param_est_enc_fx( { #ifdef MERGE_REQUEST_1378_SPEEDUP_ivas_mc_param_enc_fx_NONBE CONVERT_CY( Cy_sum_real_64[cur_param_band][k][k], Nrg_fx[k], Nrg_e[k] ); move32(); move16(); #else Nrg_fx[k] = Cy_sum_fx[cur_param_band][k][k]; move32(); Loading Loading @@ -1457,6 +1448,8 @@ static void ivas_param_mc_param_est_enc_fx( FOR( ch_idx2 = 0; ch_idx2 < MAX_CICP_CHANNELS; ch_idx2++ ) { CONVERT_CY( Cy_sum_real_64[cur_param_band][ch_idx1][ch_idx2], Cy_sum_fx[cur_param_band][ch_idx1][ch_idx2], Cy_sum_e[cur_param_band][ch_idx1][ch_idx2] ); move32(); move16(); } } } Loading Loading @@ -1500,6 +1493,8 @@ static void ivas_param_mc_param_est_enc_fx( { #ifdef MERGE_REQUEST_1378_SPEEDUP_ivas_mc_param_enc_fx_NONBE CONVERT_CY( Cy_sum_imag_64[cur_param_band][ch_idx1][ch_idx2], imag_part_fx, imag_part_e ); move32(); move16(); #else imag_part_fx = Cy_sum_imag_fx[cur_param_band][ch_idx1][ch_idx2]; move32(); Loading Loading
lib_enc/ivas_mc_param_enc_fx.c +14 −19 Original line number Diff line number Diff line Loading @@ -36,14 +36,14 @@ Word16 norm; \ norm = W_norm( x_64 ); \ y_fx = W_extract_h( W_shl( x_64, norm ) ); \ y_e = sub( sub( 62, gb ), norm ); \ y_e = sub( sub62gb, norm ); \ } #define CONVERT_DMX( x_64, y_fx, y_e ) \ { \ Word16 norm; \ norm = W_norm( x_64 ); \ y_fx = W_extract_h( W_shl( x_64, norm ) ); \ y_e = sub( sub( 35, gb ), norm ); \ y_e = sub( sub35gb, norm ); \ } #include <math.h> #include <assert.h> Loading Loading @@ -678,6 +678,8 @@ static void ivas_param_mc_param_est_enc_fx( #ifdef MERGE_REQUEST_1378_SPEEDUP_ivas_mc_param_enc_fx_NONBE Word64 Cy_sum_real_64[PARAM_MC_MAX_PARAMETER_BANDS][MAX_CICP_CHANNELS][MAX_CICP_CHANNELS]; Word64 Cy_sum_imag_64[PARAM_MC_MAX_PARAM_BAND_ABS_COV_ENC][MAX_CICP_CHANNELS][MAX_CICP_CHANNELS]; Word16 sub62gb; Word16 sub35gb; #else Word32 Cy_sum_imag_fx[PARAM_MC_MAX_PARAM_BAND_ABS_COV_ENC][MAX_CICP_CHANNELS][MAX_CICP_CHANNELS]; Word16 Cy_sum_imag_e[PARAM_MC_MAX_PARAM_BAND_ABS_COV_ENC][MAX_CICP_CHANNELS][MAX_CICP_CHANNELS]; Loading Loading @@ -764,6 +766,10 @@ static void ivas_param_mc_param_est_enc_fx( Word16 add20gb = add( 20, gb ); #endif #endif #ifdef MERGE_REQUEST_1378_SPEEDUP_ivas_mc_param_enc_fx_NONBE sub35gb = sub( 35, find_guarded_bits_fx( l_ts ) ); sub62gb = sub( 62, find_guarded_bits_fx( l_ts ) ); #endif FOR( ts = start_ts; ts < num_time_slots; ts++ ) Loading Loading @@ -868,21 +874,12 @@ static void ivas_param_mc_param_est_enc_fx( #ifdef MERGE_REQUEST_1472_SPEEDUP_ivas_mc_param_enc_fx_NONBE CONVERT_DMX( dmx_real_64[ch_idx1], a_fx, a_e ); CONVERT_DMX( dmx_imag_64[ch_idx1], b_fx, b_e ); move32(); move32(); move16(); move16(); #endif FOR( ch_idx2 = 0; ch_idx2 < nchan_transport; ++ch_idx2 ) { #ifdef MERGE_REQUEST_1472_SPEEDUP_ivas_mc_param_enc_fx_NONBE CONVERT_DMX( dmx_real_64[ch_idx2], c_fx, c_e ); CONVERT_DMX( dmx_imag_64[ch_idx2], d_fx, d_e ); move32(); move32(); move16(); move16(); #else a_fx = dmx_real_fx[ch_idx1]; move32(); Loading Loading @@ -1085,10 +1082,6 @@ static void ivas_param_mc_param_est_enc_fx( #ifdef MERGE_REQUEST_1472_SPEEDUP_ivas_mc_param_enc_fx_NONBE CONVERT_DMX( dmx_real_64[ch_idx1], a_fx, a_e ); CONVERT_DMX( dmx_imag_64[ch_idx1], b_fx, b_e ); move32(); move32(); move16(); move16(); #else #ifdef IMPROVE_HIGH_COMPLEXITY_PARAM_MC_PRM_EST_BE a_fx = dmx_real_fx[ch_idx1]; Loading @@ -1107,10 +1100,6 @@ static void ivas_param_mc_param_est_enc_fx( #ifdef MERGE_REQUEST_1472_SPEEDUP_ivas_mc_param_enc_fx_NONBE CONVERT_DMX( dmx_real_64[ch_idx2], c_fx, c_e ); CONVERT_DMX( dmx_imag_64[ch_idx2], d_fx, d_e ); move32(); move32(); move16(); move16(); /* (a-ib)(c+id) = ac + bd + i(ad-bc) */ L_tmp = BASOP_Util_Add_Mant32Exp( Mpy_32_32( a_fx, c_fx ), add( a_e, c_e ), Mpy_32_32( b_fx, d_fx ), add( b_e, d_e ), &tmp_e ); Loading Loading @@ -1320,6 +1309,8 @@ static void ivas_param_mc_param_est_enc_fx( { #ifdef MERGE_REQUEST_1378_SPEEDUP_ivas_mc_param_enc_fx_NONBE CONVERT_CY( Cy_sum_real_64[cur_param_band][k][k], Nrg_fx[k], Nrg_e[k] ); move32(); move16(); #else Nrg_fx[k] = Cy_sum_fx[cur_param_band][k][k]; move32(); Loading Loading @@ -1457,6 +1448,8 @@ static void ivas_param_mc_param_est_enc_fx( FOR( ch_idx2 = 0; ch_idx2 < MAX_CICP_CHANNELS; ch_idx2++ ) { CONVERT_CY( Cy_sum_real_64[cur_param_band][ch_idx1][ch_idx2], Cy_sum_fx[cur_param_band][ch_idx1][ch_idx2], Cy_sum_e[cur_param_band][ch_idx1][ch_idx2] ); move32(); move16(); } } } Loading Loading @@ -1500,6 +1493,8 @@ static void ivas_param_mc_param_est_enc_fx( { #ifdef MERGE_REQUEST_1378_SPEEDUP_ivas_mc_param_enc_fx_NONBE CONVERT_CY( Cy_sum_imag_64[cur_param_band][ch_idx1][ch_idx2], imag_part_fx, imag_part_e ); move32(); move16(); #else imag_part_fx = Cy_sum_imag_fx[cur_param_band][ch_idx1][ch_idx2]; move32(); Loading