Interchange File Format
|
Interchange File Format (IFF), is a generic file format originally introduced by the Electronic Arts company in 1985 in order to ease transfer of data between software products produced by different companies.
IFF files of course do not have any common extension. Most files with .iff extension are in fact ILBM files, wrongly named so because they are most common IFF files and most people think they are the only type of IFF files (on most systems that produce IFF files extensions are not important).
Contents |
Structure
An IFF file is built up from chunks. Each chunk begins with what the spec calls a "Type ID" (what the Macintosh called an OSType and more recent developers might call a "FourCC"). This is followed by a 32-bit unsigned integer (all integers in IFF files' structure are big-endian) specifying the size of the following data (the chunk content) in bytes.
There are predefined group chunks, with type IDs FORM, LIST and CAT . A FORM chunk is like a record structure, containing a type ID (indicating the record type) followed by nested chunks specifying the record fields. A LIST is a factoring structure containing a series of PROP (property) chunks plus nested group chunks to which those properties apply. A CAT is just a collection of nested chunks with no special semantics. Group chunks can contain other group chunks, depending on the needs of the application.
Chunks must begin on even file offsets, as befits the origins of IFF on the Motorola 68000 processor, which couldn't address quantities larger than a byte on odd addresses. Thus a chunk following an odd-length chunk will be preceded by a pad byte.
The top-level structure of an IFF file consists of exactly one of the group chunks: FORM, LIST or CAT .
Each type of chunk typically has different internal structure, that could be numerical data, text, or raw data. It is also possible to include other IFF files as if they are chunks (note that they have the same structure: four letters followed with length) and some formats use this. There are standard chunks that could be present in any IFF file, such as AUTH (containing text with information about author of the file), ANNO (containing text with annotation, usually name of the program that created the file), NAME (containing text with name of the work in the file), VERS (containing file version), "(c) " (containing text with copyright information). There are also chunks that are common among a number of formats, such as CMAP which holds color palette in ILBM, ANIM and DR2D files (pictures, animations and vector pictures). There are chunks that have common name but hold different data such as BODY which could store image in an ILBM file and sound in an 8SVX file. And finally, there are chunks unique to their file type. Some programs that create IFF files add to them chunks with their internal data; these same files can later be read by other programs without any disruption which is a great advantage of IFF and similar formats.
List of common IFF-based file formats
- 8SVX (Audio format)
- AIFF (Digital audio format)
- ANBM ((obsolete) animation fornat)
- ANIM (Animation format)
- BIFF8 (formerly used by Microsoft Excel)
- DOC (pre Word 97 format)
- DR2D
- FNTR (Raster font)
- FNTV (Vector font)
- FTXT (Text format)
- GSCR (apocryphal (?) General music Score)
- IFRS (known as Blorb)
- IFZS (known as Quetzal)
- ILBM (Raster image format)
- PDEF (Deluxe Print page definition)
- PICS (Macintosh QuickDraw picture encapsulated in IFF format)
- PLBM ((obsolete) picture format)
- SHRI
- SMUS (Simple Music format, simlar to MIDI format)
- USCR (Uhuru Sound music score)
- UVOX (Uhuru Sound voice)
- VDEO (Deluxe Video Construction Set video)
Clones and variants of the IFF format
- RIFF is a variant of IFF format devised by Microsoft and IBM; RIFF files differ from IFF files in that they have letters RIFF at the beginning and use little-endian integers. WAVE files, for example, are RIFFs. Microsoft introduced another variant, RIFX, which is identical to IFF and has been largely ignored.
- The TIFF file format was invented by Aldus to include high-depth bitmaps with PostScript; it is similar to IFF, and has a similar name, but is otherwise unrelated.
- The Standard MIDI File format takes the key concepts of IFF without actually using the IFF standard.
- The PNG file format takes the concept of chunks from IFF, but does not copy the exact structure.
External links
- About Interchange File Format (http://www.borg.com/~jglatt/tech/aboutiff.htm)
- “EA IFF 85”: Standard for Interchange Format Files (http://www.szonye.com/bradd/iff.html) - the original IFF spec written by EA's Jerry Morrison (January 14, 1985)de:Interchange File Format