comparison doc/Codec-utils @ 305:a053cf0bac04

doc/Codec-utils: update for libgsmfr2
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 15 Apr 2024 23:41:39 +0000
parents 04936af99fc8
children b094bc07051a
comparison
equal deleted inserted replaced
304:03b0702f4463 305:a053cf0bac04
6 output in a .amr file (RFC 4867 AMR storage format), the second reads this .amr 6 output in a .amr file (RFC 4867 AMR storage format), the second reads this .amr
7 format and emits AMR decoder output as WAV. Inspired by these simple test 7 format and emits AMR decoder output as WAV. Inspired by these simple test
8 programs, the present package offers equivalent command line utilities for GSM 8 programs, the present package offers equivalent command line utilities for GSM
9 FR and EFR codecs. Here they are: 9 FR and EFR codecs. Here they are:
10 10
11 gsmfr-encode This utility reads linear PCM from a WAV file, runs libgsm 11 gsmfr-encode This utility reads linear PCM from a WAV file, runs the
12 06.10 encoder and writes the output in the classic .gsm format 12 bit-exact GSM 06.10 encoder and writes the output in the
13 (directly abutted FR codec frames of 33 bytes each). We don't 13 classic .gsm format (directly abutted FR codec frames of 33
14 currently have a Tx-side DTX implementation (VAD etc) for GSM 14 bytes each). We don't currently have a Tx-side DTX
15 FR, hence the output from gsmfr-encode will always consist of 15 implementation (VAD etc) for GSM-FR, hence the output from
16 good speech frames only. 16 gsmfr-encode will always consist of good speech frames only.
17 17
18 gsmfr-decode This utility reads our gsmx format (see Binary-file-format 18 gsmfr-decode This utility reads our gsmx format (see Binary-file-format
19 article), which is a superset of the classic libgsm format. 19 article), which is a superset of the classic libgsm format.
20 The input to gsmfr-decode may be a pure .gsm recording as 20 The input to gsmfr-decode may be a pure .gsm recording as
21 produced by gsmfr-encode or toast from libgsm package, or it 21 produced by gsmfr-encode or toast from libgsm package, or it
22 can also contain SID frames and/or BFI markers. The processing 22 can also contain SID frames and/or BFI markers. The processing
23 performed by gsmfr-decode begins with our FR1 Rx DTX handler 23 performed by gsmfr-decode begins with our FR1 Rx DTX handler
24 preprocessor, which will be an identity transform for pure .gsm 24 preprocessor, which will be an identity transform for pure .gsm
25 input but becomes important for real-world input containing SIDs 25 input (most of the time) but becomes important for real-world
26 and BFIs, and is followed by gsm_decode() from libgsm. The 26 input containing SIDs and BFIs, and is followed by the bit-exact
27 decoded output is written as WAV. 27 GSM 06.10 decoder. The decoded output is written as WAV.
28 28
29 gsmefr-encode This utility reads linear PCM from a WAV file, runs our EFR 29 gsmefr-encode This utility reads linear PCM from a WAV file, runs our EFR
30 encoder (Themyscira libgsmefr) and writes the output in our gsmx 30 encoder (Themyscira libgsmefr) and writes the output in our gsmx
31 format. There is an option to enable or disable DTX: -d enables 31 format. There is an option to enable or disable DTX: -d enables
32 DTX, otherwise it is disabled. (This option mirrors amrnb-enc.) 32 DTX, otherwise it is disabled. (This option mirrors amrnb-enc.)
44 44
45 gsmfr-decode-r Just like gsm[e]fr-decode, but writing "robe" instead of WAV. 45 gsmfr-decode-r Just like gsm[e]fr-decode, but writing "robe" instead of WAV.
46 gsmefr-decode-r 46 gsmefr-decode-r
47 47
48 Please see PCM-file-formats article for the rationale. 48 Please see PCM-file-formats article for the rationale.
49
50 Additions for libgsmfr2
51 =======================
52
53 With the introduction of libgsmfr2, gsmfr-* codec utilities have undergone some
54 changes:
55
56 * gsmfr-decode and gsmfr-decode-r now implement the optional decoder homing
57 feature, detecting and acting upon GSM 06.10 decoder homing frames.
58
59 * gsmfr-encode-r takes an optional -h flag that enables the encoder homing
60 function; it is disabled by default. The same feature was not replicated in
61 WAV-reading gsmfr-encode, as WAV format is poorly suited for tinkering-
62 oriented bit-exact work.
63
64 * There is a new utility named gsmfr-decode-rb, where rb stands for "raw basic".
65 This utility emits "robe" output like gsmfr-decode-r, but it performs only
66 "basic" GSM 06.10 decoding, without the Rx DTX preprocessor step. BFI frame
67 gaps in input are not allowed, and there is no SID detection.