Commit 72f1f4ce authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Fixed point conversions of files entropy_decoder.c, ivas_stereo_eclvq_dec.c,...

Fixed point conversions of files entropy_decoder.c, ivas_stereo_eclvq_dec.c, ivas_sns_com.c, ivas_stereo_eclvq_com.c

[x] data type and operator changes in entropy_decoder.c
[x] res_bpf_adapt() converted to fixed point implementation.
[x] ivas_stereo_eclvq_dec.c - BASOP updates.
[x] functions present in ivas_sns_com.c converted to fixed point.
[x] functions present in ivas_stereo_eclvq_com.c converted to fixed point.
    Absolute diff of dumps
      for, res_buf: 0.007217%
      for, res_global_gain: 0.009206%
[x] Fixed warnings in ivas_qmetadata_dec functions and integrated ivas_omasa_decode_masa_to_total_fx function call.
parent 21493ea7
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -253,10 +253,12 @@
    <ClCompile Include="..\lib_com\ivas_rom_com.c" />
    <ClCompile Include="..\lib_com\ivas_rom_com_fx.c" />
    <ClCompile Include="..\lib_com\ivas_sba_config.c" />
    <ClCompile Include="..\lib_com\ivas_sns_com_fx.c" />
    <ClCompile Include="..\lib_com\ivas_spar_com.c" />
    <ClCompile Include="..\lib_com\ivas_spar_com_quant_util.c" />
    <ClCompile Include="..\lib_com\ivas_stereo_dft_com.c" />
    <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_mdct_bands_com.c" />
    <ClCompile Include="..\lib_com\ivas_stereo_mdct_stereo_com.c" />
+43 −0
Original line number Diff line number Diff line
@@ -720,6 +720,49 @@
    <ClCompile Include="..\lib_com\math_op.c" />
    <ClCompile Include="..\lib_com\bits_alloc_fx.c" />
    <ClCompile Include="..\lib_com\hq_conf_fx.c" />
    <ClCompile Include="..\lib_com\ivas_stereo_eclvq_com_fx.c" />
    <ClCompile Include="..\lib_com\swb_bwe_com_lr_fx.c">
      <Filter>common_evs_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_com\hq2_bit_alloc_fx.c">
      <Filter>common_evs_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_com\isf_dec_amr_wb_fx.c">
      <Filter>common_evs_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_com\nelp_fx.c">
      <Filter>common_evs_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_com\ppp_fx.c">
      <Filter>common_evs_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_com\hq2_core_com_fx.c">
      <Filter>common_evs_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_com\hq2_noise_inject_fx.c">
      <Filter>common_evs_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_com\reordvct_fx.c">
      <Filter>common_all_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_com\lsp_conv_poly_fx.c">
      <Filter>common_all_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_com\tns_base_flt.c">
      <Filter>common_all_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_com\tns_base.c">
      <Filter>common_all_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_com\codec_tcx_common_flt.c">
      <Filter>common_all_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_com\codec_tcx_common.c">
      <Filter>common_all_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_com\ivas_sns_com_fx.c">
      <Filter>common_ivas_c</Filter>
    </ClCompile>
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="..\lib_com\basop32.h" />
+3 −0
Original line number Diff line number Diff line
@@ -592,6 +592,8 @@ typedef enum
/* Residual coding BPF */
#define STEREO_DFT_BPF_ADAPT_ALPHA              (0.61f)
#define STEREO_DFT_BPF_ADAPT_BETA               (0.68f)
#define STEREO_DFT_BPF_ADAPT_ALPHA_FX           (19988) /* STEREO_DFT_BPF_ADAPT_ALPHA in Q15 */
#define STEREO_DFT_BPF_ADAPT_BETA_FX            (22281) /* STEREO_DFT_BPF_ADAPT_BETA in Q15 */

/* Golomb-Rice encoding */
#define NO_SYMB_GR_SIDE_G                       31
@@ -664,6 +666,7 @@ enum

