The GSC_noisy_speech flag is set in the S/M classifier, in function ivas_smc_mode_selection(), indicating that there is SWB speech content that would best be encoded with the GSC mode instead of the ACELP UNVOICED mode. In the same function st->coder_type is set to AUDIO. Later in the encoding process, in the function pre_proc_ivas(), the flag is reset to 0 because the conditioin
st->total_brate <= MIN_BRATE_GSC_NOISY_FLAG
is not fullfilled. However, st->coder_type is still set to AUDIO.
In the decoder, GSC_noisy_speech flag is not decoded and set to 0. Due to this, the comfort noise estimation (minimum statistics) is disabled because it is not applied for “music-like” signals which is detected from
st->coder_type == AUDIO && !st->GSC_noisy_speech
Therefore, the estimated background noise shape is not updated in AUDIO active speech segments. This is usually not a problem as it’s re-activated again in the first few INACTIVE frames after each talk spurt. However, it should be noted that the background noise level is also NOT updated even when the energy of the input signal decreases below the current level of the background noise.
In the ISM adaptive bit allocation mechanism, bits are re-distributed among objects based on their “importance”. It may happen that this mechanism decides than an object is encoded with the TD low-rate mode which is essentially GSC core at 2.45 kbps. In this mode, GSC_noisy_speech flag is automatically set to 1 and it is also encoded in and decoded from the bitstream. Setting GSC_noisy_speech flag basically unlocks the
1 bit would be Then, inside the GSC encoder, the in function gs_enc(), it is decided that no 1 bit i. in the function s. Later on, in the function