Loading lib_com/cldfb_fx.c +17 −23 Original line number Diff line number Diff line Loading @@ -558,12 +558,9 @@ void cldfbAnalysis_ts_fx( } void cldfbAnalysis_ts_fx_var_q( const Word32 *timeIn_fx, /* i : time buffer */ // q Word32 realBuffer_fx[CLDFB_NO_CHANNELS_MAX], /* o : real value buffer */ // q_cldfb - 5 Word32 imagBuffer_fx[CLDFB_NO_CHANNELS_MAX], /* o : imag value buffer */ // q_cldfb - 5 const Word32 *timeIn_fx, /* i : time buffer q */ Word32 realBuffer_fx[CLDFB_NO_CHANNELS_MAX], /* o : real value buffer q_cldfb - 5 */ Word32 imagBuffer_fx[CLDFB_NO_CHANNELS_MAX], /* o : imag value buffer q_cldfb - 5 */ const Word16 samplesToProcess, /* i : samples to process */ HANDLE_CLDFB_FILTER_BANK h_cldfb, /* i : filterbank state */ Word16 *q_cldfb ) Loading Loading @@ -819,12 +816,9 @@ void cldfbAnalysis_ts_fx_var_q( void cldfbAnalysis_ts_fx_fixed_q( const Word32 *timeIn_fx, /* i : time buffer */ // q Word32 realBuffer_fx[CLDFB_NO_CHANNELS_MAX], /* o : real value buffer */ // q - 5 Word32 imagBuffer_fx[CLDFB_NO_CHANNELS_MAX], /* o : imag value buffer */ // q - 5 const Word32 *timeIn_fx, /* i : time buffer q */ Word32 realBuffer_fx[CLDFB_NO_CHANNELS_MAX], /* o : real value buffer q - 5 */ Word32 imagBuffer_fx[CLDFB_NO_CHANNELS_MAX], /* o : imag value buffer q - 5 */ const Word16 samplesToProcess, /* i : samples to process */ HANDLE_CLDFB_FILTER_BANK h_cldfb, /* i : filterbank state */ Word16 *q_cldfb ) Loading lib_com/ivas_cnst.h +2 −2 Original line number Diff line number Diff line Loading @@ -64,8 +64,8 @@ #define OFF_C_ADP_RATE_Q31 ( 268435456 ) // Q31 #define C_ADP_RATE_Q31 ( 71582792 ) // Q31 #define SQRT2_FIXED 1518500250 /* 1.414213562373095f in Q30 */ #define SQRT2_OVER_2_FIXED 1518500250 /* (SQRT2 / 2.0f) in Q31 */ #define SQRT2_FX 1518500250 /* 1.414213562373095f in Q30 */ #define SQRT2_OVER_2_FX 1518500250 /* (SQRT2 / 2.0f) in Q31 */ #define INV_SQRT2_FX 1518500224 /* 1/sqrt(2) in Q31 */ #define INV_SQRT2_FX_Q15 23170 /* 1/sqrt(2) Q15 */ #define INV_SQRT3_FX 18918 /* 1/sqrt(3) Q15 */ Loading lib_com/ivas_dirac_com_fx.c +17 −8 Original line number Diff line number Diff line Loading @@ -498,6 +498,7 @@ void ivas_get_dirac_sba_max_md_bits_fx( return; } /*------------------------------------------------------------------------- * ivas_dirac_sba_config() * Loading Loading @@ -594,14 +595,19 @@ ivas_error ivas_dirac_sba_config_fx( } } ivas_get_dirac_sba_max_md_bits_fx( sba_total_brate, &hQMetaData->bits_frame_nominal, &hQMetaData->metadata_max_bits, &hQMetaData->qmetadata_max_bit_req, hQMetaData->q_direction[0].cfg.nbands, ivas_format ); ivas_get_dirac_sba_max_md_bits_fx( sba_total_brate, &hQMetaData->bits_frame_nominal, &hQMetaData->metadata_max_bits, &hQMetaData->qmetadata_max_bit_req, hQMetaData->q_direction[0].cfg.nbands, ivas_format ); return error; } void computeDirectionVectors_fixed( /*------------------------------------------------------------------------- * computeDirectionVectors() * * *------------------------------------------------------------------------*/ void computeDirectionVectors_fx2( Word32 *intensity_real_x, /* i: exp = i_e */ Word32 *intensity_real_y, /* i: exp = i_e */ Word32 *intensity_real_z, /* i: exp = i_e */ Loading @@ -621,6 +627,7 @@ void computeDirectionVectors_fixed( Word16 norm_x, norm_y, norm_z; Word32 scaled_x, scaled_y, scaled_z; Word16 e_x, e_y, e_z; FOR( i = enc_param_start_band; i < enc_param_start_band + num_frequency_bands; ++i ) { norm_x = norm_l( *intensity_real_x ); Loading Loading @@ -676,11 +683,7 @@ void computeDirectionVectors_fixed( return; } /*------------------------------------------------------------------------- * computeDirectionVectors() * * *------------------------------------------------------------------------*/ void computeDirectionVectors_fx( Word32 *intensity_real_x, // i: Q( i_q ) Loading Loading @@ -710,6 +713,7 @@ void computeDirectionVectors_fx( Word32 *init_x = intensity_real_x; Word32 *init_y = intensity_real_y; Word32 *init_z = intensity_real_z; // First loop to determine the Q for the direction vector FOR( i = enc_param_start_band; i < enc_param_start_band + num_frequency_bands; ++i ) { Loading Loading @@ -737,6 +741,7 @@ void computeDirectionVectors_fx( intensity_real_x = init_x; intensity_real_y = init_y; intensity_real_z = init_z; // Actual processing loop for the direction vector FOR( i = enc_param_start_band; i < enc_param_start_band + num_frequency_bands; ++i ) { Loading Loading @@ -776,9 +781,11 @@ void computeDirectionVectors_fx( } *i_q = min_factor; move16(); return; } /*------------------------------------------------------------------------- * computeDiffuseness() * Loading Loading @@ -1030,6 +1037,7 @@ Word32 deindex_azimuth_fx( } phi_hat_fx = companding_azimuth_fx( phi_hat_fx, mc_format, flag, -1 ); } return phi_hat_fx; } Loading Loading @@ -1091,6 +1099,7 @@ void deindex_spherical_component_fx( return; } /*---------------------------------------------------------------- * calculate_hodirac_sector_parameters() * Loading lib_com/ivas_pca_tools_fx.c +4 −5 Original line number Diff line number Diff line Loading @@ -195,7 +195,7 @@ static void house_refl_fx( IF( ( *normu_fx ) == 0 ) { pu_fx[0] = SQRT2_FIXED; // same q as other elements -> Q30 pu_fx[0] = SQRT2_FX; // same q as other elements -> Q30 pu_e[0] = 1; move32(); move16(); Loading Loading @@ -387,8 +387,7 @@ static void house_qr_fx( move32(); } pv_fx[s - k] = dotp_fixed( &pu_fx[k], &pa_fx[k], sub( n_rows, k ) ); // exp: tmp_pu_e[k] pv_fx[s - k] = dotp_fx32( &pu_fx[k], &pa_fx[k], sub( n_rows, k ) ); // exp: tmp_pu_e[k] pv_exp[s - k] = tmp_pu_e[k]; move32(); move16(); Loading Loading @@ -444,7 +443,7 @@ void eig_qr_fx( move16(); /* check zero matrix */ d_fx = dotp_fixed( A_fx, A_fx, n * n ); // A_q + A_q - Q31 -> d_q d_fx = dotp_fx32( A_fx, A_fx, n * n ); // A_q + A_q - Q31 -> d_q d_q = sub( add( A_q, A_q ), 31 ); if ( d_fx != 0 ) Loading Loading @@ -480,7 +479,7 @@ void eig_qr_fx( } /* stop condition */ d_fx = dotp_fixed_guarded( D_fx, D_fx, n * n ); // ( A_q + A_q - 31 ) - find_guarded_bits_fx( n * n ) d_fx = dotp_fx_guarded( D_fx, D_fx, n * n ); // ( A_q + A_q - 31 ) - find_guarded_bits_fx( n * n ) d_q = sub( sub( add( A_q, A_q ), 31 ), find_guarded_bits_fx( n * n ) ); exp = sub( 31, d_q ); d_fx = Sqrt32( d_fx, &exp ); Loading lib_com/ivas_prot_fx.h +6 −6 Original line number Diff line number Diff line Loading @@ -321,7 +321,7 @@ void ivas_td_decorr_get_ducking_gains_fx( const Word16 tdet_flag ); void ECSQ_decode( void ECSQ_decode_fx( ECSQ_instance *ecsq_inst, const Word16 N, Word16 *output Loading Loading @@ -483,7 +483,7 @@ void IGFDecReplicateTCX10State_fx( IGF_DEC_INSTANCE_HANDLE hIGFDec /* i/o: instance handle of IGF Decoder */ ); Word16 get_igf_startline( Word16 get_igf_startline_fx( Decoder_State *st, /* i : decoder state */ const Word16 L_frame, /* i : length of the frame */ const Word16 L_frameTCX /* i : full band frame length */ Loading Loading @@ -3325,7 +3325,7 @@ void computeDiffuseness_mdft_fx( Word16 *q_diffuseness /*Ouput Q*/ ); void computeDirectionVectors_fixed( void computeDirectionVectors_fx2( Word32 *intensity_real_x, Word32 *intensity_real_y, Word32 *intensity_real_z, Loading Loading @@ -3829,7 +3829,7 @@ void panning_wrap_angles_fx( Word32 *ele_wrapped /* o : wrapped elevation component Q22 */ ); void v_sort_ind_fixed( void v_sort_ind_fx( Word32 *x, /* i/o: Vector to be sorted */ Word16 *idx, /* o : Original index positions */ const Word16 len /* i : vector length */ Loading Loading @@ -5005,7 +5005,7 @@ Word16 ivas_sba_remapTCs_fx( const Word16 output_frame /* i : frame length */ ); void ivas_sba2mc_cldfb_fixed( void ivas_sba2mc_cldfb_fx( IVAS_OUTPUT_SETUP hInSetup, /* i : Format of input layout */ Word32 RealBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o: cldfb real part (Q_real) */ Word32 ImagBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o: cldfb imag part (Q_imag) */ Loading Loading @@ -5104,7 +5104,7 @@ void ivas_mc_paramupmix_enc_fx( const Word16 input_frame /* i : input frame length */ ); void ivas_mc_paramupmix_dec_render( void ivas_mc_paramupmix_dec_render_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 */ Loading Loading
lib_com/cldfb_fx.c +17 −23 Original line number Diff line number Diff line Loading @@ -558,12 +558,9 @@ void cldfbAnalysis_ts_fx( } void cldfbAnalysis_ts_fx_var_q( const Word32 *timeIn_fx, /* i : time buffer */ // q Word32 realBuffer_fx[CLDFB_NO_CHANNELS_MAX], /* o : real value buffer */ // q_cldfb - 5 Word32 imagBuffer_fx[CLDFB_NO_CHANNELS_MAX], /* o : imag value buffer */ // q_cldfb - 5 const Word32 *timeIn_fx, /* i : time buffer q */ Word32 realBuffer_fx[CLDFB_NO_CHANNELS_MAX], /* o : real value buffer q_cldfb - 5 */ Word32 imagBuffer_fx[CLDFB_NO_CHANNELS_MAX], /* o : imag value buffer q_cldfb - 5 */ const Word16 samplesToProcess, /* i : samples to process */ HANDLE_CLDFB_FILTER_BANK h_cldfb, /* i : filterbank state */ Word16 *q_cldfb ) Loading Loading @@ -819,12 +816,9 @@ void cldfbAnalysis_ts_fx_var_q( void cldfbAnalysis_ts_fx_fixed_q( const Word32 *timeIn_fx, /* i : time buffer */ // q Word32 realBuffer_fx[CLDFB_NO_CHANNELS_MAX], /* o : real value buffer */ // q - 5 Word32 imagBuffer_fx[CLDFB_NO_CHANNELS_MAX], /* o : imag value buffer */ // q - 5 const Word32 *timeIn_fx, /* i : time buffer q */ Word32 realBuffer_fx[CLDFB_NO_CHANNELS_MAX], /* o : real value buffer q - 5 */ Word32 imagBuffer_fx[CLDFB_NO_CHANNELS_MAX], /* o : imag value buffer q - 5 */ const Word16 samplesToProcess, /* i : samples to process */ HANDLE_CLDFB_FILTER_BANK h_cldfb, /* i : filterbank state */ Word16 *q_cldfb ) Loading
lib_com/ivas_cnst.h +2 −2 Original line number Diff line number Diff line Loading @@ -64,8 +64,8 @@ #define OFF_C_ADP_RATE_Q31 ( 268435456 ) // Q31 #define C_ADP_RATE_Q31 ( 71582792 ) // Q31 #define SQRT2_FIXED 1518500250 /* 1.414213562373095f in Q30 */ #define SQRT2_OVER_2_FIXED 1518500250 /* (SQRT2 / 2.0f) in Q31 */ #define SQRT2_FX 1518500250 /* 1.414213562373095f in Q30 */ #define SQRT2_OVER_2_FX 1518500250 /* (SQRT2 / 2.0f) in Q31 */ #define INV_SQRT2_FX 1518500224 /* 1/sqrt(2) in Q31 */ #define INV_SQRT2_FX_Q15 23170 /* 1/sqrt(2) Q15 */ #define INV_SQRT3_FX 18918 /* 1/sqrt(3) Q15 */ Loading
lib_com/ivas_dirac_com_fx.c +17 −8 Original line number Diff line number Diff line Loading @@ -498,6 +498,7 @@ void ivas_get_dirac_sba_max_md_bits_fx( return; } /*------------------------------------------------------------------------- * ivas_dirac_sba_config() * Loading Loading @@ -594,14 +595,19 @@ ivas_error ivas_dirac_sba_config_fx( } } ivas_get_dirac_sba_max_md_bits_fx( sba_total_brate, &hQMetaData->bits_frame_nominal, &hQMetaData->metadata_max_bits, &hQMetaData->qmetadata_max_bit_req, hQMetaData->q_direction[0].cfg.nbands, ivas_format ); ivas_get_dirac_sba_max_md_bits_fx( sba_total_brate, &hQMetaData->bits_frame_nominal, &hQMetaData->metadata_max_bits, &hQMetaData->qmetadata_max_bit_req, hQMetaData->q_direction[0].cfg.nbands, ivas_format ); return error; } void computeDirectionVectors_fixed( /*------------------------------------------------------------------------- * computeDirectionVectors() * * *------------------------------------------------------------------------*/ void computeDirectionVectors_fx2( Word32 *intensity_real_x, /* i: exp = i_e */ Word32 *intensity_real_y, /* i: exp = i_e */ Word32 *intensity_real_z, /* i: exp = i_e */ Loading @@ -621,6 +627,7 @@ void computeDirectionVectors_fixed( Word16 norm_x, norm_y, norm_z; Word32 scaled_x, scaled_y, scaled_z; Word16 e_x, e_y, e_z; FOR( i = enc_param_start_band; i < enc_param_start_band + num_frequency_bands; ++i ) { norm_x = norm_l( *intensity_real_x ); Loading Loading @@ -676,11 +683,7 @@ void computeDirectionVectors_fixed( return; } /*------------------------------------------------------------------------- * computeDirectionVectors() * * *------------------------------------------------------------------------*/ void computeDirectionVectors_fx( Word32 *intensity_real_x, // i: Q( i_q ) Loading Loading @@ -710,6 +713,7 @@ void computeDirectionVectors_fx( Word32 *init_x = intensity_real_x; Word32 *init_y = intensity_real_y; Word32 *init_z = intensity_real_z; // First loop to determine the Q for the direction vector FOR( i = enc_param_start_band; i < enc_param_start_band + num_frequency_bands; ++i ) { Loading Loading @@ -737,6 +741,7 @@ void computeDirectionVectors_fx( intensity_real_x = init_x; intensity_real_y = init_y; intensity_real_z = init_z; // Actual processing loop for the direction vector FOR( i = enc_param_start_band; i < enc_param_start_band + num_frequency_bands; ++i ) { Loading Loading @@ -776,9 +781,11 @@ void computeDirectionVectors_fx( } *i_q = min_factor; move16(); return; } /*------------------------------------------------------------------------- * computeDiffuseness() * Loading Loading @@ -1030,6 +1037,7 @@ Word32 deindex_azimuth_fx( } phi_hat_fx = companding_azimuth_fx( phi_hat_fx, mc_format, flag, -1 ); } return phi_hat_fx; } Loading Loading @@ -1091,6 +1099,7 @@ void deindex_spherical_component_fx( return; } /*---------------------------------------------------------------- * calculate_hodirac_sector_parameters() * Loading
lib_com/ivas_pca_tools_fx.c +4 −5 Original line number Diff line number Diff line Loading @@ -195,7 +195,7 @@ static void house_refl_fx( IF( ( *normu_fx ) == 0 ) { pu_fx[0] = SQRT2_FIXED; // same q as other elements -> Q30 pu_fx[0] = SQRT2_FX; // same q as other elements -> Q30 pu_e[0] = 1; move32(); move16(); Loading Loading @@ -387,8 +387,7 @@ static void house_qr_fx( move32(); } pv_fx[s - k] = dotp_fixed( &pu_fx[k], &pa_fx[k], sub( n_rows, k ) ); // exp: tmp_pu_e[k] pv_fx[s - k] = dotp_fx32( &pu_fx[k], &pa_fx[k], sub( n_rows, k ) ); // exp: tmp_pu_e[k] pv_exp[s - k] = tmp_pu_e[k]; move32(); move16(); Loading Loading @@ -444,7 +443,7 @@ void eig_qr_fx( move16(); /* check zero matrix */ d_fx = dotp_fixed( A_fx, A_fx, n * n ); // A_q + A_q - Q31 -> d_q d_fx = dotp_fx32( A_fx, A_fx, n * n ); // A_q + A_q - Q31 -> d_q d_q = sub( add( A_q, A_q ), 31 ); if ( d_fx != 0 ) Loading Loading @@ -480,7 +479,7 @@ void eig_qr_fx( } /* stop condition */ d_fx = dotp_fixed_guarded( D_fx, D_fx, n * n ); // ( A_q + A_q - 31 ) - find_guarded_bits_fx( n * n ) d_fx = dotp_fx_guarded( D_fx, D_fx, n * n ); // ( A_q + A_q - 31 ) - find_guarded_bits_fx( n * n ) d_q = sub( sub( add( A_q, A_q ), 31 ), find_guarded_bits_fx( n * n ) ); exp = sub( 31, d_q ); d_fx = Sqrt32( d_fx, &exp ); Loading
lib_com/ivas_prot_fx.h +6 −6 Original line number Diff line number Diff line Loading @@ -321,7 +321,7 @@ void ivas_td_decorr_get_ducking_gains_fx( const Word16 tdet_flag ); void ECSQ_decode( void ECSQ_decode_fx( ECSQ_instance *ecsq_inst, const Word16 N, Word16 *output Loading Loading @@ -483,7 +483,7 @@ void IGFDecReplicateTCX10State_fx( IGF_DEC_INSTANCE_HANDLE hIGFDec /* i/o: instance handle of IGF Decoder */ ); Word16 get_igf_startline( Word16 get_igf_startline_fx( Decoder_State *st, /* i : decoder state */ const Word16 L_frame, /* i : length of the frame */ const Word16 L_frameTCX /* i : full band frame length */ Loading Loading @@ -3325,7 +3325,7 @@ void computeDiffuseness_mdft_fx( Word16 *q_diffuseness /*Ouput Q*/ ); void computeDirectionVectors_fixed( void computeDirectionVectors_fx2( Word32 *intensity_real_x, Word32 *intensity_real_y, Word32 *intensity_real_z, Loading Loading @@ -3829,7 +3829,7 @@ void panning_wrap_angles_fx( Word32 *ele_wrapped /* o : wrapped elevation component Q22 */ ); void v_sort_ind_fixed( void v_sort_ind_fx( Word32 *x, /* i/o: Vector to be sorted */ Word16 *idx, /* o : Original index positions */ const Word16 len /* i : vector length */ Loading Loading @@ -5005,7 +5005,7 @@ Word16 ivas_sba_remapTCs_fx( const Word16 output_frame /* i : frame length */ ); void ivas_sba2mc_cldfb_fixed( void ivas_sba2mc_cldfb_fx( IVAS_OUTPUT_SETUP hInSetup, /* i : Format of input layout */ Word32 RealBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o: cldfb real part (Q_real) */ Word32 ImagBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o: cldfb imag part (Q_imag) */ Loading Loading @@ -5104,7 +5104,7 @@ void ivas_mc_paramupmix_enc_fx( const Word16 input_frame /* i : input frame length */ ); void ivas_mc_paramupmix_dec_render( void ivas_mc_paramupmix_dec_render_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 */ Loading