?

網絡攝像機軟件架構的研究與設計

2012-08-10 07:48黃言磊葉光明
電視技術 2012年23期
關鍵詞:應用層信令線程

黃言磊,葉光明

(武漢郵電科學研究院,湖北 武漢 430074)

責任編輯:任健男

1 視頻監控PU統一平臺總體架構簡介

由于嵌入式操作系統具有低功耗、集成度高、可裁剪等優點,現在嵌入式設備已經越來越多地應用于各個領域。軟件架構設計是嵌入式設備的軟件設計過程中一個很重要的環節。但不同嵌入式操作產品的軟件架構在實現中存在內存泄露、堆棧溢出、競爭條件、死鎖、時序問題、可重入條件等各種問題,造成了嵌入式軟件開發效率低、周期長,并且影響產品的性能和市場競爭力。

為了很好地解決上述問題,本文提出了一種面向嵌入式應用的新的軟件架構解決方案——視頻監控PU統一平臺總體架構。其架構如圖1所示,分為OS適配層、應用層、協議層、硬件適配層。其中OS適配層、協議層、應用層定義為平臺軟件,平臺軟件設計要求適應所有類型的前端設備,設備間的差別通過配置文件進行開支[1-3]。硬件適配層定義為產品支持庫,該層提供統一的接口與平臺軟件交互,對于不同的設備類型需開發相應的硬件適配層。

2 OS適配層

圖1 視頻監控PU統一平臺總體架構圖

OS適配層(Operation-System Adaptation Layer)定義系統公用的統一接口函數,包括網絡通信接口(TCP/UDP)、系統服務接口(定時器、內存管理、線程/進程管理、消息、信號量)、文件I/O接口(錄像文件、配置文件)、配置文件接口、系統日志、系統維護。

OS適配層的目的是當需要將代碼移植到其他操作系統時,只需要修改該層的內容。

2.1 系統服務接口

1)定時器

在進程執行的期間需要對進程的執行時間加以控制,從而控制進程的執行過程,這需要使用定時器或信號。定時器就像鬧鐘,可以設置一個時間,進程運行到規定的時間,“鬧鐘”就會觸發,而進程就可以被觸發去做一個特定的工作。

2)內存管理

內存池(Memory Pool)是一種內存分配方式。使用new、malloc等API申請分配內存會造成大量的內存碎片并進而降低性能。內存池則是在真正使用內存之前,先申請分配一定數量的、大小相等的內存塊留作備用。當有新的內存需求時,就從內存池中分出一部分內存塊,若內存塊不夠再繼續申請新的內存。這樣可以避免內存碎片,使得內存分配效率得到提升。

3)線程/進程管理

Linux是用線程來實現多任務并發的系統。進程可以共享大多數系統資源,同時擁有足夠分享的上下文維護各自的控制線程。因此一個線程的數據可以直接為其他線程所用,線程間通信也方便快捷。線程/進程管理包括初始化線程、建一個線程、分離一個線程、終止線程、線程同步。本架構中的所有任務進程都是基于實時傳輸控制協議(RSTP)通信機制與其他相關進程通信。

4)消息

消息隊列是Linux下進程間通信的一種方式,一般用于傳送少量數據,如果大量數據需要在進程間共享,則可以用共享內存。使用一般過程如下:(1)調用ftok接口產生一個key;(2)調用msgget(使用key作為參數)產生一個隊列;(3)進程可以用msgsnd發送消息到這個隊列,相應的別的進程用msgrcv讀取;(4)刪除消息隊列。

5)信號量

信號量是提供任務間通信、同步和互斥的主要手段。適用于保護多份復制的資源。

2.2 錄像文件接口

錄像文件接口支持前端錄像、平臺錄像、錄像查詢、錄像回放、錄像下載[4]。

2.3 數據庫接口

使用開源的SQLite數據實現錄像、圖片的信息的管理。SQLite數據庫是專門為嵌入式系統設計的,與MySQL數據庫相比,具有占用內存小的優點。

