LCOV - code coverage report
Current view: top level - lib_com - recovernorm_fx.c (source / functions) Hit Total Coverage
Test: Coverage on main -- dec/rend @ 4c82f1d24d39d0296b18d775f18a006f4c7d024b Lines: 26 30 86.7 %
Date: 2025-05-17 01:59:02 Functions: 1 1 100.0 %

          Line data    Source code
       1             : /*====================================================================================
       2             :     EVS Codec 3GPP TS26.452 Aug 12, 2021. Version 16.3.0
       3             :   ====================================================================================*/
       4             : #include <stdint.h>
       5             : #include "options.h" /* Compilation switches                   */
       6             : #include "prot_fx.h" /* Function prototypes                    */
       7             : #include "cnst.h"    /* Common constants                       */
       8             : #include "rom_com.h" /* Static table prototypes                */
       9             : 
      10             : /*--------------------------------------------------------------------------*
      11             :  * recovernorm_fx()
      12             :  *
      13             :  * Recover reordered quantization indices and norms
      14             :  *--------------------------------------------------------------------------*/
      15             : 
      16         512 : void recovernorm_fx(
      17             :     const Word16 *idxbuf, /* i  : reordered quantization indices        Q0*/
      18             :     Word16 *ynrm,         /* o  : recovered quantization indices        Q0*/
      19             :     Word16 *normqlg2,     /* o  : recovered quantized norms                     Q0*/
      20             :     const Word16 nb_sfm   /* i  : number of SFMs                                        Q0*/
      21             : )
      22             : {
      23             :     Word16 i, j, k;
      24         512 :     const Word16 *order = NULL;
      25         512 :     move16();
      26             : 
      27         512 :     SWITCH( nb_sfm )
      28             :     {
      29         360 :         case NB_SFM:
      30         360 :             order = norm_order_48; /* Q0 */
      31         360 :             move16();
      32         360 :             BREAK;
      33         133 :         case SFM_N_SWB:
      34         133 :             order = norm_order_32; /* Q0 */
      35         133 :             move16();
      36         133 :             BREAK;
      37          19 :         case SFM_N_WB:
      38          19 :             order = norm_order_16; /* Q0 */
      39          19 :             move16();
      40          19 :             BREAK;
      41           0 :         default:
      42           0 :             order = norm_order_48; /* Q0 */
      43           0 :             move16();
      44           0 :             BREAK;
      45             :     }
      46             : 
      47       22033 :     FOR( i = 0; i < nb_sfm; i++ )
      48             :     {
      49       21521 :         j = order[i]; /* Q0 */
      50       21521 :         move16();
      51       21521 :         k = idxbuf[i]; /* Q0 */
      52       21521 :         move16();
      53       21521 :         ynrm[j] = k; /* Q0 */
      54       21521 :         move16();
      55       21521 :         normqlg2[j] = dicnlg2[k]; /* Q0 */
      56       21521 :         move16();
      57             :     }
      58             : 
      59         512 :     return;
      60             : }

Generated by: LCOV version 1.14