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

Merge branch 'ivas_spar_md_dec_fxd' into 'main'

SPAR MD functions clean up, integration.

See merge request !282
parents 6dc59660 bf90ce95
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1046,14 +1046,15 @@ typedef enum

/* Common SPAR metadata constants */
#define IVAS_ACTIVEW_DM_F_SCALE                 0.5f
#define IVAS_ACTIVEW_DM_F_SCALE_FX                 ONE_IN_Q30
#define IVAS_ACTIVEW_DM_F_SCALE_FX              IVAS_ACTIVEW_DM_F_SCALE * ONE_IN_Q31
#define IVAS_ACTIVEW_DM_F_SCALE_DTX             0.25f
#define IVAS_ACTIVEW_DM_F_SCALE_DTX_FX             ONE_IN_Q29
#define IVAS_ACTIVEW_DM_F_SCALE_DTX_FX          IVAS_ACTIVEW_DM_F_SCALE_DTX * ONE_IN_Q31
#define IVAS_ACTIVEW_DM_F_SCALE_VLBR            0.25f
#define IVAS_ACTIVEW_DM_F_SCALE_VLBR_FX            ONE_IN_Q29
#define IVAS_ACTIVEW_DM_F_SCALE_VLBR_FX         IVAS_ACTIVEW_DM_F_SCALE_VLBR * ONE_IN_Q31
#define IVAS_SPAR_FOA_DFLT_FREQ_PER_CHAN        24000

#define IVAS_SPAR_DYN_ACTIVEW_THRESH           (0.0039f)
#define IVAS_SPAR_DYN_ACTIVEW_THRESH_FX        IVAS_SPAR_DYN_ACTIVEW_THRESH * ONE_IN_Q31
#define IVAS_SPAR_SIDE_CH_DYN_ACTIVEW_THRESH   (32.0f)

#define MAX_QUANT_STRATS                        3
+30 −6
Original line number Diff line number Diff line
@@ -5466,6 +5466,23 @@ void ivas_create_fullr_dmx_mat(
    ivas_spar_md_com_cfg *hMdCfg
);

#ifdef IVAS_FLOAT_FIXED
void ivas_create_fullr_dmx_mat_fx(
	Word32 pred_coeffs_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS],
	Word16 q_pred_coeffs_re,
	Word32 dm_fv_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS],
	Word16 q_dm_fv_re,
	Word32 ***mixer_mat,
	Word16 *q_mixer_mat,
	const Word16 in_chans,
	const Word16 start_band,
	const Word16 end_band,
	const Word16 active_w,
	ivas_spar_md_com_cfg *hMdCfg
);
#endif // IVAS_FLOAT_FIXED


void ivas_calc_c_p_coeffs(
    ivas_spar_md_t *pSparMd,
    float *pppCov_mat_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH],
@@ -5480,18 +5497,18 @@ void ivas_calc_c_p_coeffs(
);
#ifdef IVAS_FLOAT_FIXED
void ivas_get_spar_md_from_dirac_fx(
    float azi_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES],
    float ele_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES],
    float diffuseness[IVAS_MAX_NUM_BANDS],
    Word32 azi_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES],
	Word32 ele_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES],
	Word32 diffuseness[IVAS_MAX_NUM_BANDS],
    const int16_t n_ts,
    float ***mixer_mat,
    Word32 ***mixer_mat,
    ivas_spar_md_t *hSpar_md,
    ivas_spar_md_com_cfg *hSpar_md_cfg,
    const int16_t start_band,
    const int16_t end_band,
    const int16_t order,
    const int16_t dtx_vad,
    float Wscale_d[IVAS_MAX_NUM_BANDS],
    Word32 Wscale_d[IVAS_MAX_NUM_BANDS],
    const uint8_t useLowerRes,
    const int16_t active_w_vlbr,
    const int16_t  dyn_active_w_flag
@@ -5595,7 +5612,14 @@ void ivas_spar_to_dirac(
    const int16_t bw,                                           /* i  : band joining factor                     */
    const int16_t dyn_active_w_flag                             /* i  : dynamic active W flag                   */
);

