Loading Workspace_msvc/lib_com.vcxproj +1 −0 Original line number Diff line number Diff line Loading @@ -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" /> Loading Workspace_msvc/lib_com.vcxproj.filters +2 −0 Original line number Diff line number Diff line Loading @@ -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"> Loading lib_com/cnst.h +3 −4 Original line number Diff line number Diff line Loading @@ -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 */ Loading Loading @@ -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() */ Loading Loading @@ -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) Loading Loading @@ -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 Loading lib_com/ivas_cnst.h +3 −1 Original line number Diff line number Diff line Loading @@ -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 Loading lib_com/ivas_prot.h +69 −3 Original line number Diff line number Diff line Loading @@ -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 */ ); Loading Loading @@ -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 */ Loading Loading @@ -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, Loading @@ -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 *----------------------------------------------------------------------------------*/ Loading Loading @@ -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 */ Loading @@ -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 */ Loading @@ -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 */ Loading Loading @@ -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 Loading Loading @@ -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 Loading
Workspace_msvc/lib_com.vcxproj +1 −0 Original line number Diff line number Diff line Loading @@ -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" /> Loading
Workspace_msvc/lib_com.vcxproj.filters +2 −0 Original line number Diff line number Diff line Loading @@ -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"> Loading
lib_com/cnst.h +3 −4 Original line number Diff line number Diff line Loading @@ -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 */ Loading Loading @@ -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() */ Loading Loading @@ -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) Loading Loading @@ -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 Loading
lib_com/ivas_cnst.h +3 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
lib_com/ivas_prot.h +69 −3 Original line number Diff line number Diff line Loading @@ -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 */ ); Loading Loading @@ -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 */ Loading Loading @@ -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, Loading @@ -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 *----------------------------------------------------------------------------------*/ Loading Loading @@ -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 */ Loading @@ -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 */ Loading @@ -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 */ Loading Loading @@ -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 Loading Loading @@ -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