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