FourCC

FourCC (フォーシーシー) とは、データフォーマットを一意に識別するための4バイトの並びである（four-character code の意）。

 概要 
Mac OS の OSType が起源であり、これをAmiga/エレクトロニック・アーツの Interchange File Format が採用し、その派生フォーマットに広まっていった。後に、QuickTimeやDirectShow/Direct3D/DirectDrawで圧縮形式や色空間を識別するのに再利用された。

4バイトの識別子は、人間が読んで理解できる文字を使うことができ、32ビットの整数を1つ格納するのと同じ領域しか要しない（ただし、エンディアン問題は存在する）。

1985年、エレクトロニック・アーツは Interchange File Format (IFF) というメタフォーマットを提案し、最初は Amiga 向けに利用した。IFFに基づいたファイルは、「チャンク」の並びで構成され、各チャンクには任意のデータが格納されており、各チャンクの先頭に4バイトのIDが付与されていた。IFF仕様には、FourCC の起源がアップルであることが明確に記述されている。

IFF は広く採用され、例えばAppleの AIFF やマイクロソフトの RIFF（AVI や WAV のベース）がある。アップルは、このようなコードを OSType と呼んだ。マイクロソフトや Windows 開発者は FourCC と呼んだ。マイクロソフトは DirectX（特に DirectShow と Direct3D）で使うデータフォーマットの識別にも FourCC を利用した。

よく知られている例として、AVIファイルでのビデオコーデックの識別子がある。例えば、CVID、IV32、DIVX、XVID、H264、AVC1、WMV3といった識別子がある。音声コーデックについては、AVIファイルやWAVファイルは2バイトの識別子を使っており、文字列ではなく16進数で表記される（例えば、MP3のIDは 0055）。QuickTimeファイルでは、その2バイト識別子の前に 'ms' という文字が付与され、FourCC の形式になっている。RealMediaファイルでもFourCCを使っているが、具体的な識別子は AVI や QuickTime とは異なる。

4バイトの識別子を使っている他の主なファイルフォーマットとしては、MIDI、PNG、3DS、ICCプロファイルフォーマット、Quake III Arena のマップフォーマットなどがある。

Windows bitmapやDirectDraw (DirectDraw Surface) ではYUV色空間をサポートする際の識別子としてFourCCが使われるBITMAPINFOHEADER (wingdi.h) | Microsoft DocsDirectDraw and Color Space Conversion - Windows drivers | Microsoft Docs。

 脚注 

 関連項目 
マジックナンバー (フォーマット識別子)
Matroska

 外部リンク 
 FourCC.org - ビデオコーデックとピクセルフォーマットに関するサイト
 List of registered FOURCC Codes - 2003年9月現在（マイクロソフト）
  - WAVE and AVI Codec Registries
 WAVE and AVI Codec Registries - Section B Video Codecs from the Microsoft AVI Registry
 Standard for Interchange Format Files

Category:ファイルフォーマット
Category:識別子
しいしい