《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARM9的視頻監(jiān)控終端的設(shè)計(jì)與實(shí)現(xiàn)
基于ARM9的視頻監(jiān)控終端的設(shè)計(jì)與實(shí)現(xiàn)
中電網(wǎng)
摘要: 文中設(shè)計(jì)了一種基于ARM9 架構(gòu)S3C2410 的嵌入式的視頻監(jiān)控系統(tǒng),。完成了視頻圖像的采集、編碼壓縮,、傳輸?shù)裙δ堋?它不僅具有抗干擾能力強(qiáng),, 適合遠(yuǎn)距離傳輸,, 能夠加密,, 充分利用現(xiàn)有網(wǎng)絡(luò)資源等諸多優(yōu)點(diǎn),, 而且可移植性強(qiáng)、低功耗,、成本低,、易于安裝、使用方便和便于維護(hù)等優(yōu)點(diǎn),,并且采用軟件實(shí)現(xiàn)其主要功能,, 有利于系統(tǒng)的二次開發(fā)及升級(jí), 其應(yīng)用范圍和前景將非常廣闊,。
關(guān)鍵詞: ARM ARM9 視頻監(jiān)控 S3C2410
Abstract:
Key words :

視頻監(jiān)控系統(tǒng)是安全防范系統(tǒng)的重要組成部分,, 它具有直觀, 方便,, 信息內(nèi)容豐富而被廣泛應(yīng)用于許多場(chǎng)合,。傳統(tǒng)的數(shù)字視頻監(jiān)控一般采用基于PC機(jī)平臺(tái)+ 視頻采集卡的形式, 該方案有系統(tǒng)體積大,、成本高,、穩(wěn)定性不夠好等缺點(diǎn)。隨著嵌入式系統(tǒng)監(jiān)控和視頻壓縮技術(shù)的日漸成熟,, 以及高網(wǎng)絡(luò)帶寬的普及,, 通過嵌入式平臺(tái), 實(shí)現(xiàn)視頻信號(hào)采集、壓縮,, 通過網(wǎng)絡(luò)傳輸,, 進(jìn)行視頻監(jiān)控已成為可能。 該設(shè)計(jì)采用的是韓國(guó)三星公司的一款基于ARM920T 內(nèi)核的嵌入式處理器,, 并將國(guó)際上流行的MPEG4 壓縮編碼技術(shù)和流媒體傳輸技術(shù)相結(jié)合,,開發(fā)出可靠性高、成本低,、體積小,、功耗低的遠(yuǎn)程視頻監(jiān)控系統(tǒng)終端。

1  系統(tǒng)開發(fā)硬件平臺(tái)

系統(tǒng)硬件平臺(tái)如圖1 所示,。該設(shè)計(jì)采用的是韓國(guó)三星公司的S3C2410 ARM 嵌入式處理器,, 主頻可以達(dá)到203 MHz. 內(nèi)置有豐富的外設(shè)資源, 包括存儲(chǔ)器,、串口,、網(wǎng)口和USB 等接口控制設(shè)備,主要面向手持設(shè)備以及高性價(jià)比,、低功耗的應(yīng)用,。 S3C2410 作為系統(tǒng)控制單元,其出色的性能,、豐富的片內(nèi)外資源,、對(duì)視頻處理功能的優(yōu)化、低功耗等特點(diǎn)成為系統(tǒng)的首選,。該核心板內(nèi)置了64 MK9F1208 的NAND Flash, 2MSST39VF1601 的Nor Flash, 以及以太網(wǎng)控制芯片國(guó)三星公司的S3C2410 ARM 嵌入式處理器,, 主頻可以達(dá)到203 MHz. 內(nèi)置有豐富的外設(shè)資源, 包括存儲(chǔ)器,、串口,、網(wǎng)口和USB 等接口控制設(shè)備, 主要面向手持設(shè)備以及高性價(jià)比,、低功耗的應(yīng)用,。 S3C2410 作為系統(tǒng)控制單元,其出色的性能,、豐富的片內(nèi)外資源,、對(duì)視頻處理功能的優(yōu)化、低功耗等特點(diǎn)成為系統(tǒng)的首選,。該核心板內(nèi)置了64 MK9F1208 的NAND Flash, 2MSST39VF1601 的Nor Flash, 以及以太網(wǎng)控制芯片CS8900Q3. 兩路UART 串行口支持RS232 協(xié)議,,用于和PC 通訊和控制攝像頭, 波特率高達(dá)115 200 bps. 外接USB 攝像頭采用的是基于中星微Z301 芯片的極速攝像頭,。 像素達(dá)到130 萬,, 色彩位數(shù)24 位,, 最大幀數(shù)可以達(dá)到30 幀, 畫面流暢,、清晰,, 支持: S3C2410、QQ2440v3 mini2440 等ARM9 開發(fā)板,, 即插即用,, 對(duì)嵌入式系統(tǒng)開發(fā)是個(gè)不錯(cuò)的選擇。

 系統(tǒng)硬件平臺(tái)

