ГОСТ Р 53556.12-2014
/
J
/
Основанная на получающихся коэффициентах
LPC
с фиксированной точкой детермини
рованная целочисленная версия фильтра
TNS
применяется к целочисленному спектру в декоде
ре. Это делается путем замены функции
tns_ar_filter
() функцией
int_tns_arJUter
(), описывае
мой следующим псевдокодом:
int_tns_ar,_fHter(lNT52 *spec, size, inc, INT32 *lpc, order)
I
IN732 y, state[TNS_MAX_ORDERf:
INT64 tempjaccu;
for (i=0; i<order; i++)
state!i]
= 0.’
if(inc
== -1
)
spec
+=
size-1;
for
(7=0;
i<size:
/+
+)
/
у =
*spec;
tempjaccu
= 0;
for
0
=
0
;
j<order:j+ +) {
tempjaccu
+=
((INTM)lpc[j+l])
*
state!]];
}
у
-=
HN732H ( ( tempjaccu »(SHIFTJNTTNS-1))+ l ) » l );
for (j=order-
1;
j>
0;
j--)
state!jl
=
state!j-
1/•’
state[Q]
=
y;
*spec
=
y;
spec
+=
inc;
I
}
Если используется
StereoInt.VIDCT,
вместо спектра
UR
целочисленные спектральные
значения представляют спектр
М/S.
В этом случае перед
IntTNS
должно быть применено ин
версное целочисленное Л/Л, а последолжно быть применено прямое целочисленное Л/Л.
Чтобы гарантировать реконструкцию без потерь, в кодере должен быть применен к цело
численному спектру соответствующий прямой прогноз
LPC.
Это достигается применением к
целочисленному спектру функции
int_rns_decode_coeJ
() и соответствующего прямого фильтра,
как описано в следующем псевдокоде:
33