67
- Совместное кодирование
- M/S stereo
- Описание инструмента
Кодирование M/S stereo применяется к парам каналов. Каналы чаще всего объединяются так, чтобы они имели симметричное расположение относительно слушателя, например левый/правый или левый окружения/правый окружения. Первый канал в паре обозначается как «левый», а второй — как «правый». Вектор, образованный сигналами левого и правого каналов, восстанавливается или де-матрицируется с помощью единичной матрицы
или обратной матрицы M/S
Решение о том, какая матрица должна использоваться, принимается для каждой полосы масштабных коэффициентов в соответствии с флагами ms_used. Кодирование M/S может применяться только, если common_window равно ' 1' (см. 6.3.1).
- Определения
- Элементы данных
ms_mask_present Двухбитное поле, определяющее MS маску
- — Все нули
- — Маска max_sfb полос ms_used следует за этим полем
- — Все единицы
- — В резерве (см. 4.3, таблица 14),
ms_used [g] [sfb] Однобитный флаг для каждой полосы масштабных коэффициентов, указыващий, что
кодирование M/S используется в группе окон g и полосе масштабных коэффициентов sfb (см. 4.3, таблица 14).
- Элементы справки
l_spec [] Массив, содержащий спектр левого канала соответствующей пары каналов.
rspec [] Массив, содержащий спектр правого канала соответствующей пары каналов.
is_intensity (g, sfb) Функция, возвращающая состояние интенсивности, определенная в 10.2.3.
- Процесс декодирования
Восстановление (спектральные коэффициенты первого («левого») и второго («правого») каналов) выполняется в соответствии с mask_present и флагами ms_used [] [] следующим образом: if (mask_present> = 1) { for (g = 0; g <num_window_groups; g + +) {
for (b = 0; b <window_group_length [g]; b ++) {for (sfb = 0; sfb <max_sfb; sfb ++) {
if ((ms_used [g] [sfb] || mask_present == 2) &&! is_intensity (g, sfb)) {
for (i = 0; i <swb_offset [sfb+1]-swb_offset [sfb]; i + +) {
tmp = l_spec [g] [b] [sfb] [i] - r_spec [g] [b] [sfb] [i];
l_spec [g] [b] [sfb] [i] = l_spec [g] [b] [sfb] [i] + r_spec [g] [b] [sfb] [i];
r_spec [g] [b] [sfb] [i] = tmp;}
}
}
Следует учесть, что ms_used [] [] используется также в контексте кодирования intensity stereo. Если кодирование intensity stereo было использовано для определенной полосы масштабных коэффициентов, декодирование стерео M/S не выполняется.
- Intensity stereo
- Описание инструмента
Этот инструмент используется, чтобы реализовать кодирования intensity stereo пары каналов. Оба выходных канала получаются из одного набора спектральных коэффициентов после обратного процесса квантования. Это выполняется выборочно на основе полос масштабных коэффициентов при активном