淺談AI超解析度技術在手機上的落地

作者 : 黃燁鋒,EE Times China

AI技術成為一條重要的出路,比較典型的是基於深度神經網路,採用超解析度(super-resolution)方案即時地提升遊戲的畫質和遊戲體驗…

遙想2012年,有手機廠商拿自家手機的性能去和Xbox 360遊戲主機做比較。雖說10年前的這番對比是噱頭大於實際,而且以手機的形態和體積可承載的功耗與發熱,無論如何也難與遊戲主機相提並論。但從那個時候開始,手遊的畫質也成為核心競爭力。 這兩年《原神》這類沙箱遊戲的出現,製作規模也有了3A之名,不得不令人慨歎智慧型手機平台的發展之快,這自然就要求手機GPU性能持續升級。不過隨著摩爾定律的放緩,單純堆砌電晶體數量已經很難滿足當代遊戲的運算力需求。所以電腦科學這麼多年來都在尋找新的方法,提升GPU性能及遊戲體驗。 AI技術成為一條重要的出路,比較典型的是基於深度神經網路,採用超解析度(super-resolution)方案即時地提升遊戲的畫質和遊戲體驗。簡單來說,超解析度也就是把原本低解析度的畫面升格(upscale)為高解析度的畫面——具體到遊戲,GPU只需要渲染低解析度的畫面,透過超解析度演算法就能升格為高解析度畫面,也就降低了GPU的渲染負載,而且影格率也能得到保證。     PC平台,Nvidia、AMD、Intel都在做類似的技術;而行動平台,基於AI做超解析度技術比較早的是聯發科。實際上,我們認為手機這類小體積、續航敏感型設備是更迫切需要超解析度技術的,因為其體積和續航需求決定了,手機GPU運算力和可持續性能更受限,要保證更好的體驗,AI顯然是不錯的思路。聯發科也表示,PC上超解析度技術的目標是實現更高的遊戲影格率,而行動端超解析度技術的主要任務是保證提供接近原生畫質的前提下降低晶片功耗。 本文就來談談AI超解析度技術在行動端的應用與價值。 AI超解析度技術究竟是怎麼做的? 一般我們說遊戲的解析度和影格率是一對互斥的概念,玩家夢寐以求的是想以4K甚至8K解析度來玩遊戲。但桌上型電腦的旗艦遊戲顯卡也未必能在此等解析度下得到60fps的影格率,運算力和功耗要求太高。相對的,如果要更高的影格率,很多時候需要以降低解析度來換取。解析度換個詞也就是指清晰度,而影格率則是指畫面的流暢度,而越來越多的遊戲對這兩者同時提出了更高的要求。 超解析度技術理論上能夠緩解這對矛盾體。如果把超解析度的概念廣義化,將其理解為單純的影像升格(image scaling),那麼升格演算法自古以來是多種多樣的,比如說最簡單的最近鄰插值(nearest-neighbor interpolation)、雙線性插值、傅立葉轉換方法等,當然還有現在遊戲超解析度常見的深度卷積神經網路,也就是AI。 桌上型平台頗具代表性基於AI較早商用的技術,顯然是Nvidia DLSS (Deep Learning Super Sampling),DLSS發展至今已經有兩次大版本演進。另一類不基於AI的遊戲超解析度演算法,具代表性的是AMD的FSR。 微軟去年也向市場推出了低層級API DirectML——不過似乎應用範圍有限(540p→1,080p)。加上Intel最近也剛剛以XeSS技術,加入到AI遊戲超解析度技術戰局中來,這些都說明超解析度技術於PC遊戲世界正走向全面普及。而且就實際效果來看,基於AI的超解析度演算法必然成為主流。 去年的聯發科天璣旗艦技術媒體發佈會上,聯發科也著重談到了自家的超解析度技術Game AI-SR。當時聯發科就提到:「我們也認同遊戲市場有這樣的需求。我們未來會佈局遊戲超解析度在行動平台端的完整方案。目標上和Nvidia一致,滿足遊戲開發者在性能和畫質上的要求,晶片平台的性能、功耗也達到整體平衡。」鑒於行動端相比PC端還多出了低功耗的需求,超解析度技術在手機上的普及也是早晚問題。 現有基於AI的超解析度技術,公開細節比較多就屬是Nvidia DLSS了。雖然各家技術存在差異,但大方向應該是比較類似的。所以這裡以DLSS技術為例,來簡單談談AI超解析度是怎麼做的。 DLSS 1.0版把解析度升格操作分成了兩個階段。第一階段有個影像加強網路,基於畫面的當前影格和運動向量(motion vector)執行邊緣加強和空間反鋸齒;第二階段就是解析度升格,把低解析度升格為高解析度——基於每個低解析度的原始影格進行升格。第二階段用到的神經網路,需要針對每個不同的遊戲做訓練(training):大致思路是畫素超採樣(用超高解析度畫面,與低解析度畫面映射進行訓練)。 初版DLSS獲得的市場反響不佳,主要是因為不僅需要為每個遊戲(和每種解析度)進行針對性訓練,且僅單影格輸入到神經網路,很難在工作的時候適配各種場景。Nvidia後來也反省遊戲過程本身就是不可預期的,所以最早開啟DLSS的效果並不算好,動態畫面還容易出現偽像。     DLSS 2.0的網路訓練流程沒有發生大變化,但加入了時域反鋸齒(TAA)。在流程中融入即時的運動向量資訊,將運動向量應用到高解析度的歷史影格,就能預估下一影格(這個流程就是temporal feedback)。卷積autoencoder網路拿到低解析度的當前影格,以及高解析度的歷史影格,就能生成高解析度的當前影格了。 另外,原本針對每個遊戲訓練,新版也改為單個通用的神經網路,以適配所有加入了DLSS特性的遊戲。這個通用神經網路基於合成訓練資料集,而不再是個別遊戲。最終能夠提供不同的解析度升格選擇。從最終效果來看,DLSS 2.0的表現比1.0強了不少。 拋開2.0的改進不談,DLSS 1.0可認為遊戲AI超解析度技術的大方向,雖然在具體實施的時候會有些差異。值得一提的是,這樣的方案在本地進行AI inference也因此需要專門的硬體單元,所以Nvidia在Turing架構時代就為GPU引入了所謂的tensor core,進行AI運算加速,或者說進行遊戲超解析度加速。 當超解析度技術應用於行動端 不過Nvidia、Intel的這類技術都是針對PC平台,聯發科是比較早將遊戲AI超解析度技術應用到行動端的企業。可惜針對自家Game AI-SR技術,聯發科談的細節並不多,所以並不能很明確地知曉,當這樣的技術應用到行動端的時候,都需要做哪些改動。 不過有些比較顯著的問題還是可以拿來談一談。即便將範圍收窄到影像或視訊超解析度,早期的很多方案都並沒有為效率、功耗,以及行動設備進行最佳化。在行動設備上部署基於AI的解決方案,就需要為APU這類AI專核設計更高效的模型。畢竟如文首所述,手機的形態限制,決定了這類設備無法像PC那樣以高功耗、大運算力去全力輸出。 實際上,行動平台的APU在超解析度所需的AI運算力和效率上已經達到了較高的水準,至少它比CPU、GPU在卷積神經網路運算方面的效率要高出太多——而且這兩年的AI硬體發展,也使APU有了在同類產品中更出色的性能和能效——下文還將提到這一點。只不過當應用傳統AI超解析度方案時,行動平台仍然面臨問題:RAM容量限制,以及對於許多通用深度學習層和操作的支援不夠高效。 如此一來,要以標準神經網路模型來處理高解析度資料就有難度,因此就需要針對行動AI硬體,進行每種架構的適配。典型的最佳化包括網路剪枝、壓縮,低bit量化,AI硬體適配,行動平台感知神經網路搜索(Platform-aware Neural Architecture Search)等。 這方面的研究實際上還不少。針對未來廣闊的手遊生態,聯發科利用自身強大的運算資源訓練和改進AI模型,把完成超解析度最佳化的AI模型提供給遊戲開發商,或為遊戲開發商自研超解析度提供工具,協助其完成遊戲內的超解析度最佳化。     雖然並不清楚聯發科究竟針對行動端應用AI超解析度,具體做了些什麼,但要在遊戲畫面的超解析度方案上取得令人滿意的效果,應當是付出了不少心力——包括如何最大化地降低功耗、提升效率,同時保證超解析度的畫面可接近原生高解析度輸出的畫面。而這些工作並不僅是很多人所知的硬體層面的APU架構、設計,還需要針對遊戲開發者的AI超解析度生態上做各種深入研究。 不過在遊戲之外,聯發科應該是有儲備對應的超解析度技術,比如這家公司一直以來擅長的電視機晶片領域。超解析度技術在電視機上的應用早就不罕見了,似乎幾年以前聯發科就已經在電視晶片上,實現透過AI技術進行畫面升格操作,將2K升格為8K的影像輸出。 這兩年的CVPR (IEEE國際電腦視覺與模式識別會議)頂會上,也能看到聯發科發佈的不少報告,比如說2020年的《Unified Dynamic Convolutional Network for Super-Resolution with Variational Degradations》,探討單影像超解析度技術,用Dynamic Convolution動態磁碟區積來解決多樣可變的degradation問題。 雖說這可能和遊戲AI超解析度存在差異,且遊戲畫面具備更大的不確定性也增加了技術難度,但可想見的是聯發科在該領域的積累時間應當也不短。 AI專核與GPU之間的協同 如前所述,DLSS的實現基礎是Nvidia在Turing架構GPU中加入了專門的張量核心(tensor core)。畢竟既然是基於AI的超解析度演算法,自然應當由AI專核來做運算,以實現效率的最大化。行動平台也不例外,聯發科Game AI-SR是一項聯合了APU與GPU的技術。 去年11月,聯發科發佈了天璣9000手機SoC,這顆晶片之上的AI專核,也就是APU,用上了4個性能核心與2個通用核心。聯發科在宣傳中提到,天璣9000的APU 590在性能上達到了上一代的400%,能效提升4倍。與iPhone 13相比,AI性能領先66%,能效高出31%。     與此同時,在蘇黎世聯邦理工學院AI Benchmark (AI ETHZ v4)測試裡,天璣9000的AI性能相比Google Tensor處理器,至多有超過200%的性能領先——而且注意觀察,上圖中,達到203%性能領先的專案Video SR就是指視訊超解析度,看來APU的確算是有備而來。 此前的媒體發佈會上,聯發科在接受採訪時也特別提到:「我們第一代遊戲超解析度的規劃方案,希望是結合GPU+APU的異質方案。在行動平台端,我們希望讓GPU專心做渲染,APU則可以offload一部分超解析度的系統需求。」由GPU渲染低解析度的畫面,爾後將畫面交給APU進行Game AI-SR運算,最終將超解析度後的遊戲畫面輸出到螢幕。 透過APU與GPU的協作,對手機而言不僅能以接近原生畫質的解析度保證遊戲體驗,同時因為GPU僅以低解析度渲染輸出,APU在超解析度效率方面有保證,就起到了省電的目的。更具體地說,聯發科行動端遊戲超解析度技術可實現的是1.5倍的解析度升格,比如將GPU渲染的720p解析度畫面,由APU超解析度獲得接近1,080p畫面效果。 超解析度遊戲生態的落地 既然技術有了,前期的工具和硬體都準備就緒,接下來就要看遊戲開發者採用超解析度技術的活躍度了。類似這類專有技術方案,在還沒有全平台統一API問世之際,考驗的就是晶片廠商的生態建構能力。基於聯發科手機SoC在智慧型手機市場的市佔率,聯發科固然是掌握了先機和不少優勢。 就像PC平台的Nvidia那樣,如果這一生態能夠組建成型,那麼在整個手機市場,諸多遊戲開發者、手機OEM和手遊玩家都將提高對聯發科AI技術的依賴程度。這對建構起晶片廠商理想中的未來市場,應當才是更終極的目標。 傳言稱,vivo很快就要推向市場的X80手機搭載天璣9000晶片,就將著重宣佈遊戲超解析度技術的支援。關注這則資訊的重點理應在於,在這款手機發佈之際,是否也將支援聯發科Game AI-SR超解析度技術的遊戲隨之而來——市場將拭目以待。畢竟超解析度技術既能確保遊戲體驗,還有機會讓手機在玩遊戲時不再那麼熱,實在是眾多手遊玩家夢寐以求的。 本文原刊登於EE Times China網站          

發表評論