Loading lib_enc/ivas_mc_paramupmix_enc.c +16 −19 Original line number Diff line number Diff line Loading @@ -809,13 +809,18 @@ static ivas_error ivas_mc_paramupmix_param_est_enc_fx( move16(); move16(); move16(); move16(); move16(); move16(); move16(); move16(); move16(); move16(); FOR( i = 0; i < MC_PARAMUPMIX_COMBINATIONS; i++ ) { pcm_in_fx[2 * i] = data_f_fx[chan1s[i]]; pcm_in_fx[2 * i + 1] = data_f_fx[chan2s[i]]; move16(); move16(); Scale_sig32( pcm_in_fx[2 * i], input_frame, sub( Q14, Q_data_f ) ); Scale_sig32( pcm_in_fx[2 * i + 1], input_frame, sub( Q14, Q_data_f ) ); Loading @@ -842,8 +847,6 @@ static ivas_error ivas_mc_paramupmix_param_est_enc_fx( { p_fr_realbuffer_fx[i] = fr_realbuffer_fx[i]; p_fr_imagbuffer_fx[i] = fr_imagbuffer_fx[i]; move32(); move32(); } /* prepare Parameter MDFT analysis */ Loading @@ -851,8 +854,6 @@ static ivas_error ivas_mc_paramupmix_param_est_enc_fx( { pp_in_fr_real_fx[i] = p_fr_realbuffer_fx[i]; pp_in_fr_imag_fx[i] = p_fr_imagbuffer_fx[i]; move32(); move32(); } // l_ts = input_frame / MAX_PARAM_SPATIAL_SUBFRAMES; Loading Loading @@ -887,8 +888,8 @@ static ivas_error ivas_mc_paramupmix_param_est_enc_fx( FOR( i = 0; i < MC_PARAMUPMIX_COMBINATIONS; i++ ) { Scale_sig32( pcm_in_fx[2 * i], input_frame, Q_data_f - Q14 ); Scale_sig32( pcm_in_fx[2 * i + 1], input_frame, Q_data_f - Q14 ); Scale_sig32( pcm_in_fx[2 * i], input_frame, sub( Q_data_f, Q14 ) ); Scale_sig32( pcm_in_fx[2 * i + 1], input_frame, sub( Q_data_f, Q14 ) ); } /*-----------------------------------------------------------------------------------------* Loading Loading @@ -953,15 +954,14 @@ static ivas_error ivas_mc_paramupmix_param_est_enc_fx( FOR( bnd = 0; bnd < maxbands; bnd++ ) { rxy_fx = hMCParamUpmix->cov_real_fx[b][1][0][bnd]; move32(); ryy_fx = hMCParamUpmix->cov_real_fx[b][1][1][bnd]; move32(); Word16 exp_tmp = 0; move16(); Word32 tmp = BASOP_Util_Add_Mant32Exp( ryy_fx, sub( 31, ( hMCParamUpmix->hCovEnc[b]->pCov_state->q_cov_real_per_band[1][1][bnd] ) ), EPSILON_FX_M, EPSILON_FX_E, &exp_tmp ); exp_cmat = 0; move16(); cmat_fx = BASOP_Util_Divide3232_Scale( rxy_fx, tmp, &exp_cmat ); exp_cmat = sub( add( exp_cmat, sub( 31, ( hMCParamUpmix->hCovEnc[b]->pCov_state->q_cov_real_per_band[1][0][bnd] ) ) ), exp_tmp ); cmat_fx = BASOP_Util_Divide3232_Scale( rxy_fx, L_add( ryy_fx, EPSILON_FX ), &exp_cmat ); exp_cmat = sub( add( exp_cmat, sub( 31, ( hMCParamUpmix->hCovEnc[b]->pCov_state->q_cov_real_per_band[1][0][bnd] ) ) ), sub( 31, ( hMCParamUpmix->hCovEnc[b]->pCov_state->q_cov_real_per_band[1][1][bnd] ) ) ); Word16 alpha_fx = 0, exp_alpha_var = 0; move16(); Loading @@ -969,6 +969,7 @@ static ivas_error ivas_mc_paramupmix_param_est_enc_fx( exp_alpha_var = BASOP_Util_Add_MantExp( cmat_fx, add( exp_cmat, 1 ), negate( ONE_IN_Q14 ), 1, &alpha_fx ); rxx_fx = hMCParamUpmix->cov_real_fx[b][0][0][bnd]; move32(); Word32 tmp_2 = L_mult( cmat_fx, cmat_fx ); // exp_cmat * 2 rxxest_fx = Mpy_32_32( tmp_2, ryy_fx ); Loading @@ -980,8 +981,8 @@ static ivas_error ivas_mc_paramupmix_param_est_enc_fx( exp_wetaux = 0; move16(); wetaux_fx = BASOP_Util_Divide3232_Scale( drxx_fx, tmp, &exp_wetaux ); exp_wetaux = sub( add( exp_wetaux, exp_drxx ), exp_tmp ); wetaux_fx = BASOP_Util_Divide3232_Scale( drxx_fx, L_add( ryy_fx, EPSILON_FX ), &exp_wetaux ); exp_wetaux = sub( add( exp_wetaux, exp_drxx ), sub( 31, ( hMCParamUpmix->hCovEnc[b]->pCov_state->q_cov_real_per_band[1][1][bnd] ) ) ); Word16 sqrt_wetaux_fx = 0, exp_sqrt_wetaux = 0; move16(); Loading @@ -993,10 +994,6 @@ static ivas_error ivas_mc_paramupmix_param_est_enc_fx( move16(); move16(); BASOP_Util_Sqrt_InvSqrt_MantExp( wetaux_fx, exp_wetaux, &sqrt_wetaux_fx, &exp_sqrt_wetaux, &tmp_4, &exp_tmp4 ); tmp_4 = tmp_4; exp_tmp4 = exp_tmp4; move16(); move16(); } ELSE { Loading Loading
lib_enc/ivas_mc_paramupmix_enc.c +16 −19 Original line number Diff line number Diff line Loading @@ -809,13 +809,18 @@ static ivas_error ivas_mc_paramupmix_param_est_enc_fx( move16(); move16(); move16(); move16(); move16(); move16(); move16(); move16(); move16(); move16(); FOR( i = 0; i < MC_PARAMUPMIX_COMBINATIONS; i++ ) { pcm_in_fx[2 * i] = data_f_fx[chan1s[i]]; pcm_in_fx[2 * i + 1] = data_f_fx[chan2s[i]]; move16(); move16(); Scale_sig32( pcm_in_fx[2 * i], input_frame, sub( Q14, Q_data_f ) ); Scale_sig32( pcm_in_fx[2 * i + 1], input_frame, sub( Q14, Q_data_f ) ); Loading @@ -842,8 +847,6 @@ static ivas_error ivas_mc_paramupmix_param_est_enc_fx( { p_fr_realbuffer_fx[i] = fr_realbuffer_fx[i]; p_fr_imagbuffer_fx[i] = fr_imagbuffer_fx[i]; move32(); move32(); } /* prepare Parameter MDFT analysis */ Loading @@ -851,8 +854,6 @@ static ivas_error ivas_mc_paramupmix_param_est_enc_fx( { pp_in_fr_real_fx[i] = p_fr_realbuffer_fx[i]; pp_in_fr_imag_fx[i] = p_fr_imagbuffer_fx[i]; move32(); move32(); } // l_ts = input_frame / MAX_PARAM_SPATIAL_SUBFRAMES; Loading Loading @@ -887,8 +888,8 @@ static ivas_error ivas_mc_paramupmix_param_est_enc_fx( FOR( i = 0; i < MC_PARAMUPMIX_COMBINATIONS; i++ ) { Scale_sig32( pcm_in_fx[2 * i], input_frame, Q_data_f - Q14 ); Scale_sig32( pcm_in_fx[2 * i + 1], input_frame, Q_data_f - Q14 ); Scale_sig32( pcm_in_fx[2 * i], input_frame, sub( Q_data_f, Q14 ) ); Scale_sig32( pcm_in_fx[2 * i + 1], input_frame, sub( Q_data_f, Q14 ) ); } /*-----------------------------------------------------------------------------------------* Loading Loading @@ -953,15 +954,14 @@ static ivas_error ivas_mc_paramupmix_param_est_enc_fx( FOR( bnd = 0; bnd < maxbands; bnd++ ) { rxy_fx = hMCParamUpmix->cov_real_fx[b][1][0][bnd]; move32(); ryy_fx = hMCParamUpmix->cov_real_fx[b][1][1][bnd]; move32(); Word16 exp_tmp = 0; move16(); Word32 tmp = BASOP_Util_Add_Mant32Exp( ryy_fx, sub( 31, ( hMCParamUpmix->hCovEnc[b]->pCov_state->q_cov_real_per_band[1][1][bnd] ) ), EPSILON_FX_M, EPSILON_FX_E, &exp_tmp ); exp_cmat = 0; move16(); cmat_fx = BASOP_Util_Divide3232_Scale( rxy_fx, tmp, &exp_cmat ); exp_cmat = sub( add( exp_cmat, sub( 31, ( hMCParamUpmix->hCovEnc[b]->pCov_state->q_cov_real_per_band[1][0][bnd] ) ) ), exp_tmp ); cmat_fx = BASOP_Util_Divide3232_Scale( rxy_fx, L_add( ryy_fx, EPSILON_FX ), &exp_cmat ); exp_cmat = sub( add( exp_cmat, sub( 31, ( hMCParamUpmix->hCovEnc[b]->pCov_state->q_cov_real_per_band[1][0][bnd] ) ) ), sub( 31, ( hMCParamUpmix->hCovEnc[b]->pCov_state->q_cov_real_per_band[1][1][bnd] ) ) ); Word16 alpha_fx = 0, exp_alpha_var = 0; move16(); Loading @@ -969,6 +969,7 @@ static ivas_error ivas_mc_paramupmix_param_est_enc_fx( exp_alpha_var = BASOP_Util_Add_MantExp( cmat_fx, add( exp_cmat, 1 ), negate( ONE_IN_Q14 ), 1, &alpha_fx ); rxx_fx = hMCParamUpmix->cov_real_fx[b][0][0][bnd]; move32(); Word32 tmp_2 = L_mult( cmat_fx, cmat_fx ); // exp_cmat * 2 rxxest_fx = Mpy_32_32( tmp_2, ryy_fx ); Loading @@ -980,8 +981,8 @@ static ivas_error ivas_mc_paramupmix_param_est_enc_fx( exp_wetaux = 0; move16(); wetaux_fx = BASOP_Util_Divide3232_Scale( drxx_fx, tmp, &exp_wetaux ); exp_wetaux = sub( add( exp_wetaux, exp_drxx ), exp_tmp ); wetaux_fx = BASOP_Util_Divide3232_Scale( drxx_fx, L_add( ryy_fx, EPSILON_FX ), &exp_wetaux ); exp_wetaux = sub( add( exp_wetaux, exp_drxx ), sub( 31, ( hMCParamUpmix->hCovEnc[b]->pCov_state->q_cov_real_per_band[1][1][bnd] ) ) ); Word16 sqrt_wetaux_fx = 0, exp_sqrt_wetaux = 0; move16(); Loading @@ -993,10 +994,6 @@ static ivas_error ivas_mc_paramupmix_param_est_enc_fx( move16(); move16(); BASOP_Util_Sqrt_InvSqrt_MantExp( wetaux_fx, exp_wetaux, &sqrt_wetaux_fx, &exp_sqrt_wetaux, &tmp_4, &exp_tmp4 ); tmp_4 = tmp_4; exp_tmp4 = exp_tmp4; move16(); move16(); } ELSE { Loading