Interchange File Format

Az Electronic Arts és a Commodore közös tároló formátuma

Az Interchange File Format (általánosan alkalmazott rövidítéssel: IFF) egy általánosan alkalmazható konténerformátum, melyet az Electronic Arts vezetett be 1985-ben a Commodore közreműködésével abból a célból, hogy elősegítse a különböző cégek által gyártott szoftverek közötti adatcserét.[1]

Interchange File Format
Fájlkiterjesztés.iff
MIME-típusapplication/x-iff
FejlesztőElectronic Arts, Commodore
Kiadás dátuma1985[1]
Formátum típusatároló formátum
Uniformcom.ea.iff-ilbm[2]

Az IFF fájloknak nincs szabványos fájlkiterjesztésük, mivel több ilyen formátumot használó operációs rendszeren (OS) ennek nincs jelentősége (például azért, mert az OS a formátumot nem a fájlnévben tárolja, hanem metaadatként). Ezzel együtt is azonban a .iff kiterjesztést alkalmazzák általánosan az IFF konténerformátumot használó ILBM formátumú állományok esetében.[3]

A Resource Interchange File Format (RIFF) egy a Microsoft és az IBM által 1991-ben kifejlesztett konténerformátum, mely az IFF-en alapul, kivéve hogy a bájtsorrendet little-endianra módosították, illeszkedve az x86 architektúrához.[4] Az Apple AIFF egy big-endian bájtsorrendű audio fájlformátum, melyet szintén az IFF-ből fejlesztettek ki.[5] A TIFF képformátum azonban nem rokon az IFF-fel.

Fájlstruktúra szerkesztés

Egy IFF fájl struktúrája nagyobb adategységekből (chunk) épül fel, melyek mindegyike egy típusazonosítóval indul ("Type ID"), hasonlóan a Macintosh OSType vagy a Windows FourCC négykarakteres azonosítóihoz. Ezután következik az adott adategység hossza előjeles egész (integer) számformátumban, bájtokban számolva (az IFF formátumban minden integer érték big-endian bájtsorrendű). Mivel a hosszak egyértelműek, ezért a formátum-értelmező (pl. egy képnéző) könnyedén átugorhat olyan adategységeket, melyeket nem tud, vagy nem kíván feldolgozni. Ez a struktúra a Típus–hossz–érték (TLV) kódolási séma egy megvalósítása.[1]

Több előre definiált típusazonosító is létezik a "csoportos" adategységek jelölésére, így pl. FORM, LIST és CAT  (szóközzel a végén). A FORM chunk típus egyfajta rekord-struktúrát képvisel, egy a rekordtípust reprezentáló azonosítóval kezdődően, majd beágyazott chunkokkal, melyek a rekord mezőit határozzák meg. A LIST típusazonosító az alkotóelemek struktúráját jelöli, melyek PROP azonosítók beágyazott sorozatával a tulajdonságokat adják meg. A CAT  azonosító előre nem meghatározott sémával rendelkező beágyazott adategységeket tartalmaz. Az adategység csoportok (group chunks) továbbiakat is tartalmazhatnak az alkalmazástól függően. Ezek a chunkok is tartalmazzák a hosszukat, így egyszerűen átugorhatók (pl. a C-nyelv "fseek" függvényével).[6] A chunkok páros fájl-eltoláson (offset) kell kezdődjenek, mely az IFF formátum múltjából ered, amikor a Motorola 68000 processzor csak maximum bájt hosszúságú páratlan címeket tudott kezelni, ezért a páratlan chunk-hosszakat inkább kipótolták egy plusz bájttal ("pad byte"). Egy IFF-fájl struktúrájának legfelső szintjén a csoport chunkok egyike kell, hogy álljon, azaz: FORM, LIST vagy CAT , melyek közül a FORM típusazonosító messze a legáltalánosabb.[1]

Minden chunknak megvan a saját, többitől eltérő belső felépítése, amely lehet numerikus adat, szöveg vagy nem strukturált adat. Tartalmazhat más IFF fájlokat is, melyre van példa egyes formátumoknál. Léteznek szabványos chunkok, melyek bármely IFF fájlban megjelenhetnek, így például:

  • AUTH (tartalma szöveges és a fájl készítőjére utal),
  • ANNO (tartalma szöveges és általában a fájlt létrehozó programot nevezi meg),
  • NAME (tartalma szöveges és a fájlban foglalt mű címét adja meg),
  • VERS (tartalma a fájl verziószámát adja meg),
  • (c)  (tartalma szöveges és szerzői joggal kapcsolatos információt ad meg).

Olyan adategységek is vannak, melyek közösek több eltérő formátum esetében is, így például a CMAP, mely a színpalettára vonatkozó adatokat tartalmaz ILBM (bitkép), ANIM (animáció), illetve DR2D (2D rajz) formátumok esetén. Emellett vannak közös, de eltérő adattartalmú chunkok is, mint például a BODY, mely ILBM fájl esetén a képet, 8SVX esetén hangot tartalmaz. Végül pedig azok a chunkok, melyek egyediek, probléma nélkül feldolgozhatók más programokkal is, hiszen a feldolgozórutinjuk által fel nem ismert adategységet egyszerűen át tudják ugrani. Ez nagy előnye az IFF és az ehhez hasonló formátumoknak.[1]

Kapcsolódó szócikkek szerkesztés

Jegyzetek szerkesztés

  1. a b c d e Electronic Arts. EA IFF 85 Standard for Interchange Format Files (angol nyelven). Electronic Arts (1985. január 14.). Hozzáférés ideje: 2023. április 19. 
  2. List of Uniform Type Identifiers (angol nyelven). GitHub
  3. Amiga Developer Docs. Interchange File Format (IFF) Specification (angol nyelven). Commodore-Amiga, Inc., 4-5. o. (1985) 
  4. Multimedia Programming Interface and Data Specifications 1.0 (angol nyelven). IBM / Microsoft, 10–11. o. (1991. augusztus 1.). Hozzáférés ideje: 2023. április 19. 
  5. Apple Computer, Inc.: Audio Interchange File Format, A Standard for Sampled Sound Files, Version 1.3 (angol nyelven) (PDF), 1989. január 4. (Hozzáférés: 2023. április 19.)
  6. Seebach, Peter: Standards and specs: The Interchange File Format (IFF) (angol nyelven). IBM developerWorks , 2006. június 13. [2012. június 18-i dátummal az eredetiből archiválva].

További információk szerkesztés