中國(guó)自動(dòng)駕駛商業(yè)化處于快速發(fā)展階段,各車企在不斷推動(dòng)自動(dòng)駕駛技術(shù)創(chuàng)新的基礎(chǔ)上,也在創(chuàng)新思路,通過給運(yùn)營(yíng)中的自動(dòng)駕駛車配備遠(yuǎn)程安全員,進(jìn)一步保證安全性。據(jù)了解,根據(jù)交通運(yùn)輸部辦公廳2023年11月印發(fā)的《自動(dòng)駕駛汽車運(yùn)輸安全服務(wù)指南(試行)》的通知,在指定的區(qū)域運(yùn)營(yíng)時(shí)可使用遠(yuǎn)程安全員,遠(yuǎn)程安全員人車比不得低于1:3。
當(dāng)車輛遇到緊急情況或自動(dòng)駕駛無法識(shí)別的極端情況,車輛會(huì)進(jìn)行識(shí)別并作出減速、剎停等相關(guān)反應(yīng),并由遠(yuǎn)程安全員進(jìn)行接管。一般在遠(yuǎn)程接管時(shí),會(huì)進(jìn)行低速行駛(5-30km/h),待遠(yuǎn)程駕駛車輛脫困后再切換到正常速度行駛。而在遠(yuǎn)程接管過程中,保證遠(yuǎn)程畫面的實(shí)時(shí)性與穩(wěn)定性至關(guān)重要。其中,畫面時(shí)延決定了遠(yuǎn)程安全員做出反應(yīng)的速度,畫面信息從現(xiàn)場(chǎng)傳送到遠(yuǎn)程操控的屏幕上,需要經(jīng)歷攝像頭采集、編碼、網(wǎng)絡(luò)傳輸、解碼、渲染等環(huán)節(jié),耗時(shí)越長(zhǎng),就會(huì)產(chǎn)生遠(yuǎn)程畫面和一線車況的“時(shí)差”,后果不堪設(shè)想。此外,在公開路段的公網(wǎng)條件下,網(wǎng)絡(luò)挑戰(zhàn)大,一旦出現(xiàn)網(wǎng)絡(luò)不穩(wěn)定的情況,也會(huì)導(dǎo)致畫面卡頓,影響安全員操作。
騰訊云5G遠(yuǎn)程操控解決方案基于經(jīng)過20多年技術(shù)積累,以及騰訊會(huì)議、微信視頻號(hào)等國(guó)民級(jí)產(chǎn)品的打磨的騰訊云實(shí)時(shí)音視頻技術(shù),并從實(shí)時(shí)性和穩(wěn)定性等方面進(jìn)行了優(yōu)化升級(jí),落地Robotaxi商業(yè)化場(chǎng)景,在保障200ms端到端畫面延時(shí)同時(shí),針對(duì)開放道路行駛中出現(xiàn)的單網(wǎng)信號(hào)盲區(qū)和弱帶寬等情況,實(shí)現(xiàn)150ms視頻卡頓率<0.1%,99%分位視頻延遲<200ms,并做到全程視頻無明顯肉眼感知卡頓,讓遠(yuǎn)程安全員實(shí)時(shí)穩(wěn)定掌握車輛一線情況,助力自動(dòng)駕駛商業(yè)化加速落地。
為了達(dá)到這樣的視頻延遲和穩(wěn)定性指標(biāo),其背后面臨的技術(shù)挑戰(zhàn)是非常大的。相比傳統(tǒng)音視頻通話,Robotaxi遠(yuǎn)程接管場(chǎng)景雖然也是1v1,但其視頻路數(shù)往往會(huì)有6-8路,每路分辨率也基本在720P或1080P甚至更高。這樣規(guī)模的像素量,無疑會(huì)增加整體處理延遲以及對(duì)網(wǎng)絡(luò)帶寬的要求。而需求卻是要在這種情況下,進(jìn)一步降低延遲,并在帶寬更弱的網(wǎng)絡(luò)條件下保障視頻的穩(wěn)定性。面對(duì)這樣的矛盾,我們除了針對(duì)硬件性能進(jìn)行了極限優(yōu)化外,為了突破理論瓶頸,還引入了分辨率、多網(wǎng)等新的優(yōu)化自由度。下面是一些具體分享。
全鏈路優(yōu)化,打造極致低延遲
在實(shí)時(shí)性方面,針對(duì)相機(jī)采集、編碼、鏈路傳輸、接收解碼以及渲染等環(huán)節(jié),進(jìn)行全鏈路優(yōu)化,相比基于CPU處理的RTC鏈路將畫面延遲降低約100ms。
采集+圖像變化+編碼加速
圖像變換和視頻編碼等處理,基于硬件芯片加速,往往可以縮短處理延遲,但是不同處理步驟中,芯片內(nèi)存和CPU內(nèi)存之間的轉(zhuǎn)換又可能會(huì)造成一定耗時(shí)。為了實(shí)現(xiàn)最低的延遲處理,基于業(yè)界最常用的nvidia自動(dòng)駕駛芯片平臺(tái),騰訊云音視頻遠(yuǎn)控方案進(jìn)行了完整的發(fā)送鏈路加速優(yōu)化,使得處理過程中數(shù)據(jù)完全基于芯片內(nèi)存進(jìn)行,而不經(jīng)過CPU內(nèi)存。
相機(jī)數(shù)據(jù)采集階段,放棄了最常用的MMAP采集,而是選用了DMA方式進(jìn)行采集,減少了1次CPU拷貝,通過句柄將相機(jī)數(shù)據(jù)直接拷貝到芯片物理內(nèi)存中。
在圖像變換和視頻編碼階段,復(fù)用了編碼器的輸入隊(duì)列作為處理緩沖,采用循環(huán)使用的方式,進(jìn)行圖像變換和視頻編碼的處理,同時(shí)避免阻塞等待。
在編碼輸出時(shí),通過MMAP的方式,將編碼器輸出的編碼數(shù)據(jù)導(dǎo)出到CPU內(nèi)存中,至此實(shí)現(xiàn)了這編碼前的階段數(shù)據(jù)不回落CPU內(nèi)存,降低了處理延遲和CPU占用率。
發(fā)送和接收緩存優(yōu)化
音視頻發(fā)送和接收時(shí),通常會(huì)引入緩存,來保證音視頻傳輸?shù)牧鲿承?。比如發(fā)送階段pacing處理和接收階段的jitterbuffer。騰訊云音視頻遠(yuǎn)控方案中,為了降低延遲,對(duì)緩存進(jìn)行了優(yōu)化。首先是pacing的處理,放棄了應(yīng)用層的pacing,而轉(zhuǎn)向利用發(fā)送端的網(wǎng)絡(luò)模組中的緩存來平穩(wěn)發(fā)送。在JitterBuffer的處理,引入動(dòng)態(tài)的buffer調(diào)整算法,并強(qiáng)調(diào)了通過更快的網(wǎng)絡(luò)估計(jì)和更平穩(wěn)的自適應(yīng)來保證傳輸流暢性,將幀間隔波動(dòng)穩(wěn)定在15ms以內(nèi)。
解碼+渲染+超分加速
類似于發(fā)送段,在接收端解碼到渲染鏈路中,騰訊云音視頻遠(yuǎn)控方案中也引入了全GPU內(nèi)存的處理方式,讓數(shù)據(jù)不經(jīng)過CPU內(nèi)存,盡量減少延遲。同時(shí)在圖像格式變換、超分上采樣等過程中,引入了one-stage的渲染管線處理方式,以進(jìn)一步降低了圖像格式變換和超分處理帶來的延遲。
多視頻流聯(lián)合調(diào)度+實(shí)時(shí)超分
保障低帶寬下視頻QoS
穩(wěn)定性方面,由于公開道路環(huán)境復(fù)雜,網(wǎng)絡(luò)波動(dòng)較大,易出現(xiàn)覆蓋盲區(qū),遠(yuǎn)控視頻質(zhì)量無法有效保障,是阻礙遠(yuǎn)程駕駛落地運(yùn)營(yíng)的一大痛點(diǎn)。騰訊云實(shí)時(shí)音視頻在音視頻碼率自適應(yīng)、HARQ丟包抵抗等傳統(tǒng)抗弱網(wǎng)技術(shù)基礎(chǔ)上,新引入多視頻流qos優(yōu)先級(jí)調(diào)度+動(dòng)態(tài)實(shí)時(shí)超分等多項(xiàng)技術(shù),在極低帶寬的弱網(wǎng)環(huán)境下,也能通過分辨率和優(yōu)先級(jí)調(diào)整,保障主要視頻流的畫質(zhì)和穩(wěn)定傳輸。
多流聯(lián)合帶寬估計(jì)
這里將每個(gè)視頻流的接收間隔和丟包獨(dú)立進(jìn)行反饋,并在發(fā)送端進(jìn)行聯(lián)合帶寬估計(jì)。由于每個(gè)視頻流數(shù)據(jù)發(fā)送時(shí)在時(shí)間和大小上具有獨(dú)立性,相比將所有視頻流的包合并進(jìn)行反饋,每個(gè)視頻流獨(dú)立反饋并聯(lián)合估計(jì)可以更快地響應(yīng)網(wǎng)絡(luò)變化,并且能估計(jì)出更多的帶寬。
碼率+分辨率聯(lián)合調(diào)節(jié)
由于硬件編碼器本身的實(shí)現(xiàn),對(duì)給定分辨率的視頻進(jìn)行編碼時(shí),碼率上往往存在一個(gè)范圍約束。當(dāng)設(shè)置碼率低于這個(gè)范圍時(shí),編碼實(shí)際碼率可能會(huì)不受設(shè)置碼率影響或畫質(zhì)出現(xiàn)劇烈下降。為了讓編碼器能夠更準(zhǔn)確地響應(yīng)設(shè)置碼率,且避免畫質(zhì)的的異常下降,給出了動(dòng)態(tài)分辨率和碼率聯(lián)合調(diào)節(jié)的策略。根據(jù)編碼輸出QP范圍的變化,對(duì)編碼的分辨率進(jìn)行調(diào)整。
發(fā)送優(yōu)先級(jí)調(diào)度
引入基于比例公平的發(fā)送優(yōu)先級(jí)調(diào)度策略,提升主要路視頻流的傳輸優(yōu)先級(jí),利于主要路視頻流搶占到更多帶寬。同時(shí)引入背壓機(jī)制,當(dāng)次要路視頻流數(shù)據(jù)發(fā)送受到對(duì)應(yīng)隊(duì)列數(shù)據(jù)積壓導(dǎo)致的背壓時(shí),會(huì)進(jìn)一步降低次要路視頻流的碼率。
實(shí)時(shí)超分算法
為了降低動(dòng)態(tài)分辨率引入的帶來的分辨率下降對(duì)畫質(zhì)的影響,引入了發(fā)端降采樣+收端超分的聯(lián)合優(yōu)化方案??紤]到延遲的重要性,通過硬件加速來實(shí)現(xiàn)降采樣,并利用shader渲染來實(shí)現(xiàn)超分,可以做到<5ms的延遲增加。降采樣和超分算法,以PSNR為目標(biāo)進(jìn)行調(diào)教,在2X倍數(shù)下與原圖PSNR>32dB,1.5X倍數(shù)下與原圖PSNR>35dB。
多網(wǎng)絡(luò)路徑傳輸,實(shí)現(xiàn)“0”卡頓
開放道路行駛,網(wǎng)絡(luò)往往會(huì)遇到弱覆蓋區(qū)域,無法有效保障視頻的傳輸。為了提升開放道路上視頻的連續(xù)穩(wěn)定性,需要引入多網(wǎng)絡(luò)路徑傳輸技術(shù),可以讓多個(gè)視頻流在多個(gè)運(yùn)營(yíng)商網(wǎng)絡(luò)上同時(shí)傳輸,并在發(fā)生弱網(wǎng)時(shí)及時(shí)切換,保障視頻傳輸?shù)姆€(wěn)定性。
傳統(tǒng)的網(wǎng)絡(luò)鏈路切換,一方面需要較長(zhǎng)的檢測(cè)時(shí)間,增加了切換的時(shí)長(zhǎng);另一方面切換時(shí),可能會(huì)產(chǎn)生較大的網(wǎng)絡(luò)波動(dòng)引起視頻卡頓。同時(shí)在雙弱網(wǎng)場(chǎng)景下,很容易出現(xiàn)反復(fù)切換或切換失敗導(dǎo)致視頻卡住的情況。為了降低切換時(shí)的視頻卡頓,提升雙弱網(wǎng)情況下的傳輸效率,使用聯(lián)合傳輸?shù)姆绞剑瑢?duì)多網(wǎng)的主副通道進(jìn)行了前向糾錯(cuò)聯(lián)合編碼,通過調(diào)整前向糾錯(cuò)的冗余率以及打孔率平滑多網(wǎng)切換過程,實(shí)現(xiàn)接近0卡頓網(wǎng)絡(luò)切換,并可應(yīng)對(duì)雙弱網(wǎng)場(chǎng)景,實(shí)現(xiàn)通過兩個(gè)網(wǎng)絡(luò)聯(lián)合傳輸。