IFF
Interchange File Format (IFF) — формат файла-контейнера, разработанный в 1985 году корпорацией Electronic Arts для новой платформы Amiga для унификации представления структуры данных файлов. Контейнер IFF может содержать любые данные (звук, графику, текст). Как структурообразующий формат, стандартизированный для Amiga (EA IFF 85), определил форматы всей платформы и оказал огромное влияние на многие современные типы данных.
Структура
Основным понятием файла стандарта IFF является чанк или кусок (англ. chunk) — порция данных, являющаяся строительным материалом файла и состоящая из заголовка и данных. Заголовок состоит из 32-битного идентификатора (ID) и 32-битного блока (Size), указывающего размер данных (Data) в куске. Если данные имеют нечётное число байт, то последние нулевые байты в последнем слове данных игнорируются и не включаются в Size. Ниже пример такой структуры.
typedef struct { char ID[4]; // FourCC идентификатор LONG Size; // Размер блока данных UBYTE Data[Size]; // Данные } Chunk;
На основе IFF создано множество форматов, часть которых пережили саму платформу Amiga:
- 8SVX (аудиоформат)
- AIFF (аудиоформат)
- ANIM (формат для анимации)
- BIFF8 (ранее использовался Microsoft Excel)
- Microsoft Word document (текстовые документы, до Word 97)
- DjVu (формат для изображений)
- FNTR (растровый шрифт)
- FNTV (векторный шрифт)
- FTXT (текстовый формат)
- ILBM (формат для хранения растровых изображений)
- XMI (подформат MIDI)