圖1 系統(tǒng)硬件平臺(tái)

該系統(tǒng)通過USB 攝像頭采集視頻原始數(shù)據(jù),,S3C2410 作為核心的中央控制和數(shù)據(jù)處理中心,,主要完成視頻采集終端控制和視頻圖像壓縮, 并將壓縮后的視頻數(shù)據(jù)打包形成標(biāo)準(zhǔn)的網(wǎng)絡(luò)數(shù)據(jù)流傳輸?shù)揭蛱鼐W(wǎng)中,。

2  系統(tǒng)的軟件設(shè)計(jì)

系統(tǒng)的軟件設(shè)計(jì)主要包括如下幾個(gè)方面: 交叉編譯環(huán)境的搭建,、USB 視頻采集、視頻編碼壓縮,, 以及視頻流的網(wǎng)絡(luò)傳輸,。 系統(tǒng)軟件架構(gòu)如圖2 所示。

系統(tǒng)軟件架構(gòu)

圖2 系統(tǒng)軟件架構(gòu)

2. 1 交叉編譯環(huán)境的搭建

由于嵌入式開發(fā)板的資源有限,, 不能直接在開發(fā)板上進(jìn)行開發(fā)和調(diào)試,, 需要以交叉編譯調(diào)試的方式進(jìn)行開發(fā)和調(diào)試,鑒于嵌入式Linux 強(qiáng)大的網(wǎng)絡(luò)支持功能,, 源代碼完全開放,、可移植性強(qiáng)、網(wǎng)絡(luò)功能強(qiáng)大等特點(diǎn),, 選用它作為系統(tǒng)軟件平臺(tái),。在系統(tǒng)開發(fā)前需安裝Linux 操作系統(tǒng),, 然后在宿主機(jī)即PC 機(jī)上建立交叉編譯環(huán)境,。安裝對(duì)應(yīng)ARM 開發(fā)板的交叉編譯器cross- 3. 3. 2. tar. bz2. 這樣, 一個(gè)嵌入式ARM- LINU X 下的交叉編譯環(huán)境就搭建成功了,。

2. 2 視頻采集系統(tǒng)的實(shí)現(xiàn)

視頻采集是通過嵌入式Linux 操作系統(tǒng)調(diào)用V4L( video4linux ) 和影像驅(qū)動(dòng)程序來完成的,。

V ideo4linux 是linux 的影像流系統(tǒng)與嵌入式影像系統(tǒng)的基礎(chǔ)。它是linux kernel 里支持影像設(shè)備的一組API( 應(yīng)用接口程序) , 若配合適當(dāng)?shù)囊曨l采集卡與驅(qū)動(dòng)程序,, video4linux 就可以實(shí)現(xiàn)影像采集,、AM/FM 無線廣播、影像CODEC,、頻道切換等功能,。 目前, V4L 主要應(yīng)用在影像串流系統(tǒng)與嵌入式影像系統(tǒng)里,, 如: 遠(yuǎn)程教學(xué),、遠(yuǎn)程醫(yī)療、視頻會(huì)議、視頻監(jiān)控,、可視電話等,。它分為2 層式構(gòu)架, 上層為video4linux驅(qū)動(dòng)程序本身,,下層為影像設(shè)備的驅(qū)動(dòng)程序,, 如該設(shè)計(jì)中的中星微攝像頭Z301 芯片的驅(qū)動(dòng)程序。 在Linux 操作系統(tǒng)中,, 外部設(shè)備都作為設(shè)備文件來管理,, 因此, 對(duì)外部設(shè)備的操作就轉(zhuǎn)變成對(duì)設(shè)備文件的操作,。 采集程序調(diào)用V4L API 對(duì)設(shè)備文件進(jìn)行讀操作,,即可實(shí)現(xiàn)視頻數(shù)據(jù)采集。

