貝銳CTO張小峰:向日葵自研核心遠(yuǎn)控技術(shù) 造就行業(yè)領(lǐng)先
因?yàn)橐咔榈陌l(fā)生,遠(yuǎn)程辦公成為了很多企業(yè)的日常工作方式,也讓遠(yuǎn)程控制、遠(yuǎn)程桌面軟件逐漸變成了大家常用的工具之一。
遠(yuǎn)程控制軟件只要簡單幾步操作,就能讓遠(yuǎn)程電腦秒變“云主機(jī)”,實(shí)現(xiàn)近似本地電腦的桌面體驗(yàn)。但是,看似簡單的背后其實(shí)蘊(yùn)藏著眾多技術(shù),想用遠(yuǎn)程控制軟件實(shí)現(xiàn)接近本地電腦的操作體驗(yàn)并不容易,清晰度,畫面流暢性、延遲等方面都會影響用戶的體驗(yàn),不同軟件的表現(xiàn)也各有差異。
在高配置電腦中,使用3款軟件同時遠(yuǎn)控另一臺高配置主機(jī),TODESK畫面中的計時器數(shù)字最小,說明傳輸畫面出現(xiàn)了滯后,對比向日葵、TEAMVIEWER,平均大約慢了100毫秒,畫面也不夠連貫。向日葵和TEAMVIEWER則是非常接近,差異只有20~50毫秒,很難讓人感知出兩款軟件之間的區(qū)別。
畫面延遲高的遠(yuǎn)控軟件,辦公時很容易出現(xiàn)鼠標(biāo)不跟手的情況,移動鼠標(biāo)后,畫面中的指針明顯會慢上一拍,影響辦公心情,如果用于3D建模、CAD設(shè)計那就容易影響工作效率,甚至造成項(xiàng)目進(jìn)度滯后,無法勝任企業(yè)遠(yuǎn)程辦公所需。
那么為何同為遠(yuǎn)程控制軟件,實(shí)際使用時的畫面流暢性卻會存在差距呢?為了探究其中的原因,我們有幸聯(lián)系并采訪了貝銳CTO張小峰。
在上述對比測試中,表現(xiàn)突出的向日葵遠(yuǎn)程控制正是貝銳旗下產(chǎn)品。貝銳從2006年至今已有5000萬以上注冊用戶、3.2億接入設(shè)備,并服務(wù)了70多萬家企業(yè)客戶,旗下向日葵稱得上是國民遠(yuǎn)控。
作為國內(nèi)遠(yuǎn)程控制行業(yè)老牌玩家,向日葵擁有大量領(lǐng)先技術(shù),不止是低延遲、高清畫面,甚至實(shí)現(xiàn)了業(yè)內(nèi)少有的144幀高幀率。
遠(yuǎn)控軟件的算法是關(guān)鍵,向日葵擁有自研算法SADDC
張小峰認(rèn)為,向日葵遠(yuǎn)程控制之所以可以始終保持大幅技術(shù)領(lǐng)先,是因?yàn)檐浖褂玫南嚓P(guān)算法擁有很高的壁壘。其中之一是向日葵不同于大部分遠(yuǎn)程控制軟件,并沒有采用通用或開源視頻編解碼算法,而是擁有一套自研算法――SUNLOGIN ADVANCED DESKTOP DYNAMIC CODEC(簡稱:SADDC)。
我們也了解到,SADDC是業(yè)內(nèi)為數(shù)不多,甚至可能是國內(nèi)唯一專門針對遠(yuǎn)程控制場景自研的視頻編解碼算法。
為何視頻編解碼算法是遠(yuǎn)程控制軟件的核心技術(shù)之一,也是實(shí)現(xiàn)低延遲、高流暢度、高幀率的關(guān)鍵,其實(shí)和這類軟件的工作原理密不可分。
要在本地電腦上操作和顯示另一臺電腦,簡單來說,就需要將本地電腦的操作指令發(fā)送給遠(yuǎn)程電腦,并將遠(yuǎn)程電腦的畫面進(jìn)行實(shí)時回傳。
由于操作指令本身涉及的數(shù)據(jù)量較小,因此影響遠(yuǎn)程控制軟件畫面延遲的因素主要集中體現(xiàn)在圖像傳輸方面。這一過程往往要涉及軟件對遠(yuǎn)程電腦畫面的實(shí)時采集、數(shù)據(jù)壓縮,并將壓縮后的數(shù)據(jù)通過網(wǎng)絡(luò),傳回本地電腦之后再進(jìn)行解碼,才能最終呈現(xiàn)畫面。所以,當(dāng)網(wǎng)絡(luò)條件基本相同時,主要性能差距體現(xiàn)在圖像壓縮、解碼環(huán)節(jié)的算法上。
另一方面,遠(yuǎn)程控制場景不同于播放在線流媒體,在遠(yuǎn)程辦公過程中,整個畫面并不會同時變化。比如:用戶遠(yuǎn)程編輯文檔時,除了部分菜單、輸入法候選框、鼠標(biāo)移動位置,其余畫面可能類似靜態(tài)圖片,長時間都不會有改變。
如果遠(yuǎn)程控制軟件使用通用的視頻編解碼壓縮畫面,被控主機(jī)的每一幀畫面都要整體進(jìn)行計算,不僅對算力要求較高,而且會產(chǎn)生大量冗余數(shù)據(jù),對網(wǎng)絡(luò)傳輸造成較大的壓力,往往每秒30幀左右就已經(jīng)很難兼顧畫質(zhì)和數(shù)據(jù)量。
此外,大多數(shù)通用視頻編解碼算法為了實(shí)現(xiàn)更高的數(shù)據(jù)壓縮率,會將多個被壓縮幀標(biāo)記為I、P、B幀,共同組成GOP后才能順利完成壓縮和解碼。這一方式如果用于遠(yuǎn)程桌面場景就會產(chǎn)生一些問題,不僅無法實(shí)現(xiàn)單幀高效率壓縮,這類多幀“打包”的計算方式,也帶來了較高的延遲,無法實(shí)現(xiàn)低延遲畫面?zhèn)鬏敗?/p>
向日葵自研的SADDC算法,不同于通用的視頻編解碼算法,針對遠(yuǎn)控桌面環(huán)境做了大量優(yōu)化。首先,SADDC會對畫面進(jìn)行智能切片、分區(qū),根據(jù)畫面復(fù)雜程度甚至可以細(xì)化到1000~2000個區(qū)塊,并智能判斷畫面變化情況,僅對畫面有變化的區(qū)塊進(jìn)行重新計算、壓縮,并進(jìn)行傳輸。如此一來,解決了通用編解碼算法壓縮整個畫面會產(chǎn)生大量冗余數(shù)據(jù)的問題,并大幅降低了算力需求。
此外,SADDC算法不僅能將畫面智能切片壓縮、計算,而且還會智能判斷畫面的變化幅度,如果畫面中不存在大幅運(yùn)動物體,會和部分手機(jī)屏幕(例如IPHONE13 PRO)的動態(tài)刷新率類似,自動降低幀率,最低可無感調(diào)節(jié)至1幀或是暫停畫面刷新。例如:用戶沒有任何操作時的靜態(tài)桌面就會采用1幀、普通辦公場景可能是15幀,視頻播放、游戲時則是30~60幀,確保流暢度的同時,進(jìn)一步降低了傳輸數(shù)據(jù)量。
不過,要想實(shí)現(xiàn)更高的144幀遠(yuǎn)控,光靠上述這些技術(shù)還不夠。在主機(jī)配置足夠的情況下,向日葵可以充分利用GPU的強(qiáng)大算力,并在GPU“內(nèi)部”直接實(shí)現(xiàn)畫面的計算和壓縮,并不會將數(shù)據(jù)轉(zhuǎn)存至系統(tǒng)內(nèi)存再進(jìn)行計算,不會產(chǎn)生額外的延遲。同時,由于直接從GPU內(nèi)部獲取圖像數(shù)據(jù),不僅這一過程幾乎不存在延遲,甚至可能先于顯示器獲得畫面。
當(dāng)然,針對不同用戶的實(shí)際使用需求,除了高幀率,向日葵還進(jìn)行了極具用戶體感的優(yōu)化。比如:針對目前筆記本、手機(jī)等小尺寸高像素屏幕,向日葵會根據(jù)屏幕PPI或是系統(tǒng)縮放比例,自動調(diào)節(jié)分辨率匹配設(shè)備屏幕,節(jié)省傳輸數(shù)據(jù)量的同時,確保畫面細(xì)節(jié)清晰,達(dá)到最佳顯示效果。
除了最核心的圖像算法,為了優(yōu)秀的操控體驗(yàn),向日葵在網(wǎng)絡(luò)傳輸層面也做了優(yōu)化。對于鼠標(biāo)指令的傳輸,向日葵的通過相關(guān)算法來匹配畫面,實(shí)現(xiàn)精確同步,從而避免了鼠標(biāo)指針和實(shí)際移動軌跡不同步,也就是不跟手的情況。
所以,對于一款遠(yuǎn)程控制軟件來說,要想同時實(shí)現(xiàn)低延遲、高幀率的畫面?zhèn)鬏敚鋵?shí)并不容易,這一背后往往會涉及大量的算法,非常考驗(yàn)廠商的技術(shù)實(shí)力。
最后,值得一提的是,采訪臨近尾聲時,張小峰還透露了貝銳選擇自研SADDC算法的另一個原因。他告訴我們說,之所以會有SADDC算法,也是出于一種對技術(shù)的極致追求。
成立于2006年的貝銳,剛推出國民遠(yuǎn)控向日葵時,市面上幾乎沒有同類產(chǎn)品,而且通用視頻算法也不如目前這么豐富、完善,甚至當(dāng)時的CPU也不具備足夠的算力,無法實(shí)時編碼H.264、H265這樣的視頻編解碼算法。同時,當(dāng)時的電腦算力也不像如今這么強(qiáng)大,要想實(shí)時處理整個畫面,達(dá)到流暢的體驗(yàn)是非常困難的。為了解決這些看似無解的難題,實(shí)現(xiàn)更為完美的遠(yuǎn)控體驗(yàn),貝銳只能選擇自研,幾乎從零開始自主研發(fā)了SADDC算法,從而為當(dāng)時的用戶提供了優(yōu)秀的遠(yuǎn)控服務(wù)。
正是貝銳經(jīng)年累月在技術(shù)上的堅持不懈和極致追求,以及對技術(shù)細(xì)節(jié)的不斷打磨,才使得貝銳能夠不斷突破技術(shù)瓶頸,造就如今向日葵在遠(yuǎn)程控制、遠(yuǎn)程連接技術(shù)上的優(yōu)勢,擁有低延遲的流暢畫面和業(yè)內(nèi)難以達(dá)到的144幀高幀率,遠(yuǎn)遠(yuǎn)超越了國內(nèi)同行,甚至稱得上領(lǐng)導(dǎo)了國內(nèi)整個行業(yè)的發(fā)展。