Skip to content

Complexity: High Complexity Overhead for ParamMC decoding

Basic info

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

Edited by multrus