Commit 1565255e authored by Jan Kiene's avatar Jan Kiene
Browse files

Merge branch...

Merge branch '11-sba-stereo-items-sound-darker-than-input-during-16khz-decode-in-cpe-modes-such-as-64kbps-187' into 'main'

[non-BE] Resolve "SBA / Stereo items sound darker than input during 16kHz decode in CPE modes such as 64kbps (187)"

See merge request !185
parents eb60f574 0424593b
Loading
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -2179,7 +2179,12 @@ void stereo_decoder_tcx(
    const int16_t core_l,                                       /* i  : core for left channel (TCX20/TCX10)     */
    const int16_t core_r,                                       /* i  : core for right channel (TCX20/TCX10)    */
    const int16_t igf,                                          /* i  : flag for IGF activity                   */
#ifdef FIX_TCX10_STEREO_PROC
    const int16_t L_frameTCX_l,                                 /* i  : TCX frame length of left channel        */
    const int16_t L_frameTCX_r,                                 /* i  : TCX frame length of right channel       */
#else
    const int16_t L_frame,                                      /* i  : TCX frame length                        */
#endif
    const int16_t mct_on,                                       /* i  : flag mct block (1) or stereo (0)        */
    const int16_t last_core_l,                                  /* i  : last core for left channel              */
    const int16_t last_core_r,                                  /* i  : last core for right channel             */
+1 −1
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@
void sns_compute_scf(
    float spectrum[],
    const PsychoacousticParameters *pPsychParams,
    const int16_t L_frame, /* TODO: this parameter is obsolete, since pPsychParams->nBins is used anyway */
    const int16_t L_frame,
    float *scf )
{
    int16_t i, n, k;
+1 −0
Original line number Diff line number Diff line
@@ -147,6 +147,7 @@
/*#define FIX_I1_113*/                                  /* under review : MCT bit distribution optimization for SBA high bitrates*/

#define FIX_I13_TCX_TNS_ISSUE                           /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */
#define FIX_TCX10_STEREO_PROC                           /* Issue 11 */
#define CORECODER_BITRATE_SWITCHING                     /* Issue 133: support bitrate switching in core-coder */

#define ISM_BITRATE_SWITCHING                           /* Issue 115: Support for Bitrate Switching in ISM */
+5 −2
Original line number Diff line number Diff line
@@ -220,8 +220,11 @@ void apply_MCT_dec(
    {
        hBlock = hMCT->hBlockData[pair];

        stereo_decoder_tcx( hBlock->hStereoMdct, hBlock->mask, &x[hBlock->ch2][0], &x[hBlock->ch1][0], &x[hBlock->ch2][0], hBlock->hStereoMdct->mdct_stereo_mode,
                            sts[hBlock->ch1]->core, sts[hBlock->ch2]->core, sts[0]->igf, sts[0]->hTcxDec->L_frameTCX, 1, TCX_20_CORE, TCX_20_CORE, 0 );
#ifdef FIX_TCX10_STEREO_PROC
        stereo_decoder_tcx( hBlock->hStereoMdct, hBlock->mask, &x[hBlock->ch2][0], &x[hBlock->ch1][0], &x[hBlock->ch2][0], hBlock->hStereoMdct->mdct_stereo_mode, sts[hBlock->ch1]->core, sts[hBlock->ch2]->core, sts[0]->igf, sts[0]->hTcxDec->L_frameTCX, sts[1]->hTcxDec->L_frameTCX, 1, TCX_20_CORE, TCX_20_CORE, 0 );
#else
        stereo_decoder_tcx( hBlock->hStereoMdct, hBlock->mask, &x[hBlock->ch2][0], &x[hBlock->ch1][0], &x[hBlock->ch2][0], hBlock->hStereoMdct->mdct_stereo_mode, sts[hBlock->ch1]->core, sts[hBlock->ch2]->core, sts[0]->igf, sts[0]->hTcxDec->L_frameTCX, 1, TCX_20_CORE, TCX_20_CORE, 0 );
#endif
    }

    applyGlobalILD( sts, hMCT, x );
+8 −2
Original line number Diff line number Diff line
@@ -508,10 +508,16 @@ void ivas_mdct_core_invQ(
    if ( bfi && !isMCT && ( hCPE->hStereoMdct->mdct_stereo_mode[0] > SMDCT_DUAL_MONO || hCPE->hStereoMdct->mdct_stereo_mode[1] > SMDCT_DUAL_MONO ) )
    {
        L_frameTCX[0] = sts[0]->L_frameTCX_past;
#ifdef FIX_TCX10_STEREO_PROC
        L_frameTCX[1] = sts[1]->L_frameTCX_past;
#endif
        mvr2r( sts[0]->hTonalMDCTConc->lastBlockData.spectralData, tmp_ms_sig[0], L_frameTCX[0] );
        mvr2r( sts[1]->hTonalMDCTConc->lastBlockData.spectralData, tmp_ms_sig[1], L_frameTCX[0] );
        stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], &sts[0]->hTonalMDCTConc->lastBlockData.spectralData, &sts[1]->hTonalMDCTConc->lastBlockData.spectralData, &hCPE->hStereoMdct->mdct_stereo_mode[0],
                            sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], 0, sts[0]->last_core, sts[1]->last_core, 1 );
#ifdef FIX_TCX10_STEREO_PROC
        stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], &sts[0]->hTonalMDCTConc->lastBlockData.spectralData, &sts[1]->hTonalMDCTConc->lastBlockData.spectralData, &hCPE->hStereoMdct->mdct_stereo_mode[0], sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], L_frameTCX[1], 0, sts[0]->last_core, sts[1]->last_core, 1 );
#else
        stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], &sts[0]->hTonalMDCTConc->lastBlockData.spectralData, &sts[1]->hTonalMDCTConc->lastBlockData.spectralData, &hCPE->hStereoMdct->mdct_stereo_mode[0], sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], 0, sts[0]->last_core, sts[1]->last_core, 1 );
#endif
    }

#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE
Loading