<p><b>圖像互換格式</b>（英語：<span lang="en">Graphics Interchange Format</span>，簡稱<b>GIF</b>）是一種點陣圖圖形檔案格式，以8位元色（即256種顏色）重現真彩色的圖像。它實際上是一種壓縮文件，採用LZW壓縮演算法進行編碼，有效地減少了圖檔在網路上傳輸的時間。它是目前全球資訊網廣泛應用的網路傳輸圖像格式之一。史蒂芬·威爾海特（Stephen Wilhite）在Compuserve公司工作時，率領工程團隊發明GIF檔，憑著體積小、成像相對清晰的優點，十分適合早期網際網路頻寬小的環境，而今網路使用者將GIF檔用於創作，變成用來作為網路迷因的格式之一，威爾海特也在2013年獲得威比獎（The Webby Award）終身成就獎。至於「GIF」怎麼唸，許多人都唸成「gift」（<span title="國際音標">[ɡɪf]</span>）的音，但他本人正名應該唸「Jif」（<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r61209503"><span title="國際音標">[d͡ʒɪf]</span>）一樣的音。
</p>


<h2><span id=".E6.AD.B7.E5.8F.B2"></span><span id="歷史">歷史</span></h2>
<p>GIF格式自1987年由CompuServe公司引入後，因其體積小而成像相對清晰，特別適合於初期慢速的網際網路，而從此大受歡迎。它採用無失真壓縮技術，只要圖像不多於256色，則可既減少檔案的大小，又保持成像的品質。（當然，現在也存在一些<i>hack</i>技術，在一定的條件下克服256色的限制）然而，256色的限制大大局限了GIF檔案的應用範圍，如彩色相機等。（當然採用無失真壓縮技術的彩色相機相片亦不適合通過網路傳輸。）另一方面，在高彩圖片上有著不俗表現的JPEG格式卻在簡單的折線上效果不如人意。因此GIF格式普遍適用於圖表，按鈕等等只需少量顏色的圖像（如黑白相片）。
</p><p>GIF格式的原始版本叫做<b>87a</b>。1989年，CompuServe發布了一個名為<b>89a</b>的增強版本，在這個版本中，為GIF文件擴充了圖形控制區塊、備註、說明、應用程式介面等四個區塊，並提供了對透明色和多影格動畫的支援。現在我們一般所說的GIF動畫都是指89a的格式。Netscape於1990年提出了Netscape Application Block，定義了一個動畫應該循環多少次或是否應該無限次地播放，這導致了GIF動畫的流行。重複動畫的功能首次出現在Netscape Navigator 2.0版本中，然後逐漸支援其他瀏覽器，儘管大多數瀏覽器都支援，但是嚴格來說不是<b>89a</b>規範的一部分。 
</p><p>2015年5月，Facebook開始支援GIF。</p>
<h2><span id=".E5.B0.88.E5.88.A9"></span><span id="專利">專利</span></h2>
<p>在早期，GIF所用的LZW壓縮演算法是CompuServe所開發的一種免費演算法。然而令很多軟體開發商感到意外的是，GIF檔案所採用的壓縮演算法忽然成了Unisys公司的專利。據Unisys公司稱，他們已註冊了LZW中的<b>W</b>部分。如果要開發生成（或顯示）GIF檔案的程式，則需向該公司支付版稅。在專利失效前曾引起部份開放原始碼社群發起「Burn all GIFs」的運動抵制使用GIF格式。因此，人們開始尋求一種新技術，以減少開發成本。它一方面滿足了市場對更少的法規限制的需要，另一方面也帶來了更少的技術上的限制，如顏色的數量等。
</p><p>在2003年6月20日，LZW演算法在美國的專利權已到期而失效。在歐洲、日本及加拿大的專利權亦已分別在2004年的6月18日、6月20日和7月7日到期失效。與GIF相關的專利於2006年8月11日過期。儘管如此，PNG檔案格式憑著其技術上的優勢，已然躋身於網路上第三廣泛應用格式。
</p>
<h2><span id=".E7.89.B9.E6.80.A7"></span><span id="特性">特性</span></h2>

