ГОСТ Р 53556.8-2013
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Звуковое вещание цифровое
КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ С СОКРАЩЕНИЕМ ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ КАНАЛАМ СВЯЗИ
ЧАСТЬ III (MPEG-4 AUDIO)
Параметрическое кодирование высококачественных звуковых сигналов (SSC)
Sound broadcasting digital. Coding of signals of sound broadcasting with reduction of redundancy for transfer on digital communication channels. A part III (MPEG-4 audio). Technical description of parametric coding for high quality audio
ОКС 33.170
Дата введения 2014-09-01
Предисловие
1 РАЗРАБОТАН Санкт-Петербургским филиалом Центрального научно-исследовательского института связи "Ленинградское отделение" (ФГУП ЛО ЦНИИС)
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 480 "Связь"
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 25 октября 2013 г. N 1212-ст
4 Настоящий стандарт разработан с учетом основных нормативных положений международного стандарта ИСО/МЭК 14496-3:2009* "Информационные технологии. Кодирование аудиовизуальных объектов. Часть 3. Аудио" (ISO/IEC 14496-3:2009 "Information technology - Coding of audio-visual objects - Part 3: Audio") [1]
5 ВВЕДЕН ВПЕРВЫЕ
6 ПЕРЕИЗДАНИЕ. Август 2020 г.
Правила применения настоящего стандарта установлены в статье 26 Федерального закона от 29 июня 2015 г. N 162-ФЗ "О стандартизации в Российской Федерации". Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
1 Область применения
Стандарт описывает схему параметрического кодирования для сжатия высококачественного аудио MPEG-4 audio. Краткое наименование - SSC (SinuSoidal Coding). При скоростях передачи приблизительно 24 Кбит/с стерео и на частоте дискретизации 44,1 кГц схема кодирования SSC предлагает качество, которое необходимо для многих приложений.
SSC использует четыре различных инструмента, которые вместе параметризуют аудиосигнал. Эти инструменты состоят из моделирования переходного процесса, моделирования синусоид, моделирования шума и моделирования образа стерео. Одна из отличительных особенностей SSC состоит в том, что оно оказывает поддержку декодера для независимого темпа и масштабирования шага при почти любой дополнительной сложности.
Инструмент переходного процесса
Инструмент переходного процесса захватывает чрезвычайно динамичные события входного аудиосигнала. Эти события эффективно моделируются посредством ограниченного количества синусоид, которые формируются посредством огибающей.
Инструмент синусоид речевого выхода для инструментов FA и для дублирования МР с информацией о форме губ.
Инструмент синусоид захватывает детерминированные события входного аудиосигнала. Природа медленного изменения синусоидальных компонентов для типичных аудиосигналов используется, соединяя синусоиды по последовательным фреймам. Посредством дифференциального кодирования могут быть эффективно представлены параметры частоты, амплитуды и фазы.
Шумовой инструмент
Шумовой инструмент захватывает стохастические или недетерминированные события входного аудиосигнала. В декодере в качестве возбуждения используется генератор белого шума. Чтобы управлять временными и спектральными свойствами шума в аудиосигнале, применяется временная и спектральная огибающая.
Инструмент параметрического кодирования стерео
Инструмент параметрического кодирования стерео в состоянии захватывать стереообраз входного аудиосигнала в ограниченном количестве параметров, требуя только небольшого служебного сигнала в пределах от нескольких Кбит/с для среднего качества до приблизительно 9 Кбит/с для более высокого качества. Вместе с монофоническим смешиванием входного сигнала стерео, сгенерированного параметрическим инструментом кодирования стерео, инструмент параметрического декодирования стерео в состоянии регенерировать стереосигнал. Это - универсальный инструмент, который может работать в комбинации с любым монофоническим кодером. В Приложении А настоящего стандарта приводится нормативное описание комбинации НЕ-ААС с инструментом параметрического кодирования стерео. SSC также может работать в двойном режиме моно. В этом случае инструмент параметрического кодирования стерео не используется. Инструмент параметрического стерео предназначается для низких скоростей передачи.
2 Термины и определения
2.1 фрейм: Основная единица, которая может декодироваться сама по себе (требуется информация заголовка файла для общих настроек декодера).
2.2 фильтр Лагерра: Структура фильтра, используемого в анализе шумов и синтезе.
2.3 аудио фрейм: Содержит все данные, чтобы декодировать SSC-кодированный фрейм как автономный модуль (требуется информация заголовка файла для общих настроек декодера). Для аудио фреймов с refresh_sinusoids = = %1 и refresh_noise = = %1 полный фрейм всегда может быть восстанавлен, иначе в случае произвольного доступа возможно, что части сигнала не могут быть восстановлены (например, синусоидальные продолжения, шум).
2.4 подфрейм: Мелкоструктурированность в пределах фрейма.
2.7 окно: Функция, которая используется, чтобы взвешивать синтезируемые выборки в пределах сегмента так, чтобы получить достоверный синтез.
2.8 LSF: Спектральная частота линии.
2.9 наложение и дробление: Аддитивный метод объединения перекрывающихся интервалов во время синтеза сигнала.
2.10 процесс связывания: Метод отслеживания синусоидальных компонент в течение продолжительного времени.
2.11 рождение: Первый компонент синусоидальной дорожки.
2.12 продолжение: Компонент синусоидальной дорожки, который находится не в начале или конце дорожки.
2.13 смерть: Последний компонент синусоидальной дорожки.
2.14 SMR: Отношение сигнала к маскировке.
2.15 частичный: Синусоида ограниченной продолжительности.
2.16 IID: Межканальные различия в интенсивности.
2.17 IPD: Межканальная разность фаз.
2.18 OPD: Полная разность фаз.
2.19 ICC: Межканальная когерентность.
3 Символы и сокращения
3.1 Арифметические операторы
3.2 Операторы отношения
3.3 Мнемоники
Чтобы описать различные типы данных, используемые в кодированном потоке битов, определяются следующие мнемоники.
|
|
uimsbf | Целое число без знака, старший значащий бит в начале. |
simsbf | Целое число со знаком, старший значащий бит в начале. |
bslbf | Левый бит потока битов в начале. |
3.4 Диапазоны
|
|
[0, 10] | Число в диапазоне от 0 до, и включая 10. |
[0, 10> | Число в диапазоне от 0 до, но исключая 10. |
3.5 Численное представление
|
|
%Х | Представление двоичного числа (например, %01111100). |
$Х | Представление шестнадцатеричного числа (например, 7$С). |
X | Числа без префикса используют представление десятичного числа (например, 124). |
3.6 Определения
|
|
S | Число выборок в подфрейме. |
L | Число выборок в сегменте; L=2*S. |
numQMFSIots | Число выборок поддиапазона QMF на элемент ps_data (). Для SSC этот параметр фиксируется в 24. |
4 Полезные нагрузки для SSC аудио объектного типа
4.1 Конфигурация декодера (SSCSpecificConfig)
Синтаксис SSCSpecificConfig (), см. таблицу 1.
Таблица 1 - Синтаксис SSCSpecificConfig ()
|
4.2 Полезная нагрузка потока битов SSC
Полезная нагрузка потока битов SSC приведена в таблицах 2-14.
Таблица 2 - Синтаксис ssc_audio_frame ()
|
Окончание таблицы 2
|
Таблица 3 - Синтаксис ssc_audio_frame_header ()
|
Таблица 4 - Синтаксис ssc_audio_frame_data ()
|
Таблица 5 - Синтаксис ssc_mono_subframe ()
|
Таблица 6 - Синтаксис subframe_transients ()
|
Таблица 7 - Синтаксис subframe_sinusoids ()
|
Продолжение таблицы 7
|
Продолжение таблицы 7
|
Окончание таблицы 7
|
Таблица 8 - Синтаксис subframe_noise ()
|
Продолжение таблицы 8
|
Окончание таблицы 8
|
Таблица 9 - Синтаксис ps_data ()
|
Окончание таблицы 9
|
Таблица 10 - Синтаксис ps_extension ()
|
Таблица 11 - Синтаксис iid_data ()
|
Окончание таблицы 11
|
Таблица 12 - Синтаксис icc_data ()
|
Таблица 13 - Синтаксис ipd_data ()
|
Таблица 14 - Синтаксис opd_data ()
|
5 Семантика
5.1 SSCSpecificConfig
decoder_level - пределы сложности для настроек декодера. Декодер, который поддерживает определенный уровень сложности, не в состоянии декодировать поток битов, который кодируется согласно более высокому уровню сложности. Этот декодер в состоянии декодировать поток битов, который кодируется согласно более низкому уровню сложности (таблица 15).
Таблица 15 - Уровень декодера
|
|
|
|
|
|
decoder_level | Уровень сложности | max_nrof_sin usoids | max_nrof_den | Число битов для s_nrof_continuation | Число битов для n_nrof_Isf |
00 | Зарезервировано | Na | Na | Na | Na |
01 | Носитель | 60 | 24 | 6 | 4 |
10 | Зарезервировано | Na | Na | Na | Na |
11 | Зарезервировано | Na | Na | Na | Na |
max_nrof_sinusoids - максимальное количество синусоид, которое допускается.
max_nrof_den - максимальное значение для n_nrof_den.
update_rate - четыре бита, указывающие размер подфрейма S.
Таблица 16 показывает соотношение между update_rate и размером подфрейма S в выборках.
Таблица 16 - Уровень обновления
|
|
|
|
update_rate | S | update_rate | S |
0000 | Зарезервировано | 1000 | Зарезервировано |
0001 | Зарезервировано | 1001 | Зарезервировано |
0010 | Зарезервировано | 1010 | Зарезервировано |
0011 | Зарезервировано | 1011 | Зарезервировано |
0100 | 384 | 1100 | Зарезервировано |
0101 | Зарезервировано | 1101 | Зарезервировано |
Окончание таблицы 16
|
|
|
|
update_rate | S | update_rate | S |
0110 | Зарезервировано | 1110 | Зарезервировано |
0111 | Зарезервировано | 1111 | Зарезервировано |
synthesis_method - два бита, предоставляющие информацию о предпочтительном синтезе для специально закодированной программы (таблица 17).
Таблица 17 - Метод синтеза
|
|
Synthesis_method | Оптимальный синтез |
00 | Наложение и добавление |
01 | Зарезервировано |
10 | Зарезервировано |
11 | Зарезервировано |
mode_ext - в сочетании с channelConfiguration биты mode_ext обеспечивают полную конфигурацию канала. Число битов зависит от channelConfiguration (таблица 18).
Таблица 18 - Конфигурация канала
|
|
|
channelConfiguration | Количество битов для mode_ext | nrof_channels |
1 | 0 | 1 |
2 | 2 | Согласно mode_ext |
0,3...15 | Nа | Nа |
Для channelConfiguration = = 2, применяется таблица 19:
Таблица 19 - Конфигурация канала в случае, если channelConfiguration == 2
|
|
|
mode_ext | Полная конфигурация канала | nrof_channels |
00 | Двойной моно (ch0=left, ch1=righf) | 2 |
01 | Параметрическое Стерео | 1 |
10 | Зарезервировано | Nа |
11 | Зарезервировано | Nа |
Зарезервировано - два зарезервированных бита; должно быть установлено в %0.
5.2 Декодирование полезной нагрузки потока битов SSC
ssc_audio_frame () - синтаксический элемент, который содержит единственный фрейм SSC
ssc_audio_frame_header () - синтаксический элемент, который содержит данные заголовка для единственного фрейма SSC
ssc_audio_frame_data () - синтаксический элемент, который содержит данные для единственного фрейма SSC
ssc_huff_dec () - процедура декодирования Хаффмана.
refresh_sinusoids - один бит, указывающий, как кодируются синусоидальные продолжения первого подфрейма во фрейме. Если этот бит равняется %0, данные продолжающейся дорожки дифференцированно кодируются относительно последнего подфрейма предыдущего фрейма. Если этот бит равняется %1, данные продолжающейся дорожки в первом подфрейме фрейма кодируются как абсолютные значения.
refresh_sinusoids_next_frame - один бит, обеспечивающий дополнительный предпросмотр фрейма для декодирования ADPCM синусоидальных параметров. Если этот бит устанавливается в %1, следующий фрейм является фреймом обновления. В этом случае бит refresh_sinusoids должен быть установлен в %1 в следующем фрейме. Если этот бит устанавливается в %0, следующий фрейм не является фреймом обновления.
refresh_noise - один бит, указывающий, как кодируются шумовые параметры первого подфрейма во фрейме. Если этот бит равняется %0, шумовые параметры дифференцированно кодируются относительно последнего подфрейма предыдущего фрейма. Если этот бит равняется %1, шумовые параметры в первом подфрейме фрейма кодируются как абсолютные значения.
s_nrof_continuations [sf] [ch] - для подфрейма sf и канала ch, это значение представляет число продолжений. В случае sf==0 значение s_nrof_continuations обеспечивается в потоке битов. Для остальных значений sf значение s_nrof_continuations получается неявно. Число битов, требуемых для s_nrof_continuations [0] [ch], зависит от максимального количества разрешенных синусоид, которое зависит от сложности декодера, указанной в decoder_level.
n_nrof_den - число коэффициентов LAR знаменателя фильтра FIR для генерации шума.
n_nrof_lsf - число коэффициентов LSF, используемых для генерации огибающей для генерации шума. Число битов, требующихся для n_nrof_lsf зависит от сложности декодера, указанной decoder_level.
freq_granularity - гранулярность дифференцированно или абсолютно кодированных частотных параметров, используемых в subframe_sinusoids (). Этот параметр определяет число битов, которые будут считаны из тонкоструктурной части параметров частоты.
amp_granularity - гранулярность дифференцированно или абсолютно кодированных амплитудных параметров, используемых в subframe_sinusoids (). Этот параметр определяет таблицу Хаффмана, которая будет использоваться, или число битов, которые будут считаны из тонкоструктурной части амплитудных параметров.
phase_jitter_present - один бит, чтобы указать на присутствие параметров дрожания фазы. Если этот бит равняется %0, никакого дрожания фазы нет. Если этот бит равняется %1, дрожание фазы присутствует.
phase_jitter_jpercentage - это двухбитовое целое число без знака, указывающее процент расстояния. Полное расстояние равняется половине шага квантования. Максимальное дрожание, применяемое к частотным компонентам
phase_jitter_band - два бита, указывающие уровень представления частоты, из которого должно быть применено дрожание фазы, таблица 20.
Таблица 20 - Полоса дрожания фазы, выраженная в уровнях представления
|
|
phase_jitter_band | Уровень представления частоты |
00 | 0 |
01 | 800 |
10 | 1600 |
11 | 2400 |
nrof_subframes - число подфреймов в одном фрейме. Это значение фиксируется в 8.
ssc_mono_subframe () - синтаксический элемент, который содержит данные для одного подфрейма SSC.
ps_data () - синтаксический элемент, который содержит параметрические данные стерео.
subframe_transients () - синтаксический элемент, который содержит переходные данные для одного подфрейма SSC.
subframe_sinusoids () - синтаксический элемент, который содержит данные синусоид для одного подфрейма SSC.
subframe_noise () - синтаксический элемент, который содержит данные о шуме для одного подфрейма SSC.
t_transient_present [sf] [ch] - один бит, указывающий, присутствует ли переходное состояние в подфрейме sf канала ch. Если t_transient_present [sf] [ch] == %1, переходное состояние присутствует. Если t_transient_present [sf] [ch] == %0, переходное состояние отсутствует.
t_type [sf] [ch] - два бита для указания типа переходного состояния в подфрейме sf канала ch (таблица 21).
Таблица 21 - Типы переходного состояния
|
|
t_type | Тип |
00 | Шаг |
01 | Мейкснера (Meixner) |
10 | Зарезервировано |
11 | Зарезервировано |
t_b_par [sf] [ch] - для переходного состояния типа Мейкснера в подфрейме sf канала ch, эти 3 бита содержат значение для атаки огибающей перехода, обозначенное как ’b-параметр’. Допустимые значения для t_b_par [0, 1, 2, 3]. Остальные значения резервируются. Значение b вычисляется как b = t_b_par + 2.
|
|
|
|
|
|
t_b_par | |||||
| 0 | 1 | 2 | 3 | |
t_chi_par | 0 | 0,9688 | 0,9685 | 0,9683 | 0,9681 |
| 1 | 0,9763 | 0,9756 | 0,9750 | 0,9744 |
| 2 | 0,9839 | 0,9827 | 0,9817 | 0,9807 |
| 3 | 0,9914 | 0,9898 | 0,9884 | 0,9870 |
t_nrof_sin [sf] [ch] - для переходного состояния типа Мейкснера в подфрейме sf канала ch, эти 3 бита представляют число синусоид, которые присутствуют под огибающей. Число синусоид под огибающей Мейкснера равно значению в потоке плюс один.
t_freq [sf] [ch] [i] - для переходного состояния типа Мейкснера в подфрейме sf канала ch эти биты представляют частоту в радианах i-ой синусоиды под огибающей переходного состояния.
t_amp [sf] [ch] [i] - для переходного состояния типа Мейкснера в подфрейме sf канала ch эти биты представляют амплитуду i-ой синусоиды под огибающей перехода.
noc - локальная переменная, которая считает число продолжений в предыдущем подфрейме.
tmp_cont [ch] [noc] - локальный массив, который содержит копию s_cont-параметров предыдущего подфрейма, необходимую для того, чтобы правильно проанализировать поток (извлечь число продолжений и отслеживать, сколько подфреймов должна продолжаться синусоидальная дорожка в текущем фрейме).
s_cont [sf] [ch] [n] - для подфрейма sf и канала ch эта величина указывает, сколько компонент подфреймов n будет продолжаться в текущем фрейме (если компонент будет продолжаться также в следующем фрейме к числу подкадров, которые он продолжается в текущем фрейме, должна быть добавлена единица. Если значение равно 0, это указывает на прекращение компонента n в подкадре sf, что называют смертью). Допустимый диапазон для s_cont составляет [0, 9].
s_freq_coarse [sf] [ch] [n] - для подфрейма sf и канала ch это значение представляет грубый параметр частоты n-ой синусоиды.
s_amp_coarse [sf] [ch] [n] - для подфрейма sf и канала ch это значение представляет грубый амплитудный параметр n-ой синусоиды.
s_adpcm_grid [sf] [ch] [n] - для подфрейма sf и канала ch это значение представляет начальный индекс в таблице 35 как использующийся в декодере ADPCM для n-ой синусоиды. Эта таблица используется, чтобы декодировать информацию о синусоидах.
s_delta_cont_freq_pha [sf] [ch] [n] - для подфрейма sf и канала ch это значение представляет уровни представления для n-ой синусоиды, которые служат вводом в декодер ADPCM. Чтобы компенсировать эту задержку декодера на 2 подфрейма, уровни представления передаются заранее на 2 подфрейма. В синтаксисе потока битов будущие уровни представления обозначаются индексами sf+1 и sf+2, указывающими уровни представления двух последующих подфреймов, соответственно. В случае, если sf+1 или sf+2 превышает nrof_subframes, уровень представления присваивается следующему фрейму. В этом случае новое число подфреймов в следующем фрейме будет (sf+1) - nrof_subframes или (sf+2) - nrof_subframes соответственно.
s_nrof_births [sf] [ch] - для подфрейма sf и канала ch это значение представляет число рождений. Позволенный диапазон [0, max_nrof_sinusoids-s_nrof_continuations [sf] [ch]].
s_delta_birth_freq_coarse [sf] [ch] [n] - для подфрейма sf и канала ch это значение представляет дифференциальный, грубый параметр частоты n-ой синусоиды.
s_delta_birth_amp_coarse [sf] [ch] [n] - для подфрейма sf и канала сh это представляет дифференциальный, грубый амплитудный параметр n-ой синусоиды.
|
|
n_laguerre | |
00 | 0 |
01 | 0,5 |
10 | 0,7 |
11 | Зарезервировано |
n_laguerre_granularity [sf] [ch] - 1 бит, обозначающий точность квантования коэффициентов Лагерра.
n_lar_den_coarse [sf] [ch] [i] - для подфрейма sf и канала ch это представляет номер коэффициента LAR знаменателя i.
nlarrl [i] = n_lar_den_coarse [sf] [ch] [i] + n_lar_den_fine [sf] [ch] [i]
и преобразовывается в коэффициент LAR согласно:
n_delta_lsf [sf] [ch] [i] - для подфрейма sf и канала ch это значение представляет номер дифференциального коэффициента LSF i. Они получаются, используя следующий алгоритм
для i>0:
n_delta_lar_den_coarse [sf] [ch] [i] - для подфрейма sf и канала ch это представляет номер дифференциального коэффициента LAR знаменателя i.
и преобразовывается в коэффициент LAR согласно:
n_overlap_lsf - один бит, указывающий, перекрываются ли коэффициенты LSF из предыдущего определения в канале ch.
enable_ps_header - один бит, указывающий, присутствует ли информация заголовка PS. Если установлен в %1, данные заголовка PS, конфигурирующие декодер PS, передаются. Иначе, сохраняется последняя конфигурация.
enable_iid - один бит, обозначающий присутствие параметров IID. Если enable_iid устанавливается в %1, параметры межканального различия интенсивности (IID) будут отправлены с этого момента в потоке битов. Если enable_iid==%0, никакие параметры IID не будут отправлены с этого момента в потоке битов.
iid_mode - конфигурация параметров IID (число полос и сетка квантования, iid_quant) определяется iid_mode. Поддерживаются восемь различных конфигураций для параметров IID (таблица 24).
Таблица 24 - Конфигурации режима IID
|
|
|
|
|
iid_mode | nr_iid_par_tab | nr_ipdopd_par_tab | iid_quant | Диапазон индекса |
0 (000) | 10 | 5 | 0 | -7...7 |
1 (001) | 20 | 11 |
| -7...7 |
2 (010) | 34 | 17 |
| -7...7 |
3 (011) | 10 | 5 | 1 | -15...15 |
4 (100) | 20 | 11 |
| -15...15 |
5 (101) | 34 | 17 |
| -15...15 |
6 (110) | Зарезервировано |
|
|
|
7 (111) | Зарезервировано |
|
|
|
Если данные IID не отправляются в потоке битов, все параметры IID сбрасываются в 0 (то есть index=0).
Сетки значения по умолчанию и тонкого квантования для IID, iid_quant=%0 и iid_quant=%1 назначаются, как предусмотрено в таблице 25 и таблице 26, соответственно.
Таблица 25 - Сетка квантования по умолчанию для IID
|
|
|
|
|
|
|
|
|
Индекс | -7 | -6 | -5 | -4 | -3 | -2 | -1 | 0 |
IID [дБ] | -25 | -18 | -14 | -10 | -7 | -4 | -2 | 0 |
Индекс | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|
IID [дБ] | 2 | 4 | 7 | 10 | 14 | 18 | 25 |
|
Таблица 26 - Сетка тонкого квантования для IID
|
|
|
|
|
|
|
|
|
Индекс | -15 | -14 | -13 | -12 | -11 | -10 | -9 | -8 |
IID [дБ] | -50 | -45 | -40 | -35 | -30 | -25 | -22 | -19 |
Индекс | -7 | -6 | -5 | -4 | -3 | -2 | -1 | 0 |
IID [дБ] | -16 | -13 | -10 | -8 | -6 | -4 | -2 | 0 |
Индекс | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
IID [дБ] | 2 | 4 | 6 | 8 | 10 | 13 | 16 | 19 |
Индекс | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|
IID [дБ] | 22 | 25 | 30 | 35 | 40 | 45 | 50 |
|
Конфигурация параметров межканальной разности фаз (IPD) / полной разности фаз (OPD) строго связывается с конфигурацией IID. Это также иллюстрируется в таблице 24.
enable_icc - один бит, обозначающий присутствие параметров ICC. Если enable_icc будет установлен в %1, то параметры межканальной когерентности (ICC) будут отправлены с этого момента в потоке битов. Если enable_icc == %0, никакие параметры ICC не будут отправлены с этого момента в потоке битов.
icc_mode - конфигурация параметров межканальной когерентности (число полос и сетка квантования) определяется icc_mode. Для параметров ICC поддерживаются восемь различных конфигураций (таблица 27).
Таблица 27 - Конфигурация режима ICC
|
|
|
|
icc_mode | nr_icc_par_tab | Диапазон индекса | Процедуры смешивания |
0 (000) | 10 | 0 ... 7 | |
1 (001) | 20 | 0 ... 7 |
|
2 (010) | 34 | 0 ... 7 |
|
3 (011) | 10 | 0 ... 7 | |
4 (100) | 20 | 0 ... 7 |
|
5 (101) | 34 | 0 ... 7 |
|
6 (110) | зарезервировано |
|
|
7 (111) | зарезервировано |
|
|
Если никакие данные IСС не отправляются в потоке битов, все параметры ICC сбрасываются в 1 (то есть index=0). Сетка квантования по умолчанию для ICС приводится в таблице 28.
Таблица 28 - Сетка квантования для ICC
|
|
|
|
|
|
|
|
|
Индекс | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
1 | 0,937 | 0,84118 | 0,60092 | 0,36764 | 0 | -0,589 | -1 |
enable_ext - уровень расширения PS задействуется, используя бит enable_ext. Если он устанавливается в %1, параметры IPD и OPD отправляются. Если это отключается, то есть %0, уровень расширения пропускается, и enable_ipdopd устанавливается в %0.
frame_class - бит frame_class определяет, располагаются ли позиции параметров текущего фрейма равномерно на протяжении фрейма (FIX_BORDERS: frame_class == %0) или они определяются, используя позиции, описанные border_position (VAR_BORDERS: frame_class == %1).
num_env_idx - число (наборов) параметров (огибающих) на фрейм определяется, используя num_env_idx. В случае фиксированного интервала параметров (frame_class == %0) и переменного интервала параметров (frame_class == %1) это соотношение показано в таблице 29.
num_env - локальная переменная, обозначающая число огибающих стерео (наборов параметров). num_env == 0 сигнализирует о том, что никакие новые параметры стерео не передаются, и что последние параметры в предыдущем элементе ps_data () должны сохраняться неизменными и применяться к текущему элементу ps_data ().
Таблица 29 - Число наборов параметров num_env как функция num_env_idx в случае фиксированного и переменного интервала
|
|
|
num_env_idx | num_env_tab [frame_class] [num_env_idx] | |
| frame_class == 0 | frame_class == 1 |
0 | 0 | 1 |
1 | 1 | 2 |
2 | 2 | 3 |
3 | 4 | 4 |
iid_dt [e] - этот флаг описывает для индекса огибающей е, кодируются ли параметры IID дифференцированно в течение времени (iid_dt == % 1) или по частоте (iid_dt == %0). В случае, когда iid_mode текущего элемента ps_data () отличается от iid_mode предыдущего элемента ps_data (), iid_dt [0] должно иметь значение 0%, принуждая к дифференцированному кодированию частоты.
iid_data () - синтаксический элемент, содержащий данные IID.
icc_dt [e] - этот флаг описывает для индекса огибающей е, кодируются ли параметры IСС дифференцированно в течение времени (icc_dt == %1) или по частоте (icc_dt == %0). В случае, когда icc_mode текущего элемента ps_data () отличается от icc_mode предыдущего элемента, ps_data (), icc_dt [0] должно иметь значение 0%, принуждая к дифференцированному кодированию частоты.
icc_data () - синтаксический элемент, содержащий данные ICС.
cnt - локальная переменная, обозначающая число байтов, используемых для элемента ps_extension().
ps_extension_size - длиной уровня расширения PS является ps_extension_size, измеренный в байтах. Если размер расширения приводит к использованию кода escape (ps_extension_size == 15), длина уровня расширения увеличивается на дополнительное количество байтов.
esc_count - в случае, если используется код escape (ps_extension_size == 15), esc_count описывает дополнительную длину уровня расширения PS, измеренную в байтах.
num_bits_left - локальная переменная, описывающая число битов, остающихся для чтения в элементе ps_extension ().
ps_extension_id - идентификационная бирка (версия) уровня расширения PS дается ps_extension_id. В данный момент поддерживается только одна версия (таблица 30).
Таблица 30 - Описание ps_extension_id
|
|
ps_extension_id | Версия |
00 (0) | v0 |
01 (1) | Зарезервировано |
10 (2) | Зарезервировано |
11 (3) | Зарезервировано |
fill_bits - эти fill_bits выполняют побайтное выравнивание данных ps_extension ().
enable_ipdopd - применение параметров IPD и OPD в потоке битов обозначается enable_ipdopd. Если установлено (enable_ipdopd == %1), параметры IPD и OPD отправляются, если отключено (enable_ipdopd == %0), параметры IPD и OPD для текущего фрейма в потоке битов не отправляются. В случае enable_iid == %0, enable_ipdopd не должен быть установлен в %1. Сетка квантования и для IPD, и для OPD обеспечивается в таблице 31. Если данные IPD или OPD не отправляются в потоке битов, все параметры IPD и OPD устанавливаются в 0 (то есть index=0).
ipd_dt [e] - этот флаг описывает для индекса огибающей е, кодируются ли параметры IPD дифференцированно в течение времени (ipd_dt == %1) или по частоте (ipd_dt == %0). В случае, когда iid_mode текущего элемента ps_data () отличается от iid_mode предыдущего элемента ps_data (), у ipd_dt [0] должно быть значение 0%, принуждающее к измененному кодированию частоты.
ipd_data () - синтаксический элемент, содержащий данные IPD.
opd_dt [e] - этот флаг описывает для индекса огибающей е, кодируются ли параметры OPD дифференцированно в течение времени (opd_dt == %1) или по частоте (opd_dt == %0). В случае, когда iid_mode текущего элемента ps_data () отличается от iid_mode предыдущего элемента ps_data (), у opd_dt [0] должно быть значение 0%, принуждающее к иному кодированию частоты.
opd_data () - синтаксический элемент, содержащий данные OPD.
reserved_ps - этот бит зарезервирован и имеет значение % 0.
iid_par [e] [b] = iid_par [e -1 [b] + iid_par_dt [b],
где iid_par [e-1] [b] представляет индекс IID предыдущей огибающей е-1. Значение IID, iid [b], получается при использовании iid_par [e] [b], как индекса к таблице 25 или таблице 26, в зависимости от iid_mode.
iid_par_df [e] [b] - в случае дифференцированного кодирования параметров IID по частоте (iid_dt [e] == %0), iid_par_df [e] [b] описывает отличие IID относительно (b-1)-го параметра в огибающей е. Если никакие предыдущие параметры не доступны, iid_par_df [e] [b] представляет отличие IID относительно декодируемого значения 0 (то есть index=0). Индекс IID, iid_par [e] [b] определяется как:
iid_par [е] [0] = iid_par_df [е] [0],
iid_par [e] [b] = iid_par [е] [b-1]+ iid_par_df [e] [b] для b>0,
где iid_par [e] [b-1] представляет индекс IID предыдущего значения IID для огибающей е. Величина IID, iid [b], получается при использовании iid_par [e] [b], как индекса к таблице 25 или таблице 26, в зависимости от iid_mode.
icc_par [e] [b] = icc_par [e-1] [b] + icc_par_dt [e] [b],
icc_par [е] [0] = icc_par_df [e] [0],
icc_par [e] [b] = icc_par_[e] [b-1] + icc_par_df [e] [b] для b> 0,
ipd_par [e] [b] = mod (ipd_par [e-1] [b]+ipd_par_dt [e] [b], 8)
где ipd_par [e-1] [b] представляет индекс IPD предыдущей огибающей, е-1. Величина IPD, ipd [b], получается при использовании ipd_par [e] [b], как индекса к таблице 31.
Таблица 31 - Сетка квантования для IPD/OPD
|
|
|
|
|
|
|
|
|
Индекс | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Уровень представления | 0 |
ipd_par [е] [0] = ipd_par_df [е] [0] [е] [0],
ipd_par [e] [b] =mod(ipd_par [e] [b-1]+ ipd_par_df) [e] [b], 8) для b>0,
где ipd_par [e] [b-1] представляет индекс IPD предыдущего значения IPD для огибающей е. Значение IPD, ipd [b] получается при использовании ipd_par [e] [b], как индекса к таблице 31.
Для получения доступа к полной версии без ограничений вы можете выбрать подходящий тариф или активировать демо-доступ.