新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM9的視頻監控終端的設計與實現

        基于ARM9的視頻監控終端的設計與實現

        作者: 時間:2012-02-09 來源:網絡 收藏

        摘要:了一種S3C2410 硬件平臺和嵌入式操作系統的遠程系統, 介紹了該嵌入式系統的軟硬件思想和體系架構,對系統視頻采集, MPEG4 壓縮, 網絡傳輸進行了詳細分析。 與傳統的系統比較, 該方案具有體積小, 成本低, 穩定性好等優點。

        本文引用地址:http://www.104case.com/article/149738.htm

        系統是安全防范系統的重要組成部分, 它具有直觀, 方便, 信息內容豐富而被廣泛應用于許多場合。 傳統的數字視頻監控一般采用PC機平臺+ 視頻采集卡的形式, 該方案有系統體積大、成本高、穩定性不夠好等缺點。 隨著嵌入式系統監控和視頻壓縮技術的日漸成熟, 以及高網絡帶寬的普及, 通過嵌入式平臺, 視頻信號采集、壓縮, 通過網絡傳輸, 進行視頻監控已成為可能。 該采用的是韓國三星公司的一款20T 內核的嵌入式處理器, 并將國際上流行的MPEG4 壓縮編碼技術和流媒體傳輸技術相結合, 開發出可靠性高、成本低、體積小、功耗低的遠程視頻監控系統

        1 系統開發硬件平臺

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

         系統硬件平臺

        圖1 系統硬件平臺

        該系統通過USB 攝像頭采集視頻原始數據,S3C2410 作為核心的中央控制和數據處理中心, 主要完成視頻采集控制和視頻圖像壓縮, 并將壓縮后的視頻數據打包形成標準的網絡數據流傳輸到因特網中。

        2 系統的軟件設計

        系統的軟件設計主要包括如下幾個方面: 交叉編譯環境的搭建、USB 視頻采集、視頻編碼壓縮, 以及視頻流的網絡傳輸。 系統軟件架構如圖2 所示。

        系統軟件架構

        圖2 系統軟件架構

        2. 1 交叉編譯環境的搭建

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

        2. 2 視頻采集系統的

        視頻采集是通過嵌入式Linux 操作系統調用V4L( video4linux ) 和影像驅動程序來完成的。

        V ideo4linux 是linux 的影像流系統與嵌入式影像系統的基礎。 它是linux kernel 里支持影像設備的一組API( 應用接口程序) , 若配合適當的視頻采集卡與驅動程序, video4linux 就可以影像采集、AM/FM 無線廣播、影像CODEC、頻道切換等功能。 目前, V4L 主要應用在影像串流系統與嵌入式影像系統里, 如: 遠程教學、遠程醫療、視頻會議、視頻監控、可視電話等。 它分為2 層式構架, 上層為video4linux驅動程序本身, 下層為影像設備的驅動程序, 如該設計中的中星微攝像頭Z301 芯片的驅動程序。 在Linux 操作系統中, 外部設備都作為設備文件來管理, 因此, 對外部設備的操作就轉變成對設備文件的操作。 采集程序調用V4L API 對設備文件進行讀操作, 即可實現視頻數據采集。

        由于開發板自帶的Linux 內核并不支持中星微的攝像頭, 所以要在網上下載Z301 驅動芯片的補丁, 對應ARM- Linux 版本號。 利用patch 命令打在內核上。 在編譯內核的時候, 會在usb- > support 出現SPCCA5XX 選項, 以模塊的形式加載, 開機的時候順序加載Video4linux 和Spca5x x 模塊, 加載成功后, 會在設備文件里看到/ dev/ video0 文件, 說明USB 攝像頭驅動加載成功, 就可以在終端對攝像頭操作進行集視頻采集了。

        2. 3 視頻編碼壓縮

        視頻監控系統的要求是要做到實時性, 由于直接通過攝像頭采集到的原始圖像數據量大, 而網絡帶寬有限, 所以一定要經過視頻編碼壓縮處理后才能進行網絡傳輸, 視頻壓縮也是該設計的核心內容。

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

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

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

        2. 4 視頻數據流的網絡傳輸

        利用攝像頭設備采集的視頻圖像經ffmpeg 壓縮為MPEG- 4 視頻流以后, 需經過網絡傳輸。 視頻監控系統的實時性要求較低的時延和較小的丟包率, 由于TCP 的重發機制帶來較大的時延, UDP 本身又不提供任何Qos 保證, 因此需要通過實時傳輸協議( RTP) 和實時控制協議( RTCP) 配合使用, 提供數據實時傳輸和Qos 服務來滿足網絡視頻數據實時傳輸的要求。 RTP 數據協議負責對流媒體數據進行封裝及完成媒體流的實時傳輸, 本身并不能為按序傳輸數據包提供可靠的保證, 也不提供流量控制和擁塞控制。 可靠性傳輸是由與它配合使用的實時傳輸控制協議RTCP 來負責完成的。 RTP 是目前解決流媒體實時傳輸問題的最好辦法, 系統中的視頻傳輸模塊采用了RTP 和RT CP 傳輸協議。

        RTP 協議為傳輸層協議, RFC 在對RTP 的定義過程中并沒有對其底層協議進行定制。 RT P 不提供網絡連接, 在使用中通常需要與U DP 等其他協議配合。 RTP 協議使用U DP 的端*并將RT P 執行程序寫在U DP 的上層, 它可以看成是傳輸層的上層子層。 RTP 信息包中封裝了編碼后的視頻數據, 每個RTP 信息包被封裝在UDP 信息段中, 然后再封裝在IP 數據包中以備網絡傳輸。 圖3 給出了RTP/RTCP 在協議棧中的位置。

        RT P/ RPTCP 在協議棧中的位置

        圖3 RT P/ RPTCP 在協議棧中的位置

        在實際開發過程中, RTP 執行程序被看做是應用程序的一部分, 被集成到應用程序當中。 在發送端, 首先創建RT P 會話, 在創建RTP 信息包的應用程序中寫入執行RTP 協議的程序, 然后應用程序將RTP 信息包發送到UDP 的套接接口。 同樣, 在接收端,RTP 信息包通過UDP 套接接口輸入到應用程序, 并將執行RT P 協議的程序寫入到從RTP 信息包中抽出媒體數據的應用程序。

        3 結論

        文中設計了一種基于 架構S3C2410 的嵌入式的視頻監控系統。 完成了視頻圖像的采集、編碼壓縮、傳輸等功能。 它不僅具有抗干擾能力強, 適合遠距離傳輸, 能夠加密, 充分利用現有網絡資源等諸多優點, 而且可移植性強、低功耗、成本低、易于安裝、使用方便和便于維護等優點, 并且采用軟件實現其主要功能, 有利于系統的二次開發及升級, 其應用范圍和前景將非常廣闊。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 德保县| 亚东县| 通海县| 永州市| 靖州| 天峻县| 桓台县| 尉犁县| 吉水县| 来宾市| 旅游| 扬州市| 无棣县| 宣汉县| 兴仁县| 陆川县| 竹溪县| 延津县| 开原市| 邳州市| 建平县| 阿合奇县| 华坪县| 泰安市| 迭部县| 忻城县| 秦皇岛市| 金寨县| 航空| 兰溪市| 清原| 蒙城县| 宁远县| 神木县| 嵊泗县| 九龙坡区| 临城县| 凤台县| 上饶县| 叙永县| 甘孜县|