SRAA by NVIDIA

http://research.nvidia.com/publication/subpixel-reconstruction-antialiasing

“Subpixel Reconstruction Antialiasing”

Matthäus G. Chajdas (Technische Universität München and NVIDIA), Morgan McGuire (NVIDIA), David Luebke (NVIDIA), in i3D, February 2011

Subpixel Reconstruction Antialiasing (SRAA) combines single-pixel (1x) shading with subpixel visibility to create antialiased images without increasing the shading cost.

SRAA targets deferred-shading renderers, which cannot use multisample antialiasing.

SRAA operates as a post-process on a rendered image with superresolution depth and normal buffers, so it can be incorporated into an existing renderer without modifying the shaders.

In this way SRAA resembles Morphological Antialiasing (MLAA), but the new algorithm can better respect geometric boundaries and has fixed runtime independent of scene and image complexity.

SRAA benefits shading-bound applications.

For example, our implementation evaluates SRAA in 1.8 ms (1280×720) to yield antialiasing quality comparable to 4-16x shading.

Thus SRAA would produce a net speedup over supersampling for applications that spend 1 ms or more on shading; for comparison, most modern games spend 5-10 ms shading.

We also describe simplifications that increase performance by reducing quality.

所以SRAA算是MLAA的改良版、可以在deferred shading等無法使用MSAA的場合取代SSAA。

速度也較快,可以在Shader吃重的場合透過置換的方式提供可接受的AA品質,帶來加速。

