- JPEG は Joint Photographics Expert Group の略で (パソコンの大先生的知識) (以下略)
- ファイル形式としての JPEG は、中身の雰囲気でだいたい 2 つに分けられるっぽい
- Wikipedia にもちょろっと書いてある: https://en.wikipedia.org/wiki/JPEG#JPEG_files
JFIF: JPEG File Interchange Format
- JPEG でエンコードされた画像ファイルの形式の規格
- そもそもは JPEG の仕様の annex として定義されていたもの (JIF; JPEG Interchange Format) を良くしたやつという話っぽい https://en.wikipedia.org/wiki/JPEG#JPEG_files
- バイナリエディタで JPEG ファイルを開くと先頭の方に JFIF って書いてあるよね、っていうのの JFIF です
- そうとも限らんよという話をこれからするわけですが
- たぶんウェブで流通してる JPEG ファイルはこっちのことのほうが多いのではないかなという印象がある (根拠はまったくない)
Exif: Exchangeable Image File Format
- Exif っていうと、なんとなくデジカメの撮影時の情報がなんか JPEG に埋め込まれてるアレのことじゃねーの、と思うんだけど、実際には Exif というのはファイルフォーマットの規格である
- 仕様はこれ: http://www.cipa.jp/std/documents/j/DC-008-2012_J.pdf
- CIPA というカメラメーカーの業界団体的なところが策定している。日本語が原典で、英語はそれの翻訳版が提供されている、という世界観で逆に新鮮……
- 仕様はこれ: http://www.cipa.jp/std/documents/j/DC-008-2012_J.pdf
- 我々がふだん Exif 情報などと呼んでいるアレは、
APP1
Application Marker Segment ってとこに入っている (上記仕様の「4.5.4 JPEG圧縮データの基本構造」) - Exif ファイルは JPEG であるとは限らない (「3.2 Exif画像ファイル規定」「3.3 Exif音声ファイル規定」)
- 音声!!!
で
上記の両者には微妙に互換性がないと思われている。それぞれの Wikipedia の項目を見るとなんとなく察しがつくかもしれないけど、Application Marker Segment の部分が別物になっている。実際の画像の部分 (曖昧な表現で逃げている) は同じっぽい。
This is because both standards specify that their particular application segment (APP0 for JFIF, APP1 for Exif) must immediately follow the SOI marker.
— https://en.wikipedia.org/wiki/JPEG_File_Interchange_Format#Compatibility
JFIF では APP0
が必須で APP0
にしか言及されていないが、Exif の JPEG 圧縮データでは APP1
が必須、必要に応じて APP15
までいけるで! という感じになっている (「4.5.5 アプリケーションマーカセグメント」)。