Interchange File Format

Short description: Container file format introduced by Electronic Arts and Commodore

Interchange File FormatDeveloped by| Electronic Arts, Commodore

|

Initial release| 1985; 41 years ago (1985)
Type of format| Digital container format

Interchange File Format (IFF) is a generic digital container file format originally introduced by Electronic Arts (in cooperation with Commodore) in 1985 to facilitate transfer of data between software produced by different companies.

IFF files do not have any standard filename extension. On many systems that generate IFF files, file extensions are not important because the operating system stores file format metadata separately from the file name. The `.iff` filename extension is commonly used for the ILBM image file format, which uses the IFF container format.

Resource Interchange File Format is a format developed by Microsoft and IBM in 1991 that is based on IFF, except the byte order has been changed to little-endian to match the x86 microprocessor architecture. Apple's Audio Interchange File Format (AIFF) is a big-endian audio file format developed from IFF. The TIFF image file format is not related to IFF.

## Contents

* 1 Structure
* 2 See also
* 3 Notes
* 4 References
* 5 External links

## Structure

An IFF file is built up from chunks. Each chunk begins with what the specification calls a "Type ID" (what the Macintosh called an OSType, and Windows developers might call a FourCC). This is followed by a 32-bit signed integer (all integers in IFF file structure are big-endian) specifying the size of the following data (the chunk content) in bytes.[1] Because the specification includes explicit lengths for each chunk, it is possible for a parser to skip over chunks that it either can't or doesn't care to process.

This structure is closely related to the type–length–value (TLV) representation.

There are predefined group chunks, with type IDs `FORM`, `LIST` and `CAT `.[NB 1] 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 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 chunks with odd lengths will be "padded" to an even byte boundary by adding a so-called "pad byte" after their regular end.

The top-level structure of an IFF file consists of exactly one of the group chunks: `FORM`, `LIST` or `CAT `, where `FORM` is by far the most common one.

Each type of chunk typically has a different internal structure, which 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 a common name but hold different data such as `BODY`, which could store an 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 chunks to them 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.

## See also

* AIFF (a big-endian compatible derivative of IFF, originally from Apple)
* FourCC (the chunk identification approach used by many TLV formats, including IFF, as verbose Magic number)
* Interleaved Bitmap (ILBM) (a very popular IFF-based image file format)
* PNG (a modern graphics file format with a chunk structure inspired by IFF)
* RIFF (a little-endian incompatible derivative of IFF, originally from Microsoft)
* TLV (the generic format that IFF is an example of)

## Notes

1. ↑ With a trailing space (ASCII 20h).

## References

1. ↑ Reddy, Martin (14 January 1985). "'EA IFF 85' Standard for Interchange Format Files". http://www.martinreddy.net/gfx/2d/IFF.txt.

## External links

* “EA IFF 85”: Standard for Interchange Format Files \- the original IFF spec written by EA's Jerry Morrison (January 14, 1985)
* Standards and specs: The Interchange File Format (IFF) \- article at IBM developerworks page.
* Page about Amiga files formats and IFF variants
* IFF Chunk Registry
* IFF standard \- plus source code and a listing of registered chunks and FORMs in the AmigaOS context.

* v
* t
* e

Multimedia compression and container formats

Video
compression|

| ISO, IEC, MPEG|

* MJPEG
* Motion JPEG 2000
* MPEG-1
* MPEG-2
* Part 2
* MPEG-4
* Part 2 / ASP
* Part 10 / AVC
* MPEG-H
* Part 2 / HEVC
* MPEG-I
* Part 3 / VVC

|

ITU-T, VCEG|

* H.120
* DCT
* H.261
* H.262
* H.263
* H.264 / AVC
* H.265 / HEVC
* H.266 / VVC
* DV

SMPTE|

* VC-1
* VC-2
* VC-3
* VC-5

TrueMotion|

* TrueMotion S
* DCT
* VP3
* VP6
* VP7
* VP8
* VP9
* AV1

Others|

* Apple Video
* AVS
* Bink
* Cinepak
* Daala
* DVI
* EVC
* FFV1
* Huffyuv
* Indeo
* Lagarith
* Microsoft Video 1
* MSU Lossless
* OMS Video
* Pixlet
* ProRes 422
* ProRes 4444
* QuickTime
* Animation
* Graphics
* RealVideo
* RTVideo
* SheerVideo
* Smacker
* Sorenson Video/Spark
* Theora
* Thor
* WMV
* XEB
* YULS

Audio
compression|

| ISO, IEC, MPEG|

