ファイルフォーマット

ファイルフォーマットは情報をファイルへ収納する形式である。

1. 概要
-----

コンピュータにおいてメディアやプログラムはファイルとして保存される。統一された順序・構造でこれらの情報がファイルとして保存されていれば、OSやアプリケーションは一貫した方法でファイルにアクセスし情報を利用できる。これを可能にする、ファイルへの情報格納規格がファイルフォーマットである。

通常「ファイルフォーマット」と呼ばれるが、MS-DOSやMicrosoft Windows、UNIX、Unix系などのオペレーティングシステムにおけるファイルはストリーミングデータ形式であり、正確には「各ファイルに格納されたデータのフォーマット」の事である。

通常ファイルに格納されたデータは、テキストまたはバイナリファイルなので、ファイルの内容だけからはそのファイルフォーマットを知ることが困難な場合がある。このため、ファイル名に拡張子をつけて識別したり、ネットワークでの転送時にはMIMEヘッダ等をあわせて送ったり、といった方法が採られる。このようなメタデータを付与する方法はファイルの内容自体に影響を与えず、またファイルを開くことなく種別を判定できる、という利点がある。しかし、拡張子は簡単に、しかも自由に編集できるため、信頼性は極めて低い。またMIMEタイプはIANAによって正式に登録・標準化されていない独自の文字列をアプリケーションやシステムが勝手に付与することもありうる。そのため、多くのファイルフォーマットは、ファイルの先頭にマジックナンバーと呼ばれる、より確実にファイル形式を識別するための情報を付加する。

さまざまなアプリケーションで扱える標準的なフォーマットもあるが、オペレーティングシステムやアプリケーションによりそのデータ形式は様々である。特定のアプリケーションで扱えるデータ形式に変換するためのファイルコンバータを利用できることがある。

2. データの区切りの単位に注目した分類
--------------------

bitをデータの区切りの単位とするデータ。例：圧縮されたデータ
byteを単位とするデータ。例：各種アプリケーションのデータファイル
文字を単位とするデータ。例：テキストファイル
特定の文字に意味を持たせ構造化したデータ。例：CSV、マークアップ言語テキストもバイナリの一種であるが、実際のビット列はエンコーディング時に採用する文字セットに左右される。テキストのデータストリームをデコードする際のヒントとして、ファイル先頭付近にバイト順マークや文字セット名を記載するフォーマットもある。

各種プログラミング言語のソースファイルも、構造化されたプレーンテキストファイルの一種である。

3. 汎用性に注目した分類
-------------

標準化されたフォーマット 国際的な機関で制定されたフォーマット。ファイルフォーマットの例としては、JPEG、MPEGなどがある。標準化機関の例としては、国際標準化機構 、日本産業規格 、World Wide Web Consortium  などがある。事実上、業界標準となっているフォーマット 後述する「特定のオペレーティングシステム  やアプリケーションに依存するフォーマット」に含まれるが、広く使用され事実上標準となっているもの。例としては、GIFやFBX、PDFなどがある。特定のオペレーティングシステム  やアプリケーションに依存するフォーマット 各種OSやアプリケーションのデータファイル。例としては、BMP、RTFなど多数ある。

4. よく知られたファイルフォーマット一覧
---------------------

4.1. テキスト、ハイパーテキスト、ドキュメント
-------------------------

プレーンテキスト
RTF 
HTML 
XHTML 
MHTML 
TeX
PDF 
DjVu
DVI 
CSV 

4.1.1. オフィススイート 用のフォーマット
------------------------

主なオフィススイート用のフォーマットには以下がある。

Lotus 1-2-3
123、wk3、wk4 など
一太郎
jtd
Microsoft Officeの独自フォーマット
doc
xls
ppt
Office Open XML
Office Open XML Document
Office Open XML Workbook
Office Open XML Presentation
OpenDocument
OpenDocument Text
OpenDocument Spreadsheet
OpenDocument Presentation
OpenDocument Database
OpenDocument Formula
Uniform Office Format

4.2. データ記述フォーマット
----------------

Adobe Illustrator 
Adobe Photoshop 
CSS
CSV
PDF
PostScript
SGML
TOML
XML
RDF
RSS

4.3. 画像・図形
----------

4.4. 3D
-------

Standard Triangulated Language 
Wavefront .objファイル 
PLY  
Additive Manufacturing File Format 
3MF 
X3D 

4.4.1. ラスターイメージ
---------------

BMP 
DPX
GIF
HD Photo
JPEG
JPEG 2000
JPEG XR
MAG
OpenEXR
PICT
PNG
RAW画像
DNG
TGA
TIFF
XBM 

4.4.2. ベクターイメージ
---------------

DXF
EPS
HP-GL
SVG
Windows Metafile

4.5. 音声
-------

MP3 
mp3PRO
AAC 
ALAC 
WAV 
WMA 
AIFF 
AU
Ogg Vorbis
RealAudio
FLAC 
Monkey's Audio

4.6. 楽曲
-------

Standard MIDI File 
EUP  - FM TOWNS標準の楽曲フォーマット
MML 
SMAF 

4.7. 動画
-------

AVI 
ASF 
FLV 
OGM 
OGG 
MPEG 
MPEG-1
MPEG-2
MPEG-4
MP4 
MOV 
RealVideo
VG2
DivX 

4.8. 時間軸を持つもの
-------------

アニメーションGIF
MNG 
SWF 
SMIL 

4.9. ファイルアーカイブ
--------------

7z
ACE
AFA
bzip2
DGCA 
CAB
tar
GCA 
gzip
LHA  / LHarc
RAR
ZIP
StuffIt
Compact Pro

4.10. オブジェクトファイル
----------------

EXEフォーマット
Portable Executable
COMフォーマット
a.out
ELF 
PEF 
Mach-O
S-record
dyld

4.11. 通信関連
----------

MACフレーム
PPPフレーム
HDLCフレーム
パケット
IPパケット
TCPパケット
HTTPパケット

4.12. その他
---------

EDIF  - 電子設計データ

5. ファイルフォーマットと関連づけ
------------------

特定のファイルフォーマットと、それを開くアプリケーションソフトウェアを登録しておき、操作を行いたいファイルを選択した際にアプリケーションソフトウェアを選ぶ手間を省くための動作を関連づけ  という。関連づける手法はオペレーティングシステムなどの環境により異なる。例えばWindowsやOS/2では拡張子によって対応するアプリケーションを選択する。

Mac OSでは、ファイルのメタデータとしてクリエータとタイプというデータがある。ファイルシステムのHFSとHFS+、ファイル転送プロトコルのAFPではこれらは保持されるが、FTP、HTTP、電子メール等を介してファイルをやりとりする場合は、クリエータとタイプを保持するフォーマットに変換するか、Mac OS用のアーカイブフォーマットを用いる必要がある。macOSではクリエータとタイプがあればそれを優先するが、なければ拡張子による対応づけが利用される。

6. 脚注
-----

7. 関連項目
-------

データ
データ変換
データ圧縮
オープンフォーマット
電子データ交換

8. 外部リンク
--------

[1]
[2] - File extension and file format information. Information on opening, editing an creating file extensions.
[3] - ファイル拡張子とファイルの種類
[4]