annotate doc/TFO-xform/EFR @ 44:b15dfdc62ceb

trau-sync8: off-by-one error in file end limit
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 13 Sep 2024 16:36:31 +0000
parents 4ab7cc414ed2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
36
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 TFO transform for EFR
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 =====================
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 Unlike the situation with FRv1 and HRv1, the standard endpoint decoder for EFR
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 provides no help for implementing a TFO transform. The reference EFR decoder
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 source from ETSI includes bad frame handling and Rx DTX functions, but the logic
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 that implements these functions is interwoven throughout the body of the decoder
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 and does not form a separable front-end. Most saliently, this Rx DTX and ECU
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 logic in the reference decoder does not operate on coded parameters as would be
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 needed for a TFO transform, instead it operates on linear values deeper in the
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 decoder after parameter dequantization.
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 Given that Abis is a de facto proprietary interface that is not interoperable
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 between different vendors (and the same holds for Ater in those BSS designs
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 that separate the TRAU from the BSC), and given how daunting it seems to
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 implement a true TFO transform for EFR, prior to getting our Nokia TCSM2 lab
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 setup I was wondering if historical TRAU vendors really did implement this
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 TFO transform, or if perhaps they used some kind of "cheating" trick on their
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 Abis similar to what we did in OsmoBTS in mid-2023. However, once I got our
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 Nokia TCSM2 gear working, set up a TFO connection between two active TRAU
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 channels in EFR mode and passed some test sequences through it, it became clear
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 that Nokia did implement a real "honest-to-god" TFO transform for EFR: the
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 TRAU-DL frame stream is 100% valid "speech" frames (no idle frames or other
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 aberrations inserted) even when the TRAU-UL stream fed via TFO contains BFI
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 speech frames and DTXu pauses - the TRAU really does apply bad frame handling
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 and comfort noise insertion on parameter level.
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 Seeing that at least one major historical vendor did implement TFO transform
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 for EFR, and seeing the output from that transform, has set up a sportive
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 challenge for me: I no longer have a valid excuse to not do it. I now have a
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 desire to produce a FOSS implementation of TFO transform for EFR in Themyscira
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 libraries (probably in libgsmefr), and make it no worse than Nokia's
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 implementation in TCSM2.
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 Bad frame handling in speech mode
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 =================================
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 Looking at the DL speech frames that were synthesized by the TRAU in those
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 frame positions where the incoming UL stream via TFO had BFIs, we can make the
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 following observations:
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 * The 5 LPC parameters are different in each generated substitution/muting
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 frame, hence it looks like the TFO transform is running the quantization
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 algorithm for each output frame to produce LPC parameters that aim for the
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 substitution/muting LSFs of the official "example solution".
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46
37
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
47 If the series of BFI inputs continues for a while, the emitted LPC parameters
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
48 settle into an oscillating pattern that alternates between two sets of
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
49 numbers.
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
50
36
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 * LTP lag parameters remain constant for each run of BFIs between good speech
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 frames; the lag value encoded therein matches the LTP lag (integer part only)
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 from the 4th subframe of the last good speech frame, just like in the official
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 endpoint decoder.
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 * Surprising bit: the 4 LTP gain values from the last good speech frame are
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 endlessly regurgitated verbatim in each substitution/muting frame, without
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 any signs of the attenuation I expected to see based on the official "example
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 solution".
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 * Another surprising bit: the 35-bit fixed codebook sequence in each subframe
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 is taken from the corresponding subframe of the last good speech frame,
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 contrary to the official "example solution" that takes these bits from the
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 errored frames.
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 * The four fixed codebook gain parameters in the emitted substitution/muting
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 frames differ from one frame to the next in the case of multiple BFI frames
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 in a row, and they also differ between subframes in the same frame - hence
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 these parameters are clearly being regenerated as output progresses. However,
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 the quantization algorithm for this parameter is so complex that I haven't
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 been able to make a more intelligent analysis yet.
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72
37
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
73 If the series of BFI inputs continues for a while, the emitted fixed codebook
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
74 gain parameters slowly go down and eventually become all zeros - although the
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
75 exact meaning is still unclear given the highly non-intuitive quantization
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
76 algorithm.
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
77
36
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 Looking at the first good speech frame that follows each BFI substitution/muting
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 insert, we see that it is mostly unaltered: no alterations were seen to LPC or
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 LTP parameters, in particular. However, in the case of the fixed codebook gain
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 parameter we see a different behavioral pattern: most of the time it is also
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 unaltered, but sometimes we see reduction in this parameter, and even then it
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 is only in certain subframes. Are we perhaps seeing a capping of the fixed
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 codebook gain in the first good frame following BFI, similar to that implemented
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 in the reference endpoint decoder? A better understanding of the quantization
d9553c7ac6ea doc/TFO-xform/EFR: beginning of article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 mechanism for this parameter will be needed.
37
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
87
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
88 CN insertion by TFO transform
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
89 =============================
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
90
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
91 Looking at the DL speech frames that were synthesized by the TRAU in those
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
92 frame positions where the incoming UL stream via TFO had DTXu pauses (valid SID
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
93 frames followed by BFIs), we can make the following observations:
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
94
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
95 * The 5 LPC parameters appear to be generated anew on each output frame just
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
96 like in the substitution/muting case, and it likewise appears that the TFO
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
97 transform is running the regular LSF quantization algorithm taken from the
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
98 encoder.
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
99
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
100 * The 4 LTP lag parameters are set to {135, 33, 135, 33} in each generated CN
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
101 frame, in agreement with how the official endpoint decoder sets the pitch
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
102 delay to constant value 40.
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
103
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
104 * The 4 LTP gain parameters are all set to 0, also in agreement with CN
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
105 generation in the official endpoint decoder.
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
106
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
107 * The 35-bit fixed codebook part of each subframe appears to be set to a
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
108 pseudorandom sequence, different in each emitted frame and subframe. My
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
109 analysis tells me it should be possible to construct fixed codebook sequences
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
110 in "speech" output frames that would produce the same excitation as the
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
111 official bit-exact CN - although the final PCM output probably won't match
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
112 the official bit-exact CN because of LSF and fixed codebook gain
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
113 requantization. However, we won't know whether or not the output from
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
114 Nokia's TFO transform matches our idea of official-CN-matching fixed codebook
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
115 excitation until we have our own implementation of this idea and compare
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
116 the two.
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
117
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
118 * The four fixed codebook gain parameters in the emitted CN frames are once
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
119 again too difficult to understand for now - but they are definitely being
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
120 recomputed anew for each emitted CN frame and subframe.
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
121
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
122 If CN muting kicks in on the second lost SID (BFI instead of SID received in
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
123 TAF position), we see the following additional behaviour:
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
124
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
125 * On the TAF-position frame that initiates CN muting, the emitted LPC parameters
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
126 break out of the alternating pattern they previously settled into. They go
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
127 through a few unique number sets, then settle into a two-state oscillating
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
128 pattern once again. Is the TFO transform perhaps making a switch from
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
129 last-SID LSF numbers to the static "mean" ones when it goes into CN muting?
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
130
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
131 * The emitted fixed codebook gain parameters start going down and eventually
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
132 become all zeros.
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
133
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
134 Looking at the first good speech frame that follows each CN insertion period,
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
135 we see only two alterations made by the TFO transform: the 5 LPC parameters and
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
136 the first subframe fixed codebook gain parameter are modified, presumably to
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
137 compensate for the lack of quantizer state reset that happens when the end
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
138 decoder has seen a CN insert. No more speech parameter alterations are seen
4ab7cc414ed2 doc/TFO-xform/EFR: document CN insertion
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
139 past the first subframe of the first frame following the DTXu pause.