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

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

     6.9 Временное формирование шума (TNS)


(Аналогично ГОСТ Р 54713-2011)

6.9.1 Описание инструмента

      

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

    6.9.2 Определения

n_filt[w]

Число фильтров формирования шума, используемое для окна w.

coef_res[w]

Маркер, указывающий на разрешение переданных коэффициентов фильтра для окна w, переключающееся между разрешением 3 бита (0) и 4 бита (1).

length [w] [filt]

Длина области, к которой применяется один фильтр в окне w (в единицах полос масштабного коэффициента).

order [w] [filt]

Порядок одного фильтра формирования шума примененного к окну w.

direction [w] [filt]

Один бит, указывающий, применяется ли фильтр в восходящем (0) или нисходящем (1) направлении.

coef_compress [w] [filt]

Один бит, указывающий, опускаются ли при передаче (1) или нет (0) старшие значащие биты коэффициентов фильтра формирования шума в окне w.

coef [w] [filt] [i]

Коэффициенты одного фильтра формирования шума применяемые к окну w.

spec [w] [k]

Массив, содержащий спектр для окна w обрабатываемого канала.


В зависимости от window_sequence размер следующих элементов данных переключается для каждого окна преобразовывания согласно размеру этого окна:


Таблица 155 - Размер элементов данных

Имя

Окно с 128 спектральными линиями

Другой размер окна

'n filt'

1

2

Длина

4

6

Порядок

3

5

     

    6.9.3 Процесс декодирования

Процесс декодирования для временного формирования шума выполняется отдельно в каждом окне текущего фрейма, применяя полюсную фильтрацию к выбранным областям спектральных коэффициентов. Число фильтров формирования шума, применяемых к каждому окну, определяется "n_filt". Целевой диапазон спектральных коэффициентов определяется в единицах полос масштабного коэффициента, считающих в обратном порядке полосы длины от верхней полосы (или нижней предыдущей полосы формирования шума).

Сначала переданные коэффициенты фильтра должны декодироваться, то есть преобразовываться в числа со знаком, инверсно квантоваться, преобразовываться в коэффициенты LPC, как описано в функции tns_decode_coef(). Затем к целевым частотным областям спектральных коэффициентов канала применяются полюсные фильтры. Чтобы определить направление, в котором фильтр продвигают через коэффициенты, используется маркер "направление" (0=upward, 1=downward). Константа TNS_MAX_BANDS определяет максимальное количество полос масштабного коэффициента, к которым применяется временное формирование шума. Максимальный возможный порядок фильтра определяется константой TNS_MAX_ORDER. Обе константы являются зависимыми параметрами объектного типа.

Процесс декодирования для одного канала может быть описан следующим псевдокодом:

/* TNS decoding for one channel and frame */

tns_decode_frame ()

{

for (w = 0; w < num_windows; w++) {

bottom = num_swb;

for (f = 0; f< n_filt[w]; f++) {

top = bottom;

bottom = max(top - length[w][f], 0);

tns_order = min(order[w][f], TNS_MAX_ORDER);

if (!tns_order) continue;