FreeCalypso > hg > gsm-codec-lib
view 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 |
line wrap: on
line source
Here is the complete list of all command line utilities included in the present package: amr-cod-parse See AMR-study-utils article. amr-ietf-parse amr-cod2ietf amr-ietf2cod amrefr-decode-r See AMR-EFR-hybrid-emu article. amrefr-encode-r amrefr-tseq-dec amrefr-tseq-enc amrts-pcm8-compact The set of AMR test sequences shipped by 3GPP as TS 26.074 includes not only linear PCM and AMR-encoded files, but also 8-bit PCM sequences in both A-law and mu-law. However, those PCM8 sequences are shipped in a stupid and inconvenient format: each 8-bit PCM sample is expanded to a 16-bit word, written in LE byte order. This utility converts a PCM8 test sequence file from this weird format into sane PCM8 format with one byte per sample. gsm-amr2efr See AMR-EFR-conversion article. gsm-efr2amr gsmefr-cod-parse See EFR-testing article. gsmefr-dec-parse gsmefr-cod2gsmx This program reads an EFR codec frame stream in ETSI *.cod format and converts it to Themyscira gsmx format. gsmefr-decode See Codec-utils article. gsmefr-decode-r gsmefr-decode-tw5 gsmefr-decode-tw5-r gsmefr-encode gsmefr-encode-r gsmefr-dlcap-dec See Calypso-TCH-downlink article. gsmefr-dlcap-gsmx gsmefr-dlcap-parse gsmefr-dlcap-sync gsmefr-etsi-dec See EFR-testing article. gsmefr-etsi-enc gsmefr-rec2etsi This program reads an EFR session recording in gsmx format and converts it into ETSI decoder input (.dec) format. It was written early in the project as a sanity check, to verify that the format of TCH uplink from sysmoBTS in EFR mode matches our expectations, before embarking on the labor-intensive project to librify EFR reference code from ETSI. gsmfr-cod2std This program reads an FR codec frame stream in ETSI *.cod format and converts it to "standard" *.gsm format. gsmfr-decode See Codec-utils article. gsmfr-decode-r gsmfr-decode-rb gsmfr-decode-tw5 gsmfr-decode-tw5-r gsmfr-encode gsmfr-encode-r gsmfr-dlcap-gsmx See Calypso-TCH-downlink article. gsmfr-dlcap-parse gsmfr-dlcap-sync gsmfr-preproc See FR1-Rx-DTX article. gsmfr-tfo-xfrm See TFO-transform article. gsmrec-dump See Binary-file-format article. gsmx-to-tw5a See TW-TS-005 article. pcm16-check13 This program reads a 16-bit linear PCM recording file (raw BE by default, or raw LE with -l option) and checks if the 3 least significant bits of every sample are all zeros. All linear PCM samples consumed or generated by GSM codecs are only 13 bits wide, left-justified in 16-bit words, and so is output from G.711 A-law decoding - thus it is useful to be able to check if a given file in 16-bit PCM format is purely 13-bit or not. pcm16-raw2wav See PCM-file-formats article. pcm16-wav2raw pcm16-to-alaw See PCM8-conversions article. pcm16-to-ulaw pcm8-to-pcm16 tw5a-dump See TW-TS-005 article. tw5a-to-gsmx twamr-decode See Codec-utils article. twamr-decode-r twamr-encode twamr-encode-r twamr-tseq-dec See AMR-library-tests article. twamr-tseq-enc