* MPEG-1 Layer II
* Multichannel
* MPEG-1 Layer I
* MPEG-1 Layer III (MP3)
* AAC
* HE-AAC
* AAC-LD
* MPEG Surround
* MPEG-4 ALS
* MPEG-4 SLS
* MPEG-4 DST
* MPEG-4 HVXC
* MPEG-4 CELP
* MPEG-D USAC
* MPEG-H 3D Audio

|

ITU-T|

* G.711
* A-law
* µ-law
* G.718
* G.719
* G.722
* G.722.1
* G.722.2
* G.723
* G.723.1
* G.726
* G.728
* G.729
* G.729.1

IETF|

* Opus
* iLBC
* Speex
* Vorbis

3GPP|

* AMR
* AMR-WB
* AMR-WB+
* EVRC
* EVRC-B
* EVS
* GSM-HR
* GSM-FR
* GSM-EFR

ETSI|

* AC-3
* AC-4
* DTS

Others|

* ACELP
* ALAC
* Asao
* ATRAC
* AVS
* CELT
* Codec 2
* DRA
* FLAC
* iSAC
* Monkey's Audio
* TTA
* True Audio
* MT9
* Musepack
* OptimFROG
* OSQ
* QCELP
* RCELP
* RealAudio
* RTAudio
* SD2
* SHN
* SILK
* Siren
* SMV
* SVOPC
* TwinVQ
* VMR-WB
* VSELP
* WavPack
* WMA
* MQA
* aptX
* aptX HD
* aptX Low Latency
* aptX Adaptive
* LDAC
* LHDC
* LLAC

Image
compression|

| IEC, ISO,
IETF, W3C,
ITU-T, JPEG|

* CCITT Group 4
* DCT
* HEIF
* HEVC
* JPEG
* JPEG XR
* JPEG XT
* TIFF/EP
* Arithmetic
* JBIG
* JBIG2
* JPEG-LS
* JPEG 2000
* LZ
* GIF
* PNG
* TIFF
* TIFF/IT

|

Others|

* APNG
* BPG
* DjVu
* EXR
* FLIF
* ICER
* MNG
* PGF
* QTVR
* WBMP
* WebP

Containers|

| ISO, IEC|

* MPEG-ES
* MPEG-PES
* MPEG-PS
* MPEG-TS
* ISO base media file format
* MPEG-4 Part 14 (MP4)
* Motion JPEG 2000
* MPEG-21 Part 9
* MPEG media transport

|

ITU-T|

* H.222.0
* T.802

IETF|

* RTP
* Ogg

SMPTE|

* GXF
* MXF

Others|

* 3GP and 3G2
* AMV
* ASF
* AIFF
* AVI
* AU
* BPG
* Bink
* Smacker
* BMP
* DivX Media Format
* EVO
* Flash Video
* IFF
* M2TS
* Matroska
* WebM
* QuickTime File Format
* RatDVD
* RealMedia
* RIFF
* WAV
* MOD and TOD
* VOB, IFO and BUP

Collaborations|

* NETVC
* MPEG LA
* HEVC Advance

Methods|

* Discrete cosine transform
* DCT
* MDCT
* Entropy
* Arithmetic
* Huffman
* Modified
* FFT
* LPC
* ACELP
* CELP
* LSP
* WLPC
* Lossless
* Lossy
* LZ
* DEFLATE
* LZW
* PCM
* A-law
* µ-law
* ADPCM
* DPCM
* Transform
* Wavelet
* Daubechies
* DWT
* Transform

Lists|

* Comparison of audio coding formats
* Comparison of video codecs
* List of codecs

See Compression methods for techniques and Compression software for codecs

* v
* t
* e

AmigaOS

Amiga technologies|

* AmigaBASIC
* AmigaDOS
* AmigaGuide
* ARexx
* Blitter object
* Exec/WarpOS
* Guru Meditation
* Hunk
* Installer
* Intuition
* Kickstart
* RAM disk
* Workbench
* XAD

Amiga GUIs|

* Ambient
* MUI
* ReAction
* Scalos
* Workbench
* Zune

File systems|

* CrossDOS
* OFS
* FFS
* PFS
* SFS
* UDF
* FAT
* NTFS

OS versions|

* AmigaOS version history
* AmigaOS 4

Software packs|

* Amiga Forever
* AmiKit

Other software|

* Aminet
* Amiga Reflections
* Demos
* Games
* Hollywood
* ADF
* IFF
* LHA
* WHDLoad
* WinUAE
* YAM
* AmiZilla

Influenced|

* AROS
* AtheOS
* BeOS
* DragonFly BSD
* MorphOS
* Syllable

Category

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Interchange File Format. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Interchange_File_Format&oldid=182525"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template