ГОСТ Р 53556.2—2012
;
for 0
=
0:i < LPCORDER:i*+) {
if (lsp__currenlfi] > 1-min_gap)
fsp_currentfi]
=
1-min_gap;
}
for (i
=
LPCORDER-1:i >0; /--){
if (lsp_currenl(ij-lsp_current[i-1} < min_gap) {
lsp_currentfi-1]
=
lsp_currentfi]-min_gap;
}
}
for (i
=
0:i <LPCORDER;i++){
qLsp{i] = lsp_currenl[i}:
}
где
minjgap
= 4.0/256.0
Пекле промесса кодирования
LSP
текущие
LSPs
должны быть сохранены в памяти, так как они используют
ся для предсказания в следующем фрейме.
for (i
=
0:i <LPCORDER
.
t++) {
Isp_previous[i] = Isp_cvrrent(i}:
}
Сохраненные
LSPs Isp_previous []
должны быть инициализированы как описано ниже, когда весь кодер
инициализирован.
for (I
=
О:i < LPCORDER
.
i++) {
Ispj>revious[i] = (i+1)
/
(LPCORDER+1);
}
Третья стадия для уровня расширения (4.0 и 3.7 Кбит/с) имеет 10-мерную структуру
VQ.
Ошибка между
версией квантования базового уровня и оригинальной версией квантуется, и соответствующий индекс сохраняет ся
в
LSP5.
После квантования
LSP5
уровня расширения qLspl] снова стабилизируются.
for (i =О:i<
2:i+*)
{
if (qLsp[i
+
1)- qLspp]
<
0)
{
Imp
=
qLspfi
+
4
qLspfi +1] =
qLspfi]:
qLspfi]
=
Imp:
}
if (qLspfi
+
1 ]-qLspfi] < THRSLD_L)
{
qLspfi
+
1]
=
qLspfi]
+
THRSLD_L:
}
}
for (i
=
2:i < 6;i++)
{
if (qLspfi
+
1]- qLspfi]< THRSLD__M)
{
tmp
=
(qLspfi + 1]
+
qLspfi])
/
2.0:
qLspfi +1] = imp
+
THRSLD__M/ 2.0;
qLspfi] =tmp- THRSLD_M
/
2.0:
)
}
for (i
=
6:i < LPCORDER- 1:
/++)
{
if (qLspfi + 1]- qLspfi] <0)
{
tmp
=
qLspfi
+
1]:
qLspfi
+
1]
=
qLspfi]:
qLspfi]
=
tmp:
50