Google和Binomial發布了Basis的源代碼

基礎

最近,Google和Binomial宣布他們已經開放了 通用基礎是有效壓縮紋理和關聯的.basis文件格式的編解碼器 根據圖像和視頻分配紋理。 參考實現代碼是用C ++編寫的,並在Apache 2.0許可下提供。

通用基礎 補充了Draco 3D數據壓縮系統 並且您正在嘗試解決為GPU交付紋理的問題。

到目前為止,開發人員一直受制於以下兩種類型之間的選擇:允許高性能的低級格式(特定於GPU並佔用大量磁盤空間),以及其他允許您減小尺寸的格式,但不允許它們可以在性能上與GPU紋理競爭。

關於基礎

基礎通用格式 可以達到原生GPU紋理的性能水平,但可以提供更高的壓縮水平。

基本格式是一種中間格式,使用前, 提供對各種低級GPU紋理格式的快速轉碼 用於台式機系統和移動設備。

目前, 流支持以下格式 PVRTC1(4bpp RGB),BC7(6 RGB模式),BC1-5,ETC1和ETC2。 未來有望支持A模式STC(RGB或RGBA)和BC4為5/7 RGBA,PVRTC4為1bpp RGBA。

格式的紋理佔用的視頻內存少6至8倍, 它們比基於JPEG格式的典型紋理所需的數據少大約兩倍,並且比RDO模式下的紋理少10-25%。

例如,對於891 KB的JPEG圖像大小和1 MB的ETC1紋理,在最高質量模式下,基本格式的數據大小為469 KB。

將紋理放入視頻內存中時,JPEG和PNG格式的測試中使用的紋理佔用16 MB的內存,而基本格式的紋理在BC2,PVRTC1和ETC1中傳輸時需要1 MB的內存。 ,以及在AC4中傳輸時為7 MB。

二項式通用紋理

將現有應用程序轉換為Basis Universal的過程非常簡單:

只需使用項目提供的“ basisu”實用程序將現有的紋理或圖像重新編碼為新格式,然後選擇所需的質量級別即可。

同樣,在應用程序中,在代碼之前,必須初始化編碼器,該編碼器負責將中間格式轉換為當前與GPU兼容的格式。

同時 整個處理鏈中的圖像保持壓縮狀態, 包括以壓縮形式下載到GPU。 GPU不是主動重新編碼整個圖像,而是選擇性地僅解碼圖像的必要部分。

支持將紋理數組保存到單個文件 (多維數據集貼圖),批量紋理,紋理數組,mipmap級別,視頻流或任意紋理片段。

例如,可以將所有圖像打包到單個圖像系列文件中,以創建小型視頻或組合多個紋理,並對所有圖像進行重複使用,並對典型圖像模板進行重複數據刪除。

Google希望基礎成為標準

基本通用編碼器實現支持使用OpenMP的多線程編碼。 編碼器僅在單線模式下工作。

另外,瀏覽器解碼器 Web格式提供了Basis Universal,可以在基於WebGL的Web應用程序中使用。

最終, Google打算在所有主流瀏覽器中支持Basis Universal,並對其進行推廣 作為WebGL和未來WebGPU規範的可移植紋理格式,在概念上類似於Vulkan,Metal和Direct3D API 12。

可以看到,僅在GPU端就可以將視頻與其後處理集成在一起,這使Basis Universal成為在WebAssembly和WebGL中創建動態用戶界面的有趣解決方案,該解決方案可以同時以最小的負載鏡像數百個小型視頻。 CPU。

即使使用傳統的編解碼器在WebAssembly中使用SIMD指令的能力,仍無法達到這樣的性能水平,因此基於紋理的視頻可用於不適合普通視頻的區域。

來源: https://opensource.googleblog.com/


本文內容遵循我們的原則 編輯倫理。 要報告錯誤,請單擊 這裡.

成為第一個發表評論

發表您的評論

您的電子郵件地址將不會被發表。

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。