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 1196223 : 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 1196223 : if (hrmode) 21 : { 22 0 : maxBwBin = MAX_BW_HR; 23 : } 24 : else 25 : #else 26 : UNUSED(hrmode); 27 : #endif 28 : { 29 1196223 : maxBwBin = MAX_BW; 30 : } 31 1196223 : 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 1146235 : case LC3PLUS_FRAME_DURATION_5MS: 42 1146235 : maxBwBin = maxBwBin >> 1; 43 1146235 : break; 44 0 : case LC3PLUS_FRAME_DURATION_7p5MS: 45 0 : maxBwBin = (maxBwBin >> 2) * 3; 46 0 : break; 47 49972 : case LC3PLUS_FRAME_DURATION_10MS: 48 49972 : break; 49 0 : case LC3PLUS_FRAME_DURATION_UNDEFINED: 50 0 : assert(0); 51 : } 52 : 53 67610860 : for (i = 0; i < bands_number; i++) { 54 66414637 : sum = 0; 55 66414637 : start = acc_coeff_per_band[i]; 56 66414637 : stop = MIN(acc_coeff_per_band[i + 1], maxBwBin); 57 : 58 315650757 : for (j = start; j < stop; j++) { 59 249236120 : sum += d[j] * d[j]; 60 : } 61 : 62 66414637 : if (stop - start > 0) { 63 66324781 : sum = sum / (LC3_FLOAT)(stop - start); 64 : } 65 66414637 : d2[i] = sum; 66 : } 67 1196223 : }