Commit aa0d22c1 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Merge branch 'ivas_cpe_dec_integration_changes_1' into 'main'

Integration changes ivas_cpe_dec

See merge request !173
parents 70aa2868 2912527d
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -264,6 +264,7 @@
    <ClCompile Include="..\lib_com\ivas_stereo_eclvq_com.c" />
    <ClCompile Include="..\lib_com\ivas_stereo_eclvq_com_fx.c" />
    <ClCompile Include="..\lib_com\ivas_stereo_ica_com.c" />
    <ClCompile Include="..\lib_com\ivas_stereo_ica_com_fx.c" />
    <ClCompile Include="..\lib_com\ivas_stereo_mdct_bands_com.c" />
    <ClCompile Include="..\lib_com\ivas_stereo_mdct_stereo_com.c" />
    <ClCompile Include="..\lib_com\ivas_stereo_psychlpc_com.c" />
+2 −0
Original line number Diff line number Diff line
@@ -521,6 +521,8 @@
    <ClCompile Include="..\lib_com\window_ola.c" />
    <ClCompile Include="..\lib_com\wtda.c" />
    <ClCompile Include="..\lib_com\gs_bitallocation_ivas_fx.c" />
    <ClCompile Include="..\lib_com\count.c" />
    <ClCompile Include="..\lib_com\ivas_stereo_ica_com_fx.c" />
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="..\lib_com\basop_proto_func.h">
+3 −4
Original line number Diff line number Diff line
@@ -165,7 +165,7 @@
#define DEC                             1               /* Index for "decoder" */

#define DEC_IVAS                        2               /* Index for IVAS decoder */

#define OUTPUT_Q 11

