Interchange File Format
Interchange File Format | |
Fájlkiterjesztés | .iff |
MIME-típus | application/x-iff |
Fejlesztő | Electronic Arts, Commodore |
Kiadás dátuma | 1985[1] |
Formátum típusa | tároló formátum |
Uniform | com.ea.iff-ilbm[2] |
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]
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]- DataTypes (az Amigák adattípus-kezelő rendszere)
- AIFF (az IFF big-endian származéka, eredetileg Apple-re)
- FourCC (rövid azonosítási megközelítést alkalmazó TLV kódolás, egyfajta beszédes varázsszámok)
- Interleaved Bitmap (ILBM) (népszerű IFF-alapú bitkép fájlformátum)
- PNG (modern grafikai fájlformátum, az IFF által inspirált chunk-struktúrával)
- RIFF (egy little-endian IFF származék, de azzal nem kompatibilis, eredetileg a Microsoft fejlesztése)
- TLV (kódolási séma, melynek egy példája az IFF)
Jegyzetek
[szerkesztés]- ↑ 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.
- ↑ List of Uniform Type Identifiers (angol nyelven). GitHub
- ↑ Amiga Developer Docs. Interchange File Format (IFF) Specification (angol nyelven). Commodore-Amiga, Inc., 4-5. o. (1985)
- ↑ 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.
- ↑ 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.)
- ↑ 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]- “EA IFF 85”: Standard for Interchange Format Files – az eredeti IFF specifikáció, készítette Jerry Morrison az EA-tól (1985. január 14.)
- Amiga file formats – Amiga fájlformátumokról és IFF-variánsokról szóló oldal
- IFF Chunk Registry – az IFF azonosítókat, adategységeket (chunkok) leíró lista
- IFF szabvány – forráskóddal, azonosítókkal, chunk-leírásokkal