<ul><li>優秀的壓縮演算法使其在一定程度上保證圖像品質的同時將體積變得很小。</li>
<li>可插入多影格，從而實現動畫效果。</li>
<li>可設定透明色以產生物件浮現於背景之上的效果。</li>
<li>由於採用了8位元壓縮，最多只能處理256種顏色，故不宜應用於真彩色圖片。</li></ul><h2><span id=".E6.8A.80.E6.9C.AF.E7.AE.80.E4.BB.8B"></span><span id="技术简介">技術簡介</span></h2>
<p>GIF主要是為資料流而設計的一種傳輸格式，而不是作為檔案的儲存格式。它具有順序組織形式而不是隨機組織形式。
</p><p>GIF有五個主要部分以固定順序出現，所有部分均由一個或多個區塊（block）組成。每個塊由第一個位元組中的標識碼或特徵碼標識。這些部分的順序為：頭塊、邏輯螢幕描述塊、可選的「全域」色彩表塊（調色盤）、各圖像資料塊（或專用的塊）以及尾塊（結束碼）。下面是這些部分的內容：
</p>
<ul><li>起頭為一個區塊，它辨識資料流為GIF，並指示如何解釋後面的資料所需的最早版本的GIF解碼程式（87a或89a）。</li>
<li>邏輯程式描述塊定義了：所有後面圖像的圖像平面的大小、縱橫尺寸比以及色彩深度（它類似於產生圖像的監視器螢幕）。它還指明後面跟隨的是否為「全域」色彩表。</li>
<li>全域色彩表（如果存在）構成一個24位元RGB元組的調色盤（每種底色為一個位元組）。如果後面的像沒有其自己的「局部」調色盤，那麼全域色表就是預設調色盤。</li>
<li>後續資料作為「圖形」或「專用」塊出現。圖形塊典型地包含一個或多個點陣圖圖像，也可能是覆蓋的文字。專用塊或者包含一個專用應用程式碼，或者包含一句不可列印的注釋。</li>
<li>最後的尾塊指示值為3B（十六進位）的一個位元組，表示資料流已結束。</li></ul><p>注意：檔案中的GIF資料流可能根本就不包含任何點陣圖資料，這時，它只是要傳輸全域色彩表，作為沒有自己調色盤的後續資料流的預設調色盤。
</p>
<h2><span id=".E5.8F.82.E8.80.83.E6.96.87.E7.8D.BB"></span><span id="参考文獻">參考文獻</span></h2>

<h2><span id=".E5.A4.96.E9.83.A8.E9.93.BE.E6.8E.A5"></span><span id="外部链接">外部連結</span></h2>
<ul><li>The GIFLIB project（頁面存檔備份，存於網際網路檔案館）</li>
<li>spec-gif89a.txt（頁面存檔備份，存於網際網路檔案館） GIF 89a specification on 全球資訊網協會</li>
<li>GIF 89a specification reformatted into HTML</li>
<li>LZW and GIF explained（頁面存檔備份，存於網際網路檔案館）</li>
<li>Animated GIFs（頁面存檔備份，存於網際網路檔案館）: a 6-minute documentary produced by <span data-orig-title="Off Book (web series)" data-lang-code="en" data-lang-name="英語" data-foreign-title="Off Book (web series)"><span>Off Book (web series)</span></span></li></ul><!-- 
NewPP limit report
Parsed by mw2334
Cached time: 20230505225917
Cache expiry: 3645
Reduced expiry: true
Complications: [show‐toc]
CPU time usage: 0.778 seconds
Real time usage: 1.019 seconds
Preprocessor visited node count: 5586/1000000
Post‐expand include size: 580944/2097152 bytes
Template argument size: 11019/2097152 bytes
Highest expansion depth: 18/100
Expensive parser function count: 90/500
Unstrip recursion depth: 0/20
Unstrip post‐expand size: 11383/5000000 bytes
Lua time usage: 0.328/10.000 seconds
Lua memory usage: 25520395/52428800 bytes
Number of Wikibase entities loaded: 0/400
--><!--
Transclusion expansion time report (%,ms,calls,template)
100.00%  763.329      1 -total
 87.12%  665.007      5 Template:Navbox
 44.74%  341.544      1 Template:多媒體壓縮格式
 25.16%  192.064     92 Template:绿链
 12.61%   96.271      1 Template:Lang-en
 10.40%   79.370      1 Template:多個問題
  9.97%   76.079      1 Template:Reflist
  8.82%   67.346      1 Template:Infobox_file_format
  8.37%   63.920      1 Template:Infobox
  8.11%   61.901      8 Template:Cite_web
-->
**圖像互換格式**（英語：Graphics Interchange Format，簡稱 **GIF**）是一種點陣圖圖形檔案格式，以 8 位元色（即 256 種顏色）重現真彩色的圖像。它實際上是一種壓縮文件，採用 LZW 壓縮演算法進行編碼，有效地減少了圖檔在網路上傳輸的時間。它是目前全球資訊網廣泛應用的網路傳輸圖像格式之一。史蒂芬・威爾海特（Stephen Wilhite）在 Compuserve 公司工作時，率領工程團隊發明 GIF 檔，憑著體積小、成像相對清晰的優點，十分適合早期網際網路頻寬小的環境，而今網路使用者將 GIF 檔用於創作，變成用來作為網路迷因的格式之一，威爾海特也在 2013 年獲得威比獎（The Webby Award）終身成就獎。至於「GIF」怎麼唸，許多人都唸成「gift」（[ɡɪf]）的音，但他本人正名應該唸「Jif」（[d͡ʒɪf]）一樣的音。

## 歷史

