LCOV - code coverage report
Current view: top level - lib_com - recovernorm_fx.c (source / functions) Hit Total Coverage
Test: Coverage on main enc/dec/rend @ 3b2f07138c61dcf997bbf4165d0882f794b2995f Lines: 26 30 86.7 %
Date: 2025-05-03 01:55:50 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        1005 : 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        1005 :     const Word16 *order = NULL;
      25        1005 :     move16();
      26             : 
      27        1005 :     SWITCH( nb_sfm )
      28             :     {
      29         742 :         case NB_SFM:
      30         742 :             order = norm_order_48; /* Q0 */
      31         742 :             move16();
      32         742 :             BREAK;
      33         228 :         case SFM_N_SWB:
      34         228 :             order = norm_order_32; /* Q0 */
      35         228 :             move16();
      36         228 :             BREAK;
      37          35 :         case SFM_N_WB:
      38          35 :             order = norm_order_16; /* Q0 */
      39          35 :             move16();
      40          35 :             BREAK;
      41           0 :         default:
      42           0 :             order = norm_order_48; /* Q0 */
      43           0 :             move16();
      44           0 :             BREAK;
      45             :     }
      46             : 
      47       43455 :     FOR( i = 0; i < nb_sfm; i++ )
      48             :     {
      49       42450 :         j = order[i]; /* Q0 */
      50       42450 :         move16();
      51       42450 :         k = idxbuf[i]; /* Q0 */
      52       42450 :         move16();
      53       42450 :         ynrm[j] = k; /* Q0 */
      54       42450 :         move16();
      55       42450 :         normqlg2[j] = dicnlg2[k]; /* Q0 */
      56       42450 :         move16();
      57             :     }
      58             : 
      59        1005 :     return;
      60             : }

Generated by: LCOV version 1.14