2.4 配置文件接口

在多用戶、多任務環境中,配置文件控制用戶權限、系統應用程序、守護進程、服務和其他管理任務。這些任務包括管理用戶賬號、分配磁盤配額、管理電子郵件和新聞組,以及配置內核參數。

2.5 系統日志

在本系統中,所有的文件系統的變化、添加和改變都被記錄到“日志”中。每隔一定時間,文件系統會將更新后的文件及文件內容寫入磁盤,之后刪除這部分日志。重新開始新日志記錄。日志文件系統能夠詳細記錄系統每天發生的各種各樣的事件,使數據、文件變得安全。

2.6 系統維護

系統維護模塊實現對系統應用任務的活動狀態監控,所有被監控的任務通過定時發送活動消息到系統維護模塊以表示其活動狀態,如果在設定的時間內沒有收到應用任務的活動狀態將啟動維護方式,包括重新啟動系統。

3 應用層(Application Layer)

應用層實現系統應用業務流程。包括業務應用(簡稱Cmd)、媒體傳輸(簡稱Media)、設備管理(簡稱Mg,實現告警輸入輸出相關功能)、存儲(簡稱Record)、User Interface模塊(簡稱Ui)、網管模塊(簡稱Nm)等模塊。應用層應達成如下目的:考慮不同的平臺接入需求,可方便擴展支持接入其他的平臺。

應用層功能軟件的運行由多個任務進程完成,由一個總的控制進程管理所有的進程,它負責監控所有任務進程的狀態,同時由于每個進程都具有初始態、掛起態、運行態和終止態等4種基本狀態,總控制進程通過發送消息命令控制這4種狀態之間的切換。這種機制的優點在于只要定義好任務接口,各個任務進程模塊就可以被當作獨立軟件模塊來操作實現。很明顯,嵌入式系統應用層這一級的開發提高了代碼的復用度。

應用層的業務交互如圖2所示。

視頻監控平臺(包括其他廠家平臺)通過Cmd模塊實現信令交互。媒體處理信令通過調用Media模塊接口進行。存儲抓拍信令通過調用Record模塊接口進行。其他信令(包括參數配置等)直接調用Mg模塊接口。

Web客戶端通過Nm模塊實現對設備的訪問。Nm模塊中,對于設備的操作統一通過Mg模塊實現。對于媒體流,Nm模塊需要與Media的媒體控制子模塊進行交互。

對于車載、單兵等具有本地顯示的設備,通過Ui實現對設備的訪問。Ui模塊中,對于設備的操作統一通過Nm模塊實現。

圖2 應用層的業務交互示意圖

3.1 業務應用模塊

業務應用模塊實現與平臺之間的信令交互處理流程。實現要求如下:接收并處理來自平臺的SIP信令;媒體傳輸信令調用媒體傳輸模塊接口函數;告警處理信令調用告警處理模塊接口函數。

業務交互模塊分為信令交互子模塊和信令處理子模塊。信令交互子模塊實現信令的接收、分發和發送等功能。信令處理子模塊實現對信令的處理流程。

3.2 媒體傳輸模塊

媒體傳輸模塊實現設備與平臺之間的媒體傳輸,包括視頻傳輸、音頻傳輸,支持UDP傳輸和TCP傳輸。模塊分兩部分,一部分mediaControl用于媒體控制,主要是指對設備通道資源的控制,編碼器開啟關閉,通道占用與釋放的工作都在這個文件中進行處理;另一部分為mediaTrans,用于媒體傳輸部分,專門負責媒體數據的傳輸,現支持TCP與UDP傳輸。將媒體模塊分為兩部分的好處在于以后如果需要接入其他平臺,只需修改mediaTrans模塊的傳輸協議部分,mediaControl部分可以不用修改,直接調用。

3.3 存儲模塊

