翻譯:VESA Adaptive-Sync / AMD FreeSync / VRR 白皮書

譯者注

近兩年,VRR 技術又開始火了起來,無論是 DRM 驅動框架,還是 Xorg 、Sway (Wayland Compositor),都陸續添加了對 VRR 的支持。就連今年即將發佈的 AndroidR,也都原生支持了 VRR 的功能。其實 VRR 技術早在 2014 年就已經提出了,但一直用於 PC 平臺。隨着移動平臺 GPU 和 Display 硬件技術的不斷髮展,可支持的幀率和分辨率也越來越高,遊戲玩家對於遊戲體驗的流暢度要求也越來越高。再加上越來越多的手機開始支持 DisplayPort 接口,將 VRR 技術運用於移動平臺已經成爲新的趨勢。因此本人決定將 VESA Adaptive-Sync 白皮書翻譯成中文,方便大家閱讀。

由於 VESA Adaptive-Sync 標準主要由 AMD 工程師參與定製,因此它實際上就是 AMD Project FreeSync 的一個子集,FreeSync 除了支持 DisplayPort 接口外,還支持 HDMI 接口。《VESA Adaptive-Sync 白皮書》其實就是《AMD Project FreeSync 白皮書》的修改版,因此本文也加入了 FreeSync 的一部分內容(即“實現方案簡介”一節)。

以下爲正文內容。

介紹

多年來,顯示行業一直存在一種普遍的認識,即顯示器是以固定不變的刷新率(refresh rate)來顯示的,如 60Hz。這與以下事實形成鮮明對比:送給顯示器的圖像內容多種多樣,每種圖像都有自己特有的、變化的幀率(frame rate)。當顯示的刷新率與圖像自身內容的幀率不同步時,用戶可能會察覺到撕裂(tearing)和卡頓(stutter)之類的異常效果。在移動終端上(如平板、筆記本電腦),對於靜態圖像和視頻播放來說,較高的顯示刷新率不僅顯得多餘,還增加了系統功耗,降低了續航能力。這些影響促使我們去尋找一種技術,能允許顯示刷新率適應圖像自身內容的幀率變化。視頻電子標準協會(VESA®)已經制定了這樣一個行業標準,通過 DisplayPort 和 Embedded DisplayPort(eDP)接口,實現交互式的可變刷新率(VRR,Variable Refresh Rate)功能,也就是 “Adaptive-Sync” 技術。本文描述了該技術的使用場景,以及它給我們帶來了哪些好處。

圖 1 展示了 VRR 方案如何讓 graphics source 基於典型的內容幀率來動態調節顯示刷新率,從而實現省電、無卡頓(stutter-free)和低延遲(low-latency)的畫面更新效果。

圖 1: 基於內容動態調節的顯示刷新率
在這裏插入圖片描述

DisplayPort Adaptive-Sync 使用場景

遊戲場景

VRR 技術可以大大改善遊戲的用戶體驗。在一個典型的遊戲場景中,由於整個遊戲過程中 GPU 運算工作量各不相同,渲染的幀率也會隨着時間變化差異很大(如圖2所示)。那些細節很少或特效很少的場景將以高幀率快速渲染,而其他具有更多細節和特效的場景(如爆炸、煙霧等場景)則可能需要較長的渲染時間。這種幀率的變化通常會讓玩家在選擇屏幕刷新方式時進行權衡,比如在他們的設置程序中開啓“VSync”同步功能。

圖 2: 典型遊戲場景中渲染幀率隨時間變化的曲線圖
在這裏插入圖片描述

啓用“VSync”同步後,Display 硬件只會在幀與幀之間的 VBLANK (垂直消隱)區間切換顯示 buffer,這樣就能保證顯示器上始終顯示的是一幀完整的畫面,且不會出現撕裂的現象。這對於遊戲渲染幀率高於顯示刷新率的情況來說,效果非常好。但如果遊戲的幀率低於顯示的刷新率(例如,在短時間內出現大量密集的動作),那麼新渲染的一幀就不能及時的在 VBLANK 區間內準備就緒,於是上一幀老的畫面就會在顯示器上重複顯示。如下圖 3 所示,因爲 B 幀需要較長的渲染時間,導致 A 幀不得不被重複顯示2次,最終的結果就是用戶感知到了卡頓和延遲。對於該問題,遊戲玩家通常會選擇禁用 VSync,這的確能避免卡頓和延遲,但它卻帶來了撕裂的問題,尤其是在快速移動的場景中,撕裂現象尤爲明顯。

