JFIFは、C-Cube Microsystems のEric Hamilton さんによって定義されたフォーマットです。
JFIFは、アプリケーションやプラットホーム上での互換性を保つ目的で作られたフォーマットで、JPEG規定の曖昧な部分を補完し、インターネット等で異機種とのデータ交換を必要とする場面での必要な情報やルールが定められています。
また、オプションとしてJFXXと言う別のAPP0セグメントも用意されており、JFIFと同じようにJFXXのヘッダーと共に記録され、主にサムネイル(画像見本)の記録に利用します。
現行のほとんどのJPEGファイルがJFIFフォーマットで、デファクトスタンダードなフォーマット規格です。
画像ビュアもほとんどがJFIFを解読していますし、JPEG形式でファイルを出力する場合も普通はJFIF形式になります。
※無くても通常は画像を表示可能でJFIFフォーマットでは無くなりますが、JPEGの規格から外れる訳ではありません。
JFIFでの主な規定
・SOIマーカ直後にJFIFで規定されたAPP0セグメントを配置する。
・色空間はコンポーネントが3つならYCbCr、1つならYだけのグレースケールを指定
JFIFに関連する他の規定
・JFIF規定のファイルにAPP2セグメントのICC Profileが有る場合、ICC Profileに有る情報をYCbCr→RGB変換に使用する場合が有ります。
参考資料
JPEG File Interchange Format Version 1.02 (英文) jfif3.pdf
関連ページ
APP0 (0xFFE0) JFIFフォーマット
APP0 (0xFFE0) JFXXフォーマット