當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于Au1200無線車載視頻監(jiān)控的設(shè)計(jì)與實(shí)現(xiàn)

0 引 言
   
進(jìn)入信息時(shí)代,汽車的智能化、個(gè)性化需求越來越高,汽車駕乘中的安全、娛樂以及信息服務(wù)越來越受到重視。但現(xiàn)有大部分的車載系統(tǒng)都存在功能單一,智能化低,使用不便,不易組網(wǎng)等缺點(diǎn)。隨著無線寬帶網(wǎng)絡(luò)的發(fā)展、數(shù)字移動(dòng)電視的建設(shè)、多媒體技術(shù)的應(yīng)用,集多種功能于一體的無線車載媒體處理系統(tǒng)應(yīng)運(yùn)而生,它可廣泛地應(yīng)用于鐵路、地鐵、客運(yùn)汽車等交通系統(tǒng)。
    本文簡(jiǎn)要介紹了基于Au1200處理器,包含無線傳輸、視頻播放、視頻監(jiān)控等多種功能的嵌入式無線車載媒體處理系統(tǒng)的設(shè)計(jì)方案,詳細(xì)描述了基于ffmpeg的軟壓縮方法,設(shè)計(jì)并實(shí)現(xiàn)了車載系統(tǒng)中視頻監(jiān)控部分的視頻采集和視頻壓縮。

1 無線車載媒體處理系統(tǒng)簡(jiǎn)介
    基于Au1200的無線車載媒體處理系統(tǒng)網(wǎng)絡(luò)架構(gòu)如圖1所示。采用客戶端/服務(wù)器架構(gòu),由車載客戶端、車站服務(wù)器及通信網(wǎng)絡(luò)三部分組成。其中,客戶端選用AlchemyTM Au1200作為主控芯片。該芯片采用了MIPS32核心,是針對(duì)數(shù)字多媒體播放器、汽車信息娛樂系統(tǒng)等應(yīng)用領(lǐng)域設(shè)計(jì)的一款低功耗、高性能的嵌入式處理芯片。利用Au1200在媒體處理方面的優(yōu)勢(shì)及其豐富的外圍接口,無線車載媒體處理器的系統(tǒng)框圖如圖2所示。用戶可以通過按鍵控制整個(gè)系統(tǒng)無線傳輸、視頻播放、視頻監(jiān)控等多種功能。

    服務(wù)器端使用通用的PC機(jī)服務(wù)器,為整個(gè)系統(tǒng)提供多媒體資源管理和無線網(wǎng)絡(luò)服務(wù)。
    每個(gè)裝有無線車載媒體處理器的車輛,可以通過無線網(wǎng)絡(luò)連接服務(wù)器,并按照指定的方式傳輸媒體資源。

2 無線車載視頻監(jiān)控的硬件設(shè)計(jì)
   
Au1200嵌入式處理器采用MIPS32核心,能夠支持包括MEPG-1,MPEG-2,MPEG-4,WMV9,H.263,MP3,WMA,ASF,AVI和JPEG等多種媒體格式,其內(nèi)部集成了專門的媒體加速引擎(Media Acceler-ation Engine,MAE),不需要外部DSP,因而可以簡(jiǎn)化編程環(huán)境并減少組件,擁有豐富的片上資源和外部接口,支持USB 2.0,IDE,CCIR656攝像頭等接口。無線車載視頻監(jiān)控硬件框圖如圖3所示。

    其中包括:
    (1)視頻監(jiān)控輸入部分:采用Omni Vision公司的彩色CMOS圖像傳感器OV9650作為系統(tǒng)的視頻輸入設(shè)備,利用Au1200自帶的CIM(Camera Interface Module)接口,可以方便地控制OV9650。通過I2C方式,配置OV9650攝像頭的工作模式,通過CIM接口讀入采集到的視頻數(shù)據(jù),并映射到內(nèi)存單元中。根據(jù)不同流向需求,處理視頻數(shù)據(jù)流,實(shí)現(xiàn)系統(tǒng)的錄制、存儲(chǔ)、播放、傳送等功能。
    (2)視頻監(jiān)控?cái)?shù)據(jù)存放部分:通過ffmpeg軟壓縮方法,將采集到的視頻數(shù)據(jù)按指定視頻格式實(shí)時(shí)壓縮成文件存儲(chǔ)于硬盤中。
    (3)視頻監(jiān)控?cái)?shù)據(jù)的實(shí)時(shí)播放部分:采集到的視頻數(shù)據(jù)映射到內(nèi)存后,將RGB視頻數(shù)據(jù)直接輸出到LCD緩沖區(qū)中,即可實(shí)現(xiàn)監(jiān)控視頻在LCD設(shè)備中的實(shí)時(shí)播放。系統(tǒng)也支持視頻輸出到VGA接口的顯示設(shè)備中實(shí)時(shí)播放。此時(shí),需要將數(shù)字視頻數(shù)據(jù)轉(zhuǎn)換為模擬視頻數(shù)據(jù)??刹捎肁DI公司的ADV7123芯片實(shí)現(xiàn)三路高速、10位輸入的高速視頻數(shù)/模轉(zhuǎn)換。三路DAC可以分別處理紅、綠、藍(lán)視頻數(shù)據(jù),實(shí)現(xiàn)模擬顯示終端的高分辨率顯示。
    (4)視頻監(jiān)控的遠(yuǎn)程傳輸部分:通過客戶端系統(tǒng)的無線網(wǎng)卡(支持802.11b/g)連接無線局域網(wǎng)絡(luò),將硬盤中的錄像文件以無線的方式,上傳到服務(wù)器中進(jìn)行保存。
    (5)用戶控制部分:系統(tǒng)設(shè)計(jì)功能按鍵,分別連接到支持中斷的GPIO口上,用戶通過按鍵選擇方式,方便地對(duì)視頻監(jiān)控進(jìn)行控制。

