《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(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ò)帶寬的普及, 通過(guò)嵌入式平臺(tái), 實(shí)現(xiàn)視頻信號(hào)采集、壓縮, 通過(guò)網(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 萬(wàn), 色彩位數(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)通過(guò)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)

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

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 無(wú)線廣播、影像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è)備文件來(lái)管理, 因此, 對(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 文件, 說(shuō)明USB 攝像頭驅(qū)動(dòng)加載成功, 就可以在終端對(duì)攝像頭操作進(jìn)行集視頻采集了。

2. 3 視頻編碼壓縮

視頻監(jiān)控系統(tǒng)的要求是要做到實(shí)時(shí)性, 由于直接通過(guò)攝像頭采集到的原始圖像數(shù)據(jù)量大, 而網(wǎng)絡(luò)帶寬有限,所以一定要經(jīng)過(guò)視頻編碼壓縮處理后才能進(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 之間, 它能利用很窄的帶寬, 通過(guò)幀重建技術(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)先的音視頻編解碼庫(kù),對(duì)嵌入式視頻監(jiān)控系統(tǒng)來(lái)說(shuō)是個(gè)非常好的選擇。 系統(tǒng)采用了FFMPEG 進(jìn)行視頻編碼、壓縮。 編碼過(guò)程中主要使用FFMPEG 的libavformat 和libavcodec 這兩個(gè)函數(shù)庫(kù), 許多視頻文件格式一般只是定義如何將視頻流編碼進(jìn)一個(gè)獨(dú)立的文件, 而不明確指出其使用的編碼工具, libavformat 庫(kù)的功能主要是分析視頻文件的語(yǔ)法格式, 并將它從流中分理出原始的視頻流,libavcodec 庫(kù)的功能則是按照流格式處理原始的視頻流編碼。 視頻編碼的流程如下, 首先打開文件if( av_open_input_file ( & pFormatCtx, f ilename,NU LL, 0, NU LL) ! = 0)。

然后讀取流文件的信息選擇對(duì)應(yīng)的編解碼器,并打開對(duì)應(yīng)的編碼器, 在編碼端需要使用libavformat 庫(kù)函數(shù)來(lái)讀取數(shù)據(jù)包, 濾除掉不需要的非視頻流數(shù)據(jù), 然后循環(huán)調(diào)用libavcodec 庫(kù)函數(shù)GetNestFrame. 來(lái)處理每幀數(shù)據(jù)進(jìn)行編碼。 通過(guò)試驗(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)過(guò)網(wǎng)絡(luò)傳輸。 視頻監(jiān)控系統(tǒng)的實(shí)時(shí)性要求較低的時(shí)延和較小的丟包率, 由于TCP 的重發(fā)機(jī)制帶來(lái)較大的時(shí)延, UDP 本身又不提供任何Qos 保證, 因此需要通過(guò)實(shí)時(shí)傳輸協(xié)議( RTP) 和實(shí)時(shí)控制協(xié)議( RTCP) 配合使用, 提供數(shù)據(jù)實(shí)時(shí)傳輸和Qos 服務(wù)來(lái)滿足網(wǎng)絡(luò)視頻數(shù)據(jù)實(shí)時(shí)傳輸?shù)囊蟆?RTP 數(shù)據(jù)協(xié)議負(fù)責(zé)對(duì)流媒體數(shù)據(jù)進(jìn)行封裝及完成媒體流的實(shí)時(shí)傳輸, 本身并不能為按序傳輸數(shù)據(jù)包提供可靠的保證, 也不提供流量控制和擁塞控制。可靠性傳輸是由與它配合使用的實(shí)時(shí)傳輸控制協(xié)議RTCP 來(lái)負(fù)責(zé)完成的。 RTP 是目前解決流媒體實(shí)時(shí)傳輸問(wèn)題的最好辦法, 系統(tǒng)中的視頻傳輸模塊采用了RTP 和RT CP 傳輸協(xié)議。

RTP 協(xié)議為傳輸層協(xié)議, RFC 在對(duì)RTP 的定義過(guò)程中并沒有對(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ā)過(guò)程中, 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 信息包通過(guò)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)載。