ГОСТ Р 53556.7—2013
prevNumLine = numLine;
for (i = 0: / <prevNumLine: I +*){
prevILFreqlndex [i] = ILFreqlndox [i];
prevILAmplIndex [i] = ILAmplIndox [i];
}
Основной декодер также обрабатывает комбинации основного уровня и одного или более уров
ней расширения. Если данные из всех уровней расширения numLayer доступны базовому декодеру,
значения layNumLine [numLayer] и layPrevNumLine [numLayer] должны использоваться вместо numLine
иprevNumLine. соответственно. Значения ILAmplIndex[], ILFreqlndox [i], ImeContFlag [] и linoPred [i]. как
определено описанием синтаксиса потока битов, должны использоваться.
Амплитуды и частоты отдельных линий теперь деквантованы из индексов:
for (i = 0; i <numLine; i *■+) {
ampl[i] = 32768 *potv (10,-1,5 * (ILAmpllndex+0.5)120);
if (ILFreqlndox <160,)
freq Щ = (ILFroqlndex+0.5) *3,125.
else
freq 0 = 500 * exp (0.00625 *(ILFreqlndox*0.5-160Д;
Дополнительная информация о фазе запуска декодируется следующим образом.
for (i = О: i <numLine; i +*) {
if (UnePhasoAvail [i]) {
startPhase [i] = 2’pi * (linePhase [i] *0.5) /(1 «phasebits) - pi:
startPhaseAvailfi] = 1:
}
else
startPhaseAvail[i] = 0;
Если процесс декодирования стартует с произвольного фрейма потока битов, все отдельные ли
нии. которые отмечаются в потоке битов как продолжающиеся из предыдущих фреймов и не декодиро
вались. должны быть обеззвучены.
5.1.2.3.2 Декодер улучшения
Декодер улучшения уточняет параметры линии, полученные из основногодекодера, а также деко
дирует фазы линии. Дополнительная информация содержится в элементе потока битов INDIenhaPara 0 и
оценивается следующим образом:
Все операции базового декодера должны быть выполнены, чтобы можно было корректно декоди
ровать параметры для продолжающихся линий.
Если envFlag == 1. тогда улучшенные параметры t_maxEnh. r_atkEnh и r_decEnh декодируются с
использованием данных огибающей, переданных в HILNbasicFramo () и HILNenhaFrame ():
t_maxEnh = (envTmax + (envTmaxEnh*0,5)/ (1 «tmEnhbits)) / (1 «tmbits):
if (envRatk == 0)
r_atkEnh - 0:
else
r_atkEnh - tan (pi/2 *(envRatk-1 + (onvRatkEnh*0.5)/(A «atkEnhbits)) /
((1 «atkbits)--\))A).2:
if (envRdec ==0J
r_decEnh = 0;
else
r_decEnh = tan (pi/2 * (envRdec-1 + (envRdecEnh+0.5) / (1 «decEnhbits)) /
((1 «decbits)-1Д/0.2.
35