Аудио воспламенение - обработка задержки кодера AAC

Это приложение описывает временное расположение исходного звукового сигнала после AAC, кодирующего в звуковую дорожку для медиа-файлов QuickTime. Механизмы, описанные здесь, указаны в ISO MPEG 4 стандарта (ISO/IEC 14496-12, 2008) и используются здесь с дополнительными ограничениями.

Фон – кодирование AAC

AAC требует данных вне источника аудиосэмплы PCM, чтобы правильно закодировать и декодировать аудиосэмплы вследствие природы алгоритма кодирования. AAC кодирующее использование преобразование по последовательным наборам 2 048 аудиосэмплов, примененных каждые 1 024 аудиосэмпла, (наложился). Для корректного аудио, которое будет декодироваться, оба, преобразовывает в течение любого периода 1 024 аудиосэмплов, необходимы. Поэтому кодеры добавляют по крайней мере 1 024 выборки тишины перед первым 'истинным' аудиосэмплом, и часто добавляют больше. Это вызывают по-разному «воспламенением», “выборки воспламенения”, или “кодер задерживаются”. Несколько определений для использования в этом обсуждении:

Установившаяся практика должна распространить задержку кодера потока битов AAC. Когда эти аудио пакеты будут тогда декодироваться назад к домену PCM, исходная представленная форма волны будет смещена полностью этой суммой задержки кодера. Так как закодированные аудио пакеты содержат постоянное число аудиосэмплов (например, 1 024 выборки) дополнительное запаздывание или 'остаток', тихие выборки после последней исходной выборки требуются, чтобы дополнить заключительный аудио пакет к требуемой длине.

Рисунок g-1 дает пример типичного закодированного аудио потока битов AAC. Верхняя часть иллюстрации представляет закодированный домен AAC с пакетами AAC равного размера, более низкая часть представляет демонстрационный домен PCM:

Рисунок g-1  AAC закодировал аудио

Исходное аудио, которое будет закодировано, показанное как красная форма волны, является 5 389 выборками долго. Вы видите, как это представлено с синим воспламенением и выборками остатка против устройств-доступа-AAC фиксированного размера, нарисованных из пакетов выше его.

Эти данные будут представлены в 8 пакетах AAC, где каждый пакет представляет 1 024 аудиосэмпла. Общая продолжительность, представленная этими 8 пакетами AAC, является 8 192 аудиосэмплами (обратите внимание на то, что это более длинно, чем продолжительность исходного аудио).

Результат разламывает на следующие значения:

Поэтому для корректного извлечения исходных 5389 выборок исходного аудио первые 2 112 выборок воспламенения и последняя 691 выборка остатка должны быть удалены.

Проблема синхронизации и синхронизации

Если система воспроизведения аудио, пытающаяся синхронизировать AAC, закодировала аудио, и видео не компенсирует задержку кодера (т.е. не отбрасывает тихие выборки воспламенения), аудио и видео будут вне синхронизации. В примере выше, это будет выключено 2 112 выборками — аудио будет 2 112 выборками позади видео, потому что первый реальный аудиосэмпл является фактически 2113-й выборкой с начала декодируемых данных PCM.

Поэтому система воспроизведения должна обрезать тихие выборки воспламенения для сохранения корректной синхронизации. Эта обрезка системой воспроизведения должна быть сделана в двух местах:

Историческое решение — неявная задержка кодера

В исходных реализациях AAC как указано выше установившаяся практика должна была распространить задержку кодера предоставленного потока битов AAC. С этими исходными реализациями наиболее распространенная используемая задержка была 2 112 аудиосэмплами. Поток битов AAC поэтому обычно был бы 3 пакетами AAC, больше, чем, что теоретически требовалось исходным сигналом.

Реализация воспроизведения должна была бы тогда отбросить эти первые 2 112 тихих выборок от декодируемого вывода, так как они не содержат ни одни из аудиоданных первоисточника; эти выборки являются артефактом процесса кодирования/декодирования.

Поскольку не было никакого явного способа представлять степень воспламенения или выборок остатка с первыми реализациями потока битов AAC, Apple принял решение предположить, что поток битов AAC всегда содержал задержку кодирования с постоянным числом выборок и советовал разработчикам соответственно. Фиксированная задержка кодера 2 112 выборок была выбрана, потому что в то время это было общей используемой задержкой кодирования, по различным причинам, большинством поставляющих реализаций кодеров AAC (коммерческий и иначе).

Таким образом, исторический метод для обработки проблемы синхронизации и синхронизации должен принять неявные 2 112 демонстрационных стандартных задержек кодера потоков данных AAC и указать время начала — первую выборку носителей или пакет AAC — в списке редактирования звуковой дорожки (см. Атомы Списка Редактирования) в начале задержки кодера.

Используя структуры дорожки для представления задержки кодера явно

В файлах фильма в формате QuickTime (.mov) и связанном MPEG 4 файла, закодированное аудио AAC переносят в звуковой дорожке как ряд выборок носителей — каждое демонстрационное соответствие носителей AAC закодировало аудио пакет. Дорожка использует список редактирования (см. Атомы Списка Редактирования) указать диапазон времени от выборок носителей для представления. Атом списка редактирования вместе с дополнительными атомами, известными как Структуры Sample Group, представленные в Структурах Sample Group, может теперь использоваться для явного представления задержки кодера.

