Commit 8f906bc7 authored by Tapani Pihlajakuja's avatar Tapani Pihlajakuja
Browse files

Merge remote-tracking branch 'origin/main' into...

Merge remote-tracking branch 'origin/main' into 355-clean-out-20ms-binaural-rendering-leftovers-parambin
parents 4d1a4ca7 fef3281d
Loading
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -75,7 +75,9 @@ typedef struct
    int16_t ism_md_fec_cnt_enc;  /* counter of continuous frames where MD are not transmitted */
    int16_t ism_md_inc_diff_cnt; /* counter of continuous frames where MD are transmitted in inactive segments when MD significantly changes */
#endif

#ifdef FIX_435_ISM_MERGE_BUG
    float last_true_radius; /* last true Q radius value */
#endif
} ISM_METADATA_FRAME, *ISM_METADATA_HANDLE;


+6 −0
Original line number Diff line number Diff line
@@ -157,10 +157,14 @@
#define FIX_422                                         /* FhG: Issue 422: re-introduce fix for noisy speech buffer in ParamISM */


#define ERI_MSVQ_CLEANUP                                /* Eri: Contribution #31  BE modularization of msvq encoder side DCT21&DCT24 within msvq_enc()        */


#define FIX_416_ISM_BR_SWITCHING                        /* FhG: add missing CLDFB reconfig to ISM BR switching */
#define FIX_SP2A                                        /* VA: Issue 412: Adjust threshold for the S_p2a feature in the tonal detector */
#define FIX_413_SBA_DTX                                 /* Dlb: Fix for issue 413, SBA DTX CNG in 2TC mode*/
#define FIX_417_TD_DECORR_BRATE_SW                      /* VA: Issue 417: fix incorrect use of TD decorrelator in bitrate switching */
#define FIX_368_SBA_MODE                                /* Dlb: Fix for issue 368 */
#define FIX_427_MAXIMUM_S_INDEX                         /* VA: issue 427: fix return index of function maximum_s() */
#define FIX_431_PARAMMC_PLC_INTERPOLATOR                /* FhG: Issue 431: fix missing interpolator reset for ParamMC PCL */
#define FIX_391_SBA                                     /* Dlb: Fix for issue 391 for SBA */
@@ -169,6 +173,8 @@

#define EUALER2QUAT_FIX                                 /*Dlb :fix for issue 430 issue in euler2quat, sign of quat y is inverted*/
#define HR_METADATA                                     /* Nok: encode directional MASA metadata with more bits at 384k and 512k */

#define FIX_435_ISM_MERGE_BUG                           /* Eri: Merge bug fix for ISM NULL metadata and tcx_only cases */
#define FIX_355_REFACTOR_PARAMBIN_TO_5MS                /* Nokia: Fixes issue 355 by refactoring parametric binauralizer code to 5 ms mode */

/* ################## End DEVELOPMENT switches ######################### */
+37 −0
Original line number Diff line number Diff line
@@ -8076,6 +8076,7 @@ void msvq_dec(
    Word16 *uq_ind                /* o  : quantized vector (fixed point)                       */
);


