ГОСТ Р 53556.11—2014
6.3.1.3Преобразование восстановленных коэффициентов рагсог в коэффициенты прямого
фильтра
Масштабированные коэффициенты рагсог затем преобразовываются в коэффициенты LPC. ис
пользуя следующий алгоритм:
short т. /. К. Q = 20;
long ’cof. ’par, corr =1 « (Q - ^);
INT&4 temp, temp2:
for (m = 1. m <= K. m++J
{
for (i = f; i <=
m/2;
/++;
t
{
temp = cof[i] + ((((INTS4)par[m) * cof[m-i]) +
co
a
; » Q);
if ((temp > LONG_MAX) || (temp < LONG_MIN))// Overflow: use different
coefficients mturn(\);
temp2 = cof[m-i) + ((((INT64)par[mJ ’ cof[i]) * corr) » Q);
if((temp2 > LONG_MAX) || (temp2 < LONG_MIN)) //Overflow: use different
coefficients return(Л):
cof(m-i) = (long)temp2:
coffi] = (long)temp:
}
cof[m] = par[m];
}
Здесь LONG_MAX = 231 - 1 и LONG_MIN = -(231). Получающиеся коэффициенты LPC cof также
масштабируются с 220. Масштабирование будет учтено во время процесса фильтрации.
6.3.2 Фильтр прогноза
Вычисление спрогнозированного сигнала должно быть выполнено детерминированным спосо
бом, чтобы включить идентичное вычисление и в кодере, и в декодере, поэтому невозможно использо
вать коэффициенты с плавающей запятой. Вместо этого используют целочисленное представление с
увеличением масштаба. Так как коэффициенты увеличиваются с множителем 2° = 220, предсказанный
сигнал также будет увеличен тем же самым множителем. Таким образом в конце процесса фильтрации
масштаб каждой выборки предсказанного сигнала должен быть уменьшен.
6.3.2.1 Кодер
Следующий алгоритм описывает вычисление остатка d для входного сигнала х, длины блока N,
порядка прогнозирующего устройства К и коэффициентов LPC cof.
shortп. N. к. К. 0 = 20;
long *х.
*d.
’cof. corr = 1« (Q - 1);
INT&4 у;
for (n = 0. n < N: n++)
{
у = corr:
for(k =
1;
k< - K: k++)
у ♦= (INT64)cof[k-1) * x[n-k];
d[n] =x[n] + (long)(y » Q):
}
Чтобы предсказать первую выборку текущего блока, прогнозирующее устройство использует по
следние К выборок из предыдущего блока.
Если текущий блок (или подблок) является первым блоком канала во фрейме с произвольным до
ступом. никакие выборки из предыдущего блока не могут использоваться. В этом случае используется
прогноз с прогрессивным порядком, где масштабированные коэффициенты рагсог прогрессивно кон
вертируются в коэффициенты LPC cof в фильтре прогноза. В каждой рекурсии вычисляются величина
текущего остатка d(n) и новый набор л+1 коэффициентов LPC (первый цикл). После того, как вычисля
ются первые значения остатка К и все К коэффициенты, используется прогноз полного порядка (второй
цикл). Индексы для par и cofв этой реализации начинаются с 1.
24