Atom списка редактирования

Посмотрите Атомы Редактирования и Атомы Списка Редактирования для подробных данных списков редактирования в структурах атома дорожки.

Звуковая дорожка закодированного аудио AAC использует список редактирования для указания размещения сигнала источника во время, представленное закодированными пакетами AAC. Поле времени носителей списка редактирования должно указать первую выборку, которая будет представлена, и будет соответствовать своевременно первому аудиосэмплу после задержки кодера той дорожки. Поле продолжительности дорожки списка редактирования должно быть установлено в продолжительность исходной формы волны в выборках носителей. Список редактирования не должен расширяться в задержку кодера или ни в какие выборки остатка закодированной звуковой дорожки. Обратите внимание на то, что для единственной формы волны, закодированной в звуковую дорожку, звуковая дорожка требует только единственного атома списка редактирования с одной записью.

Структуры Sample Group

Демонстрационные структуры группы типа группы рулона с постоянным расстоянием рулона используются для представления зависимостей от декодера для закодированных носителей AAC. Демонстрационные структуры группы предназначаются для служения двум целям:

  • Для указания суммы декодера задерживаются в пакетах AAC

  • Сигнализировать читателям, анализирующим фильмы в формате QuickTime, что звуковая дорожка включает явную информацию для задержки кодера и выборки остатка для пакетов AAC, закодированных в файле

Два демонстрационных атома структуры группы используются для представления суммы задержки кодера и выборок остатка, которые должны быть обрезаны.

Демонстрационный Atom описания группы

Демонстрационные атомы описания группы дают информацию о характеристиках демонстрационных групп. Демонстрационный атом описания группы имеет тип атома ‘sgpd’.

Для использования в представлении задержки кодера AAC существует один экземпляр демонстрационного атома описания группы в данной звуковой дорожке QuickTime с группирующимся типом ‘roll’. Специфические особенности для аудиоданных (AudioRollRecovery()) используются и ясно формулируют прокрутку, декодируют зависимость. Поскольку демонстрационный атом описания группы с этой целью описывает полноту аудиопотока AAC, поле данных полезной нагрузки решает к единственному 16-разрядному целому числу со знаком, представляющему расстояние рулона, установленное в-1. Другими словами, один пакет AAC (1024 закодировал аудиосэмплы PCM) предшествование выборке носителей обозначено, столь же имея тот же тип, как закодированные исходные данные, позволяя декодирование преобразовывают для работы по требуемым двум пакетам AAC для первой выборки носителей, указанной в списке редактирования.

Рисунок g-2 показывает расположение этого атома.

Рисунок g-2  расположение демонстрационного атома описания группы

Демонстрационный атом описания группы содержит следующие элементы данных:

Размер

32-разрядное целое число, указывающее число байтов в этом демонстрационном атоме описания группы.

Ввести

32-разрядное целое число, идентифицирующее тип атома, набор к 'sgpd'.

Версия

1-байтовая спецификация версии этого демонстрационного описания группы, набора к 1.

Флаги

3 байта зарезервировали пространство, набор к 0

Группировка типа

32-разрядное целое число, идентифицирующее группирующийся тип этого демонстрационного описания группы, набора к ‘roll’.

Длина по умолчанию

32-разрядное целое число, указывающее продолжительность записи группы в данных полезной нагрузки, наборе к 2 (байты).

Количество записи

32-разрядное целое число, дающее число записей в поле данных полезной нагрузки, наборе к 1.

Данные полезной нагрузки

16-разрядное целое число со знаком, дающее расстояние рулона, набор к-1 значению для аудио AAC.

Атомы выборки группе

Атомы выборки группе используются для нахождения группы, что выборка принадлежит и связанное описание той демонстрационной группы. Атом выборки группе имеет тип атома ‘sbgp’.

Для использования в представлении задержки кодера AAC существует один экземпляр атома выборки группе в данной звуковой дорожке QuickTime с группирующимся типом ‘roll’ соответствие единственного экземпляра демонстрационного атома описания группы. Значение поля количества записи установлено в 1, указав одну запись в табличном массиве данных. Та запись описывает все пакеты AAC в дорожке. Демонстрационное количество в табличном массиве данных обычно является тем же как числом атома объема выборки поля записей, посмотрите Атомы Объема выборки, который представляет число выборок носителей в дорожке (в этом использовании, пакетах AAC). Для представления задержки кодера AAC единственная запись в связанной демонстрационной таблице данных полезной нагрузки атома описания группы является первой, который обеспечивает значение 1 для индекса описания группы.

Рисунок g-3 показывает расположение этого атома.

Рисунок g-3  расположение атома выборки группе

Атом выборки группе содержит следующие элементы данных:

Размер

32-разрядное целое число, указывающее число байтов в этом атоме выборки группе.

Ввести

32-разрядное целое число, идентифицирующее тип атома; набор к 'sbgp'.

