Nvidia minggu ini memperkenalkan metode kompresi tekstur baru yang memberikan resolusi empat kali lebih tinggi daripada metode Block Truncation Coding (BTC, BC) tradisional sambil memiliki persyaratan penyimpanan yang serupa. Konsep inti dari pendekatan yang diusulkan adalah untuk mengompresi beberapa tekstur material dan rantai mipmap mereka secara kolektif dan kemudian mendekompresinya menggunakan jaringan saraf yang dilatih untuk pola tertentu yang didekompresi. Secara teori, metode ini bahkan dapat memengaruhi arsitektur GPU di masa mendatang. Namun, untuk saat ini metode tersebut memiliki keterbatasan.
Persyaratan Baru
Kemajuan terbaru dalam rendering real-time untuk video game telah mendekati kualitas visual film karena penggunaan teknik seperti bayangan berbasis fisik untuk pemodelan bahan fotorealistik, ray tracing, path tracing, dan denoising untuk penerangan global yang akurat. Sementara itu, teknik tekstur belum benar-benar maju dengan kecepatan yang sama terutama karena metode kompresi tekstur pada dasarnya tetap sama seperti di akhir 1990-an, itulah sebabnya dalam beberapa kasus banyak objek terlihat buram dalam jarak dekat.
Alasannya karena GPU masih mengandalkan metode kompresi tekstur berbasis blok. Teknik-teknik ini memiliki implementasi perangkat keras yang sangat efisien (karena perangkat keras dengan fungsi tetap untuk mendukungnya telah berevolusi selama lebih dari dua dekade), akses acak, lokalitas data, dan kualitas nyaris tanpa kerugian. Namun, mereka dirancang untuk rasio kompresi sedang antara 4x dan 8x dan dibatasi maksimal 4 saluran. Perender real-time modern seringkali membutuhkan lebih banyak properti material, yang memerlukan banyak tekstur.
Metode Nvidia
Di sinilah Nvidia Kompresi Neural Acak-Akses dari Tekstur Material (terbuka di tab baru) (NTC) ikut berperan. Teknologi Nvidia memungkinkan dua tingkat detail tambahan (teksel 16x lebih banyak, sehingga resolusi empat kali lebih tinggi) dengan tetap mempertahankan persyaratan penyimpanan yang serupa dengan metode kompresi tekstur tradisional. Ini berarti bahwa tekstur terkompresi dengan pengoptimalan per-bahan dengan resolusi hingga 8192 x 8192 (8K) kini dapat dilakukan.
Untuk melakukannya, NTC mengeksploitasi redudansi secara spasial, lintas level mipmap, dan lintas saluran material yang berbeda. Hal ini memastikan bahwa detail tekstur dipertahankan saat pemirsa berada di dekat objek, sesuatu yang tidak dapat diaktifkan oleh metode modern.
Nvidia mengklaim bahwa tekstur NTC didekompresi menggunakan perangkat keras penggandaan matriks seperti inti tensor yang beroperasi dengan cara kooperatif SIMD, yang berarti bahwa teknologi baru ini tidak memerlukan perangkat keras tujuan khusus dan dapat digunakan di hampir semua GPU Nvidia modern. Tapi mungkin kekhawatiran terbesar adalah bahwa setiap tekstur memerlukan jaringan sarafnya sendiri yang dioptimalkan untuk didekompresi, yang memberi beban tambahan pada pengembang game.
Nvidia mengatakan bahwa kualitas tekstur yang dihasilkan pada bitrate rendah yang agresif ini dikatakan sebanding atau lebih baik daripada standar kompresi gambar terbaru, seperti AVIF dan JPEG XL, yang tidak dirancang untuk dekompresi waktu nyata dengan akses acak.
Keuntungan dan Kerugian Praktis
Memang, gambar yang diperlihatkan oleh Nvidia dengan jelas menunjukkan bahwa NTC lebih baik daripada teknologi tradisional berbasis Block Coding. Namun, Nvidia mengakui bahwa metodenya lebih lambat daripada metode tradisional (dibutuhkan GPU 1,15 md untuk merender gambar 4K dengan tekstur NTC dan 0,49 md untuk merender gambar 4K dengan tekstur BC), tetapi memberikan 16x lebih banyak texel meskipun dengan filter stokastik .
Meskipun NTC lebih intensif sumber daya daripada pemfilteran tekstur yang dipercepat perangkat keras konvensional, hasilnya menunjukkan bahwa NTC memberikan kinerja tinggi dan cocok untuk rendering waktu nyata. Selain itu, dalam adegan kompleks yang menggunakan perender berfitur lengkap, biaya NTC dapat diimbangi sebagian dengan pelaksanaan tugas lain secara bersamaan (mis., ray tracing) karena kemampuan GPU untuk menyembunyikan latensi.
Sementara itu, rendering dengan NTC dapat mempercepat arsitektur perangkat keras baru, meningkatkan jumlah unit perkalian matriks khusus yang mungkin digunakan, meningkatkan ukuran cache, dan penggunaan register. Sebenarnya, beberapa pengoptimalan dapat dilakukan pada level yang dapat diprogram.
Nvidia juga mengakui bahwa NTC bukanlah metode kompresi tekstur yang sepenuhnya lossless dan menghasilkan degradasi visual pada bitrate rendah dan memiliki beberapa keterbatasan, seperti sensitivitas terhadap korelasi saluran, persyaratan resolusi yang seragam, dan keuntungan terbatas pada jarak kamera yang lebih besar. Selain itu, keuntungan sebanding dengan jumlah saluran dan mungkin tidak terlalu signifikan untuk jumlah saluran yang lebih rendah. Selain itu, karena NTC dioptimalkan untuk tekstur material dan selalu mendekompresi semua saluran material, NTC berpotensi tidak cocok untuk digunakan dalam konteks rendering yang berbeda.
Meskipun keunggulan NTC adalah ia tidak menggunakan perangkat keras pemfilteran tekstur fungsi tetap untuk menghasilkan hasil yang superior, ini juga merupakan kelemahan utamanya. Biaya penyaringan tekstur mahal secara komputasi, itulah sebabnya untuk saat ini penyaringan anisotropik dengan NTC tidak layak untuk rendering waktu nyata. Sementara itu, pemfilteran stokastik dapat menyebabkan kedipan.
Namun terlepas dari keterbatasannya, kompresi beberapa saluran dan level mipmap NTC bersama-sama menghasilkan hasil yang melebihi standar industri. Peneliti Nvidia percaya bahwa pendekatannya membuka jalan bagi visual berkualitas sinematik dalam rendering waktu nyata dan praktis untuk aplikasi grafis yang dibatasi memori. Namun, ini memperkenalkan overhead pengaturan waktu yang sederhana dibandingkan dengan algoritme BTC sederhana, yang memengaruhi kinerja.