Complexity: High Complexity Overhead for ParamMC decoding
# Basic info - Encoder (float): 05925728e844a0b80b90cbb72bab08ab57e15b1a - Decoder: 38597c3310b8220e8dfd58e28139a653a3d1e750 # Bug description Decoding of 7.1.4 for ParamMC exhibits a high complexity overhead compared to float. Overall complexity | | BASOP | Float | |--|-------|-------| | WMOPS max. | 1341.750 | 338.559 | | WMOPS min. | 1211.355 | 310.099 | | WMOPS avg. | 1281.323 | 326.790 | Seems that the main culprits are svd, param_mc_dec_render and dirac_decorr_process: | | BASOP | Float | |--|-------|-------| | svd | 639.624 | 93.648 | | param_mc_dec_render | 267.259 | 90.318 | | dirac_decorr_process | 230.343 | 52.627 | Full printout Float: ``` |------ SELF ------| |--- CUMULATIVE ---| routine calls min max avg min max avg --------------- ------ ------ ------ ------ ------ ------ ------ ivas_jbm_dec_tc 1.00 18.891 18.891 18.891 59.448 77.968 71.371 param_mc_read_bs 1.00 1.342 1.429 1.378 1.342 1.429 1.378 ivas_mct_dec 1.00 22.562 34.625 29.780 39.144 57.715 51.102 ivas_cpe_dec 2.00 0.106 0.107 0.106 0.990 1.037 1.036 ivas_core_dec 2.00 0.883 0.931 0.930 0.883 0.931 0.930 mdct_core_invQ 2.00 9.161 11.758 10.779 9.161 11.758 10.779 mct_decoding 1.00 3.649 13.618 9.508 3.649 13.618 9.508 ivas_jbm_dec_feed_tc_to_rendererer 1.00 0.007 0.007 0.007 90.074 114.130 102.862 param_mc_dec_digest_tc 1.00 6.542 9.319 9.180 90.067 114.123 102.855 dirac_cov_mix_mat 14.00 6.206 6.209 6.207 34.099 44.136 39.421 svd 64.00 69.497 93.648 82.423 69.497 93.648 82.423 dirac_cov_mix_mat_r 11.00 5.044 5.045 5.044 46.310 61.087 54.253 ivas_dec_render 1.00 13.432 13.438 13.434 151.479 156.381 152.422 param_mc_dec_render 1.00 90.318 90.318 90.318 138.046 142.945 138.989 dirac_decorr_process 16.00 47.728 52.627 48.671 47.728 52.627 48.671 --------------- ------ ------ ------ ------ total 150.00 310.099 338.559 326.790 ``` Full printout BASOP: ``` Weighted MOPS Analysis: |------ SELF ------| |--- CUMULATIVE ---| routine calls/fr min max avg min max avg ------------------------ ------ ------ ------ ------ ------ ------ ------ ivas_jbm_dec_tc 1.00 24.515 24.735 24.551 93.151 109.647 103.730 param_mc_read_bs 1.00 0.922 0.975 0.939 0.922 0.975 0.939 ivas_mct_dec 1.00 41.622 53.147 48.838 67.622 84.167 78.240 ivas_cpe_dec 2.00 1.986 2.178 1.987 2.061 2.132 2.062 ivas_core_dec 2.00 2.087 2.139 2.138 1.044 1.069 1.069 mdct_core_invQ 2.00 9.167 10.983 10.150 2.330 3.757 3.067 mct_decoding 1.00 9.610 19.220 15.127 9.610 19.220 15.127 ivas_jbm_dec_feed_tc_to_rendererer 1.00 0.357 0.357 0.357 615.093 741.416 681.751 param_mc_dec_digest_tc 1.00 18.642 28.350 27.776 614.736 741.059 681.394 dirac_cov_mix_mat 14.00 33.666 33.722 33.699 15.641 23.030 18.574 svd_fx 64.00 513.450 639.624 580.535 1.303 1.865 1.589 dirac_cov_mix_mat_r 11.00 39.302 39.444 39.384 25.426 40.029 32.990 ivas_dec_render 1.00 14.447 15.068 15.058 466.105 512.627 495.842 param_mc_dec_render 1.00 267.204 267.259 267.241 451.658 497.586 480.783 dirac_decorr_process 16.00 184.421 230.343 213.543 13.080 14.811 13.364 ----------------- ------ ------ ------ ------ total 150.00 1211.355 1341.750 1281.323 ``` # Ways to reproduce Follow steps to instrument and build case as in https://forge.3gpp.org/rep/sa4/audio/ivas-basop/-/wikis/Complexity-evaluation. * ./IVAS_cod -mc 7_1_4 128000 48 testv/stv714MC48c.wav stv714MC48c_128kbps.192 * ./IVAS_dec 7_1_4 48 stv714MC48c_128kbps.192 out.wav Bitstream: [stv714MC48c_128kbps.192](/uploads/2526b571c38135ab304c1955dd2fadd1/stv714MC48c_128kbps.192)
issue