「RIFF」はこの項目へ転送されています。ポピュラー音楽の楽句については「リフ」をご覧ください。
RIFFMIMEタイプapplication/x-riff
マジック
ナンバーRIFF
開発者マイクロソフト、IBM
初版1991年8月 (32年前) (1991-08)
種別汎用メタファイル形式
派生元Interchange File Format
Resource Interchange File Format(RIFF、「資源交換用ファイル形式」の意味)は、タグ付きのデータを格納するための汎用メタファイル形式である。1991年、マイクロソフトとIBMが提案し、マイクロソフトのWindows 3.1のマルチメディアファイルのデフォルトフォーマットとして採用された。エレクトロニック・アーツが1985年に策定したInterchange File Format (IFF、「交換用ファイル形式」の意味) に基づいている。RIFFはIBM PCが使っているx86プロセッサに合わせて多バイト整数をリトルエンディアン形式で格納するのに対して、IFFはAmigaやMacintoshで使われていたため、68kプロセッサのビッグエンディアンを採用していた点が異なる。なお、Appleは1988年にIFFに基づいたビッグエンディアンのAIFFを策定している。
マイクロソフトの実装は、RIFFメタ形式を基盤とした各種ファイル形式 (AVI, ANI, WAV) で知られている。 RIFFファイルは「チャンク」と呼ばれるものの並びである。形式はIFFと全く同一であり、上述の通りエンディアンだけが異なる。また、チャンク名の意味も一部異なる。 全てのチャンクは次のような形式である。 チャンク識別子「RIFF」と「LIST」は、チャンク内にサブチャンクを含むことができる。これらのチャンクは、識別子と長さの後が次のような形式である。 ファイル全体が1つのRIFFチャンクで構成され、サブチャンクの並びが格納されている。したがって、正しいRIFFファイルの先頭には「R」、「I」、「F」、「F」の4文字が必ず存在する。 欧州放送連合が開発したRIFF仕様に基づいた多チャンネルファイル形式としてRF64 マイクロソフトのWindows 3.1の公式文書によると、ファイルの先頭にINFOチャンクを置くべきとしている。これにより、ファイル内容に関するメタデータに素早くアクセスでき、ファイルシステムやマルチメディアアプリケーションがファイルの先頭を参照して、作者情報、サムネイル、プレビュー、ファイル形式情報などを取り出せる。 Windows XPのファイル管理では、RIFF形式のファイルがあると自動的にINFOチャンクを読もうとする。また、ユーザーがファイルサイズや作成日などの属性情報に加えて、RIFFフィールド(作者、コピーライト日付)を指定することもできる。 マイクロソフトは、あらゆるマルチメディアファイルにRIFFを使用するという方針の下、MIDIファイルにもRIFFを使った新たなファイル形式を策定した。これは、既存のStandard MIDI FileをRIFFラッパーで囲んだような形式で、.rmi(英: resource musical instrument に由来)という拡張子であった。このため、Windows上でMIDIファイルを新たな形式に変換してやる必要が生じた。 大きな動画ファイルでは、先頭にあるべきINFOチャンクを拡張・追加するということはファイル全体のずれを生じるため、ディスクI/Oが多数発生する。これを防ぐため、大きなファイルを作成するときにINFOチャンクにダミーデータを使ってパディングしておく必要がある。そうすることでINFOチャンクに新たな情報を追加してもファイル全体にずれが生じない。そのため、プログラマには正しいファイル形式の知識が必要だった。しかし、マイクロソフトのRIFFに関する文書は分散していて把握しきれないことも多く、一部のプログラマはファイルの最後尾にINFOチャンクを追加してもよいと思い込んでしまった。この対処法が広まった結果、非互換が生じ、正しいファイル形式しか認識しないソフトウェアによって最後尾のINFOチャンクが上書きされてしまうなどの問題が出てきた。 このような擬似RIFFファイルは特にMacintoshでよく見られた(Macintoshのプログラマがマイクロソフトの仕様を把握していないことが多かったためと言われている)。一般にMacintosh上のソフトウェアやクロスプラットフォームのソフトウェアの開発者はこの問題に気づいており、間違ったINFOチャンクも扱えるようにしていることが多かった。例えば、2004年ごろのアップルのWindows上でのQuickTimeプレイヤーソフトは間違ったINFOチャンクも扱えていたが、ソニーのWindows専用のソフトはそうではなかった。これは、多数のメディアファイルを一括処理する場合に問題を生じ、例えば一括でファイル形式の変換をする際に(ユーザーが気づく前に)メタデータが失われてしまうといった事態が発生する。 CorelDRAW10 は通常、RIFFファイル構造を使うが、INFOチャンクは最後尾に置かれる。そのため、デフォルトのWindowsのファイルマネージャではビットマップのプレビューが表示できない。これに対処するにはアドオンユーティリティが必要である。
概要
4バイト: チャンクのASCII識別子。例えば「fmt」、「data」など。
4バイト: 符号なしでリトルエンディアンの32ビット整数。チャンクの長さを示す(このフィールドと上の識別子を除いた長さ)。
可変長フィールド: チャンクデータ本体。長さは上記フィールドで示されたもの。
パディング: チャンク長が偶数バイトでない場合に1バイト追加される。
4バイト: このチャンクのASCII識別子(フォームタイプと呼ぶ。RIFFチャンクの場合、「AVI」や「WAVE」がある)
サブチャンクの並び
INFOチャンク
問題
RIFF に基づく主なファイル形式
WAV (Windowsオーディオ)
AVI (Windows動画)
RMI (Windows RIFF MIDIファイル)
CDR (CorelDRAWベクターグラフィックスファイル)
ANI (Windowsのアニメーション付きカーソル)
WebP (Googleが開発した静止画ファイル形式)
関連項目
IFF
AIFF
FourCC
BWF
外部リンク
⇒Resource Interchange File Format Services
⇒RIFF AVI file reference
⇒Reading WAVE files
⇒DirectMusic file format
⇒Multimedia Registration Kit
表
話
編
歴
ISO/IEC
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
VVC
ITU-T
H.120(英語版)
H.261
H.262
H.263
H.264
H.265
DV
H.266
SMPTE
VC-1
VC-2 (Dirac)
VC-3
VC-5(英語版)
AOMedia
AV1
IETF
VP8
SAC
AVS(英語版)
その他
Apple Video(英語版)
Bink(英語版)
DVI(英語版)
EVC(英語版)
GIFアニメーション
Microsoft Video 1(英語版)
MSU Lossless(英語版)
OMS Video(英語版)
ProRes 422
ProRes 4444
RTVideo(英語版)
SheerVideo(英語版)
Smacker(英語版)
Snow
Sorenson Video, Spark(英語版)
VP6
VP9
WMV
YULS(英語版)
XVC
Xvid
可逆圧縮
FFV1(英語版)
Ut Video Codec Suite