0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

三重壓縮技術(shù)應(yīng)對(duì)PowerVR圖片方案

工程師兵營 ? 2018-08-30 09:48 ? 次閱讀

作者:Robin Britton

由于屏幕分辨率的提高以及越來越復(fù)雜的渲染管道,使得游戲和其他應(yīng)用對(duì)于帶寬的要求也越來越高,大量的數(shù)據(jù)需要從內(nèi)存拷貝或者寫入。現(xiàn)在用戶普遍認(rèn)為在無其他特殊情況下設(shè)備應(yīng)該能夠支持2K的屏幕分辨率,高端游戲則具有更大的幾何復(fù)雜性,真正在屏幕上顯示圖像之前渲染管道通常要涉及多個(gè)中間渲染目標(biāo)。即使一些休閑類游戲也可能具有一些全屏后的處理效果,需要幀緩存數(shù)據(jù)從片外存儲(chǔ)器中讀取和寫入。內(nèi)存訪問是非常消耗功率的,占用帶寬越大功耗則越高,這對(duì)于功率預(yù)算緊張的嵌入式系統(tǒng)尤其是個(gè)棘手的問題。

PowerVR GPU采用 PVR3C三重壓縮技術(shù)來解決這個(gè)問題,這三重壓縮解決方案包括紋理壓縮(涉及PVRTC和ASTC)、幾何壓縮(PVRGC)和本文的主題圖像壓縮(PVRIC)。

PowerVR圖片壓縮(PVRIC)

如上文所說,在現(xiàn)代實(shí)時(shí)圖形應(yīng)用中內(nèi)存帶寬的最大壓力之一就是生成高質(zhì)量圖像所需的大量中間渲染對(duì)象。一個(gè)明顯的例子就是創(chuàng)建立方體環(huán)境貼圖( cube maps),通常用于反射效果。這包括從一個(gè)不動(dòng)點(diǎn)向六個(gè)方向渲染一個(gè)場景,最后結(jié)果會(huì)形成一個(gè)立方體的貼圖紋理,然后對(duì)場景中的對(duì)象進(jìn)行類似反射的采樣。其他示例包括分辨率縮放、渲染小地圖或其他場景視點(diǎn)、渲染平面反射貼圖,更不用說無盡的屏幕空間和后期處理效果了,比如可分離模糊處理、 SSAO、 景深效果以及色調(diào)映射等。


一個(gè)立方體貼圖的六個(gè)面可用于汽車上的近似反射,在汽車的窗戶上可以看到天空的倒影。

PVRIC通過高效、無損的壓縮方案大大降低了內(nèi)存帶寬成本,這種壓縮方案通常會(huì)使得圖像大小減少50%(依賴于很多元素)。前文提到的目標(biāo)渲染在寫入GPU之前就進(jìn)行了壓縮,然后從內(nèi)存中讀取時(shí)會(huì)被解壓,因?yàn)檫@種壓縮是無損的,所以可以從解壓數(shù)據(jù)中重構(gòu)得到完美的原始圖像,這也意味著圖像的質(zhì)量不會(huì)降低。


上圖展示了與GPU的所有交互,但更有利的是這有可能會(huì)將PVRIC技術(shù)集成到SoC級(jí)別的顯示管道中,使得最終的渲染圖像在寫入內(nèi)存之前會(huì)進(jìn)行壓縮,然后在顯示控制器中進(jìn)行解壓,這將更有效地節(jié)省總體帶寬。

在許多移動(dòng)游戲和App中,紋理資源通常都會(huì)采用眾所周知的格式進(jìn)行壓縮,比如 ETC、PVRTC等,但是開發(fā)者會(huì)選擇保留一部分未經(jīng)壓縮的紋理資源,比如字體或UI紋理,這些紋理在縮放時(shí)需要保持清晰和不失真。PVRIC方案的另一個(gè)好處是它允許將相同的無損壓縮應(yīng)用到任何未經(jīng)壓縮的紋理上,然后上傳給GPU(如果紋理使用的是多種被支持的格式之一),根據(jù)不同的應(yīng)用,這可能會(huì)帶來更大幅度的帶寬減少。

應(yīng)用帶寬分析

我們?cè)赟ynaptics BG5CT板卡(集成 PowerVR Series8XE GE8310 GPU,它采用了最新一代的PVRIC技術(shù)——PVRICv3)上運(yùn)行API trace測(cè)試了多款流行的應(yīng)用,我們看到了這種壓縮方案所帶來的性能提升,尤其是帶寬消耗的顯著降低。

