悲報, GIF 之父因新冠去世

語言: CN / TW / HK

今天下午二狗子照常上班摸魚的時候,突然看到了一則消息,消息説 GIF 的發明人因新冠去世了。作為一個自詡理性的互聯網人,二狗子第一反應是看到了一個離譜謠言,可是查看了多方消息後,二狗子難過地發現這是真的。

斯蒂芬·威爾海特就職於 CompuServe(全球第一家網絡服務提供商),當時這家公司想要在網上展現彩色天氣圖等信息,但因受限於網絡帶寬而束手無策。斯蒂芬·威爾海特瞭解一些壓縮技術,於是他參與了創造 GIF 格式的工作。在之後的1978 年,CompuServe 公司推出 GIF 格式,誕生了世界上第一張動圖。

GIF 全稱 Graphics Interchange Format,即圖形交換格式,以8位色(即256種顏色)重現真彩色的圖像。它有效地減少了圖像文件在網絡上傳輸的時間,是目前互聯網廣泛應用的網絡傳輸圖像格式之一。

除去 GIF,目前互聯網廣泛使用的圖像格式還有以下種類:

  • JPEG

  • png

  • WebP

GIF

前面我們也提到了一點關於 GIF 的介紹,作為它最大的,與 JPEG 和 PNG兩種格式不同的特點,就是 GIF 是“能動”的。我們通常將 GIF 用於從圖像文件創建動畫,可以通過在壓縮中合併無損質量,無損傳輸和存儲這些文件,並且對圖像庫的存儲影響較小。

GIF 是無損的,採用 GIF 格式保存圖片不會降低圖片質量。得益於數據的壓縮,文件體積小,也是 GIF 格式的優點。此外,它還具有支持動畫以及透明背景。

GIF 格式適用於對色彩要求不高同時需要文件體積較小的場景,比如企業 Logo、線框類的圖等。因其體積小的特點,現在 GIF 也已經被廣泛應用在各類網站中。

JPEG

JPEG 全稱 Joint Photographic Expert Group,即聯合照片專家組。是由國際標準化組織(ISO)制定的面向連續色調靜止圖像的一種壓縮標準。它是我們常説的 JPG 的正式擴展名,那為什麼會出現 JPG 這種説法呢?這是因為 DOS、Windows 95 等早期系統採用的 8.3 命名規則只支持最長 3 字符的擴展名,所以為了兼容性使用了 .jpg 的形式。而後來所有的 apple 旗下機體都不限制擴展名長度,讓 JPEG 能夠完整出現。不過因為大家已經喜歡了 JPG 的喊法,所以現在 JPG 也依然很流行。

JPEG 圖片格式的設計目標,是在不影響人類可分辨的圖片質量的前提下,儘可能壓縮文件大小。這意味着JPEG 去掉了一部分圖片的原始信息,也就是進行了有損壓縮。JPEG 的圖片的優點,是採用了直接色,得益於更豐富的色彩,JPEG 非常適合用來存儲照片,用來表達更生動的圖像效果,比如顏色漸變。

然而,JPEG 不適合用來存儲企業 Logo、線框類的圖。因為有損壓縮會導致圖片模糊,而直接色的選用,又會導致圖片文件體積更大。

PNG

PNG 全稱 Portable Network Graphics,即可移植網絡圖形。是 1994 年由萬維網聯盟(W3C)的一個工作組開發的,當初的開發目的是為 GIF 格式創建一種現代的、免費的替代方案。

PNG 採用無損壓縮算法的位圖格式,文件後綴名為 .png。使用的是從 LZ77 派生的無損數據壓縮算法,一般應用於 JAVA 程序、網頁中,它的壓縮比高,生成文件體積小。

PNG 格式是我們在數字設計項目中最常使用的格式,通常比其他格式的文件大小要大。但是它保留了硬性邊緣效果,且可以處理大量顏色。另外 PNG 有個比較有趣的特性,那就是支持透明背景,因此大多數網站PNG 格式作為 Logo 。

看到這裏相信大家都發現了三者的一點共同點,它們都提到了壓縮和損壞,有的是有損的,有的是無損的。難道所有的圖片都必須壓縮嗎?其實是可以不壓縮的,比如 BMP 就可以不壓縮存儲。但是一兩張圖還可以這麼做,如果圖片多起來那對於存儲和傳輸就造成了極大的壓力。

因此如何在保證圖片質量不變的情況下,壓縮圖片進而節省流量帶寬,讓傳輸更快,帶來更好的觀看體驗就變得重要起來。

但是作為傳統的圖片格式 JPEG,PNG,GIF 等其實已經沒有很大的優化空間了,那唯一剩下的道路就是發掘一種新的圖片格式,或者壓縮格式來解決這個問題,WebP 應運而生。

WebP

WebP 是 Google 於 2010 年提出了一種新的圖片壓縮格式,目的就是為 Web 上的圖片資源提供卓越的有損、無損壓縮。在與其他格式同等質量指數下提供更小,更豐富的圖片資源,以便資源在 Web 上訪問傳輸。

WebP 圖片格式來源於 VP8 視頻編解碼器,也就是 WebM 視頻容器,是 WebM 視頻格式的單個壓縮框架。VP8 編解碼器的一個強大功能就是能夠進行幀內壓縮,或者更確切地説,能將視頻的每個幀都被壓縮,再壓縮幀與幀之間的差異。

作為專為壓縮而推出的格式,WebP 具有以下特性:

  • 有損壓縮:有損壓縮基於 VP8 關鍵編碼。VP8 是 On2 Technologies 創建的視頻格式,是 VP6 和 VP7 格式的後續版本。

  • 無損壓縮:採用預測變換,顏色變換,減去綠色,LZ77 反響參考等技術進行壓縮。

  • 透明度:8位 Alpha 通道對圖形圖像很有用。Alpha 通道可以與有損 RGB 一起使用。與其它格式圖片所不支持的 WebP 特有的功能。

  • 動畫:它支持真彩色動畫圖像,即可以支持動態圖( 類Gif 圖)

  • 元數據:它可能具有 EXIF 和 XMP 元數據

  • 顏色配置文件:它可能具有嵌入式 ICC 配置文件。

同時它的效果也是明顯的,以 JPEG 作為對比,當 WebP 將 JPEG 壓縮到相當於原圖 90% 質量時,圖片體積可以減少 50% 左右。當 WebP 將 JPEG 壓縮到相當於原圖 80% 質量時,圖片體積則減少了 60%~80%。

JPEG 與 WebP 同圖片壓縮對比

在 WebP 出現後,它憑藉自己優異的圖片壓縮性能,以及兼備無損和有損兩種壓縮算法,以及唯一可以對 GIF 進行壓縮的特點,迅速在各大網站、App 普及。那要如何才能讓圖片變成 WebP 格式呢?

最簡單的方法就是直接接入雲服務的圖片處理功能,比如又拍雲 WebP 自適應:

在後台一鍵開啟 WebP 自適應功能,即可通過 CDN 平台智能判斷客户端瀏覽器是否支持 WebP 解碼,如果支持則返回 WebP 格式圖片,如果不支持則會返回原圖,在客户端以及源站無需任何改動。

推薦閲讀

面試官問,Redis 是單線程還是多線程?我懵了

Golang 常見設計模式之裝飾模式