#define ECLVQ_GLOBAL_GAIN_FACTOR                ( 20.0f * 127.0f / 90.0f )
#define ECLVQ_INV_GLOBAL_GAIN_FACTOR            ( 1.0f / ( 20.0f * 127.0f / 90.0f ) )
#define ECLVQ_INV_GLOBAL_GAIN_FACTOR_Q24        594468

/* the currently defined configuration indexes are:
 0: un-optimized using uniform 4 bit parameters (reserved)
+4 −0
Original line number Diff line number Diff line
@@ -1424,11 +1424,13 @@ void stereo_dft_dec_res(
);

/*! r: Decision to enable or disable BPF on DFT stereo residual */
#ifndef IVAS_FLOAT_FIXED
int16_t res_bpf_adapt(
    STEREO_DFT_DEC_DATA_HANDLE hStereoDft,                      /* i/o: DFT stereo decoder handle           */
    const float *bpf_error_signal_8k,                           /* i  : BPF modification signal             */
    float res_buf[STEREO_DFT_N_8k]                              /* i  : residual buffer                     */
);
#endif // IVAS_FLOAT_FIXED

void bpf_pitch_coherence(
    Decoder_State *st,                                          /* i/o: decoder state structure             */
@@ -1780,11 +1782,13 @@ int32_t ECSQ_encode_target_SNR(
    int16_t *global_gain_index_output 
);

#ifndef IVAS_FLOAT_FIXED
void ECSQ_decode(
    ECSQ_instance *ecsq_inst,
    const int16_t N,
    int16_t *output 
);
#endif // IVAS_FLOAT_FIXED

void ECSQ_dequantize_vector(
    const int16_t *input,
+49 −1
Original line number Diff line number Diff line
@@ -107,6 +107,54 @@ void ivas_td_decorr_get_ducking_gains_fx(
    Word32 *pOut_duck_gains,
    const Word16 frame_len,
    const Word16 tdet_flag );
#endif

// ivas_stereo_eclvq_dec.c
void ECSQ_decode(
    ECSQ_instance *ecsq_inst,
    const Word16 N,
    Word16 *output );
#endif // IVAS_FLOAT_FIXED

// bass_psfilter.c
Word16 res_bpf_adapt_fx(
    STEREO_DFT_DEC_DATA_HANDLE hStereoDft, /* i/o: DFT stereo decoder handle */
    const Word32 *bpf_error_signal_8k,     /* i  : BPF modification signal   */
    Word32 res_buf[STEREO_DFT_N_8k]        /* i  : residual buffer           */
);

// ivas_sns_com_fx.c
void sns_compute_scf_fx(
    Word32 spectrum[],
    const PsychoacousticParameters *pPsychParams,
    const Word16 L_frame,
    Word32 *scf );

void sns_interpolate_scalefactors_fx(
    Word32 *scf_int,    /* o  : interpolated scalefactors for spectrum shaping                         */
    const Word32 *scf,  /* i  : sns scalefactors as derived from the signal or read from the bitstream */
    Word16 encoder_side /* i  : flag, if scalefactors have to be inverted                              */
);

void sns_shape_spectrum_fx(
    Word32 spectrum[],                            /* i/o: spectrum to be shaped                                     */
    const PsychoacousticParameters *pPsychParams, /* i  : psychoacoustic parameters used to get the frequency bands */
    const Word32 *scf_int,                        /* i  : already interpolated SNS scalefactors                     */
    const Word16 L_frame                          /* i  : frame length                                              */
);

// ivas_stereo_eclvq_com_fx.c
Word32 ECSQ_dequantize_gain_fx(
    const Word16 index );

void ECSQ_dequantize_vector_fx(
    const Word16 *input,
    const Word32 global_gain,
    const Word16 N,
    Word32 *output );

void ECSQ_init_instance_fx(
    ECSQ_instance *ecsq_inst,
    const Word16 config_index,
    void *ac_handle );

#endif
 No newline at end of file
Loading