ГОСТ Р 53556.4-2013
6.13 Перцепционная шумовая замена (PNS)
6.13.1 Описание инструмента
Этот инструмент используется, чтобы реализовать кодирование замены перцепционного шума впре
делах ICS. Таким образом, определенные наборы спектральных коэффициентов получают из случайных
векторов, а не из кодированных по Хаффману символов и процесса инверсного квантования. Это делается
выборочно на базе полосы масштабного коэффициента и группы, когда перцепционная шумовая замена
отмечается как активная.
PNS также может быть использован в сочетании с bit sliced арифметическим кодированием. В то
время каксинтаксис полезной нагрузки потока битов там отличается, процессдекодирования является тем
же самым.
6.13.2 Определения
hcod_sf[}
dpcm_noise_nrg [] []
noise_nrg [группа] [sfb]
spec []
Кодовая комбинация Хаффмана изтаблицы кедов Хаффмана, используемаядля
кодирования масштабных коэффициентов.
Дифференцированно закодированная шумовая энергия.
Шумовая энергия для каждой группы и полосы масштабного коэффициента.
Массив, содержащий спектр соответствующего канала.
6.13.3 Процесс декодирования
Об использовании инструмента замены перцепционного шума сообщается при помощи использова
ния псевдо сборника кодов NOISE_HCB (13).
Если та же самая полоса масштабного коэффициента и группа кодируются перцепционной шумовой
заменой вобоих каналах из пары каналов, корреляцией шумового сигнала можно управлять посредством
поля ms_used. В то время как процесс генерации шума по умолчанию работает независимо для каждого
канала (отдельная генерация случайных векторов), тот же самый случайный вектор используетсядля обо их
каналов, если ms_used (] устанавливается для определенной полосы масштабного коэффициента и
группы или ms_mask_present устанавливается в ’10’. В этом случае никакое кодирование стерео М/S не
выполняется (потому что кодирование стерео М/S и кодирование замены шума являются взаимоисключа
ющими). Если та же самая полоса масштабного коэффициента и группа кодируются перцепционной шумо
вой заменой только в одном канале пары каналов, установка ms_used[] не учитывается.
Информация об энергии для декодирования перцепционной шумовой замены представляется вели
чиной шумовой энергии, указывающей полную энергию заменяющих спектральных коэффициентов с ша
гом 1.5 дБ. Если кодирование шумовой замены является активным для определенной группы и полосы
масштабного коэффициента, вместо масштабногокоэффициента соответствующегоканала передается ве
личина шумовой энергии.
Шумовые энергии кодируются точно также как масштабные коэффициенты, то есть методом кодиро
вания Хаффманадифференциальныхзначений:
- стартовое значение для декодирования DPCMдается global_gain:
-дифференциальное декодирование производится отдельно между масштабными коэффициентами,
позициями интенсивности стерео и энергиями шума. Иначе говоря, декодер шумовой энергии игнорирует
значения вставленных масштабных коэффициентов и позиции интенсивности стерео и наоборот.
Для кодирования шумовых энергий используется тот же самый сборниккодов, что и для кодирования
масштабных коэффициентов.
Для использования в декодировании замены перцепционного шума определяется одна псевдо
функция:
function is_noise(group.sfb) {
1
for window groups / scalefactorbands with
codebook sfb_cb[group][sfb] == NOISE_HCB
0
otherwise
}•
Процесс декодирования шумовой замены для одного канала определяется следующим псевдо
кодом:
nrg = global_gain - NOISE_OFFSET-
256.
for(g-
0
.g<num_window_groups: g**) {
/* Decode noise energies for this group V
for (sfb=0; sfb<max_sfb; sfb*-*-) {
if (is_rtoise(g.sfb)) {
175