void ivas_spar_to_dirac_fx(
	Decoder_Struct *st_ivas,                                    /* i/o: IVAS decoder handle                     */
	ivas_spar_md_dec_state_t *hMdDec,                           /* i/o: SPAR MD decoder handle                  */
	const int16_t dtx_vad,                                      /* i  : DTX frame flag                          */
	const int16_t num_bands_out,                                /* i  : number of output bands                  */
	const int16_t bw,                                           /* i  : band joining factor                     */
	const int16_t dyn_active_w_flag                             /* i  : dynamic active W flag                   */
);
void ivas_spar_update_md_hist(
    ivas_spar_md_dec_state_t *hMdDec                            /* i/o: SPAR MD decoder handle                  */
);
+54 −16
Original line number Diff line number Diff line
@@ -687,22 +687,26 @@ Word16 masa_sq_fx(
);

void ivas_compute_spar_params_fx(
    Word32 * pppCov_mat_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH],
	Word32 *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH],
	Word16 q_cov_real,
	Word32 dm_fv_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS],
    const int16_t i_ts,
    float ***mixer_mat,
    const int16_t start_band,
    const int16_t end_band,
    const int16_t dtx_vad,
    const int16_t num_ch,
    const int16_t bands_bw,
    const int16_t active_w,
    const int16_t active_w_vlbr,
	Word16 *q_dm_fv_re,
	const Word16 i_ts,
	Word32 ***mixer_mat_fx,
	Word16 *q_mixer_mat,
	const Word16 start_band,
	const Word16 end_band,
	const Word16 dtx_vad,
	const Word16 num_ch,
	const Word16 bands_bw,
	const Word16 active_w,
	const Word16 active_w_vlbr,
	ivas_spar_md_com_cfg *hSparCfg,
	ivas_spar_md_t *hSparMd,
    float *pWscale,
    const int16_t from_dirac,
    const int16_t dyn_active_w_flag
	Word32 *pWscale_fx,
	Word16 *q_pWscale,
	const Word16 from_dirac,
	const Word16 dyn_active_w_flag
);

