LCOV - code coverage report
Current view: top level - lib_lc3plus - plc_phecu_tba_spect_Xavg.c (source / functions) Hit Total Coverage
Test: Coverage on main -- short test vectors @ 6c9ddc4024a9c0e1ecb8f643f114a84a0e26ec6b Lines: 0 12 0.0 %
Date: 2025-05-23 08:37:30 Functions: 0 1 0.0 %

          Line data    Source code
       1             : /******************************************************************************
       2             : *                        ETSI TS 103 634 V1.5.1                               *
       3             : *              Low Complexity Communication Codec Plus (LC3plus)              *
       4             : *                                                                             *
       5             : * Copyright licence is solely granted through ETSI Intellectual Property      *
       6             : * Rights Policy, 3rd April 2019. No patent licence is granted by implication, *
       7             : * estoppel or otherwise.                                                      *
       8             : ******************************************************************************/
       9             : 
      10             : #include "options.h"
      11             : #include "wmc_auto.h"
      12             : #include "defines.h"
      13             : #include "functions.h"
      14             : 
      15           0 : void plc_phEcu_tba_spect_Xavg(LC3_INT32 fs_idx, LC3_INT32 n_grp, LC3_FLOAT *oold_spec_shape, 
      16             :    LC3_FLOAT *oold_EwPtr, LC3_FLOAT *old_spec_shape, 
      17             :    LC3_FLOAT *old_EwPtr,  LC3_FLOAT *gr_pow_left, LC3_FLOAT *gr_pow_right, LC3_FLOAT *Xavg) 
      18             : {
      19             :       LC3_INT32 i;
      20             :       LC3_FLOAT XavgEn[MAX_LGW];
      21             :       LC3_FLOAT xfp_w_scale, oold_Escale, old_Escale;
      22             : 
      23             :     /* 8k       16k    24k    32k      48k   */
      24           0 :     LC3_FLOAT flt_xfp_wE_MDCT2FFT_target[5] = { (LC3_FLOAT) 1.9906, (LC3_FLOAT) 4.0445, (LC3_FLOAT) 6.0980, (LC3_FLOAT) 8.1533, (LC3_FLOAT) 12.2603 };
      25           0 :     LC3_INT32   gw_0[10] = { 1, 3, 5, 9, 17, 33, 49, 65, 81, 97 }; 
      26             :    
      27             :     /* prepare scale factor */
      28             : 
      29           0 :     xfp_w_scale = LC3_ROUND(flt_xfp_wE_MDCT2FFT_target[fs_idx]/(LC3_FLOAT)16.0*(LC3_FLOAT) 32768.0) / (LC3_FLOAT) LC3_POW(2,11);
      30             : 
      31             :     /* prepare left and right subband energies */
      32           0 :     oold_Escale = (*oold_EwPtr) * xfp_w_scale;
      33           0 :     old_Escale  = (*old_EwPtr) * xfp_w_scale;
      34           0 :     for (i = 0;i < n_grp;i++) {
      35           0 :         gr_pow_left[i] = oold_spec_shape[i] * oold_Escale;
      36           0 :         gr_pow_right[i] = old_spec_shape[i] * old_Escale;
      37             : 
      38           0 :         XavgEn[i] = ((LC3_FLOAT) 0.5) * (gr_pow_left[i] + gr_pow_right[i]) / (gw_0[i + 1] - gw_0[i]);
      39           0 :         Xavg[i] = LC3_SQRT(XavgEn[i]);
      40             :     }
      41             : 
      42           0 :     return;
      43             : }
      44             : 

Generated by: LCOV version 1.14