Loading lib_dec/acelp_core_dec_fx.c +8 −1 Original line number Diff line number Diff line Loading @@ -1838,8 +1838,15 @@ ivas_error acelp_core_dec_fx( test(); IF( ( ( st->core_brate == FRAME_NO_DATA ) || EQ_32( st->core_brate, SID_2k40 ) ) && ( EQ_16( st->cng_type, FD_CNG ) ) && ( LT_16( st->hFdCngDec->hFdCngCom->numCoreBands, st->cldfbSyn->no_channels ) ) ) { #ifndef FIX_BASOP_2457_HARM_GEN generate_comfort_noise_dec_hf_fx(realBuffer_fx, imagBuffer_fx, &scaleFactor.hb_scale, st); #else generate_comfort_noise_dec_hf_ivas_fx(realBuffer_fx, imagBuffer_fx, &scaleFactor.hb_scale, st, , 0); #endif // !FIX_BASOP_2457_HARM_GEN st->cldfbSyn->bandsToZero = 0; move16(); IF( LT_16( st->hFdCngDec->hFdCngCom->regularStopBand, st->cldfbSyn->no_channels ) ) Loading lib_dec/fd_cng_dec_fx.c +22 −11 Original line number Diff line number Diff line Loading @@ -3510,7 +3510,9 @@ void generate_comfort_noise_dec_hf_ivas_fx( #ifdef FIX_BASOP_2457_HARM_GEN Decoder_State *st, #endif // FIX_BASOP_2457_HARM_GEN #ifndef FIX_BASOP_2457_HARM_GEN HANDLE_FD_CNG_COM hFdCngCom, /* i/o: FD_CNG structure containing all buffers and variables */ #endif const Word16 cng_coh_flag /* i : CNG Flag for coherence handling Q0*/ ) { Loading @@ -3527,6 +3529,7 @@ void generate_comfort_noise_dec_hf_ivas_fx( Word32 tmp1, tmp2; #ifdef FIX_BASOP_2457_HARM_GEN HANDLE_FD_CNG_COM hFdCngCom = st->hFdCngDec->hFdCngCom; Word32 Random_gauss; #endif // FIX_BASOP_2457_HARM_GEN cngNoiseLevel = hFdCngCom->cngNoiseLevel + sub( hFdCngCom->stopFFTbin, hFdCngCom->startBand ); /*Q31 - hFdCngCom->cngNoiseLevelExp*/ Loading Loading @@ -3598,12 +3601,10 @@ void generate_comfort_noise_dec_hf_ivas_fx( FOR( j = hFdCngCom->numCoreBands; j < hFdCngCom->regularStopBand; j++ ) { #ifdef FIX_BASOP_2457_HARM_GEN IF(EQ_16(st->element_mode, EVS_MONO)) { /* scaleCLDFB: CLDFBinvScalingFactor_EXP + 1 */ s = 0; move16(); sqrtNoiseLevel = Sqrt32(L_shr(Mpy_32_16_1(*ptr_level, scaleCLDFB), sn), &s); /*Q31 - s*/ } #endif // FIX_BASOP_2457_HARM_GEN FOR( i = 0; i < hFdCngCom->numSlots; i++ ) { Loading @@ -3612,13 +3613,6 @@ void generate_comfort_noise_dec_hf_ivas_fx( s = 0; move16(); sqrtNoiseLevel = Sqrt32(L_shr(Mpy_32_16_1(*ptr_level, scaleCLDFB), sn), &s); /*Q31 - s*/ #else IF(NE_16(st->element_mode, EVS_MONO)) { /* scaleCLDFB: CLDFBinvScalingFactor_EXP + 1 */ s = 0; move16(); sqrtNoiseLevel = Sqrt32(L_shr(Mpy_32_16_1(*ptr_level, scaleCLDFB), sn), &s); /*Q31 - s*/ } #endif // FIX_BASOP_2457_HARM_GEN Loading @@ -3642,6 +3636,7 @@ void generate_comfort_noise_dec_hf_ivas_fx( } ELSE { #ifndef FIX_BASOP_2457_HARM_GEN /* Real part in CLDFB band */ bufferReal[i][j] = L_shl(Mpy_32_32(L_shr(rand_gauss(seed), 1), sqrtNoiseLevel), s); /*bufferScale*/ move32(); Loading @@ -3649,6 +3644,22 @@ void generate_comfort_noise_dec_hf_ivas_fx( /* Imaginary part in CLDFB band */ bufferImag[i][j] = L_shl(Mpy_32_32(L_shr(rand_gauss(seed), 1), sqrtNoiseLevel), s); /*bufferScale*/ move32(); #else IF(EQ_16(st->element_mode, EVS_MONO)) { Random_gauss = rand_gauss(seed); } ELSE{ Random_gauss = L_shr(rand_gauss(seed), 1); } /* Real part in CLDFB band */ bufferReal[i][j] = L_shl(Mpy_32_32(Random_gauss, sqrtNoiseLevel), s); /*bufferScale*/ move32(); /* Imaginary part in CLDFB band */ bufferImag[i][j] = L_shl(Mpy_32_32(Random_gauss, sqrtNoiseLevel), s); /*bufferScale*/ move32(); #endif // !FIX_BASOP_2457_HARM_GEN } } ptr_level = ptr_level + 1; /*Q31 - hFdCngCom->cngNoiseLevelExp*/ Loading Loading
lib_dec/acelp_core_dec_fx.c +8 −1 Original line number Diff line number Diff line Loading @@ -1838,8 +1838,15 @@ ivas_error acelp_core_dec_fx( test(); IF( ( ( st->core_brate == FRAME_NO_DATA ) || EQ_32( st->core_brate, SID_2k40 ) ) && ( EQ_16( st->cng_type, FD_CNG ) ) && ( LT_16( st->hFdCngDec->hFdCngCom->numCoreBands, st->cldfbSyn->no_channels ) ) ) { #ifndef FIX_BASOP_2457_HARM_GEN generate_comfort_noise_dec_hf_fx(realBuffer_fx, imagBuffer_fx, &scaleFactor.hb_scale, st); #else generate_comfort_noise_dec_hf_ivas_fx(realBuffer_fx, imagBuffer_fx, &scaleFactor.hb_scale, st, , 0); #endif // !FIX_BASOP_2457_HARM_GEN st->cldfbSyn->bandsToZero = 0; move16(); IF( LT_16( st->hFdCngDec->hFdCngCom->regularStopBand, st->cldfbSyn->no_channels ) ) Loading
lib_dec/fd_cng_dec_fx.c +22 −11 Original line number Diff line number Diff line Loading @@ -3510,7 +3510,9 @@ void generate_comfort_noise_dec_hf_ivas_fx( #ifdef FIX_BASOP_2457_HARM_GEN Decoder_State *st, #endif // FIX_BASOP_2457_HARM_GEN #ifndef FIX_BASOP_2457_HARM_GEN HANDLE_FD_CNG_COM hFdCngCom, /* i/o: FD_CNG structure containing all buffers and variables */ #endif const Word16 cng_coh_flag /* i : CNG Flag for coherence handling Q0*/ ) { Loading @@ -3527,6 +3529,7 @@ void generate_comfort_noise_dec_hf_ivas_fx( Word32 tmp1, tmp2; #ifdef FIX_BASOP_2457_HARM_GEN HANDLE_FD_CNG_COM hFdCngCom = st->hFdCngDec->hFdCngCom; Word32 Random_gauss; #endif // FIX_BASOP_2457_HARM_GEN cngNoiseLevel = hFdCngCom->cngNoiseLevel + sub( hFdCngCom->stopFFTbin, hFdCngCom->startBand ); /*Q31 - hFdCngCom->cngNoiseLevelExp*/ Loading Loading @@ -3598,12 +3601,10 @@ void generate_comfort_noise_dec_hf_ivas_fx( FOR( j = hFdCngCom->numCoreBands; j < hFdCngCom->regularStopBand; j++ ) { #ifdef FIX_BASOP_2457_HARM_GEN IF(EQ_16(st->element_mode, EVS_MONO)) { /* scaleCLDFB: CLDFBinvScalingFactor_EXP + 1 */ s = 0; move16(); sqrtNoiseLevel = Sqrt32(L_shr(Mpy_32_16_1(*ptr_level, scaleCLDFB), sn), &s); /*Q31 - s*/ } #endif // FIX_BASOP_2457_HARM_GEN FOR( i = 0; i < hFdCngCom->numSlots; i++ ) { Loading @@ -3612,13 +3613,6 @@ void generate_comfort_noise_dec_hf_ivas_fx( s = 0; move16(); sqrtNoiseLevel = Sqrt32(L_shr(Mpy_32_16_1(*ptr_level, scaleCLDFB), sn), &s); /*Q31 - s*/ #else IF(NE_16(st->element_mode, EVS_MONO)) { /* scaleCLDFB: CLDFBinvScalingFactor_EXP + 1 */ s = 0; move16(); sqrtNoiseLevel = Sqrt32(L_shr(Mpy_32_16_1(*ptr_level, scaleCLDFB), sn), &s); /*Q31 - s*/ } #endif // FIX_BASOP_2457_HARM_GEN Loading @@ -3642,6 +3636,7 @@ void generate_comfort_noise_dec_hf_ivas_fx( } ELSE { #ifndef FIX_BASOP_2457_HARM_GEN /* Real part in CLDFB band */ bufferReal[i][j] = L_shl(Mpy_32_32(L_shr(rand_gauss(seed), 1), sqrtNoiseLevel), s); /*bufferScale*/ move32(); Loading @@ -3649,6 +3644,22 @@ void generate_comfort_noise_dec_hf_ivas_fx( /* Imaginary part in CLDFB band */ bufferImag[i][j] = L_shl(Mpy_32_32(L_shr(rand_gauss(seed), 1), sqrtNoiseLevel), s); /*bufferScale*/ move32(); #else IF(EQ_16(st->element_mode, EVS_MONO)) { Random_gauss = rand_gauss(seed); } ELSE{ Random_gauss = L_shr(rand_gauss(seed), 1); } /* Real part in CLDFB band */ bufferReal[i][j] = L_shl(Mpy_32_32(Random_gauss, sqrtNoiseLevel), s); /*bufferScale*/ move32(); /* Imaginary part in CLDFB band */ bufferImag[i][j] = L_shl(Mpy_32_32(Random_gauss, sqrtNoiseLevel), s); /*bufferScale*/ move32(); #endif // !FIX_BASOP_2457_HARM_GEN } } ptr_level = ptr_level + 1; /*Q31 - hFdCngCom->cngNoiseLevelExp*/ Loading