3 無線車載視頻監(jiān)控的軟件設(shè)計(jì)
   
無線車載視頻監(jiān)控的軟件部分主要包括:
    (1)內(nèi)核及驅(qū)動(dòng)部分
    系統(tǒng)使用Linux 2.6.11內(nèi)核作為系統(tǒng)的內(nèi)核,通過make menuconfig命令,根據(jù)用戶需要配置合適的內(nèi)核和驅(qū)動(dòng),生成內(nèi)核文件鏡像。設(shè)備驅(qū)動(dòng)程序與系統(tǒng)硬件緊密相關(guān),通過修改和調(diào)試后模塊化的集成于內(nèi)核之中。所涉及到的驅(qū)動(dòng)程序包括用戶按鍵驅(qū)動(dòng)、攝像頭驅(qū)動(dòng)、LCD/VGA顯示驅(qū)動(dòng)、硬盤驅(qū)動(dòng)、播放器相關(guān)的MAE驅(qū)動(dòng)和與無線傳輸相關(guān)的無線網(wǎng)卡驅(qū)動(dòng)等。在此著重介紹系統(tǒng)攝像頭驅(qū)動(dòng)的關(guān)鍵部分。
    在攝像頭驅(qū)動(dòng)中,定義數(shù)據(jù)結(jié)構(gòu)cim_cmos_cam-era_config對(duì)攝像頭設(shè)備進(jìn)行描述:


    [!--empirenews.page--]通過上述數(shù)據(jù)結(jié)構(gòu),可以有效地描述攝像頭設(shè)備的各種參數(shù)。其中,config_cmd是一個(gè)十六進(jìn)制的數(shù)組,對(duì)應(yīng)不同工作模式的攝像頭配置攝像頭寄存器。
    驅(qū)動(dòng)程序?yàn)樯蠈討?yīng)用提供了API接口,通過對(duì)應(yīng)file_operations數(shù)據(jù)結(jié)構(gòu)中的各個(gè)成員函數(shù)進(jìn)行系統(tǒng)調(diào)用,在上層程序中,利用函數(shù)調(diào)用,讀取驅(qū)動(dòng)中fileoperations的相應(yīng)成員函數(shù)指針,完成對(duì)應(yīng)函數(shù)功能。
    在系統(tǒng)的CIM接口的驅(qū)動(dòng)程序中做如下定義:

   
    其成員函數(shù)分別完成了與Au1200 CIM接口相連攝像頭設(shè)備的打開、控制、讀寫、映射以及釋放等基本功能。例如通過ioctl操作對(duì)攝像頭進(jìn)行配置:


    (2)庫(kù)與協(xié)議棧部分
    為了支持上層應(yīng)用程序的運(yùn)行,軟件系統(tǒng)中還必須包含眾多與之相關(guān)的函數(shù)庫(kù)和協(xié)議棧。其中,主要包括了與系統(tǒng)運(yùn)行相關(guān)的基本函數(shù)庫(kù),與音視頻編解碼相關(guān)的音視頻編碼庫(kù),與用戶界面相關(guān)的Qtopia庫(kù)以及各種接口協(xié)議組成的協(xié)議棧。
    (3)應(yīng)用層部分
    視頻監(jiān)控的軟件流程圖如圖4所示。啟動(dòng)攝像頭后,將采集到的視頻數(shù)據(jù)映射到內(nèi)存中。通過輸出控制,選擇視頻數(shù)據(jù)的流向。其中,數(shù)據(jù)處理部分主要涉及與ffmpeg相關(guān)的視頻壓縮處理。

    (4)用戶控制部分
    系統(tǒng)采用Qtopia-core-opensource-4.2.2開發(fā)用戶界面。由于采用按鍵控制的方式,需要將按鍵驅(qū)動(dòng)程序添加到QT庫(kù)中。通過中斷的方式,可以捕獲按鍵信號(hào),并通過QT中的信號(hào)與槽的機(jī)制控制信號(hào)傳輸,使得當(dāng)每個(gè)按鈕被按下時(shí),觸發(fā)用戶程序中的某個(gè)函數(shù),并將相應(yīng)的信號(hào)量傳遞出去,從而實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)的控制。