由于開發(fā)板自帶的Linux 內(nèi)核并不支持中星微的攝像頭,,所以要在網(wǎng)上下載Z301 驅(qū)動(dòng)芯片的補(bǔ)丁,, 對(duì)應(yīng)ARM- Linux 版本號(hào)。 利用patch 命令打在內(nèi)核上,。 在編譯內(nèi)核的時(shí)候,,會(huì)在usb- > support 出現(xiàn)SPCCA5XX 選項(xiàng),以模塊的形式加載,, 開機(jī)的時(shí)候順序加載Video4linux 和Spca5x x 模塊,, 加載成功后, 會(huì)在設(shè)備文件里看到/ dev/ video0 文件,, 說明USB 攝像頭驅(qū)動(dòng)加載成功,, 就可以在終端對(duì)攝像頭操作進(jìn)行集視頻采集了。

2. 3 視頻編碼壓縮

視頻監(jiān)控系統(tǒng)的要求是要做到實(shí)時(shí)性,, 由于直接通過攝像頭采集到的原始圖像數(shù)據(jù)量大,, 而網(wǎng)絡(luò)帶寬有限,所以一定要經(jīng)過視頻編碼壓縮處理后才能進(jìn)行網(wǎng)絡(luò)傳輸,, 視頻壓縮也是該設(shè)計(jì)的核心內(nèi)容,。

目前, 在眾多視頻編碼算法中,, 影響最大并被廣泛應(yīng)用的國(guó)際標(biāo)準(zhǔn)是H26X 系列和MPEG 系列,。 MPEG系列的MPEG- 4 被ISO/ IEC 批準(zhǔn)為正式標(biāo)準(zhǔn),編號(hào)為ISO/ IEC14496, 它不僅針對(duì)一定比特率下的視頻,、音頻編碼,, 更加注重多媒體系統(tǒng)的交互性和靈活性。這個(gè)標(biāo)準(zhǔn)主要應(yīng)用于視頻電話,, 視頻電子郵件等,, 對(duì)傳輸速率要求較低,, 在4 800~ *00 bit / s 之間, 它能利用很窄的帶寬,, 通過幀重建技術(shù),, 數(shù)據(jù)壓縮, 用最少的數(shù)據(jù)獲得最佳的圖像質(zhì)量,。與MPEG1和MPEG2 相比,, MPEG4 的特點(diǎn)是更適用于交互AV 服務(wù)以及遠(yuǎn)程監(jiān)控。 MPEG- 4 是第一個(gè)使你由被動(dòng)變?yōu)橹鲃?dòng)( 不再只是觀看,, 允許你加入其中,, 即有交互性) 的動(dòng)態(tài)圖像標(biāo)準(zhǔn)。

目前,, 基于MPEG- 4 標(biāo)準(zhǔn)的視頻編解碼器較多,,比較常用的有微軟開發(fā)的msmpegv3, 以及開放源代碼的xvid 和ffmpeg . ffmpeg 是一套完整的錄制、轉(zhuǎn)換,、流化音視頻的解決方案,, 它的兼容性很好,包含了業(yè)界領(lǐng)先的音視頻編解碼庫,,對(duì)嵌入式視頻監(jiān)控系統(tǒng)來說是個(gè)非常好的選擇,。 系統(tǒng)采用了FFMPEG 進(jìn)行視頻編碼、壓縮,。 編碼過程中主要使用FFMPEG 的libavformat 和libavcodec 這兩個(gè)函數(shù)庫,, 許多視頻文件格式一般只是定義如何將視頻流編碼進(jìn)一個(gè)獨(dú)立的文件, 而不明確指出其使用的編碼工具,, libavformat 庫的功能主要是分析視頻文件的語法格式,, 并將它從流中分理出原始的視頻流,libavcodec 庫的功能則是按照流格式處理原始的視頻流編碼,。 視頻編碼的流程如下,, 首先打開文件if( av_open_input_file ( & pFormatCtx, f ilename,NU LL, 0, NU LL) ! = 0)。

然后讀取流文件的信息選擇對(duì)應(yīng)的編解碼器,,并打開對(duì)應(yīng)的編碼器,, 在編碼端需要使用libavformat 庫函數(shù)來讀取數(shù)據(jù)包, 濾除掉不需要的非視頻流數(shù)據(jù),, 然后循環(huán)調(diào)用libavcodec 庫函數(shù)GetNestFrame. 來處理每幀數(shù)據(jù)進(jìn)行編碼。 通過試驗(yàn)一段40s 的視頻原文件,, 分辨率為800×600, 幀率為30, 大小為246 M, 壓縮到FLV 格式后,, 幀率為25, 分辨率為320×240, 碼率為500 K/ s, 壓縮后的大小不到2M, 壓縮比率為120: 1. 得到的視頻文件很清晰、流暢,, 分辨率,、幀率,、時(shí)間碼率、視頻格式都可以更改,,非常方便,,可以達(dá)到實(shí)時(shí)視頻監(jiān)控的要求。

