All Topics  
Interchange File Format

 

   Email Print
   Bookmark   Link






 

Interchange File Format



 
 
Interchange File Format (IFF), is a generic file format
File format

A file format is a particular way to encode information for storage in a computer file.Since a disk drive, or indeed any computer storage, can store only bits, the computer must have some way of converting information to 0s and 1s and vice-versa....
 originally introduced by the Electronic Arts
Electronic Arts

Electronic Arts is an international video game developer, marketer, video game publisher and distributor of video games. Established in 1982 by Trip Hawkins, the company was a pioneer of the early home computer games industry and was notable for promoting the designers and programmers responsible for its games....
 company in 1985 (in cooperation with Commodore
Commodore International

Commodore, the commonly used name for Commodore International, was a United States electronics company based in West Chester, Pennsylvania which was a vital player in the home computer/personal computer field in the 1980s....
-Amiga
Amiga

The Amiga is a family of personal computers originally developed by Amiga Corporation. Development on the Amiga began in 1982 with Jay Miner as the principal hardware designer....
) in order to ease transfer of data between software produced by different companies.

IFF files do not have any common extension. Most files with .iff extension are in fact ILBM
ILBM

ILBM is a subtype of the Interchange File Format used for storing picture data. ILBM stands for InterLeaved BitMap which refers to the way the pictures are stored....
 files, wrongly named so because they are the most common IFF files and most assume that they are the only type of IFF files (on many systems that generate IFF files, file extensions are not important).

Structure
An IFF file is built up from chunks.






Discussion
Ask a question about 'Interchange File Format'
Start a new discussion about 'Interchange File Format'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Interchange File Format (IFF), is a generic file format
File format

A file format is a particular way to encode information for storage in a computer file.Since a disk drive, or indeed any computer storage, can store only bits, the computer must have some way of converting information to 0s and 1s and vice-versa....
 originally introduced by the Electronic Arts
Electronic Arts

Electronic Arts is an international video game developer, marketer, video game publisher and distributor of video games. Established in 1982 by Trip Hawkins, the company was a pioneer of the early home computer games industry and was notable for promoting the designers and programmers responsible for its games....
 company in 1985 (in cooperation with Commodore
Commodore International

Commodore, the commonly used name for Commodore International, was a United States electronics company based in West Chester, Pennsylvania which was a vital player in the home computer/personal computer field in the 1980s....
-Amiga
Amiga

The Amiga is a family of personal computers originally developed by Amiga Corporation. Development on the Amiga began in 1982 with Jay Miner as the principal hardware designer....
) in order to ease transfer of data between software produced by different companies.

IFF files do not have any common extension. Most files with .iff extension are in fact ILBM
ILBM

ILBM is a subtype of the Interchange File Format used for storing picture data. ILBM stands for InterLeaved BitMap which refers to the way the pictures are stored....
 files, wrongly named so because they are the most common IFF files and most assume that they are the only type of IFF files (on many systems that generate IFF files, file extensions are not important).

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
OSType

OSType is the name of a four-byte sequence commonly used as an identifier in Mac OS. While the bytes can have any value, they are usually characters from the ASCII or Mac OS Roman character sets....
 and Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
 developers might call a FourCC
FourCC

A FourCC is a sequence of four bytes used to uniquely identify data formats. The concept originated in the OSType scheme used in the Mac OS and was adopted for the Amiga/Electronic Arts Interchange File Format and derivatives....
). This is followed by a 32-bit unsigned integer
Integer

The integers are natural numbers including 0 and their negative and non-negative numberss . They are numbers that can be written without a fractional or decimal component, and fall within the set ....
 (all integers in IFF files' structure are big-endian
Big-endian

Big-endian may refer to:* Endianness, the byte ordering in memory used to represent some kind of data in computing.* Name given to the inhabitants of the island of Lilliput and Blefuscu from the book Gulliver's Travels by Jonathan Swift, on account of their belief that eggs should be cracked on the larger end....
) specifying the size of the following data (the chunk content) in bytes. Because the spec includes explicit lengths for each chunk, it is possible for a parser to skip over chunks which it either can't or doesn't care to process.

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. Group chunks, like their simpler counterparts, contain a length element. Skipping over a group can thus be done with a simple Unix-style relative seek operation.

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
ILBM

ILBM is a subtype of the Interchange File Format used for storing picture data. ILBM stands for InterLeaved BitMap which refers to the way the pictures are stored....
, 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
ILBM

ILBM is a subtype of the Interchange File Format used for storing picture data. ILBM stands for InterLeaved BitMap which refers to the way the pictures are stored....
 file and sound in an 8SVX
8SVX

8SVX is a subformat of the Interchange File Format. The subformat is for 8-bit sampled sounds, supports both mono and stereo streams as well as loops; commonly used as a basic audio sample format on Amiga computers for many years....
 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 (because their parsers could skip uninteresting chunks) which is a great advantage of IFF and similar formats.

As a nestable, descriptive file format, there are architectural similarities to XML. XML, however, is primarily a text format, whereas all IFF contains at least some binary data (the length fields). It is possible to mechanically convert IFF to an XML equivalent; however, XML has additional features such as descriptive data and metadata (attributes, entities, DTD's and schemas) and navigational features (xpath) which cannot be trivially mapped back to IFF.

External links

  • - the original IFF spec written by EA's Jerry Morrison (January 14, 1985)
  • article at IBM developerworks page.