GIF 格式自 1987 年由 CompuServe 公司引入後，因其體積小而成像相對清晰，特別適合於初期慢速的網際網路，而從此大受歡迎。它採用無失真壓縮技術，只要圖像不多於 256 色，則可既減少檔案的大小，又保持成像的品質。（當然，現在也存在一些 _hack_ 技術，在一定的條件下克服 256 色的限制）然而，256 色的限制大大局限了 GIF 檔案的應用範圍，如彩色相機等。（當然採用無失真壓縮技術的彩色相機相片亦不適合通過網路傳輸。）另一方面，在高彩圖片上有著不俗表現的 JPEG 格式卻在簡單的折線上效果不如人意。因此 GIF 格式普遍適用於圖表，按鈕等等只需少量顏色的圖像（如黑白相片）。

GIF 格式的原始版本叫做 **87a**。1989 年，CompuServe 發布了一個名為 **89a** 的增強版本，在這個版本中，為 GIF 文件擴充了圖形控制區塊、備註、說明、應用程式介面等四個區塊，並提供了對透明色和多影格動畫的支援。現在我們一般所說的 GIF 動畫都是指 89a 的格式。Netscape 於 1990 年提出了 Netscape Application Block，定義了一個動畫應該循環多少次或是否應該無限次地播放，這導致了 GIF 動畫的流行。重複動畫的功能首次出現在 Netscape Navigator 2.0 版本中，然後逐漸支援其他瀏覽器，儘管大多數瀏覽器都支援，但是嚴格來說不是 **89a** 規範的一部分。

2015 年 5 月，Facebook 開始支援 GIF。

## 專利

在早期，GIF 所用的 LZW 壓縮演算法是 CompuServe 所開發的一種免費演算法。然而令很多軟體開發商感到意外的是，GIF 檔案所採用的壓縮演算法忽然成了 Unisys 公司的專利。據 Unisys 公司稱，他們已註冊了 LZW 中的 **W** 部分。如果要開發生成（或顯示）GIF 檔案的程式，則需向該公司支付版稅。在專利失效前曾引起部份開放原始碼社群發起「Burn all GIFs」的運動抵制使用 GIF 格式。因此，人們開始尋求一種新技術，以減少開發成本。它一方面滿足了市場對更少的法規限制的需要，另一方面也帶來了更少的技術上的限制，如顏色的數量等。

在 2003 年 6 月 20 日，LZW 演算法在美國的專利權已到期而失效。在歐洲、日本及加拿大的專利權亦已分別在 2004 年的 6 月 18 日、6 月 20 日和 7 月 7 日到期失效。與 GIF 相關的專利於 2006 年 8 月 11 日過期。儘管如此，PNG 檔案格式憑著其技術上的優勢，已然躋身於網路上第三廣泛應用格式。

## 特性

* 優秀的壓縮演算法使其在一定程度上保證圖像品質的同時將體積變得很小。
* 可插入多影格，從而實現動畫效果。
* 可設定透明色以產生物件浮現於背景之上的效果。
* 由於採用了 8 位元壓縮，最多只能處理 256 種顏色，故不宜應用於真彩色圖片。

## 技術簡介

GIF 主要是為資料流而設計的一種傳輸格式，而不是作為檔案的儲存格式。它具有順序組織形式而不是隨機組織形式。

GIF 有五個主要部分以固定順序出現，所有部分均由一個或多個區塊（block）組成。每個塊由第一個位元組中的標識碼或特徵碼標識。這些部分的順序為：頭塊、邏輯螢幕描述塊、可選的「全域」色彩表塊（調色盤）、各圖像資料塊（或專用的塊）以及尾塊（結束碼）。下面是這些部分的內容：

* 起頭為一個區塊，它辨識資料流為 GIF，並指示如何解釋後面的資料所需的最早版本的 GIF 解碼程式（87a 或 89a）。
* 邏輯程式描述塊定義了：所有後面圖像的圖像平面的大小、縱橫尺寸比以及色彩深度（它類似於產生圖像的監視器螢幕）。它還指明後面跟隨的是否為「全域」色彩表。
* 全域色彩表（如果存在）構成一個 24 位元 RGB 元組的調色盤（每種底色為一個位元組）。如果後面的像沒有其自己的「局部」調色盤，那麼全域色表就是預設調色盤。
* 後續資料作為「圖形」或「專用」塊出現。圖形塊典型地包含一個或多個點陣圖圖像，也可能是覆蓋的文字。專用塊或者包含一個專用應用程式碼，或者包含一句不可列印的注釋。
* 最後的尾塊指示值為 3B（十六進位）的一個位元組，表示資料流已結束。

注意：檔案中的 GIF 資料流可能根本就不包含任何點陣圖資料，這時，它只是要傳輸全域色彩表，作為沒有自己調色盤的後續資料流的預設調色盤。

## 參考文獻

## 外部連結

* The GIFLIB project（頁面存檔備份，存於網際網路檔案館）
* spec-gif89a.txt（頁面存檔備份，存於網際網路檔案館） GIF 89a specification on 全球資訊網協會
* GIF 89a specification reformatted into HTML
* LZW and GIF explained（頁面存檔備份，存於網際網路檔案館）
* Animated GIFs（頁面存檔備份，存於網際網路檔案館）: a 6-minute documentary produced by Off Book (web series)
.gif