Главная » Программирование звука » Форматы файлов AIFF и AIFF-C

0

Фирма  Apple  позаимствовала  формат  IFF  фирмы  Electronic  Arts  (см.  следующую главу)  для  использования  на  платформе  Macintosh  и  внесла  некоторые  изменения. B результате появился формат, названный Audio Interchange File Format (AIFF, формат  файлов  для  обмена  аудио).  Оригинальный  AIFF  не  поддерживал  сжатые аудиоданные,  поэтому  был  разработан  еще  один  вариант   Audio  Interchange  FiIe Format  Extensionfor  Compression  (AIFF-C  или  AIFC,  формат  файлов  для  обмена аудио  с  поддержкой  компрессии).  Файлы  AIFF  и  AIFF-C  почти  идентичны,  поэтому все, что говорится об AIFF, в равной степени относится и к AIFF-C. Отличия я рассмотрю особо.

Структура файла AIFF такая же, как и у файла RIFF (см. предыдущую главу). Однако  файлы  AIFF  хранят  многобайтные  значения  в  форме  MSB  и  используют другие названия блоков.

Файлы  AIFF  состоят  из  единственного  внешнего  блока  FORM.  Тип  этой  формы  AIFF или AIFC.  B ее состав  могут  входить некоторые  или даже  все  блоки, перечисленные в табл. 18.1. Самыми важными являются блоки COMM и SSND, представленные во всех файлах AIFF и AIFF-C, и блок FVER, встречающийся во всех файлах AIFF-C.

Таблица 18.1. Блоки AIFF

Тип блока                                Описание

FVER                                         Версия файла AIFF-C

COMM                                       Информация о формате хранения звука

SSND                                        Звуковые данные

MARK                                        Маркер

COMT                                        Комментарий INST                                          Инструмент MIDI                                          Данные MIDI

AESD                                        Информация о записи

APPL                                         Блок, содержимое которого относится к приложению

NAME                                        Имя

AUTH                                        Автор

(с)                                              Информация об авторских правах

ANNO                                        Аннотация

Так  как  AIFF  и  AIFF-C  почти  идентичны,  любопытно,  почему  вообще  существует AIFF-C. B файлах AIFF, как и в большинстве вариантов IFF, предполагается,  что  процедура  чтения  игнорирует  любые  данные,  которые  не  может  распознать. B частности, если вы добавляете новые типы блоков или новую информацию в  конец  области  существующего  типа,  эти  данные  будут  игнорироваться  старыми процедурами  чтения.  Оригинальный  формат  AIFF  не  определяет  метод  сжатия. Чтобы  добавить  его,  пришлось  бы  добавлять  новый  тип  блоков  или  расширить существующий  тип  COMM (в  блоках  этого  типа  содержится  информация  о  звуковом  формате).  B  любом  случае  старые  процедуры  чтения  игнорировали  бы  эту информацию  и  пытались  бы  проиграть  данные,  не  используя  соответствующий декомпрессор.

Чтобы  обойти  данную  проблему,  инженеры  Apple  были  вынуждены  определить новый контейнерный тип FORM/AIFC. Так как этот тип отличен от других, старые  проигрыватели  не  смогут  найти  и  корректно  проиграть  файл.  Новые  проигрыватели,  которые  распознают  оба  контейнерных  типа,  могут  посмотреть  код типа компрессии, добавленный в область COMM, и, как следствие, работать с двумя контейнерными типами почти одинаково.

Инженеры,  разработавшие  AIFF-C,  учли  свою  прежнюю  ошибку,  они  добавили в  спецификацию  блок FVER.  Этот блок содержит  код,  основанный на  дате  создания соответствующей спецификации.

Если процедура чтения файла не распознает данный код, ей не следует проигрывать  файл,  так  как  для  этого  надо  понимать  новые  данные.  Изменения  в  коде FVER должны  быть  незначительными;  за  семь  лет  с  момента  появления  AIFF-C необходимости в его модификации вообще не возникало.

Источник: Кинтцель Т.  Руководство программиста по работе со звуком = A Programmer’s Guide to Sound: Пер. с англ. М.: ДМК Пресс, 2000. 432 с, ил. (Серия «Для программистов»).

По теме:

  • Комментарии