ivas_error ivas_ism_metadata_dec_fx(
@@ -1416,6 +1420,14 @@ void ivas_sba_dirac_stereo_dec_fx(
    const Word16 mcmasa         /* i  : McMASA flag                         */
);

ivas_error ivas_osba_render_sf_fx(
    Decoder_Struct *st_ivas,         /* i/o: IVAS decoder handle                       */
    const UWord16 nSamplesAsked,    /* i  : number of CLDFB slots requested           */
    UWord16 *nSamplesRendered,      /* o  : number of CLDFB slots rendered            */
    UWord16 *nSamplesAvailableNext, /* o  : number of CLDFB slots still to render     */
    Word32 *p_output[]                /* o  : rendered time signal                      */
);

void ivas_hq_core_dec_fx(
    Decoder_State *st_fx,             /* i/o: decoder state structure fx         */
    Word16 synth[],                   /* o  : output synthesis                   */
@@ -1943,6 +1955,13 @@ ivas_error ivas_spar_dec_fx(
    Word16 *nb_bits_read    /* o  : number of MD bits read          */
);

void ivas_spar_md_dec_process_fx(
    Decoder_Struct *st_ivas,     /* i/o: IVAS decoder handle                                */
    Decoder_State *st0,          /* i/o: decoder state structure - for bitstream handling   */
    const Word16 num_bands_out, /* i  : number of output bands                             */
    const Word16 sba_order      /* i  : Ambisonic (SBA) order                              */
);

ivas_error TDREND_Update_object_positions_fx(
    BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD Renderer handle               */
    const Word16 num_src,                              /* i  : number of sources to render      */
@@ -2114,4 +2133,23 @@ ivas_error ivas_ism_metadata_dec_create_fx(
    const Word16 n_ISms,       /* i  : number of objects           */
    Word32 element_brate_tmp[] /* o  : element bitrate per object  */
);
ivas_error ivas_sba_dec_reconfigure_fx(
    Decoder_Struct *st_ivas,   /* i/o: IVAS decoder structure              */
    uint16_t *nSamplesFlushed, /* o  : number of samples flushed           */
    int16_t *data /* o  : output synthesis signal             */
);

ivas_error ivas_spar_md_dec_matrix_open_fx(
    ivas_spar_md_dec_state_t *hMdDec, /* i/o: SPAR MD decoder handle       */
    const int16_t num_channels,       /* i  : number of internal channels  */
    const int16_t num_md_sub_frames   /* i  : number of MD subframes       */
);
void ivas_spar_md_dec_matrix_close_fx(
    ivas_spar_md_dec_state_t *hMdDecoder, /* i/o: SPAR MD decoder handle      */
    const int16_t num_channels            /* i  : number of internal channels */
);
ivas_error ivas_spar_dec_open_fx(
    Decoder_Struct *st_ivas,         /* i/o: IVAS decoder handle        */
    const int16_t spar_reconfig_flag /* i  : SPAR reconfiguration flag  */
);
#endif
+1202 −137

File changed.

Preview size limit exceeded, changes collapsed.

+69 −91
Original line number Diff line number Diff line
@@ -41,6 +41,8 @@
#include <assert.h>
#include "wmc_auto.h"
#include "prot_fx1.h"


/*-----------------------------------------------------------------------------------------*
 * Function ivas_quantise_real_values()
 *
@@ -133,6 +135,7 @@ void ivas_quantise_real_values_fx(
}


#ifndef IVAS_FLOAT_FIXED
/*-----------------------------------------------------------------------------------------*
 * Function ivas_spar_get_uniform_quant_strat()
 *
@@ -160,67 +163,59 @@ void ivas_spar_get_uniform_quant_strat(
            pSpar_md_com_cfg->quant_strat[i].PR.q_levels[0] = PQ_q_lvl;
            pSpar_md_com_cfg->quant_strat[i].PR.q_levels[1] = PQ_q_lvl;
            pSpar_md_com_cfg->quant_strat[i].PR.min = -1.2f;
            pSpar_md_com_cfg->quant_strat[i].PR.min_fx = -644245094/2;
            pSpar_md_com_cfg->quant_strat[i].PR.max = 1.2f;
            pSpar_md_com_cfg->quant_strat[i].PR.max_fx = 644245094/2;
            

            pSpar_md_com_cfg->quant_strat[i].C.q_levels[0] = C_q_lvl;
            pSpar_md_com_cfg->quant_strat[i].C.q_levels[1] = C_q_lvl;
            pSpar_md_com_cfg->quant_strat[i].C.min = -0.8f;
            pSpar_md_com_cfg->quant_strat[i].C.min_fx = -429496729/2;
            pSpar_md_com_cfg->quant_strat[i].C.max = 0.8f;
            pSpar_md_com_cfg->quant_strat[i].C.max_fx = 429496729/2;
            

            pSpar_md_com_cfg->quant_strat[i].P_r.q_levels[0] = Pr_q_lvl;
            pSpar_md_com_cfg->quant_strat[i].P_r.q_levels[1] = Pr_q_lvl;
            pSpar_md_com_cfg->quant_strat[i].P_r.min = 0;
            pSpar_md_com_cfg->quant_strat[i].P_r.min_fx = 0;
            pSpar_md_com_cfg->quant_strat[i].P_r.max = 0.8f;
            pSpar_md_com_cfg->quant_strat[i].P_r.max_fx = 429496729/2;
            

            pSpar_md_com_cfg->quant_strat[i].P_c.q_levels[0] = Pc_q_lvl;
            pSpar_md_com_cfg->quant_strat[i].P_c.q_levels[1] = Pc_q_lvl;
            pSpar_md_com_cfg->quant_strat[i].P_c.min = -0.8f;
            pSpar_md_com_cfg->quant_strat[i].P_c.min_fx = -429496729/2;
            pSpar_md_com_cfg->quant_strat[i].P_c.max = 0.8f;
            pSpar_md_com_cfg->quant_strat[i].P_c.max_fx = 429496729/2;
            
        }
        else
        {
            pSpar_md_com_cfg->quant_strat[i].PR.q_levels[0] = PQ_q_lvl;
            pSpar_md_com_cfg->quant_strat[i].PR.q_levels[1] = PQ_q_lvl;
            pSpar_md_com_cfg->quant_strat[i].PR.max = 1;
            pSpar_md_com_cfg->quant_strat[i].PR.max_fx = 536870912/2;
            pSpar_md_com_cfg->quant_strat[i].PR.min = -1;
            pSpar_md_com_cfg->quant_strat[i].PR.min_fx = -536870912/2;
            

            pSpar_md_com_cfg->quant_strat[i].C.q_levels[0] = C_q_lvl;
            pSpar_md_com_cfg->quant_strat[i].C.q_levels[1] = C_q_lvl;
            pSpar_md_com_cfg->quant_strat[i].C.max = 2;
            pSpar_md_com_cfg->quant_strat[i].C.max_fx = 1073741824/2;
            pSpar_md_com_cfg->quant_strat[i].C.min = -2;
            pSpar_md_com_cfg->quant_strat[i].C.min_fx = -1073741824/2;
            

            pSpar_md_com_cfg->quant_strat[i].P_r.q_levels[0] = Pr_q_lvl;
            pSpar_md_com_cfg->quant_strat[i].P_r.q_levels[1] = Pr_q_lvl;
            pSpar_md_com_cfg->quant_strat[i].P_r.max = 1.0f;
            pSpar_md_com_cfg->quant_strat[i].P_r.max_fx = 536870912/2;
            pSpar_md_com_cfg->quant_strat[i].P_r.min = 0;
            pSpar_md_com_cfg->quant_strat[i].P_r.min_fx = 0;
            

            pSpar_md_com_cfg->quant_strat[i].P_c.q_levels[0] = Pc_q_lvl;
            pSpar_md_com_cfg->quant_strat[i].P_c.q_levels[1] = Pc_q_lvl;
            pSpar_md_com_cfg->quant_strat[i].P_c.max = 0.5;
            pSpar_md_com_cfg->quant_strat[i].P_c.max_fx = 268435456/2;
            pSpar_md_com_cfg->quant_strat[i].P_c.min = -0.5;
            pSpar_md_com_cfg->quant_strat[i].P_c.min_fx = -268435456/2;
            
        }
    }

    return;
}
#if 0
void ivas_spar_get_uniform_quant_strat_fx(
#else
void ivas_spar_get_uniform_quant_strat(
  ivas_spar_md_com_cfg *pSpar_md_com_cfg,
  const Word16 table_idx)
{
@@ -230,56 +225,56 @@ void ivas_spar_get_uniform_quant_strat_fx(

  pSpar_md_com_cfg->num_quant_strats = MAX_QUANT_STRATS;

  FOR (i = 0; i < pSpar_md_com_cfg->num_quant_strats; i++)
  for ( i = 0; i < pSpar_md_com_cfg->num_quant_strats; i++ )
  {
	  PQ_q_lvl = ivas_spar_br_table_consts[table_idx].q_lvls[i][0];
	  C_q_lvl = ivas_spar_br_table_consts[table_idx].q_lvls[i][1];
	  Pr_q_lvl = ivas_spar_br_table_consts[table_idx].q_lvls[i][2];
	  Pc_q_lvl = ivas_spar_br_table_consts[table_idx].q_lvls[i][3];

    IF (active_w)
	  if ( active_w )
	  {
		  pSpar_md_com_cfg->quant_strat[i].PR.q_levels[0] = PQ_q_lvl;
		  pSpar_md_com_cfg->quant_strat[i].PR.q_levels[1] = PQ_q_lvl;
      pSpar_md_com_cfg->quant_strat[i].PR.min_fx = -1288490188;//Q30
      pSpar_md_com_cfg->quant_strat[i].PR.max_fx = 1288490188;//Q30
		  pSpar_md_com_cfg->quant_strat[i].PR.min_fx = -322122547;//1.2*Q28
		  pSpar_md_com_cfg->quant_strat[i].PR.max_fx = 322122547;//1.2*Q28

		  pSpar_md_com_cfg->quant_strat[i].C.q_levels[0] = C_q_lvl;
		  pSpar_md_com_cfg->quant_strat[i].C.q_levels[1] = C_q_lvl;
      pSpar_md_com_cfg->quant_strat[i].C.min_fx = -858993459;//Q30
      pSpar_md_com_cfg->quant_strat[i].C.max_fx = 858993459;//Q30
		  pSpar_md_com_cfg->quant_strat[i].C.min_fx = -214748364;
		  pSpar_md_com_cfg->quant_strat[i].C.max_fx = 214748364;//.8*Q28

		  pSpar_md_com_cfg->quant_strat[i].P_r.q_levels[0] = Pr_q_lvl;
		  pSpar_md_com_cfg->quant_strat[i].P_r.q_levels[1] = Pr_q_lvl;
		  pSpar_md_com_cfg->quant_strat[i].P_r.min_fx = 0;
      pSpar_md_com_cfg->quant_strat[i].P_r.max_fx = 858993459;//Q30
		  pSpar_md_com_cfg->quant_strat[i].P_r.max_fx = 214748364;//.8*Q28

		  pSpar_md_com_cfg->quant_strat[i].P_c.q_levels[0] = Pc_q_lvl;
		  pSpar_md_com_cfg->quant_strat[i].P_c.q_levels[1] = Pc_q_lvl;
      pSpar_md_com_cfg->quant_strat[i].P_c.min_fx = -858993459;//Q30
      pSpar_md_com_cfg->quant_strat[i].P_c.max_fx = 858993459;//Q30
		  pSpar_md_com_cfg->quant_strat[i].P_c.min_fx = -214748364;//.8*Q28
		  pSpar_md_com_cfg->quant_strat[i].P_c.max_fx = 214748364; //.8*Q28
	  }
    ELSE
	  else
	  {
		  pSpar_md_com_cfg->quant_strat[i].PR.q_levels[0] = PQ_q_lvl;
		  pSpar_md_com_cfg->quant_strat[i].PR.q_levels[1] = PQ_q_lvl;
      pSpar_md_com_cfg->quant_strat[i].PR.max_fx = ONE_IN_Q30;//Q30
      pSpar_md_com_cfg->quant_strat[i].PR.min_fx = -ONE_IN_Q30;//Q30
		  pSpar_md_com_cfg->quant_strat[i].PR.max_fx = ONE_IN_Q28;
		  pSpar_md_com_cfg->quant_strat[i].PR.min_fx = -ONE_IN_Q28;

		  pSpar_md_com_cfg->quant_strat[i].C.q_levels[0] = C_q_lvl;
		  pSpar_md_com_cfg->quant_strat[i].C.q_levels[1] = C_q_lvl;
      pSpar_md_com_cfg->quant_strat[i].C.max_fx = 2147483648;//Q30
      pSpar_md_com_cfg->quant_strat[i].C.min_fx = -2147483648;//Q30
		  pSpar_md_com_cfg->quant_strat[i].C.max_fx = 2 *ONE_IN_Q28;
		  pSpar_md_com_cfg->quant_strat[i].C.min_fx = -2*ONE_IN_Q28;

		  pSpar_md_com_cfg->quant_strat[i].P_r.q_levels[0] = Pr_q_lvl;
		  pSpar_md_com_cfg->quant_strat[i].P_r.q_levels[1] = Pr_q_lvl;
      pSpar_md_com_cfg->quant_strat[i].P_r.max_fx = ONE_IN_Q30;//Q30
		  pSpar_md_com_cfg->quant_strat[i].P_r.max_fx = ONE_IN_Q28;
		  pSpar_md_com_cfg->quant_strat[i].P_r.min_fx = 0;

		  pSpar_md_com_cfg->quant_strat[i].P_c.q_levels[0] = Pc_q_lvl;
		  pSpar_md_com_cfg->quant_strat[i].P_c.q_levels[1] = Pc_q_lvl;
      pSpar_md_com_cfg->quant_strat[i].P_c.max_fx = 536870912;//Q30
      pSpar_md_com_cfg->quant_strat[i].P_c.min_fx = -536870912;//Q30
		  pSpar_md_com_cfg->quant_strat[i].P_c.max_fx = ONE_IN_Q27; //.5* Q28
		  pSpar_md_com_cfg->quant_strat[i].P_c.min_fx = -ONE_IN_Q27;//.5* Q28
		}
	}

@@ -402,22 +397,11 @@ void ivas_map_prior_coeffs_quant(
}
#endif

void ivas_spar_quant_dtx_init_fx(
  ivas_spar_md_t *spar_md,
  Word32 *min_max)
{
  spar_md->min_max_fx[0] = min_max[0];
  spar_md->min_max_fx[1] = min_max[1];

  return;
}

/*-----------------------------------------------------------------------------------------*
 * Function ivas_spar_quant_dtx_init()
 *
 * Init SPAR MD with minmax vals
 *-----------------------------------------------------------------------------------------*/

void ivas_spar_quant_dtx_init(
    ivas_spar_md_t *spar_md,
    float *min_max )
@@ -427,7 +411,7 @@ void ivas_spar_quant_dtx_init(

    return;
}
#if 0

void ivas_spar_quant_dtx_init_fx(
  ivas_spar_md_t *spar_md,
  Word32 *min_max)
@@ -437,7 +421,7 @@ void ivas_spar_quant_dtx_init_fx(

  return;
}
#endif

/*-----------------------------------------------------------------------------------------*
 * Function ivas_copy_band_coeffs_idx_to_arr()
 *
@@ -496,7 +480,6 @@ void ivas_copy_band_coeffs_idx_to_arr(
 *
 * clear band coeffs array in SPAR MD
 *-----------------------------------------------------------------------------------------*/

void ivas_clear_band_coeffs(
    ivas_band_coeffs_t *pband_coeffs,
    const uint16_t num_bands )
@@ -506,22 +489,17 @@ void ivas_clear_band_coeffs(
    for ( i = 0; i < num_bands; i++ )
    {
        set_zero( (float *) pband_coeffs[i].C_re, ( IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS ) * ( IVAS_SPAR_MAX_DMX_CHS - 1 ) );
        set32_fx( (Word32 *) pband_coeffs[i].C_re_fx, 0, ( IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS ) * ( IVAS_SPAR_MAX_DMX_CHS - 1 ) );
        set_zero( (float *) pband_coeffs[i].P_re, ( IVAS_SPAR_MAX_CH - 1 ) );
        set32_fx( (Word32 *) pband_coeffs[i].P_re_fx, 0, ( IVAS_SPAR_MAX_CH - 1 ) );
        set_zero( (float *) pband_coeffs[i].C_quant_re, ( IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS ) * ( IVAS_SPAR_MAX_DMX_CHS - 1 ) );
        set32_fx( (Word32 *) pband_coeffs[i].C_quant_re_fx, 0, ( IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS ) * ( IVAS_SPAR_MAX_DMX_CHS - 1 ) );
        set_zero( (float *) pband_coeffs[i].P_quant_re, ( IVAS_SPAR_MAX_CH - 1 ) );
        set32_fx( (Word32 *) pband_coeffs[i].P_quant_re_fx, 0, ( IVAS_SPAR_MAX_CH - 1 ) );
        set_zero( pband_coeffs[i].pred_re, ( IVAS_SPAR_MAX_CH - 1 ) );
        set32_fx( pband_coeffs[i].pred_re_fx, 0, ( IVAS_SPAR_MAX_CH - 1 ) );
        set_zero( pband_coeffs[i].pred_quant_re, ( IVAS_SPAR_MAX_CH - 1 ) );
        set32_fx( pband_coeffs[i].pred_quant_re_fx, 0, ( IVAS_SPAR_MAX_CH - 1 ) );
        
    }

    return;
}
#if 0

void ivas_clear_band_coeffs_fx(
  ivas_band_coeffs_t *pband_coeffs,
  const UWord16 num_bands)
@@ -540,7 +518,7 @@ void ivas_clear_band_coeffs_fx(

  return;
}
#endif

/*-----------------------------------------------------------------------------------------*
 * Function ivas_clear_band_coeff_idx()
 *
Loading