圖 3:VSync(上) 與 Adaptive-Sync (下)工作方式的區別
在這裏插入圖片描述

VRR 技術,如 DisplayPort Adaptive-Sync,提供了一種機制,允許顯示刷新率隨着遊戲的渲染幀率而動態變化,以此來解決上面遇到的問題。就像圖3下半部分所展示的那樣,在更新顯示 B 之前,Display 硬件會一直等到該幀徹底渲染完成後纔開始執行刷新動作,這樣可以確保每幀幾乎都是在第一時間顯示出來的,從而避免了延遲的發生。同時還能確保每幀不會在 Display 硬件的刷新週期內被重複顯示,因而也避免了卡頓的問題。顯示刷新率與渲染的幀率同步後,還可以避免因關閉 VSync 所造成的撕裂問題。DisplayPort Adaptive-Sync 技術爲實現流暢的遊戲體驗提供了理想的解決方案,既降低了延遲,又避免了撕裂的發生。

視頻播放場景

DisplayPort Adaptive-Sync 還可以用於遊戲之外的應用場景,比如對於具有固定播放幀率的視頻,可以將顯示刷新率調整爲視頻播放的幀率,以此來實現幾乎任何幀率視頻的流暢播放(如 23.98 fps、24 fps、25 fps、29.97 fps、30 fps、48 fps、50 fps、59.94 fps、60 fps)。DisplayPort Adaptive-Sync 可以在幾乎任何視頻幀率下提供幾乎無抖動的播放,而無需高成本的幀率轉換後處理(FRC,Frame Rate Conversion),這也有助於降低視頻播放時的整機功耗。

系統功耗優化場景

VRR 技術作爲筆記本內嵌顯示面板的一項系統節能技術,已經被筆記本製造商使用了多年。Embedded DisplayPort (eDP)接口早已具備支持該技術的能力,例如,當系統進入靜態畫面顯示狀態時(即屏幕上沒有新的內容更新),顯示器的刷新率會降低到它所能支持的最低頻率,以此來節省功耗。終端用戶是感知不到刷新率的切換的,而且因爲不需要額外的硬件來開啓這一功能,對 PC 製造商而言成本也很低。

實現方案簡介

AMD 的 Project FreeSync 實現方案需要在每幀的基礎上調整 VBLANK 持續時間,以此來改變所產生的幀週期,進而改變刷新率。圖 4 中展示了通過增加 VBLANK 的時間來實現降低刷新率的方法。

圖 4:調整 VBLANK
在這裏插入圖片描述

在這種操作模式下,DisplayPort receiver 必須忽略與 VBLANK 相關的時序變化,此時就必須從 DisplayPort source 端跟蹤時序,DisplayPort source 將通過寫寄存器的方式來通知 receiver 進入此操作模式。要想達到即插即用的用戶體驗,顯卡驅動程序需要讀取顯示器上報的能力來實現對該功能的支持。顯示器的 EDID 必須正確的標識它是一個“連續可變頻率的顯示器”,並上報顯示器所支持的刷新率範圍,以便顯卡驅動設置刷新率範圍(最小值和最大值)。

總結

總之,VESA 的 DisplayPort Adaptive-Sync 標準可用於創造具有 VRR 功能的產品,它給我們帶來了如下好處:

  • 根據變化的遊戲渲染幀率動態調節顯示刷新率,以實現低延遲、高流暢、幾乎無卡頓的遊戲體驗。
  • 動態地將顯示刷新率調整爲固定的視頻內容播放幀率,從而達到省電、幾乎無卡頓的視頻播放體驗。
  • 當屏幕顯示畫面靜止時,通過降低顯示面板的刷新率,有助於提高電池的續航能力
  • 能夠確保顯示刷新率之間是無縫切換的,用戶無感知的

原文鏈接

  1. 《VESA Adaptive-Sync Whitepaper》
  2. 《AMD Project FreeSync Whitepaper》
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章