Динамические данные для параметрического кодирования передаются как пакетная полезная нагрузка SL в элементарном потоке базового уровня и дополнительного уровня улучшения или расширения.
Параметрический базовый уровень - полезная нагрузка устройства доступа.
Для параметрического кодера в немасштабируемом режиме или для базового уровня в масштабируемом режиме HILN определяется следующая полезная нагрузка фрейма потока битов:
sIPacketPayload { | |
PARAframe (); | |
} |
Параметрический уровень улучшения/расширения HILN - полезная нагрузка устройства доступа.
Чтобы проанализировать и декодировать уровень улучшения HILN, запрашивается декодируемая информация из базового уровня HILN.
Чтобы проанализировать и декодировать уровень расширения HILN, запрашивается декодируемая информация из базового уровня HILN и возможного нижнего уровня расширения HILN. Синтаксис потока битов уровней расширения HILN описывается способом, который требует, чтобы фреймы базового потока битов HILN и расширения анализировались в надлежащем порядке:
1 | HILNbasicFrame () | фрейм базового потока битов |
2 | HILNextFrame (1) | фрейм 1-го потока битов расширения (если доступен фрейм базового потока битов) |
3 | HILNextFrame (2) | фрейм 2-го потока битов расширения (если доступны фреймы базового потока и 1-го потока битов расширения) |
4 | и т.д. |
Для уровня улучшения и уровня расширения в масштабируемом режиме HILN определяется следующая полезная нагрузка фрейма потока битов:
sIPacketPayload { | |
HILNenexFrame (); | |
} |
3.2.1 Фрейм параметрического потока битов аудио
Таблица 14 - Синтаксис PARAframe ()
Синтаксис | Количество битов | Мнемоника | ||
PARAframe () | ||||
{ | ||||
if (PARAmode == 0) { | ||||
ErHVXCframe (HVXCrate); | ||||
} | ||||
else if (PARAmode == 1) { | ||||
HILNframe (); | ||||
} | ||||
else if (PARAmode == 2) { | ||||
switchFrame (); | ||||
} | ||||
else if (PARAmode == 3) { | ||||
mixFrame (); | ||||
} | ||||
} |
Таблица 15 - Синтаксис switchFrame ()
Синтаксис | Количество битов | Мнемоника | ||
switchFrame () | ||||
{ | ||||
PARAswitch Mode; | 1 | |||
if (PARAswitchMode == 0) { | uimsbf | |||
ErHVXCdoubleframe (HVXCrate); | ||||
} | ||||
else { | ||||
HILNframe (); | ||||
} | ||||
} |
В каждом фрейме выбирается один из следующих PARAswitchModes:
Таблица 16 - PARAswitchMode