Loading lib_enc/acelp_core_enc_fx.c +30 −18 Original line number Diff line number Diff line Loading @@ -1089,9 +1089,9 @@ ivas_error acelp_core_enc_ivas_fx( Word16 Q_cngNoise = Q31, zero_flag = 0; move16(); move16(); FOR( Word16 j = 0; j < NPART; j++ ) FOR( i = 0; i < NPART; i++ ) { IF( st->hFdCngEnc->hFdCngCom->cngNoiseLevel[j] != 0 ) IF( st->hFdCngEnc->hFdCngCom->cngNoiseLevel[i] != 0 ) { zero_flag = 1; move16(); Loading Loading @@ -1508,6 +1508,14 @@ ivas_error acelp_core_enc_ivas_fx( /* save and delay synthesis to be used by SWB BWE */ IF( st->hBWE_FD != NULL ) { #ifdef HARMONIZE_ACELP_ENC IF( st->element_mode == EVS_MONO ) { save_old_syn_fx( st->L_frame, syn_fx, old_syn_12k8_16k, st->hBWE_FD->old_syn_12k8_16k_fx, st->preemph_fac, &st->hBWE_FD->mem_deemph_old_syn_fx ); } ELSE #endif { st->hBWE_FD->mem_deemph_old_syn_fx = shl_sat( st->hBWE_FD->mem_deemph_old_syn_fx, sub( s_min( st->Q_syn, st->hBWE_FD->q_mem_deemph_old_syn ), st->hBWE_FD->q_mem_deemph_old_syn ) ); // s_min( st->Q_syn, st->hBWE_FD->q_mem_deemph_old_syn ) move16(); Scale_sig( st->hBWE_FD->old_syn_12k8_16k_fx, NS2SA( 16000, DELAY_FD_BWE_ENC_NS ), sub( s_min( st->Q_syn, st->hBWE_FD->q_mem_deemph_old_syn ), st->hBWE_FD->q_mem_deemph_old_syn ) ); // s_min( st->Q_syn, st->hBWE_FD->q_mem_deemph_old_syn ) Loading @@ -1523,24 +1531,26 @@ ivas_error acelp_core_enc_ivas_fx( move16(); Scale_sig( syn_fx, st->L_frame, sub( st->Q_syn, s_min( st->Q_syn, st->hBWE_FD->q_mem_deemph_old_syn ) ) ); // st->Q_syn } } /*Update MODE2 core switching memory*/ #ifdef HARMONIZE_ACELP_ENC Copy( syn_fx, syn1_fx, st->L_frame ); // Q_syn E_UTIL_deemph2( sub( Q_new, 1 ), syn1_fx, st->preemph_fac, st->L_frame, &hLPDmem->syn[M] ); Copy( syn1_fx + st->L_frame - M - 1, hLPDmem->syn, M + 1 ); // Q_syn #else Copy( syn_fx, syn1_fx, st->L_frame ); // st->Q_syn Scale_sig( st->hLPDmem->syn, M + 1, sub( st->Q_syn, st->hLPDmem->q_lpd_syn ) ); // st->Q_syn st->hLPDmem->q_lpd_syn = st->Q_syn; move16(); /*Update MODE2 core switching memory*/ #ifdef HARMONIZE_ACELP_ENC IF( st->element_mode == EVS_MONO ) { E_UTIL_deemph2( sub( Q_new, 1 ), syn1_fx, st->preemph_fac, st->L_frame, &hLPDmem->syn[M] ); } ELSE #endif { deemph_fx( syn1_fx, st->preemph_fac, st->L_frame, &( hLPDmem->syn[M] ) ); } Copy( syn1_fx + add( st->L_frame, -M - 1 ), hLPDmem->syn, M + 1 ); // st->Q_syn #endif test(); IF( st->element_mode > EVS_MONO && st->hTcxEnc != NULL ) Loading Loading @@ -1722,26 +1732,28 @@ ivas_error acelp_core_enc_ivas_fx( Word16 q_exc = Q_new; move16(); IF( st->element_mode > EVS_MONO ) #endif { #endif #ifndef HARMONIZE_ACELP_ENC Word16 q_exc = st->hTdCngEnc->cng_Qexc_buf[0]; move16(); #endif FOR( Word16 ii = 0; ii < HO_HIST_SIZE; ii++ ) FOR( i = 0; i < HO_HIST_SIZE; i++ ) { q_exc = s_min( q_exc, st->hTdCngEnc->cng_Qexc_buf[ii] ); q_exc = s_min( q_exc, st->hTdCngEnc->cng_Qexc_buf[i] ); } q_exc = s_min( q_exc, Q_new ); Scale_sig( exc_fx, L_EXC - L_EXC_MEM, sub( q_exc, Q_new ) ); // q_exc FOR( Word16 ii = 0; ii < HO_HIST_SIZE; ii++ ) FOR( i = 0; i < HO_HIST_SIZE; i++ ) { Scale_sig( st->hTdCngEnc->cng_exc2_buf + ii * L_FFT, L_FFT, sub( q_exc, st->hTdCngEnc->cng_Qexc_buf[ii] ) ); // Q_exc st->hTdCngEnc->cng_Qexc_buf[ii] = q_exc; Scale_sig( st->hTdCngEnc->cng_exc2_buf + i * L_FFT, L_FFT, sub( q_exc, st->hTdCngEnc->cng_Qexc_buf[i] ) ); // Q_exc st->hTdCngEnc->cng_Qexc_buf[i] = q_exc; move16(); } #ifdef HARMONIZE_ACELP_ENC } #endif cng_params_upd_fx( lsp_new, exc_fx, st->L_frame, &st->hTdCngEnc->ho_circ_ptr, st->hTdCngEnc->ho_ener_circ_fx, &st->hTdCngEnc->ho_circ_size, st->hTdCngEnc->ho_lsp_circ_fx, q_exc, ENC, st->hTdCngEnc->ho_env_circ_fx, &st->hTdCngEnc->cng_buf_cnt, st->hTdCngEnc->cng_exc2_buf, st->hTdCngEnc->cng_Qexc_buf, st->hTdCngEnc->cng_brate_buf, st->hDtxEnc->last_active_brate, st->element_mode, st->hFdCngEnc->hFdCngCom->CngBandwidth ); Loading Loading
lib_enc/acelp_core_enc_fx.c +30 −18 Original line number Diff line number Diff line Loading @@ -1089,9 +1089,9 @@ ivas_error acelp_core_enc_ivas_fx( Word16 Q_cngNoise = Q31, zero_flag = 0; move16(); move16(); FOR( Word16 j = 0; j < NPART; j++ ) FOR( i = 0; i < NPART; i++ ) { IF( st->hFdCngEnc->hFdCngCom->cngNoiseLevel[j] != 0 ) IF( st->hFdCngEnc->hFdCngCom->cngNoiseLevel[i] != 0 ) { zero_flag = 1; move16(); Loading Loading @@ -1508,6 +1508,14 @@ ivas_error acelp_core_enc_ivas_fx( /* save and delay synthesis to be used by SWB BWE */ IF( st->hBWE_FD != NULL ) { #ifdef HARMONIZE_ACELP_ENC IF( st->element_mode == EVS_MONO ) { save_old_syn_fx( st->L_frame, syn_fx, old_syn_12k8_16k, st->hBWE_FD->old_syn_12k8_16k_fx, st->preemph_fac, &st->hBWE_FD->mem_deemph_old_syn_fx ); } ELSE #endif { st->hBWE_FD->mem_deemph_old_syn_fx = shl_sat( st->hBWE_FD->mem_deemph_old_syn_fx, sub( s_min( st->Q_syn, st->hBWE_FD->q_mem_deemph_old_syn ), st->hBWE_FD->q_mem_deemph_old_syn ) ); // s_min( st->Q_syn, st->hBWE_FD->q_mem_deemph_old_syn ) move16(); Scale_sig( st->hBWE_FD->old_syn_12k8_16k_fx, NS2SA( 16000, DELAY_FD_BWE_ENC_NS ), sub( s_min( st->Q_syn, st->hBWE_FD->q_mem_deemph_old_syn ), st->hBWE_FD->q_mem_deemph_old_syn ) ); // s_min( st->Q_syn, st->hBWE_FD->q_mem_deemph_old_syn ) Loading @@ -1523,24 +1531,26 @@ ivas_error acelp_core_enc_ivas_fx( move16(); Scale_sig( syn_fx, st->L_frame, sub( st->Q_syn, s_min( st->Q_syn, st->hBWE_FD->q_mem_deemph_old_syn ) ) ); // st->Q_syn } } /*Update MODE2 core switching memory*/ #ifdef HARMONIZE_ACELP_ENC Copy( syn_fx, syn1_fx, st->L_frame ); // Q_syn E_UTIL_deemph2( sub( Q_new, 1 ), syn1_fx, st->preemph_fac, st->L_frame, &hLPDmem->syn[M] ); Copy( syn1_fx + st->L_frame - M - 1, hLPDmem->syn, M + 1 ); // Q_syn #else Copy( syn_fx, syn1_fx, st->L_frame ); // st->Q_syn Scale_sig( st->hLPDmem->syn, M + 1, sub( st->Q_syn, st->hLPDmem->q_lpd_syn ) ); // st->Q_syn st->hLPDmem->q_lpd_syn = st->Q_syn; move16(); /*Update MODE2 core switching memory*/ #ifdef HARMONIZE_ACELP_ENC IF( st->element_mode == EVS_MONO ) { E_UTIL_deemph2( sub( Q_new, 1 ), syn1_fx, st->preemph_fac, st->L_frame, &hLPDmem->syn[M] ); } ELSE #endif { deemph_fx( syn1_fx, st->preemph_fac, st->L_frame, &( hLPDmem->syn[M] ) ); } Copy( syn1_fx + add( st->L_frame, -M - 1 ), hLPDmem->syn, M + 1 ); // st->Q_syn #endif test(); IF( st->element_mode > EVS_MONO && st->hTcxEnc != NULL ) Loading Loading @@ -1722,26 +1732,28 @@ ivas_error acelp_core_enc_ivas_fx( Word16 q_exc = Q_new; move16(); IF( st->element_mode > EVS_MONO ) #endif { #endif #ifndef HARMONIZE_ACELP_ENC Word16 q_exc = st->hTdCngEnc->cng_Qexc_buf[0]; move16(); #endif FOR( Word16 ii = 0; ii < HO_HIST_SIZE; ii++ ) FOR( i = 0; i < HO_HIST_SIZE; i++ ) { q_exc = s_min( q_exc, st->hTdCngEnc->cng_Qexc_buf[ii] ); q_exc = s_min( q_exc, st->hTdCngEnc->cng_Qexc_buf[i] ); } q_exc = s_min( q_exc, Q_new ); Scale_sig( exc_fx, L_EXC - L_EXC_MEM, sub( q_exc, Q_new ) ); // q_exc FOR( Word16 ii = 0; ii < HO_HIST_SIZE; ii++ ) FOR( i = 0; i < HO_HIST_SIZE; i++ ) { Scale_sig( st->hTdCngEnc->cng_exc2_buf + ii * L_FFT, L_FFT, sub( q_exc, st->hTdCngEnc->cng_Qexc_buf[ii] ) ); // Q_exc st->hTdCngEnc->cng_Qexc_buf[ii] = q_exc; Scale_sig( st->hTdCngEnc->cng_exc2_buf + i * L_FFT, L_FFT, sub( q_exc, st->hTdCngEnc->cng_Qexc_buf[i] ) ); // Q_exc st->hTdCngEnc->cng_Qexc_buf[i] = q_exc; move16(); } #ifdef HARMONIZE_ACELP_ENC } #endif cng_params_upd_fx( lsp_new, exc_fx, st->L_frame, &st->hTdCngEnc->ho_circ_ptr, st->hTdCngEnc->ho_ener_circ_fx, &st->hTdCngEnc->ho_circ_size, st->hTdCngEnc->ho_lsp_circ_fx, q_exc, ENC, st->hTdCngEnc->ho_env_circ_fx, &st->hTdCngEnc->cng_buf_cnt, st->hTdCngEnc->cng_exc2_buf, st->hTdCngEnc->cng_Qexc_buf, st->hTdCngEnc->cng_brate_buf, st->hDtxEnc->last_active_brate, st->element_mode, st->hFdCngEnc->hFdCngCom->CngBandwidth ); Loading