FreeCalypso > hg > gsm-codec-lib
diff doc/FR1-Rx-DTX @ 250:731c98b67da1
doc/FR1-Rx-DTX: document changes from 1.0.1 to 1.0.2
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 12 May 2023 04:49:09 +0000 |
parents | fcc0887ff0d0 |
children | 4034c2b06ec8 |
line wrap: on
line diff
--- a/doc/FR1-Rx-DTX Fri May 12 03:49:51 2023 +0000 +++ b/doc/FR1-Rx-DTX Fri May 12 04:49:09 2023 +0000 @@ -159,6 +159,35 @@ Themyscira libgsmfrp implements the correct silence frame per the spec, and that datum is also made public. +libgsmfrp change history: version 1.0.1 to version 1.0.2 +======================================================== + +There are only two changes, both involving corner cases with invalid SID frames +being received: + +1) An invalid SID frame was received immediately following a good speech frame. + In this case we start CN generation, but we take the needed LARc and Xmaxc + parameters from the last speech frame, instead of the usual procedure of + extracting them from a valid SID frame. The change from 1.0.1 to 1.0.2 + concerns the Xmaxc parameter in this corner case: in 1.0.1 we took Xmaxc + from the last subframe and used it for ensuing CN generation, but in 1.0.2 + we compute a more proper mean Xmaxc from all 4 subframes, by dequantizing, + summing and requantizing. + +2) An invalid SID frame was received in the speech muting state. The sequence + of inputs would have to be: + + - a good speech frame; + - one or more BFIs, but not too many, so that the cached speech frame + does not decay fully by Xmaxc reduction; + - an invalid SID frame. + + In version 1.0.1 we handled this even more obscure corner case by entering + the CN muting state, i.e., the state that is normally entered upon the + second lost SID. In version 1.0.2 we ignore invalid SID in the speech + muting state and act as if we got BFI, i.e., continue speech muting rather + than switch to CN muting. + libgsmfrp change history: version 1.0.0 to version 1.0.1 ========================================================