void dec_FDCNG_MSVQ_stage1(
    int16_t j_full,            /* i:   index full range           */
    int16_t n,                 /* i:   dimension to generate      */
@@ -8112,6 +8113,42 @@ void extend_dctN_input(
    const int16_t n_cols,   /* i: number of columns ==  truncation length */
    DCTTYPE dcttype );      /* i: matrix  type    */

#ifdef ERI_MSVQ_CLEANUP
int16_t msvq_stage1_dct_search(                                           /* o  : (p_max , best candidate sofar )                                  */
                                const float *u,                           /* i  : target                                   */
                                const int16_t N,                          /* i  : target length and  IDCT synthesis length */
                                const int16_t maxC_st1,                   /* i  : number of final stage 1 candidates to provide */
                                const DCTTYPE dcttype,                    /* e.g. DCT_T2_16_XX, DCT_T2_24_XX; */
                                const int16_t max_dct_trunc,              /* i:  maximum of truncation lenghts */
                                float *invTrfMatrix,                      /* i : IDCT synthesis matrix for dim N          */
                                const float *midQ_truncQ,                 /* i: midQ  vector */
                                const float *dct_invScaleF,               /* i: global inv scale factors*/
                                const float *dct_scaleF,                  /* i: global scale factors*/
                                const Word16 n_segm,                      /* i: number of segments  */
                                const Word16 *cols_per_segment,           /* i: remaining length per segment  */
                                const Word16 *trunc_dct_cols_per_segment, /* i: trunc length per segment   */
                                const Word16 *entries_per_segment,        /* i: number of rows per segment */
                                const Word16 *cum_entries_per_segment,    /* i: number of cumulative entries  */
                                const Word8 *const W8Qx_dct_sections[],   /*i: Word8(byte) segment  table ptrs  */
                                const Word16 *col_syn_shift[],            /*i: columnwise  syn shift tables  */
                                const Word8 *segm_neighbour_fwd,          /*i: circular neighbour list fwd */
                                const Word8 *segm_neighbour_rev,          /*i: circular neighbour list reverse */
                                const Word16 npost_check,                 /*i: number of neigbours to check , should be even */
                                float *st1_mse_ptr,                       /*i: dynRAM buffer for MSEs  */
                                int16_t *indices_st1_local,               /*o:  selected cand indices */
                                float *st1_syn_vec_ptr,                   /*i/o:  buffer for IDCT24 synthesis  */
                                float *dist1_ptr                          /*o:  resulting stage 1 MSEs in DCT-N domain */
);

int16_t msvq_stage1_dct_recalc_candidates_fdcng_wb(
    /* o  : (updated p_max)                */
    const float *st1_syn_vec_ptr, /* i  : IDCT24 synthesis vectors       */
    const float *u,               /* i  : target   signal                */
    const int16_t maxC_st1,       /* i  : number of candidates in stage1 */
    float *dist_ptr               /* i/o: updated  MSE vector for stage1 */
);
#endif

void PulseResynchronization(
    const float *src_exc,       /* i  : Input excitation buffer                 */
    float *dst_exc,             /* o  : output excitation buffer                */
+6 −6
Original line number Diff line number Diff line
@@ -64,8 +64,11 @@
#define LTE_VAR -4.0f

#define MAX_BRATE_DTX_EVS ACELP_24k40 /* maximum bitrate to which the default DTX is applied in EVS; otherwise DTX is applied only in silence */
#ifndef FIX_368_SBA_MODE
#define MAX_BRATE_DTX_IVAS IVAS_64k /* maximum bitrate to which the default DTX is applied in IVAS; otherwise DTX is applied only in silence */

#else
#define MAX_BRATE_DTX_IVAS IVAS_80k /* maximum bitrate to which the default DTX is applied in IVAS; otherwise DTX is applied only in silence */
#endif
/*-------------------------------------------------------------------*
 * Local function prototypes
 *-------------------------------------------------------------------*/
@@ -86,9 +89,7 @@ void dtx(
)
{
    float alpha;

    DTX_ENC_HANDLE hDtxEnc = st->hDtxEnc;

    int16_t last_br_cng_flag, last_br_flag, br_dtx_flag;
    if ( st->dtx_sce_sba != 0 )
    {
@@ -99,7 +100,6 @@ void dtx(
    else
    {
        last_br_cng_flag = st->last_total_brate_cng <= MAX_BRATE_DTX_EVS || st->lp_noise < 15 || ( st->element_mode == IVAS_SCE && st->last_total_brate_cng <= MAX_BRATE_DTX_IVAS );

        last_br_flag = st->last_total_brate <= MAX_BRATE_DTX_EVS || st->lp_noise < 15 || ( st->element_mode == IVAS_SCE && st->last_total_brate <= MAX_BRATE_DTX_IVAS );
        br_dtx_flag = 0;
    }
+1 −0
Original line number Diff line number Diff line
@@ -1264,6 +1264,7 @@ void FdCngEncodeDiracMDCTStereoSID(

    E[0] = sum_f( ms_ptr[0], NPART ); /* TBD Note:   NPART should likely be N[0] if N[0] may change */


    /* Quantize M noise shape */
    /* Normalize MSVQ input */
    gain[0] = sum_f( ms_ptr[0] + N_GAIN_MIN, N_GAIN_MAX - N_GAIN_MIN );
Loading