RIFF
読み:リフ
外語:RIFF: Resource Interchange File Format
一つのファイル内にチャンクと呼ばれるデータの塊(データブロック)が入れ子構造になった、可変長フォーマットのこと。
概要
画像や音声など、異なるタイプのリソース(データ)を一つのファイルに格納するための共通フォーマットとして、Electronic Arts社が開発したIFFを参考に、Microsoftにより作られた。現在でいうところの、コンテナーフォーマットの先駆けとなる発想である。
一つのファイルに複数のデータを入れることも容易で、またデータを入れ子にすることも可能。
拡張性や汎用性が高く、将来的に新しい形式の情報が登場したとしても容易に拡張でき、また従来のものとの互換性が保たれる形式になっている。
Windowsでは映像+音声のAVIファイルや、音声のみのWAVファイルなどがRIFF形式のファイルとなっている。このため、Video for WindowsのAPIではWAVファイルを映像のない音声のみのAVIファイルのように扱える。
特徴
RIFF全体の構造は、「RIFF形式の識別子」と必要な数の「チャンク」となる。
1バイトは8ビットで4バイト(32ビット)形式の構造であり、中に含められるデータは1バイト単位の任意長であるが、フォーマットの仕様から各チャンクの最大サイズは232バイトまでである。
数値はリトルエンディアンで格納されている。
長さ | 内容 | 例 |
4バイト | RIFF形式の識別子 | 'RIFF' |
4バイト | ファイルサイズ | ファイルの全体長-8 |
4バイト | RIFFの識別子 | wavなら 'WAVE' |
4バイト | チャンク1 | タグ | |
4バイト | データ長 | 実データ長 |
nバイト | データ | 上のデータ長ぶんの長さのデータ |
4バイト | チャンク2 | タグ | |
4バイト | データ長 | 実データ長 |
nバイト | データ | 上のデータ長ぶんの長さのデータ |
| (以下同様) | |
実質的に、12バイトのヘッダーがあり、以降はデータであるとも言える、シンプルな構造のファイルフォーマットである。
使用例
形式
よく知られるもので、次のものがRIFFを採用している(アルファベット順)。
- ANI ‐ Windows用アニメーションカーソル
- AVI ‐ Windows用動画
- QCP
- rmi ‐ Windows用MIDI
- rmp ‐ RIFFで包んだmp3
- WAV ‐ Windows用音声
- WebP ‐ Googleの画像
関連形式
また、RIFFに近いよく知られるものとして、次のようなものがある(アルファベット順)。
再検索