
GIF 與 LZW 專利的歷史:壓縮原理、PNG 的誕生與專利到期
即使影像格式沒有改變,涵蓋其壓縮技術的權利仍可能影響軟體的開發與散布。GIF 採用的 LZW 就是典型案例。Welch 在 1984 年論文中介紹的壓縮方法,在論文發表前已提出專利申請。1994 年底圍繞 CompuServe 與 Unisys 的授權爭議,進一步促成 PNG 的開發。
本文區分壓縮演算法、影像格式與實作軟體的授權條款,說明 LZW 的原理,以及相關 Unisys 專利在 2003–2004 年間到期的歷程。這是技術與歷史介紹,不能取代針對特定國家或產品的現行專利權調查。
日文原文發布: 2026-04-25
從 LZ77、LZ78 到 LZW
Jacob Ziv 與 Abraham Lempel 於 1977 年發表的論文,奠定了 LZ77 這類參照先前資料序列的壓縮方法。兩人 1978 年的論文則與 LZ78 有關,透過建立字典來記錄讀取過的序列。後來 PNG 採用的 DEFLATE 結合 LZ77 與霍夫曼編碼(Huffman coding),與 GIF 使用的 LZW 不同。
Terry A. Welch 在 1984 年 6 月的論文中,介紹以 LZ78 為基礎的高速字典壓縮。LZW 是 Lempel–Ziv–Welch 的縮寫。演算法已公開發表,不代表其實作不受專利權限制;將「方法已公開」直接等同於「可不受限制地實作」,就會忽略這段歷史的核心爭議。
LZW 如何壓縮:以 ABABABA 為例
LZW 以字典中的代碼表示重複出現的符號序列。只要編碼器與解碼器使用相同的初始字典及更新規則,就能在不傳送完整字典的情況下還原資料。以下教學範例的初始字典只有 A=0、B=1,並不是 GIF 檔案的位元組串流。
表格若超出畫面寬度,可左右捲動。
| 代碼代表的符號序列 | 代碼 | 新增的字典項目 |
|---|---|---|
| A | 0 | AB = 2 |
| B | 1 | BA = 3 |
| AB | 2 | ABA = 4 |
| ABA | 4 | 輸入結束,不再新增 |
輸出為 0, 1, 2, 4。解碼器一邊輸出 A、B、AB,一邊建立字典。收到最後的代碼 4 時,該項目尚未存在;此時將前一個序列 AB 的第一個符號 A 接在 AB 後面,就能還原為 ABA。這項特殊處理適用於「收到的代碼正好是下一個待新增代碼」的情況。
7 個字元變成 4 個代碼,不代表檔案大小就是原本的 4/7。代碼的位元寬度、初始化與結束代碼、影像標頭等也會占用空間。輸入太短或重複性不足時,壓縮後反而可能變大。
GIF 中的 LZW:代碼並非固定為 9 位元
CompuServe 的 GIF87a 規格標示日期為 1987 年 6 月 15 日。GIF 以 LZW 壓縮的是指向色彩表的索引序列,而不是色彩值本身。一個色彩表最多有 256 個項目;即使 LZW 是無損壓縮,將照片轉換成有限色彩的調色盤時,仍可能先失去部分色彩資訊。
依 GIF89a 的規則,最小代碼大小為 m 時,初始代碼寬度為 m+1 位元,上限為 12 位元。m=8 時從 9 位元開始,但並非所有 GIF 都如此。即使只有兩種顏色,m 也須設為 2。Clear 代碼會重設字典,End of Information 代碼表示資料結束。字典達到容量上限時,不一定要立即送出 Clear 代碼。
GIF87a 已允許在同一資料串流中存放多張影像。GIF89a 的 Graphic Control Extension 則可指定延遲時間、透明色與影像顯示後的處理方式。因此,不能將多張影像的儲存能力說成是 89a 才首次加入。
1983 年申請專利,早於 1984 年論文
美國專利 US 4,558,302 的發明人為 Welch,最初的受讓人為 Sperry。申請日期是 1983 年 6 月 20 日,核准專利的公告日期是 1985 年 12 月 10 日。1984 年是論文發表年,不是專利申請年。Sperry 與 Burroughs 於 1986 年合併後,相關權利由 Unisys 承接。
較早期美國專利的期限涉及制度過渡規則,不能一律套用現今常見的「自申請日起 20 年」來計算。下文採用的是當時授權文件明列的到期日期,也不把 Google Patents 自動顯示的法律狀態視為個案的法律判斷。
1994 年底的授權爭議與 PNG 開發
參與 PNG 開發的 Greg Roelofs 記錄指出,CompuServe 在 1994 年 12 月 28 日的公告是重要轉折。與 Unisys 的協商在此之前就已展開;協商起點、公開公告日期與契約的具體條款,必須分別看待。
爭議核心是實作壓縮技術的軟體所涉及的專利授權,而不是對 GIF 副檔名課稅。「GIF tax」只是俗稱,並非稅制名稱。包括後來針對網站提出的授權要求,其條件也會隨時期、契約與所用實作而異,不能概括成「所有放置 GIF 的網站都必須支付同一筆費用」。
1995 年初,Thomas Boutell 等人開始討論 GIF 的替代格式。避開專利問題是動機之一,支援更多色彩與更靈活的透明度等技術改進,也共同塑造了 PNG。
區分 PNG 標準化的不同日期
- 1996 年 10 月 1 日:PNG 1.0 成為 W3C 建議標準(Recommendation)。
- 1997 年 3 月:RFC 2083 發布,並非與 1996 年的 W3C 建議標準同日發表。
- 2004 年 3 月:ISO/IEC 15948:2004 發布,其版本名稱不是 2003 年版。
PNG 採用了 DEFLATE。這是選擇另一種壓縮方式,而不是等 LZW 專利到期後再使用它。RFC 1951 將 DEFLATE 說明為 LZ77 與霍夫曼編碼的組合。
PNG 1.0 未納入動畫,因此最初主要替代 GIF 的靜態影像用途。不過,這項限制並非一直延續至今:2025 年 6 月 24 日的 PNG 第三版 W3C 建議標準已納入 APNG 動畫。PNG 的透明度也不是一律限於 8 位元,須依色彩類型與位元深度的規則判斷。
Unisys 專利在不同地區的到期日期
下表日期來自 Stellent 與 Guidance Software 在 2005 年簽訂、由 SEC 公開的 License Agreement 內之 LZW 通知。這是針對相關 Unisys 專利的當時紀錄,不表示本文已逐一重新查核各國專利登記簿。
表格若超出畫面寬度,可左右捲動。
| 範圍 | 到期日期 |
|---|---|
| 美國:US 4,558,302 | 2003-06-20 |
| 英國、法國、德國及義大利的對應專利 | 2004-06-18 |
| 日本的對應專利 | 2004-06-20 |
| 加拿大的對應專利 | 2004-07-07 |
來源:Stellent Chicago Sales, Inc. / SEC: License Agreement(LZW 通知)。
美國的到期日期不是全球到期日期,也不能據此推論其他公司的專利或改良技術所涉及的權利,都在 2004 年消失。同一份文件也提到,改良技術仍涉及其他專利與專利申請。
今天如何選擇影像格式與辨別軟體授權
選擇影像格式時,不必只看 GIF 的歷史。應比較色彩數、透明度、靜態或動畫用途、顯示環境支援、編碼時間與檔案大小。WebP 或 AVIF 有時能產生較小的檔案,但不保證永遠只有 GIF 的 1/5 或 1/10。請使用相同素材、畫質、解析度與影格數進行比較;也可參考我們的 WebP、AVIF 與 JPEG 比較文章。
NanToo 日文版的 GIF 動畫製作工具使用 gif.js,該程式庫採用 MIT 授權條款。專利到期與實作軟體的著作權、授權條款是不同問題;散布程式庫時仍可能須保留相關聲明,輸入影像的使用權利也要另外確認。
分清楚影像格式、壓縮技術與權利
LZW 以字典代碼表示重複序列,GIF 則是採用這項技術的影像格式。1983 年申請專利、1984 年發表論文、1985 年專利核准及 1994 年底的授權公告,是不同事件;後續 PNG 的開發,以及 1996、1997、2004 年的標準化里程碑,也應分別理解。
相關 Unisys 專利在 2003–2004 年到期是重要里程碑,但不代表軟體授權條款或影像著作權也一併消失。本文提供技術與專利史的一般說明;若需要判斷特定契約或產品的法律問題,應先確認實作方式與司法管轄區,再諮詢適當的專業人士。
參考資料與來源
- IEEE / Computer: A Technique for High-Performance Data Compression ↗
- IEEE / IEEE Transactions on Information Theory: A universal algorithm for sequential data compression ↗
- IEEE / IEEE Transactions on Information Theory: Compression of individual sequences via variable-rate coding ↗
- patents.google.com: US4558302A - High speed data compression and decompression apparatus and method - Google Patents ↗
- RFC Editor: RFC 2083: PNG (Portable Network Graphics) Specification Version 1.0 ↗
- ISO: ISO/IEC 15948:2004 — Information technology — Computer graphics and image processing — Portable Network Graphics (PNG): Functional specification ↗
- web.archive.org: Unisys Patents Expired, But Patent Threats Continue ↗
- CompuServe: Graphics Interchange Format, Version 89a ↗
- Greg Roelofs / PNG: The Definitive Guide: History of the Portable Network Graphics Format ↗
- W3C: PNG (Portable Network Graphics) Specification Version 1.0 ↗
- W3C: Portable Network Graphics (PNG) Specification (Third Edition) ↗
- Stellent Chicago Sales, Inc. / SEC: License Agreement ↗(2005 年契約中的 LZW 通知,並非專利主管機關對法律狀態的認定。)
- RFC Editor: RFC 1951: DEFLATE Compressed Data Format Specification version 1.3 ↗
- GitHub: GitHub - jnordberg/gif.js: JavaScript GIF encoding library ↗
- CompuServe: Graphics Interchange Format ↗(日期為 1987 年 6 月 15 日的 GIF87a 規格。)
編輯說明
本文使用 AI 協助編輯,並於發布前由編輯確認。內容仍可能包含事實、解讀或時效上的錯誤;進行重要判斷前,請查閱所列的一手資料或官方文件。

