3? 系統(tǒng)硬件設計
網(wǎng)絡服務器是系統(tǒng)硬件的核心部件,它由運行嵌入式操作系統(tǒng)的嵌入式計算機構(gòu)成,在嵌入式操作系統(tǒng)之上運行著系統(tǒng)的核心軟件。網(wǎng)絡服務器采用的是基于ARM7內(nèi)核的CPU—STR710F-Z2T6 。該芯片是一款基于ARM 芯片。它一方面具有ARM處理器的:低功耗、高性能等優(yōu)點;同時又具有豐富的片上資源,非常適合嵌入式產(chǎn)品的開發(fā)。
MPEG-4多媒體編碼芯片則采用北京九為安泰科技有限公司的Mpeg4全D1? 網(wǎng)絡視頻服務器(編碼)EN4000,該芯片提供了豐富的外圍硬件接口:支持CCIR601 建議的16Bit 視頻解碼器接口、32Bit數(shù)據(jù)、81MHz的SDRAM數(shù)據(jù)總線接口、I2C總線接口、I2C外部音頻/PCM編碼器/DSP 接口以及靈活的主機接口,可以支持多種類型的CPU。 圖2簡單介紹了MPEG-4硬件視頻壓縮處理的結(jié)構(gòu)和網(wǎng)絡接口。
?
圖片2
圖 2 MPEG-4 硬件視頻壓縮處理的結(jié)構(gòu)和網(wǎng)絡接口圖 MPEG-4 視頻采集壓縮模塊以 EN4000 芯片為核心,完成 對標準視頻信號(PAL 或 NTSC 信號)的 A/D 轉(zhuǎn)換, MPEG-4 壓縮 圖 以及與 S3C44B0X 之間的通信功能. 2 中視頻解碼 ADC 把從 攝像頭輸入的模擬視頻信號轉(zhuǎn)化為數(shù)字視頻信號, 然后進行編 碼預處理, 即把視頻解碼輸出的 CCIR601 格式的信號轉(zhuǎn)化為編 碼器可以處理的 CIF 或 QCIF 格式,然后再進行 MPEG-4 壓縮 編碼.S3C44B0X 上的軟件則通過總線接口單元來控制編碼器 的參數(shù)設置和讀取編碼壓縮后的碼流數(shù)據(jù).
視頻數(shù)據(jù)處理模塊包括以下功能單元: BT829 為核心的 以 以 視頻 ADC 單元; EN4000 為核心的 M PEG-4 視頻壓縮單元; 以 S3C44B0X 為核心構(gòu)成的控制邏輯和總線接口單元.總線接 口單元是視頻數(shù)據(jù)處理模塊與 S3C44B0X 進行交互的通道, 可 以和主機進行視頻碼流和控制數(shù)據(jù)的交換.控制邏輯是視頻采 集壓縮模塊的核心, 它控制并協(xié)調(diào)各模塊工作, 提供控制信號, 通過指令實現(xiàn)系統(tǒng)各模塊所需要的選通, 緩沖, 讀/寫使能, 數(shù)據(jù) 總線和地址總線的切換等等.鏡頭云臺控制是通過 S3C44B0X 上的 RS-232 口進行的, 允許用戶根據(jù)自己的要求調(diào)節(jié)系統(tǒng). 用 戶可以通過調(diào)節(jié)鏡頭的景深,焦距以及光圈來調(diào)整圖像質(zhì)量, 還可以通過云臺的上下左右調(diào)節(jié)來獲取不同角度的圖像.由監(jiān) 控中心的客戶機端軟件通過 SOCKET 網(wǎng)絡接口, 把調(diào)整信息發(fā) 送給服務器端, 服務器接收到控制指令后, 進行指令識別, 然后 完成調(diào)整任務. 向?qū)?RS-232 口發(fā)送指令去控制云臺, 技術創(chuàng)新
4 視頻數(shù)據(jù)發(fā)送,指令控制模塊的設計與實現(xiàn)
監(jiān)控現(xiàn)場主機通過視頻數(shù)據(jù)發(fā)送模塊,將現(xiàn)場采集到的視 頻流數(shù)據(jù)經(jīng)過編碼后, IP 組播的形式通過計算機網(wǎng)絡發(fā)送出 以 去. 對于發(fā)送來的視頻數(shù)據(jù), 運行在監(jiān)控中心主機端的視頻數(shù)據(jù) 接收播放模塊一方面可以將其保存起來,作為資料庫便于以后 查詢及回放; 另一方面還可以實時播放出來. 本系統(tǒng)的軟件結(jié)構(gòu)采用了客戶機服務器結(jié)構(gòu),兩端通過網(wǎng)絡建立 TCP/IP 連接, 按 照自定義的數(shù)據(jù)通信協(xié)議交換數(shù)據(jù),完成數(shù)據(jù)通信和系統(tǒng)控制 功能. 監(jiān)控中心的客戶端向服務器端申請建立連接, 服務器* 客戶端向服務器 到連接請求之后, 和客戶端建立 SOCKET 連接, 發(fā)送控制信號, 服務器端向客戶端發(fā)送視頻碼流. 服務器端軟件 軟件設計的主要思想如下: 讀取線程, 發(fā)送 運行 S3C44B0X 上, 線程和控制線程之間的同步, 防止有限資源的浪費.
為了充分利用 CPU 計算能力, 提高系統(tǒng)的整體性能, 在該 系統(tǒng)中采用多線程技術實現(xiàn)任務的調(diào)度.考慮到監(jiān)控中心主機 要同時監(jiān)控多個現(xiàn)場, 需要加入多個組播組的情況. 我們在設計 系統(tǒng)時要求監(jiān)控中心端在接收視頻數(shù)據(jù)前應向相應的監(jiān)控現(xiàn)場 發(fā)送數(shù)據(jù)請求.為此, 我們要建立兩個通訊通道: 一個是控制通 道, 一個為數(shù)據(jù)通道. 控制通道用來在發(fā)送端和接收端之間建立 會話, 包括發(fā)送一些數(shù)據(jù)請求和確認控制等信息. 接收端在接收 視頻流數(shù)據(jù)前先向相應的發(fā)送端發(fā)送數(shù)據(jù)請求,發(fā)送端在接收 到數(shù)據(jù)請求后向接收端發(fā)回相應的 IP 組播地址和端口, 接收端 則加入該組接收視頻流數(shù)據(jù).為了保證這些控制信息準確無誤 地到達對方,對于控制通道我們選擇可靠性較高的 TCP 協(xié)議. 數(shù)據(jù)通道用于視頻流數(shù)據(jù)的通信, 我們選用 VxWorks IP 組播組 來實現(xiàn).這兩個通訊通道互不相關, 各自執(zhí)行自己的任務.
4.1 視頻數(shù)據(jù)發(fā)送模塊的設計
在視頻傳輸中,服務器端要求碼流讀取和發(fā)送互不干擾, 在 避免讀取和發(fā)送相互等待或者相互沖突的情況出現(xiàn).同樣, 客戶端解碼和接收也存在這個關系, 我們可以采用任務間的通 信功能來協(xié)調(diào)多個獨立任務間的活動.VxWorks 提供了一套豐 信號量, 消息隊列和管道 富的任務間通信機制, 包括共享內(nèi)存, 任務間通信最直接, 最明顯的方法是訪問共享數(shù)據(jù)結(jié)構(gòu). 等等. 由于所有 VxWorks 任務共存單一的線性地址空間, 在多個任務 間共享數(shù)據(jù)結(jié)構(gòu)是非常容易的, 任一程序中定義的各種類型的 全局變量, 都可以被所有任務直接訪問.由于實時組播的視頻 所以首先要從編碼器中獲得視頻數(shù) 流來自于 MPEG-4 編碼器, 本設計采 據(jù), 這主要通過訪問編碼器所提供的 I/O 端口來完成. 用了一種基于環(huán)形緩沖區(qū)的多任務視頻傳輸技術, 較好的解決 了碼流讀取和發(fā)送互不干擾的問題. 系統(tǒng)的環(huán)形緩沖區(qū)除了達 到數(shù)據(jù)分離互斥作用外, 還可以起到平滑碼流的作用.讀取任 務和發(fā)送任務是互斥的關系, 讀取任務一次從編碼模塊中讀入 使 4 K 的視頻數(shù)據(jù)供發(fā)送任務處理.在讀取時為了避免競爭, 用信號量對該環(huán)形緩沖區(qū)進行上鎖,以保證訪問的互斥進行. 發(fā)送任務的訪問環(huán)形緩沖區(qū)的情況也類似. 通過利用環(huán)形緩沖 區(qū)和互斥鎖完全可以解決這兩個任務的同步問題.
4.2 指令控制模塊的設計 系統(tǒng)定義了自己的指令系統(tǒng)和指令傳輸協(xié)議.指令可以分 為以下幾類:
工作控制( 傳輸開始, 傳輸停止, 存儲控制等); 鏡頭云臺控 制(焦距, 光圈, 自動轉(zhuǎn)動等); 系統(tǒng)設置(用戶管理, 通信參數(shù)設置 等), 每條指令前面都有其唯一的識別標志, 服務器接收到后可 以用來和其它指令進行區(qū)分.
多路復用的輸入/輸出模型 Select 函數(shù)可以實現(xiàn)高效的管 理套接字.使用工作在無阻塞方式的套接字, 在一定程度上提 高了程序的效率( 與阻塞套接字相比).但是, 程序需要不斷的 輪詢各個套接字描述符的情況, 這浪費了大量的 CPU 時間.如 果進程不是主動地輪詢套接字的情況, 而是將希望監(jiān)視的套接字向系統(tǒng)進行登記, 而后采取被動的態(tài)度等待, 當套接字上發(fā) 生了某些事件后, 系統(tǒng)再以某種方式通知進程, 接著進程去檢 測套接字的情況, 發(fā)現(xiàn)對應的事件并進行處理.在這種工作方 式下, 進程是在已經(jīng)知道在套接字上發(fā)生了事件時, 才對套接 字進行檢測, 而在沒有事件的情況下, 進程將睡眠, 所以這種工 作方式節(jié)省了大量的 CPU 時間,對于資源本來就非常緊張的 系統(tǒng), 可以大大提高系統(tǒng)的整體性能
5 結(jié)語
本文設計的基于 ARM7 的嵌入式 MPEG-4 網(wǎng)絡監(jiān)控系統(tǒng), 該監(jiān)控系統(tǒng)穩(wěn)定性高,支持基于 Internet 的數(shù)據(jù)傳輸, 的結(jié) C/S 構(gòu)體系允許用戶進行遠端操縱系統(tǒng)的工作方式.系統(tǒng)的各個子 模塊相對獨立, 通過采用 MPEG-4 視頻壓縮技術, 圖像高清晰, 畫質(zhì)接近 DVD 效果, 能夠?qū)崿F(xiàn)單畫面輪流監(jiān)看和 1~16 個畫面 同屏監(jiān)看.支持遠程和本地云臺控制, 支持多任務工作方式, 而 監(jiān)看, 遠程控制可同步進行, 監(jiān)控距離隨網(wǎng)絡延伸 且圖像存儲, 而不斷加長, 具有良好的發(fā)展應用前景.
作者創(chuàng)新點: 本文提出的矩陣系統(tǒng)的模塊化設計便于將來 系統(tǒng)的升級和擴展,即使在將來擴展時,也不需要替換現(xiàn)有設備, 而只需軟件升級或添加硬件,從而保證了系統(tǒng)的延續(xù)性. 符合模 調(diào)試更加容易,使用更方便. 塊化的設計原則,設計, 調(diào)試更加容易,使用更方便。
通過采用 MPEG-4 視頻壓縮技術, 圖像高清晰, 畫質(zhì)接近 能夠?qū)崿F(xiàn)單畫面輪流監(jiān)看和 1~16 個畫面同屏監(jiān)看. DVD 效果, 支持遠程和本地云臺控制,能夠?qū)崿F(xiàn)信號的可靠傳輸和 MPEG-4 視頻流圖像的平滑傳輸.
評論