Resource Interchange File Format
Structure de fichier pour les contenus multimedia De Wikipédia, l'encyclopédie libre
Le Resource Interchange File Format (RIFF) définit un modèle générique de format de fichier à destination des contenus multimédia[1]. Ainsi, il ne s'agit pas d'un format de fichier en soi[2], mais plutôt d'une méthode d'organisation des données sur laquelle reposent plusieurs formats[3] comme le WAVE et l'AVI.
RIFF
Resource Interchange File Format
Resource Interchange File Format
PUID | |
---|---|
Signatures | |
Développé par | |
Version initiale | |
Type de format |
Format conteneur générique |
Basé sur | |
Origine de | |
Spécification |
Le RIFF a été défini conjointement par Microsoft et IBM en 1991. Il hérite en grande partie du format IFF de l'Electronic Arts (1985)[4].
Histoire
Le RIFF a été introduit en 1991 par Microsoft et IBM comme modèle pour les formats de fichiers multimédia, à destination d'OS/2 et Windows 3.1[5]. Le standard est d’ailleurs publié conjointement avec les premiers formats de fichier issus du RIFF, tel le format WAVE.
Le RIFF reprend le modèle de structure en chunks de l'Interchange File Format publié en 1985 par Electronic Arts, tout en laissant de côté la majorité des autres éléments du standard IFF.
Chunk

L'unité de construction de base d'un fichier RIFF est le chunk. Un chunk est un bloc de données composé des champs suivant :
- ckid : chunk-identifier, 4 octets représentant l'identifiant FourCC du chunk, soit une séquence de 1 à 4 caractères ASCII alphanumériques (sans espaces) alignés à gauche, séquence complétée à droite par zéro ou plusieurs caractères « espace » (code ASCII
0x20
), pour former un groupe d'exactement quatre caractères[6]. Par exemple, le ckidfmt␣(le glyphe « ␣ » représente une espace)
sera représenté par la suite des quatre caractères : 'f', 'm', 't', '␣' (le glyphe « ␣ » représentant une espace). - cksz : chunk-size, entier 32 bits non signé représentant la taille des données contenues dans le champ data du chunk[7].
- data : Les données utiles (payload), contenues dans ce chunk. Dans le cas où les données sont de taille impaire — c'est-à-dire où le champ cksz contient une valeur impaire —, un octet nul est ajouté à la fin du champ de façon à conserver l'alignement dans le fichier[8].
Structure du RIFF

Un fichier RIFF est exclusivement composé de chunks.
Un fichier RIFF commence (à l'octet 0) par le chunk d'identifiant RIFF
. Celui-ci accueillera dans son champ data tous les chunks du fichier. Par conséquent, le champ cksz du chunk RIFF
équivaut à la taille du fichier moins 8 octets.
Le champ data du chunk RIFF
commence par un identifiant FourCC appelé formType. Celui-ci indique le type de fichier. Par exemple, dans le cas d'un fichier WAVE, l'identifiant sera l'étiquette FourCC WAVE
(c'est-à-dire composée des 4 octets ASCII 'W', 'A', 'V', 'E').
À noter que le chunk RIFF
est le seul, avec le chunk LIST
, à pouvoir prendre comme données d'autres chunks.
Concernant l'ordonnancement des octets, le format RIFF représente les données en mode petit-boutisme (little-endian). Cependant, le format RIFF définit aussi le RIFX
, comme étant son pendant gros-boutiste (big-endian).
Notes et références
Voir aussi
Liens externes
Wikiwand - on
Seamless Wikipedia browsing. On steroids.