enum{
    NB  = 0,                                            /* Indicator of 4 kHz bandwidth */
@@ -211,9 +211,6 @@ enum{
#define INV_LOG_2                       1.442695040888963f /* 1/log(2)  */
#define INV_SQRT_2                      0.70710676908493f  /* 1/sqrt(2) */
#define INV_SQRT_2_Q15                  23170  /* 1/sqrt(2) in Q15 */
#ifdef IVAS_FLOAT_FIXED
#define INV_SQRT_2_FX                   (Word16)(0x5A82)  /* 1/sqrt(2) */
#endif

#define MAX_V_MULT_MAT                  100             /* maximum array length for the function v_mult_mat() */

@@ -1684,6 +1681,7 @@ enum
#define OUTMAX_SQ_INV                       0.00000000093132257461547852f /* 1/2^30 */

#define DELTA                               ( 1e-20f )
#define DELTA_FX                              ( 1 )
#define DELTA_MANTISSA_W16                    0x5e73
#define DELTA_MANTISSA_W32                    0x5e728433
#define DELTA_EXPONENT                        (-66)
@@ -1982,6 +1980,7 @@ typedef enum _DCTTYPE

#define EPSILON                             0.000000000000001f
#define EPSILON_FX                          0
#define EPSILON_FX_SMALL                         1
#ifdef IVAS_FLOAT_FIXED
#define  EPSILON_FIX (1)
#endif
+3 −1
Original line number Diff line number Diff line
@@ -67,9 +67,11 @@

#define INV_SQRT2                               7.071067811865475e-1f /* 1/sqrt(2) */
#define INV_SQRT3                               0.577350269189626f    /* 1/sqrt(3) */
#define INV_SQRT2_FX                               1518500224 /* 1/sqrt(2) */

#ifdef IVAS_FLOAT_FIXED
#define INV_SQRT2_FX                            23170                 /* 1/sqrt(2) Q15*/
#define INV_SQRT2_FX_Q15                            23170                 /* 1/sqrt(2) Q15*/

#endif

#define LOG_10                                  2.30258509299f
+69 −3
Original line number Diff line number Diff line
@@ -531,6 +531,14 @@ void synchro_synthesis(
    const int16_t sba_dirac_stereo_flag                         /* i  : signal stereo output for SBA DirAC      */
);

void synchro_synthesis_fixed(
  const int32_t ivas_total_brate,     /* i  : IVAS total bitrate                  */
  CPE_DEC_HANDLE hCPE,                /* i/o: CPE decoder structure               */
  float *output[CPE_CHANNELS],        /* i/o: output synthesis signal             */
  const int16_t output_frame,         /* i  : Number of samples                   */
  const int16_t sba_dirac_stereo_flag /* i  : signal stereo output for SBA DirAC  */
);

void stereo_tcx_init_enc(
    Encoder_State *st                                           /* i/o: encoder state structure                 */
);
@@ -727,7 +735,11 @@ void smooth_dft2td_transition(
    const int16_t output_frame                                  /* i  : output frame length                     */
);


void smooth_dft2td_transition_fx(
  CPE_DEC_HANDLE hCPE,         /* i/o: CPE decoder structure        */
  Word32 *output_fx[CPE_CHANNELS], /* i/o: synthesis @external Fs       */
  const int16_t output_frame   /* i  : output frame lenght          */
);
/*! r: flag indicating a valid bitrate */
int16_t is_IVAS_bitrate(
    const int32_t ivas_total_brate                              /* i  : IVAS total bitrate                      */
@@ -1954,12 +1966,24 @@ void stereo_tca_dec(
    const int16_t output_frame                                  /* i  : length of a frame per channel   */
);

void stereo_tca_dec_fx(
  CPE_DEC_HANDLE hCPE,                                        /* i/o: CPE decoder structure           */
  Word32 *synth[CPE_CHANNELS],                                 /* i/o: output synth                    */
  const int16_t output_frame                                  /* i  : length of a frame per channel   */
);

void stereo_tca_scale_R_channel(
    CPE_DEC_HANDLE hCPE,                                        /* i/o: CPE decoder structure           */
    float *output,                                              /* i/o: output synthesis, R channel     */
    const int16_t output_frame                                  /* i  : frame length                    */
);

void stereo_tca_scale_R_channel_fx(
  CPE_DEC_HANDLE hCPE,       /* i/o: CPE decoder structure       */
  Word32 *output_fx,         /* i/o: output synthesis, R channel */
  const int16_t output_frame /* i  : frame length                */
);

void adjustTargetSignal(
    float *target,
    const int16_t prevShift,
@@ -1968,7 +1992,12 @@ void adjustTargetSignal(
    const int16_t method 
);


void adjustTargetSignal_fx(
  Word32 *target_fx,
  const int16_t prevShift,
  const int16_t currShift,
  const int16_t L_shift_adapt,
  const int16_t method);
/*----------------------------------------------------------------------------------*
 * IC-BWE Stereo prototypes
 *----------------------------------------------------------------------------------*/
@@ -2111,6 +2140,11 @@ void stereo_td_init_dec(
    const int16_t last_element_mode                             /* i  : last element mode                       */
);

void stereo_td_init_dec_fx(
  STEREO_TD_DEC_DATA_HANDLE hStereoTD,                        /* i/o: TD stereo decoder handle                */
  const int16_t last_element_mode                             /* i  : last element mode                       */
);

void tdm_configure_dec(
    const int16_t ivas_format,                                  /* i  : IVAS format                             */
    const int16_t ism_mode,                                     /* i  : ISM mode in combined format             */
@@ -2131,6 +2165,18 @@ void tdm_upmix_plain(
    const int16_t plus_minus_flag                               /* i  : plus/minus flag                         */
);

void tdm_upmix_plain_fx(
  Word32 Left_fx[],                 /* o  : left channel            */
  Word32 Right_fx[],                /* o  : right channel           */
  const Word32 PCh_2_L_fx[],        /* i  : primary channel         */
  const Word32 SCh_2_R_fx[],        /* i  : secondary channel       */
  const Word32 LR_ratio_fx,         /* i  : mixing ratio            */
  const Word32 inv_den_LR_ratio_fx, /* i  : inverse mixing ration   */
  const int16_t start_index,    /* i  : start index             */
  const int16_t end_index,      /* i  : end index               */
  const int16_t plus_minus_flag /* i  : plus/minus flag         */
);

void stereo_tdm_combine(
    CPE_DEC_HANDLE hCPE,                                        /* i/o: CPE decoder structure                   */
    float *PCh_2_L,                                             /* i/o: Primary channel -> output as L channel  */
@@ -2140,6 +2186,15 @@ void stereo_tdm_combine(
    const int16_t tdm_ratio_idx                                 /* i  : TDM ratio index                         */
);

void stereo_tdm_combine_fx(
  CPE_DEC_HANDLE hCPE,        /* i/o: CPE decoder structure                       */
  Word32 *PCh_2_L_fx,         /* i/o: Primary channel -> output as left channel   */
  Word32 *SCh_2_R_fx,         /* i/o: Secondary channel -> output as right channel*/
  const int16_t output_frame, /* i  : Number of samples                           */
  const int16_t flag_HB,      /* i  : flag to distinguish between core (0) and HB (1) synthesis */
  const int16_t tdm_ratio_idx /* i  : TDM ratio index                             */
);

/*! r: replication decision; 1 = Use old LP */
int16_t tdm_lp_comparison(
    STEREO_TD_ENC_DATA_HANDLE hStereoTD,                        /* i/o: TD stereo encoder handle                */
@@ -2876,6 +2931,12 @@ void applyDmxMdctStereo(
    const int16_t output_frame                                  /* i  : output frame length                     */
);

void applyDmxMdctStereo_fx(
  const CPE_DEC_HANDLE hCPE,                                  /* i  : CPE handle                              */
  Word32 *output_fx[CPE_CHANNELS],                                /* o  : output from core decoder                */
  const int16_t output_frame                                  /* i  : output frame length                     */
);


/*----------------------------------------------------------------------------------*
 * Front-VAD prototypes
@@ -2956,7 +3017,12 @@ void stereo_cna_update_params(
    const int16_t output_frame,                                 /* i  : Output frame length                     */
    const int16_t tdm_ratio_idx                                 /* i  : TDM ratio index                         */
);

void stereo_cna_update_params_fx(
  CPE_DEC_HANDLE hCPE,         /* i/o: CPE decoder structure       */
  Word32 *output_fx[CPE_CHANNELS], /* i  : Output signal               */
  const int16_t output_frame,  /* i  : Output frame length         */
  const int16_t tdm_ratio_idx  /* i  : TDM ratio index             */
);
void dtx_enc_init(
    Encoder_State *st,                                          /* i  : Encoder state handle                    */
    const int16_t var_SID_rate_flag,                            /* i  : flag for variable SID update rate       */
Loading