跳至內容

GIF

出自Taiwan Tongues 客語維基
這是此頁批准,以及是最近的修訂。

圖像互相換个格式(英語:Graphics Interchange Format,簡稱GIF)係一種點陣圖形檔案个格式,以八位元色(就愛兩百五十六種个色)重現真彩色个圖像。佢實際上係一種壓縮文件,採用著 LZW 壓縮演算法進行編碼,有效个減少畫圖在網路項傳輸个時間。佢係目前全球資訊網當多應用个網路傳輸圖像格式之一。史蒂芬 ・ 威爾海特(Stephen Wilhite)在 Compuserve 公司做事个時節,帶領工程團隊發明 GIF 檔,憑等體積細、成像相對較清楚个優點,十分適合早期網路頻寬細个環境,今晡日網路使用者會摎GIF 檔用在創作,變成用來做網路撞走个格式之一,威爾海特也在二零一三年得著威比獎(The Webby Award)終身成就獎。講著「GIF」仰吔唸呢,當多人都唸做「gift」( [ɡɪf])个音,毋過佢本人正名應該唸「Jif」([d͡ʒɪf])共樣个音。

歷史

GIF 格式自一九八七年由 CompuServe 公司引入後,因為佢个體積細而成像相對清楚,特別適合在初期慢速个網路,還過從此當受著歡迎。佢用个無失真壓縮技術,淨愛圖像毋多兩百五十六色,做得減少檔案个大細,又保持成像个品質。(當然啊,這下也有一息仔 _ hack _技術,在一定个條件下克服兩百五十六色个限制)毋過,兩百五十六色个限制大大局限了 GIF 檔案个應用範圍,像係彩色相機這兜。(當然採用著無失真壓縮技術彩色相機相片也毋適合通過著網路傳輸。)另外一方面,在高彩圖片頂項有無俗表現个 JPEG 格式嗄在簡單个折線上效果毋當得。故所 GIF 格式普遍適用在圖表,按鈕這兜淨需要少量色目个圖像(像係烏白相片)。

GIF 格式个原始版本安到八十七 a。一九八九年,CompuServe 發布了一個名仔安到八十九 a个增強版本,在這版本當中,為 GIF 文件擴大了圖形控制區塊、還有備註、說明、應用程式个介面這四個區塊,還有提供了對透明色摎多影格動畫个支援。這下𫣆俚一般所講个 GIF 動畫都係講八十九 a 个格式。Netscape 一九九零年提出吔 Netscape Application Block,定義了一個動畫應該循環幾多擺抑係毋係應該無限制次地來放送,這造成吔 GIF 動畫个流行。重複動畫个功能第一擺出現在嗬 Netscape Navigator 二側零版本當中,然後漸漸仔來支援其他瀏覽器,雖然大部分个看法器都𢯭手,毋過嚴條來講毋係八十九 a規範个一部分。

二零一五年五月,Facebook 開始支援 GIF。

專利

在早期,GIF 所用个 LZW 壓縮演算法係 CompuServe 開發个一種免費演算法。毋過分當多軟體開發商感覺著意外个係,GIF 檔案所採用个壓縮演算法忽然間成了 Unisys 這公司个專利。根據 Unisys 公司講,佢這兜已經註冊了 LZW 中个W部分。係愛開發生成(也係顯示)GIF 檔案个程式,斯愛摎該公司支付版稅。在專利失效進前有引起部份開放原始碼社群發起「Burn all GIFs」个運動抵制使用 GIF 格式。故所,大家開始尋求一種新技術,減少開發成本。佢一方面滿足了市場對過較少个法規限制个需要,另外一方面也帶來還較少个技術上个限制,像係色目个數量這兜。

在二零零三年六月二十號,LZW 演算法在美國个專利權已經到期定定無效。在歐洲、日本摎加拿大个專利權也已經分別在二零零四年个六月十八、六月二十還過七月初七到期失效。摎 GIF 相關个專利在二零零六年八月十一過期。就算恁呢,PNG 檔案格式靠等佢个技術上个優勢,已經係啊身於網路上第三廣泛个應用格式。

特性

  • 優秀个壓縮演算法分佢在一定程度項保證圖像品質个同時將體積變到當細。
  • 做得插入多影格,來實現動畫个效果。
  • 做得設定透明色以產生物件浮現在背景之上个效果。
  • 因爭係用吔八個元壓縮,最多只能夠處理兩百五十六種个色,所以毋好應用在真彩色个圖片。

技術簡介

GIF 主要係為資料流來設計个一種傳輸格式啦,毋係用來做檔案个儲存格式。佢有順序組織个形式毋係隨機組織个形式。

GIF 有五個主要部分以固定順序出現,所有部分都係由一個抑係幾下个區塊(block)組成。每一個塊由第一個位元組當中个標識碼抑係特徵碼標識。這兜部分个順序為:頭那垤、邏輯螢幕描述塊、做得選个「全域」色彩表塊(調色盤)、 各圖像資料塊(抑係專用个塊)還有尾哦(結束碼)。 下背係這兜部分个內容:

  • 起頭為一個區塊, 佢辨識資料流做 GIF,還指示愛仰仔解釋後背个資料所需要个最早版本个 GIF 解碼程式(八十七 a 抑係八十九 a)。
  • 邏輯程式講一個塊定義吔:所有後背圖像个圖像平面个大細、縱橫尺寸比還過色彩深度(佢像產生圖像个監視器螢幕)。 佢還指明跈等个係毋係「全域」色彩表。
  • 全域色彩表(係有存在)構成一個二十四個元 RGB 元組个調色盤(每一種底色係一隻位元組)。 像係果後背蓋像無其他自家个「局部」調色盤,恁仔全域色表就係預設調色盤。
  • 後背資料來做「圖形」抑係「專用」塊出現。圖形塊典型个包含一個抑係幾下個點陣圖像,也可能係用蓋等个文字。專用个塊或者包含一隻專用應用程式碼,或者包含一句做毋得列印个注釋。
  • 最後个尾塊指示值係三 B(十六進位)个一隻位元組,表示資料流已經結束。

注意哦:檔案中个 GIF 資料流可能根本就無包含任何點陣圖資料,這時,佢淨係愛傳輸全地色彩表,做為無自家調色盤个後續資料流个預設調色盤。

參考文獻

外部連結

  • The GIFLIB project
  • spec-gif 八十九 a . txt GIF 八十九 a specification on 全球資訊網協會
  • GIF 八十九 a specification reformatted into HTML
  • LZW and GIF explained
  • Animated GIFs : a 六 -minute documentary produced by Off Book ( web series )