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


<h2><span id=".E7.9B.AE.E7.9A.84"></span><span id="目的">目的</span></h2>
<p>JFIF定義了JPEG Part1標準（ISO/IEC IS 10918-1，ITU-T建議書T.81）中未指定的許多細節：
</p>
<h3><span id=".E7.BB.84.E4.BB.B6.E6.A0.B7.E6.9C.AC.E6.B3.A8.E5.86.8C"></span><span id="组件样本注册">組件樣本註冊</span></h3>
<p>JPEG允許多個組件（例如YCbCr）有不同的解析度，但它沒有定義不同的樣本陣列應該如何對齊。JFIF標準要求樣本定位「色度抽樣」，這使解碼器可以將每個組件陣列視為等大小矩形的像素中心點的採樣表示，並且每個陣列與圖像有相同的外部邊界。這對於電腦很方便，但對齊沒有在MPEG-2及許多影片應用程式中使用。
</p>
<h3><span id=".E5.88.86.E8.BE.A8.E7.8E.87.E5.92.8C.E5.AE.BD.E9.AB.98.E6.AF.94"></span><span id="分辨率和宽高比">解析度和寬高比</span></h3>
<p>JPEG標準不包括對圖像解析度或寬高比進行編碼的任何方法。JFIF提供了一個通過JPEG擴充-應用程式段提供解析度或寬高比資訊的方式。它使用應用程式段#0（Application Segment #0），段頭「JFIF\x00」，並規定這必須是檔案中的第一個段，從而使辨識JFIF檔案更簡單。數位相機記錄的EXIF通常不包含該段，但在其他方面通常符合JFIF標準。
</p>
<h3><span id=".E8.89.B2.E5.BD.A9.E7.A9.BA.E9.97.B4"></span><span id="色彩空间">色彩空間</span></h3>
<p>JPEG沒有定義圖像使用哪個色彩空間。JFIF定義了使用的<span data-orig-title="色彩模式" data-lang-code="en" data-lang-name="英語" data-foreign-title="Color model"><span>色彩模式</span></span>：無論Y=灰度，或者CCIR 601定義的YCbCr。因為這不是一個絕對色彩空間——除非已提供並解釋一個ICC設定檔、色彩空間元資料或sRGB標籤，解碼的JFIF圖像將依賴於裝置的RGB色彩空間。因此，JFIF本身不提供在網際網路上精確傳輸經色彩管理的圖像的機制。
</p>
<h2><span id=".E6.96.87.E4.BB.B6.E6.A0.BC.E5.BC.8F.E7.BB.93.E6.9E.84"></span><span id="文件格式结构">檔案格式結構</span></h2>
<p>JFIF檔案由一系列標記（marker）或標記段（marker segments）組成。標記在JPEG標準的第一部分中定義。每個標記由兩個位元組組成：一個<code>FF</code>位元組後跟一個不等於<code>00</code>或<code>FF</code>的位元組，並指定標記的類型。一些標記是獨立的，但大多數「標記段開始」的標示包含按以下模式的資料位元組：
</p><p><code>FF <i>xx</i> <i>s1</i> <i>s2</i> <i>数据字节</i></code>
</p><p>位元組<i>s1</i>和<i>s2</i>一同表示一個大端16位元整數，指定之後「資料位元組」的長度加上用於表示長度的2個位元組。換句話說，s1和s2指定了之後的資料位元組數量為：256 * <i>s1</i> + <i>s2</i> - 2。
</p><p>根據JPEG標準第一部分，應用程式可以使用APP標記和定義應用程式指定的特定含義資料。JFIF標準中定義了下列APP標記段：
</p>
<ul><li>JFIF APP0標記段（JFIF短標記）（強制性）</li>
<li>JFIF擴充APP0標記段（JFXX短標記）（可選）</li></ul><p>它們的描述如下：
</p><p>JFIF標準需要JFIF APP0標記段必須緊隨SOI標記。如果一個JFIF擴充APP0標記段被使用，它必須緊隨JFIF APP0標記段。因此一個JFIF檔案將具有下列結構：
</p>
<h3><span id="JFIF_APP0.E6.A0.87.E8.AE.B0.E6.AE.B5"></span><span id="JFIF_APP0标记段">JFIF APP0標記段</span></h3>
<p>在強制性JFIF APP0標記段中指定圖像的參數。可選嵌入未壓縮的縮圖。
</p>
<h3><span id="JFIF.E6.89.A9.E5.B1.95APP0.E6.A0.87.E8.AE.B0.E6.AE.B5"></span><span id="JFIF扩展APP0标记段">JFIF擴充APP0標記段</span></h3>
<p>緊隨JFIF APP0標記段的可能是JFIF擴充APP0標記段。此段可能僅存在於JFIF 1.02及更高版本。它允許以3種不同的格式嵌入縮圖。
</p>
<p>縮圖資料取決於縮圖格式，如下所示：
</p>
<h2><span id=".E5.85.BC.E5.AE.B9.E6.80.A7"></span><span id="兼容性">相容性</span></h2>
<p>較新的EXIF與JFIF相容，但這兩個標準互不相容。這是因為這兩個標準都規定了它們特定的應用程式段（JFIF為APP0，Exif為APP1）必須緊隨SOI標記。在實踐中，許多程式和數位相機生成包括兩個應用程式段的檔案。這不會影響大多數解碼器的圖像解碼，但設計不良的JFIF或Exif解析器可能無法正確辨識檔案。
</p><p>JFIF與Adobe Adobe Photoshop的JPEG「資訊資源塊」擴充和<span data-orig-title="IPTC信息交换模型" data-lang-code="en" data-lang-name="英語" data-foreign-title="IPTC Information Interchange Model"><span>IPTC資訊交換模型</span></span>元資料相容，因為JFIF不排除其他應用程式段，並且Photoshop擴充不要求它在檔案中的第一個段。但是，Photoshop一般將CMYK緩衝區儲存為四組元「Adobe JPEGs」，這不符合JFIF。由於這些檔案不是YCbCr色彩空間，它們不能被很多網頁瀏覽器或其他網際網路軟體解碼。
</p>
<h2><span id=".E5.8E.86.E5.8F.B2"></span><span id="历史">歷史</span></h2>
<p>該標準於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日。</p><p>JFIF已標準化為ISO/IEC 10918-5:2013，ITU-T T.871和Ecma International TR/98。</p><p>1996年，RFC 2046指定了在網際網路上傳輸JPEG圖像的圖形格式應使用JFIF。網際網路媒體類型「image/jpeg」必須編碼為JFIF。但在具體實踐中，幾乎所有網際網路軟體都可以解碼任何使用Y或YCbCr組件的JIF圖像，無論其是否相容JFIF。
</p>
<h2><span id=".E5.8F.82.E8.80.83.E8.B5.84.E6.96.99"></span><span id="参考资料">參考資料</span></h2>

