4. State Variable Updates During Discontinued Transmission
Maintaining the correct state of internal codec variables during inactive frames (i.e., during discontinued transmission) is essential for ensuring a seamless and high-quality transition when speech resumes. Annex C+ specifies distinct update procedures for the states associated with Annex D and Annex E to preserve codec integrity. Failure to perform these updates correctly can result in audible artifacts, such as clicks or pops, and incorrect filter states upon the resumption of active speech.
4.1 Updates Specific to Annex D
When operating with Annex D (6.4 kbit/s) and DTX is active, the update procedure for inactive frames is minimal. Only the state variables of the phase dispersion module are updated. This procedure mirrors the update process used in the nominal 8 kbit/s bit rate. However, the gain estimations required for the update are derived from the comfort noise generation parameters, ensuring the postfilter is primed with an appropriate gain level when transmission resumes.
4.2 Updates Specific to Annex E
The state update procedures for Annex E (11.8 kbit/s) are more comprehensive, addressing both the encoder and decoder.
- Encoder: For inactive frames at the encoder, the state variable update procedure is identical to that of the nominal 8 kbit/s mode, with two key exceptions. First, the global stationarity indicator is reset to 0. Second, the interpolation factor used to smoothly transition from the LP filter to the backward LP filter is reset to its maximum value. This ensures the codec is correctly initialized for the next active frame.
- Decoder: At the decoder, the update procedure for inactive frames is almost identical to that of the 6.4 kbit/s and 8 kbit/s modes. The only exception pertains to the forward-mode-only rates (8 kbit/s and 6.4 kbit/s), which update their pitch delay stationary indicator to 1. This update is performed by the pitch tracking procedure.
These algorithmic descriptions provide the theoretical foundation, which is complemented by the practical C-code implementation provided with the recommendation.