ГОСТ Р 53556.7—2013
до другого. Если строка должна продолжаться от предыдущего фрейма, квантуются только частота и амплитудные
изменения и передаются вместо абсолютной частоты иамплитудных значений. Продолжение строки используется,
если относительное изменение частоты
не превышает порог q( тахи если отношение амплитуд
(. А)= еслиа; (т)
2
ак {т -1)
|ak ( т - 1)/э,(го). еспиЗ) (ш) £ ак (т -1)
находится в пределах интервала [1... qfЕсли есть более одной возможности продолжать строку от
предыдущего фрейма, выбирается та строка в предыдущем фрейме, для которого следующий критерий достигает
своего максимума:
q
_
41.та»
9n’»-AI <Тдлич
■ЧаК’М)
41.тл,iq a m n
Частоты и амплитуды отдельных строк квантуются согласно шкале частот и логарифмической шкале ампли
туд. Для каждой строки предыдущею фрейма бит продолжения передается в потоке битов, который указывает,
продолжается ли строка в текущем фрейме или нет. Для новых строк индексы для квантованной частоты и ам
плитуды кодируются, используя SubDivisionCode (SDC). Для всех строк, продолжаемых от предыдущего фрейма,
индексные различия частоты и амплитуды, кодируются с кодом энтропии.
Так как основной поток битов не содержит фазовую информацию, нет необходимости вычислять остаточный
ошибочный сигнал, вычитая соответствующий выходной сигнал декодера входного сигнала. Чтобы включить режи
мы масштабируемости, в которых остаточный сигнал передается в потоке битов более высокой скорости передачи,
генерируют дополнительный поток битов улучшения. Это создается следующим образом.
Если параметры конверта передаются в основном потоке битов, для лучшего квантования передаются до
полнительные биты 3 параметров конверта.
Если строка запускается, то есть не продолжаемая от предыдущего фрейма, и его частота превышает дан
ный порог, для лучшего квантования передаются дополнительные биты абсолютной частоты.
Для каждой строки фазовый параметр передается после универсального квантования.
Число битов на фрейм в потоке битов улучшения может измениться, это должно быть принято во внимание
в вычислении доступных битов для кодирования остаточной ошибки.
Так как позиция продолжительной строки в текущем фрейме зависит от позиции его предшественника в пре
дыдущем фрейме, используется алгоритм выделения, который гарантирует, что строки N. переданные в текущем
фрейме, всегда являются N большинством соответствующих строк, найденных циклом анализа’’синтеза.
Системная задержка кодера равна 1.5 длины фрейма. Эта задержка следует из длины фрейма непосред
ственно и дополнительной задержки (0.5) времени длины фрейма, вызванная смещенным накладывающимся ок
ном. используемым для оценки частоты.
SDC-кодирование:
к: число кодовых комбинаций (0... к-1)
г: значение для кодирования
tab: таблица, содержащая доменные пределы
void SDCEncode (int к. i. int ’tab)
{
in t"pp:
int g. dp. min. max. cwl:
long cw:
cw=cwl=Q;
min=0
max=fc-1;
pp=tab+16;
ф=16;
while (min ! = max)
{
if (dp)g=(k’(’pp))» 1 0. else g = (max+min)»);
d p » = 1;
cw « = 1;
cw/++;
if (i<-g){pp -=dp: max=g;} else {cw |=1. pp+=dp: min=g*^:}
51