FreeCalypso > hg > gsm-codec-lib
view libtwamr/q_plsf5_tab.h @ 604:54f0f1b74c25
libgsmhr1 TFO: require BFI=0 and SID=0 for homing
In order for a received frame to be recognized as DHF, we need
not only the correct bit pattern, but also BFI=0 and SID=0.
The BFI=0 requirement should be obvious, while the SID=0 requirement
is needed only for HR codec. With FR and EFR, SID classification
comes from the payload bits and no separate check is needed -
but in HR we get an out-of-band SID ternary flag. When SID=1,
no payload bits are used at all; when SID=2, we use only the first
33 bits of the payload. Therefore, it is proper to conditionalize
DHF acceptance on SID=0.
We already implemented this logic in the just finished full decoder;
now bring TFO code into agreement.
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Thu, 04 Dec 2025 19:40:35 +0000 |
| parents | 450b090f2fd7 |
| children |
line wrap: on
line source
/* * The original ETSI EFR code features an include file named q_plsf_5.tab, * included into d_homing.c, d_plsf_5.c and q_plsf_5.c, duplicating * the small mean_lsf[] table across all 3 modules and the other (big) * tables across d_plsf_5.c for the decoder and q_plsf_5.c for the encoder. * * In our version we have moved the tables into q_plsf5_tab.c, * with extern declarations in q_plsf5_tab.h. * * Update for libtwamr: this table is unchanged from ETSI EFR, hence * we are keeping our version unchanged from libgsmefr too. */ #ifndef q_plsf5_tab_h #define q_plsf5_tab_h #include "typedef.h" extern const Word16 mean_lsf[10]; #define DICO1_SIZE 128 #define DICO2_SIZE 256 #define DICO3_SIZE 256 #define DICO4_SIZE 256 #define DICO5_SIZE 64 extern const Word16 dico1_lsf[DICO1_SIZE * 4]; extern const Word16 dico2_lsf[DICO2_SIZE * 4]; extern const Word16 dico3_lsf[DICO3_SIZE * 4]; extern const Word16 dico4_lsf[DICO4_SIZE * 4]; extern const Word16 dico5_lsf[DICO5_SIZE * 4]; #endif
