
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 編碼,並非 GIF 所用的 LZW。
Terry A. Welch 在 1984 年 6 月的論文中,說明了以 LZ78 為基礎的高速字典壓縮方法。LZW 是 Lempel–Ziv–Welch 的縮寫。演算法已公開發表,不等於其實作不涉及專利;若把「已公開」直接理解為「可不受限制地實作」,便會錯過這段歷史的核心爭議。
LZW 壓縮甚麼?以 ABABABA 為例
LZW 利用字典中的代碼,表示重複出現的符號序列。編碼器與解碼器只要採用相同的初始字典及更新規則,就能還原數據,而毋須傳送整份完成後的字典。以下教學例子的初始字典只有 A=0、B=1,並不是 GIF 檔案的位元組(byte)串流。
如表格未能完整顯示,可左右捲動。
| 代碼所代表的符號序列 | 代碼 | 新增字典項目 |
|---|---|---|
| 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 位元(bit),最多增至 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 與 CompuServe 的磋商早於公告展開;磋商開始、公佈日期及合約的實際條款,應分開理解。
問題的核心,是實作壓縮技術的軟件所涉及的專利授權,而不是對 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 專利屆滿後才使用 LZW。RFC 1951 將 DEFLATE 描述為 LZ77 與 Huffman 編碼的組合。
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 的五分之一或十分之一。比較時應使用相同素材、畫質、解像度及影格數;亦可參閱我們的 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 協助編輯,並在發布前由編輯核對。內容仍可能包含事實、理解或時效上的錯誤;作出重要決定前,請查閱所列的一手資料或官方文件。