下面的表格展示了不同應(yīng)用的測(cè)試結(jié)果,需要注意的是,在這款器件上PVRIC并沒有集成到SoC的顯示管道中,如果集成了那么我們將會(huì)看到最后的幀緩存圖像會(huì)有更好的壓縮效果,正如前文所述。因?yàn)槲覀兪褂玫氖前沧科脚_(tái),幀緩存壓縮會(huì)應(yīng)用到最終的渲染操作,Android SurfaceFlinger會(huì)將這些壓縮幀寫入內(nèi)存,讀取到GPU中。如果是這樣,那么SoC顯示管道也將受益于SurfaceFlinger的最終合成結(jié)果,。

那么這些結(jié)果到底意味著什么?這些數(shù)字可能有點(diǎn)兒誤導(dǎo)人。我們可以清楚的看到所有應(yīng)用占用的總帶寬都有所減少,但有些應(yīng)用比其他應(yīng)用帶寬的降低程度要大得多,正如上文所提到的PVRIC技術(shù)涵蓋了紋理的渲染和解壓縮,但這只是總帶寬的一部分,幾何圖形、著色器等等也會(huì)占用一定的帶寬,但是它們并不會(huì)受PVRIC操作的影響,所以對(duì)于整體帶寬的占用情況我們能做的只是降低,雖然系統(tǒng)范圍內(nèi)的數(shù)據(jù)保持在較高的水平,但是我們想隔離受PVRIC影響的相關(guān)帶寬參數(shù),借助我們的內(nèi)部分析工具可以讓我們更精確的完成這些操作(雖然我們不能消除一切——比如紋理壓縮)。

在這里,我們隔離的只是GPU在執(zhí)行渲染操作時(shí)占用的帶寬,而忽略了貼圖操作所需要的幾何處理。為了簡化這一過程,測(cè)試平臺(tái)上已經(jīng)禁止了這些任務(wù)的重復(fù)。我們還能夠識(shí)別和忽略其他進(jìn)程的任務(wù),現(xiàn)在我們需要分析為什么有些app會(huì)那樣運(yùn)行,這需要我們了解app是如何在圖形API層工作的,不妨深入了解一下PVRTrace。

《minecraft》(《我的世界》)


我們使用PVRTrace對(duì)Minecraft這款應(yīng)用進(jìn)行分析,我們發(fā)現(xiàn)總體帶寬節(jié)省率比較低(大約2.42%),但是隔離圖片/紋理帶寬方面顯示帶寬節(jié)省率則更高(大約17.76%)。Minecraft采用的是完全未壓縮的紋理技術(shù),因此PVRIC的效果比較顯著,盡管這與典型場景中幾何圖形的數(shù)量(大約13萬4千個(gè)三角形)相比非常的少,更不用說很多紋理的尺寸非常的小,PVRIC只是完成了它所能實(shí)現(xiàn)的,但是對(duì)于Minecraft并沒有太多的事情可以做。請(qǐng)記?。和ㄟ^集成到顯示管道中,我們可以看到發(fā)送給顯示控制器的幀緩存更好的優(yōu)化效果。

《憤怒的小鳥 2》


在憤怒的小鳥 2這款應(yīng)用中,幾何圖形(1萬6千個(gè)三角形)和紋理內(nèi)容各自占用的帶寬比例則更協(xié)調(diào)一些,因此我們能夠更加清晰的看到PVRIC所帶來的好處,系統(tǒng)整體帶寬節(jié)省43%,隔離帶寬節(jié)省56%。這款游戲既采用了壓縮的紋理格式也采用了一些未壓縮的紋理格式,因此PVRIC非常起作用。此外,整個(gè)場景在進(jìn)行最終的展示之前會(huì)采用渲染中間件的形式(很多應(yīng)用都使用這種技術(shù)來處理分辨率縮放或后續(xù)處理操作),這兩種因素的結(jié)合對(duì)于PVRIC技術(shù)是很好的展示。

《真實(shí)賽車 3》


