Skip to content

[non-be][rend-non-be][split-non-be][allow-regression] Optimize eig2x2.

Closes #2193

Reason why this change is needed

The current implementation of eig2x2_fx is too complex and can be simplified.

Description of the change

This non-bit-exact optimisation simplifies the eig2x2_fx function.

Complexity analysis

How to reproduce?

IVAS_cod -sba 3 13200 32 scripts/testv/stv3OA32c.wav enc.bit
IVAS_dec BINAURAL 32 enc.bit dec.wav

Before:

 --- Complexity analysis [WMOPS] ---  

                                           |------  SELF  ------|   |---  CUMULATIVE  ---|
                        routine    calls     min     max     avg      min     max     avg 
                ---------------   ------   ------  ------  ------   ------  ------  ------
                ivas_jbm_dec_tc     1.00    1.891   1.915   1.915   26.345  38.997  29.528
               ivas_spar_decode     1.00    1.010   1.041   1.019    2.544   2.684   2.628
               ivas_spar_dec_MD     1.00    1.526   1.665   1.609    1.526   1.665   1.609
                   ivas_sce_dec     1.00    0.246   0.246   0.246   21.794  34.495  24.986
                  ivas_core_dec     1.00    3.152  11.390   7.909   21.548  34.249  24.739
                 acelp_core_dec     0.61   12.851  19.168  14.578   12.851  19.168  14.578
      ivas_dec_prepare_renderer     1.00    7.068   8.724   7.173    7.068   8.724   7.173
                ivas_dec_render     1.00   77.336  88.019  87.518   81.487  92.277  91.775
    ivas_sba_prototype_renderer     4.00    3.922   4.258   4.258    3.922   4.258   4.258
            stereo_tcx_core_dec     0.39   17.651  31.015  20.324   17.651  31.015  20.324
                ---------------   ------   ------  ------  ------
                          total  1000.00  119.955 138.376 128.477

After:

 --- Complexity analysis [WMOPS] ---  

                                           |------  SELF  ------|   |---  CUMULATIVE  ---|
                        routine    calls     min     max     avg      min     max     avg 
                ---------------   ------   ------  ------  ------   ------  ------  ------
                ivas_jbm_dec_tc     1.00    1.891   1.915   1.915   26.345  38.997  29.528
               ivas_spar_decode     1.00    1.010   1.041   1.019    2.544   2.684   2.628
               ivas_spar_dec_MD     1.00    1.526   1.665   1.609    1.526   1.665   1.609
                   ivas_sce_dec     1.00    0.246   0.246   0.246   21.794  34.495  24.986
                  ivas_core_dec     1.00    3.152  11.390   7.909   21.548  34.249  24.739
                 acelp_core_dec     0.61   12.851  19.168  14.578   12.851  19.168  14.578
      ivas_dec_prepare_renderer     1.00    7.068   8.724   7.173    7.068   8.724   7.173
                ivas_dec_render     1.00   76.691  84.786  84.385   80.842  89.044  88.643
    ivas_sba_prototype_renderer     4.00    3.922   4.258   4.258    3.922   4.258   4.258
            stereo_tcx_core_dec     0.39   17.651  31.015  20.324   17.651  31.015  20.324
                ---------------   ------   ------  ------  ------
                          total  1000.00  119.309 135.316 125.344

Regressions/Improvements Analysis

Regressions:

  • short-dec-0db
    3 regressions: max MAX_ABS_DIFF-diff 454
  • short-dec-+10db
    5 regressions: max MAX_ABS_DIFF-diff 327
  • short-dec--10db
    5 regressions: max MAX_ABS_DIFF-diff 630

Improvements:

  • short-dec-0db
    35 improvements: min MAX_ABS_DIFF-diff -886
  • short-dec-+10db
    22 improvements: min MAX_ABS_DIFF-diff -706
  • short-dec--10db
    35 improvements: min MAX_ABS_DIFF-diff -1021
Edited by Nicolas Roussin

Merge request reports

Loading