RIFFファイルフォーマット

トップページ >> 各種ファイルフォーマット >>
完成:2002/12/02
更新:2004/10/28

RIFF(Resource Interchange File Format)はマルチメディアファイルのためのフォーマットです。
これ自体で何かのフォーマットであるわけではなく、フォーマットのフォーマットみたいなものです。


RIFFの基本単位=チャンク

RIFFファイルは、データの論理的な単位である「チャンク(chunk)」によって構成される。
つまり、RIFFファイルはチャンクの集合体なのである。

チャンク(chunk)
識別子(ID) 4byte チャンクを識別するための4文字のコード
サイズ(Size) 4byte データサイズを指定する
データ(Data) n byte データ本体

チャンクの親子関係

チャンクはチャンクを含むことができる。
チャンクを含むことができるのは、チャンク識別子が「RIFF」または「LIST」のチャンクだけである。
このとき、他のチャンクに含まれているチャンクを、「サブチャンク(subchunk)」 と呼び、他のチャンクを含むチャンクを「親チャンク(parent chunk)」と呼ぶ。

RIFFチャンク

RIFFファイルでの最初のチャンクは、"RIFF"チャンクでなければならない。
ファイル内のその他のチャンクはすべて、このRIFFチャンクのサブチャンクとなる。

RIFFチャンクには、データの最初の4バイトに追加フィールドが含まれる。
追加フィールドでは、チャンクのフォームタイプが提供される。
フォームタイプは、ファイルに格納されるデータの形式を識別する、4文字のコードである。
たとえば、Microsoftのwaveform-audioのスタイルのフォームタイプは「WAVE」である。

RIFFチャンク(例)
識別子:'RIFF' 4byte
サイズ:(n'+n''+20)byte 4byte
データ フォームタイプ 4byte
サブチャンク
識別子4byte
サイズ4byte
データn'byte
サブチャンク
識別子4byte
サイズ4byte
データn''byte

LISTチャンク

LISTチャンクは、サブチャンクをグループ化したものである。
これらのサブチャンクのいくつかは繰り返し現れる場合があるが、LISTは配列ではない。

LISTチャンクにも、データの最初の4バイトに追加フィールドが含まれる。
追加フィールドでは、フィールドの「リストタイプ」が含まれる。
リストタイプは、リストの内容を識別する、4文字のコードである。 たとえば、LISTチャンクのリストタイプが「INFO」だった場合、「ICOP」と「ICRD」のチャンクを含むことができる。 (ちなみに、ICOPは著作権、ICRDは作成日に関するチャンクである)

RIFFチャンク(例)
識別子:'RIFF' 4byte
サイズ 4byte
データ フォームタイプ 4byte
LISTチャンク(例)
識別子:'LIST' 4byte
サイズ 4byte
データ リストタイプ 4byte
サブチャンク
識別子4byte
サイズ4byte
データn''byte
サブチャンク
識別子4byte
サイズ4byte
データn''byte
administrated by umekkii -> admin@umekkii.jp