Interchange File Format

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Interchange File Format (IFF) — формат файла-контейнера, разработанный в 1985 году корпорацией Electronic Arts совместно с Commodore для новой платформы Amiga с целью упростить обмен данными между ПО различных производителей. Контейнер IFF может содержать любые данные (звук, графику, текст и пр.)

Данный формат послужил основой для других форматов файлов-контейнеров (см. ниже в разделе См. также), а также сам по себе может быть известен под различными названиями (в зависимости от суффикса имени файла: (I)LBM, AIFF, 8SVX и др.)

Структура[править | править исходный текст]

Основным понятием файла стандарта IFF является чанк (англ. chunk) — порция данных, являющаяся строительным материалом файла и состоящая из заголовка и данных. Заголовок состоит из 32-битного идентификатора (ID) в виде FourCC и 32-битного блока (Size), указывающего размер данных (Data) в чанке. Если данные имеют нечётное число байт, то последние нулевые байты в последнем слове данных игнорируются и не включаются в Size. В качестве примера приведём следующее описание:

typedef struct {

char ID[4]; // FourCC идентификатор
LONG Size; // Размер блока данных
UBYTE Data[Size]; // Данные
} Chunk;

Проиллюстрируем чанк «CMAP», состоящий из 12 байт:

ID «CMAP»
Size 12
Data 0, 0, 0, 32

0, 0, 64, 0
0, 0, 64, 0

(12 байт)

См. также[править | править исходный текст]

На основе IFF создано множество форматов, которые, по сути, являются всё тем же IFF:

  • 8SVX (аудиоформат)
  • AIFF (аудиоформат)
  • ANBM (устаревший формат для анимации)
  • ANIM (формат для анимации)
  • BIFF8 (ранее использовался Microsoft Excel)
  • Alias/Wavefront Maya - формат изображений и описаний сцен
  • Word document (текстовые документы, до Word 97)
  • DjVu (формат для изображений)
  • DR2D
  • EMOD (формат модулей QuadraComposer)
  • FNTR (растровый шрифт)
  • FNTV (векторный шрифт)
  • FTXT (текстовый формат)
  • GSCR (apocryphal (?) General music Score)
  • IFRS (иногда называют Blorb)
  • IFZS (иногда называют Quetzal)
  • ILBM (формат для хранения растровых изображений)
  • LWO2 (формат программы Light wave)
  • PDEF (Описание страницы в Deluxe Print)
  • PICS (изображения Macintosh QuickDraw записанные в формате IFF)
  • PLBM (устаревший формат изображений)
  • SHRI
  • SMUS (формат Simple Music, схожий с MIDI)
  • USCR (музыка Uhuru Sound)
  • UVOX (голос Uhuru Sound)
  • VDEO (Deluxe Video Construction Set video)
  • YAFA (формат для анимации)

Кроме того, с учётом «опыта эксплуатации» были созданы клоны:

  • RIFF — это вариант формата IFF, разработанный Microsoft и IBM; Файлы RIFF отличаются от файлов IFF тем, что имеют литеры RIFF в начале и используют порядок байтов целых чисел от младшего к старшему (little-endian). Файлы WAV, например, являются файлами RIFF. Версия с порядком байт от старшего к младшему (big-endian), RIFX, так же была определена, но не нашла значительного применения.
  • Формат файла TIFF разработан компанией Aldus, чтобы интегрировать графику с большим числом bitmap в PostScript. Он имеет блочную (chunk) структуру подобную IFF, однако сам по себе формат изображения не имеет отношения к формату ILBM.
  • Стандарт файла MIDI использует основные концепции формата IFF, однако не является файлом этого стандарта.
  • Формат файла PNG имеет ту же концепцию блоков (chunk), что и IFF, однако не копирует структуру.

Ссылки[править | править исходный текст]