Reduced complexity 32 by 32 bit div
The proposal is to have lightweight version of BASOP_Util_Divide3232_Scale_cadence()
function.
This addresses precision vs complexity trade off. Here, division is computed in 26 iterations (or nbits) instead of fixed 32 iterations.
This results in complexity reduction of division by factor of 0.56x w.r.t. existing version.
Testcase : ./IVAS_dec -fr 20 BINAURAL_ROOM_IR 48 stv1MASA2TC48c.wav_MASA_1dir_2TC_at_32_kbps_48kHz_in_48kHz_out_BINAURAL_ROOM_IR_out.192 stv1MASA2TC48c.wav_MASA_1dir_2TC_at_32_kbps_48kHz_in_48kHz_out_BINAURAL_ROOM_IR_out.dec.1.wav
Impact : Original : --- Complexity analysis [WMOPS] ---
|------ SELF ------| |--- CUMULATIVE ---|
routine calls min max avg min max avg
--------------- ------ ------ ------ ------ ------ ------ ------
ivas_jbm_dec_tc 1.00 7.133 7.302 7.214 50.216 74.031 65.693
ivas_cpe_dec 1.00 7.103 13.796 8.760 43.064 66.870 58.479
residual_decode 1.00 0.149 0.267 0.236 0.149 0.267 0.236
ivas_core_dec 1.00 3.509 24.768 21.412 26.665 45.046 41.274
acelp_core_dec 0.86 13.253 17.116 16.150 13.253 17.116 16.150
DFT_analysis 3.86 3.610 5.918 3.878 3.657 5.953 3.923
Cadence div 4744.84 56.586 59.979 59.045 56.586 59.979 59.045
gen_respred 2.00 0.092 0.846 0.462 0.092 0.846 0.462
DFT_synthesis 2.00 6.940 6.940 6.940 6.940 6.940 6.940
ivas_jbm_dec_feed_tc_to_rendererer 1.00 0.039 0.039 0.039 0.039 0.039 0.039
ivas_dec_render 1.00 90.383 90.847 90.649 181.634 186.544 183.941
binaural_reverb 4.00 16.667 16.667 16.667 16.667 16.667 16.667
dirac_decorr_process 16.00 16.604 20.476 17.625 16.604 20.476 17.625
stereo_tcx_core_dec 0.14 18.697 22.842 20.530 18.697 22.842 20.530
--------------- ------ ------ ------ ------
total 300.00 233.863 258.150 249.673
With proposed modifications :
--- Complexity analysis [WMOPS] ---
|------ SELF ------| |--- CUMULATIVE ---|
routine calls min max avg min max avg
--------------- ------ ------ ------ ------ ------ ------ ------
ivas_jbm_dec_tc 1.00 7.133 7.302 7.214 50.200 74.010 65.672
ivas_cpe_dec 1.00 7.103 13.796 8.760 43.048 66.849 58.458
residual_decode 1.00 0.149 0.267 0.236 0.149 0.267 0.236
ivas_core_dec 1.00 3.509 24.768 21.412 26.655 45.029 41.258
acelp_core_dec 0.86 13.253 17.116 16.150 13.253 17.116 16.150
DFT_analysis 3.86 3.610 5.918 3.878 3.635 5.937 3.902
Cadence div 4744.81 32.046 34.020 33.484 32.046 34.020 33.484
gen_respred 2.00 0.092 0.846 0.462 0.092 0.846 0.462
DFT_synthesis 2.00 6.940 6.940 6.940 6.940 6.940 6.940
ivas_jbm_dec_feed_tc_to_rendererer 1.00 0.039 0.039 0.039 0.039 0.039 0.039
ivas_dec_render 1.00 90.383 90.848 90.649 156.809 160.962 158.401
binaural_reverb 4.00 16.667 16.667 16.667 16.667 16.667 16.667
dirac_decorr_process 16.00 16.604 20.476 17.625 16.604 20.476 17.625
stereo_tcx_core_dec 0.14 18.697 22.842 20.530 18.697 22.842 20.530
--------------- ------ ------ ------ ------