From d917860b9683f8ee10f6f4c01b4930d6da646267 Mon Sep 17 00:00:00 2001 From: Sandesh Venkatesh Date: Thu, 29 Aug 2024 12:15:24 +0530 Subject: [PATCH] Updates for Q-handling in stereo cng dec to address 3GPP issue 732 --- lib_dec/ivas_stereo_cng_dec.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib_dec/ivas_stereo_cng_dec.c b/lib_dec/ivas_stereo_cng_dec.c index 8bcbd2a45..deb3344f2 100644 --- a/lib_dec/ivas_stereo_cng_dec.c +++ b/lib_dec/ivas_stereo_cng_dec.c @@ -1319,13 +1319,17 @@ static void stereo_dft_generate_comfort_noise_fx( { /* Real part in FFT bins */ rand_gauss_fx( ptr_r, &st->hTdCngDec->cng_seed, q_dft ); - tmp = Mpy_32_16_1( Sqrt32( *ptr_level, &q_sqrt ), scale ); - ( *ptr_r ) = Mpy_32_32( *ptr_r, tmp ); + q_sqrt = sub( Q31, q_cngNoiseLevel ); + tmp = Sqrt32( *ptr_level, &q_sqrt ); + tmp = Mpy_32_16_1( tmp, scale ); // 15 + q_sqrt + ( *ptr_r ) = Mpy_32_32( *ptr_r, tmp ); // q_dft + 15 + q_sqrt - 31 + ( *ptr_r ) = L_shl_sat( ( *ptr_r ), add( 15, q_sqrt ) ); move32(); ptr_r += 2; /* Imaginary part in FFT bins */ rand_gauss_fx( ptr_i, &st->hTdCngDec->cng_seed, q_dft ); ( *ptr_i ) = Mpy_32_32( *ptr_i, tmp ); + ( *ptr_i ) = L_shl_sat( ( *ptr_i ), add( 15, q_sqrt ) ); move32(); ptr_i += 2; } -- GitLab