ГОСТ Р 53556.3—2012
temp
/=
(2
*
32768),
return (temp);
}
5.9.3.3.7.3 Генерация мультиимпульсного возбуждения
В случае, когда для кодирования голосовых фреймов используется
МРЕ.
сигнал мультиимпульсно
го возбуждения генерируется для каждого подфрейма случайным выбором позиций и знаков импульсов.
Мультиимпульсные структуры
MPEG-4
версии 1
CELP
с
MPE_Configuration=
24 и 31 используются для
частотыдискретизации 8 и 16 кбит/с соответственно. Позиции и знаки 10 импульсов генерируются в векторе
с 40 отсчетами. Для размера подфрейма 80 отсчетовдважды генерируется 20 импульсов в векторе с 80
отсчетами. Индексы позиций и знаков
mp_pos_idx
и
mp_signjdx
генерируются в каждом подфрейме сле
дующим образом:
if (subframesize is 40samples)
{
setRandomBits (&mp_pos_idx. 20. seed):
setRandomBits
(&mp_sgnjdx. 10.seed);
}
if (subframesize is 80samples)
{
setRandomBits (&mpjx>s_idx_1st_half. 20. seed);
setRandomBits (&mp_sgn_idx_1st_half. 10.seed):
setRandomBits (&mp_pos_idx_2nd_half. 20. seed);
setRandomBits (&mp_sgnjdx_2nd_hatf. 10.seed):
}
где
mp_pos_idx_1st_half,
и
mp_sgn_idx_1st_half—
индексы позиций и знаков первой половины под
фрейма и
тр_pos_idx_2nd_half,
и 20
mp_sgnjdx_2nd_half
— индексы для второй половины. Функция
setRandomBitsO
определяется в 5.9.3.3.7.5.
5.9.3.3.7.4 Возбуждение регулярным импульсом
В случае, когда
RPE
используется для кодирования речевых фреймов, сигнал возбуждения регу
лярным импульсом генерируется для каждого подфрейма. В случае неактивных фреймов контент адап
тивной книги шифров инициализируется нулем. Для неактивных фреймов используется только фиксиро
ванная книга шифров. Сигнал возбуждения фиксированной книги шифров генерируется, используя слу
чайный
shapeJndex.
как вход для процесса декодирования
RPE.
setRandomBits (&shape Jndex. n_tnts. seed);
rpeJndex
=
shapeJndex:
rpe_phase
=
rpe Jndex %D;
rpeJndex
=
rpeJndex/D;
for (n = N p- 1; n >= 0
.
n- -)
{
rpe_amps[n]
=
(rpeJndex % 3)- 1;
rpeJndex - rpeJndex/3;
}
for (n -0 ;n < sbfrm_size: n++)
{
fcb_cng(n]
=
0.0F:
)
for (n = 0; n <Np: n*+)
{
fcb_cng[rpe_phase
+
D’n] - gn[RPE_Configuration]
*
(float)(rpe_amps[n]):
}
nbits
устанавливается в 11для
RPE_Configurations
0 и 1 и устанавливается в 12 для
RPE_configurations
2 и 3. D является коэффициентом децимации (прореживания).
Np —
число импульсов в подфрейме и
CELP
версии 1. Коэффициент
sbfrm_size
— число отсчетов в подфрейме, как определено в
MPEG-4
нормализации
дп
определяется втаблице 106.
67