Skip to content

Complexity: High Complexity Overhead for ParamISM decoding to binaural

Basic info

Bug description

The decoder complexity for ParamISM to binaural decoding is significantly higher in BASOP (factor > 2.2) than in the instrumented floating-point code.

BASOP Float
WMOPS Max. 256.687 112.099
WMOPS Min. 234.975 83.049
WMOPS Avg. 244.898 93.872

Seems that especially ivas_dec_render has a significant overhead:

BASOP Float
WMOPS max. 195.479 59.192

Full printout Float:

 --- Complexity analysis [WMOPS] ---  

                                                  |------  SELF  ------|   |---  CUMULATIVE  ---|
                               routine    calls     min     max     avg      min     max     avg 
                       ---------------   ------   ------  ------  ------   ------  ------  ------
               ivas_param_ism_dec_open     0.00    0.346   0.346   0.346    0.346   0.346   0.346
                       ivas_jbm_dec_tc     1.00    1.669   1.670   1.669   24.723  51.150  35.353
                          ism_meta_dec     1.00    0.266   0.357   0.320    0.266   0.357   0.320
                          ivas_sce_dec     2.00    0.476   0.476   0.476   22.715  49.161  33.364
                         ivas_core_dec     2.00    1.883  19.415   8.369   22.239  48.686  32.889
                        acelp_core_dec     0.51   11.603  31.932  20.670   11.611  31.948  20.738
                            ApplyFdCng     2.00    0.016   4.582   0.308    0.016   4.582   0.308
    ivas_jbm_dec_feed_tc_to_rendererer     1.00    0.468   0.477   0.475    0.468   0.477   0.475
                       ivas_dec_render     1.00   56.233  59.192  57.994   56.233  59.192  57.994
                   stereo_tcx_core_dec     1.49    8.888  30.549  20.178    8.896  31.116  20.517
                       ---------------   ------   ------  ------  ------
                                 total  1500.00   83.049 112.099  93.872

Full printout BASOP:

Weighted MOPS Analysis:
                                                    |------  SELF  ------|   |---  CUMULATIVE  ---|
                  routine                calls/fr     min     max     avg      min     max     avg 
 ------------------------                  ------   ------  ------  ------   ------  ------  ------
ivas_param_ism_dec_open                      0.00    0.436   0.436   0.436    0.436   0.436   0.436
ivas_jbm_dec_tc                              1.00    7.183   7.323   7.233   42.216  62.218  50.993
ism_meta_dec                                 1.00    0.126   0.162   0.147    0.126   0.162   0.147
ivas_sce_dec                                 2.00    0.923   0.923   0.923   16.435  28.524  21.374
ivas_core_dec                                2.00    6.596  27.714  13.856   15.973  28.062  20.912
acelp_core_dec                               0.51   11.057  27.762  18.565   11.057  16.505  12.601
ivas_jbm_dec_feed_tc_to_rendererer           1.00    0.264   0.265   0.265    0.264   0.265   0.265
ivas_dec_render                              1.00  191.132 195.479 193.639  191.132 195.479 193.639
stereo_tcx_core_dec                          1.49   12.361  38.566  26.560   12.164  19.116  14.742
 -----------------                         ------   ------  ------  ------
total                                     1500.00  234.975 256.687 244.898

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 -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 32000 48 testv/stv4ISM48s.wav stv4ISM48s_32kbps.192
  • ./IVAS_dec binaural 48 stv4ISM48s_32kbps.192 out.wav

Bitstream: stv4ISM48s_32kbps.192

Edited by multrus