Loading lib_com/cldfb.c +7 −0 Original line number Diff line number Diff line Loading @@ -61,7 +61,9 @@ static void cldfb_init_proto_and_twiddles( HANDLE_CLDFB_FILTER_BANK hs ); static void cldfb_init_proto_and_twiddles_enc( HANDLE_CLDFB_FILTER_BANK hs ); #ifndef IVAS_FLOAT_FIXED static float GetEnergyCldfb_ivas( float *energyValuesSum, float *energyLookahead, float **realValues, float **imagValues, const int16_t numberBands, int16_t numberCols, TEC_ENC_HANDLE hTecEnc ); #endif /*-------------------------------------------------------------------* * cplxMult() Loading Loading @@ -1917,6 +1919,7 @@ void resampleCldfb_ivas_fx( } #endif #ifndef IVAS_FLOAT_FIXED /*-------------------------------------------------------------------* * analysisCLDFBEncoder() * Loading Loading @@ -1947,6 +1950,7 @@ void analysisCldfbEncoder_ivas( return; } #endif void analysisCldfbEncoder_ivas_fx( Encoder_State *st, /* i/o: encoder state structure */ Loading Loading @@ -2005,6 +2009,8 @@ void analysisCldfbEncoder_ivas_fx( return; } #ifndef IVAS_FLOAT_FIXED /*-------------------------------------------------------------------* * GetEnergyCldfb_ivas() * Loading Loading @@ -2078,6 +2084,7 @@ static float GetEnergyCldfb_ivas( return 65535.0f; } #endif /*-------------------------------------------------------------------* Loading lib_com/fft_fx.c +6 −0 Original line number Diff line number Diff line Loading @@ -7116,6 +7116,12 @@ void rfft_fx( s2 = -204; move16(); BREAK; case 240: s1 = 136; move16(); s2 = -136; move16(); BREAK; case 256: s1 = 128; move16(); Loading lib_com/ivas_prot.h +12 −0 Original line number Diff line number Diff line Loading @@ -4399,12 +4399,14 @@ void reset_metadata_spatial( ); /*! r: number of bits written */ #ifndef IVAS_FLOAT_FIXED void ivas_qmetadata_enc_sid_encode( BSTR_ENC_HANDLE hMetaData, /* i/o: metadata bitstream handle */ IVAS_QMETADATA *q_metadata, /* i/o: metadata handle */ const int16_t masa_sid_descriptor, /* i : description of MASA SID coding structure*/ const int16_t ivas_format /* i : ivas format */ ); #endif /*! r: number of bits read */ int16_t ivas_qmetadata_dec_decode( Loading Loading @@ -4535,6 +4537,16 @@ uint16_t quantize_direction( const MC_LS_SETUP mc_format /* i : channel format if in MC-mode */ ); #ifdef IVAS_FLOAT_FIXED Word16 quantize_direction2D_fx( Word32 phi, /* i : input azimuth value Q22 */ const Word16 no_cw, /* i : number of bits */ Word32 *phi_q, /* o : quantized azimuth value Q22 */ UWord16 *index_phi, /* o : quantized azimuth index */ const MC_LS_SETUP mc_format /* i : channel format if in MC-mode */ ); #endif int16_t quantize_direction2D( float phi, /* i : input azimuth value */ const int16_t no_cw, /* i : number of bits */ Loading lib_com/ivas_prot_fx.h +27 −0 Original line number Diff line number Diff line Loading @@ -3373,4 +3373,31 @@ void ivas_merge_masa_metadata_fx( MASA_ENCODER_HANDLE hMasa, /* i/o: MASA enc handle. source for MASA metadata and combined metadata will be here */ OMASA_SPATIAL_META_HANDLE hOMasaMeta /* i : ISM-object metadata to be merged with the MASA metadata */ ); /*! r: number of bits written */ void ivas_qmetadata_enc_sid_encode_fx( BSTR_ENC_HANDLE hMetaData, /* i/o: metadata bitstream handle */ IVAS_QMETADATA *q_metadata, /* i/o: metadata handle */ const Word16 masa_sid_descriptor, /* i : description of MASA SID coding structure*/ const Word16 ivas_format /* i : ivas format */ ); void ivas_param_mc_enc_fx( Encoder_Struct *st_ivas, /* i/o: IVAS Encoder handle */ BSTR_ENC_HANDLE hMetaData, /* i/o: IVAS Metadata bitstream handle */ Word32 *data_f_fx[], /* i/o: input/transport MC data Q11 */ const Word16 input_frame /* i : input frame length */ ); ivas_error stereo_dmx_evs_init_encoder_fx( STEREO_DMX_EVS_ENC_HANDLE *hStereoDmxEVS_out, /* o : Stereo downmix for EVS encoder handle */ const Word32 input_Fs /* i : input sampling rate */ ); void stereo_dmx_evs_enc_fx( STEREO_DMX_EVS_ENC_HANDLE hStereoDmxEVS, /* i/o: Stereo downmix for EVS encoder handle */ const Word32 input_Fs, /* i : input sampling rate */ Word16 data[CPE_CHANNELS * L_FRAME48k], /* i/o: input signal */ const Word16 n_samples, /* i : number of input samples */ const bool is_binaural /* i : indication that input is binaural audio */ ); #endif lib_com/prot_fx.h +34 −29 Original line number Diff line number Diff line Loading @@ -6028,23 +6028,22 @@ void CNG_dec_fx( Word16 *lsp_new, /* i/o: current frame LSPs Q15 */ Word16 *lsf_new, /* i/o: current frame LSFs Qlog2(2.56) */ Word16 *allow_cn_step, /* o : allow CN step Q0 */ Word16 *sid_bw /* i : 0-NB/WB, 1-SWB SID */ , Word16 *sid_bw, /* i : 0-NB/WB, 1-SWB SID Q0 */ Word32 *q_env ); void swb_CNG_dec_fx( Decoder_State *st_fx, /* i/o: State structure */ const Word16 *synth_fx, /* i : ACELP core synthesis at 32kHz */ Word16 *shb_synth_fx, /* o : high-band CNG synthesis */ const Word16 sid_bw, /* i : 0-NB/WB, 1-SWB SID */ const Word16 *synth_fx, /* i : ACELP core synthesis at 32kHz Qsyn*/ Word16 *shb_synth_fx, /* o : high-band CNG synthesis Qx*/ const Word16 sid_bw, /* i : 0-NB/WB, 1-SWB SID Q0*/ const Word16 Qsyn /* i : Q value of ACELP core synthesis */ ); void swb_CNG_dec_ivas_fx( Decoder_State *st_fx, /* i/o: State structure */ const Word16 *synth_fx, /* i : ACELP core synthesis at 32kHz */ Word16 *shb_synth_fx, /* o : high-band CNG synthesis */ const Word16 sid_bw, /* i : 0-NB/WB, 1-SWB SID */ const Word16 *synth_fx, /* i : ACELP core synthesis at 32kHz Qsyn*/ Word16 *shb_synth_fx, /* o : high-band CNG synthesis Qx*/ const Word16 sid_bw, /* i : 0-NB/WB, 1-SWB SID Q0*/ const Word16 Qsyn /* i : Q value of ACELP core synthesis */ ); Loading Loading @@ -8198,11 +8197,11 @@ ivas_error ppp_quarter_decoder_fx( // core_dec_init_fx.c void open_decoder_LPD_fx( Decoder_State *st, const Word32 total_brate, const Word32 total_brate, /* Q0 */ #ifdef NEW_IVAS_OPEN_DEC const Word32 last_total_brate, #endif const Word16 bwidth const Word16 bwidth /* Q0 */ #ifdef NEW_IVAS_OPEN_DEC , const Word16 is_mct, /* i : MCT mode flag */ Loading @@ -8215,12 +8214,12 @@ void open_decoder_LPD_fx( #ifdef IVAS_FLOAT_FIXED void open_decoder_LPD_ivas_fx( Decoder_State *st, /* i/o: decoder state structure */ const Word32 total_brate, /* i : total bitrate */ const Word32 last_total_brate, /* i : last total bitrate */ const Word16 bwidth, /* i : audio bandwidth */ const Word16 MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ const Word16 last_element_mode, /* i : last element mode */ const Word16 is_init, /* i : indicate call from init_decoder() to avoid double TC initialization */ const Word32 total_brate, /* i : total bitrate Q0*/ const Word32 last_total_brate, /* i : last total bitrate Q0*/ const Word16 bwidth, /* i : audio bandwidth Q0*/ const Word16 MCT_flag, /* i : hMCT handle allocated (1) or not (0) Q0*/ const Word16 last_element_mode, /* i : last element mode Q0*/ const Word16 is_init, /* i : indicate call from init_decoder() to avoid double TC initialization Q0*/ Word16 *Q_syn_Overl_TDAC, Word16 *Q_fer_samples, Word16 *Q_syn_Overl, Loading @@ -8240,12 +8239,12 @@ void acelp_plc_mdct_transition_fx( void cldfb_reset_memory_fx( HANDLE_CLDFB_FILTER_BANK hs /* i/o: filter bank handle */ ); void tcxltp_dec_init_fx( TCX_LTP_DEC_HANDLE hTcxLtpDec, const Word16 ini_frame, const Word16 last_codec_mode, const Word16 element_mode, const Word16 pit_max, const Word32 sr_core ); TCX_LTP_DEC_HANDLE hTcxLtpDec, /* Q0 */ const Word16 ini_frame, /* Q0 */ const Word16 last_codec_mode, /* Q0 */ const Word16 element_mode, /* Q0 */ const Word16 pit_max, /* Q0 */ const Word32 sr_core ); /* Q0 */ // swb_bwe_dec_hr_fx.c Word16 swb_bwe_dec_hr_fx( Loading Loading @@ -9062,14 +9061,20 @@ Word16 RCcontextMapping_decode2_no_mem_s17_LCS_fx( ); // core_dec_reconf_fx.c void reconfig_decoder_LPD_fx( Decoder_State *st, Word16 bits_frame, Word16 bandwidth_mode, Word32 bitrate, Word16 L_frame_old ); void reconfig_decoder_LPD_fx( Decoder_State *st, /* i/o: decoder state structure */ Word16 bits_frame, /* i : bit budget Q0*/ Word16 bwidth, /* i : audio bandwidth Q0*/ Word32 total_brate, /* i : total bitrate Q0*/ Word16 L_frame_old /* i : frame length Q0*/ ); #ifdef IVAS_FLOAT_FIXED void reconfig_decoder_LPD_ivas_fx( Decoder_State *st, /* i/o: decoder state structure */ const Word16 bits_frame, /* i : bit budget */ const Word16 bwidth, /* i : audio bandwidth */ const Word32 total_brate, /* i : total bitrate */ const Word16 L_frame_old /* i : frame length */ const Word16 bits_frame, /* i : bit budget Q0*/ const Word16 bwidth, /* i : audio bandwidth Q0*/ const Word32 total_brate, /* i : total bitrate Q0*/ const Word16 L_frame_old /* i : frame length Q0*/ ); #endif // IVAS_FLOAT_FIXED Loading Loading
lib_com/cldfb.c +7 −0 Original line number Diff line number Diff line Loading @@ -61,7 +61,9 @@ static void cldfb_init_proto_and_twiddles( HANDLE_CLDFB_FILTER_BANK hs ); static void cldfb_init_proto_and_twiddles_enc( HANDLE_CLDFB_FILTER_BANK hs ); #ifndef IVAS_FLOAT_FIXED static float GetEnergyCldfb_ivas( float *energyValuesSum, float *energyLookahead, float **realValues, float **imagValues, const int16_t numberBands, int16_t numberCols, TEC_ENC_HANDLE hTecEnc ); #endif /*-------------------------------------------------------------------* * cplxMult() Loading Loading @@ -1917,6 +1919,7 @@ void resampleCldfb_ivas_fx( } #endif #ifndef IVAS_FLOAT_FIXED /*-------------------------------------------------------------------* * analysisCLDFBEncoder() * Loading Loading @@ -1947,6 +1950,7 @@ void analysisCldfbEncoder_ivas( return; } #endif void analysisCldfbEncoder_ivas_fx( Encoder_State *st, /* i/o: encoder state structure */ Loading Loading @@ -2005,6 +2009,8 @@ void analysisCldfbEncoder_ivas_fx( return; } #ifndef IVAS_FLOAT_FIXED /*-------------------------------------------------------------------* * GetEnergyCldfb_ivas() * Loading Loading @@ -2078,6 +2084,7 @@ static float GetEnergyCldfb_ivas( return 65535.0f; } #endif /*-------------------------------------------------------------------* Loading
lib_com/fft_fx.c +6 −0 Original line number Diff line number Diff line Loading @@ -7116,6 +7116,12 @@ void rfft_fx( s2 = -204; move16(); BREAK; case 240: s1 = 136; move16(); s2 = -136; move16(); BREAK; case 256: s1 = 128; move16(); Loading
lib_com/ivas_prot.h +12 −0 Original line number Diff line number Diff line Loading @@ -4399,12 +4399,14 @@ void reset_metadata_spatial( ); /*! r: number of bits written */ #ifndef IVAS_FLOAT_FIXED void ivas_qmetadata_enc_sid_encode( BSTR_ENC_HANDLE hMetaData, /* i/o: metadata bitstream handle */ IVAS_QMETADATA *q_metadata, /* i/o: metadata handle */ const int16_t masa_sid_descriptor, /* i : description of MASA SID coding structure*/ const int16_t ivas_format /* i : ivas format */ ); #endif /*! r: number of bits read */ int16_t ivas_qmetadata_dec_decode( Loading Loading @@ -4535,6 +4537,16 @@ uint16_t quantize_direction( const MC_LS_SETUP mc_format /* i : channel format if in MC-mode */ ); #ifdef IVAS_FLOAT_FIXED Word16 quantize_direction2D_fx( Word32 phi, /* i : input azimuth value Q22 */ const Word16 no_cw, /* i : number of bits */ Word32 *phi_q, /* o : quantized azimuth value Q22 */ UWord16 *index_phi, /* o : quantized azimuth index */ const MC_LS_SETUP mc_format /* i : channel format if in MC-mode */ ); #endif int16_t quantize_direction2D( float phi, /* i : input azimuth value */ const int16_t no_cw, /* i : number of bits */ Loading
lib_com/ivas_prot_fx.h +27 −0 Original line number Diff line number Diff line Loading @@ -3373,4 +3373,31 @@ void ivas_merge_masa_metadata_fx( MASA_ENCODER_HANDLE hMasa, /* i/o: MASA enc handle. source for MASA metadata and combined metadata will be here */ OMASA_SPATIAL_META_HANDLE hOMasaMeta /* i : ISM-object metadata to be merged with the MASA metadata */ ); /*! r: number of bits written */ void ivas_qmetadata_enc_sid_encode_fx( BSTR_ENC_HANDLE hMetaData, /* i/o: metadata bitstream handle */ IVAS_QMETADATA *q_metadata, /* i/o: metadata handle */ const Word16 masa_sid_descriptor, /* i : description of MASA SID coding structure*/ const Word16 ivas_format /* i : ivas format */ ); void ivas_param_mc_enc_fx( Encoder_Struct *st_ivas, /* i/o: IVAS Encoder handle */ BSTR_ENC_HANDLE hMetaData, /* i/o: IVAS Metadata bitstream handle */ Word32 *data_f_fx[], /* i/o: input/transport MC data Q11 */ const Word16 input_frame /* i : input frame length */ ); ivas_error stereo_dmx_evs_init_encoder_fx( STEREO_DMX_EVS_ENC_HANDLE *hStereoDmxEVS_out, /* o : Stereo downmix for EVS encoder handle */ const Word32 input_Fs /* i : input sampling rate */ ); void stereo_dmx_evs_enc_fx( STEREO_DMX_EVS_ENC_HANDLE hStereoDmxEVS, /* i/o: Stereo downmix for EVS encoder handle */ const Word32 input_Fs, /* i : input sampling rate */ Word16 data[CPE_CHANNELS * L_FRAME48k], /* i/o: input signal */ const Word16 n_samples, /* i : number of input samples */ const bool is_binaural /* i : indication that input is binaural audio */ ); #endif
lib_com/prot_fx.h +34 −29 Original line number Diff line number Diff line Loading @@ -6028,23 +6028,22 @@ void CNG_dec_fx( Word16 *lsp_new, /* i/o: current frame LSPs Q15 */ Word16 *lsf_new, /* i/o: current frame LSFs Qlog2(2.56) */ Word16 *allow_cn_step, /* o : allow CN step Q0 */ Word16 *sid_bw /* i : 0-NB/WB, 1-SWB SID */ , Word16 *sid_bw, /* i : 0-NB/WB, 1-SWB SID Q0 */ Word32 *q_env ); void swb_CNG_dec_fx( Decoder_State *st_fx, /* i/o: State structure */ const Word16 *synth_fx, /* i : ACELP core synthesis at 32kHz */ Word16 *shb_synth_fx, /* o : high-band CNG synthesis */ const Word16 sid_bw, /* i : 0-NB/WB, 1-SWB SID */ const Word16 *synth_fx, /* i : ACELP core synthesis at 32kHz Qsyn*/ Word16 *shb_synth_fx, /* o : high-band CNG synthesis Qx*/ const Word16 sid_bw, /* i : 0-NB/WB, 1-SWB SID Q0*/ const Word16 Qsyn /* i : Q value of ACELP core synthesis */ ); void swb_CNG_dec_ivas_fx( Decoder_State *st_fx, /* i/o: State structure */ const Word16 *synth_fx, /* i : ACELP core synthesis at 32kHz */ Word16 *shb_synth_fx, /* o : high-band CNG synthesis */ const Word16 sid_bw, /* i : 0-NB/WB, 1-SWB SID */ const Word16 *synth_fx, /* i : ACELP core synthesis at 32kHz Qsyn*/ Word16 *shb_synth_fx, /* o : high-band CNG synthesis Qx*/ const Word16 sid_bw, /* i : 0-NB/WB, 1-SWB SID Q0*/ const Word16 Qsyn /* i : Q value of ACELP core synthesis */ ); Loading Loading @@ -8198,11 +8197,11 @@ ivas_error ppp_quarter_decoder_fx( // core_dec_init_fx.c void open_decoder_LPD_fx( Decoder_State *st, const Word32 total_brate, const Word32 total_brate, /* Q0 */ #ifdef NEW_IVAS_OPEN_DEC const Word32 last_total_brate, #endif const Word16 bwidth const Word16 bwidth /* Q0 */ #ifdef NEW_IVAS_OPEN_DEC , const Word16 is_mct, /* i : MCT mode flag */ Loading @@ -8215,12 +8214,12 @@ void open_decoder_LPD_fx( #ifdef IVAS_FLOAT_FIXED void open_decoder_LPD_ivas_fx( Decoder_State *st, /* i/o: decoder state structure */ const Word32 total_brate, /* i : total bitrate */ const Word32 last_total_brate, /* i : last total bitrate */ const Word16 bwidth, /* i : audio bandwidth */ const Word16 MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ const Word16 last_element_mode, /* i : last element mode */ const Word16 is_init, /* i : indicate call from init_decoder() to avoid double TC initialization */ const Word32 total_brate, /* i : total bitrate Q0*/ const Word32 last_total_brate, /* i : last total bitrate Q0*/ const Word16 bwidth, /* i : audio bandwidth Q0*/ const Word16 MCT_flag, /* i : hMCT handle allocated (1) or not (0) Q0*/ const Word16 last_element_mode, /* i : last element mode Q0*/ const Word16 is_init, /* i : indicate call from init_decoder() to avoid double TC initialization Q0*/ Word16 *Q_syn_Overl_TDAC, Word16 *Q_fer_samples, Word16 *Q_syn_Overl, Loading @@ -8240,12 +8239,12 @@ void acelp_plc_mdct_transition_fx( void cldfb_reset_memory_fx( HANDLE_CLDFB_FILTER_BANK hs /* i/o: filter bank handle */ ); void tcxltp_dec_init_fx( TCX_LTP_DEC_HANDLE hTcxLtpDec, const Word16 ini_frame, const Word16 last_codec_mode, const Word16 element_mode, const Word16 pit_max, const Word32 sr_core ); TCX_LTP_DEC_HANDLE hTcxLtpDec, /* Q0 */ const Word16 ini_frame, /* Q0 */ const Word16 last_codec_mode, /* Q0 */ const Word16 element_mode, /* Q0 */ const Word16 pit_max, /* Q0 */ const Word32 sr_core ); /* Q0 */ // swb_bwe_dec_hr_fx.c Word16 swb_bwe_dec_hr_fx( Loading Loading @@ -9062,14 +9061,20 @@ Word16 RCcontextMapping_decode2_no_mem_s17_LCS_fx( ); // core_dec_reconf_fx.c void reconfig_decoder_LPD_fx( Decoder_State *st, Word16 bits_frame, Word16 bandwidth_mode, Word32 bitrate, Word16 L_frame_old ); void reconfig_decoder_LPD_fx( Decoder_State *st, /* i/o: decoder state structure */ Word16 bits_frame, /* i : bit budget Q0*/ Word16 bwidth, /* i : audio bandwidth Q0*/ Word32 total_brate, /* i : total bitrate Q0*/ Word16 L_frame_old /* i : frame length Q0*/ ); #ifdef IVAS_FLOAT_FIXED void reconfig_decoder_LPD_ivas_fx( Decoder_State *st, /* i/o: decoder state structure */ const Word16 bits_frame, /* i : bit budget */ const Word16 bwidth, /* i : audio bandwidth */ const Word32 total_brate, /* i : total bitrate */ const Word16 L_frame_old /* i : frame length */ const Word16 bits_frame, /* i : bit budget Q0*/ const Word16 bwidth, /* i : audio bandwidth Q0*/ const Word32 total_brate, /* i : total bitrate Q0*/ const Word16 L_frame_old /* i : frame length Q0*/ ); #endif // IVAS_FLOAT_FIXED Loading