Статус документа
Статус документа

ГОСТ Р 53556.4-2013 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. Часть III (MPEG-4 AUDIO). Основные методы кодирования звуковых сигналов (GA): усовершенствованное звуковое кодирование (AAC), взвешивающее векторное квантование (TwinVQ), побитовое арифметическое кодирование (BSAC)

    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'. В этом случае никакое кодирование стерео M/S не выполняется (потому что кодирование стерео M/S и кодирование замены шума являются взаимоисключающими). Если та же самая полоса масштабного коэффициента и группа кодируются перцепционной шумовой заменой только водном канале пары каналов, установка ms_used [] не учитывается.

Информация об энергии для декодирования перцепционной шумовой замены представляется величиной шумовой энергии, указывающей полную энергию заменяющих спектральных коэффициентов с шагом 1,5 дБ. Если кодирование шумовой замены является активным для определенной группы и полосы масштабного коэффициента, вместо масштабного коэффициента соответствующего канала передается величина шумовой энергии.

Шумовые энергии кодируются точно так же как масштабные коэффициенты, то есть методом кодирования Хаффмана дифференциальных значений:

- стартовое значение для декодирования DPCM дается global_gain;

- дифференциальное декодирование производится отдельно между масштабными коэффициентами, позициями интенсивности стерео и энергиями шума. Иначе говоря, декодер шумовой энергии игнорирует значения вставленных масштабных коэффициентов и позиции интенсивности стерео и наоборот.

Для кодирования шумовых энергий используется тот же самый сборник кодов, что и для кодирования масштабных коэффициентов.

Для использования в декодировании замены перцепционного шума определяется одна псевдофункция:

function is_noise(group,sfb) {

1 for window groups / scalefactor bands 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 */

for (sfb=0; sfb<max_sfb; sfb++) {