真實(shí)賽車3是另一款使用大量幾何圖形(測(cè)試時(shí)顯示16萬個(gè)三角形)的應(yīng)用,而且紋理/曲面也占用了相當(dāng)一部分的帶寬。紋理壓縮技術(shù)(PowerVR的PVRTC技術(shù))在這款應(yīng)用中被廣泛采用,這非常棒,但是還有很多未壓縮的紋理需要借助PVRIC技術(shù)來處理,此外還涉及一組512 x 512的立方體環(huán)境貼圖和全屏幕紋理渲染。最后的百分比可能不太明顯,但是這很好的展示了PVRIC與PVRTC相結(jié)合所帶來的好處,PVRTC可用于處理大部分的紋理,PVRIC則用于處理其他內(nèi)容。

從這些工作負(fù)載中可以看出,無論圖像數(shù)據(jù)是否占用應(yīng)用程序的大部分帶寬,采用PVRIC技術(shù)后都會(huì)帶來顯著的影響,在很大程度上減少了圖像占用的帶寬。

功耗分析

為了能夠更清楚的了解PVRIC技術(shù)和降低帶寬對(duì)于功耗的影響,我們修改了平臺(tái),使其支持功耗分析并連接了數(shù)據(jù)采集設(shè)備從而可以收集一些功耗數(shù)據(jù),下面的圖表就是我們的發(fā)現(xiàn):


在憤怒的小鳥2同一段5秒的運(yùn)行過程中,我們發(fā)現(xiàn):使用PVRIC時(shí)內(nèi)存的功耗會(huì)更低一些,采用兩組數(shù)據(jù)之間的差值并進(jìn)行平滑處理,我們發(fā)現(xiàn)內(nèi)存功耗降低了18%。這個(gè)效果非常的顯著,對(duì)于采用電池驅(qū)動(dòng)的設(shè)備比如移動(dòng)手機(jī)可以在充電之前使用更長的時(shí)間,當(dāng)然對(duì)于功耗和電池壽命的影響還有很多其他因素,而且不同設(shè)備之間也會(huì)有所差別。

總結(jié)

