Resolve "[Complexity] Optimize ivas_dirac_dec_decorr_process_fx()"
Closes #1110 (closed). The proposed optimization is not BE, however the differences are small.
For the testcase described in #1010 (closed):
Without optimization:
--- Complexity analysis [WMOPS] ---
|------ SELF ------| |--- CUMULATIVE ---|
routine calls min max avg min max avg
--------------- ------ ------ ------ ------ ------ ------ ------
ivas_jbm_dec_tc 1.00 24.500 24.720 24.536 93.301 109.553 103.716
param_mc_read_bs 1.00 0.922 0.973 0.939 0.922 0.973 0.939
ivas_mct_dec 1.00 41.789 53.174 48.838 67.788 84.086 78.240
ivas_cpe_dec 2.00 1.986 2.178 1.987 4.123 4.264 4.124
ivas_core_dec 2.00 2.086 2.138 2.137 2.086 2.138 2.137
mdct_core_invQ 2.00 9.167 10.982 10.150 9.167 10.982 10.150
mct_decoding 1.00 9.610 19.220 15.128 9.610 19.220 15.128
ivas_jbm_dec_feed_tc_to_rendererer 1.00 0.357 0.357 0.357 615.076 741.400 681.734
param_mc_dec_digest_tc 1.00 18.633 28.346 27.771 614.720 741.043 681.377
dirac_cov_mix_mat 14.00 33.666 33.722 33.699 242.244 294.582 269.790
svd_fx 64.00 513.440 639.615 580.525 513.440 639.615 580.525
dirac_cov_mix_mat_r 11.00 39.300 39.442 39.382 344.135 422.395 383.816
ivas_dec_render 1.00 14.447 15.068 15.058 464.341 510.863 494.078
param_mc_dec_render 1.00 267.197 267.251 267.234 449.894 495.822 479.020
dirac_decorr_process 16.00 182.664 228.587 211.786 182.664 228.587 211.786
--------------- ------ ------ ------ ------
total 150.00 1210.179 1340.109 1279.527
Including the implemented optimization:
--- Complexity analysis [WMOPS] ---
|------ SELF ------| |--- CUMULATIVE ---|
routine calls min max avg min max avg
--------------- ------ ------ ------ ------ ------ ------ ------
ivas_jbm_dec_tc 1.00 24.500 24.720 24.536 93.301 109.553 103.716
param_mc_read_bs 1.00 0.922 0.973 0.939 0.922 0.973 0.939
ivas_mct_dec 1.00 41.789 53.174 48.838 67.788 84.086 78.240
ivas_cpe_dec 2.00 1.986 2.178 1.987 4.123 4.264 4.124
ivas_core_dec 2.00 2.086 2.138 2.137 2.086 2.138 2.137
mdct_core_invQ 2.00 9.167 10.982 10.150 9.167 10.982 10.150
mct_decoding 1.00 9.610 19.220 15.128 9.610 19.220 15.128
ivas_jbm_dec_feed_tc_to_rendererer 1.00 0.357 0.357 0.357 615.076 741.400 681.734
param_mc_dec_digest_tc 1.00 18.633 28.346 27.771 614.720 741.043 681.377
dirac_cov_mix_mat 14.00 33.666 33.722 33.699 242.244 294.582 269.790
svd_fx 64.00 513.440 639.615 580.525 513.440 639.615 580.525
dirac_cov_mix_mat_r 11.00 39.300 39.442 39.382 344.135 422.395 383.816
ivas_dec_render 1.00 14.447 15.068 15.058 385.550 411.083 391.899
param_mc_dec_render 1.00 267.196 267.251 267.234 370.491 396.042 376.841
dirac_decorr_process 16.00 103.281 128.807 109.607 103.281 128.807 109.607
--------------- ------ ------ ------ ------
total 150.00 1111.926 1239.172 1177.348
It saves approx. 100 WMOPS.
According to the pipelines, the max. diff is +/- 3 on the 16 bit PCM scale [-32768;32767[.
Edited by multrus