APNG(動畫可攜式網路圖形)是一種檔案格式,它擴充了廣泛使用的 PNG(可攜式網路圖形)格式的功能,以支援動畫。它被建立出來,目的是為了提供一種更有效率且更易於取得的替代方案,用於在網路上傳遞動畫影像,取代 GIF(圖形交換格式)。APNG 保留了 PNG 的無失真壓縮和透明度功能,同時引入了儲存多個畫格的能力,允許建立流暢、高品質的動畫。
APNG 格式建立在現有的 PNG 結構之上,引入 了專門為動畫設計的新區塊類型。APNG 中使用的主要區塊是 `acTL`(動畫控制)區塊和 `fcTL`(畫格控制)區塊。`acTL` 區塊置於檔案的開頭,包含有關動畫整體的資訊,例如畫格數和動畫應循環播放的次數。`fcTL` 區塊出現在每個畫格之前,並提供特定於畫格的詳細資訊,包括畫格的尺寸、位置和延遲時間。
APNG 的主要優點之一是它與標準 PNG 檢視器向後相容。APNG 檔案以與一般 PNG 檔案相同的簽章和關鍵區塊開頭,允許它在不支援 APNG 的應用程式中顯示為靜態影像。這確保了使用舊版瀏覽器或影像檢視器的使用者仍然可以檢視動畫的第一個畫格,在各種平台上維持相容性。
APNG 中的動畫處理基於一系列畫格,每個畫格由一個獨立的影像表示。第一個畫格通常是一個完全渲染的影像,而後續的畫格可以是完整畫格或僅包含與前一個畫格變更的部分畫格。這種方法允許更有效率的儲存和更快的載入時間,因為不變的像素不需要為每個畫格重新繪製。
要建立一個 APNG 檔案,可以使用影像編輯工具或專門的軟體來組裝個別畫格並產生必要的區塊。畫格通常會匯出為獨立的 PNG 檔案,然後使用 APNG 編碼器將它們合併成一個單一的 APNG 檔案。編碼器會分析畫格,決定最佳的編碼方法(完整畫格或部分畫格),並產生 `acTL` 和 `fcTL` 區塊來控制動畫播放。
當一個 APNG 檔案載入到相容的檢視器中時,檢視器會讀取 `acTL` 區塊來決定動畫屬性,然後依序處理畫格。與每個畫格關聯的 `fcTL` 區塊提供了必要的資訊來正確渲染畫格,包括它的持續時間和在畫布中的位置。檢視器會以指定的順序顯示畫格,使用延遲時間來控制動畫速度和循環行為。
APNG 比傳統的 GIF 動畫提供了多項優點。它支援 24 位元色彩和 8 位元透明度,與 GIF 受限的 256 色調色板相比,允許更鮮豔且更詳細的圖形。APNG 也提供了更好的壓縮,在等同的影像品質下產生更小的檔案大小。此外,APNG 允許變動的畫格速率,能夠更精確地控制動畫的時序和流暢度。
然而,APNG 確實有一些限制。儘管它受到 Firefox、Chrome 和 Safari 等主要網路瀏覽器的支援,但它的採用率不如 GIF。一些舊版的瀏覽器和影像檢視器可能沒有內建支援 APNG,需要使用者安裝擴充功能或使用替代軟體來檢視動畫。此外,與 GIF 相比,建立 APNG 檔案可能會更複雜,因為它涉及處理多個畫格和了解特定的區塊結構。
儘管有這些限制,APNG 近年來由於其優異的影像品質、更小的檔案大小,以及網路瀏覽器和影像編輯工具的支援度越來越高而獲得普及。它已成為在網站上傳遞高品質動畫的首選,特別是對於需要透明度和流暢播放的短循環動畫。
總之,APNG 是一種強大且多功能的檔案格式,它擴充了 PNG 的功能以支援動畫。透過利用現有的 PNG 結構並引入新的區塊進行動畫控制,APNG 提供了一個比 GIF 更有效率且視覺上更吸引人的替代方案。儘管它的支援度可能不如 GIF 廣泛,但網路瀏覽器對 APNG 的採用度越來越高,以及對高品質動畫的需求不斷增加,使其成為設計師和開發人員在網路上建立引人入勝且互動式內容的寶貴工具。
JPEG(聯合圖像專家小組)圖像格式,通常稱為 JPG,是一種廣泛使用的有損壓縮數位影像方法,特別是針對數位攝影產生的影像。壓縮程度可以調整,允許在儲存大小和影像品質之間進行可選擇的權衡。JPEG 通常可以達到 10:1 的壓縮比, 而影像品質幾乎沒有明顯損失。
JPEG 壓縮用於多種影像檔案格式。JPEG/Exif 是數位相機和其他攝影影像擷取裝置最常用的影像格式;與 JPEG/JFIF 一起,它是網際網路上儲存和傳輸攝影影像最常見的格式。這些格式變體通常沒有區別,而僅稱為 JPEG。
JPEG 格式包含多種標準,包括 JPEG/Exif、JPEG/JFIF 和 JPEG 2000,JPEG 2000 是一種較新的標準,提供更好的壓縮效率和更高的運算複雜度。JPEG 標準很複雜,有各種部分和設定檔,但最常用的 JPEG 標準是基線 JPEG,這是大多數人在提到「JPEG」影像時所指的。
JPEG 壓縮演算法的核心是一種基於離散餘弦轉換 (DCT) 的壓縮技術。DCT 是一種與離散傅立葉轉換 (DFT) 類似的傅立葉相關轉換,但僅使用餘弦函數。使用 DCT 是因為它具有將大部分訊號集中在頻譜的低頻率區域的特性,這與自然影像的特性密切相關。
JPEG 壓縮過程包含幾個步驟。最初,影像會從其原始色彩空間(通常為 RGB)轉換為稱為 YCbCr 的不同色彩空間。YCbCr 色彩空間將影像分為亮度元件 (Y),代表亮度等級,以及兩個色度元件 (Cb 和 Cr),代表色彩資訊。這種分離是有益的,因為人眼對亮度的變化比對色彩更敏感,允許更積極地壓縮色度元件,而不會顯著影響感知的影像品質。
在色彩空間轉換後,影像會分割成區塊,通常大小為 8x8 像素。然後會個別處理每個區塊。對於每個區塊,會套用 DCT,將空間域資料轉換為頻率域資料。此步驟至關重要,因為它使影像資料更易於壓縮,因為自然影像往往具有比高頻率元件更重要的低頻率元件。
套用 DCT 後,會對產生的係數進行量化。量化是將一大組輸入值對應到較小的一組值的過程,有效地減少儲存它們所需的位元數。這是 JPEG 壓縮中損失的主要來源。量化步驟由量化表控制,該表決定對每個 DCT 係數套用多少壓縮。透過調整量化表,使用者可以在影像品質和檔案大小之間進行權衡。
量化後,會透過之字形掃描將係數線性化,按遞增頻率對它們排序。此步驟很重要,因為它將較可能重要的低頻率係數和量化後較可能為零或接近零的高頻率係數分組在一起。此排序有助於下一個步驟,即熵編碼。
熵編碼是一種無損壓縮方法,套用於量化的 DCT 係數。JPEG 中最常用的熵編碼形式是霍夫曼編碼,儘管標準也支援算術編碼。霍夫曼編碼透過將較短的碼分配給較頻繁的元素,將較長的碼分配給較不頻繁的元素來運作。由於自然影像在量化後往往有許多零或接近零的係數,特別是在高頻率區域,因此霍夫曼編碼可以顯著減少壓縮資料的大小。
JPEG 壓縮過程中的最後一步是將壓縮資料儲存在檔案格式中。最常見的格式是 JPEG 檔案交換格式 (JFIF),它定義如何表示壓縮資料和相關的元資料,例如量化表和霍夫曼碼表,在一個可以由各種軟體解碼的檔案中。另一種常見的格式是可交換影像檔案格式 (Exif),它由數位相機使用,並包含相機設定和場景資訊等元資料。
JPEG 檔案也包含標記,它們是定義檔案中特定參數或動作的碼序列。這些標記可以表示影像的開始、影像的結束、定義量化表、指定霍夫曼碼表等等。標記對於正確解碼 JPEG 影像至關重要,因為它們提供從壓縮資料重建影像所需的資訊。
JPEG 的主要特點之一是它支援漸進式編碼。在漸進式 JPEG 中,影像會以多重傳遞編碼,每次傳遞都會改善影像品質。這允許在檔案仍在下載時顯示影像的低品質版本,這對於網路影像特別有用。漸進式 JPEG 檔案通常比基線 JPEG 檔案大,但載入期間的品質差異可以改善使用者體驗。
儘管 JPEG 廣泛使用,但它有一些限制。壓縮的有損性質可能會導致偽影,例如區塊化(影像可能顯示出可見的正方形)和「振鈴」(邊緣可能伴隨著雜散振盪)。這些偽影在較高的壓縮等級下更為明顯。此外,JPEG 不適合具有銳利邊緣或高對比文字的影像,因為壓縮演算法可能會模糊邊緣並降低可讀性。
為了解決原始 JPEG 標準的一些限制,開發了 JPEG 2000。JPEG 2000 提供了多項改進,包括更好的壓縮效率、支援無損壓縮,以及有效處理更廣泛的影像類型。然而,與原始 JPEG 標準相比,JPEG 2000 尚未廣泛採用,這主要是由於運算複雜度增加以及某些軟體和網路瀏覽器缺乏支援。
總之,JPEG 影像格式是一種複雜但有效的攝影影像壓縮方法。它被廣泛採用是因為它在影像品質和檔案大小之間取得平衡的靈活性,使其適用於各種應用,從網路圖形到專業攝影。儘管它有缺點,例如容易產生壓縮偽影,但它易於使用且支援各種裝置和軟體,使其成為當今最受歡迎的影像格式之一。