annotate doc/TFO-transform @ 551:8f44d7064c56

document gsmfr-tfo-xfrm
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 05 Oct 2024 06:48:44 +0000
parents doc/FR1-library-API@a3300483ae74
children ebcf414b7d99
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
551
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
1 TFO transform: general definition and goal
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
2 ==========================================
535
bf7bbc7d494f doc/FR1-library-API: document new additions
Mychaela Falconia <falcon@freecalypso.org>
parents: 299
diff changeset
3
bf7bbc7d494f doc/FR1-library-API: document new additions
Mychaela Falconia <falcon@freecalypso.org>
parents: 299
diff changeset
4 "TFO transform" is the term adopted by Themyscira Wireless for the non-trivial
bf7bbc7d494f doc/FR1-library-API: document new additions
Mychaela Falconia <falcon@freecalypso.org>
parents: 299
diff changeset
5 transform on GSM codec frames called for by the TFO spec, 3GPP TS 28.062
551
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
6 section C.3.2.1.1. We have a goal of implementing TFO transform for all 3
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
7 classic GSM codecs (FR, HR and EFR) in our Themyscira codec libraries; in the
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
8 present release, only GSM-FR version has been implemented.
535
bf7bbc7d494f doc/FR1-library-API: document new additions
Mychaela Falconia <falcon@freecalypso.org>
parents: 299
diff changeset
9
551
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
10 The input to this transform is the stream of received uplink frames from call
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
11 leg A, possibly containing BFI frame gaps and SID frames if call leg A uses
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
12 DTXu. The output from the transform is a "pristine" stream of good codec frames
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
13 to be transmitted on the radio downlink for call leg B: good speech frames only
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
14 in the non-DTXd case, or a mixture of good speech and valid SID frames with
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
15 DTXd. TFO transform is expected to be an identity transform when the input is
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
16 100% good speech frames, but it becomes non-trivial when it has to insert
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
17 synthetic "speech" frames for comfort noise or as error concealment.
535
bf7bbc7d494f doc/FR1-library-API: document new additions
Mychaela Falconia <falcon@freecalypso.org>
parents: 299
diff changeset
18
551
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
19 TFO transform for FRv1
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
20 ======================
536
a3300483ae74 doc/FR1-library-API: document return value from gsmfr_tfo_xfrm_*
Mychaela Falconia <falcon@freecalypso.org>
parents: 535
diff changeset
21
551
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
22 This transform is implemented in libgsmfr2 in both DTXd=0 and DTXd=1
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
23 configurations. DTXd=0 version of FRv1 TFO transform is mostly identical with
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
24 the Rx DTX handler preprocessor stage of regular speech decoding (the only
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
25 difference is in details of the in-band homing function); DTXd=1 version is
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
26 specific to this TFO/TrFO application.
298
a45f806cada9 doc/FR1-library-API: document stateless utility functions
Mychaela Falconia <falcon@freecalypso.org>
parents: 297
diff changeset
27
551
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
28 In addition to libgsmfr2 functions documented in FR1-library-API article, there
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
29 is a command line test program that exercises our implementation of this TFO
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
30 transform. Its usage is:
298
a45f806cada9 doc/FR1-library-API: document stateless utility functions
Mychaela Falconia <falcon@freecalypso.org>
parents: 297
diff changeset
31
551
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
32 gsmfr-tfo-xfrm [-d] input.hex output.hex
298
a45f806cada9 doc/FR1-library-API: document stateless utility functions
Mychaela Falconia <falcon@freecalypso.org>
parents: 297
diff changeset
33
551
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
34 Both input and output files are in TW-TS-005 Annex A hexadecimal format. The
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
35 input will typically consist of TW-TS-001 extended RTP format, whereas the
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
36 output is always emitted in the basic format, pure GSM-FR codec frames only.
299
59751c8fc773 doc/FR1-library-API: finish in first pass
Mychaela Falconia <falcon@freecalypso.org>
parents: 298
diff changeset
37
551
8f44d7064c56 document gsmfr-tfo-xfrm
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
38 -d option enables DTXd, which is disabled by default.