不知從什么時候開始,人們的工作和生活都開始變得離不開手機(jī),手機(jī)幾乎握在每個人的手里。云+AI+5G技術(shù)加持下的新時代,有沒有可能讓手機(jī)不僅可以握在手里,更可以放在云上呢?華為云鯤鵬云手機(jī),就是這樣一個具有跨時代意義的創(chuàng)新產(chǎn)品。 在本次華為開發(fā)者大會HDC.Cloud的開發(fā)者沙龍上,我們有幸邀請到華為云鯤鵬云手機(jī)解決方案架構(gòu)師陳佳敦,為我們廣大的開發(fā)者朋友們詳細(xì)介紹了華為云鯤鵬云手機(jī)以及其背后獨(dú)有的Monbox軟件架構(gòu)的前世今生。 華為云鯤鵬云手機(jī)解決方案架構(gòu)師陳佳敦 既然手機(jī)已經(jīng)如此優(yōu)秀,為何還需要云手機(jī)? 首先,云手機(jī)并不是說取代我們正在使用的手機(jī)終端,而是一種延展和補(bǔ)充。更多的是使用它的智能運(yùn)行、彈性發(fā)放和集群控制等能力,讓移動應(yīng)用從手機(jī)終端運(yùn)行,進(jìn)化到可以在云端智能運(yùn)行。面向越來越多的,如自動化仿真測試、數(shù)據(jù)采集分析和新媒體營銷等場景,單臺手機(jī)的處理效率非常有限,通過云手機(jī)的方式,可以顛覆式地提升處理效率,幫忙企業(yè)大幅降本增效。 此外,通過云手機(jī)技術(shù),還可以為游戲,直播等行業(yè)提供全新的互動體驗方式,開拓新的商業(yè)模式和市場。以云手游場景為例,因為游戲的內(nèi)容實際上是在云上虛擬手機(jī)上運(yùn)行,所以游戲?qū)τ谧罱K玩家來說,無需下載,即點(diǎn)即玩,大幅提高玩家轉(zhuǎn)換率。同樣道理,以直播場景為例,傳統(tǒng)直播為主播一人控制,觀眾僅限于觀看和文字層面互動,基于云手機(jī)開發(fā)的直播應(yīng)用,控制權(quán)可以在多人之間靈活切換轉(zhuǎn)移,實現(xiàn)更深層次的互動體驗。 為何華為云可以做到公有云業(yè)界獨(dú)家? 硬件層面,Powered By Kunpeng,端云同架構(gòu) 目前,全球一共有500多萬移動APP,這些應(yīng)用都是基于ARM指令集進(jìn)行開發(fā)的,海量移動應(yīng)用在向云上遷移的過程中,以前通常采用在通用CPU服務(wù)器上增加實時指令翻譯來實現(xiàn)。但是這會帶來兩個問題:一是會有40%的性能損失,二是還有大約20%的代碼庫無法實時翻譯。 鯤鵬處理器兼容ARM指令集,與移動APP天然同構(gòu),可支持移動APP無縫遷移到云上,性能零損失且無法二次開發(fā)工作量,為云手機(jī)奠定了硬件層面的基礎(chǔ)。 軟件層面,獨(dú)有Monbox架構(gòu),打通云手機(jī)商用任督二脈 云手機(jī)想要實現(xiàn)商用,單有硬件層面的基礎(chǔ)是遠(yuǎn)遠(yuǎn)不夠的,Monbox軟件架構(gòu)正是打通云手機(jī)商用任督二脈的重要一步。 挑戰(zhàn)1:單服務(wù)器云手機(jī)密度提升100% 前面提到,我們選擇兼容ARM的鯤鵬服務(wù)器來運(yùn)行云手機(jī),免去指令集的翻譯性能損耗。但這只解決了CPU的部分,業(yè)界開源的虛擬化和容器方案,都沒有解決GPU性能問題。 Android應(yīng)用,特別是游戲,都是使用OpenGL ES來做渲染加速。開源非直通方案,實現(xiàn)方式如圖1。軟件傳輸和翻譯等處理會帶來CPU、內(nèi)存等資源額外的開銷,導(dǎo)致性能、兼容性等問題。 華為云鯤鵬云手機(jī)將其徹頭徹尾的進(jìn)行調(diào)整改進(jìn),采用GPU直通方案,通過容器的方式,將GPU設(shè)備直接暴露給Android,驅(qū)動直接對接到Android的渲染框架,大幅提升了渲染的性能。同時結(jié)合相關(guān)的驅(qū)動優(yōu)化、綁核調(diào)整、容器隔離優(yōu)化等一系列調(diào)優(yōu)手段,實現(xiàn)單服務(wù)器云手機(jī)并發(fā)提升100%。 2:媲美真機(jī)的端到端接入時延 何為端到端時延,我們這樣舉例,比如客戶端接入到了一臺云手機(jī),打開了一個游戲。當(dāng)這個用戶,點(diǎn)擊了游戲里面的一個按鈕,比如攻擊,那么從點(diǎn)擊的這一瞬間,到用戶看到游戲角色做出攻擊動作的第一幀畫面,就是端到端延時。我們一般用高速攝像機(jī)來測量這個延時。目前真機(jī)是100ms級別的,業(yè)界做到的平均水平是150ms。這個延時越低,用戶的體驗越順暢。 華為云將端到端的延時,拆解成指令輸入、上傳、GPU渲染、視頻編碼、回傳圖像、圖像解碼和顯示到屏幕。這其中占了很大一部分延遲,消耗在將云手機(jī)渲染出來的每一幀圖像,編碼成視頻流,傳輸并在對端進(jìn)行解碼。雖然使用軟件編碼,編碼幀率也能達(dá)到60FPS,但非常耗CPU資源。多用一個,用來跑應(yīng)用的CPU就少一個,服務(wù)器上云手機(jī)的并發(fā)數(shù)量就會下降。其實x86上的GPU編碼其實很成熟了,但是ARM上的還不行,因此華為云引入編碼芯片來減輕CPU的負(fù)載。 華為在編碼和傳輸?shù)募夹g(shù)上也做了很多優(yōu)化,比如將要編碼的圖像,按照一定的規(guī)則做分層,當(dāng)帶寬高的時候,用更高清的編碼方式,傳更多的高清內(nèi)容過去。帶寬低的時候,就只傳粗糙的畫面,動態(tài)適配帶寬。 此外,傳統(tǒng)圖像編碼傳輸過程中,每幀畫面?zhèn)鬏斒谴械?渲染的時候,編碼就需要等待,編碼的時候,傳輸同樣需要等待。通過pipeline技術(shù),把單幀又做了拆分,拆成了一條一條,渲染出一條的時候,編碼就把這一條拿過來開始編碼,編完了就交給傳輸。這樣,一幀畫面渲染完,編碼、傳輸和解碼也都同步完成??蛻舳税堰@一條一條重新拼在一起,渲染到屏幕上即可。這樣預(yù)期最高可降低40%編解碼延時,且圖像分辨率越高,降低越明顯,整個過程對比如圖2。 不僅如此,有了這些技術(shù),再疊加上華為的網(wǎng)絡(luò)加速技術(shù),比如Link Turbo,復(fù)用WIFI、4G雙通道,以及邊緣云+5G的方案,進(jìn)一步降低網(wǎng)絡(luò)傳輸延遲,最終達(dá)到媲美真機(jī)的使用體驗。 3:大幅降低接入流量,為客戶節(jié)省更多成本 除了性價比、端到端延時,還有很重要的一部分是接入的流量。某些場景下,流量的成本甚至占到八成。所以降低流量成本,可以說是很多業(yè)務(wù)商業(yè)能走通的很大的一個因素,而且需要大幅降低。 當(dāng)前編碼主流還是用H.264,華為通過編碼芯片加速向H.265演進(jìn),它的壓縮比相比H.264高50%,可直接省一半流量。此外我們還可以從內(nèi)容壓縮策略上做文章,核心思想就是不降低主觀感知,盡量減少圖像大小。衡量圖像質(zhì)量的率失真數(shù)學(xué)模型是連續(xù)的,但其實人眼主觀感知是一個階梯性的(如圖3紅黑曲線),也就是說,圖像的畫質(zhì)降到某一個臨界點(diǎn),我們才會看的出來明顯的變化,如果看的還是一個視頻,影響會更小?;谥饔^感知的大原則,加上SCC算法,把圖像中重復(fù)的元素做壓縮,對App界面這種類型效果非常好,接近一半。游戲這種動態(tài)的也有近7%。以及基于AI的,用特定場景圖像預(yù)先訓(xùn)練好編碼的模型,來提升壓縮率。 這些都是視頻流的一些優(yōu)化,當(dāng)內(nèi)容分辨率提升的時候,需要的算力和帶寬也是成倍增長。因此我們也在研究指令流,這種方式是傳輸原始渲染指令和數(shù)據(jù)的,好處是畫質(zhì)不會有損失,傳輸?shù)臄?shù)據(jù)量跟分辨率也沒有關(guān)系,在高分辨率的情況下,帶寬節(jié)省優(yōu)勢會很明顯。 圖3生態(tài)層面,更懂Andriod和終端 華為本身也是業(yè)界領(lǐng)先的終端研發(fā)制造商,在基礎(chǔ)硬件、攝像頭、基礎(chǔ)傳感器、位置傳感器以及網(wǎng)絡(luò)制式方面都有深厚的技術(shù)積累,華為云和終端的結(jié)合,可以為客戶提供更接近真實手機(jī)的云手機(jī)使用體驗。在Android手機(jī)系統(tǒng)方面,華為也投入了大量的研發(fā)資源,面對億級規(guī)模代碼量的系統(tǒng),華為可根據(jù)業(yè)務(wù)需求變化提供系統(tǒng)級的優(yōu)化和運(yùn)維能力。同時嚴(yán)選應(yīng)用可借助華為終端應(yīng)用市場,實現(xiàn)商業(yè)快速變現(xiàn)。 |