Line data Source code
1 : /****************************************************************************** 2 : * ETSI TS 103 634 V1.6.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 "functions.h" 13 : 14 1792441 : void processPerBandEnergy_fl(LC3_INT bands_number, const LC3_INT* acc_coeff_per_band, LC3_INT16 hrmode, LC3PLUS_FrameDuration frame_dms, LC3_FLOAT* d2, LC3_FLOAT* d) 15 : { 16 : LC3_INT i, j, start, stop, maxBwBin; 17 : LC3_FLOAT sum; 18 : 19 : #ifdef ENABLE_HR_MODE_FL 20 1792441 : if (hrmode) 21 : { 22 0 : maxBwBin = MAX_BW_HR; 23 : } 24 : else 25 : #else 26 : UNUSED(hrmode); 27 : #endif 28 : { 29 1792441 : maxBwBin = MAX_BW; 30 : } 31 1792441 : switch (frame_dms) 32 : { 33 : #ifdef CR9_C_ADD_1p25MS 34 0 : case LC3PLUS_FRAME_DURATION_1p25MS: 35 0 : maxBwBin = maxBwBin >> 3; 36 0 : break; 37 : #endif 38 16 : case LC3PLUS_FRAME_DURATION_2p5MS: 39 16 : maxBwBin = maxBwBin >> 2; 40 16 : break; 41 1710261 : case LC3PLUS_FRAME_DURATION_5MS: 42 1710261 : maxBwBin = maxBwBin >> 1; 43 1710261 : break; 44 0 : case LC3PLUS_FRAME_DURATION_7p5MS: 45 0 : maxBwBin = (maxBwBin >> 2) * 3; 46 0 : break; 47 82164 : case LC3PLUS_FRAME_DURATION_10MS: 48 82164 : break; 49 0 : case LC3PLUS_FRAME_DURATION_UNDEFINED: 50 0 : assert(0); 51 : } 52 : 53 101431596 : for (i = 0; i < bands_number; i++) { 54 99639155 : sum = 0; 55 99639155 : start = acc_coeff_per_band[i]; 56 99639155 : stop = MIN(acc_coeff_per_band[i + 1], maxBwBin); 57 : 58 474557275 : for (j = start; j < stop; j++) { 59 374918120 : sum += d[j] * d[j]; 60 : } 61 : 62 99639155 : if (stop - start > 0) { 63 99475043 : sum = sum / (LC3_FLOAT)(stop - start); 64 : } 65 99639155 : d2[i] = sum; 66 : } 67 1792441 : }