2. 4 視頻數(shù)據(jù)流的網(wǎng)絡(luò)傳輸

利用攝像頭設(shè)備采集的視頻圖像經(jīng)ffmpeg 壓縮為MPEG- 4 視頻流以后,, 需經(jīng)過網(wǎng)絡(luò)傳輸,。 視頻監(jiān)控系統(tǒng)的實(shí)時(shí)性要求較低的時(shí)延和較小的丟包率, 由于TCP 的重發(fā)機(jī)制帶來較大的時(shí)延,, UDP 本身又不提供任何Qos 保證,, 因此需要通過實(shí)時(shí)傳輸協(xié)議( RTP) 和實(shí)時(shí)控制協(xié)議( RTCP) 配合使用, 提供數(shù)據(jù)實(shí)時(shí)傳輸和Qos 服務(wù)來滿足網(wǎng)絡(luò)視頻數(shù)據(jù)實(shí)時(shí)傳輸?shù)囊蟆?RTP 數(shù)據(jù)協(xié)議負(fù)責(zé)對(duì)流媒體數(shù)據(jù)進(jìn)行封裝及完成媒體流的實(shí)時(shí)傳輸,, 本身并不能為按序傳輸數(shù)據(jù)包提供可靠的保證,, 也不提供流量控制和擁塞控制??煽啃詡鬏斒怯膳c它配合使用的實(shí)時(shí)傳輸控制協(xié)議RTCP 來負(fù)責(zé)完成的,。 RTP 是目前解決流媒體實(shí)時(shí)傳輸問題的最好辦法, 系統(tǒng)中的視頻傳輸模塊采用了RTP 和RT CP 傳輸協(xié)議,。

RTP 協(xié)議為傳輸層協(xié)議,, RFC 在對(duì)RTP 的定義過程中并沒有對(duì)其底層協(xié)議進(jìn)行定制。 RT P 不提供網(wǎng)絡(luò)連接,, 在使用中通常需要與U DP 等其他協(xié)議配合,。 RTP 協(xié)議使用U DP 的端*并將RT P 執(zhí)行程序?qū)懺赨 DP 的上層, 它可以看成是傳輸層的上層子層,。 RTP 信息包中封裝了編碼后的視頻數(shù)據(jù),, 每個(gè)RTP 信息包被封裝在UDP 信息段中, 然后再封裝在IP 數(shù)據(jù)包中以備網(wǎng)絡(luò)傳輸,。 圖3 給出了RTP/RTCP 在協(xié)議棧中的位置,。

RT P/ RPTCP 在協(xié)議棧中的位置

圖3 RT P/ RPTCP 在協(xié)議棧中的位置

在實(shí)際開發(fā)過程中, RTP 執(zhí)行程序被看做是應(yīng)用程序的一部分,,被集成到應(yīng)用程序當(dāng)中,。 在發(fā)送端, 首先創(chuàng)建RT P 會(huì)話,, 在創(chuàng)建RTP 信息包的應(yīng)用程序中寫入執(zhí)行RTP 協(xié)議的程序,, 然后應(yīng)用程序?qū)TP 信息包發(fā)送到UDP 的套接接口。 同樣,, 在接收端,,RTP 信息包通過UDP 套接接口輸入到應(yīng)用程序, 并將執(zhí)行RT P 協(xié)議的程序?qū)懭氲綇腞TP 信息包中抽出媒體數(shù)據(jù)的應(yīng)用程序,。

3  結(jié)論

文中設(shè)計(jì)了一種基于ARM9 架構(gòu)S3C2410 的嵌入式的視頻監(jiān)控系統(tǒng),。完成了視頻圖像的采集,、編碼壓縮、傳輸?shù)裙δ堋?它不僅具有抗干擾能力強(qiáng),, 適合遠(yuǎn)距離傳輸,, 能夠加密, 充分利用現(xiàn)有網(wǎng)絡(luò)資源等諸多優(yōu)點(diǎn),, 而且可移植性強(qiáng),、低功耗、成本低,、易于安裝,、使用方便和便于維護(hù)等優(yōu)點(diǎn),并且采用軟件實(shí)現(xiàn)其主要功能,, 有利于系統(tǒng)的二次開發(fā)及升級(jí),, 其應(yīng)用范圍和前景將非常廣闊。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。