ГОСТ Р 53556.4—2013
Затем декодируются коэффициенты усиления подполосы, используя инверсный квантователь по
mu-закону, описанный следующим образом:
for (i_ch = 0: i_ch <N_CH: i_ch ++) {
if (N_SF> ! ) {
for (isf = 0; isf <N_SF: isf **) {
gjem p = index_gain_sb [i_ch] [isf+1] * SUB_STEP *SUB_STEP/2.:
subg_ratio [isf] =
(SUB AMP MAX * (exp10 (gJemp’logW (Л. ♦ MU)/SUB_AMP_MAX)-1)/MU)
/ SUB_AMP_NM;
}
}
else {
subg_ratio fi_ch] [0] =
1
;
f
}■
Восстанавливаются коэффициенты усиления следующим образом:
for (i_ch = 0; i_ch <N_CH; i_ch + *){
for (isf = 0. isf <N_SF; isf ++) {
gain [i_ch] [isf] = giobal_gain fi ch] * subg_ratio fi_ch) [isf]/ SUB_AMP_NM:
}
}■
6.10.3.3 Декодирование периодических пиковых компонентов
Периодические пиковые компоненты опционнодобавляются к входным коэффициентам. Периодичес
кие пиковые компоненты кодируются, используя векторное квантование. Этот процесс является активным,
когда параметры ррс_presontустанавливаются в TRUE. Иначе все элементы выходного массива, pif_seq []
обнуляются и процесс пропускается.
MAXBITP =
6
PIT_CB_SIZE = П «МАХВ1Т_Р).
6.10.3.3.1 Декодирование полярности
for (idiv = 0; idiv <N_DIV_P: idiv +*) {
pol0[idiv) = 2 * (index_shapcO_p [idiv]/ PIT_CB_SIZE) - 1;
poll [idiv] = 2 * (indox_shape1_p [idiv]/ PIT_CB_SIZE) -1;
}■
6.10.3.3.2 Декодирование кода формы
for (idiv = 0, idiv <N_DIV_P; idiv +■*■) {
indexO [idiv] = indox_shape0_p [idiv] % PIT_CB_SIZE:
indexl [idiv] = index_shape‘\_p [idiv] % PIT_CB_SIZE:
}■
Декодирование усиления периодических пиковых компонентов:
for (i_ch = 0. i_ch <N_CH: i_ch ++) [
temp = index_pgain [i_ch] *PGAIN_STEP + PGAIN_STEP/2;
gain_p [i_ch] =
(PGAIN_MAX’ (exp10 (tempToglO (1. +PGAIN_MU)/PGAIN MAX)-!)
/PGAIN MU)/AMP_NM:
}■
6.10.3.3.3 Реконструкция периодических пиковых компонентов
Имеется два шага процедур. Сначала вычисляются длины векторов кода для периодических пико
вых компонентов lengthp[]. затем вычисляются периодические пиковые компоненты pit]],
for (idiv = 0: idiv <N_DIV_P; idiv ++) {
lengthp[idiv] = (N_FR_P‘N_CH+N_DIV_P-1-idiv)/ N_DIV_P:
}
for (idiv = 0; idiv <N_DIV_P: idiv ++) {
if (N_CH — ! ) {
for (icv =
0
; icv <lengthp [idiv]: icv ++) {
ismp = idiv + icv * N_DIV_P:
157