總而言之,PVRIC技術(shù)是PVR3C壓縮策略關(guān)鍵的組成部分,對(duì)于使用的帶寬來說其壓縮比可高達(dá)(有時(shí)甚至超過)2:1。這會(huì)對(duì)設(shè)備存儲(chǔ)器的功耗產(chǎn)生實(shí)質(zhì)性的影響,通過對(duì)我們紋理和幾何壓縮方案的測(cè)試,很明顯可以得出PVR3C是全面的帶寬效率方案,能夠從整體上提高系統(tǒng)的效率,從而讓我們能夠?qū)崿F(xiàn)更加全面的低功耗解決方案。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    27

    文章

    4591

    瀏覽量

    128153
  • Power
    +關(guān)注

    關(guān)注

    1

    文章

    498

    瀏覽量

    67588
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32F407三重ADC采樣設(shè)置死機(jī)怎么解決?

    使用STM32F407三重ADC,ADC1ADC2 ADC3分別分配8個(gè)通道(ADC1 把芯片測(cè)溫等個(gè)內(nèi)部通道算上),一個(gè)24個(gè)通道。定時(shí)器TIMER3定時(shí)觸發(fā)ADC1采樣。ADC采用同步規(guī)則模式
    發(fā)表于 07-26 06:43

    具有施密特觸發(fā)器輸入的三重輸入或門SN74HCS4075數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有施密特觸發(fā)器輸入的三重輸入或門SN74HCS4075數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 05-27 10:00 ?0次下載
    具有施密特觸發(fā)器輸入的<b class='flag-5'>三重</b><b class='flag-5'>三</b>輸入或門SN74HCS4075數(shù)據(jù)表

    具有開漏輸出的三重緩沖器/驅(qū)動(dòng)器SN74LVC3G07數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有開漏輸出的三重緩沖器/驅(qū)動(dòng)器SN74LVC3G07數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 05-24 10:25 ?0次下載
    具有開漏輸出的<b class='flag-5'>三重</b>緩沖器/驅(qū)動(dòng)器SN74LVC3G07數(shù)據(jù)表

    具有開放漏極輸出的三重緩沖器/驅(qū)動(dòng)器SN74LVC3G07數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有開放漏極輸出的三重緩沖器/驅(qū)動(dòng)器SN74LVC3G07數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 05-21 11:10 ?0次下載
    具有開放漏極輸出的<b class='flag-5'>三重</b>緩沖器/驅(qū)動(dòng)器SN74LVC3G07數(shù)據(jù)表

    三重反相器門SN74LVC3G04 數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《三重反相器門SN74LVC3G04 數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 05-21 10:57 ?0次下載
    <b class='flag-5'>三重</b>反相器門SN74LVC3G04 數(shù)據(jù)表

    三重反相器門SN74LVC3GU04 數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《三重反相器門SN74LVC3GU04 數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 05-21 10:45 ?0次下載
    <b class='flag-5'>三重</b>反相器門SN74LVC3GU04 數(shù)據(jù)表

    漏極開路輸出的三重逆變器緩沖器/驅(qū)動(dòng)器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《漏極開路輸出的三重逆變器緩沖器/驅(qū)動(dòng)器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 05-21 10:44 ?0次下載
    漏極開路輸出的<b class='flag-5'>三重</b>逆變器緩沖器/驅(qū)動(dòng)器數(shù)據(jù)表

    具有施密特觸發(fā)器輸入的三重3輸入NAND門SN74HCS10數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有施密特觸發(fā)器輸入的三重3輸入NAND門SN74HCS10數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 05-10 11:41 ?0次下載
    具有施密特觸發(fā)器輸入的<b class='flag-5'>三重</b>3輸入NAND門SN74HCS10數(shù)據(jù)表

    STM32F40使用三重ADC采集6通道數(shù)據(jù),占用CPU時(shí)間很長導(dǎo)致采集的數(shù)據(jù)很小怎么解決?

    請(qǐng)教各位大佬,我使用STM32F405配置了三重ADC模式采集6個(gè)通道的電壓值,在需要開啟轉(zhuǎn)換的時(shí)候使用ADC1->CR2 |= 0x40000001這條代碼開啟的,但是使用示波器后
    發(fā)表于 04-11 08:08

    三重配電開關(guān)TPS2043和TPS2053數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《三重配電開關(guān)TPS2043和TPS2053數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 04-02 10:44 ?0次下載
    <b class='flag-5'>三重</b>配電開關(guān)TPS2043和TPS2053數(shù)據(jù)表

    3MHz降壓穩(wěn)壓器和三重線性穩(wěn)壓器TPS65300-Q1數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《3MHz降壓穩(wěn)壓器和三重線性穩(wěn)壓器TPS65300-Q1數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 03-05 16:29 ?0次下載
    3MHz降壓穩(wěn)壓器和<b class='flag-5'>三重</b>線性穩(wěn)壓器TPS65300-Q1數(shù)據(jù)表

    三重無緩沖逆變器74LVC3GU04-Q100數(shù)據(jù)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《三重無緩沖逆變器74LVC3GU04-Q100數(shù)據(jù)手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 02-19 09:41 ?0次下載
    <b class='flag-5'>三重</b>無緩沖逆變器74LVC3GU04-Q100數(shù)據(jù)手冊(cè)

    三重逆變器74HC3G04-Q100; 74HCT3G04-Q100產(chǎn)品數(shù)據(jù)介紹

    電子發(fā)燒友網(wǎng)站提供《三重逆變器74HC3G04-Q100; 74HCT3G04-Q100產(chǎn)品數(shù)據(jù)介紹.pdf》資料免費(fèi)下載
    發(fā)表于 12-19 16:05 ?0次下載
    <b class='flag-5'>三重</b>逆變器74HC3G04-Q100; 74HCT3G04-Q100產(chǎn)品數(shù)據(jù)介紹

    三重逆變器74HC3G04; 74HCT3G04產(chǎn)品介紹

    電子發(fā)燒友網(wǎng)站提供《三重逆變器74HC3G04; 74HCT3G04產(chǎn)品介紹.pdf》資料免費(fèi)下載
    發(fā)表于 12-19 15:44 ?0次下載
    <b class='flag-5'>三重</b>逆變器74HC3G04; 74HCT3G04產(chǎn)品介紹

    關(guān)于圖片壓縮的idea插件

    今天主要是想給大家介紹最近自己開發(fā)的圖片壓縮插件,該插件用到了 tinypng 的在線服務(wù)。大家可能都知道,tinypng提供的圖片壓縮服務(wù)特別好用,
    的頭像 發(fā)表于 10-09 15:06 ?465次閱讀
    關(guān)于<b class='flag-5'>圖片</b><b class='flag-5'>壓縮</b>的idea插件