5.2.1 Общая последовательность данных звуковых сигналов
Фрейм:
- Уровни I и II: | Часть потока битов, декодируемая с использованием данных, которые содержатся только в ней самой. Уровень I содержит информацию о 384 отсчетах. Уровень II - о 1152 отсчетах. Начинается с синхрослова и заканчивается непосредственно перед следующим синхрословом. Состоит из целого числа слотов (четыре байта на Уровне I, один байт на Уровне II). |
- Уровень III: | Часть потока битов, декодируемая с использованием ранее полученной основной информации. На Уровне III она содержит информацию о 1152 отсчетах. Несмотря на то что расстояние между соседними синхрословами равно целому числу слотов (один байт на Уровне III), аудиоданные одного фрейма обычно не содержатся между двумя соседними синхрословами. |
5.2.2 Звуковой фрейм
header - Часть потока битов, содержащая синхронизацию и информацию о состоянии.
error_check - Часть потока битов, содержащая информацию для обнаружения ошибок.
audio_data - Часть потока битов, содержащая информацию об отсчетах звукового сигнала.
ancillary_data - Часть потока битов, которая может использоваться для дополнительных данных.
5.2.3 Заголовок
Первые 32 бита (четыре байта) являются заголовком, который одинаков для всех уровней.
syncword - Синхрослово, битовая строка '1111 1111 1111 1111'.
ID - Идентификатор алгоритма. Равен '1' для ISO/IEC11172-3 Аудио, значение '0' зарезервировано. layer - 2 бита, определяющие используемый уровень:
Уровень | |
'11' | Уровень I |
'10' | Уровень II |
'01' | Уровень III |
'00' | Зарезервировано |
При смене уровня допустим сброс декодера.
protection_bit - Бит, определяющий дополнение нулями, для упрощения обнаружения и устранения ошибок. Равен 1, если дополнение отсутствует, 0 - если таковое присутствует.
bitrate_index - Четыре бита, определяет скорость передачи. При равенстве всех битов нулю устанавливается "свободный формат", при котором используется фиксированная скорость передачи, не указанная в списке. "Фиксированная" означает, что фрейм содержит или , или слотов в зависимости от значения дополнительного бита. bitrate_index является индексом таблицы, которая отличается для различных уровней.
bitrate_index указывает на полную скорость передачи независимо от режима (стерео, joint_stereo, dual_channel, single_channel):
bitrate_index | Скорость передачи, кбит/с | ||
Уровень I | Уровень II | Уровень III | |
'0000' | Свободный | Свободный | Свободный |
'0001' | 32 | 32 | 32 |
'0010' | 64 | 48 | 40 |
'0011' | 96 | 56 | 48 |
'0100' | 128 | 64 | 56 |
'0101' | 160 | 80 | 64 |
'0110' | 192 | 96 | 80 |
'0111' | 224 | 112 | 96 |
'1000' | 256 | 128 | 112 |
'1001' | 288 | 160 | 128 |
'1010' | 320 | 192 | 160 |
'1011* | 352 | 224 | 192 |
'1100' | 384 | 256 | 224 |
'1101' | 416 | 320 | 256 |
'1110' | 448 | 384 | 320 |
'1111' | Запрещено | Запрещено | Запрещено |
Для обеспечения минимально возможной задержки декодер не обязан поддерживать плавное изменение скорости передачи на Уровне I или II. Уровень III поддерживает переменную скорость передачи с переключением bitrate_index. Переключать bitrate_index можно либо для оптимизации требования хранения данных на цифровом носителе, либо для интерполяции произвольной средней скорости передачи данных путем переключения между соседними значениями в таблице скорости передачи. Однако при использовании свободного формата скорость передачи должна быть фиксированной. Декодер, работая в свободном режиме, не обязан поддерживать скорости передачи выше 448 кбит/с, 384 кбит/с и 320 кбит/с на Уровнях I, II и III соответственно.
Для Уровня II разрешены не все возможные комбинации скорости передачи и режима (см. следующую таблицу):
Скорость передачи, кбит/с | Разрешенные режимы |
Свободный формат | Все режимы |
32 | Single_channel |
48 | Single_channel |
56 | Single_channel |
64 | Все режимы |
80 | Single_channel |
96 | Все режимы |
112 | Все режимы |
128 | Все режимы |
160 | Все режимы |
192 | Все режимы |
224 | Стерео, intensity_stereo, dual_channel |
256 | Стерео, intensity_stereo, dual_channel |
320 | Стерео, intensity_stereo, dual_channel |
384 | Стерео, intensity_stereo, dual_channel |