4 基于ffmpeg的軟壓縮方法
     ffmpeg是一個(gè)開源免費(fèi)的軟件,它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。使用ffmpeg軟壓縮的方式,不增加系統(tǒng)額外的硬件開銷,對(duì)采集到的視頻數(shù)據(jù)進(jìn)行實(shí)時(shí)壓縮。在視頻處理應(yīng)用程序的編寫過程中,需要按照ffmpeg定義的數(shù)據(jù)結(jié)構(gòu)來描述視頻數(shù)據(jù),調(diào)用ffmpeg中的各種庫(kù)函數(shù),將攝像頭采集到的視頻數(shù)據(jù)按照設(shè)定的格式進(jìn)行壓縮,并存成視頻文件,其處理流程如圖5所示。

    其中包括:
    (1)ffmpeg初始化:定義與視頻處理相關(guān)的數(shù)據(jù)結(jié)構(gòu)AVFormatContext,AVOutputFormat,AVStream,AVCodecContext,AVCodec,AVFrame,AVPicture等,并通過av_register_all(),av_alloc_format_context()等函數(shù)初始化相應(yīng)的數(shù)據(jù)結(jié)構(gòu)。
    (2)壓縮參數(shù)設(shè)置:主要涉及到視頻壓縮的相關(guān)參數(shù),如幀率、視頻分辨率、編碼類型等,通過av_set_parameters()函數(shù)進(jìn)行設(shè)置。
    (3)圖像格式轉(zhuǎn)換和視頻數(shù)據(jù)填充:按照視頻監(jiān)控要求,利用img_convert()等函數(shù)對(duì)圖像格式進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換后的視頻數(shù)據(jù)通過avpicture_fill(),fill_yuv_image()等函數(shù)填充到AVPicture數(shù)據(jù)結(jié)構(gòu)中,以供編碼器使用。
    (4)ffmpeg視頻編碼:利用avcodec_encode_rid-eo(),av_rescale_q()等函數(shù),調(diào)用ffmpeg編碼庫(kù)進(jìn)行視頻編碼。
    (5)文件存儲(chǔ)操作:利用av_write_header(),av_write_frame(),av_write_trailer()等函數(shù)將壓縮后的視頻數(shù)據(jù)寫入指定文件中。
    (6)采集結(jié)束:采集結(jié)束后,利用avcodec_close(),av free()等函數(shù)釋放內(nèi)存資源,退出程序。
    ffmpeg提供功能豐富的音視頻函數(shù)庫(kù),包括libav-codec,libavformat,libavdevice,libavfilter,libavutil和libswscale等,可為用戶提供許多音視頻處理相關(guān)的操作。系統(tǒng)應(yīng)用程序中調(diào)用到的ffmpeg相關(guān)函數(shù)主要依賴libavformat庫(kù)(支持所有的普通音視格式的解析器和產(chǎn)生器的庫(kù))和libavcodec庫(kù)(具有高效、高可復(fù)用的音頻/視頻編解碼庫(kù))。

5 結(jié) 語(yǔ)
    本文介紹了基于Au1200無線車載視頻監(jiān)控的設(shè)計(jì)與實(shí)現(xiàn),著重介紹了基于ffmpeg軟壓縮方法對(duì)視頻數(shù)據(jù)的壓縮和存儲(chǔ)的實(shí)現(xiàn),在實(shí)際應(yīng)用中具有價(jià)值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