• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Android車載娛樂系統(tǒng)實(shí)時(shí)視頻流傳輸策略的研究

      2021-12-14 01:44:45張士宏馮沖
      內(nèi)燃機(jī)與配件 2021年1期

      張士宏 馮沖

      摘要:本文對(duì)Android原生camera系統(tǒng)實(shí)時(shí)視頻流處理方案進(jìn)行深入研究的基礎(chǔ)上,結(jié)合現(xiàn)在車載camera設(shè)備特點(diǎn),提出一種新的實(shí)時(shí)視頻流傳輸策略,很好地滿足了車載定制化需求,非常適合智能座艙系統(tǒng)對(duì)各種車載camera設(shè)備的應(yīng)用場(chǎng)景。

      Abstract: Based on the in-depth study of the real-time video stream processing solution of the Android native camera system, this article proposes a new real-time video stream transmission strategy based on the characteristics of the current vehicle camera equipment, which satisfies the needs of vehicle customization and is very suitable The application scenarios of the smart cockpit system to various on-board camera equipment.

      關(guān)鍵詞:Android;camera;智能座艙

      中圖分類號(hào):TP311.52? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號(hào):1674-957X(2021)01-0211-02

      1? 車載娛樂系統(tǒng)中camera的廣泛使用

      車載信息娛樂系統(tǒng)(In-Vehicle Infotainment,簡(jiǎn)稱IVI)是一類基于車身總線系統(tǒng)和網(wǎng)絡(luò)服務(wù)的獨(dú)立綜合信息處理系統(tǒng),通常要支持實(shí)時(shí)路況、三維導(dǎo)航、輔助駕駛、故障檢測(cè)、車輛信息、車身控制、移動(dòng)辦公、無(wú)線通訊、基于在線的娛樂功能及TSP服務(wù)等一系列車載應(yīng)用。IVI系統(tǒng)極大的提升的車輛電子化、網(wǎng)絡(luò)化和智能化水平,是未來汽車智能化發(fā)展中智能座艙的重要組成部分[1]。

      攝像頭設(shè)備(camera)在汽車電子領(lǐng)域尤其在IVI系統(tǒng)和ADAS系統(tǒng)中有著廣泛的使用。車載camera捕捉實(shí)時(shí)視頻圖像,為汽車提供了感知周圍環(huán)境和車內(nèi)情況的第一手視覺信息,IVI系統(tǒng)和ADAS系統(tǒng)中的相機(jī)系統(tǒng)、視頻會(huì)議系統(tǒng)、360環(huán)視系統(tǒng)、倒車影像系統(tǒng)、流媒體后視鏡系統(tǒng)、行車記錄儀系統(tǒng)、車道偏離檢測(cè)系統(tǒng)、防碰撞預(yù)警系統(tǒng)、交通標(biāo)志識(shí)別系統(tǒng)、車輛周圍盲點(diǎn)監(jiān)控系統(tǒng)、駕駛?cè)俗⒁饬ΡO(jiān)控系統(tǒng)、遠(yuǎn)程視頻監(jiān)控系統(tǒng)等功能都需要借助車載camera來實(shí)現(xiàn)。車載camera主要包括前視攝像頭、后視攝像頭、側(cè)視攝像頭、環(huán)視攝像頭、內(nèi)視攝像頭等。以特斯拉Autopilot 2.0 L2級(jí)系統(tǒng)為例,該車擁有三個(gè)前視攝像頭、三個(gè)后視攝像頭、兩個(gè)側(cè)視攝像頭,八個(gè)攝像頭協(xié)同工作是特斯拉能夠?qū)崿F(xiàn)自動(dòng)駕駛的基礎(chǔ)之一[2]。除了傳統(tǒng)的有線傳輸型設(shè)備外,車載camera目前普遍采用的另一類設(shè)備是網(wǎng)絡(luò)camera。網(wǎng)絡(luò)camera是傳統(tǒng)攝像頭技術(shù)、數(shù)據(jù)信號(hào)處理技術(shù)與網(wǎng)絡(luò)技術(shù)結(jié)合的產(chǎn)物。

      2? Android原生camera系統(tǒng)實(shí)時(shí)視頻流傳輸策略分析

      Android原生camera系統(tǒng)是Android內(nèi)部最重要也是最為復(fù)雜的子系統(tǒng)之一,在Android 8.0之后camera系統(tǒng)的架構(gòu)已演進(jìn)到FW+HAL+Kernel這種經(jīng)典構(gòu)成,camera詳細(xì)架構(gòu)如圖1所示。

      從新的camera子系統(tǒng)架構(gòu)可知,它完全符合Treble框架,同時(shí)FW層服務(wù)和HAL層分別在兩個(gè)獨(dú)立的服務(wù)進(jìn)程中。重新設(shè)計(jì)的Camera API大幅提升了應(yīng)用對(duì)于 Android 設(shè)備上的camera子系統(tǒng)的控制能力,同時(shí)極大地提高了camera子系統(tǒng)效率和可維護(hù)性。

      camera子系統(tǒng)FW層可分為服務(wù)層和native層,它通過一個(gè)承上啟下的服務(wù)進(jìn)程CameraService統(tǒng)一管理這FW內(nèi)部的流程和通信。在FW中,CameraManager通過CameraManagerGlobal訪問CameraServiceNative服務(wù),并注冊(cè)CamreaServiceNative的回調(diào)監(jiān)聽,CameraServiceNative持有CameraServiceListener列表,并將回調(diào)結(jié)果給CameraManager。CameraServiceNative服務(wù)會(huì)實(shí)例化一個(gè)了CameraDeviceClient,CameraDeviceClient會(huì)去創(chuàng)建Camera3Device。CameraDeviceClient包含了camera子系統(tǒng)大部分基礎(chǔ)業(yè)務(wù)功能,包括發(fā)起預(yù)覽(preview)及預(yù)覽數(shù)據(jù)流處理、拍照及錄像數(shù)據(jù)流處理等[3]。Camera3Device負(fù)責(zé)native中所有stream相關(guān)的創(chuàng)建和管理工作,在Camera3Device主要存在Camera3OutputStream和Camera3InputStream兩種stream,前者主要作為HAL層的輸出,是請(qǐng)求HAL層填充數(shù)據(jù)的output流,后者是由Framework將Stream進(jìn)行填充。無(wú)論是Preview、record還是capture均是從HAL層獲取數(shù)據(jù),故都會(huì)以output流的形式存在。

      camera子系統(tǒng)Hal層可分為服務(wù)層和設(shè)備so庫(kù),服務(wù)層通過動(dòng)態(tài)加載的方式去調(diào)用設(shè)備庫(kù)so庫(kù)中的各個(gè)接口。Camera Hal服務(wù)層主要由CameraProvider、CameraDevice和CameraDeviceSession三個(gè)模塊以及對(duì)應(yīng)HIDL接口組成。CameraProvider主要用于枚舉單個(gè)設(shè)備并管理各個(gè)設(shè)備狀態(tài),是Camera Hal服務(wù)層的核心。CameraProvider不直接調(diào)用camera設(shè)備so庫(kù),而是通過CameraDevice去操作。在進(jìn)行拍照/錄像的流程中,活躍的相機(jī)設(shè)備會(huì)話由CameraDeviceSession管理和實(shí)現(xiàn)。camera設(shè)備so庫(kù)會(huì)通過ioctrl去調(diào)用v4l2驅(qū)動(dòng),以實(shí)現(xiàn)對(duì)camera物理設(shè)備的各種操作。v4l2驅(qū)動(dòng)是Linux內(nèi)核中針對(duì)video設(shè)備的一套完整的驅(qū)動(dòng)框架,可實(shí)現(xiàn)豐富的功能。

      應(yīng)用層在發(fā)起視頻采集請(qǐng)求時(shí),會(huì)根據(jù)應(yīng)用場(chǎng)景不同分成預(yù)覽、拍照、錄像、快拍等類型圖像幀數(shù)據(jù)request,F(xiàn)W層會(huì)先根據(jù)camera系統(tǒng)記錄的設(shè)備信息判斷是否可以滿足應(yīng)用層的需求。FW層確認(rèn)可以滿足會(huì)把圖像幀數(shù)據(jù)request轉(zhuǎn)化到FW native層,Camera3Device將request打包封裝并通過CameraProviderManager的HIDL接口發(fā)送到Hal服務(wù)層。Hal層的CameraDevice會(huì)將request放到CameraDeviceSession中去判斷并執(zhí)行,CameraDeviceSession循環(huán)調(diào)用camera設(shè)備so庫(kù)中接口通過v4l2驅(qū)動(dòng)從camera物理設(shè)備中獲取實(shí)時(shí)視頻數(shù)據(jù)楨并通過callback回調(diào)的方式把result反饋給FW native層,最終反饋給應(yīng)用層[3]。

      Android原生的這套camera子系統(tǒng)架構(gòu)是完全根據(jù)傳統(tǒng)有線連接的物理camera設(shè)備的特點(diǎn)和Linux v4l2驅(qū)動(dòng)的流程去設(shè)計(jì)實(shí)現(xiàn)的,但是目前采用Android的車機(jī)IVI系統(tǒng)中很少采用傳統(tǒng)有線連接物理camera設(shè)備而是更多的采用網(wǎng)絡(luò)camera設(shè)備去承擔(dān)實(shí)時(shí)視頻數(shù)據(jù)的采集功能,顯然需要對(duì)camera子系統(tǒng)架構(gòu)的原生視頻流傳輸策略進(jìn)行重新設(shè)計(jì)和優(yōu)化才能滿足車載camera系統(tǒng)的豐富需求。

      3? Android原生camera系統(tǒng)實(shí)時(shí)視頻流傳輸策略改進(jìn)

      梳理車載camera實(shí)時(shí)視頻流傳輸特點(diǎn)可知,camera物理設(shè)備類型豐富但普遍采用網(wǎng)絡(luò)camera,這些網(wǎng)絡(luò)camera大多支持一種或多種適用于流媒體數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)應(yīng)用協(xié)議(包括但不限于RTSP、RTMP、HLS等),網(wǎng)絡(luò)傳輸?shù)牧髅襟w數(shù)據(jù)采用諸如H.264/AVC等編碼格式的視頻流數(shù)據(jù)[4][5]。從前文深度分析的Android原生camera子系統(tǒng)架構(gòu)可知,camera子系統(tǒng)的設(shè)計(jì)是一種類似于管道的方式,從內(nèi)核中采集并傳遞給Hal層后數(shù)據(jù)經(jīng)過層層封裝和轉(zhuǎn)發(fā)會(huì)通過FW層直接傳遞給應(yīng)用層,這期間視頻流數(shù)據(jù)是封裝在“管道”中不對(duì)外暴露的。內(nèi)核是視頻流數(shù)據(jù)的生產(chǎn)者,Hal層和FW層是視頻流數(shù)據(jù)的傳輸者,應(yīng)用層是視頻流數(shù)據(jù)的消費(fèi)者。由于網(wǎng)絡(luò)camera改變了生產(chǎn)者產(chǎn)生數(shù)據(jù)的模式,結(jié)合網(wǎng)絡(luò)camera和Android camera子系統(tǒng)的特點(diǎn),提出以下實(shí)時(shí)視頻流傳輸改進(jìn)策略,如圖2所示。

      改進(jìn)后的傳輸策略引入了Linux系統(tǒng)中虛擬camera的理念,將原生v4l2驅(qū)動(dòng)更換為v4l2loopback,這樣在不大量修改Android中camera FW層和Hal層的結(jié)構(gòu)就可以直接從v4l2loopback獲取camera實(shí)時(shí)視頻流數(shù)據(jù)。需要注意的是由于v4l2loopback并不支持v4l2的所有功能,需要在camera Hal層做少量的配套開發(fā)工作來適配v4l2loopback的一些特性,包括camera設(shè)備的開關(guān)以及camera參數(shù)的獲取和設(shè)置。需要在Hal層設(shè)計(jì)一個(gè)網(wǎng)絡(luò)中間件,負(fù)責(zé)操控網(wǎng)絡(luò)camera并與它進(jìn)行通信,同時(shí)網(wǎng)絡(luò)中間件一個(gè)重要工作是把獲取的流媒體數(shù)據(jù)轉(zhuǎn)換為v4l2loopback需要的yuv、jpeg等格式的圖像幀數(shù)據(jù)。網(wǎng)絡(luò)中間件可以是一個(gè)獨(dú)立的系統(tǒng)服務(wù)進(jìn)程,camera Hal通過IPC方式與該服務(wù)進(jìn)程進(jìn)行通信并可對(duì)其進(jìn)行操作,進(jìn)而間接操作網(wǎng)絡(luò)camera。

      4? 總結(jié)

      為了適應(yīng)IVI系統(tǒng)對(duì)不同類型camera設(shè)備的需求,本文在對(duì)Android原生camera系統(tǒng)實(shí)時(shí)視頻流處理方案進(jìn)行深入研究的基礎(chǔ)上,結(jié)合現(xiàn)在車載camera設(shè)備特點(diǎn)以及流媒體傳輸?shù)奶攸c(diǎn),提出一種新的實(shí)時(shí)視頻流傳輸策略,開發(fā)難度小且靈活性極強(qiáng),很好地滿足了車載定制化需求,非常適合未來智能座艙系統(tǒng)對(duì)各種車載camera設(shè)備的應(yīng)用場(chǎng)景。

      參考文獻(xiàn):

      [1]張曉聰.汽車智能座艙發(fā)展現(xiàn)狀及未來趨勢(shì)[J].汽車縱橫,2019(8):42-45.

      [2]王鵬.視覺傳感器在智能汽車上的應(yīng)用[J].汽車實(shí)用技術(shù),2019(23):41-43.

      [3]李韋鵬,王小雪.基于Android平臺(tái)相機(jī)開發(fā)技術(shù)的研究[J].電腦知識(shí)與技術(shù),2017,13(9):63-64,94.

      [4]姜海嵐,程琳.Android平臺(tái)下實(shí)時(shí)視頻傳輸?shù)年P(guān)鍵技術(shù)及研究[J].電腦知識(shí)與技術(shù),2018,14(34):27,29.

      [5]何俊林.Android音視頻開發(fā)[M].北京:電子工業(yè)出版社,2018.11.

      奉新县| 城步| 达尔| 金华市| 招远市| 淄博市| 余江县| 资阳市| 喀喇| 阳江市| 略阳县| 稷山县| 时尚| 犍为县| 全南县| 铁力市| 蛟河市| 昌江| 芒康县| 安多县| 杂多县| 江川县| 泸西县| 万州区| 济宁市| 闻喜县| 惠东县| 呼图壁县| 六安市| 任丘市| 涪陵区| 玉林市| 仲巴县| 衡水市| 荣成市| 宽甸| 青海省| 鄂托克前旗| 平谷区| 揭东县| 始兴县|