本申請(qǐng)涉及電子技術(shù)領(lǐng)域,具體的說(shuō)是一種用于智能終端的圖片處理方法、一種用于智能終端的圖片處理裝置、一種用于智能終端的頁(yè)面顯示方法、一種用于智能終端的圖片處理終端設(shè)備以及一種用于智能終端的圖片處理系統(tǒng)。
背景技術(shù):
隨著智能設(shè)備的普及,對(duì)智能終端程序的開(kāi)發(fā)提出了越來(lái)越多的要求,例如,移動(dòng)終端的購(gòu)物APP為了更好地展示商品的特性,需要大量使用圖片的展示;在使用HTML5Canvas進(jìn)行移動(dòng)終端游戲APP開(kāi)發(fā)時(shí),也會(huì)涉及到大量游戲圖片紋理的頻繁渲染。圖片紋理的渲染是移動(dòng)終端應(yīng)用程序中資源消耗量大且耗時(shí)較多的操作,而圖片紋理的渲染性能很大程度上決定整個(gè)移動(dòng)終端應(yīng)用程序的運(yùn)行速度、流暢度以及用戶的使用體驗(yàn),在游戲APP中,紋理渲染的性能是決定整個(gè)游戲運(yùn)行幀率的最大因素。
不論是智能終端購(gòu)物APP還是HTML5Canvas的游戲APP開(kāi)發(fā)中,大量的基本元素(如商品詳情,游戲場(chǎng)景,APP的用戶UI等)都由圖片構(gòu)成。基于OpenGL ES的紋理渲染中,圖片進(jìn)入渲染管線加載為紋理,紋理數(shù)據(jù)的復(fù)雜程度,直接關(guān)系到內(nèi)存到顯存的IO開(kāi)銷以及其在渲染管線中的計(jì)算復(fù)雜度?,F(xiàn)有技術(shù)中,智能終端進(jìn)行紋理渲染時(shí),需要從服務(wù)器端獲取圖片資源,進(jìn)行相應(yīng)的解碼,再?gòu)闹悄芙K端的內(nèi)存中把解碼的圖片數(shù)據(jù)(ARGB像素?cái)?shù)據(jù))傳輸?shù)綀D像處理引擎中加載成為紋理,在需要使用紋理的時(shí)候進(jìn)行實(shí)時(shí)渲染,存在如下問(wèn)題:一、現(xiàn)有技術(shù)使用的圖片資源普遍采用jpg、png等圖片格式,圖片體積大,從服務(wù)器下載圖片會(huì)比較耗時(shí),特別是在2G/3G通信網(wǎng)絡(luò)環(huán)境中流量耗費(fèi)較大;二、jpg、png等圖片格式需要先解碼才能渲染顯示,解碼占用CPU進(jìn)程,對(duì)系統(tǒng)資源消耗較大;三、jpg、png等格式圖片最終解碼成每個(gè)通道一個(gè)字節(jié)的格式上傳,其體積相對(duì)于GPU支持的紋理格式較大,同時(shí)在移動(dòng)終端把數(shù)據(jù)從CPU內(nèi)存寫(xiě)入到顯存也是比較耗時(shí)的IO操作;四、現(xiàn)有技術(shù)中移動(dòng)終端GPU使用ARGB8888或者RGB888這兩種格式進(jìn)行渲染,效率較低。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問(wèn)題,本申請(qǐng)?zhí)峁┮环N用于智能終端的圖片處理方法、一種用于智能終端的圖片處理裝置、一種用于智能終端的頁(yè)面顯示方法、一種用于智能終端的圖片處理終端設(shè)備以及一種用于智能終端的圖片處理系統(tǒng)。
本申請(qǐng)采用的技術(shù)方案是:
本申請(qǐng)?zhí)峁┮环N用于智能終端的圖片處理方法,包括:
接收?qǐng)D片處理指令;
在接收到所述圖片處理指令后,觸發(fā)檢測(cè)智能終端的圖像處理引擎是否支持預(yù)定的處理方式;
若支持,則向服務(wù)端請(qǐng)求與所述預(yù)定的處理方式對(duì)應(yīng)的圖片;
若不支持,則向服務(wù)端請(qǐng)求與所述圖像處理引擎支持的其他處理方式對(duì)應(yīng)的圖片。
可選的,所述在接收到所述圖片處理指令后,觸發(fā)檢測(cè)智能終端的圖像處理引擎是否支持預(yù)定的處理方式的步驟,包括:
在接收到所述圖片處理指令后,觸發(fā)檢測(cè)智能終端的圖像處理引擎是否支持加載壓縮紋理格式圖片;
所述若支持,則向服務(wù)端請(qǐng)求與所述預(yù)定的處理方式對(duì)應(yīng)的圖片的步驟,包括:若支持,則向服務(wù)端請(qǐng)求壓縮紋理格式圖片;
所述若不支持,則向服務(wù)端請(qǐng)求與所述圖像處理引擎支持的其他處理方式對(duì)應(yīng)的圖片的步驟,包括:若不支持,則向服務(wù)端請(qǐng)求普通格式圖片。
可選的,所述若支持,則向服務(wù)端請(qǐng)求壓縮紋理格式圖片的步驟,包括:
若支持,則向服務(wù)端請(qǐng)求壓縮紋理格式圖片;
若在預(yù)定的時(shí)間內(nèi)未接收到所述服務(wù)端返回的壓縮紋理圖片,則向服務(wù)端請(qǐng)求普通格式圖片。
可選的,所述用于智能終端的圖片處理方法,還包括:
若接收到所述服務(wù)端返回的壓縮紋理格式圖片,則將所述壓縮紋理格式圖片直接加載到所述圖像處理引擎中形成紋理;
若接收到所述服務(wù)端返回的普通格式圖片,則將所述普通格式圖片解碼后加載到所述圖像處理引擎中形成紋理。
可選的,所述壓縮紋理格式圖片包括以下至少一種格式的圖片:
ETC格式,PVR格式,ETC1格式,PVRTC格式,ATITC格式,S3TC格式。
可選的,所述普通格式圖片包括以下至少一種格式的圖片:
JPEG格式,JPG格式,PNG格式,BMP格式,TGA格式。
可選的,所述在接收到所述圖片加載指令后,觸發(fā)檢測(cè)智能終端的圖像處理引擎是否支持處理壓縮紋理格式圖片的步驟,包括:
在接收到所述圖片加載指令后,觸發(fā)依次檢測(cè)智能終端的圖像處理引擎是否支持處理預(yù)定的多種格式的壓縮紋理格式圖片;
所述若支持,則向服務(wù)端請(qǐng)求壓縮紋理格式圖片的步驟,包括:
若支持至少一種格式的壓縮紋理格式圖片,則向服務(wù)端請(qǐng)求所述圖像處理引擎支持處理的至少一種格式的壓縮紋理格式圖片。
可選的,所述若支持,則向服務(wù)端請(qǐng)求壓縮紋理格式圖片的步驟,包括:
若支持,則查詢所述圖像處理引擎支持處理的壓縮紋理格式圖片的格式;
向服務(wù)端請(qǐng)求所述圖像處理引擎支持處理的格式的壓縮紋理格式圖片。
可選的,所述若接收到所述服務(wù)端返回的普通格式圖片,則將所述普通格式圖片解碼后加載到所述圖像處理引擎中形成紋理的步驟,包括:
若接收到所述服務(wù)端返回的普通格式圖片,則根據(jù)所述普通格式圖片的格式將所述普通格式圖片解碼為預(yù)定格式的紋理圖片;
將所述預(yù)定格式的紋理圖片傳至圖片處理引擎,由所述圖片處理引擎加載形成紋理。
可選的,所述預(yù)定格式的紋理圖片包括以下至少一種格式的紋理圖片:
RGB565格式,RGBA4444格式,ARGB8888格式,RGB888格式。
可選的,所述根據(jù)所述普通格式圖片的格式將所述普通格式圖片解碼為預(yù)定格式的紋理圖片,包括:
若所述普通格式圖片的格式為JPEG格式,則將所述普通格式圖片解碼為RGB565格式的紋理圖片;
若所述普通格式圖片的格式為PNG格式,則將所述普通格式圖片解碼為RGBA4444格式的紋理圖片。
可選的,所述將所述預(yù)定格式的紋理圖片傳至圖片處理引擎,由所述圖片處理引擎加載形成紋理的步驟,包括:
將所述預(yù)定格式的紋理圖片按照?qǐng)D像抖動(dòng)算法進(jìn)行抖動(dòng)處理;
將抖動(dòng)處理后的預(yù)定格式的紋理圖片傳至圖片處理引擎,由所述圖片處理引擎加載形成紋理。
可選的,所述用于智能終端的圖片處理方法,還包括:
對(duì)所述紋理進(jìn)行紋理渲染。
本申請(qǐng)還提供一種用于智能終端的圖片處理裝置,包括:
圖片處理指令接收單元,用于接收?qǐng)D片處理指令;
檢測(cè)單元,用于在接收到所述圖片處理指令后,觸發(fā)檢測(cè)智能終端的圖像處理引擎是否支持預(yù)定的處理方式;
第一圖片請(qǐng)求單元,用于若支持,則向服務(wù)端請(qǐng)求與所述預(yù)定的處理方式對(duì)應(yīng)的圖片;
第二圖片請(qǐng)求單元,用于若不支持,則向服務(wù)端請(qǐng)求與所述圖像處理引擎支持的其他處理方式對(duì)應(yīng)的圖片。
可選的,所述檢測(cè)單元包括:壓縮圖片支持檢測(cè)子單元,用于在接收到所述圖片處理指令后,觸發(fā)檢測(cè)智能終端的圖像處理引擎是否支持加載壓縮紋理格式圖片;
所述第一圖片請(qǐng)求單元包括:壓縮圖片請(qǐng)求子單元,用于若支持,則向服務(wù)端請(qǐng)求壓縮紋理格式圖片;
所述第二圖片請(qǐng)求單元包括:普通圖片請(qǐng)求子單元,用于若不支持,則向服務(wù)端請(qǐng)求普通格式圖片。
可選的,所述壓縮圖片請(qǐng)求子單元包括:
第一壓縮圖片請(qǐng)求子單元,用于若支持,則向服務(wù)端請(qǐng)求壓縮紋理格式圖片;
第一普通圖片請(qǐng)求子單元,用于若在預(yù)定的時(shí)間內(nèi)未接收到所述服務(wù)端返回的壓縮紋理圖片,則向服務(wù)端請(qǐng)求普通格式圖片。
可選的,所述用于智能終端的圖片處理裝置還包括:
壓縮圖片加載單元,用于若接收到所述服務(wù)端返回的壓縮紋理格式圖片, 則將所述壓縮紋理格式圖片直接加載到所述圖像處理引擎中形成紋理;
普通圖片加載單元,用于若接收到所述服務(wù)端返回的普通格式圖片,則將所述普通格式圖片解碼后加載到所述圖像處理引擎中形成紋理。
可選的,所述壓縮紋理格式圖片包括以下至少一種格式的圖片:
ETC格式,PVR格式,ETC1格式,PVRTC格式,ATITC格式,S3TC格式。
可選的,所述普通格式圖片包括以下至少一種格式的圖片:
JPEG格式,JPG格式,PNG格式,BMP格式,TGA格式。
可選的,所述壓縮圖片支持檢測(cè)子單元包括:壓縮圖片支持依次檢測(cè)子單元,用于在接收到所述圖片加載指令后,觸發(fā)依次檢測(cè)智能終端的圖像處理引擎是否支持處理預(yù)定的多種格式的壓縮紋理格式圖片;
所述壓縮圖片請(qǐng)求子單元包括:第二壓縮圖片請(qǐng)求子單元,用于若支持至少一種格式的壓縮紋理格式圖片,則向服務(wù)端請(qǐng)求所述圖像處理引擎支持處理的至少一種格式的壓縮紋理格式圖片。
可選的,所述壓縮圖片請(qǐng)求子單元包括:
壓縮圖片查詢子單元,用于若支持,則查詢所述圖像處理引擎支持處理的壓縮紋理格式圖片的格式;
第三壓縮圖片請(qǐng)求子單元,用于向服務(wù)端請(qǐng)求所述圖像處理引擎支持處理的格式的壓縮紋理格式圖片。
可選的,所述普通圖片加載單元包括:
普通圖片解碼子單元,用于若接收到所述服務(wù)端返回的普通格式圖片,則根據(jù)所述普通格式圖片的格式將所述普通格式圖片解碼為預(yù)定格式的紋理圖片;
普通紋理加載子單元,用于將所述預(yù)定格式的紋理圖片傳至圖片處理引擎,由所述圖片處理引擎加載形成紋理。
可選的,所述預(yù)定格式的紋理圖片包括以下至少一種格式的紋理圖片:
RGB565格式,RGBA4444格式,ARGB8888格式,RGB888格式。
可選的,所述普通圖片解碼子單元包括:
第一普通圖片解碼子單元,用于若所述普通格式圖片的格式為JPEG格式,則將所述普通格式圖片解碼為RGB565格式的紋理圖片;
第二普通圖片解碼子單元,用于若所述普通格式圖片的格式為PNG格式,則將所述普通格式圖片解碼為RGBA4444格式的紋理圖片。
可選的,所述普通紋理加載子單元包括:
抖動(dòng)子單元,用于將所述預(yù)定格式的紋理圖片按照?qǐng)D像抖動(dòng)算法進(jìn)行抖動(dòng)處理;
抖動(dòng)紋理加載子單元,用于將抖動(dòng)處理后的預(yù)定格式的紋理圖片傳至圖片處理引擎,由所述圖片處理引擎加載形成紋理。
可選的,所述用于智能終端的圖片處理裝置,還包括:渲染單元,用于對(duì)所述紋理進(jìn)行紋理渲染。
本申請(qǐng)還提供一種用于智能終端的頁(yè)面顯示方法,所述智能終端的至少一個(gè)頁(yè)面中的至少一副圖片是通過(guò)本申請(qǐng)?zhí)峁┑娜我豁?xiàng)用于智能終端的圖片處理方法處理后獲得的。
本申請(qǐng)還提供一種用于智能終端的圖片處理終端設(shè)備,包括:
中央處理器;
輸入輸出單元;
存儲(chǔ)器;
所述存儲(chǔ)器中存儲(chǔ)有本申請(qǐng)?zhí)峁┑挠糜谥悄芙K端的圖片處理方法;并在啟動(dòng)后能夠根據(jù)上述方法運(yùn)行。
本申請(qǐng)還提供一種用于智能終端的圖片處理系統(tǒng),包括客戶端和服務(wù)端,所述客戶端配置有本申請(qǐng)?zhí)峁┑挠糜谥悄芙K端的圖片處理裝置,所述客戶端向所述服務(wù)端請(qǐng)求圖片,并從所述服務(wù)端下載圖片,然后對(duì)所述圖片進(jìn)行處理。
與現(xiàn)有技術(shù)相比,本申請(qǐng)具有以下優(yōu)點(diǎn):
本申請(qǐng)?zhí)峁┑囊环N用于智能終端的圖片處理方法,首先接收?qǐng)D片處理指令;在接收到所述圖片處理指令后,觸發(fā)檢測(cè)智能終端的圖像處理引擎是否支持預(yù)定的處理方式;若支持,則向服務(wù)端請(qǐng)求與所述預(yù)定的處理方式對(duì)應(yīng)的圖片;若不支持,則向服務(wù)端請(qǐng)求與所述圖像處理引擎支持的其他處理方式對(duì)應(yīng)的圖片。相較于現(xiàn)有技術(shù),本申請(qǐng)?jiān)谙蚍?wù)端請(qǐng)求圖片前,首先檢測(cè)智能終端的圖像處理引擎是否支持預(yù)定的處理方式,進(jìn)而有針對(duì)性的向服務(wù)端請(qǐng)求對(duì)應(yīng)的圖片,從而實(shí)現(xiàn)基于智能終端的硬件條件自動(dòng)選擇較優(yōu)的處理方式,因此,可以 提高對(duì)圖片的處理能力,進(jìn)而提升應(yīng)用程序的運(yùn)行速度及流暢度,提升用戶使用體驗(yàn)。
將本方法應(yīng)用于圖片加載的場(chǎng)景中,相較于現(xiàn)有技術(shù),打破了現(xiàn)有必須先解碼才能加載、渲染的圖片處理方式,針對(duì)部分圖像處理引擎支持處理壓縮紋理格式圖片的現(xiàn)狀,在向服務(wù)端請(qǐng)求圖片前,首先檢測(cè)智能終端的圖像處理引擎是否支持處理壓縮紋理格式圖片,若支持,則直接向服務(wù)端請(qǐng)求壓縮紋理格式圖片,這樣,不需要進(jìn)行解碼即可直接加載、渲染。采用本技術(shù),一方面由于壓縮紋理格式圖片相較于普通格式圖片文件占用容量更小,在通過(guò)網(wǎng)絡(luò)傳輸時(shí)消耗的流量更低、占用帶寬更低、耗時(shí)更少;另一方面由于壓縮紋理格式圖片相較于普通格式圖片解碼獲得的普通紋理格式圖片文件占用容量也小,因此,在紋理加載時(shí)可有效降低內(nèi)存到顯存的IO帶寬開(kāi)銷,提高每一幀的計(jì)算與渲染速度,從而提高加載及渲染效率,又由于省略了圖片解碼的步驟,降低了CPU的負(fù)荷,因此,對(duì)于支持處理壓縮紋理格式圖片的智能終端,可以有效提高圖片渲染速度,進(jìn)而提升應(yīng)用程序的運(yùn)行速度及流暢度,提升用戶使用體驗(yàn)。
附圖說(shuō)明
圖1是本申請(qǐng)?zhí)峁┑囊环N用于智能終端的圖片處理方法實(shí)施例的流程圖;
圖2是本申請(qǐng)?zhí)峁┑囊环N用于智能終端的圖片處理裝置實(shí)施例的示意圖。
具體實(shí)施方式
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本申請(qǐng)。但是本申請(qǐng)能夠以很多不同于在此描述的其它方式來(lái)實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本申請(qǐng)內(nèi)涵的情況下做類似推廣,因此本申請(qǐng)不受下面公開(kāi)的具體實(shí)施的限制。
本申請(qǐng)?zhí)峁┝艘环N用于智能終端的圖片處理方法、一種用于智能終端的圖片處理裝置、一種用于智能終端的頁(yè)面顯示方法、一種用于智能終端的圖片處理終端設(shè)備以及一種用于智能終端的圖片處理系統(tǒng),下面依次結(jié)合附圖對(duì)本申請(qǐng)的實(shí)施例進(jìn)行詳細(xì)說(shuō)明。
請(qǐng)參考圖1,其為本申請(qǐng)?zhí)峁┑囊环N用于智能終端的圖片處理方法實(shí)施例的流程圖,所述方法包括如下步驟:
步驟S101:接收?qǐng)D片處理指令。
本步驟,首先接收?qǐng)D片處理指令,所述圖片處理指令包括圖片加載指令、頁(yè)面圖片加載指令、客戶端背景圖片加載指令、圖片渲染指令、圖片解析指令、圖片格式轉(zhuǎn)換指令等。
步驟S102:在接收到所述圖片處理指令后,觸發(fā)檢測(cè)智能終端的圖像處理引擎是否支持預(yù)定的處理方式。
通過(guò)步驟S101,已接收?qǐng)D片處理指令,接下來(lái),在接收到所述圖片處理指令后,觸發(fā)檢測(cè)智能終端的圖像處理引擎是否支持預(yù)定的處理方式。
在本申請(qǐng)?zhí)峁┑囊粋€(gè)實(shí)施例中,所述圖形處理引擎為GPU(圖形處理器),考慮到不同廠家、不同規(guī)格的GPU支持處理的圖片格式不同,特別是部分GPU已經(jīng)開(kāi)始支持處理壓縮紋理格式圖片,由于壓縮紋理格式圖片相較于普通格式圖片解壓獲得的普通紋理格式文件占用容量更小,且GPU對(duì)壓縮紋理的加載速度和渲染速度遠(yuǎn)遠(yuǎn)高于普通紋理,鑒于此,在處理圖片前,首先檢測(cè)智能終端的圖像處理引擎是否支持預(yù)定的處理方式,其中,所述預(yù)定的處理方式包括具有某方面處理優(yōu)勢(shì)的處理方式,如處理速度快、處理效果好、耗能低等,以便于結(jié)合所述圖像處理引擎的處理能力擇優(yōu)進(jìn)行相對(duì)應(yīng)的處理。
在本申請(qǐng)?zhí)峁┑囊粋€(gè)優(yōu)選的實(shí)施例中,所述在接收到所述圖片處理指令后,觸發(fā)檢測(cè)智能終端的圖像處理引擎是否支持預(yù)定的處理方式的步驟,包括:在接收到所述圖片處理指令后,觸發(fā)檢測(cè)智能終端的圖像處理引擎是否支持加載壓縮紋理格式圖片。
由于不同廠商生產(chǎn)的、不同規(guī)格的GPU支持處理的壓縮紋理格式圖片也不同,因此,所述壓縮紋理格式圖片包括以下至少一種格式的圖片:ETC格式,PVR格式,ETC1格式,PVRTC格式,ATITC格式,S3TC格式。
在本申請(qǐng)?zhí)峁┑囊粋€(gè)具體實(shí)施例中,所述在接收到所述圖片加載指令后,觸發(fā)檢測(cè)智能終端的圖像處理引擎是否支持處理壓縮紋理格式圖片的步驟,包括:在接收到所述圖片加載指令后,觸發(fā)依次檢測(cè)智能終端的圖像處理引擎是否支持處理預(yù)定的多種格式的壓縮紋理格式圖片。
在本申請(qǐng)?zhí)峁┑囊粋€(gè)具體實(shí)施例中,可以通過(guò)壓縮紋理查詢函數(shù)查詢GPU支持哪些壓縮紋理,例如:stringextensions=(const char*)glGetString(GL_EXTENSIONS)。若返回值為空值則說(shuō)明所述GPU不支持處理壓縮紋理格 式圖片,否則說(shuō)明所述GPU支持處理壓縮紋理格式圖片。此外,也可以依次檢測(cè)所述圖像處理引擎是否支持處理預(yù)定的多種格式的壓縮紋理格式圖片,例如:在搭配有安卓操作系統(tǒng)的智能終端中,可以利用函數(shù)return(extensions.find("GL_OES_compressed_ETC1_RGB8_texture")?。絪tring::npos)可判斷所述圖像處理引擎是否支持處理ETC1格式的壓縮紋理,利用函數(shù)return(extensions.find("GL_EXT_texture_compression_dxt1")?。絪tring::npos||extensions.find("GL_EXT_texture_compression_s3tc")!=string::npos)可判斷所述圖像處理引擎是否支持處理DXT格式的壓縮紋理,利用函數(shù)return(extensions.find("GL_IMG_texture_compression_pvrtc")?。絪tring::npos)可判斷所述圖像處理引擎是否支持處理PVRTC格式的壓縮紋理,利用函數(shù)return(extensions.find("GL_AMD_compressed_ATC_texture")?。絪tring::npos||extensions.find("GL_ATI_texture_compression_atitc")?。絪tring::npos)可判斷所述圖像處理引擎是否支持處理ETC1格式的壓縮紋理,等等。
以上僅舉例說(shuō)明了檢測(cè)智能終端的圖像處理引擎是否支持處理壓縮紋理格式圖片的步驟,并不限制本申請(qǐng)的保護(hù)范圍,通過(guò)現(xiàn)有技術(shù)中的其他方法或函數(shù)檢測(cè)圖像處理引擎是否支持處理壓縮紋理格式圖片,也在本申請(qǐng)的保護(hù)范圍之內(nèi)。
步驟S103:若支持,則向服務(wù)端請(qǐng)求與所述預(yù)定的處理方式對(duì)應(yīng)的圖片。
通過(guò)步驟S102,已檢測(cè)出所述智能終端的圖像處理引擎是否支持預(yù)定的處理方式,若支持,則向服務(wù)端請(qǐng)求與所述預(yù)定的處理方式對(duì)應(yīng)的圖片,進(jìn)而使所述圖像處理引擎已較優(yōu)的預(yù)定的處理方式處理相應(yīng)的圖片,從而充分發(fā)揮所述圖像處理引擎的優(yōu)勢(shì),提高圖片處理效率、提升圖片處理質(zhì)量或降低圖像處理引擎耗能、減少放熱。
仍以上述優(yōu)選的實(shí)施例為例,所述若支持,則向服務(wù)端請(qǐng)求與所述預(yù)定的處理方式對(duì)應(yīng)的圖片的步驟,包括:若支持,則向服務(wù)端請(qǐng)求壓縮紋理格式圖片。
考慮到不同廠商生產(chǎn)的、不同規(guī)格的GPU支持處理的壓縮紋理格式圖片也不同,因此,在本申請(qǐng)?zhí)峁┑囊粋€(gè)實(shí)施例中,所述若支持,則向服務(wù)端請(qǐng)求壓縮紋理格式圖片的步驟,包括:
若支持,則查詢所述圖像處理引擎支持處理的壓縮紋理格式圖片的格式;
向服務(wù)端請(qǐng)求所述圖像處理引擎支持處理的格式的壓縮紋理格式圖片。
與所述觸發(fā)依次檢測(cè)智能終端的圖像處理引擎是否支持處理預(yù)定的多種格式的壓縮紋理格式圖片相對(duì)應(yīng)的,在本申請(qǐng)?zhí)峁┑囊粋€(gè)實(shí)施例中,所述若支持,則向服務(wù)端請(qǐng)求壓縮紋理格式圖片的步驟,包括:若支持至少一種格式的壓縮紋理格式圖片,則向服務(wù)端請(qǐng)求所述圖像處理引擎支持處理的至少一種格式的壓縮紋理格式圖片。
考慮到所述服務(wù)端未必會(huì)有壓縮紋理格式圖片,因此,在本申請(qǐng)?zhí)峁┑囊粋€(gè)實(shí)施例中,所述若支持,則向服務(wù)端請(qǐng)求壓縮紋理格式圖片的步驟,包括:
若支持,則向服務(wù)端請(qǐng)求壓縮紋理格式圖片;
若在預(yù)定的時(shí)間內(nèi)未接收到所述服務(wù)端返回的壓縮紋理圖片,則向服務(wù)端請(qǐng)求普通格式圖片。
其中,所述普通格式圖片包括以下至少一種格式的圖片:JPEG格式,JPG格式,PNG格式,BMP格式,TGA格式。
步驟S104:若不支持,則向服務(wù)端請(qǐng)求與所述圖像處理引擎支持的其他處理方式對(duì)應(yīng)的圖片。
通過(guò)步驟S102,已檢測(cè)出所述智能終端的圖像處理引擎是否支持預(yù)定的處理方式,若不支持,則向服務(wù)端請(qǐng)求與所述圖像處理引擎支持的其他處理方式對(duì)應(yīng)的圖片。
仍以上述優(yōu)選的實(shí)施例為例,所述若不支持,則向服務(wù)端請(qǐng)求與所述圖像處理引擎支持的其他處理方式對(duì)應(yīng)的圖片的步驟,包括:若不支持,則向服務(wù)端請(qǐng)求普通格式圖片。所述普通格式圖片包括以下至少一種格式的圖片:JPEG格式,JPG格式,PNG格式,BMP格式,TGA格式。以上僅示例性的列舉了部分普通格式圖片,并不限制本申請(qǐng)的保護(hù)范圍,除壓縮紋理格式圖片以外的其他格式圖片,均在本申請(qǐng)的保護(hù)范圍之內(nèi)。
至此,通過(guò)步驟S101至步驟S104,完成了本申請(qǐng)?zhí)峁┑挠糜谥悄芙K端的圖片處理流程,相較于現(xiàn)有技術(shù),本申請(qǐng)?jiān)谙蚍?wù)端請(qǐng)求圖片前,首先檢測(cè)智能終端的圖像處理引擎是否支持預(yù)定的處理方式,進(jìn)而有針對(duì)性的向服務(wù)端請(qǐng)求對(duì)應(yīng)的圖片,從而實(shí)現(xiàn)基于智能終端的硬件條件自動(dòng)選擇較優(yōu)的處理方式,因此,可以提高對(duì)圖片的處理能力,進(jìn)而提升應(yīng)用程序的運(yùn)行速度及流暢度,提升用戶使用體驗(yàn)。
在圖片加載的場(chǎng)景中,由于圖片的紋理格式的選擇很大程度上影響著渲染的效率,從而最終影響到軟件的整體性能和用戶體驗(yàn)。紋理圖片分為兩種格式,為GPU壓縮紋理格式圖片與普通紋理格式圖片,其中普通紋理格式圖片是由CPU對(duì)普通格式圖片解碼后獲得的。壓縮紋理格式圖片相較于普通紋理格式圖片,GPU加載速度和渲染速度更高,且文件占用容量更低,優(yōu)勢(shì)明顯。然而,不同的GPU廠商支持的壓縮紋理格式不盡相同,以及相同GPU廠商的不同系列GPU支持的壓縮紋理格式不盡相同,甚至部分低端GPU并不具備支持壓縮紋理加載的能力。
因此,在本申請(qǐng)?zhí)峁┑膬?yōu)選實(shí)施例中,所述圖片處理指令包括圖片加載指令,相較于現(xiàn)有技術(shù),打破了現(xiàn)有必須先解碼才能加載、渲染的圖片處理方式,針對(duì)部分圖像處理引擎支持處理壓縮紋理格式圖片的現(xiàn)狀,在向服務(wù)端請(qǐng)求圖片前,首先檢測(cè)智能終端的圖像處理引擎是否支持處理壓縮紋理格式圖片,若支持,則直接向服務(wù)端請(qǐng)求壓縮紋理格式圖片,這樣,不需要進(jìn)行解碼即可直接加載、渲染。采用本技術(shù),一方面由于壓縮紋理格式圖片相較于普通格式圖片文件占用容量更小,在通過(guò)網(wǎng)絡(luò)傳輸時(shí)消耗的流量更低、占用帶寬更低、耗時(shí)更少;另一方面由于壓縮紋理格式圖片相較于普通格式圖片解碼獲得的普通紋理格式圖片文件占用容量也小,因此,在紋理加載時(shí)可有效降低內(nèi)存到顯存的IO帶寬開(kāi)銷,提高每一幀的計(jì)算與渲染速度,從而提高加載及渲染效率,又由于省略了圖片解碼的步驟,降低了CPU的負(fù)荷,因此,對(duì)于支持處理壓縮紋理格式圖片的智能終端,可以有效提高圖片渲染速度,進(jìn)而提升應(yīng)用程序的運(yùn)行速度及流暢度,提升用戶使用體驗(yàn)。
由于壓縮紋理格式圖片可以由GPU直接加載,而普通格式圖片需要首先由智能終端的CPU解碼后獲得普通紋理格式圖片再進(jìn)行加載,因此,在本申請(qǐng)?zhí)峁┑囊粋€(gè)實(shí)施例中,所述用于智能終端的圖片處理方法還包括:
若接收到所述服務(wù)端返回的壓縮紋理格式圖片,則將所述壓縮紋理格式圖片直接加載到所述圖像處理引擎中形成紋理;
若接收到所述服務(wù)端返回的普通格式圖片,則將所述普通格式圖片解碼后加載到所述圖像處理引擎中形成紋理。
考慮到在所述圖形處理引擎不支持處理壓縮紋理格式圖片時(shí),只能處理普通格式圖片,而現(xiàn)有技術(shù)中,智能終端對(duì)普通格式圖片的渲染方法如下:首先 從服務(wù)端獲取普通格式圖片資源,進(jìn)行相應(yīng)的解碼,解碼的圖片數(shù)據(jù)被緩存至內(nèi)存中,再?gòu)膬?nèi)存中把解碼的圖片數(shù)據(jù)(ARGB像素?cái)?shù)據(jù))傳輸?shù)紾PU顯存中加載成為紋理,在需要使用紋理的時(shí)候進(jìn)行實(shí)時(shí)渲染。通常普通紋理格式圖片的來(lái)源為JPEG和PNG格式圖片,其中JPEG是最常用的圖像文件格式,擁有良好的壓縮性能與圖像質(zhì)量,但是其圖像不帶alpha通道。PNG圖片為無(wú)損壓縮圖像文件格式,支持透明效果,但壓縮比較低。以對(duì)典型的普通格式PNG圖片的渲染為例,在將圖片下載到本地后,首先需要通過(guò)CPU解碼成含有四個(gè)顏色通道分量的RGBA8888格式,然后從CPU內(nèi)存加載到GPU顯存,由于資源數(shù)據(jù)較大,而智能終端內(nèi)存到顯存的IO帶寬有限,使得加載速度較慢。同時(shí),由于RGBA8888格式資源在渲染時(shí)每次的計(jì)算量為:w*h*8*4,其中w為圖像寬度,h為圖像高度,在圖片數(shù)量較多,圖片尺寸較大的情況下會(huì)有計(jì)算負(fù)荷量過(guò)大的問(wèn)題,導(dǎo)致智能終端界面的渲染速度降低。
由于智能終端設(shè)備具有高DPI的特性,在獲取到的普通紋理圖片格式為JPEG時(shí),對(duì)JPEG格式圖片進(jìn)行解碼為RGB565格式,相對(duì)于原始的RGBA8888格式能減少一半的內(nèi)存占有量及數(shù)據(jù)帶寬;若獲取到非壓縮紋理圖片格式為PNG時(shí),圖片解碼完后并轉(zhuǎn)化為RGBA4444格式,相對(duì)于RGBA8888格式圖片同樣能減少一半的內(nèi)存占有量及數(shù)據(jù)帶寬。
因此,在本申請(qǐng)?zhí)峁┑囊粋€(gè)實(shí)施例中,所述若接收到所述服務(wù)端返回的普通格式圖片,則將所述普通格式圖片解碼后加載到所述圖像處理引擎中形成紋理的步驟,包括:
若接收到所述服務(wù)端返回的普通格式圖片,則根據(jù)所述普通格式圖片的格式將所述普通格式圖片解碼為預(yù)定格式的紋理圖片;
將所述預(yù)定格式的紋理圖片傳至圖片處理引擎,由所述圖片處理引擎加載形成紋理。
其中,所述預(yù)定格式的紋理圖片包括以下至少一種格式的紋理圖片:RGB565格式,RGBA4444格式,ARGB8888格式,RGB888格式。
在本申請(qǐng)?zhí)峁┑囊粋€(gè)具體實(shí)施例中,若所述普通格式圖片的格式為JPEG格式,則將所述普通格式圖片解碼為RGB565格式的紋理圖片;若所述普通格式圖片的格式為PNG格式,則將所述普通格式圖片解碼為RGBA4444格式的紋理圖片。通過(guò)上述本方法,可以使普通紋理格式圖片在GPU管道中的計(jì)算與渲染 負(fù)荷量得到降低,提高對(duì)普通格式圖片的處理效率,同時(shí)減小GPU的耗能。
在圖片渲染場(chǎng)景中,針對(duì)某些特征變化較大的圖片,為了保證圖片在智能終端的最終顯示效果,在本申請(qǐng)?zhí)峁┑囊粋€(gè)實(shí)施例中,所述將所述預(yù)定格式的紋理圖片傳至圖片處理引擎,由所述圖片處理引擎加載形成紋理的步驟,包括:將所述預(yù)定格式的紋理圖片按照?qǐng)D像抖動(dòng)算法進(jìn)行抖動(dòng)處理;將抖動(dòng)處理后的預(yù)定格式的紋理圖片傳至圖片處理引擎,由所述圖片處理引擎加載形成紋理。通過(guò)對(duì)解碼完成的圖像像素?cái)?shù)據(jù)進(jìn)行抖動(dòng)處理,提高圖片在移動(dòng)端的顯示效果。
此外,在圖片渲染場(chǎng)景中,所述用于智能終端的圖片處理方法還包括:對(duì)所述紋理進(jìn)行紋理渲染。該步驟有GPU完成,由于對(duì)紋理渲染是現(xiàn)有技術(shù)中的成熟技術(shù),此處不再贅述,采用現(xiàn)有技術(shù)中的任何紋理渲染方法,均在本申請(qǐng)的保護(hù)范圍之內(nèi)。
在上述的實(shí)施例中,提供了一種用于智能終端的圖片處理方法,與之相對(duì)應(yīng)的,本申請(qǐng)還提供一種用于智能終端的圖片處理裝置。請(qǐng)參看圖2,其為本申請(qǐng)?zhí)峁┑囊环N用于智能終端的圖片處理裝置實(shí)施例的示意圖。由于裝置實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。下述描述的裝置實(shí)施例僅僅是示意性的。
本實(shí)施例的一種用于智能終端的圖片處理裝置,包括:圖片處理指令接收單元101,用于接收?qǐng)D片處理指令;檢測(cè)單元102,用于在接收到所述圖片處理指令后,觸發(fā)檢測(cè)智能終端的圖像處理引擎是否支持預(yù)定的處理方式;第一圖片請(qǐng)求單元103,用于若支持,則向服務(wù)端請(qǐng)求與所述預(yù)定的處理方式對(duì)應(yīng)的圖片;第二圖片請(qǐng)求單元104,用于若不支持,則向服務(wù)端請(qǐng)求與所述圖像處理引擎支持的其他處理方式對(duì)應(yīng)的圖片。
可選的,所述檢測(cè)單元包括102:壓縮圖片支持檢測(cè)子單元,用于在接收到所述圖片處理指令后,觸發(fā)檢測(cè)智能終端的圖像處理引擎是否支持加載壓縮紋理格式圖片;
所述第一圖片請(qǐng)求單元103包括:壓縮圖片請(qǐng)求子單元,用于若支持,則向服務(wù)端請(qǐng)求壓縮紋理格式圖片;
所述第二圖片請(qǐng)求單元104包括:普通圖片請(qǐng)求子單元,用于若不支持,則向服務(wù)端請(qǐng)求普通格式圖片。
可選的,所述壓縮圖片請(qǐng)求子單元包括:
第一壓縮圖片請(qǐng)求子單元,用于若支持,則向服務(wù)端請(qǐng)求壓縮紋理格式圖片;
第一普通圖片請(qǐng)求子單元,用于若在預(yù)定的時(shí)間內(nèi)未接收到所述服務(wù)端返回的壓縮紋理圖片,則向服務(wù)端請(qǐng)求普通格式圖片。
可選的,所述用于智能終端的圖片處理裝置還包括:
壓縮圖片加載單元,用于若接收到所述服務(wù)端返回的壓縮紋理格式圖片,則將所述壓縮紋理格式圖片直接加載到所述圖像處理引擎中形成紋理;
普通圖片加載單元,用于若接收到所述服務(wù)端返回的普通格式圖片,則將所述普通格式圖片解碼后加載到所述圖像處理引擎中形成紋理。
可選的,所述壓縮紋理格式圖片包括以下至少一種格式的圖片:
ETC格式,PVR格式,ETC1格式,PVRTC格式,ATITC格式,S3TC格式。
可選的,所述普通格式圖片包括以下至少一種格式的圖片:
JPEG格式,JPG格式,PNG格式,BMP格式,TGA格式。
可選的,所述壓縮圖片支持檢測(cè)子單元包括:壓縮圖片支持依次檢測(cè)子單元,用于在接收到所述圖片加載指令后,觸發(fā)依次檢測(cè)智能終端的圖像處理引擎是否支持處理預(yù)定的多種格式的壓縮紋理格式圖片;
所述壓縮圖片請(qǐng)求子單元包括:第二壓縮圖片請(qǐng)求子單元,用于若支持至少一種格式的壓縮紋理格式圖片,則向服務(wù)端請(qǐng)求所述圖像處理引擎支持處理的至少一種格式的壓縮紋理格式圖片。
可選的,所述壓縮圖片請(qǐng)求子單元包括:
壓縮圖片查詢子單元,用于若支持,則查詢所述圖像處理引擎支持處理的壓縮紋理格式圖片的格式;
第三壓縮圖片請(qǐng)求子單元,用于向服務(wù)端請(qǐng)求所述圖像處理引擎支持處理的格式的壓縮紋理格式圖片。
可選的,所述普通圖片加載單元包括:
普通圖片解碼子單元,用于若接收到所述服務(wù)端返回的普通格式圖片,則根據(jù)所述普通格式圖片的格式將所述普通格式圖片解碼為預(yù)定格式的紋理圖片;
普通紋理加載子單元,用于將所述預(yù)定格式的紋理圖片傳至圖片處理引擎,由所述圖片處理引擎加載形成紋理。
可選的,所述預(yù)定格式的紋理圖片包括以下至少一種格式的紋理圖片:
RGB565格式,RGBA4444格式,ARGB8888格式,RGB888格式。
可選的,所述普通圖片解碼子單元包括:
第一普通圖片解碼子單元,用于若所述普通格式圖片的格式為JPEG格式,則將所述普通格式圖片解碼為RGB565格式的紋理圖片;
第二普通圖片解碼子單元,用于若所述普通格式圖片的格式為PNG格式,則將所述普通格式圖片解碼為RGBA4444格式的紋理圖片。
可選的,所述普通紋理加載子單元包括:
抖動(dòng)子單元,用于將所述預(yù)定格式的紋理圖片按照?qǐng)D像抖動(dòng)算法進(jìn)行抖動(dòng)處理;
抖動(dòng)紋理加載子單元,用于將抖動(dòng)處理后的預(yù)定格式的紋理圖片傳至圖片處理引擎,由所述圖片處理引擎加載形成紋理。
可選的,所述用于智能終端的圖片處理裝置還包括:
渲染單元,用于對(duì)所述紋理進(jìn)行紋理渲染。
以上,為本申請(qǐng)?zhí)峁┑囊环N用于智能終端的圖片處理裝置的實(shí)施例。
本申請(qǐng)還提供一種用于智能終端的頁(yè)面顯示方法,所述智能終端的至少一個(gè)頁(yè)面中的至少一副圖片是通過(guò)本申請(qǐng)?zhí)峁┑挠糜谥悄芙K端的圖片處理方法處理后獲得的。
由于本用于智能終端的頁(yè)面顯示方法使用上述用于智能終端的圖片處理方法,相關(guān)之處請(qǐng)參見(jiàn)上述用于智能終端的圖片處理方法的實(shí)施例說(shuō)明,此處不再贅述。
本申請(qǐng)還提供一種用于智能終端的圖片處理終端設(shè)備,包括:
中央處理器;
輸入輸出單元;
存儲(chǔ)器;
所述存儲(chǔ)器中存儲(chǔ)有本申請(qǐng)?zhí)峁┑挠糜谥悄芙K端的圖片處理方法;并在啟動(dòng)后能夠根據(jù)上述方法運(yùn)行。
由于本用于智能終端的圖片處理終端設(shè)備使用上述用于智能終端的圖片處理方法,相關(guān)之處請(qǐng)參見(jiàn)上述用于智能終端的圖片處理方法的實(shí)施例說(shuō)明,此處不再贅述。
本申請(qǐng)還提供一種用于智能終端的圖片處理系統(tǒng),包括客戶端和服務(wù)端,所述客戶端配置有本申請(qǐng)?zhí)峁┑挠糜谥悄芙K端的圖片處理裝置,所述客戶端向所述服務(wù)端請(qǐng)求圖片,并從所述服務(wù)端下載圖片,然后對(duì)所述圖片進(jìn)行處理。
由于本用于智能終端的圖片處理系統(tǒng)配置有上述用于智能終端的圖片處理裝置,相關(guān)之處請(qǐng)參見(jiàn)上述用于智能終端的圖片處理裝置的實(shí)施例說(shuō)明,此處不再贅述。
本申請(qǐng)雖然以較佳實(shí)施例公開(kāi)如上,但其并不是用來(lái)限定本申請(qǐng),任何本領(lǐng)域技術(shù)人員在不脫離本申請(qǐng)的精神和范圍內(nèi),都可以做出可能的變動(dòng)和修改,因此本申請(qǐng)的保護(hù)范圍應(yīng)當(dāng)以本申請(qǐng)權(quán)利要求所界定的范圍為準(zhǔn)。
在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
1、計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
2、本領(lǐng)域技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。