在〈SRAA by NVIDIA〉中有 13 則留言

  1. 不知道SRAA是軟體solution還是半軟半硬的solution…
    SCE的NGP發表了,DX10.1的SGX543
    PowerVR又拿下一個超大客戶.
    有Apple+SCE,就鞏固了手機和掌機界未來幾年
    PowerVR有其它廠商無法挑戰的市佔率.
    NGP的規格看來是把Iphone4/5當對手.
    Market直接購買下載是勢在必行.
    但console的授權金機制很難允許像
    AngryBirds這種小遊戲,
    因此NGP的Market不會有上萬軟體可選.
    如何讓market看來更豐富…
    不知道有沒有辦法把PSP軟體用emu跑….
    支援3G這點有點微妙,手機裝Sim卡跑3G是理所當然,
    但掌機裝Sim卡有多少比例的接受度還未知…
    (3DS則是把NDS當主要對手)

  2. 話說NGP的主/繪圖記憶體配置於流言中好像是512MB/128MB,
    這如果是PS3的記憶體規格就好了XD
    不過有流言又說NGP可執行Android,
    如果真是如此,
    那NGP乾脆也出個有Phone功能版,
    其記憶體乾脆也上到1GB,
    以如此姿態應該也會吃到自家的SE市場了吧XD
    真不知這流言是如何產生的…。
    說實在的,
    NGP的規格怎麼看,
    好像都不把N3DS放在眼裡,
    反而如waffenss兄所說的,
    它的目標是iPhone4/5,
    這樣會不會還是很難從NDS手中搶走市場?

  3. SRAA 的實際論文要等到 i3D 完後才會開放下載,所以現在還看不到。不過,從他的 abstract 來看,它應該是一個軟體的技巧。簡單的說,在一個 deferred shading 上,它透過 MSAA 產生一個高解析度的 depth buffer 和 normal buffer,最後在 lighting 和 color pass 時,再降到螢幕解析度。所以,相對於 MLAA 利用周圍 pixel 的顏色來判斷「邊」的形狀和方向,它直接利用高解析度的 depth 和 normal 來進行,因此理論上可以比較準確,而且需要花的工夫也比較少。當然,他的代價是它和 MSAA 一樣,會需要比較大的記憶體空間。
    另外,這個方法不太可能在 driver 直接支援,因為它牽扯到修改 engine 著色的方式。這應該是一個一般遊戲能夠去支援的功能(但在 PC 上可能需要 DX10.1)。

  4. 有點不太理解為何SRAA需要花的功夫比較少.
    先透過MSAA產生高解析度的depth和normal.
    這一開始就已經使用了幾倍的記憶體和頻寬了.
    而以上只是Deferred Render的前期資料準備階段.
    實際上以軟體對整個畫面跑SRAA的時候,
    畢竟看來它是從MLAA的Pixel精度的Source增大
    到SubPixel等級的精度了……
    是比原本MLAA還多處理幾倍的像素
    使用多幾倍的頻寬和ALU power.
    也就是說SRAA應該會比MLAA或MSAA都還要費事…
    速度較快這一點是蠻令人懷疑的.
    畢竟MLAA之所以較MSAA快,
    就是因為只處理Pixel而沒有SubPixel.
    MLAA在準備depth和normal的時候,可不用管SubPixel,
    就已經省了幾倍的頻寬和記憶體.
    現在SRAA可以說是整合了MSAA和MLAA兩種特性.
    但問題也就很明顯,無論是記憶體佔用量,頻寬,shader
    運算量,全都飆高幾倍.
    畫質可以預期會更好,但速度大概難救….
    由於要用MSAA,應該很難說是不是純軟體solution,
    就AA功能本身是純軟體運算.
    但卻需要硬體MSAA單位來準備Buffer資料.

  5. 有點不太理解為何SRAA需要花的功夫比較少.
    先透過MSAA產生高解析度的depth和normal.
    這一開始就已經使用了幾倍的記憶體和頻寬了.
    而以上只是Deferred Render的前期資料準備階段.
    實際上以軟體對整個畫面跑SRAA的時候,
    畢竟看來它是從MLAA的Pixel精度的Source增大
    到SubPixel等級的精度了……
    是比原本MLAA還多處理幾倍的像素
    使用多幾倍的頻寬和ALU power.
    也就是說SRAA應該會比MLAA或MSAA都還要費事…
    速度較快這一點是蠻令人懷疑的.
    畢竟MLAA之所以較MSAA快,
    就是因為只處理Pixel而沒有SubPixel.
    MLAA在準備depth和normal的時候,可不用管SubPixel,
    就已經省了幾倍的頻寬和記憶體.
    現在SRAA可以說是整合了MSAA和MLAA兩種特性.
    但問題也就很明顯,無論是記憶體佔用量,頻寬,shader
    運算量,全都飆高幾倍.
    畫質可以預期會更好,但速度大概難救….
    由於要用MSAA,應該很難說是不是純軟體solution,
    就AA功能本身是純軟體運算.
    但卻需要硬體MSAA單位來準備Buffer資料.

  6. 小弟的想法是高解析度的depth和normal的準備是類似於MSAA處理過程中的一部分手法,
    而不是用MSAA的硬體弄到這高解析度的depth和normal?
    而會快於MSAA是一定的,
    因為在Deferred Render下,
    MSAA是真的較慢。
    但應該沒有MLAA還快吧?
    因為SRAA的高解析度depth、normal的解析度較高,
    所以處理的量也較多吧?
    但hotball大又說判斷”邊”的方式較簡單,
    所以說SRAA是簡化了一點程式碼,
    增加了大量的記憶體使用量。

  7. 話題好像多一個NGP….
    PowerVR拿下這兩個客戶真的整個鞏固江山。
    EMU看起來也沒問題了、PS3軟體相對移植也不難,
    看起來比原先預期的要豐富不少。

  8. 這個方法要利用到 MSAA 硬體才會有幫助,因為這樣才能用到 MSAA 的 Z buffer compression 等特性。如果是自己去做,一方面無法做到 rotation grid,另一方面也無法利用到 Z buffer compression,那反而多花記憶體頻寬。
    MLAA 會慢的主要原因,是它必須要每個 pixel 去判斷是不是邊,若是邊還需要判斷邊的「方向」才能做出好的 supersampling 效果,而這些都是要看它鄰近的 pixel 才能知道(而且看愈多 pixel 效果愈好)。所以雖然看起來它的記憶體使用量不多,但是它在 shader 運算上需要的資源是不少的。SRAA 的話,它只需要由 Z buffer 去判斷是不是邊(如果一個 pixel 的四個 subsample 的 Z 值都屬於同一個 pixel 那一定不是邊),然後再用 normal buffer 做一個簡單的「平均」動作(可以在 lighting pass 時,簡單計算出四個 normal 的平均值後再計算光線,或是四個 normal 分別計算光線再平均),shader 的複雜度當然就會比較低。
    基本上來說 SRAA 主要的重點還是要省下 color pass 和 lighting pass 的 shader 計算量。這是因為在一個 deferred shader 裡,這通常都是最花資源的地方。因此,利用 MSAA 可以省下一些 shading 運算資源,通常來說是值得的。

  9. 後藤
     ハイプ(はったり)を排除すると、NGPのパフォーマンス自体は、騒がれるほど高くはない(キリッ)
    善司
     NGPのシェーダーパフォーマンスは相当低い(笑)

  10. >>NGPのシェーダーパフォーマンスは相当低い
    畢竟是給手機上用的架構….
    就算是SGX54xMP的每個USSE可算2個flops以上.
    4~8組也不過8~16個flops.乘上不高的時脈.
    也就是Shader性能是Xbox1.5等級.
    只是規格有達到DX10.1.
    每Pixel能用的ALU指令數少的可憐
    大部份的運用會是利用Shader來提升繪圖效率.
    而非實作PS3等級的效果運算.
    那大概是從PC變成平板的性能差距%.
    從PS3的移值要有所有Shader效果要砍掉重做的覺悟.
    (GPGPU大概也毫無實用性)
    NGP跟3DS相比性能有不小差距,但和PS3差距更遠….

  11. HTC日前投資OnLive 4000萬美元.
    這表示行動雲端化遊戲應該幾年內有機會成熟.
    CPU和GPU運算都在雲端算完,並且持續透過LTE
    傳輸畫面到行動裝置.行動裝置就不需要高性能高耗電.
    應該是可以玩部份不怕latency的PC/console game.
    雖然中華電信MOD的Hii體感遊戲就已經在做了,
    但onlive的遊戲品質和規模應該是完全不同等級的體驗…
    要在耗電量500ma以下的掌機上
    用ARM+GPU達到PS3等級的即時畫面,
    起碼還要好幾年, 靠OnLive可能是條捷徑.
    對遊戲開發者是否是好事就不知道了……

  12. 這讓我想到SGX535宣佈支援OpenCL 1.0….
    當然派上多少用場雖然很有疑問,但是大概還是比NEON要好上一點(?)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料