List of observations on basop implementation
Hi @venkateshsa, here is a list of different observations made in the last week (maybe some have been corrected already). I tried to regroup them into different categories as:
- Unnecessary code duplication
- Functions that are only partially in fixed point
- Usage of functions/files that are in integer BUT not converted with basop (or lots of basop is missing)
- Functions where move are missing
If they have been corrected or modified, the box can be checked such that we know. @norvell, given we are stating the verification phase, maybe that ticket could be used to track new similar "problems" found in the code as the list can be expand to add new items.
- Unnecessary code duplication
-
Hilbert_transform_fx_32 seems identical to Hilbert_transform_fx -
hp400_12k8_fx and hp400_12k8_ivas_fx are the same except the filter coefficient, should be possible to merge them -
set_val_Word32 can be replaced with set32_fx -
set_val_Word16 can be replaced with set16_fx -
mvr2r_Word32 can be replace with Copy32
-
- Functions that are only partially in fixed point
-
cldfbAnalysis_ts_fx_fixed_q -
hp20_fix32 -
lls_interp_n_fx -
tdm_bit_alloc() -
deindex_lvq_SHB_fx() -
ivas_imdft_fx() -
stereo_dft_dec_analyze_fx
-
- Functions or files that are not converted with basop (math is done in integer, but lots of basop missing)
-
functions -
mvs2s -
mvl2s_r -
mvl2l -
set_s -
set_l -
squant_int -
sort -
anint_fixed -
ceil_fixed -
tdm_configure_dec -
tdm_bit_alloc -
v_add_16 -
floor_log_2() -
rc_uni_dec_read_symbol_fastS_fx -
rc_uni_dec_read_bit_prob_fast -
rc_uni_dec_update_fx -
rc_uni_dec_read_bit -
config_acelp1_IVAS
-
-
files -
bits_alloc_fx.c : all the functions needs fix point conversion
-
-
- Function where move and/or IF conditions are missing
-
maximum_l -
minimum_l -
v_add_fixed -
v_add_fixed_me -
v_add_w64 -
v_sub_fixed -
v_mult_fixed -
v_multc_fixed -
v_multc_fixed_16 -
v_multc_fixed_16_16 -
v_sub_16 -
v_add_16 -
v_sub_s16_fx -
v_sub_32 -
v_shr_32 -
v_add_32 -
sort_l -
ivas_rend_crendConvolver -
Decimate_allpass_steep_fx32 -
Interpolate_allpass_steep_32 -
reverb_block_fx -
ivas_core_dec at least moves are missing -
acelp_core_dec_ivas_fx. if/else conditions and moves are missing -
div_w : move and IF/ELSE FOR -
formulate2x2MixingMatrix_fx : moves inside loop are sometime missing -
ivas_dirac_dec_binaural_process_output_fx -
ivas_rend_crendConvolver -
stereo_dft_generate_comfort_noise_fx -
ECSQ_dequantize_vector_fx -
rc_uni_dec_init_fx -
ECSQ_decode
-
- Basop not needed
-
FOR( i = 0; LT_16( i, N ); i++ )
-
Edited by Sandesh Venkatesh