Hardware Image Compression
這篇文章探討了硬體影像格式創新緩慢的現狀,並深入分析了 Apple 的 Metal 破壞性壓縮、ARM 的 AFRC 以及 ImgTec 的 PVRIC4 等現代即時壓縮技術。
背景
本文探討了硬體影像壓縮技術的演進與現狀,特別是針對 GPU 驅動程式在渲染或上傳影像時動態執行的透明壓縮。作者指出,傳統硬體紋理格式如 BC6 或 BC7 的普及往往受限於硬體更新週期與標準化進程,而現代技術如 Apple 的 Lossy 壓縮、ARM 的 AFRC 與 ImgTec 的 PVRIC4,則為即時紋理壓縮提供了新的可能性,能有效平衡記憶體頻寬與影像品質。
社群觀點
針對硬體影像壓縮的應用價值,社群展開了深入討論。部分讀者質疑,既然遊戲紋理通常在開發階段就已壓縮,為何 GPU 還需要具備「壓縮」而非僅僅是「解壓縮」的能力。對此,專業開發者指出,許多紋理無法預先處理,例如從網路下載的 JPEG/AVIF 圖片、程序化生成的紋理、動態環境貼圖(Environment Maps)或水面反射等渲染至紋理(Render-to-Texture)的技術。在行動裝置記憶體價格攀升且頻寬受限的背景下,即時壓縮能顯著降低記憶體佔用,並透過減少資料傳輸量來提升效能與延長電池續航力。
然而,硬體格式的碎片化與驅動程式的不透明性是開發者面臨的主要痛點。有觀點認為,硬體壓縮技術往往陷入一種諷刺的循環:最需要這項技術的通常是頻寬受限的舊型 SoC,但這些技術卻僅出現在頻寬充足的旗艦裝置上。此外,驅動程式的行為往往不可預測,例如某些 API 雖宣稱支援多種壓縮率,但在實作中卻可能無視請求並強制採用預設值。這種不確定性使得開發者難以在單一程式碼庫中保證跨廠商的一致性,導致許多團隊仍傾向於使用 CPU 或 GPU 計算著色器(Compute Shader)編寫的軟體編碼器,以換取更高的掌控權。
此外,討論也觸及了技術普及的歷史阻礙。除了硬體開發週期長之外,專利問題也是導致紋理壓縮創新緩慢的主因。例如 S3TC(DXTn)格式的專利直到 2018 年才完全過期,這在過去二十年間嚴重限制了 OpenGL 等開放標準的實作。儘管目前有如 Basis Universal 這種優秀的跨平台儲存格式,但它仍需在執行時轉換為硬體支援的格式。對於開發者而言,在缺乏統一標準與可靠驅動支援的情況下,硬體壓縮目前仍被視為一種「錦上添花」的特性,而非可以完全依賴的基礎設施。
延伸閱讀
- Basis Universal: 由 Binomial 開源的跨平台紋理壓縮系統,可轉碼為多種 GPU 硬體格式。
- Spark: 作者開發的即時紋理壓縮函式庫,旨在提供比硬體內建方案更具可預測性的效能。
- VK_EXT_image_compression_control: Vulkan 的擴展協議,允許應用程式控制影像的固定速率壓縮。