Обзор файла CAF
Эта глава обеспечивает справочную информацию, важную для понимания и использования файлов Core Audio Format (CAF) Apple.
Преимущества файла CAF
Формат Core Audio Apple является гибким, современным форматом файла для того, чтобы сохранить и управлять данными цифрового аудио. Это полностью поддерживается Core Audio APIs в OS X v10.4 и позже и в OS X v10.3 с QuickTime 7 или позже. Это поддерживается в iOS, запускающемся в iOS 5.0. CAF обеспечивает высокую производительность и гибкость и является масштабируемым к будущей сверхвысокой аудиозаписи разрешения, редактированию и воспроизведению.
Файлы CAF имеют несколько преимуществ перед другими стандартными форматами аудиофайла:
Неограниченный размер файла
Принимая во внимание, что AIFF, AIFF-C и файлы WAV ограничиваются в размере 4 гигабайтами, которые могли бы представлять всего 15 минут аудио, файлы CAF используют 64-разрядные файловые смещения, устраняя практические пределы. Стандартный файл CAF может содержать аудиоданные с длительностью воспроизведения сотен лет.
Безопасная и эффективная запись
Приложения пишущий AIFF и файлы WAV должны или обновить поле размера заголовка данных в конце записи — который может привести к неприменимому файлу, если запись прервана, прежде чем заголовок завершен — или они должны обновить поле размера после записи каждого пакета данных, которые неэффективны. С файлами CAF, напротив, приложение может добавить новые аудиоданные до конца файла способом, позволяющим ему определять объем данных, даже если не было завершено поле размера в заголовке.
Поддержка многих форматов данных
Файлы CAF служат обертками для большого разнообразия форматов аудиоданных. Гибкость файловой структуры CAF и много типов метаданных, которые могут быть зарегистрированы, позволяют файлам CAF использоваться с практически любым типом аудиоданных. Кроме того, файлы CAF могут сохранить любое число звуковых каналов.
Поддержка многих типов вспомогательных данных
В дополнение к аудиоданным файлы CAF могут сохранить текстовые аннотации, маркеры, разметки канала и много других типов информации, которая может помочь в интерпретации, анализе или редактировании аудио.
Поддержка зависимостей по данным
Определенные метаданные в файлах CAF соединяются с аудиоданными значением количества редактирования. Можно использовать это значение для определения, когда метаданные имеют зависимость от аудиоданных и, кроме того, когда аудиоданные изменились, так как метаданные были записаны.
Файловая структура CAF
Файлы CAF начинаются с заголовка файла, идентифицирующего тип файла и версию CAF, сопровождаемую серией блоков. Блок состоит из заголовка, определяющего тип блока и указывающего размер его раздела данных, сопровождаемого данными блока. Природа и формат данных являются определенными для каждого типа блока.
Только два типа блока, требуемые для каждого файла CAF, являются блоком Аудиоданных (который, как Вы, возможно, предположили, содержит аудиоданные), и Аудио блок Описания, указывающий формат аудиоданных.
Аудио блок Описания должен быть первым блоком после заголовка файла. Блок Аудиоданных может появиться где-либо еще в файле, если не был определен размер его раздела данных. В этом случае поле размера в заголовке блока Аудиоданных установлено в -1
и блок Аудиоданных должен быть последним в файле так, чтобы конец блока аудиоданных совпал с концом файла. Когда та информация не доступна в поле размера, это размещение позволяет Вам определять размер раздела данных.
Аудио сохранено в блоке Аудиоданных как последовательная серия пакетов. Аудио пакет в файле CAF содержит один или несколько кадров аудиоданных.
CAF поддерживает широкий диапазон других типов блока, которые могут быть помещены в любой порядок в файле кроме первого (зарезервированный для Аудио блока Описания) или в последний раз (когда поле размера блока Аудиоданных установлено в-1). Некоторые типы блока могут использоваться несколько раз в файле. Некоторые обращаются к — или именуются — блоки других типов.
Структура блока
Каждый блок состоит из заголовка блока, сопровождаемого разделом данных. Заголовки блока содержат два поля:
Четыре кода символа, указывающие тип блока
Число, указывающее размер блока в байтах
Формат данных в блоке зависит от типа блока. Это состоит из серии разделов, обычно вызванных полей. Формат аудиоданных зависит от типа данных. Все другие поля в файле CAF находятся в (сетевом) порядке байтов с обратным порядком байтов.
Пакеты, кадры и выборки
Для понимания этой спецификации важно понять определения следующих четырех условий:
Выборка
Одно число для одного канала оцифрованных аудиоданных.
Кадр
Ряд выборок, представляющих одну выборку для каждого канала. Выборки в кадре предназначаются, чтобы играться вместе (т.е. одновременно). Обратите внимание на то, что это определение могло бы отличаться от использования термина «кадр» кодеками, видеофайлами, и приложениями обработки видеоданных или обработкой аудиоданных.
Пакет
Самый маленький, неделимый блок данных. Для линейного PCM (импульсно-кодовый модулируемый) данные, каждый пакет содержит точно один кадр. Для сжатых форматов аудиоданных число кадров в пакете зависит от кодирования. Например, пакет AAC представляет 1 024 кадра PCM. В некоторых форматах варьируется число кадров на пакет.
Частота дискретизации
Число полных кадров выборок в секунду несжатых или распакованных данных.
Типы блоков
Этот раздел кратко представляет типы блоков, определенных в спецификации CAF. Все типы блока CAF полностью описаны в Спецификации Формата Core Audio.
Требуемый
Каждый файл CAF должен включать следующие блоки:
Аудио блок Описания, описывающий формат аудиоданных для файла. Этот блок должен сразу следовать после заголовка файла CAF. Посмотрите Аудио Блок Описания.
Блок Аудиоданных, содержа аудиоданные для файла. Если размер блока данных не известен, это должен быть заключительный блок в файле. Если заголовок этого блока указывает размер, блок может появиться где угодно после Аудио блока Описания. Посмотрите Блок Аудиоданных.
Если аудио пакеты варьируются по размеру, файл должен иметь Пакетный Табличный блок, записывающий размер каждого пакета. Посмотрите Пакетный Табличный Блок.
Расположение канала
Существует один блок, требующийся для всех файлов CAF больше чем с двумя каналами:
Блок Расположения канала, описывающий роль каждого канала в файле. Этот блок является дополнительным для одного - и файлы с двумя каналами. Посмотрите Блок Расположения Канала.
Дополнительные данные
Некоторые блоки относятся к данным в другом, поддерживая блоки:
Некоторые сжатые форматы аудиоданных требуют дополнительных специфичных для кодека данных для декодирования аудиоданных. Если формат аудио требует этих данных, файл должен иметь Волшебный блок Cookie. Посмотрите Волшебный Блок Cookie.
Некоторые блоки относятся к текстовым строкам, сохраненным в Строковом блоке. Посмотрите Строковый Блок.
Маркеры
Существует два блока, которые можно использовать для размещения маркеров в файл данных. Эти блоки совместно используют типы данных, описанные в Типах данных Маркера:
Блоки маркера содержат отдельные маркеры. Посмотрите Блок Маркера.
Блоки области формируют рисунок сегментов аудиоданных. Посмотрите Блок Области
Музыкальные метаданные
Существует два типа блока, хранящие музыкальную информацию:
Когда аудио используется сэмплером или играется как инструмент, инструментальные блоки описывают аспекты аудиоданных, необходимых. Посмотрите Инструментальный Блок.
Блоки MIDI хранят всю информацию в стандартном файле MIDI. Посмотрите Блок MIDI.
Поддержка редакторов
Два блока содержат данные для использования аудио редакторами:
Блоки обзора содержат выборки данных, полезных для отображения аудио в определенном разрешении. Файл CAF может иметь любое число их; один для каждого разрешения, которое будет выведено на экран. Посмотрите Блок Обзора.
Пиковые блоки перечисляют пиковую амплитуду в каждом канале и указывают кадр, в котором происходит та амплитуда. Посмотрите Пиковый Блок.
Аннотации
Существует два типа блока, содержащие аннотации к данным:
Блоки Комментариев редактирования содержат комментарии, к которым добавляют метку времени, добавил, когда редактируются данные. Посмотрите Блок Комментариев Редактирования.
Информационный блок содержит текстовые строки, предоставляющие информацию об аудиоданных, таких как ключ, художник и заголовок. Посмотрите информационный Блок.
Идентификатор
Один тип блока может использоваться для однозначного определения данных:
Дополнительный Уникальный Существенный Идентификатор (UMID) блок обеспечивает уникальный идентификатор для аудиоданных в файле CAF. В файле может быть самое большее один блок UMID. Посмотрите Уникальный Материальный Блок Идентификатора.
Расширение CAF
Можно определить собственный тип блока для расширения спецификации файла CAF. Существует тип блока, определенный с этой целью:
Определяемый пользователем блок обеспечивает универсально уникальный идентификатор (UUID) для нового типа блока. Посмотрите Определяемый пользователем Блок.
Дополнительное пространство
Много типов блока позволяют Вам указывать больший размер блока, чем в настоящее время необходимо для данных для резервирования дополнительного пространства. Существует также специальный блок, который можно использовать для резервирования дополнительного пространства в файле CAF в целом:
Свободный блок не содержит данных, но резервирует пространство, которое можно использовать позже. Посмотрите Свободный Блок.