From 96c564f3bc509eaa4b4cec744ad414fd4f1b7730 Mon Sep 17 00:00:00 2001 From: "Azizi, Arash" Date: Mon, 9 Feb 2026 10:52:29 +0100 Subject: [PATCH 1/2] issue: 2411 Harmonizing functions TNSAnalysis*_fx, DetectTnsFilt*_fx --- lib_com/options.h | 1 + lib_enc/cod_tcx_fx.c | 23 +++- lib_enc/ext_sig_ana_fx.c | 23 +++- lib_enc/prot_fx_enc.h | 20 +++- lib_enc/tns_base_enc_fx.c | 243 ++++++++++++++++++++------------------ 5 files changed, 184 insertions(+), 126 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 61a3c10cc..12473865e 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -94,6 +94,7 @@ #define FIX_2404_HARM_SIGNAL_CLAS /* VA: basop-2404, harmonize signal_clas and signa_ivas_clas */ #define HARMONIZE_ACELP_ENC /* VA: basop issue 2400: Remove duplicated main ACELP encoder function */ #define FIX_2392_MSAN_DESTROY_DEC /* VA: basop issue 2392: fix MSAN in ivas_destroy_dec_fx() */ +#define FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT /* FhG: basop issue 2411: harmonize TNSAnalysis*_fx(), DetectTnsFilt*_fx()*/ /* #################### End BE switches ################################## */ diff --git a/lib_enc/cod_tcx_fx.c b/lib_enc/cod_tcx_fx.c index d2dd0bf03..160a99b05 100644 --- a/lib_enc/cod_tcx_fx.c +++ b/lib_enc/cod_tcx_fx.c @@ -135,6 +135,8 @@ void HBAutocorrelation_fx( } } +#ifndef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT + void TNSAnalysis_fx( TCX_CONFIG_HANDLE hTcxCfg, /* i : configuration of TCX */ Word16 L_frame, /* input: frame length */ @@ -189,7 +191,7 @@ void TNSAnalysis_fx( } move16(); - *pfUseTns = (Word8) DetectTnsFilt_fx( hTcxCfg->pCurrentTnsConfig, spectrum, pTnsData, predictionGain ); + *pfUseTns = (Word8)DetectTnsFilt_fx(hTcxCfg->pCurrentTnsConfig, spectrum, pTnsData, predictionGain); /* If TNS should be used then get the residual after applying it inplace in spectrum */ IF( *pfUseTns != 0 ) @@ -217,8 +219,12 @@ void TNSAnalysis_fx( } } } - +#endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT +#ifndef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT void TNSAnalysis_ivas_fx( +#else +void TNSAnalysis_fx( +#endif // FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT TCX_CONFIG_HANDLE hTcxCfg, /* i : configuration of TCX */ Word16 L_frame, /* i : frame length */ Word16 L_spec, /* i : length of the spectrum */ @@ -274,7 +280,13 @@ void TNSAnalysis_ivas_fx( } move16(); - *pfUseTns = (Word8) DetectTnsFilt_ivas_fx( hTcxCfg->pCurrentTnsConfig, spectrum, pTnsData, hTranDet, (Word8) NE_16( transform_type, TCX_20 ), ltp_gain, predictionGain ); +#ifdef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT + * pfUseTns = (Word8)DetectTnsFilt_fx(hTcxCfg->pCurrentTnsConfig, spectrum, pTnsData, hTranDet, (Word8)NE_16(transform_type, TCX_20), ltp_gain, predictionGain); + +#else + * pfUseTns = (Word8)DetectTnsFilt_ivas_fx(hTcxCfg->pCurrentTnsConfig, spectrum, pTnsData, hTranDet, (Word8)NE_16(transform_type, TCX_20), ltp_gain, predictionGain); + +#endif // FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT /* If TNS should be used then get the residual after applying it inplace in spectrum */ IF( *pfUseTns != 0 ) @@ -3847,8 +3859,11 @@ void coder_tcx_fx( { SetTnsConfig( hTcxCfg, sub( L_frame_glob, st->L_frame ) == 0, st->last_core == 0 ); - +#ifndef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT TNSAnalysis_fx( hTcxCfg, L_frame, L_spec, TCX_20, st->last_core == 0, spectrum, hTcxEnc->tnsData, hTcxEnc->fUseTns, &st->hIGFEnc->tns_predictionGain ); +#else + TNSAnalysis_fx(hTcxCfg, L_frame, L_spec, TCX_20, st->last_core == 0, spectrum, st->hTranDet , -32768 ,hTcxEnc->tnsData, hTcxEnc->fUseTns, &st->hIGFEnc->tns_predictionGain); +#endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT } ELSE { diff --git a/lib_enc/ext_sig_ana_fx.c b/lib_enc/ext_sig_ana_fx.c index 331817147..55a8f0bb8 100644 --- a/lib_enc/ext_sig_ana_fx.c +++ b/lib_enc/ext_sig_ana_fx.c @@ -406,10 +406,19 @@ void core_signal_analysis_high_bitrate_fx( { test(); test(); +#ifndef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT + TNSAnalysis_fx( st->hTcxCfg, L_frameTCX, st->hTcxCfg->tcx_coded_lines, transform_type[frameno], ( frameno == 0 ) && ( st->last_core == ACELP_CORE ), spectrum[frameno], &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL ); +#else + TNSAnalysis_fx(st->hTcxCfg, L_frameTCX, + st->hTcxCfg->tcx_coded_lines, + transform_type[frameno], (frameno == 0) && (st->last_core == ACELP_CORE), + spectrum[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL); +#endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT + { EncodeTnsData_fx( st->hTcxCfg->pCurrentTnsConfig, &hTcxEnc->tnsData[frameno], param_core + frameno * NPRM_DIV + 1 + NOISE_FILL_RANGES + LTPSIZE, pTnsSize + frameno, pTnsBits + frameno ); @@ -1198,11 +1207,19 @@ void core_signal_analysis_high_bitrate_ivas_fx( test(); IF( ( frameno == 0 ) && ( st->last_core == ACELP_CORE ) ) { - TNSAnalysis_ivas_fx( st->hTcxCfg, L_frameTCX, st->hTcxCfg->tcx_coded_lines, transform_type[frameno], 1, hTcxEnc->spectrum_fx[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL ); +#ifndef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT + TNSAnalysis_ivas_fx(st->hTcxCfg, L_frameTCX, st->hTcxCfg->tcx_coded_lines, transform_type[frameno], 1, hTcxEnc->spectrum_fx[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL); +#else + TNSAnalysis_fx(st->hTcxCfg, L_frameTCX, st->hTcxCfg->tcx_coded_lines, transform_type[frameno], 1, hTcxEnc->spectrum_fx[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL); +#endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT } ELSE - { - TNSAnalysis_ivas_fx( st->hTcxCfg, L_frameTCX, st->hTcxCfg->tcx_coded_lines, transform_type[frameno], 0, hTcxEnc->spectrum_fx[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL ); + { +#ifndef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT + TNSAnalysis_ivas_fx(st->hTcxCfg, L_frameTCX, st->hTcxCfg->tcx_coded_lines, transform_type[frameno], 0, hTcxEnc->spectrum_fx[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL); +#else + TNSAnalysis_fx(st->hTcxCfg, L_frameTCX, st->hTcxCfg->tcx_coded_lines, transform_type[frameno], 0, hTcxEnc->spectrum_fx[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL); +#endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT } IF( st->hTcxCfg->fIsTNSAllowed ) diff --git a/lib_enc/prot_fx_enc.h b/lib_enc/prot_fx_enc.h index 4310137b0..dd4ec6822 100644 --- a/lib_enc/prot_fx_enc.h +++ b/lib_enc/prot_fx_enc.h @@ -1541,14 +1541,20 @@ void CalculateTnsFilt_fx( const Word16 pSpectrum_e, STnsData *pTnsData /* o : TNS data struct */ ); +#ifndef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT Word16 DetectTnsFilt_fx( STnsConfig const *pTnsConfig, Word32 const pSpectrum[], STnsData *pTnsData, Word16 *predictionGain ); +#endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT +#ifdef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT +Word16 DetectTnsFilt_fx( +#else Word16 DetectTnsFilt_ivas_fx( +#endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT STnsConfig const *pTnsConfig, /* i : TNS Configuration struct */ Word32 const pSpectrum[], /* i : MDCT spectrum Q=Qx */ STnsData *pTnsData, /* o : TNS data struct */ @@ -1558,6 +1564,7 @@ Word16 DetectTnsFilt_ivas_fx( Word16 *predictionGain /* o : TNS prediction gain Q=7 */ ); + Word16 EncodeTnsData_fx( STnsConfig const *pTnsConfig, STnsData const *pTnsData, @@ -2726,6 +2733,7 @@ void IGFEncResetTCX10BitCounter_fx( const IGF_ENC_INSTANCE_HANDLE hInstance /**< in: | instance handle of IGF Encoder */ ); +#ifndef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT void TNSAnalysis_fx( TCX_CONFIG_HANDLE hTcxCfg, /* i : configuration of TCX */ Word16 L_frame, /* i : frame length */ @@ -2733,11 +2741,17 @@ void TNSAnalysis_fx( Word16 tcxMode, /* i : TCX mode for the frame/subframe - TCX20 | TCX10 | TCX 5 (meaning 2 x TCX 5) */ Word8 isAfterACELP, /* i : Flag indicating if the last frame was ACELP. For the second TCX subframe it should be 0 */ Word32 spectrum[], /* i : MDCT spectrum */ - STnsData *pTnsData, /* o : Tns data */ - Word8 *pfUseTns, /* o : Flag indicating if TNS is used */ - Word16 *predictionGain ); + STnsData* pTnsData, /* o : Tns data */ + Word8* pfUseTns, /* o : Flag indicating if TNS is used */ + Word16* predictionGain); +#endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT + +#ifndef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT void TNSAnalysis_ivas_fx( +#else +void TNSAnalysis_fx( +#endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT TCX_CONFIG_HANDLE hTcxCfg, /* i : configuration of TCX */ Word16 L_frame, /* i : frame length */ Word16 L_spec, /* i : length of the spectrum */ diff --git a/lib_enc/tns_base_enc_fx.c b/lib_enc/tns_base_enc_fx.c index 30def3e2e..405cc94c3 100644 --- a/lib_enc/tns_base_enc_fx.c +++ b/lib_enc/tns_base_enc_fx.c @@ -50,11 +50,12 @@ typedef Word32 ( *TLinearPredictionFilter )( Word16 order, Word16 const parCoeff /********************************/ #define MAX_SUBDIVISIONS 3 +#ifndef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT -Word16 DetectTnsFilt_fx( STnsConfig const *pTnsConfig, - Word32 const pSpectrum[], - STnsData *pTnsData, - Word16 *predictionGain ) +Word16 DetectTnsFilt_fx(STnsConfig const* pTnsConfig, + Word32 const pSpectrum[], + STnsData* pTnsData, + Word16* predictionGain) { Word16 facs[TNS_MAX_NUM_OF_FILTERS][MAX_SUBDIVISIONS]; Word16 facs_e[TNS_MAX_NUM_OF_FILTERS][MAX_SUBDIVISIONS]; /* exponents of facs[][] */ @@ -62,15 +63,15 @@ Word16 DetectTnsFilt_fx( STnsConfig const *pTnsConfig, Word16 iFilter = 0; move16(); - ResetTnsData( pTnsData ); + ResetTnsData(pTnsData); - IF( pTnsConfig->maxOrder <= 0 ) + IF(pTnsConfig->maxOrder <= 0) { return 0; } /* Calculate norms for each spectrum part */ - FOR( iFilter = 0; iFilter < pTnsConfig->nMaxFilters; iFilter++ ) + FOR(iFilter = 0; iFilter < pTnsConfig->nMaxFilters; iFilter++) { Word16 idx0; Word16 idx1; @@ -84,9 +85,9 @@ Word16 DetectTnsFilt_fx( STnsConfig const *pTnsConfig, idx1 = pTnsConfig->iFilterBorders[iFilter]; nSubdivisions = pTnsConfig->pTnsParameters[iFilter].nSubdivisions; - assert( pTnsConfig->pTnsParameters[iFilter].nSubdivisions <= MAX_SUBDIVISIONS ); + assert(pTnsConfig->pTnsParameters[iFilter].nSubdivisions <= MAX_SUBDIVISIONS); - FOR( iSubdivisions = 0; iSubdivisions < nSubdivisions; iSubdivisions++ ) + FOR(iSubdivisions = 0; iSubdivisions < nSubdivisions; iSubdivisions++) { Word16 iStartLine; Word16 iEndLine; @@ -95,39 +96,39 @@ Word16 DetectTnsFilt_fx( STnsConfig const *pTnsConfig, /* iStartLine = idx0 + (idx1-idx0)*iSubdivisions/nSubdivisions; iEndLine = idx0 + (idx1-idx0)*(iSubdivisions+1)/nSubdivisions; */ - assert( ( nSubdivisions == 1 ) || ( nSubdivisions == 3 ) ); + assert((nSubdivisions == 1) || (nSubdivisions == 3)); - tmp = sub( idx1, idx0 ); - iStartLine = imult1616( tmp, iSubdivisions ); - iEndLine = add( iStartLine, tmp ); + tmp = sub(idx1, idx0); + iStartLine = imult1616(tmp, iSubdivisions); + iEndLine = add(iStartLine, tmp); - IF( EQ_16( nSubdivisions, 3 ) ) + IF(EQ_16(nSubdivisions, 3)) { - iStartLine = mult( iStartLine, 0x2AAB ); + iStartLine = mult(iStartLine, 0x2AAB); } - iStartLine = add( iStartLine, idx0 ); + iStartLine = add(iStartLine, idx0); - IF( EQ_16( nSubdivisions, 3 ) ) + IF(EQ_16(nSubdivisions, 3)) { - iEndLine = mult( iEndLine, 0x2AAB ); + iEndLine = mult(iEndLine, 0x2AAB); } - iEndLine = add( iEndLine, idx0 ); + iEndLine = add(iEndLine, idx0); /*norms[iFilter][iSubdivisions] = norm2FLOAT(pSpectrum+iStartLine, iEndLine-iStartLine);*/ - headroom = getScaleFactor32( &pSpectrum[iStartLine], sub( iEndLine, iStartLine ) ); + headroom = getScaleFactor32(&pSpectrum[iStartLine], sub(iEndLine, iStartLine)); /* Calculate norm of spectrum band */ - L_tmp = Norm32Norm( pSpectrum + iStartLine, headroom, sub( iEndLine, iStartLine ), &shift ); + L_tmp = Norm32Norm(pSpectrum + iStartLine, headroom, sub(iEndLine, iStartLine), &shift); /* Check threshold HLM_MIN_NRG */ BASOP_SATURATE_WARNING_OFF_EVS; - tmp32 = L_sub( L_shl_sat( L_tmp, s_min( 31, sub( shift, 24 - 31 * 2 ) ) ), 3277l /*HLM_MIN_NRG Q7*/ ); + tmp32 = L_sub(L_shl_sat(L_tmp, s_min(31, sub(shift, 24 - 31 * 2))), 3277l /*HLM_MIN_NRG Q7*/); BASOP_SATURATE_WARNING_ON_EVS; /* get pre-shift for autocorrelation */ - tmp = sub( shift, norm_l( L_tmp ) ); /* exponent for normalized L_tmp */ - tmp = shr( sub( 1, tmp ), 1 ); /* pre-shift to apply before autocorrelation */ - shifts[iFilter][iSubdivisions] = s_min( tmp, headroom ); + tmp = sub(shift, norm_l(L_tmp)); /* exponent for normalized L_tmp */ + tmp = shr(sub(1, tmp), 1); /* pre-shift to apply before autocorrelation */ + shifts[iFilter][iSubdivisions] = s_min(tmp, headroom); move16(); /* calc normalization factor */ @@ -136,60 +137,60 @@ Word16 DetectTnsFilt_fx( STnsConfig const *pTnsConfig, facs_e[iFilter][iSubdivisions] = 0; move16(); - if ( tmp32 > 0 ) + if (tmp32 > 0) { facs[iFilter][iSubdivisions] = 0x7FFF; move16(); /* normalization not needed for one subdivision */ } test(); - IF( ( tmp32 > 0 ) && ( GT_16( nSubdivisions, 1 ) ) ) + IF((tmp32 > 0) && (GT_16(nSubdivisions, 1))) { move16(); - facs_e[iFilter][iSubdivisions] = shl( sub( tmp, shifts[iFilter][iSubdivisions] ), 1 ); + facs_e[iFilter][iSubdivisions] = shl(sub(tmp, shifts[iFilter][iSubdivisions]), 1); - tmp = sub( 1, shl( tmp, 1 ) ); /* exponent of autocorrelation */ - L_tmp = L_shl_sat( L_tmp, sub( shift, tmp ) ); /* shift L_tmp to that exponent */ + tmp = sub(1, shl(tmp, 1)); /* exponent of autocorrelation */ + L_tmp = L_shl_sat(L_tmp, sub(shift, tmp)); /* shift L_tmp to that exponent */ /* calc factor (with 2 bits headroom for sum of 3 subdivisions) */ move16(); - facs[iFilter][iSubdivisions] = div_s( 0x2000, round_fx_sat( L_tmp ) ); /* L_tmp is >= 0x2000000 */ + facs[iFilter][iSubdivisions] = div_s(0x2000, round_fx_sat(L_tmp)); /* L_tmp is >= 0x2000000 */ } } } /* Calculate normalized autocorrelation for spectrum subdivision and get TNS filter parameters based on it */ - FOR( iFilter = 0; iFilter < pTnsConfig->nMaxFilters; iFilter++ ) + FOR(iFilter = 0; iFilter < pTnsConfig->nMaxFilters; iFilter++) { #define RXX_E ( 3 ) Word32 rxx[TNS_MAX_FILTER_ORDER + 1]; Word16 idx0; Word16 idx1; Word16 spectrumLength; - STnsFilter *pFilter; + STnsFilter* pFilter; Word16 nSubdivisions; Word16 iSubdivisions; Word16 tmpbuf[325]; - set32_fx( rxx, 0, TNS_MAX_FILTER_ORDER + 1 ); + set32_fx(rxx, 0, TNS_MAX_FILTER_ORDER + 1); move16(); move16(); move16(); idx0 = pTnsConfig->iFilterBorders[iFilter + 1]; idx1 = pTnsConfig->iFilterBorders[iFilter]; - spectrumLength = sub( idx1, idx0 ); + spectrumLength = sub(idx1, idx0); pFilter = pTnsData->filter + iFilter; nSubdivisions = pTnsConfig->pTnsParameters[iFilter].nSubdivisions; - FOR( iSubdivisions = 0; iSubdivisions < nSubdivisions; iSubdivisions++ ) + FOR(iSubdivisions = 0; iSubdivisions < nSubdivisions; iSubdivisions++) { Word16 iStartLine, n, i; Word16 iEndLine; - const Word16 *pWindow; + const Word16* pWindow; Word16 lag, shift; Word32 L_tmp; - IF( facs[iFilter][iSubdivisions] == 0 ) + IF(facs[iFilter][iSubdivisions] == 0) { BREAK; } @@ -197,22 +198,22 @@ Word16 DetectTnsFilt_fx( STnsConfig const *pTnsConfig, /* iStartLine = idx0 + (idx1-idx0)*iSubdivisions/nSubdivisions; iEndLine = idx0 + (idx1-idx0)*(iSubdivisions+1)/nSubdivisions; */ - assert( ( nSubdivisions == 1 ) || ( nSubdivisions == 3 ) ); + assert((nSubdivisions == 1) || (nSubdivisions == 3)); - iStartLine = imult1616( spectrumLength, iSubdivisions ); - iEndLine = add( iStartLine, spectrumLength ); + iStartLine = imult1616(spectrumLength, iSubdivisions); + iEndLine = add(iStartLine, spectrumLength); - IF( EQ_16( nSubdivisions, 3 ) ) + IF(EQ_16(nSubdivisions, 3)) { - iStartLine = mult( iStartLine, 0x2AAB ); + iStartLine = mult(iStartLine, 0x2AAB); } - iStartLine = add( iStartLine, idx0 ); + iStartLine = add(iStartLine, idx0); - IF( EQ_16( nSubdivisions, 3 ) ) + IF(EQ_16(nSubdivisions, 3)) { - iEndLine = mult( iEndLine, 0x2AAB ); + iEndLine = mult(iEndLine, 0x2AAB); } - iEndLine = add( iEndLine, idx0 ); + iEndLine = add(iEndLine, idx0); move16(); @@ -221,92 +222,92 @@ Word16 DetectTnsFilt_fx( STnsConfig const *pTnsConfig, move16(); pWindow = tnsAcfWindow_fx; - n = sub( iEndLine, iStartLine ); - assert( n < (Word16) ( sizeof( tmpbuf ) / sizeof( Word16 ) ) ); - FOR( i = 0; i < n; i++ ) + n = sub(iEndLine, iStartLine); + assert(n < (Word16)(sizeof(tmpbuf) / sizeof(Word16))); + FOR(i = 0; i < n; i++) { - tmpbuf[i] = round_fx_sat( L_shl( pSpectrum[iStartLine + i], shift ) ); + tmpbuf[i] = round_fx_sat(L_shl(pSpectrum[iStartLine + i], shift)); move16(); } - FOR( lag = 0; lag <= pTnsConfig->maxOrder; lag++ ) + FOR(lag = 0; lag <= pTnsConfig->maxOrder; lag++) { - n = sub( sub( iEndLine, lag ), iStartLine ); + n = sub(sub(iEndLine, lag), iStartLine); - L_tmp = L_deposit_l( 0 ); - FOR( i = 0; i < n; i++ ) + L_tmp = L_deposit_l(0); + FOR(i = 0; i < n; i++) { - L_tmp = L_mac0_sat( L_tmp, tmpbuf[i], tmpbuf[i + lag] ); + L_tmp = L_mac0_sat(L_tmp, tmpbuf[i], tmpbuf[i + lag]); } - IF( lag != 0 ) - L_tmp = Mpy_32_16_1( L_tmp, *pWindow++ ); + IF(lag != 0) + L_tmp = Mpy_32_16_1(L_tmp, *pWindow++); - L_tmp = Mpy_32_16_1( L_tmp, facs[iFilter][iSubdivisions] ); - L_tmp = L_shl( L_tmp, facs_e[iFilter][iSubdivisions] ); + L_tmp = Mpy_32_16_1(L_tmp, facs[iFilter][iSubdivisions]); + L_tmp = L_shl(L_tmp, facs_e[iFilter][iSubdivisions]); - rxx[lag] = L_add( rxx[lag], L_tmp ); + rxx[lag] = L_add(rxx[lag], L_tmp); move32(); } } - IF( EQ_16( iSubdivisions, nSubdivisions ) ) /* meaning there is no subdivision with low energy */ + IF(EQ_16(iSubdivisions, nSubdivisions)) /* meaning there is no subdivision with low energy */ { pFilter->spectrumLength = spectrumLength; move16(); /* Limit the maximum order to spectrum length/4 */ - GetFilterParameters( rxx, s_min( pTnsConfig->maxOrder, shr( pFilter->spectrumLength, 2 ) ), pFilter ); + GetFilterParameters(rxx, s_min(pTnsConfig->maxOrder, shr(pFilter->spectrumLength, 2)), pFilter); } } - if ( predictionGain ) + if (predictionGain) { - assert( pTnsConfig->nMaxFilters == 1 ); + assert(pTnsConfig->nMaxFilters == 1); move16(); *predictionGain = pTnsData->filter->predictionGain; } /* We check the filter's decisions in the opposite direction */ - FOR( iFilter = sub( pTnsConfig->nMaxFilters, 1 ); iFilter >= 0; iFilter-- ) + FOR(iFilter = sub(pTnsConfig->nMaxFilters, 1); iFilter >= 0; iFilter--) { - STnsFilter *pFilter; - struct TnsParameters const *pTnsParameters; + STnsFilter* pFilter; + struct TnsParameters const* pTnsParameters; move16(); move16(); pFilter = pTnsData->filter + iFilter; pTnsParameters = pTnsConfig->pTnsParameters + iFilter; - IF( s_or( (Word16) GT_16( pFilter->predictionGain, pTnsParameters->minPredictionGain ), - sub( pFilter->avgSqrCoef, pTnsParameters->minAvgSqrCoef ) > 0 ) ) + IF(s_or((Word16)GT_16(pFilter->predictionGain, pTnsParameters->minPredictionGain), + sub(pFilter->avgSqrCoef, pTnsParameters->minAvgSqrCoef) > 0)) { move16(); - pTnsData->nFilters = add( pTnsData->nFilters, 1 ); + pTnsData->nFilters = add(pTnsData->nFilters, 1); } - ELSE IF( pTnsData->nFilters > 0 ) /* If a previous filter is turned on */ + ELSE IF(pTnsData->nFilters > 0) /* If a previous filter is turned on */ { /* Since TNS filter of order 0 is not allowed we haved to signal in the stream filter of order 1 with the 0th coefficient equal to 0 */ - ClearTnsFilterCoefficients( pFilter ); + ClearTnsFilterCoefficients(pFilter); move16(); move16(); pFilter->order = 1; - pTnsData->nFilters = add( pTnsData->nFilters, 1 ); + pTnsData->nFilters = add(pTnsData->nFilters, 1); } ELSE { - ClearTnsFilterCoefficients( pFilter ); + ClearTnsFilterCoefficients(pFilter); } } - return ( pTnsData->nFilters > 0 ); + return (pTnsData->nFilters > 0); } - +#endif // FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT void CalculateTnsFilt_fx( - STnsConfig const *pTnsConfig, /* i : TNS Configuration struct */ + STnsConfig const* pTnsConfig, /* i : TNS Configuration struct */ const Word32 pSpectrum[], /* i : MDCT spectrum */ const Word16 pSpectrum_e, - STnsData *pTnsData /* o : TNS data struct */ + STnsData* pTnsData /* o : TNS data struct */ ) { Word32 norms[TNS_MAX_NUM_OF_FILTERS][MAX_SUBDIVISIONS]; @@ -316,16 +317,16 @@ void CalculateTnsFilt_fx( Word16 fac, fac_e, exp; Word32 rxx[TNS_MAX_FILTER_ORDER + 1]; Word64 W_tmp; - const Word16 *pWindow; - STnsFilter *pFilter; + const Word16* pWindow; + STnsFilter* pFilter; - FOR( i = 0; i < TNS_MAX_NUM_OF_FILTERS; i++ ) + FOR(i = 0; i < TNS_MAX_NUM_OF_FILTERS; i++) { - set32_fx( norms[i], 0, MAX_SUBDIVISIONS ); + set32_fx(norms[i], 0, MAX_SUBDIVISIONS); } /* Calculate norms for each spectrum part */ - FOR( iFilter = 0; iFilter < pTnsConfig->nMaxFilters; iFilter++ ) + FOR(iFilter = 0; iFilter < pTnsConfig->nMaxFilters; iFilter++) { idx0 = pTnsConfig->iFilterBorders[iFilter + 1]; move16(); @@ -335,87 +336,93 @@ void CalculateTnsFilt_fx( move16(); /* Variable initialization */ - assert( pTnsConfig->pTnsParameters[iFilter].nSubdivisions <= MAX_SUBDIVISIONS ); - FOR( iSubdivisions = 0; iSubdivisions < nSubdivisions; iSubdivisions++ ) + assert(pTnsConfig->pTnsParameters[iFilter].nSubdivisions <= MAX_SUBDIVISIONS); + FOR(iSubdivisions = 0; iSubdivisions < nSubdivisions; iSubdivisions++) { - iStartLine = add( idx0, idiv1616U( i_mult( sub( idx1, idx0 ), iSubdivisions ), nSubdivisions ) ); - iEndLine = add( idx0, idiv1616U( i_mult( sub( idx1, idx0 ), add( iSubdivisions, 1 ) ), nSubdivisions ) ); + iStartLine = add(idx0, idiv1616U(i_mult(sub(idx1, idx0), iSubdivisions), nSubdivisions)); + iEndLine = add(idx0, idiv1616U(i_mult(sub(idx1, idx0), add(iSubdivisions, 1)), nSubdivisions)); /* Variable initialization */ norms_exp[iFilter][iSubdivisions] = pSpectrum_e; move16(); - norms[iFilter][iSubdivisions] = sum2_32_exp_fx( pSpectrum + iStartLine, sub( iEndLine, iStartLine ), &norms_exp[iFilter][iSubdivisions], 8 ); // norms_exp[iFilter][iSubdivisions] + norms[iFilter][iSubdivisions] = sum2_32_exp_fx(pSpectrum + iStartLine, sub(iEndLine, iStartLine), &norms_exp[iFilter][iSubdivisions], 8); // norms_exp[iFilter][iSubdivisions] move32(); } } /* Calculate normalized autocorrelation for spectrum subdivision and get TNS filter parameters based on it */ - FOR( iFilter = 0; iFilter < pTnsConfig->nMaxFilters; iFilter++ ) + FOR(iFilter = 0; iFilter < pTnsConfig->nMaxFilters; iFilter++) { idx0 = pTnsConfig->iFilterBorders[iFilter + 1]; move16(); idx1 = pTnsConfig->iFilterBorders[iFilter]; move16(); - spectrumLength = sub( idx1, idx0 ); + spectrumLength = sub(idx1, idx0); pFilter = pTnsData->filter + iFilter; nSubdivisions = pTnsConfig->pTnsParameters[iFilter].nSubdivisions; move16(); - set32_fx( rxx, 0, TNS_MAX_FILTER_ORDER + 1 ); /* WMOPS: This initialization is required */ + set32_fx(rxx, 0, TNS_MAX_FILTER_ORDER + 1); /* WMOPS: This initialization is required */ /* Variable initialization */ test(); - FOR( iSubdivisions = 0; ( iSubdivisions < nSubdivisions ) && ( L_shr_sat( norms[iFilter][iSubdivisions], sub( 6, norms_exp[iFilter][iSubdivisions] ) ) > HLM_MIN_NRG_FX ); iSubdivisions++ ) + FOR(iSubdivisions = 0; (iSubdivisions < nSubdivisions) && (L_shr_sat(norms[iFilter][iSubdivisions], sub(6, norms_exp[iFilter][iSubdivisions])) > HLM_MIN_NRG_FX); iSubdivisions++) { test(); - fac = BASOP_Util_Divide3232_Scale( 1, norms[iFilter][iSubdivisions], &fac_e ); - fac_e = add( sub( Q31, norms_exp[iFilter][iSubdivisions] ), fac_e ); - iStartLine = add( idx0, idiv1616U( i_mult( spectrumLength, iSubdivisions ), nSubdivisions ) ); - iEndLine = add( idx0, idiv1616U( i_mult( spectrumLength, add( iSubdivisions, 1 ) ), nSubdivisions ) ); + fac = BASOP_Util_Divide3232_Scale(1, norms[iFilter][iSubdivisions], &fac_e); + fac_e = add(sub(Q31, norms_exp[iFilter][iSubdivisions]), fac_e); + iStartLine = add(idx0, idiv1616U(i_mult(spectrumLength, iSubdivisions), nSubdivisions)); + iEndLine = add(idx0, idiv1616U(i_mult(spectrumLength, add(iSubdivisions, 1)), nSubdivisions)); pWindow = tnsAcfWindow_fx; // Q15 /* For additional loop condition */ /* Variable initialization */ - FOR( lag = 1; lag <= pTnsConfig->maxOrder; lag++ ) + FOR(lag = 1; lag <= pTnsConfig->maxOrder; lag++) { W_tmp = 0; move64(); - FOR( i = 0; i < iEndLine - iStartLine - lag; i++ ) + FOR(i = 0; i < iEndLine - iStartLine - lag; i++) { - W_tmp = W_mac_32_32( W_tmp, pSpectrum[iStartLine + i], pSpectrum[iStartLine + lag + i] ); + W_tmp = W_mac_32_32(W_tmp, pSpectrum[iStartLine + i], pSpectrum[iStartLine + lag + i]); } - exp = W_norm( W_tmp ); - W_tmp = W_shl( W_tmp, exp ); - exp = sub( shl( pSpectrum_e, 1 ), exp ); - W_tmp = W_mult_32_32( L_mult( fac, ( *pWindow ) ), W_extract_h( W_tmp ) ); // exp + fac_e - rxx[lag] = L_add( rxx[lag], W_extract_h( W_shl( W_tmp, sub( add( fac_e, exp ), 2 ) ) ) ); // Q29 + exp = W_norm(W_tmp); + W_tmp = W_shl(W_tmp, exp); + exp = sub(shl(pSpectrum_e, 1), exp); + W_tmp = W_mult_32_32(L_mult(fac, (*pWindow)), W_extract_h(W_tmp)); // exp + fac_e + rxx[lag] = L_add(rxx[lag], W_extract_h(W_shl(W_tmp, sub(add(fac_e, exp), 2)))); // Q29 move32(); pWindow++; } } - IF( EQ_16( iSubdivisions, nSubdivisions ) ) /* meaning there is no subdivision with low energy */ + IF(EQ_16(iSubdivisions, nSubdivisions)) /* meaning there is no subdivision with low energy */ { // To be checked - rxx[0] = L_shl( pTnsConfig->pTnsParameters[iFilter].nSubdivisions, Q29 ); // Q29 + rxx[0] = L_shl(pTnsConfig->pTnsParameters[iFilter].nSubdivisions, Q29); // Q29 move32(); pFilter->spectrumLength = spectrumLength; move16(); /* Limit the maximum order to spectrum length/4 */ - GetFilterParameters_ivas( rxx, s_min( pTnsConfig->maxOrder, shr( pFilter->spectrumLength, 2 ) ), pFilter ); + GetFilterParameters_ivas(rxx, s_min(pTnsConfig->maxOrder, shr(pFilter->spectrumLength, 2)), pFilter); } } return; } -Word16 DetectTnsFilt_ivas_fx( STnsConfig const *pTnsConfig, /* i : TNS Configuration struct */ - Word32 const pSpectrum[], /* i : MDCT spectrum Q=Qx */ - STnsData *pTnsData, /* o : TNS data struct */ - TRAN_DET_HANDLE hTranDet, /* i : transient detection handle */ - Word8 isTCX10, /* i : TCX10 or TCX20? */ - Word16 ltp_gain, /* i : LTP gain Q=15 */ - Word16 *predictionGain /* o : TNS prediction gain Q=7 */ +#ifdef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT +Word16 DetectTnsFilt_fx( +#else +Word16 DetectTnsFilt_ivas_fx( +#endif // FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT + + STnsConfig const* pTnsConfig, /* i : TNS Configuration struct */ + Word32 const pSpectrum[], /* i : MDCT spectrum Q=Qx */ + STnsData* pTnsData, /* o : TNS data struct */ + TRAN_DET_HANDLE hTranDet, /* i : transient detection handle */ + Word8 isTCX10, /* i : TCX10 or TCX20? */ + Word16 ltp_gain, /* i : LTP gain Q=15 */ + Word16* predictionGain /* o : TNS prediction gain Q=7 */ ) { Word16 facs[TNS_MAX_NUM_OF_FILTERS][MAX_SUBDIVISIONS]; @@ -630,7 +637,11 @@ Word16 DetectTnsFilt_ivas_fx( STnsConfig const *pTnsConfig, /* i : TNS Configur } /* We check the filter's decisions in the opposite direction */ - FOR( iFilter = ( pTnsConfig->nMaxFilters - 1 ); iFilter >= 0; iFilter-- ) +#ifndef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT + FOR(iFilter = (pTnsConfig->nMaxFilters - 1); iFilter >= 0; iFilter--) +#else + FOR(iFilter = sub(pTnsConfig->nMaxFilters, 1); iFilter >= 0; iFilter--) +#endif // FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT { STnsFilter *pFilter; struct TnsParameters const *pTnsParameters; -- GitLab From a297d76e69a0627d694532aa1af69a7cc1637a22 Mon Sep 17 00:00:00 2001 From: "Azizi, Arash" Date: Mon, 9 Feb 2026 11:16:12 +0100 Subject: [PATCH 2/2] issue: 2411 clang formatting artifact applied --- lib_enc/cod_tcx_fx.c | 10 +- lib_enc/ext_sig_ana_fx.c | 20 ++-- lib_enc/prot_fx_enc.h | 10 +- lib_enc/tns_base_enc_fx.c | 230 +++++++++++++++++++------------------- 4 files changed, 135 insertions(+), 135 deletions(-) diff --git a/lib_enc/cod_tcx_fx.c b/lib_enc/cod_tcx_fx.c index 160a99b05..ec0a7372d 100644 --- a/lib_enc/cod_tcx_fx.c +++ b/lib_enc/cod_tcx_fx.c @@ -191,7 +191,7 @@ void TNSAnalysis_fx( } move16(); - *pfUseTns = (Word8)DetectTnsFilt_fx(hTcxCfg->pCurrentTnsConfig, spectrum, pTnsData, predictionGain); + *pfUseTns = (Word8) DetectTnsFilt_fx( hTcxCfg->pCurrentTnsConfig, spectrum, pTnsData, predictionGain ); /* If TNS should be used then get the residual after applying it inplace in spectrum */ IF( *pfUseTns != 0 ) @@ -224,7 +224,7 @@ void TNSAnalysis_fx( void TNSAnalysis_ivas_fx( #else void TNSAnalysis_fx( -#endif // FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT +#endif // FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT TCX_CONFIG_HANDLE hTcxCfg, /* i : configuration of TCX */ Word16 L_frame, /* i : frame length */ Word16 L_spec, /* i : length of the spectrum */ @@ -281,10 +281,10 @@ void TNSAnalysis_fx( move16(); #ifdef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT - * pfUseTns = (Word8)DetectTnsFilt_fx(hTcxCfg->pCurrentTnsConfig, spectrum, pTnsData, hTranDet, (Word8)NE_16(transform_type, TCX_20), ltp_gain, predictionGain); + *pfUseTns = (Word8) DetectTnsFilt_fx( hTcxCfg->pCurrentTnsConfig, spectrum, pTnsData, hTranDet, (Word8) NE_16( transform_type, TCX_20 ), ltp_gain, predictionGain ); #else - * pfUseTns = (Word8)DetectTnsFilt_ivas_fx(hTcxCfg->pCurrentTnsConfig, spectrum, pTnsData, hTranDet, (Word8)NE_16(transform_type, TCX_20), ltp_gain, predictionGain); + *pfUseTns = (Word8) DetectTnsFilt_ivas_fx( hTcxCfg->pCurrentTnsConfig, spectrum, pTnsData, hTranDet, (Word8) NE_16( transform_type, TCX_20 ), ltp_gain, predictionGain ); #endif // FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT @@ -3862,7 +3862,7 @@ void coder_tcx_fx( #ifndef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT TNSAnalysis_fx( hTcxCfg, L_frame, L_spec, TCX_20, st->last_core == 0, spectrum, hTcxEnc->tnsData, hTcxEnc->fUseTns, &st->hIGFEnc->tns_predictionGain ); #else - TNSAnalysis_fx(hTcxCfg, L_frame, L_spec, TCX_20, st->last_core == 0, spectrum, st->hTranDet , -32768 ,hTcxEnc->tnsData, hTcxEnc->fUseTns, &st->hIGFEnc->tns_predictionGain); + TNSAnalysis_fx( hTcxCfg, L_frame, L_spec, TCX_20, st->last_core == 0, spectrum, st->hTranDet, -32768, hTcxEnc->tnsData, hTcxEnc->fUseTns, &st->hIGFEnc->tns_predictionGain ); #endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT } ELSE diff --git a/lib_enc/ext_sig_ana_fx.c b/lib_enc/ext_sig_ana_fx.c index 55a8f0bb8..a368fcd4f 100644 --- a/lib_enc/ext_sig_ana_fx.c +++ b/lib_enc/ext_sig_ana_fx.c @@ -412,11 +412,11 @@ void core_signal_analysis_high_bitrate_fx( st->hTcxCfg->tcx_coded_lines, transform_type[frameno], ( frameno == 0 ) && ( st->last_core == ACELP_CORE ), spectrum[frameno], &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL ); -#else - TNSAnalysis_fx(st->hTcxCfg, L_frameTCX, - st->hTcxCfg->tcx_coded_lines, - transform_type[frameno], (frameno == 0) && (st->last_core == ACELP_CORE), - spectrum[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL); +#else + TNSAnalysis_fx( st->hTcxCfg, L_frameTCX, + st->hTcxCfg->tcx_coded_lines, + transform_type[frameno], ( frameno == 0 ) && ( st->last_core == ACELP_CORE ), + spectrum[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL ); #endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT { @@ -1208,17 +1208,17 @@ void core_signal_analysis_high_bitrate_ivas_fx( IF( ( frameno == 0 ) && ( st->last_core == ACELP_CORE ) ) { #ifndef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT - TNSAnalysis_ivas_fx(st->hTcxCfg, L_frameTCX, st->hTcxCfg->tcx_coded_lines, transform_type[frameno], 1, hTcxEnc->spectrum_fx[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL); + TNSAnalysis_ivas_fx( st->hTcxCfg, L_frameTCX, st->hTcxCfg->tcx_coded_lines, transform_type[frameno], 1, hTcxEnc->spectrum_fx[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL ); #else - TNSAnalysis_fx(st->hTcxCfg, L_frameTCX, st->hTcxCfg->tcx_coded_lines, transform_type[frameno], 1, hTcxEnc->spectrum_fx[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL); + TNSAnalysis_fx( st->hTcxCfg, L_frameTCX, st->hTcxCfg->tcx_coded_lines, transform_type[frameno], 1, hTcxEnc->spectrum_fx[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL ); #endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT } ELSE - { + { #ifndef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT - TNSAnalysis_ivas_fx(st->hTcxCfg, L_frameTCX, st->hTcxCfg->tcx_coded_lines, transform_type[frameno], 0, hTcxEnc->spectrum_fx[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL); + TNSAnalysis_ivas_fx( st->hTcxCfg, L_frameTCX, st->hTcxCfg->tcx_coded_lines, transform_type[frameno], 0, hTcxEnc->spectrum_fx[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL ); #else - TNSAnalysis_fx(st->hTcxCfg, L_frameTCX, st->hTcxCfg->tcx_coded_lines, transform_type[frameno], 0, hTcxEnc->spectrum_fx[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL); + TNSAnalysis_fx( st->hTcxCfg, L_frameTCX, st->hTcxCfg->tcx_coded_lines, transform_type[frameno], 0, hTcxEnc->spectrum_fx[frameno], st->hTranDet, -32768, &hTcxEnc->tnsData[frameno], &hTcxEnc->fUseTns[frameno], NULL ); #endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT } diff --git a/lib_enc/prot_fx_enc.h b/lib_enc/prot_fx_enc.h index dd4ec6822..e2e2c1a5a 100644 --- a/lib_enc/prot_fx_enc.h +++ b/lib_enc/prot_fx_enc.h @@ -1554,7 +1554,7 @@ Word16 DetectTnsFilt_fx( Word16 DetectTnsFilt_fx( #else Word16 DetectTnsFilt_ivas_fx( -#endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT +#endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT STnsConfig const *pTnsConfig, /* i : TNS Configuration struct */ Word32 const pSpectrum[], /* i : MDCT spectrum Q=Qx */ STnsData *pTnsData, /* o : TNS data struct */ @@ -2741,9 +2741,9 @@ void TNSAnalysis_fx( Word16 tcxMode, /* i : TCX mode for the frame/subframe - TCX20 | TCX10 | TCX 5 (meaning 2 x TCX 5) */ Word8 isAfterACELP, /* i : Flag indicating if the last frame was ACELP. For the second TCX subframe it should be 0 */ Word32 spectrum[], /* i : MDCT spectrum */ - STnsData* pTnsData, /* o : Tns data */ - Word8* pfUseTns, /* o : Flag indicating if TNS is used */ - Word16* predictionGain); + STnsData *pTnsData, /* o : Tns data */ + Word8 *pfUseTns, /* o : Flag indicating if TNS is used */ + Word16 *predictionGain ); #endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT @@ -2751,7 +2751,7 @@ void TNSAnalysis_fx( void TNSAnalysis_ivas_fx( #else void TNSAnalysis_fx( -#endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT +#endif // !FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT TCX_CONFIG_HANDLE hTcxCfg, /* i : configuration of TCX */ Word16 L_frame, /* i : frame length */ Word16 L_spec, /* i : length of the spectrum */ diff --git a/lib_enc/tns_base_enc_fx.c b/lib_enc/tns_base_enc_fx.c index 405cc94c3..be7c06760 100644 --- a/lib_enc/tns_base_enc_fx.c +++ b/lib_enc/tns_base_enc_fx.c @@ -52,10 +52,10 @@ typedef Word32 ( *TLinearPredictionFilter )( Word16 order, Word16 const parCoeff #define MAX_SUBDIVISIONS 3 #ifndef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT -Word16 DetectTnsFilt_fx(STnsConfig const* pTnsConfig, - Word32 const pSpectrum[], - STnsData* pTnsData, - Word16* predictionGain) +Word16 DetectTnsFilt_fx( STnsConfig const *pTnsConfig, + Word32 const pSpectrum[], + STnsData *pTnsData, + Word16 *predictionGain ) { Word16 facs[TNS_MAX_NUM_OF_FILTERS][MAX_SUBDIVISIONS]; Word16 facs_e[TNS_MAX_NUM_OF_FILTERS][MAX_SUBDIVISIONS]; /* exponents of facs[][] */ @@ -63,15 +63,15 @@ Word16 DetectTnsFilt_fx(STnsConfig const* pTnsConfig, Word16 iFilter = 0; move16(); - ResetTnsData(pTnsData); + ResetTnsData( pTnsData ); - IF(pTnsConfig->maxOrder <= 0) + IF( pTnsConfig->maxOrder <= 0 ) { return 0; } /* Calculate norms for each spectrum part */ - FOR(iFilter = 0; iFilter < pTnsConfig->nMaxFilters; iFilter++) + FOR( iFilter = 0; iFilter < pTnsConfig->nMaxFilters; iFilter++ ) { Word16 idx0; Word16 idx1; @@ -85,9 +85,9 @@ Word16 DetectTnsFilt_fx(STnsConfig const* pTnsConfig, idx1 = pTnsConfig->iFilterBorders[iFilter]; nSubdivisions = pTnsConfig->pTnsParameters[iFilter].nSubdivisions; - assert(pTnsConfig->pTnsParameters[iFilter].nSubdivisions <= MAX_SUBDIVISIONS); + assert( pTnsConfig->pTnsParameters[iFilter].nSubdivisions <= MAX_SUBDIVISIONS ); - FOR(iSubdivisions = 0; iSubdivisions < nSubdivisions; iSubdivisions++) + FOR( iSubdivisions = 0; iSubdivisions < nSubdivisions; iSubdivisions++ ) { Word16 iStartLine; Word16 iEndLine; @@ -96,39 +96,39 @@ Word16 DetectTnsFilt_fx(STnsConfig const* pTnsConfig, /* iStartLine = idx0 + (idx1-idx0)*iSubdivisions/nSubdivisions; iEndLine = idx0 + (idx1-idx0)*(iSubdivisions+1)/nSubdivisions; */ - assert((nSubdivisions == 1) || (nSubdivisions == 3)); + assert( ( nSubdivisions == 1 ) || ( nSubdivisions == 3 ) ); - tmp = sub(idx1, idx0); - iStartLine = imult1616(tmp, iSubdivisions); - iEndLine = add(iStartLine, tmp); + tmp = sub( idx1, idx0 ); + iStartLine = imult1616( tmp, iSubdivisions ); + iEndLine = add( iStartLine, tmp ); - IF(EQ_16(nSubdivisions, 3)) + IF( EQ_16( nSubdivisions, 3 ) ) { - iStartLine = mult(iStartLine, 0x2AAB); + iStartLine = mult( iStartLine, 0x2AAB ); } - iStartLine = add(iStartLine, idx0); + iStartLine = add( iStartLine, idx0 ); - IF(EQ_16(nSubdivisions, 3)) + IF( EQ_16( nSubdivisions, 3 ) ) { - iEndLine = mult(iEndLine, 0x2AAB); + iEndLine = mult( iEndLine, 0x2AAB ); } - iEndLine = add(iEndLine, idx0); + iEndLine = add( iEndLine, idx0 ); /*norms[iFilter][iSubdivisions] = norm2FLOAT(pSpectrum+iStartLine, iEndLine-iStartLine);*/ - headroom = getScaleFactor32(&pSpectrum[iStartLine], sub(iEndLine, iStartLine)); + headroom = getScaleFactor32( &pSpectrum[iStartLine], sub( iEndLine, iStartLine ) ); /* Calculate norm of spectrum band */ - L_tmp = Norm32Norm(pSpectrum + iStartLine, headroom, sub(iEndLine, iStartLine), &shift); + L_tmp = Norm32Norm( pSpectrum + iStartLine, headroom, sub( iEndLine, iStartLine ), &shift ); /* Check threshold HLM_MIN_NRG */ BASOP_SATURATE_WARNING_OFF_EVS; - tmp32 = L_sub(L_shl_sat(L_tmp, s_min(31, sub(shift, 24 - 31 * 2))), 3277l /*HLM_MIN_NRG Q7*/); + tmp32 = L_sub( L_shl_sat( L_tmp, s_min( 31, sub( shift, 24 - 31 * 2 ) ) ), 3277l /*HLM_MIN_NRG Q7*/ ); BASOP_SATURATE_WARNING_ON_EVS; /* get pre-shift for autocorrelation */ - tmp = sub(shift, norm_l(L_tmp)); /* exponent for normalized L_tmp */ - tmp = shr(sub(1, tmp), 1); /* pre-shift to apply before autocorrelation */ - shifts[iFilter][iSubdivisions] = s_min(tmp, headroom); + tmp = sub( shift, norm_l( L_tmp ) ); /* exponent for normalized L_tmp */ + tmp = shr( sub( 1, tmp ), 1 ); /* pre-shift to apply before autocorrelation */ + shifts[iFilter][iSubdivisions] = s_min( tmp, headroom ); move16(); /* calc normalization factor */ @@ -137,60 +137,60 @@ Word16 DetectTnsFilt_fx(STnsConfig const* pTnsConfig, facs_e[iFilter][iSubdivisions] = 0; move16(); - if (tmp32 > 0) + if ( tmp32 > 0 ) { facs[iFilter][iSubdivisions] = 0x7FFF; move16(); /* normalization not needed for one subdivision */ } test(); - IF((tmp32 > 0) && (GT_16(nSubdivisions, 1))) + IF( ( tmp32 > 0 ) && ( GT_16( nSubdivisions, 1 ) ) ) { move16(); - facs_e[iFilter][iSubdivisions] = shl(sub(tmp, shifts[iFilter][iSubdivisions]), 1); + facs_e[iFilter][iSubdivisions] = shl( sub( tmp, shifts[iFilter][iSubdivisions] ), 1 ); - tmp = sub(1, shl(tmp, 1)); /* exponent of autocorrelation */ - L_tmp = L_shl_sat(L_tmp, sub(shift, tmp)); /* shift L_tmp to that exponent */ + tmp = sub( 1, shl( tmp, 1 ) ); /* exponent of autocorrelation */ + L_tmp = L_shl_sat( L_tmp, sub( shift, tmp ) ); /* shift L_tmp to that exponent */ /* calc factor (with 2 bits headroom for sum of 3 subdivisions) */ move16(); - facs[iFilter][iSubdivisions] = div_s(0x2000, round_fx_sat(L_tmp)); /* L_tmp is >= 0x2000000 */ + facs[iFilter][iSubdivisions] = div_s( 0x2000, round_fx_sat( L_tmp ) ); /* L_tmp is >= 0x2000000 */ } } } /* Calculate normalized autocorrelation for spectrum subdivision and get TNS filter parameters based on it */ - FOR(iFilter = 0; iFilter < pTnsConfig->nMaxFilters; iFilter++) + FOR( iFilter = 0; iFilter < pTnsConfig->nMaxFilters; iFilter++ ) { #define RXX_E ( 3 ) Word32 rxx[TNS_MAX_FILTER_ORDER + 1]; Word16 idx0; Word16 idx1; Word16 spectrumLength; - STnsFilter* pFilter; + STnsFilter *pFilter; Word16 nSubdivisions; Word16 iSubdivisions; Word16 tmpbuf[325]; - set32_fx(rxx, 0, TNS_MAX_FILTER_ORDER + 1); + set32_fx( rxx, 0, TNS_MAX_FILTER_ORDER + 1 ); move16(); move16(); move16(); idx0 = pTnsConfig->iFilterBorders[iFilter + 1]; idx1 = pTnsConfig->iFilterBorders[iFilter]; - spectrumLength = sub(idx1, idx0); + spectrumLength = sub( idx1, idx0 ); pFilter = pTnsData->filter + iFilter; nSubdivisions = pTnsConfig->pTnsParameters[iFilter].nSubdivisions; - FOR(iSubdivisions = 0; iSubdivisions < nSubdivisions; iSubdivisions++) + FOR( iSubdivisions = 0; iSubdivisions < nSubdivisions; iSubdivisions++ ) { Word16 iStartLine, n, i; Word16 iEndLine; - const Word16* pWindow; + const Word16 *pWindow; Word16 lag, shift; Word32 L_tmp; - IF(facs[iFilter][iSubdivisions] == 0) + IF( facs[iFilter][iSubdivisions] == 0 ) { BREAK; } @@ -198,22 +198,22 @@ Word16 DetectTnsFilt_fx(STnsConfig const* pTnsConfig, /* iStartLine = idx0 + (idx1-idx0)*iSubdivisions/nSubdivisions; iEndLine = idx0 + (idx1-idx0)*(iSubdivisions+1)/nSubdivisions; */ - assert((nSubdivisions == 1) || (nSubdivisions == 3)); + assert( ( nSubdivisions == 1 ) || ( nSubdivisions == 3 ) ); - iStartLine = imult1616(spectrumLength, iSubdivisions); - iEndLine = add(iStartLine, spectrumLength); + iStartLine = imult1616( spectrumLength, iSubdivisions ); + iEndLine = add( iStartLine, spectrumLength ); - IF(EQ_16(nSubdivisions, 3)) + IF( EQ_16( nSubdivisions, 3 ) ) { - iStartLine = mult(iStartLine, 0x2AAB); + iStartLine = mult( iStartLine, 0x2AAB ); } - iStartLine = add(iStartLine, idx0); + iStartLine = add( iStartLine, idx0 ); - IF(EQ_16(nSubdivisions, 3)) + IF( EQ_16( nSubdivisions, 3 ) ) { - iEndLine = mult(iEndLine, 0x2AAB); + iEndLine = mult( iEndLine, 0x2AAB ); } - iEndLine = add(iEndLine, idx0); + iEndLine = add( iEndLine, idx0 ); move16(); @@ -222,92 +222,92 @@ Word16 DetectTnsFilt_fx(STnsConfig const* pTnsConfig, move16(); pWindow = tnsAcfWindow_fx; - n = sub(iEndLine, iStartLine); - assert(n < (Word16)(sizeof(tmpbuf) / sizeof(Word16))); - FOR(i = 0; i < n; i++) + n = sub( iEndLine, iStartLine ); + assert( n < (Word16) ( sizeof( tmpbuf ) / sizeof( Word16 ) ) ); + FOR( i = 0; i < n; i++ ) { - tmpbuf[i] = round_fx_sat(L_shl(pSpectrum[iStartLine + i], shift)); + tmpbuf[i] = round_fx_sat( L_shl( pSpectrum[iStartLine + i], shift ) ); move16(); } - FOR(lag = 0; lag <= pTnsConfig->maxOrder; lag++) + FOR( lag = 0; lag <= pTnsConfig->maxOrder; lag++ ) { - n = sub(sub(iEndLine, lag), iStartLine); + n = sub( sub( iEndLine, lag ), iStartLine ); - L_tmp = L_deposit_l(0); - FOR(i = 0; i < n; i++) + L_tmp = L_deposit_l( 0 ); + FOR( i = 0; i < n; i++ ) { - L_tmp = L_mac0_sat(L_tmp, tmpbuf[i], tmpbuf[i + lag]); + L_tmp = L_mac0_sat( L_tmp, tmpbuf[i], tmpbuf[i + lag] ); } - IF(lag != 0) - L_tmp = Mpy_32_16_1(L_tmp, *pWindow++); + IF( lag != 0 ) + L_tmp = Mpy_32_16_1( L_tmp, *pWindow++ ); - L_tmp = Mpy_32_16_1(L_tmp, facs[iFilter][iSubdivisions]); - L_tmp = L_shl(L_tmp, facs_e[iFilter][iSubdivisions]); + L_tmp = Mpy_32_16_1( L_tmp, facs[iFilter][iSubdivisions] ); + L_tmp = L_shl( L_tmp, facs_e[iFilter][iSubdivisions] ); - rxx[lag] = L_add(rxx[lag], L_tmp); + rxx[lag] = L_add( rxx[lag], L_tmp ); move32(); } } - IF(EQ_16(iSubdivisions, nSubdivisions)) /* meaning there is no subdivision with low energy */ + IF( EQ_16( iSubdivisions, nSubdivisions ) ) /* meaning there is no subdivision with low energy */ { pFilter->spectrumLength = spectrumLength; move16(); /* Limit the maximum order to spectrum length/4 */ - GetFilterParameters(rxx, s_min(pTnsConfig->maxOrder, shr(pFilter->spectrumLength, 2)), pFilter); + GetFilterParameters( rxx, s_min( pTnsConfig->maxOrder, shr( pFilter->spectrumLength, 2 ) ), pFilter ); } } - if (predictionGain) + if ( predictionGain ) { - assert(pTnsConfig->nMaxFilters == 1); + assert( pTnsConfig->nMaxFilters == 1 ); move16(); *predictionGain = pTnsData->filter->predictionGain; } /* We check the filter's decisions in the opposite direction */ - FOR(iFilter = sub(pTnsConfig->nMaxFilters, 1); iFilter >= 0; iFilter--) + FOR( iFilter = sub( pTnsConfig->nMaxFilters, 1 ); iFilter >= 0; iFilter-- ) { - STnsFilter* pFilter; - struct TnsParameters const* pTnsParameters; + STnsFilter *pFilter; + struct TnsParameters const *pTnsParameters; move16(); move16(); pFilter = pTnsData->filter + iFilter; pTnsParameters = pTnsConfig->pTnsParameters + iFilter; - IF(s_or((Word16)GT_16(pFilter->predictionGain, pTnsParameters->minPredictionGain), - sub(pFilter->avgSqrCoef, pTnsParameters->minAvgSqrCoef) > 0)) + IF( s_or( (Word16) GT_16( pFilter->predictionGain, pTnsParameters->minPredictionGain ), + sub( pFilter->avgSqrCoef, pTnsParameters->minAvgSqrCoef ) > 0 ) ) { move16(); - pTnsData->nFilters = add(pTnsData->nFilters, 1); + pTnsData->nFilters = add( pTnsData->nFilters, 1 ); } - ELSE IF(pTnsData->nFilters > 0) /* If a previous filter is turned on */ + ELSE IF( pTnsData->nFilters > 0 ) /* If a previous filter is turned on */ { /* Since TNS filter of order 0 is not allowed we haved to signal in the stream filter of order 1 with the 0th coefficient equal to 0 */ - ClearTnsFilterCoefficients(pFilter); + ClearTnsFilterCoefficients( pFilter ); move16(); move16(); pFilter->order = 1; - pTnsData->nFilters = add(pTnsData->nFilters, 1); + pTnsData->nFilters = add( pTnsData->nFilters, 1 ); } ELSE { - ClearTnsFilterCoefficients(pFilter); + ClearTnsFilterCoefficients( pFilter ); } } - return (pTnsData->nFilters > 0); + return ( pTnsData->nFilters > 0 ); } #endif // FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT void CalculateTnsFilt_fx( - STnsConfig const* pTnsConfig, /* i : TNS Configuration struct */ + STnsConfig const *pTnsConfig, /* i : TNS Configuration struct */ const Word32 pSpectrum[], /* i : MDCT spectrum */ const Word16 pSpectrum_e, - STnsData* pTnsData /* o : TNS data struct */ + STnsData *pTnsData /* o : TNS data struct */ ) { Word32 norms[TNS_MAX_NUM_OF_FILTERS][MAX_SUBDIVISIONS]; @@ -317,16 +317,16 @@ void CalculateTnsFilt_fx( Word16 fac, fac_e, exp; Word32 rxx[TNS_MAX_FILTER_ORDER + 1]; Word64 W_tmp; - const Word16* pWindow; - STnsFilter* pFilter; + const Word16 *pWindow; + STnsFilter *pFilter; - FOR(i = 0; i < TNS_MAX_NUM_OF_FILTERS; i++) + FOR( i = 0; i < TNS_MAX_NUM_OF_FILTERS; i++ ) { - set32_fx(norms[i], 0, MAX_SUBDIVISIONS); + set32_fx( norms[i], 0, MAX_SUBDIVISIONS ); } /* Calculate norms for each spectrum part */ - FOR(iFilter = 0; iFilter < pTnsConfig->nMaxFilters; iFilter++) + FOR( iFilter = 0; iFilter < pTnsConfig->nMaxFilters; iFilter++ ) { idx0 = pTnsConfig->iFilterBorders[iFilter + 1]; move16(); @@ -336,74 +336,74 @@ void CalculateTnsFilt_fx( move16(); /* Variable initialization */ - assert(pTnsConfig->pTnsParameters[iFilter].nSubdivisions <= MAX_SUBDIVISIONS); - FOR(iSubdivisions = 0; iSubdivisions < nSubdivisions; iSubdivisions++) + assert( pTnsConfig->pTnsParameters[iFilter].nSubdivisions <= MAX_SUBDIVISIONS ); + FOR( iSubdivisions = 0; iSubdivisions < nSubdivisions; iSubdivisions++ ) { - iStartLine = add(idx0, idiv1616U(i_mult(sub(idx1, idx0), iSubdivisions), nSubdivisions)); - iEndLine = add(idx0, idiv1616U(i_mult(sub(idx1, idx0), add(iSubdivisions, 1)), nSubdivisions)); + iStartLine = add( idx0, idiv1616U( i_mult( sub( idx1, idx0 ), iSubdivisions ), nSubdivisions ) ); + iEndLine = add( idx0, idiv1616U( i_mult( sub( idx1, idx0 ), add( iSubdivisions, 1 ) ), nSubdivisions ) ); /* Variable initialization */ norms_exp[iFilter][iSubdivisions] = pSpectrum_e; move16(); - norms[iFilter][iSubdivisions] = sum2_32_exp_fx(pSpectrum + iStartLine, sub(iEndLine, iStartLine), &norms_exp[iFilter][iSubdivisions], 8); // norms_exp[iFilter][iSubdivisions] + norms[iFilter][iSubdivisions] = sum2_32_exp_fx( pSpectrum + iStartLine, sub( iEndLine, iStartLine ), &norms_exp[iFilter][iSubdivisions], 8 ); // norms_exp[iFilter][iSubdivisions] move32(); } } /* Calculate normalized autocorrelation for spectrum subdivision and get TNS filter parameters based on it */ - FOR(iFilter = 0; iFilter < pTnsConfig->nMaxFilters; iFilter++) + FOR( iFilter = 0; iFilter < pTnsConfig->nMaxFilters; iFilter++ ) { idx0 = pTnsConfig->iFilterBorders[iFilter + 1]; move16(); idx1 = pTnsConfig->iFilterBorders[iFilter]; move16(); - spectrumLength = sub(idx1, idx0); + spectrumLength = sub( idx1, idx0 ); pFilter = pTnsData->filter + iFilter; nSubdivisions = pTnsConfig->pTnsParameters[iFilter].nSubdivisions; move16(); - set32_fx(rxx, 0, TNS_MAX_FILTER_ORDER + 1); /* WMOPS: This initialization is required */ + set32_fx( rxx, 0, TNS_MAX_FILTER_ORDER + 1 ); /* WMOPS: This initialization is required */ /* Variable initialization */ test(); - FOR(iSubdivisions = 0; (iSubdivisions < nSubdivisions) && (L_shr_sat(norms[iFilter][iSubdivisions], sub(6, norms_exp[iFilter][iSubdivisions])) > HLM_MIN_NRG_FX); iSubdivisions++) + FOR( iSubdivisions = 0; ( iSubdivisions < nSubdivisions ) && ( L_shr_sat( norms[iFilter][iSubdivisions], sub( 6, norms_exp[iFilter][iSubdivisions] ) ) > HLM_MIN_NRG_FX ); iSubdivisions++ ) { test(); - fac = BASOP_Util_Divide3232_Scale(1, norms[iFilter][iSubdivisions], &fac_e); - fac_e = add(sub(Q31, norms_exp[iFilter][iSubdivisions]), fac_e); - iStartLine = add(idx0, idiv1616U(i_mult(spectrumLength, iSubdivisions), nSubdivisions)); - iEndLine = add(idx0, idiv1616U(i_mult(spectrumLength, add(iSubdivisions, 1)), nSubdivisions)); + fac = BASOP_Util_Divide3232_Scale( 1, norms[iFilter][iSubdivisions], &fac_e ); + fac_e = add( sub( Q31, norms_exp[iFilter][iSubdivisions] ), fac_e ); + iStartLine = add( idx0, idiv1616U( i_mult( spectrumLength, iSubdivisions ), nSubdivisions ) ); + iEndLine = add( idx0, idiv1616U( i_mult( spectrumLength, add( iSubdivisions, 1 ) ), nSubdivisions ) ); pWindow = tnsAcfWindow_fx; // Q15 /* For additional loop condition */ /* Variable initialization */ - FOR(lag = 1; lag <= pTnsConfig->maxOrder; lag++) + FOR( lag = 1; lag <= pTnsConfig->maxOrder; lag++ ) { W_tmp = 0; move64(); - FOR(i = 0; i < iEndLine - iStartLine - lag; i++) + FOR( i = 0; i < iEndLine - iStartLine - lag; i++ ) { - W_tmp = W_mac_32_32(W_tmp, pSpectrum[iStartLine + i], pSpectrum[iStartLine + lag + i]); + W_tmp = W_mac_32_32( W_tmp, pSpectrum[iStartLine + i], pSpectrum[iStartLine + lag + i] ); } - exp = W_norm(W_tmp); - W_tmp = W_shl(W_tmp, exp); - exp = sub(shl(pSpectrum_e, 1), exp); - W_tmp = W_mult_32_32(L_mult(fac, (*pWindow)), W_extract_h(W_tmp)); // exp + fac_e - rxx[lag] = L_add(rxx[lag], W_extract_h(W_shl(W_tmp, sub(add(fac_e, exp), 2)))); // Q29 + exp = W_norm( W_tmp ); + W_tmp = W_shl( W_tmp, exp ); + exp = sub( shl( pSpectrum_e, 1 ), exp ); + W_tmp = W_mult_32_32( L_mult( fac, ( *pWindow ) ), W_extract_h( W_tmp ) ); // exp + fac_e + rxx[lag] = L_add( rxx[lag], W_extract_h( W_shl( W_tmp, sub( add( fac_e, exp ), 2 ) ) ) ); // Q29 move32(); pWindow++; } } - IF(EQ_16(iSubdivisions, nSubdivisions)) /* meaning there is no subdivision with low energy */ + IF( EQ_16( iSubdivisions, nSubdivisions ) ) /* meaning there is no subdivision with low energy */ { // To be checked - rxx[0] = L_shl(pTnsConfig->pTnsParameters[iFilter].nSubdivisions, Q29); // Q29 + rxx[0] = L_shl( pTnsConfig->pTnsParameters[iFilter].nSubdivisions, Q29 ); // Q29 move32(); pFilter->spectrumLength = spectrumLength; move16(); /* Limit the maximum order to spectrum length/4 */ - GetFilterParameters_ivas(rxx, s_min(pTnsConfig->maxOrder, shr(pFilter->spectrumLength, 2)), pFilter); + GetFilterParameters_ivas( rxx, s_min( pTnsConfig->maxOrder, shr( pFilter->spectrumLength, 2 ) ), pFilter ); } } @@ -416,13 +416,13 @@ Word16 DetectTnsFilt_fx( Word16 DetectTnsFilt_ivas_fx( #endif // FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT - STnsConfig const* pTnsConfig, /* i : TNS Configuration struct */ + STnsConfig const *pTnsConfig, /* i : TNS Configuration struct */ Word32 const pSpectrum[], /* i : MDCT spectrum Q=Qx */ - STnsData* pTnsData, /* o : TNS data struct */ + STnsData *pTnsData, /* o : TNS data struct */ TRAN_DET_HANDLE hTranDet, /* i : transient detection handle */ Word8 isTCX10, /* i : TCX10 or TCX20? */ Word16 ltp_gain, /* i : LTP gain Q=15 */ - Word16* predictionGain /* o : TNS prediction gain Q=7 */ + Word16 *predictionGain /* o : TNS prediction gain Q=7 */ ) { Word16 facs[TNS_MAX_NUM_OF_FILTERS][MAX_SUBDIVISIONS]; @@ -638,9 +638,9 @@ Word16 DetectTnsFilt_ivas_fx( /* We check the filter's decisions in the opposite direction */ #ifndef FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT - FOR(iFilter = (pTnsConfig->nMaxFilters - 1); iFilter >= 0; iFilter--) + FOR( iFilter = ( pTnsConfig->nMaxFilters - 1 ); iFilter >= 0; iFilter-- ) #else - FOR(iFilter = sub(pTnsConfig->nMaxFilters, 1); iFilter >= 0; iFilter--) + FOR( iFilter = sub( pTnsConfig->nMaxFilters, 1 ); iFilter >= 0; iFilter-- ) #endif // FIX_2411_Harmonize_TNSANALYSIS_DETECTTNSFILT { STnsFilter *pFilter; @@ -849,7 +849,7 @@ static void GetFilterParameters_ivas( Word32 rxx[], Word16 maxOrder, STnsFilter #elif TNS_COEF_RES == 4 Word16 const *values = tnsCoeff4; #elif TNS_COEF_RES == 3 - Word16 const *values = tnsCoeff3; + Word16 const *values = tnsCoeff3; #endif Word16 *indexes = pTnsFilter->coefIndex; @@ -911,7 +911,7 @@ static void GetFilterParameters( Word32 rxx[], Word16 maxOrder, STnsFilter *pTns #elif TNS_COEF_RES == 4 Word16 const *values = tnsCoeff4; #elif TNS_COEF_RES == 3 - Word16 const *values = tnsCoeff3; + Word16 const *values = tnsCoeff3; #endif Word16 *indexes = pTnsFilter->coefIndex; @@ -971,7 +971,7 @@ static void Parcor2Index( const Word16 parCoeff[] /*Q15*/, Word16 index[], Word1 #elif TNS_COEF_RES == 4 values = tnsCoeff4; #elif TNS_COEF_RES == 3 - values = tnsCoeff3; + values = tnsCoeff3; #endif FOR( i = 0; i < order; i++ ) -- GitLab