JPEG文件交换格式

**JPEG 檔案交換格式**（英語：JPEG File Interchange Format，簡稱 JFIF）是一個圖檔格式標準。它是一種交換符合 JPEG 交換格式（JIF）標準的 JPEG 編碼檔案的格式。它解決了 JIF 在簡單 JPEG 編碼檔案交換方面的一些限制。與所有符合 JIF 的檔案一樣，JFIF 檔案中的圖像資料使用 JPEG 標準的技術壓縮，因此 JFIF 有時被稱為「JPEG/JFIF」。

## 目的

JFIF 定義了 JPEG Part1 標準（ISO/IEC IS 10918-1，ITU-T 建議書 T.81）中未指定的許多細節：

### 組件樣本註冊

JPEG 允許多個組件（例如 YCbCr）有不同的解析度，但它沒有定義不同的樣本陣列應該如何對齊。JFIF 標準要求樣本定位「色度抽樣」，這使解碼器可以將每個組件陣列視為等大小矩形的像素中心點的採樣表示，並且每個陣列與圖像有相同的外部邊界。這對於電腦很方便，但對齊沒有在 MPEG-2 及許多影片應用程式中使用。

### 解析度和寬高比

JPEG 標準不包括對圖像解析度或寬高比進行編碼的任何方法。JFIF 提供了一個通過 JPEG 擴充 - 應用程式段提供解析度或寬高比資訊的方式。它使用應用程式段 #0（Application Segment #0），段頭「JFIF\x00」，並規定這必須是檔案中的第一個段，從而使辨識 JFIF 檔案更簡單。數位相機記錄的 EXIF 通常不包含該段，但在其他方面通常符合 JFIF 標準。

### 色彩空間

JPEG 沒有定義圖像使用哪個色彩空間。JFIF 定義了使用的色彩模式：無論 Y = 灰度，或者 CCIR 601 定義的 YCbCr。因為這不是一個絕對色彩空間 —— 除非已提供並解釋一個 ICC 設定檔、色彩空間元資料或 sRGB 標籤，解碼的 JFIF 圖像將依賴於裝置的 RGB 色彩空間。因此，JFIF 本身不提供在網際網路上精確傳輸經色彩管理的圖像的機制。

## 檔案格式結構

JFIF 檔案由一系列標記（marker）或標記段（marker segments）組成。標記在 JPEG 標準的第一部分中定義。每個標記由兩個位元組組成：一個 `FF` 位元組後跟一個不等於 `00` 或 `FF` 的位元組，並指定標記的類型。一些標記是獨立的，但大多數「標記段開始」的標示包含按以下模式的資料位元組：

`FF _xx_ _s1_ _s2_ _数据字节_`

位元組 _s1_ 和 _s2_ 一同表示一個大端 16 位元整數，指定之後「資料位元組」的長度加上用於表示長度的 2 個位元組。換句話說，s1 和 s2 指定了之後的資料位元組數量為：256 \* _s1_ + _s2_ - 2。

根據 JPEG 標準第一部分，應用程式可以使用 APP 標記和定義應用程式指定的特定含義資料。JFIF 標準中定義了下列 APP 標記段：

* JFIF APP0 標記段（JFIF 短標記）（強制性）
* JFIF 擴充 APP0 標記段（JFXX 短標記）（可選）

它們的描述如下：

JFIF 標準需要 JFIF APP0 標記段必須緊隨 SOI 標記。如果一個 JFIF 擴充 APP0 標記段被使用，它必須緊隨 JFIF APP0 標記段。因此一個 JFIF 檔案將具有下列結構：

### JFIF APP0 標記段

在強制性 JFIF APP0 標記段中指定圖像的參數。可選嵌入未壓縮的縮圖。

### JFIF 擴充 APP0 標記段

緊隨 JFIF APP0 標記段的可能是 JFIF 擴充 APP0 標記段。此段可能僅存在於 JFIF 1.02 及更高版本。它允許以 3 種不同的格式嵌入縮圖。

縮圖資料取決於縮圖格式，如下所示：

## 相容性

較新的 EXIF 與 JFIF 相容，但這兩個標準互不相容。這是因為這兩個標準都規定了它們特定的應用程式段（JFIF 為 APP0，Exif 為 APP1）必須緊隨 SOI 標記。在實踐中，許多程式和數位相機生成包括兩個應用程式段的檔案。這不會影響大多數解碼器的圖像解碼，但設計不良的 JFIF 或 Exif 解析器可能無法正確辨識檔案。

JFIF 與 Adobe Adobe Photoshop 的 JPEG「資訊資源塊」擴充和 IPTC 資訊交換模型元資料相容，因為 JFIF 不排除其他應用程式段，並且 Photoshop 擴充不要求它在檔案中的第一個段。但是，Photoshop 一般將 CMYK 緩衝區儲存為四組元「Adobe JPEGs」，這不符合 JFIF。由於這些檔案不是 YCbCr 色彩空間，它們不能被很多網頁瀏覽器或其他網際網路軟體解碼。

## 歷史

該標準於 1991 年 3 月 1 日在 C-Cube Microsystems 的一個涉及許多公司代表的會議上建立，這些公司包括：C-Cube Microsystems、Radius、NeXT、Storm Tech、PD JPEG 小組、Sun 和 Handmade 軟體。該標準似乎已失去了所有人，因為 C-Cube Microsystems 已停產，該標準的進一步發展已停滯。最新版本為 v1.02，發布於 1992 年 9 月 1 日。

JFIF 已標準化為 ISO/IEC 10918-5:2013，ITU-T T.871 和 Ecma International TR/98。

1996 年，RFC 2046 指定了在網際網路上傳輸 JPEG 圖像的圖形格式應使用 JFIF。網際網路媒體類型「image/jpeg」必須編碼為 JFIF。但在具體實踐中，幾乎所有網際網路軟體都可以解碼任何使用 Y 或 YCbCr 組件的 JIF 圖像，無論其是否相容 JFIF。

## 參考資料

## 拓展閱讀

### 書籍

* Miano, John M., "Compressed Image File Formats." 1999, Addison-Wesley. ISBN 978-0-201-60443-6.
* Pennebaker, William B. and Joan L. Mitchell: _JPEG still image data compression standard._ 3rd edition, 1993. Springer. ISBN 978-0-442-01272-4.

### 標準

* Hamilton, Eric: _JPEG File Interchange Format, Version 1.02._ （頁面存檔備份，存於網際網路檔案館） (PDF, 0,02 MB) 1992-09-01.
* ITU-T Recommendation T.871: _TERMINALS FOR TELEMATIC SERVICES. Still-image compression – JPEG-1 extensions. Information technology – Digital compression and coding of continuous-tone still images: JPEG File Interchange Format (JFIF). 2011-05-14._ （頁面存檔備份，存於網際網路檔案館） (PDF, 0,2 MB)
* ITU-T Recommendation T.81: _CCITT: TERMINAL EQUIPMENT AND PROTOCOLS FOR TELEMATIC SERVICES. INFORMATION TECHNOLOGY – DIGITAL COMPRESSION AND CODING OF CONTINUOUS-TONE STILL IMAGES – REQUIREMENTS AND GUIDELINES. 1992-09-18._ （頁面存檔備份，存於網際網路檔案館） (PDF, 1,1 MB)