Версия

1-байтовая спецификация версии этого атома выборки группе, набора к 0

Флаги

3 байта зарезервировали пространство, набор к 0.

Группировка типа

32-разрядное целое число, идентифицирующее группирующийся тип, набор к ‘roll’.

Количество записи

32-разрядное целое число, дающее число записей в следующих табличных табличных данных.

Табличные данные

Таблица демонстрационного количества и описания группы индексирует пар как показано на рисунке g-4.

Рисунок g-4  расположение табличного формата данных
Демонстрационное количество

32-разрядное целое число, обеспечивающее число последовательных выборок носителей с тем же демонстрационным дескриптором группы. Значение обычно является тем же как в числе атома объема выборки поля записей.

Индекс описания группы

32-разрядное целое число, значение которого является индексом в демонстрационную таблицу данных полезной нагрузки атома описания группы, описывающую выборки в этой группе. Индекс колеблется от 1 до числа вводов данных полезной нагрузки в демонстрационном атоме описания группы или принимает значение 0, чтобы указать, что эта группа выборок является участником никакой группы этого типа.

Пример — представление кодера задерживается явно

Полагайте, что следующий пример типичного случая исходных данных звука PCM кодируется как AAC:

Цель состоит в том, чтобы представлять временную позицию 5 секунд аудио PCM на 48 кГц, закодированного в звуковой дорожке AAC на 48 кГц. Примите масштаб времени носителей 48 000 и задержку кодера 2 112. Для удобства примите масштаб времени фильма 48 000 также.

Аудиоданные

Источник аудиоданные PCM до кодирования:

  • Частота дискретизации: 48000 в секунду

  • Демонстрационное количество: 240000 выборок PCM (5 секунд)

  • Продолжительность в галочках масштаба времени: 240000 (с масштабом времени носителей то же как частота дискретизации)

AAC в закодированной звуковой дорожке:

  • Задержка кодера: 2 112 аудиосэмплов

  • Выборки на пакет AAC: 1024

  • Задержка декодера: 1 024 выборки (или 1 пакет AAC)

  • Число пакетов AAC: 237 (= ((2112+240000) / 1024) окруженный к целочисленному значению)

  • Демонстрационное количество: 242688 (= 237 * 1024)

  • Выборки остатка: 576 (= 242688 - (2112 + 240000))

Трансформация из источника PCM к закодированному AAC приводит к звуковой дорожке с 237 выборками носителей AAC, соответствующими 242688 аудиосэмплам PCM, если декодируется и представлено полностью. Из того общего количества только 240 000 аудиосэмплов источника, запускающегося при выборке, смещают 2112 (пропуск первых 2 111 выборок) должны быть представлены. От этого атом списка редактирования и демонстрационный атом группы, описанный в Структурах Дорожки, используются для представления задержки кодера.

Структуры дорожки

На основе Аудиоданных следующий список редактирования и демонстрационные атомы группы используются для представления задержки кодера.

Атом списка редактирования содержит эти данные:

  • Размер: 28

  • Тип: ‘elst’

  • Версия: 0

  • Флаги: 0

  • Количество записи: 1

  • Число записей: 1

с этими табличными данными:

  • Продолжительность дорожки: 240000 (исходная продолжительность)

  • Время носителей: 2112 (составляет задержку кодера),

  • Уровень носителей: 1.0

Демонстрационный атом описания группы содержит эти данные:

  • Размер: 26

  • Тип: ‘sgpd’

  • Версия: 1

  • Флаги: 0

  • Группировка типа: ‘roll’

  • Длина по умолчанию: 2

  • Количество записи: 1

с этими табличными данными:

  • данные полезной нагрузки:-1

И атом выборки группе содержит эти данные:

  • Размер: 22

  • Тип: ‘sbgp’

  • Версия: 0

  • Флаги: 0

  • Группировка типа: ‘roll’

  • Количество записи: 1

с этими табличными данными:

  • Демонстрационное количество: 237 (число пакетов AAC, представляющих задержку кодера, исходные аудиосэмплы и аудиосэмплы остатка)

  • Индекс описания группы: 1 (соответствует первой и единственной записи в демонстрационной таблице данных полезной нагрузки атома описания группы для этих отсчетов),

Другие вещи отметить в этом примере:

  • Вы не можете использовать список редактирования отдельно для определения задержки кодера или демонстрационного количества остатка. Демонстрационные атомы группы обеспечивают задержку кодера. Размещение конца редактирования в сжатом аудио пакете позволяет вычисление выборок остатка.

  • Если бы задержка кодера была теоретическим минимумом для AAC 1 024, то значение поля времени носителей в табличных данных списка редактирования, показанных в этом примере, было бы 1024, не 2112.

Сводка — Используя структуры дорожки для представления задержки кодера

При использовании демонстрационных структур группы в представлении кодера задерживаются для звуковых дорожек AAC:

Эти два демонстрационных атома структуры группы в дополнение к атому списка редактирования, должным образом составленному, формируют полноценное внедрение для явного представления временной позиции исходных аудиосэмплов в AAC закодированная дорожка.