ГОСТР 54713—2011
мы с итеративным улучшением оценок, т. е. от отсчета к отсчету. Здесь используется метод наименьших
квадратов (LMS)и коэффициенты предсказания вычисляются следующим образом:
кп(п +1)
CORm(n)
VARm(n)
С
CO R Jn)- aC O R Jn-V % да_,(г>-1) ■
VARJn)
=
a-VARJn-
1)* 0.5 ■(<£..,(/>-1) +в|Л.,(п)).
где а — время адаптации, постоянная, которая определяет влияние текущего отсчета на оценку
математического ожидания, а =0.90625.
Оптимальные значения коэффициентов затухания а и Ь должны быть определены из-за компромисса
между высоким усилением предсказания и быстрым временем спада. Выбранные значения а = b =0.953125
независимо от того, выключено ли предсказание вообще или только для определенной полосы масштаб
ных коэффициентов, или. все предсказатели вычисляются постоянно, для постоянной адаптации коэффи
циентов к текущей сигнальной статистике.
Если window_sequence имеет типы ONLY_LONG_SEQUENCE, LONG_START_SEQUENCE и
LONG_STOP_SEQUENCE, отличается только вычисление восстановленного значения квантованныхспек
тральных компонентов в зависимости от значения бита prediction_usod:
если бит установлен в (1). то квантованная ошибка предсказания, восстановленная по переданным
данным, прибавляется к оценке х01, (п)вычисленной предсказателем, образуя восстановленное значение
квантованного спектрального компонента, т. е. хпс (л) = xoi((л) + е, (л);
если бит неустановлен в (0), то квантованное значение спектрального компонента восстанавливается
непосредственно по переданнымданным.
В случае коротких блоков, т. е. \vindow_sequenco имеет тип EIGHT_SHORT_SEQUENCE. предсказа
ние всегда отключается, и выполняется сброс всех предсказателей во всех полосах масштабных коэффи
циентов. который эквивалентен инициализации (см. 11.3.2.4).Для single_chamrel_ element ()обработка пред
сказателя для одного фрейма выполняется согласно следующему псевдокоду.
(Предполагается, что восстановленное значение у_гес(с), которое является либо восстановленной
квантованной ошибкой предсказания, либо восстановленным квантованным спектральным коэффициен
том. доступно из предыдущей обработки.)
if(ONLY_LONG_SEQUENCE | |LONG START_SEOUENCE \ \
L ONG_SТОР_ SEQUENCE) {
for (sfb = О: sfb <PRED_SFB_MAX: sfb ++) {
fc = swb_offsetjong_window [fsjndex] [sfb]:
Ic =swb_offset_long_window [fsjndex] [sfb+1];
for (c = fc; c <Jc: c +*) {
x_est [c] = predictQ,
if (predictor_data_present && prediction_used[sfb])
x_rec [c] = x_ost [c] + y_roc [c]:
else
x_rec [c] = y je c [cj:
}
else {
reset_all_predictors().
В случае channel_pair_e!ement () c common_window= 1единственное отличие заключается в том, что
вычисление x_est и x jo c во внутренней петле цикла выполняется для обоих каналов, связанных с
channel_pair_element (). В случае diannel_pair_elemont () с common_window = 0 у каждого канала есть
предсказание в соответствии с канальной служебной информацией предсказания.
11.3.2.2 Квантование при вычислении предсказания
Для заданного предсказателя должны быть сохранены шесть параметров состояния: г0, и, СО/?,.
COR2, VAR, и VAR2.
Э
ти
переменные хранятся как округленные IEEE-числа с плавающей запятой (т.
е. 16 старших разрядов слова).
70