FreeCalypso > hg > gsm-codec-lib
annotate doc/Utils-overview @ 581:e2d5cad04cbf
libgsmhr1 RxFE: store CN R0+LPC separately from speech
In the original GSM 06.06 code the ECU for speech mode is entirely
separate from the CN generator, maintaining separate state. (The
main intertie between them is the speech vs CN state variable,
distinguishing between speech and CN BFIs, in addition to the
CN-specific function of distinguishing between initial and update
SIDs.)
In the present RxFE implementation I initially thought that we could
use the same saved_frame buffer for both ECU and CN, overwriting
just the first 4 params (R0 and LPC) when a valid SID comes in.
However, I now realize it was a bad idea: the original code has a
corner case (long sequence of speech-mode BFIs to put the ECU in
state 6, then SID and CN-mode BFIs, then a good speech frame) that
would be broken by that buffer reuse approach. We could eliminate
this corner case by resetting the ECU state when passing through
a CN insertion period, but doing so would needlessly increase
the behavioral diffs between GSM 06.06 and our version.
Solution: use a separate CN-specific buffer for CN R0+LPC parameters,
and match the behavior of GSM 06.06 code in this regard.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 13 Feb 2025 10:02:45 +0000 |
parents | 8f44d7064c56 |
children |
rev | line source |
---|---|
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 Here is the complete list of all command line utilities included in the present |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 package: |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 |
218
f4f68c652e98
doc: document AMR study utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
209
diff
changeset
|
4 amr-cod-parse See AMR-study-utils article. |
f4f68c652e98
doc: document AMR study utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
209
diff
changeset
|
5 amr-ietf-parse |
f4f68c652e98
doc: document AMR study utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
209
diff
changeset
|
6 amr-cod2ietf |
f4f68c652e98
doc: document AMR study utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
209
diff
changeset
|
7 amr-ietf2cod |
f4f68c652e98
doc: document AMR study utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
209
diff
changeset
|
8 |
483
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
9 amrefr-decode-r See AMR-EFR-hybrid-emu article. |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
10 amrefr-encode-r |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
11 amrefr-tseq-dec |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
12 amrefr-tseq-enc |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
13 |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
14 amrts-pcm8-compact The set of AMR test sequences shipped by 3GPP as |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
15 TS 26.074 includes not only linear PCM and AMR-encoded |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
16 files, but also 8-bit PCM sequences in both A-law and |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
17 mu-law. However, those PCM8 sequences are shipped in a |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
18 stupid and inconvenient format: each 8-bit PCM sample |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
19 is expanded to a 16-bit word, written in LE byte order. |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
20 This utility converts a PCM8 test sequence file from |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
21 this weird format into sane PCM8 format with one byte |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
22 per sample. |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
23 |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 gsm-amr2efr See AMR-EFR-conversion article. |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 gsm-efr2amr |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 gsmefr-cod-parse See EFR-testing article. |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 gsmefr-dec-parse |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 |
240
3aeb33d835ad
doc/Utils-overview: document gsmefr-cod2gsmx
Mychaela Falconia <falcon@freecalypso.org>
parents:
238
diff
changeset
|
30 gsmefr-cod2gsmx This program reads an EFR codec frame stream in ETSI |
3aeb33d835ad
doc/Utils-overview: document gsmefr-cod2gsmx
Mychaela Falconia <falcon@freecalypso.org>
parents:
238
diff
changeset
|
31 *.cod format and converts it to Themyscira gsmx format. |
3aeb33d835ad
doc/Utils-overview: document gsmefr-cod2gsmx
Mychaela Falconia <falcon@freecalypso.org>
parents:
238
diff
changeset
|
32 |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 gsmefr-decode See Codec-utils article. |
157
04936af99fc8
document gsm[e]fr-{en,de}code-r utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
143
diff
changeset
|
34 gsmefr-decode-r |
550
de333989a12b
document gsm[e]fr-decode-tw5[-r] utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
549
diff
changeset
|
35 gsmefr-decode-tw5 |
de333989a12b
document gsm[e]fr-decode-tw5[-r] utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
549
diff
changeset
|
36 gsmefr-decode-tw5-r |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 gsmefr-encode |
157
04936af99fc8
document gsm[e]fr-{en,de}code-r utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
143
diff
changeset
|
38 gsmefr-encode-r |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 |
169
0c965c3c5e6e
doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents:
157
diff
changeset
|
40 gsmefr-dlcap-dec See Calypso-TCH-downlink article. |
0c965c3c5e6e
doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents:
157
diff
changeset
|
41 gsmefr-dlcap-gsmx |
0c965c3c5e6e
doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents:
157
diff
changeset
|
42 gsmefr-dlcap-parse |
483
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
43 gsmefr-dlcap-sync |
169
0c965c3c5e6e
doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents:
157
diff
changeset
|
44 |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 gsmefr-etsi-dec See EFR-testing article. |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 gsmefr-etsi-enc |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 gsmefr-rec2etsi This program reads an EFR session recording in gsmx |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 format and converts it into ETSI decoder input (.dec) |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 format. It was written early in the project as a sanity |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 check, to verify that the format of TCH uplink from |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 sysmoBTS in EFR mode matches our expectations, before |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 embarking on the labor-intensive project to librify EFR |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 reference code from ETSI. |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 |
246
a55fcc8b6daf
doc/Utils-overview: add gsmfr-cod2std
Mychaela Falconia <falcon@freecalypso.org>
parents:
240
diff
changeset
|
56 gsmfr-cod2std This program reads an FR codec frame stream in ETSI |
a55fcc8b6daf
doc/Utils-overview: add gsmfr-cod2std
Mychaela Falconia <falcon@freecalypso.org>
parents:
240
diff
changeset
|
57 *.cod format and converts it to "standard" *.gsm format. |
a55fcc8b6daf
doc/Utils-overview: add gsmfr-cod2std
Mychaela Falconia <falcon@freecalypso.org>
parents:
240
diff
changeset
|
58 |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 gsmfr-decode See Codec-utils article. |
157
04936af99fc8
document gsm[e]fr-{en,de}code-r utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
143
diff
changeset
|
60 gsmfr-decode-r |
306
047c198408c8
doc/Utils-overview: update for libgsmfr2
Mychaela Falconia <falcon@freecalypso.org>
parents:
246
diff
changeset
|
61 gsmfr-decode-rb |
550
de333989a12b
document gsm[e]fr-decode-tw5[-r] utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
549
diff
changeset
|
62 gsmfr-decode-tw5 |
de333989a12b
document gsm[e]fr-decode-tw5[-r] utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
549
diff
changeset
|
63 gsmfr-decode-tw5-r |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 gsmfr-encode |
157
04936af99fc8
document gsm[e]fr-{en,de}code-r utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
143
diff
changeset
|
65 gsmfr-encode-r |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 |
169
0c965c3c5e6e
doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents:
157
diff
changeset
|
67 gsmfr-dlcap-gsmx See Calypso-TCH-downlink article. |
0c965c3c5e6e
doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents:
157
diff
changeset
|
68 gsmfr-dlcap-parse |
483
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
69 gsmfr-dlcap-sync |
169
0c965c3c5e6e
doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents:
157
diff
changeset
|
70 |
306
047c198408c8
doc/Utils-overview: update for libgsmfr2
Mychaela Falconia <falcon@freecalypso.org>
parents:
246
diff
changeset
|
71 gsmfr-preproc See FR1-Rx-DTX article. |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 |
551
8f44d7064c56
document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents:
550
diff
changeset
|
73 gsmfr-tfo-xfrm See TFO-transform article. |
8f44d7064c56
document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents:
550
diff
changeset
|
74 |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 gsmrec-dump See Binary-file-format article. |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 |
549
d9f6b3125259
document TW-TS-005 utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
483
diff
changeset
|
77 gsmx-to-tw5a See TW-TS-005 article. |
d9f6b3125259
document TW-TS-005 utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
483
diff
changeset
|
78 |
238
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
79 pcm16-check13 This program reads a 16-bit linear PCM recording file |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
80 (raw BE by default, or raw LE with -l option) and checks |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
81 if the 3 least significant bits of every sample are all |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
82 zeros. All linear PCM samples consumed or generated by |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
83 GSM codecs are only 13 bits wide, left-justified in |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
84 16-bit words, and so is output from G.711 A-law decoding |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
85 - thus it is useful to be able to check if a given file |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
86 in 16-bit PCM format is purely 13-bit or not. |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
87 |
143
195911f2211c
document PCM format conversion utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
136
diff
changeset
|
88 pcm16-raw2wav See PCM-file-formats article. |
195911f2211c
document PCM format conversion utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
136
diff
changeset
|
89 pcm16-wav2raw |
238
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
90 |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
91 pcm16-to-alaw See PCM8-conversions article. |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
92 pcm16-to-ulaw |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
93 pcm8-to-pcm16 |
483
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
94 |
549
d9f6b3125259
document TW-TS-005 utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
483
diff
changeset
|
95 tw5a-dump See TW-TS-005 article. |
d9f6b3125259
document TW-TS-005 utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
483
diff
changeset
|
96 tw5a-to-gsmx |
d9f6b3125259
document TW-TS-005 utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
483
diff
changeset
|
97 |
483
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
98 twamr-decode See Codec-utils article. |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
99 twamr-decode-r |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
100 twamr-encode |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
101 twamr-encode-r |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
102 |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
103 twamr-tseq-dec See AMR-library-tests article. |
4f13db3a7086
doc/Utils-overview: document new utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
306
diff
changeset
|
104 twamr-tseq-enc |