view doc/TFO-transform @ 552:6ab066180ec2

doc: new article FR1-Rx-DTX-detail
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 07 Oct 2024 00:25:50 +0000
parents 8f44d7064c56
children ebcf414b7d99
line wrap: on
line source

TFO transform: general definition and goal
==========================================

"TFO transform" is the term adopted by Themyscira Wireless for the non-trivial
transform on GSM codec frames called for by the TFO spec, 3GPP TS 28.062
section C.3.2.1.1.  We have a goal of implementing TFO transform for all 3
classic GSM codecs (FR, HR and EFR) in our Themyscira codec libraries; in the
present release, only GSM-FR version has been implemented.

The input to this transform is the stream of received uplink frames from call
leg A, possibly containing BFI frame gaps and SID frames if call leg A uses
DTXu.  The output from the transform is a "pristine" stream of good codec frames
to be transmitted on the radio downlink for call leg B: good speech frames only
in the non-DTXd case, or a mixture of good speech and valid SID frames with
DTXd.  TFO transform is expected to be an identity transform when the input is
100% good speech frames, but it becomes non-trivial when it has to insert
synthetic "speech" frames for comfort noise or as error concealment.

TFO transform for FRv1
======================

This transform is implemented in libgsmfr2 in both DTXd=0 and DTXd=1
configurations.  DTXd=0 version of FRv1 TFO transform is mostly identical with
the Rx DTX handler preprocessor stage of regular speech decoding (the only
difference is in details of the in-band homing function); DTXd=1 version is
specific to this TFO/TrFO application.

In addition to libgsmfr2 functions documented in FR1-library-API article, there
is a command line test program that exercises our implementation of this TFO
transform.  Its usage is:

gsmfr-tfo-xfrm [-d] input.hex output.hex

Both input and output files are in TW-TS-005 Annex A hexadecimal format.  The
input will typically consist of TW-TS-001 extended RTP format, whereas the
output is always emitted in the basic format, pure GSM-FR codec frames only.

-d option enables DTXd, which is disabled by default.