ГОСТ Р 54713—2011
Приложение В
(обязательное)
Кодер
В.1 Психоакустическая модель
В.1.1 Общиесведения
В этом приложении представлена психоакустическая модель для кодера ААС. Психоакустическая модель
вычисляет максимальную энергию искажений, которая маскируется энергией сигнала. Эту энергию называют
порогом маскирования.
У
процесса вычисления порога маскирования есть три входа:
1 Длина сдвига для процесса вычисления порога маскирования
iblen.
Параметр
iblen
должен оставаться
постоянным. Так как необходимо вычислить пороги для двух различных длин сдвига, необходимо два
процесса, каждый со своей фиксированной длиной сдвига. Для длинного быстрого преобразования Фурье
(Б
Л
Ф)
iblen
=
1024. для короткого БПФ
iblen
=
128.
2 Для каждого типа БПФ следующие
iblen
отсчетов сигнала с задержанными отсчетами (в банке фильтров
или в блоке психоакустического расчета) располагаются таким образом, чтобы окно психоакустического расчета
оказалось по центру окна частотно-временного преобразования.
3 Частота дисхретизации. Существуют наборы таблиц, предусмотренные для стандартных частот дискрети
зации. Частота дискретизации так же. как
iblen.
должна оставаться постоянной в течение одной реализации
процесса вычисления порога маскирования.
Выходы психоакустической модели:
1 Набор отношений сигнал-маска и значений порога, которые адаптируются к кодеру как описано ниже.
2 Задержанные временные данные (ИКМ-отсчеты). которые используются МДКП.
3 Тип блока МДКП (длинный, стартовый, столовый или короткий).
4 Оценка количества битов, которое должно использоваться для кодирования в дополнение к среднему
количеству доступных битов.
Задержка ИКМ отсчетов необходима, ибо алгоритм переключения обнаруживает резкую атаку, т. е. для
фрейма должны использоваться короткие блоки, длинный блок перед короткими блоками должен быть изменен на
стартовый.
Перед начальной реализацией модели массив с предыдущих данных БПФ и массивы
г (w)
и
(
<и>) должны
быть обнулены для обеспечения известной начальной точки.
В.1.2Комментарии
В процессе вычисления порога маскирования используются три индекса для значений данных:
w
— индекс частотной линии спектра БПФ. Индекс 0 соответствует постоянной составляющей, индекс 1023 соот
ветствует линии спектра на частоте Найквиста.
b
— индекс частотной полосы. Если вычисление включает свертку или сумму,
bb
используется в качестве пере
менной суммирования. Нумерация полос начинается с 0.
л — индекс полосы масштабных коэффициентов. Индекс 0 соответствует самой низкой полосе масштабных коэф
фициентов.
В.1.3Функция маскирования
В психоакустическом расчете используется «функция маскирования». Она вычисляется следующим
образом:
ifj >=i
Impx =3.0 Q-i)
else
tmpx =1.5 (j-i).
где / — значение, барк, определяющее расстояние от маскера.
j
— значение, барк, соответствущее положе
нию маскера.
tmpx
— временная переменная.
tmpz
=
8 * min
((tmpx-Q.bf-2 (tmpx-
0.5). 0).
где
tmpz
— временная переменная.
min(a. b)
— функция, возвращающая большее отрицательное значе
ние из а и б.
tmpy
=
15.811389 + 7.5
(tmpx
+ 0.474)-17.5 (1.0 +
(tmpx
+ 0.474}2)0 5.
где
tmpy
— временная переменная.
if(tmpy <-100) then {sprdngf(i.
j)
=0} else (sprdngf(i, j) = 10 A((tmpz + tmpy)!10))
B.1.4Шагипри вычислении порога маскирования
Следующие шаги являются необходимыми для вычисления
SMR (п)
и
хтт (п),
используемыми в кодере
для длинного и короткого БПФ.
1 Восстановить 2 *
1Ывп
отсчетов входного сигнала.
iblen
новых отсчетов делаются доступными при каждом вызове генератора порога. Генератор порога
должен хранить 2 *
iblen — iblen
отсчетов и объединить эти отсчеты для точного восстановления 2 *
iblen
последовательных отсчетов входного сигнала, s (/), где
i
— индекс входных отсчетов. 0 <= г <2 *
iblen.
103