<h2><span id=".E6.8B.93.E5.B1.95.E9.98.85.E8.AF.BB"></span><span id="拓展阅读">拓展閱讀</span></h2>
<h3><span id=".E4.B9.A6.E7.B1.8D"></span><span id="书籍">書籍</span></h3>
<ul><li>Miano, John M., "Compressed Image File Formats." 1999, Addison-Wesley. ISBN 978-0-201-60443-6.</li>
<li>Pennebaker, William B. and Joan L. Mitchell: <i>JPEG still image data compression standard.</i> 3rd edition, 1993. Springer. ISBN 978-0-442-01272-4.</li></ul><h3><span id=".E6.A0.87.E5.87.86"></span><span id="标准">標準</span></h3>
<ul><li>Hamilton, Eric: <i>JPEG File Interchange Format, Version 1.02.</i> （頁面存檔備份，存於網際網路檔案館） (PDF, 0,02 MB) 1992-09-01.</li>
<li>ITU-T Recommendation T.871: <i>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.</i> （頁面存檔備份，存於網際網路檔案館） (PDF, 0,2 MB)</li>
<li>ITU-T Recommendation T.81: <i>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.</i> （頁面存檔備份，存於網際網路檔案館） (PDF, 1,1 MB)</li></ul><!-- 
NewPP limit report
Parsed by mw2297
Cached time: 20230505225913
Cache expiry: 1814400
Reduced expiry: false
Complications: [show‐toc]
CPU time usage: 0.280 seconds
Real time usage: 0.347 seconds
Preprocessor visited node count: 468/1000000
Post‐expand include size: 206488/2097152 bytes
Template argument size: 331/2097152 bytes
Highest expansion depth: 5/100
Expensive parser function count: 4/500
Unstrip recursion depth: 0/20
Unstrip post‐expand size: 7962/5000000 bytes
Lua time usage: 0.145/10.000 seconds
Lua memory usage: 19120603/52428800 bytes
Number of Wikibase entities loaded: 0/400
--><!--
Transclusion expansion time report (%,ms,calls,template)
100.00%  242.618      1 -total
 40.87%   99.156      1 Template:Lang-en
 25.44%   61.730      1 Template:Reflist
 22.80%   55.318      1 Template:NoteTA
 22.49%   54.563      5 Template:Cite_web
  6.20%   15.047      2 Template:Tsl
  0.77%    1.873      3 Template:Wayback
-->
**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)
.jfif