概要
JPEG 規格は画像の圧縮方法を定めていましたが、どのプログラムでも読めるファイルとしての保存方法は定めていませんでした。そこで C-Cube Microsystems の Eric Hamilton が 1991〜1992 年に JFIF を作成し、のちに ITU-T T.871(ISO/IEC 10918-5)として標準化されました。JFIF は小さな APP0 ヘッダーでバージョン、ピクセル密度、任意のサムネイルを記録し、色空間を YCbCr に定めています。
拡張子が .jpg のファイルの大半は、実は JFIF ファイルです。.jfif という拡張子は主に Windows で見られます。レジストリで MIME タイプ image/jpeg が .jfif に関連付けられていると、ブラウザはダウンロードした JPEG 画像をその拡張子で保存します。多くのアップロードフォーム、アプリ、スマートフォンは .jpg か .jpeg しか受け付けないため、JFIF を JPG に変換する必要が生じます。
圧縮された画像データは同一なので、サイズや向きを変えなければ、JFIF.IO は JFIF を再圧縮せずに JPG に変換します。ピクセルはまったく同じままで、変わるのはコンテナ部分だけです。
メリット
- +画質も圧縮率も通常の JPEG と同じ
- +すべてのブラウザとほとんどの画像ビューアーで開ける
- +ヘッダーにピクセル密度(DPI)情報を持つ
デメリット
- −多くのアップロードフォームやアプリで .jfif 拡張子が拒否される
- −.jfif を画像ビューアーに関連付けていない OS もある
- −非可逆、透過なし、アニメーションなしという JPEG の制約をすべて引き継ぐ
JFIF の圧縮の仕組み
JFIF は標準的な JPEG 圧縮を使います。YCbCr への色変換、任意のクロマサブサンプリング、8×8 ブロックの DCT、量子化、ハフマン符号化です。JFIF 自体は APP0 ヘッダーを加えるだけで、圧縮方法は変えません。
主な用途
- 意図して .jfif ファイルを作ることはまれで、Windows で Web 画像を保存したときに現れます
- .jfif 拡張子を明示的に求める古いシステム
- 互換性を最大にするには .jpg に変換しましょう
ブラウザとソフトウェアの対応状況
JFIF 画像の中身は JPEG なので、すべてのブラウザで表示できます。問題が起きるのは、ファイルの拡張子をチェックするソフトウェアやアップロードフォームだけです。
JFIF の変換方法
このページ上部の変換ツールを使います。ファイルをドロップし、出力形式を選んで結果をダウンロードするだけです。変換はブラウザ内で行われるため、何もアップロードされません。
ブラウザ内でローカルに処理
JFIF に関するよくある質問
画像が .jfif で保存されてしまうのはなぜですか?
一部の Windows PC では、レジストリでコンテンツタイプ image/jpeg が拡張子 .jfif に関連付けられているため、ブラウザが JPEG 画像をその拡張子で保存します。画像自体は普通の JPEG です。
Windows で画像が JFIF として保存されないようにするには?
レジストリエディターを開き、HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/jpeg に移動して、「Extension」の値を .jfif から .jpg に変更します。事前にレジストリをバックアップしてください。不安な場合は、必要なときにファイルを変換するだけで十分です。
JFIF から JPG への変換はロスレスですか?
JFIF.IO なら、はい。リサイズ、トリミング、回転をしない限り、元の JPEG データはそのまま保持され、再圧縮されません。
.jfif を .jpg にリネームするだけでもいいですか?
データは同じなので、たいていは問題ありません。変換すればヘッダーも正規化され、同時にメタデータの削除やリサイズもできます。