JFIF

読み:ジェイフィフ
外語:JFIF: JPEG File Interchange Format 英語
品詞:固有名詞

C-Cube Microsystems、Xing Technology、Digital Origin(Radius)の3社によって提唱された静止画像ファイルの規格。

圧縮に関するアルゴリズムはJPEGによって策定されたものを利用する。

目次

一般にJPEGファイルと呼ばれる画像ファイルは、このJFIFを指している。

実際にはJPEGの画像データに加え、カラーモデルやコンポーネント(部品)の格納順など、画像に関する各種情報が格納できるようになっている。

MIMEタイプ名image/jpeg、拡張子は.jpgや.jpegが使われている。

カラーモデルにはディジタルテレビ用のエンコーディングパラメーターであるITU-R BT.601が採用されている。

色情報は256階調(8ビット)で、テレビで使われるものと同様、輝度と2つの色差の3コンポーネント(YCbCr)で構成されている。但しガンマ補正のパラメーターは持てない(通常1.0)。

画像の解像度情報(1インチまたは1cmあたりのピクセル数)と縮小画像(サムネイル)などの拡張情報を格納する機能がある。

また、拡張性もあり、このフォーマットを拡張したExifなどのフォーマットがある。

マーカー

データと構造を区別するため、JFIFでは0xFFに続く1バイト(0xC0〜0xFE)を合わせた2バイトをマーカーとして扱っている。

JPEGファイルは0xFF 0xD8というSOIマーカーから始まり、0xFF 0xD9というEOIマーカーで終わる。

SOI/EOIなどの例外を除き、このマーカーの後には2バイトでサイズが続いているため、未対応の情報を読み飛ばすことが可能。

 x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
C0SOF0SOF1SOF2SOF3DHTSOF5SOF6SOF7JPGSOF9SOF10SOF11dACSOF13SOF14SOF15
D0RST0RST1RST2RST3RST4RST5RST6RST7SOIEOISOSDQTDNLDRIDHPEXP
E0APP0APP1APP2APP3APP4APP5APP6APP7APP8APP9APP10APP11APP12APP13APP14APP15
F0JPG0JPG1JPG2JPG3JPG4JPG5JPG6JPG7JPG8JPG9JPG10JPG11JPG12JPG13COM

SOFは13種類あるが、用いているアルゴリズムごと分けられたもので、次のものが用意されている。

  • SOF0 ‐ Huffman Baseline DCT
  • SOF1 ‐ Huffman Extended Sequential DCT
  • SOF2 ‐ Huffman Progressive DCT
  • SOF3 ‐ Huffman LossLess DPCM Spatial
  • SOF5 ‐ Huffman Differential Extended Sequential DCT
  • SOF6 ‐ Huffman Differential Progressive DCT
  • SOF7 ‐ Huffman Differential LossLess DPCM Spatial
  • SOF9 ‐ Arithmetic Extended Sequential DCT
  • SOF10 ‐ Arithmetic Progressive DCT
  • SOF11 ‐ Arithmetic LossLess DPCM Spatial
  • SOF13 ‐ Arithmetic Differential Extended Sequential DCT
  • SOF14 ‐ Arithmetic Differential Progressive DCT
  • SOF15 ‐ Arithmetic Differential LossLess DPCM Spatial

一般的なJPEGファイルではSOF0で、一般的なプログレッシブJPEGファイルがSOF2である。

基本構造

ごく基本的な構造は、次のようになる。SOIとEOIは固定だが、それ以外の領域に他の項目が挿入されたり、削られたり、順番が変わっていることもある。

  • 0xFF 0xD8 (SOIマーカー、start of image)
  • フレーム
    • 0xFF 0xE0 (APP0マーカー)
      • SIZE (APP0領域のサイズ、2バイト、ビッグエンディアン)
      • "JFIF\0" (5バイト)
      • Version 1.02 (0x01 0x02)
      • ResolutionUnit (1バイト)
      • X-Resolution (2バイト、ビッグエンディアン)
      • Y-Resolution (2バイト、ビッグエンディアン)
      • ThumbNailImageWidth (1バイト)
      • ThumbNailImageHeight (1バイト)
    • 0xFF 0xDB (DQTマーカー、define Quantization table)
      • SIZE (DQT領域のサイズ=67、ビッグエンディアン)
      • (DQT情報)
    • 0xFF 0xC4 (DHTマーカー、define huffman table)
      • SIZE (DHT領域のサイズ=29、ビッグエンディアン)
      • (DHT情報)
    • 0xFF 0xCx (SOFxマーカー)
    • スキャン
      • 0xFF 0xDA (SOS、Start of Stream、JPEG画像データ)
  • 0xFF 0xD9 (EOIマーカー、end of image)

JPEGデータ領域を表わすマーカーの後にはサイズ情報が付かず、JFIFの他の領域とは書式が異なる。

SOFxマーカー

マーカーによって書式は異なる可能性があるが、判明している範囲では、SOF0とSOF2は同じ。パラメーターの値は一例である。

  • 0xFF 0xC0/0xC2 (SOF0/SOF2マーカー)
    • SIZE (SOF領域のサイズ=17、ビッグエンディアン)
    • 0x08
    • Y-SIZE (縦サイズ、2バイト、ビッグエンディアン)
    • X-SIZE (横サイズ、2バイト、ビッグエンディアン)
    • Nif (サンプリング数、0x03、YCbCrの3情報)
    • フレーム成分指定パラメーター (Nif数分繰り返す)
      • 0x01 0x22 0x00
      • 0x02 0x11 0x01
      • 0x03 0x11 0x01

拡張情報

0xFF 0xExのAPPxマーカーが、様々な拡張に利用できる。

マーカーの後にサイズが続き、その後にアプリケーションを表わすマジックナンバーの文字列がASCIIZで続くのが基本的な書式のようである。

APPxマーカーは16種類あり、しかもマジックナンバーがあるので、拡張はいかようにでも出来ることになる。

主な使用例は次の通り。

趣旨
画像ファイル
関連する技術
JPEG
関連する用語
image/jpeg
ITU-R
YUV
サムネイル
MPO
JPS
STJ

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club