はじめに
よく使用するファイルの種類・ファイルフォーマットおよびそれらのファイルを扱うアプリケーションについて説明します。
ファイルにはテキストファイルとバイナリファイルがあります。テキストファイルはテキストエディタで自由に読み書きできます。バイナリファイルは直接読み書きすることができず、特定のアプリケーションでしか扱えません。以下で紹介しているアーカイブファイル・イメージファイル・オーディオファイル・ビデオファイルはすべてバイナリファイルです。
実行ファイルの種類
- EXEファイル[エグゼファイル、Executable File](*.exe) プログラムを実行するバイナリファイルです。危険なEXEファイルを不用意に実行しないよう注意してください。
テキストファイルの種類
- プレーンテキストファイル(*.txt) テキストデータのみで構成された純粋なテキストファイルです。
- Markdownファイル(*.md) Markdownというマークアップ記法で記述されたテキストファイルです。
- 設定ファイル(*.ini, *.json, *.xml) アプリケーションの設定が記述されたテキストファイルです。
- HTMLファイル[HyperText Markup Language](*.html, *.htm) ウェブページの内容(本文およびその構造)が記述されたテキストファイルです。
- CSSファイル[Cascading Style Sheets](*.css) ウェブページの体裁(各要素のフォント、配色および配置)が記述されたテキストファイルです。
- スクリプトファイル(*.ps1) PowerShellの命令を記述したテキストファイルです。PowerShellはWindowsターミナルでコマンドを実行する機能です。下記のコマンドプロンプトを置き換えるものとして開発されました。ターミナルでスクリプトファイルを指定すると、ファイルに記述されたコマンドが順番に実行されます。
- バッチファイル(*.bat, *.cmd) コマンドプロンプトの命令を記述したテキストファイルです。バッチファイルを実行すると、ファイルに記述されたコマンドが順番に実行されます。バッチファイルはEXEファイルと同様にデスクトップから実行可能です。
テキストファイルの文字コードは国や地域によってばらばらだったのですが、今はUnicodeで統一されています。Unicodeはエンコード方式(UTF-8/UTF-16LE/UTF-16BE/UTF-32LE/UTF-32BE)とBOM(Byte Order Mark)の有無によって分類されます。エンコード方式は1文字を何ビットで表現するかを意味し、UTF-8は8ビット(1バイト)、UTF-16は16ビット(2バイト)、UTF-32は32ビット(4バイト)でそれぞれ表現します。BOMはバイト列の並び順(BE: Big Endian, LE: Little Endian)を意味します。BOMなしのUTF-8が世界標準になっています。UTF-8は1バイトなのでBOMに意味はないのですが、Windows環境ではBOMによって文字コードの誤判定を回避できることがあります。1
アーカイブファイルのフォーマット
WindowsではZIPおよび7zというアーカイブフォーマットがよく使用されています。
- ZIP[ジップ](*.zip) Windowsの標準的なアーカイブフォーマットです。
- 7z[セブンゼット](*.7z) ZIPよりも圧縮率の高いアーカイブフォーマットです。Unicodeに対応しています。
- CAB[キャブ](*.cab) Microsoftが開発したアーカイブフォーマットです。高い圧縮率を誇ります。
- RAR[ラー](*.rar) ZIPよりも圧縮率の高いアーカイブフォーマットです。一定サイズに分割したアーカイブファイルを作成できます。
- LHA[エルエイチエー](*.lzh) 国産のアーカイブフォーマットです。かつてはよく使用されていました。
- gzip[ジージップ], bzip2[ビージップツー](*.gz, *.tar.gz, *.bz2, *.tar.bz2) UnixというOSの標準的なアーカイブフォーマットです。Windowsで使用されるZIPとは関係ありません。
イメージファイルのフォーマット
イメージファイルにはベクタイメージ(ベクトルイメージ)とラスタイメージ(ビットマップイメージ)があります。ラスタイメージは無圧縮・可逆圧縮・非可逆圧縮の3つのフォーマットに分類できます。
ベクタイメージのフォーマット
ベクタイメージには画像を拡大・縮小しても劣化しないという特長があります。
- PostScript[ポストスクリプト](*.ps) Adobeが開発したページ記述言語(プリンタに印刷内容を指示するためのプログラミング言語)です。
- EPS[Encapsulated PostScript](*.eps) Adobeが上記のPostScriptを元に開発したベクタ形式のイメージフォーマットです。
- PDF[Portable Document Format](*.pdf) Adobeが上記のPostScriptを元に開発したドキュメントフォーマットです。大変広く使用されています。
- SVG[Scalable Vector Graphics](*.svg) ウェブの標準化を目指すW3Cが開発したベクタ形式のイメージフォーマットです。広く使用されています。
- WMF[Windows Metafile](*.wmf, *.wmz) Microsoftが開発したベクタ形式のイメージフォーマットです。
- EMF[Enhanced Metafile](*.emf, *.emz) 上記のWMFを拡張したベクタ形式のイメージフォーマットです。
- XPS[XML Paper Specification](*.xps) Microsoftが上記のPDFに対抗して開発したドキュメントフォーマットです。ほとんど使用されていません。
- OXPS[Open XML Paper Specification](*.oxps) 上記のXPSを国際規格として標準化したドキュメントフォーマットです。
無圧縮のイメージフォーマット
無圧縮のイメージファイルは他と比べてもっとも大きなファイルサイズになりますが元の画質は劣化しません。
- BMP[ビットマップ、Microsoft Windows Bitmap Image](*.bmp) Windowsで使用される無圧縮のイメージフォーマットです。
可逆圧縮のイメージフォーマット
可逆圧縮されたイメージファイルのファイルサイズは、無圧縮のイメージファイルより小さくなり非可逆圧縮のイメージファイルより大きくなります。元の画質は劣化しません。以下のPNG/GIFは透過色を扱うことができます。
- PNG[ピン・ピング、Portable Network Graphics](*.png) あらゆる画像の保存に適した可逆圧縮のイメージフォーマットです。下記のGIFに代わるイメージフォーマットとして開発されました。GIFと比較して圧縮率が高くフルカラーを扱えるという特長があります。
- GIF[ジフ、Graphics Interchange Format](*.gif) イラストの保存に適した可逆圧縮のイメージフォーマットです。元の画像が256色以上であれば減色されてしまい画質が落ちます。代替フォーマットのPNGが開発されましたが今でもよく使用されています。
非可逆圧縮のイメージフォーマット
非可逆圧縮されたイメージファイルのファイルサイズは他と比べてもっとも小さくなりますが元の画質は劣化します。
- JPEG[ジェイペグ、Joint Photographic Experts Group](*.jpg, *.jpeg, *.jpe, *.jfif, *.jfi, *.jif) 写真の保存に適した非可逆圧縮のイメージフォーマットです。アプリケーションによっては保存する際に品質(0~100)やファイルサイズを指定できます。画質にこだわるのであれば品質の値は90~95くらいが適当です。2JPEGによる圧縮を繰り返すと画質は劣化していくので編集中の画像はPNGで保存するようにしましょう。
オーディオファイルのフォーマット
オーディオファイルは無圧縮・可逆圧縮・非可逆圧縮の3つのフォーマットに分類できます。
無圧縮のオーディオフォーマット
無圧縮のオーディオファイルは他と比べてもっとも大きなファイルサイズになりますが元の音質は劣化しません。
- WAV, WAVE[ウエーブ、RIFF waveform Audio Format](*.wav) Windowsで使用される無圧縮のオーディオフォーマットです。オーディオCDや外部入力から取り込んだ音声データはこのフォーマットで保存されます。音声データはオーディオCDと同じPCM方式で記録されます。ファイルサイズは大きいですが(1分あたりおよそ10MB)特別なデコード処理を必要としないため効果音のような短い音を保存するために使用されます。
可逆圧縮のオーディオフォーマット
可逆圧縮されたオーディオファイルのファイルサイズは、無圧縮のオーディオファイルより小さくなり非可逆圧縮のオーディオファイルより大きくなります。元の音質は劣化しません。フォーマットはいくつかありますがどれを選択しても大きな違いはありません。圧縮率・エンコード速度・再生負荷などが選択の基準になるでしょう。
- FLAC[フラック、Free Lossless Audio Codec](*.flac, *.fla) 代表的な可逆圧縮のオーディオフォーマットです。圧縮率はそれほど高くありませんが、エンコードとデコードが速く多くの環境で利用できます。
非可逆圧縮のオーディオフォーマット
非可逆圧縮されたオーディオファイルのファイルサイズは他と比べてもっとも小さくなりますが元の音質は劣化します。非可逆圧縮を繰り返すと音質は劣化し続けます。音質と圧縮率はトレードオフの関係にあり、それらはビットレートの大きさによって決まります。ビットレートが大きいほどファイルサイズは大きくなりますが音質は良くなります。ビットレートが小さいほどファイルサイズは小さくなりますが音質は悪くなります。
- MP3[エムピースリー、MPEG-1 Audio Layer-3](*.mp3) 非可逆圧縮オーディオフォーマットのデファクトスタンダードです。ほとんどの環境で利用できます。複数のエンコーダが存在しますがLAME(レイム)の音質が高く評価されています。
- AAC[Advanced Audio Coding](*.aac) MP3の後継として開発された非可逆圧縮オーディオフォーマットです。圧縮率が高く低ビットレートでも高音質を保つことができます。MP3と同様に広く普及しています。
- Vorbis[ヴォルビス](*.ogg) パテントフリーの非可逆圧縮オーディオフォーマットです。圧縮率が高く低ビットレートでも高音質を保つことができます。複数のエンコーダが存在しますがaoTuV(アオツブ)の音質が高く評価されています。Vorbisではビットレートの代わりにクオリティレベルという値を使用します。ビットレートとの対応は次のとおり。3
| クオリティレベル | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| ビットレート[kbps] | 32 | 45 | 64 | 80 | 96 | 112 | 128 | 160 | 192 | 224 | 256 | 320 | 500 |
- WMA[Windows Media Audio](*.wma) MicrosoftがMP3の代替として開発した非可逆圧縮オーディオフォーマットです。性能的にはAAC/Vorbisとほとんど同じですがあまり使用されていません。
同一ビットレートで比較した場合、AAC/Vorbis/WMAはMP3よりもが圧縮率が高く音質もいいとされています。ビットレートの設定については悩ましい問題ですが、MP3なら160kbps以上、他のフォーマットなら128kbps以上で原音との区別が難しくなるようです。
ビデオファイルのフォーマット
ビデオファイルは無圧縮・可逆圧縮・非可逆圧縮の3つのフォーマットに分類できます。無圧縮のビデオファイルは巨大なファイルサイズになるので取り扱うことはありません。
可逆圧縮のビデオフォーマット
可逆圧縮されたビデオファイルのファイルサイズは、無圧縮のビデオファイルより小さくなり非可逆圧縮のビデオファイルより大きくなります。元の画質は劣化しません。フォーマットはいくつかありますがどれを選択しても大きな違いはありません。圧縮率・エンコード速度・再生負荷などが選択の基準になるでしょう。
- HuffYUV[ハフワイユーブイ](*.avi) 代表的な可逆圧縮のビデオフォーマットです。
非可逆圧縮のビデオフォーマット
非可逆圧縮されたビデオファイルのファイルサイズは他と比べてもっとも小さくなりますが元の画質は劣化します。非可逆圧縮を繰り返すと画質は劣化し続けます。画質と圧縮率はトレードオフの関係にあり、それらはビットレートの大きさによって決まります。ビットレートが大きいほどファイルサイズは大きくなりますが画質は良くなります。ビットレートが小さいほどファイルサイズは小さくなりますが画質は悪くなります。
- AV1[AOMedia Video 1](*.mkv, *.webm) 最新の非可逆圧縮ビデオフォーマットです。下記のH.265/VP9を凌ぐ高い圧縮率を誇ります。今後普及することが期待されます。
- H.264/MPEG-4 AVC(*.mp4) 現在もっともよく使用されている非可逆圧縮ビデオフォーマットです。低ビットレートでも高画質を保つことができます。AACとの組み合わせが一般的です。
- H.265/HEVC(*.mp4) H.264の後継として開発された非可逆圧縮ビデオフォーマットです。H.264と比較して画質・圧縮率が向上しています。AV1が登場したので普及する見込みはありません。
- VP9(*.webm) Googleが開発した非可逆圧縮ビデオフォーマットです。画質・圧縮率はH.265と同等です。AV1が登場したので普及する見込みはありません。
- DivX[ディビックス](*.avi, *.divx, *.div) DivXという会社が開発した非可逆圧縮ビデオフォーマットです。H.264と比較して画質は劣りますが再生負荷は低いです。
- Xvid[エクシビッド、エックスビド](*.avi) DivXの商用化に反対して開発された非可逆圧縮ビデオフォーマットです。性能はDivXと同じです。
- WMV[Windows Media Video](*.wmv) Microsoftが開発した非可逆圧縮ビデオフォーマットです。性能的にはH.264とほとんど同じですがあまり使用されていません。WMAとの組み合わせが一般的です。
- MPEG-1(*.dat, *.mpg, *.mpeg, *.m1v) ビデオCDなどで使用されている低画質の非可逆圧縮ビデオフォーマットです。
- MPEG-2(*.mpg) DVDやデジタル放送に使用されている非可逆圧縮ビデオフォーマットです。H.264と比較して画質は劣りますが広く使用されています。
- MPEG-4(*.mp4, *.mpg) H.264の前身に当たる非可逆圧縮ビデオフォーマットです。現在はH.264が広く使用されているため見かけることは少ないです。
- Motion JPEG[モーションジェイペグ](*.avi, *.mov) イメージフォーマットのJPEGを使用した非可逆圧縮ビデオフォーマットです。再生負荷は低いですが画質・圧縮率は良くありません。
- DV(*.avi) VHSテープに使用されていた非可逆圧縮ビデオフォーマットです。今はほとんど使用されていません。
H.264ではビットレートではなく品質(0~51)を指定するのが一般的であり、この値が小さいほど高画質ですがその分ファイルサイズは大きくなります。既定値は23であり18から28の間が推奨されています。画質にこだわるのであれば20くらいが適当です。
コンテナファイルのフォーマット
画像・音声・動画はコンテナファイルに格納されます。イメージファイルの画像およびオーディオファイルの音声は専用のコンテナファイルに格納されます。たとえばMP3のコンテナファイルにはMP3の音声しか格納することができません。ビデオファイルでは動画と音声が多重化されて動画用のコンテナファイルに格納されます。4格納できる動画のビデオフォーマットおよび音声のオーディオフォーマットはコンテナフォーマット毎に決められています。上記のビデオフォーマット(圧縮方法)と下記のコンテナフォーマット(動画形式)を混同しないように注意してください。
- MP4(*.mp4, *.m4a, *.m4p, *.m4b, *.m4r, *.m4v) 現在もっともよく使用されているコンテナフォーマットです。H.264とAACの組み合わせが一般的です。
- MKV[Matroska](*.mkv, *.mka, *.mks, *.mk3d) もっとも多機能なコンテナフォーマットです。あらゆるビデオフォーマット・オーディオフォーマットに対応しています。字幕を表示したり、字幕・音声を多重化したりすることもできます。
- OGM[Ogg Media](*.ogm) MKVの元になったコンテナフォーマットです。見かけることはほとんどありません。
- WebM[ウェブエム](*.webm) Googleが開発したウェブ用のコンテナフォーマットです。
- AVI[Audio Video Interleave](*.avi) Windows標準のコンテナフォーマットです。歴史が古く低機能ですが汎用性が高いのでよく使用されます。
- WMV[Windows Media Video](*.wmv, *asf) WMV専用のコンテナフォーマットです。ファイルの内部構造は下記のASFと同じです。WMVとWMAの組み合わせが一般的です。
- ASF[Advanced Systems Format](*.asf, *.asx, *.wmv, *.wvx, *.wma, *.wax) AVIの後継として開発されたコンテナフォーマットです。高機能ですがあまり使用されていません。
- FLV[Flash Video](*.flv) Adobe Flash Playerがサポートしているビデオフォーマットの動画を格納できるコンテナフォーマットです。5
- F4V(*.f4v, *.f4p, *.f4a, *.f4b) FLVをH.264/AACに特化させたコンテナフォーマットです。
- MOV(*.mov, *.qt) Appleの標準コンテナフォーマットです。
- MPEG2-PS(*.mpg, *.mpeg, *.m2p, *.m2ps) DVDに使用されているコンテナフォーマットです。オーサリングする際に使用されるVOB(*.vob)もこれと同じコンテナフォーマットです。
- MPEG2-TS(*.ts, *.mts, *.m2t, *.m2ts) Blu-rayやデジタル放送で使用されているコンテナフォーマットです。
テキストファイルを扱うアプリケーション
テキストファイルはテキストエディタで表示・作成・編集できます。
アーカイブファイルを扱うアプリケーション
アーカイブファイルはアーカイバで作成・展開・プレビューできます。
イメージファイルを扱うアプリケーション
イメージファイルはイメージビューアで画像を表示したり他のフォーマットに変換したりできます。イメージファイルの画像を作成・編集するにはイメージエディタを使用します。PDFファイルはPDFビューアで閲覧できます。
オーディオファイルを扱うアプリケーション
オーディオファイルはオーディオプレーヤで再生できます。foobar2000を使用すればタグ(オーディオファイルに埋め込む曲情報)を編集したり他のフォーマットに変換したりできます。オーディオファイルの音声を編集するにはオーディオエディタを使用します。
ビデオファイルを扱うアプリケーション
ビデオファイルはビデオプレーヤで再生できます。ビデオファイルの再生には、ビデオファイルのビデオフォーマット(およびオーディオフォーマット)に対応するコーデックが必要です。コーデックは動画と音声を圧縮・復元するプログラムです。コーデックを内蔵しているビデオプレーヤもあります。ビデオファイルのエンコード・デコードのイメージは下のような感じです。
ビデオファイルの動画を編集したり他のフォーマットに変換したりするにはビデオエディタを使用します。
-
テキストファイルの文字コードを確実に判定する方法はありません。いくつかの方法によって推測されています。 ↩︎
-
元画像より高い品質を指定すると元のファイルサイズより大きくなってしまうことがあるので、元画像がJPEGであれば品質の値は80くらいが適当です。 ↩︎
-
Hydrogenaudioで行われたリスニングテストでは128kbpsに相当するクオリティレベルとして4.25という値が使用されました。エンコーダの実装上の問題を考慮して名目値よりも若干高めに設定されたようです。 ↩︎
-
動画のみであれば無音の動画が再生されます。音声のみであればオーディオファイルとして扱われます。 ↩︎
-
かつてはFlash Playerでウェブの動画を再生していましたが現在はFlashからHTML5に移行しています。したがって今後FLVが使用されることはありません。 ↩︎