ГОСТР 54713—2011
10Совместное кодирование
10.1 M/S stereo
10.1.1 Описание инструмента
Кодирование M/S stereo применяется к парам каналов. Каналы чаще всего объединяются так, чтобы
они имели симметричное расположениеотносительно слушателя, например левый’правый или левый окру-
жения/правый окружения. Первый канал в паре обозначается как «левый», а второй — как «правый». Век
тор. образованный сигналами левого и правого каналов, восстанавливается или де-матрицируется с помо
щью единичной матрицы
илиобратной матрицы MIS
Решение о том. какая матрица должна использоваться, принимается для каждой полосы масштабных
коэффициентов в соответствии с флагами ms_used. Кодирование М/S может применяться только, если
common_window равно *1*(см. 6.3.1).
10.1.2 Определения
10.12.1 Элементы данных
ms_mask_present
ms_used [д] [sfb)
Двухбитное поле, определяющее MS маску
00 — Все нули
01 — Маска max_sfb полос ms_used следует за этим полем
10 — Все единицы
11 — В резерве
(см. 4.3. таблица 14),
Однобитный флагдля каждой полосы масштабных коэффициентов, указыващий. что
кодирование MIS используется в группе окон д и полосе масштабных коэффи
циентов s/b (см. 4.3, таблица 14).
10.1.2.2 Элементы справки
l_spoc []
r_spec []
isjntonsity (д. sfb)
Массив, содержащий спектр левого канала соответствующей пары каналов.
Массив, содержащий спектр правого канала соответствующей пары каналов.
Функция, возвращающая состояние интенсивности, определенная в 10.2.3.
10.1.3 Процесс декодирования
Восстановление (спектральные коэффициенты первого («левого») и второго («правого») каналов) вы
полняется в соответствии с mask_present и флагами ms_used [][] следующим образом:
if (mask_present> - 1) {
for (д = 0: д <num_window_groups: д ♦ * ){
for (b = 0: b <window_group_length [g]; b +*) {for (sfb = 0: sfb <max_sfb: sfb **) {
if ((ms_used [g] [sfb] || mask_present == 2) &&! isjntensity (g. sfb)) {
for (i = 0: i <swb_offset [sfb+1]-sv/b_offsct [sfb]; i * *) {
tmp = l_spec [g] [b] [sfb] [i] - r_spec [g] [b] [sfb] [i]:
l_spec [g] [b] [sfb] fi] = l_spec [g] [b] [sfb] [i] ♦ r_spoc [g] [b] [sfb] [i]:
r_spec [g] [b] [sfb] p] = tmp:}
}
}
Следует учесть, что ms_used () [] используется также в контексте кодирования intensity stereo. Если
кодирование intensitystereo было использовано для определенной полосы масштабных коэффициентов,
декодирование стерео MIS не выполняется.
62