ГОСТ Р 53556.1-2012
3.7.3 Мультиплексный уровень
Уровень LATM мультиплексирует несколько полезных нагрузок MPEG-А Аудио и AudioSpecificConfig ()
элементов синтаксиса в один мультиплексный элемент. Мультиплексированный формат элемента вы
бирается между AudioMuxElement () и EPMuxElement () в зависимости от того, требуется ли способ
ность исправления ошибок в мультиплексном элементе или нет. EPMuxElement () является эластичной
версией AudioMuxElement () и может использоваться для каналов с ошибками.
Мультиплексированные элементы могут быть непосредственно переданы на уровнях передачи
с синхронизацией фрейма. В этом случае первый бит мультиплексного элемента должен соответство
вать первому биту полезной нагрузки основного уровня передачи. Если полезная нагрузка передачи
требует побайтного выравнивания, биты пэддинга должны следовать за мультиплексируемым элемен
том. Количество битов пэддинга должно быть меньше 8. Эти биты должны быть удалены при демуль-
тигшексации элемента в полезные нагрузки MPEG-4 Аудио. Затем полезные нагрузки MPEG-А Аудио
передаются соответствующему инструменту декодера MPEG-4 Аудио.
Использование LATM в случае масштабируемых конфигураций с ядром CELP и уровнем (уровня
ми) расширения ААС:
- экземпляры класса AudioMuxElement () передаются равноотстоящим способом;
- представленный период одного AudioMuxElement () подобен суперфрейму;
- отношение числа битов определенного уровня в пределах любого AudioMuxElement {) к общему
количеству битов в пределах этого AudioMuxElement () равно отношению скорости передачи того уров ня
к скорости передачи всех слоев.
В случае, когда coreFramoOffset = 0 и latmBufferFullnoss = 0. все основные фреймы кодера и все
фреймы ААС определенного суперфрейма сохраняются в пределах того же самого экземпляра класса
AudioMuxElement ().
В случае coreFrameOffset> 0 несколько или все основные фреймы кодера сохраняются в преде
лах предыдущих экземпляров класса ofAudioMuxElement ().
Л
юбая информация оконфигурацииосновногоуровняотносится к основным фреймам, переданным
в пределах текущего экземпляра класса AudioMuxElement (), независимо от значения coreFrameOffset:
- указанный latmBufferFullness связан с первым фреймом ААС первого суперфрейма, сохраненно
го в пределах текущего AudioMuxElement ();
- значение latmBufferFullness может использоваться, чтобы определить местоположение первого
бита первого фрейма ААС текущего уровня первого суперфрейма. сохраненного в пределах текущего
AudioMuxElement () посредством backpointer.
backPointer = - meanFrameLength + latmBufferFullness + currentFrameLength.
Значение backpointer определяет позицию, как отрицательное смещение от текущего
AudioMuxElement (), то есть указывает на начало фрейма ААС. расположенное в полученных данных.
Л
юбые данные, не принадлежащие полезной нагрузке текущего уровня ААС. не принимаются во внима
ние. Если (latmBufferFullness == 0’), то фрейм ААС начинается после текущего AudioMuxElement ().
Возможные конфигурации LATM ограничены из-за сигнализации определенных элементов дан
ных следующим образом;
- число уровней; 8 {numLayer имеет 3 бита);
- число потоков; 16 (streamlndx имеет 4 бита);
- число участков памяти: 16 (numChunk имеет 4 бита).
37.3.1 Синтаксис (см. таблицы 39. 40. 41,42, 43. 44).
Таблица 39- Синтаксис EPMuxElement()
СинтаксисКоличествобитовМнемоника
EPMuxElement(epDataPresent. muxConfigPresent)
1 bslbf
2 bslbf
10 bslbf
11 bslbf
{
if (epDataPresenl) {
epUsePrevtousMuxConftg:
epUsePreviousMuxConftgParity:
if (lepUsePreviousMuxConfig) {
epSpecificConUgLength:
epSpecirtcConfigLengthParity:
ErmrProtectionSpeciricConrigO:
40