0 引 言?
進入信息時代,汽車的智能化、個性化需求越來越高,汽車駕乘中的安全、娛樂以及信息服務越來越受到重視。但現有大部分的車載系統都存在功能單一,智能化低,使用不便,不易組網等缺點。隨著無線寬帶網絡的發展、數字移動電視的建設、多媒體技術的應用,集多種功能于一體的無線車載媒體處理系統應運而生,它可廣泛地應用于鐵路、地鐵、客運汽車等交通系統。?
本文簡要介紹了基于Au1200處理器,包含無線傳輸、視頻播放、視頻監控等多種功能的嵌入式無線車載媒體處理系統的設計方案,詳細描述了基于ffmpeg的軟壓縮方法,設計并實現了車載系統中視頻監控部分的視頻采集和視頻壓縮。?
1 無線車載媒體處理系統簡介?
基于Au1200的無線車載媒體處理系統網絡架構如圖1所示。采用客戶端/服務器架構,由車載客戶端、車站服務器及通信網絡三部分組成。其中,客戶端選用 AlchemyTM Au1200作為主控芯片。該芯片采用了MIPS32核心,是針對數字多媒體播放器、汽車信息娛樂系統等應用領域設計的一款低功耗、高性能的嵌入式處理芯片。利用Au1200在媒體處理方面的優勢及其豐富的外圍接口,無線車載媒體處理器的系統框圖如圖2所示。用戶可以通過按鍵控制整個系統無線傳輸、視頻播放、視頻監控等多種功能。?
服務器端使用通用的PC機服務器,為整個系統提供多媒體資源管理和無線網絡服務。?
每個裝有無線車載媒體處理器的車輛,可以通過無線網絡連接服務器,并按照指定的方式傳輸媒體資源。?
2 無線車載視頻監控的硬件設計?
Au1200 嵌入式處理器采用MIPS32核心,能夠支持包括MEPG-1,MPEG-2,MPEG-4,WMV9,H.263,MP3,WMA,ASF,AVI和 JPEG等多種媒體格式,其內部集成了專門的媒體加速引擎(Media Acceler-ation Engine,MAE),不需要外部DSP,因而可以簡化編程環境并減少組件,擁有豐富的片上資源和外部接口,支持USB 2.0,IDE,CCIR656攝像頭等接口。無線車載視頻監控硬件框圖如圖3所示。?
其中包括:?
(1)視頻監控輸入部分:采用Omni Vision公司的彩色CMOS圖像傳感器OV9650作為系統的視頻輸入設備,利用Au1200自帶的CIM(Camera InteRFace Module)接口,可以方便地控制OV9650。通過I2C方式,配置OV9650攝像頭的工作模式,通過CIM接口讀入采集到的視頻數據,并映射到內存單元中。根據不同流向需求,處理視頻數據流,實現系統的錄制、存儲、播放、傳送等功能。?
(2)視頻監控數據存放部分:通過ffmpeg軟壓縮方法,將采集到的視頻數據按指定視頻格式實時壓縮成文件存儲于硬盤中。?
(3)視頻監控數據的實時播放部分:采集到的視頻數據映射到內存后,將RGB視頻數據直接輸出到LCD緩沖區中,即可實現監控視頻在LCD設備中的實時播放。系統也支持視頻輸出到VGA接口的顯示設備中實時播放。此時,需要將數字視頻數據轉換為模擬視頻數據??刹捎肁DI公司的ADV7123芯片實現三路高速、10位輸入的高速視頻數/模轉換。三路DAC可以分別處理紅、綠、藍視頻數據,實現模擬顯示終端的高分辨率顯示。?
(4)視頻監控的遠程傳輸部分:通過客戶端系統的無線網卡(支持802.11b/g)連接無線局域網絡,將硬盤中的錄像文件以無線的方式,上傳到服務器中進行保存。?
(5)用戶控制部分:系統設計功能按鍵,分別連接到支持中斷的GPIO口上,用戶通過按鍵選擇方式,方便地對視頻監控進行控制。?
3 無線車載視頻監控的軟件設計?
無線車載視頻監控的軟件部分主要包括:?
(1)內核及驅動部分?
系統使用Linux 2.6.11內核作為系統的內核,通過make menuconfig命令,根據用戶需要配置合適的內核和驅動,生成內核文件鏡像。設備驅動程序與系統硬件緊密相關,通過修改和調試后模塊化的集成于內核之中。所涉及到的驅動程序包括用戶按鍵驅動、攝像頭驅動、LCD/VGA顯示驅動、硬盤驅動、播放器相關的MAE驅動和與無線傳輸相關的無線網卡驅動等。在此著重介紹系統攝像頭驅動的關鍵部分。?
在攝像頭驅動中,定義數據結構cim_cmos_cam-era_config對攝像頭設備進行描述:?
通過上述數據結構,可以有效地描述攝像頭設備的各種參數。其中,config_cmd是一個十六進制的數組,對應不同工作模式的攝像頭配置攝像頭寄存器。?
驅動程序為上層應用提供了API接口,通過對應file_operations數據結構中的各個成員函數進行系統調用,在上層程序中,利用函數調用,讀取驅動中fileoperations的相應成員函數指針,完成對應函數功能。?
在系統的CIM接口的驅動程序中做如下定義:?
成員函數分別完成了與Au1200 CIM接口相連攝像頭設備的打開、控制、讀寫、映射以及釋放等基本功能。例如通過ioctl操作對攝像頭進行配置:?
2)庫與協議棧部分?
為了支持上層應用程序的運行,軟件系統中還必須包含眾多與之相關的函數庫和協議棧。其中,主要包括了與系統運行相關的基本函數庫,與音視頻編解碼相關的音視頻編碼庫,與用戶界面相關的Qtopia庫以及各種接口協議組成的協議棧。?
(3)應用層部分?
視頻監控的軟件流程圖如圖4所示。啟動攝像頭后,將采集到的視頻數據映射到內存中。通過輸出控制,選擇視頻數據的流向。其中,數據處理部分主要涉及與ffmpeg相關的視頻壓縮處理。?
(4)用戶控制部分?
系統采用Qtopia-core-opensource-4.2.2開發用戶界面。由于采用按鍵控制的方式,需要將按鍵驅動程序添加到QT庫中。通過中斷的方式,可以捕獲按鍵信號,并通過QT中的信號與槽的機制控制信號傳輸,使得當每個按鈕被按下時,觸發用戶程序中的某個函數,并將相應的信號量傳遞出去,從而實現對整個系統的控制。?
4 基于ffmpeg的軟壓縮方法?
ffmpeg是一個開源免費的軟件,它提供了錄制、轉換以及流化音視頻的完整解決方案。使用ffmpeg軟壓縮的方式,不增加系統額外的硬件開銷,對采集到的視頻數據進行實時壓縮。在視頻處理應用程序的編寫過程中,需要按照ffmpeg定義的數據結構來描述視頻數據,調用ffmpeg中的各種庫函數,將攝像頭采集到的視頻數據按照設定的格式進行壓縮,并存成視頻文件,其處理流程如圖5所示。?
其中包括:?
(1)ffmpeg初始化:定義與視頻處理相關的數據結構 AVFormatContext,AVOutputFormat,AVStream,AVCodecContext,AVCodec,AVFrame,AVPicture 等,并通過av_register_all(),av_alloc_format_context()等函數初始化相應的數據結構。?
(2)壓縮參數設置:主要涉及到視頻壓縮的相關參數,如幀率、視頻分辨率、編碼類型等,通過av_set_parameters()函數進行設置。?
(3)圖像格式轉換和視頻數據填充:按照視頻監控要求,利用img_convert()等函數對圖像格式進行轉換,并將轉換后的視頻數據通過 avpicture_fill(),fill_yuv_image()等函數填充到AVPicture數據結構中,以供編碼器使用。?
(4)ffmpeg視頻編碼:利用avcodec_encode_rid-eo(),av_rescale_q()等函數,調用ffmpeg編碼庫進行視頻編碼。?
(5)文件存儲操作:利用av_write_header(),av_write_frame(),av_write_trailer()等函數將壓縮后的視頻數據寫入指定文件中。?
(6)采集結束:采集結束后,利用avcodec_close(),av free()等函數釋放內存資源,退出程序。?
ffmpeg提供功能豐富的音視頻函數庫,包括libav- codec,libavformat,libavdevice,libavfilter,libavutil和libswscale等,可為用戶提供許多音視頻處理相關的操作。系統應用程序中調用到的ffmpeg相關函數主要依賴libavformat庫(支持所有的普通音視格式的解析器和產生器的庫)和 libavcodec庫(具有高效、高可復用的音頻/視頻編解碼庫)。?
5 結 語?
本文介紹了基于Au1200無線車載視頻監控的設計與實現,著重介紹了基于ffmpeg軟壓縮方法對視頻數據的壓縮和存儲的實現,在實際應用中具有價值。?
上一篇:汽車電子時代的自動化技術
下一篇:全球定位系統GPS在汽車中的應用
推薦閱讀
史海拾趣
在電子行業的激烈競爭中,Bomar Interconnect公司憑借持續的技術創新,逐漸嶄露頭角。公司研發團隊不斷深入研究新型連接技術,成功推出了一系列高性能、高可靠性的連接器產品。這些產品在市場上獲得了廣泛認可,為公司帶來了穩定的收入來源。同時,公司還積極投入資源,加強與其他企業的技術合作,不斷拓寬產品應用領域,進一步提升了公司的市場競爭力。
1902年,Joseph C. Belden在美國伊利諾伊州芝加哥創立了Belden公司。在創立初期,公司主要生產電線和電纜產品,并逐漸在行業內嶄露頭角。1905年,經過大量的實驗和研究,Belden公司成功研發出“Beldenamel”絕緣材料,這種靈活的搪瓷絕緣材料極大地提升了線纜的性能和可靠性,為公司的早期發展奠定了堅實的基礎。
在電子行業中,品質控制和質量管理是企業生存和發展的關鍵。凱勵公司深知這一點,建立了嚴格的質量管理體系和檢測機制。公司從原材料采購到生產制造、產品檢測等各個環節都嚴格把控品質,確保產品的穩定性和可靠性。此外,凱勵公司還引進了先進的生產設備和檢測儀器,提高了生產效率和產品質量。
近年來,輝芒微積極籌備上市工作,旨在通過資本市場進一步拓展融資渠道和品牌影響力。盡管在上市過程中經歷了兩次撤回申請資料的波折,但公司始終保持著對資本市場的熱情和信心。通過不斷優化內部管理、提升產品競爭力和加強市場拓展,輝芒微最終贏得了市場的廣泛認可。其產品被廣泛應用于智能家居、生活電器、智能穿戴等領域,并與小米、飛科、中興等眾多知名品牌建立了長期穩定的合作關系。
為了進一步提升品牌影響力和市場競爭力,DFRobot積極尋求國際合作機會。他們與國際知名的開源硬件品牌建立了合作關系,共同推廣開源硬件和機器人技術。同時,DFRobot還積極參加各類國際展覽和論壇活動,展示公司的最新產品和技術成果。這些國際合作和交流活動不僅提升了DFRobot的品牌知名度,也促進了公司與國際同行的交流與合作。
隨著環保意識的不斷提高和可持續發展理念的普及,Elektron公司開始注重環保和可持續發展方面的工作。公司積極采用環保材料和節能技術,降低產品制造過程中的能耗和排放。同時,Elektron還加強了對廢棄物的處理和回收工作,努力實現資源的循環利用和環境的可持續發展。這些措施不僅有助于公司降低成本和提高效率,也符合社會和消費者對環保和可持續發展的期望和要求。
以上五個故事分別從不同角度概述了Elektron公司的發展過程,包括創立與初期發展、技術創新與產品多樣化、全球擴張與市場領導地位、技術突破與行業引領以及環保理念與可持續發展等方面。這些故事共同構成了Elektron公司豐富多彩的發展歷程和輝煌成就。
誰用網線直連過兩塊裝有wince5.0的開發板,我的兩塊板子怎么PING不通??? 如題,本人寫了一個基于socket通信的程序,想在兩塊板子之間實現通信,但是服務器和客戶端之間怎么也連不上,我從網上找了一個ping程序,ping了一下發現網絡果然不通,請高人指教。。。是不是我的開發板哪里需要設置一下?… 查看全部問答∨ |
|
DM9000A碰到問題有以下特征: 1,LPC2294用內部RAM 單獨對DM9000讀寫正常(內部RAM接CS1,DM9000A接CS3)。 2,用外部RAM時,不管對不對DM9000A操作,LPC2294程序會出現取指令/數據錯誤(其錯誤出現在從startup.s跳到main的時候)。 3,出現問題 ...… 查看全部問答∨ |
|
我在 EVC 下使用 ShellExecuteEx 函數執行一個 *.exe ,產生一個窗口,我要隱藏顯示這個窗口,我將參數int nShow設置為SW_HIDE ,但是這個窗口還是顯示的出現了,我寫的代碼如下: & ...… 查看全部問答∨ |
InterlockedTestExchange在此函數中的作用 BOOL DDKIomuxSetPinMux(DDK_IOMUX_PIN pin, DDK_IOMUX_OUT outMux, DDK_IOMUX_IN inMux) { UINT32 oldReg, newReg, *pReg; // Update pin muxing using interlocked access &nbs ...… 查看全部問答∨ |
熬了一夜,早上六點準備睡的時候看到這個活動,結果就。。。挺到了中午了 仔細看了下MSP430的ds,感覺還是蠻強大,至少近期學校沒什么課,我可以認真的學習430, 于是就去了TI教室。 一段視頻看下來,睡意全無啊!繼續乎? 繼續也! ...… 查看全部問答∨ |
最近逛德州儀器在線技術支持社區(http://www.deyisupport.com/)的時候發現一個不錯的視頻,和大家分享! 這個視頻是德州儀器精密模擬性應用組的高級應用工程師Thomas Kuehl主講,向各位介紹如何克服模擬集成電路的電氣過應力。 當設計一個電路 ...… 查看全部問答∨ |