存儲模塊分為錄像存儲子模塊、抓拍子模塊和錄像回放子模塊。

錄像存儲子模塊錄像文件的類型分為三種,即定時錄像、報警錄像和手動錄像。定時錄像又分為每天模式和每周模式,不管什么模式,每天最多有3個定時錄像的時間段,且每個錄像的時間段是不能重疊的,也不能跨天。報警錄像可能包括報警預錄和延遲錄像,其中報警預錄是可選的,且預錄的時間不超過30 s。

錄像模塊主要由以下子模塊組成:1)定時器。該定時器的定時精度為1 s,用于檢測周期錄像的開始和結束時間,同時維護錄像控制中的相對時間。2)錄像線程。從預錄隊列中取視頻數據,然后保存到存儲設備。3)緩沖隊列。編碼庫出的視頻數據,加上存儲幀頭以后,存于緩沖隊列中。為了避免出現內存碎片,同時兼顧每個節點的訪問速率,緩沖隊列應采用大內存管理機制。根據視頻的最大碼率及預錄的時間,一次性分配所有的內存空間。緩沖隊列采用數組的形式,節點空間的分配和回收都由大內存管理模塊進行。

錄像文件的命名規則為:PUID_通道號_錄像類型_錄像開始時間.后綴。錄像名共43 byte,每個域所占的字節數如表1所示,對應的格式如表2所示。例如:420000000267908936_01_01_20111105160000.264。

表1 錄像命名規則中每個域的詳細信息表

表2 錄像命名規則中每個域的格式表

抓拍子模塊的規則與錄像規則類似。

4 協議層(Protocol Layer)

協議層實現與PU相關的網絡協議,包括SIP,RTP,RTCP,RTSP,SOAP,HTTP 等。

5 硬件適配層(Hardware Adaptation Layer)

硬件適配層的目的是當系統需要支持不同的硬件方案時,只需要修改硬件適配層的內容。該層包括看門狗、串口、CODEC、告警、設備配置、云臺控制等模塊。采用嵌入式DSP處理器用于計算離散時間信號,在圖像處理方面上有很高的編譯效率和執行速度。該層位于架構的最底層,它封裝了硬件的各種功能行為,包括硬件初始化、中斷的產生和處理、硬件看門狗啟動、硬件時鐘管理,提供了對各種開發板的硬件功能操作的統一軟件接口,這是保證操作系統可移植性的關鍵。

6 總結

本文提出的這種新的軟件架構方案,具有較好的容錯能力、可重用性、安全性、擴展性、可管理性。當某一層需要調整時,可以不對其他層面進行任何修改,從而降低了整個設計系統之間的依賴性。同時它能夠讓設計開發人員在編碼分工變得更加明確更加優化,只要做好各個層次的接口定義即可,縮小了工作冗余量,提高了研發人員的效率。通過研究和項目實踐證實了這種方案可被很好地用于中興力維接入平臺。

[1]梅大成,楊大千,趙娜.基于Linux的嵌入式網絡攝像機設計[J].微計算機信息,2007(23):45-47.

[2]勁松.基于TMS320DM355的高清網絡攝像機的設計與實現[D].南京:南京郵電大學,2009.

[3]湯凱,劉峰.基于TMS320DM355的網絡高清視頻監控系統的設計與實現[J].電視技術,2009,33(12):98-101.

[4]吳海龍,孫運強.網絡攝像機監控系統的應用研究[D].太原:中北大學,2010.

猜你喜歡
應用層信令線程
基于C#線程實驗探究
基于國產化環境的線程池模型研究與實現
SLS字段在七號信令中的運用
移動信令在交通大數據分析中的應用探索
基于信令分析的TD-LTE無線網絡應用研究
淺談linux多線程協作
基于分級保護的OA系統應用層訪問控制研究
LTE網絡信令采集數據的分析及探討
新一代雙向互動電力線通信技術的應用層協議研究
物聯網技術在信息機房制冷系統中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合