馬文科,肖永江
(萍鄉學院 機械電子工程系,萍鄉337000)
隨著視頻終端、網絡技術和視頻編解碼技術的飛速發展,視頻處理系統也快速向智能化、高清化和網絡化發展[1]。目前,應用較多的高清視頻系統有視頻會議電視、視頻監控器、網絡視頻錄像、視頻服務器、行車記錄儀等。同時,以網絡為基礎的視頻終端突破了時間、地域的限制,只要有網絡存在的地方就可以建立網絡視頻系統,省去了傳統的布線和線路維護費用,降低了成本。網絡視頻終端將成為視頻系統的主流,特別是在當前移動終端和移動互聯網爆發的大趨勢下[2]。
本文基于監控攝像機專用單芯片GM8126,設計了一種高清視頻終端系統。視頻終端的軟件設計總體方案是在Linux基礎上建立統一的軟件平臺,并在底層抽象出媒體資源管理模塊,用于屏蔽視頻終端系統的硬件和媒體設備需求的差異。
高清視頻系統主要由高清視頻終端、服務器、監控計算機、以太網絡及管理平臺軟件等組成。高清視頻系統組成如圖1所示。

圖1 高清視頻系統
高清視頻終端可以直接將視頻數據保存在本地的服務器或數據存儲媒介中,也可以通過網絡傳送到遠程接收設備。高清視頻終端有自己的IP地址,可直接與以太網連接,同時支持很多網絡通信協議。局域網以及廣域網上的用戶使用標準的網絡瀏覽器就可以根據IP地址對視頻終端進行訪問,觀看通過網絡傳輸的實時圖像[3]。另外,還可通過對鏡頭、云臺的控制,對目標進行全方位的監控。高清視頻系統還包含很多其他更有吸引力的功能,例如硬件加密、圖像水印、運動探查和智能警報等[4]。
系統硬件平臺采用升邁公司的GM8126芯片,這是一款針對在因特網上傳送音、視頻數據的SoC芯片。其內核為基于ARM9+DSP多核架構、高性能FA626TE處理器,主頻高達600 MHz,能輕松實現各種智能算法;較強的H.264編碼能力,720P達到45幀,1080P達到30幀,同時支持MPEG4、MJPEG編解碼;除了集成嵌入式系統必備接口(如USB、SD、UART、GPIO)外,在內部還集成了ISP(Image Signal Processing)預處理、網口、AudioCodec、TV-Encoder等專門用于視頻處理的接口[5]。根據視頻系統性價比要求,采用GM8126開發平臺是普通高清視頻系統比較合適的解決方案,GM8126內部結構如圖2所示。

圖2 GM8126內部結構
GM8126內置了802.3以太網MAC控制器,外部只需要802.3物理接口芯片即可實現以太網的功能。此外,音頻輸入采用模擬MIC或線輸入,音頻輸出采用線輸出,視頻輸入采用圖像采集模塊,視頻輸出到網絡、LCD或TV設備。
圖像采集模塊主要任務是高清圖像采集,直接輸出高清圖像數據,目前主要有CCD和CMOS兩種類型的圖像傳感器芯片。CCD圖像傳感器性能好,但價格相對較貴,不太適合于低成本的系統。CMOS的制造成本和功耗都要低于CCD,且隨著集成電路工藝技術的提高,CMOS圖像傳感器在分辨率、噪聲等方面都有顯著的改善。系統中采用Omni公司的OV9712芯片,該傳感器為1/4英寸高清CMOS圖像傳感器,像素尺寸3.0μm,可輸出1280×800(WXGA)、1280×720(720P)和640×480分辨率圖像[6]。
GM8126 SDK提供了一系列開發工具用于視頻終端系統的開發。采用Linux2.6.28作為操作系統,選用uboot作為加載,交叉編譯工具鏈為gcc4.4.0,庫為glibc2.9。平臺提供了芯片內部控制器和開發板外設的所有應用于視頻終端的驅動,例如capture drivers、video graph drivers、I2S audio driver等,平臺還提供了 H.264/MPEG4/JPEG編解碼器驅動,可以分別支持 H.264/MPEG4/JPEG三種編碼標準。另外,它還支持大量的網絡協議,可以方便應用于視頻終端系統,比如DNS、DHCP、PPPoE、TFTP、ARP/PARP、NFS、PING等。GM8126 Linux開發平臺的軟件框圖如圖3所示。

圖3 GM8126 Linux開發平臺的軟件框圖
媒體資源管理重點關注音視頻接口及音視頻處理兩部分內容,與硬件設計方案緊密相關。GM8126同時支持兩組BT656視頻,通過圖像傳感器采集圖像,傳送給圖像信號處理器(ISP)進行圖像預處理,以提供更高質量的圖像。平臺提供的H.264最高支持1080P@30 fps和720P@45 fps編碼。為了適應不同的網絡速率,如局域網、廣域網或手機的無線網,以及考慮不同的網絡帶寬和輸出顯示設備的分辨率[5],平臺還分別支持 H.264/MPEG4/JPEG 3種編碼標準的多種制式。
3.2.1 媒體資源分配
不同的視頻系統要求輸出的視頻數目和制式不一致,實際設計中需要根據不同的系統和GM8126本身的編碼能力確定各種視頻終端系統的媒體資源分配方案。
根據實際使用場合,在GM8126平臺上設計了高清視頻監控系統的兩種媒體資源分配方案,如圖4所示,可以輸出多種視頻制式發送到網絡或存儲器,此外還能發送一路160×112@30 fps的視頻用于手機監控。其中一種視頻監控器的CAP1_0路視頻編碼320×240@30 fps發送給網絡或者存儲器,如圖4虛線所示連接,另外一種CAP1_0路視頻經過TV-Encoder編碼640×480@30 fps接入到NTSC/PAL TV。

圖4 兩種視頻監控器媒體資源分配方案
3.2.2 軟件方案
媒體資源管理的軟件方案主要對GM8126中音視頻相關的硬件進行抽象和適配,提供業務模塊對音視頻媒體資源進行控制,并對它們之間的協作和數據流進行管理[7]。媒體資源管理設計分為4個子模塊:設備管理、設備配置表、數據流管理及業務設備組。媒體資源管理軟件方案如圖5所示。

圖5 媒體資源管理軟件方案
通過對媒體資源管理模塊的抽象和封裝軟件設計,各種高清視頻終端系統的開發可以使用統一的媒體設備層,不同視頻終端系統媒體管理層的差別在于設備配置表不同。通過主控管理層的配置,啟動初始化時媒體資源管理模塊就可以切換到不同的視頻系統。
3.2.3 軟件流程
媒體資源管理初始化流程如圖6所示。媒體資源管理模塊初始化過程是從媒體設備配置表獲取各種媒體資源分配方案,以及媒體資源分配方案下的媒體設備配置數據,生成不同媒體資源分配方案下的業務模塊,為媒體資源配置做好準備。此外,系統啟動時是從底向上進行初始化,在媒體資源管理系統初始化完成之前不允許業務模塊控制媒體設備子系統。

圖6 媒體資源管理初始化流程圖
數據流管理采用兩種不同的配置方式,分別用于兩種不同情況:第一,采用靜態配置的方式,由視頻終端硬件和媒體設備需求決定各邏輯設備之間的關系,這種方式用在媒體資源管理初始化的時候。第二,在初始化完成后,數據流采取動態配置的方式,由業務模塊來觸發,例如視頻輸入的視頻源切換、視頻編碼方式切換和視頻輸出源的切換等。主控管理層的界面通知業務模塊切換視頻,業務模塊設置下發命令到數據流管理模塊,以更改邏輯設備的數據流連接狀態。一個邏輯設備的輸入端口不能同時連接多個邏輯設備的輸出,所以在進行端口連接時需要首先刪除原有端口連接,再建立新的數據連接,否則原輸出端口的數據與新輸出端口的數據會發生混亂。
根據圖4中兩種視頻監控器媒體資源分配方案,創建不同的設備配置表,在應用界面增加終端類型的選擇項。默認設置為第一種,系統啟動后CAP1_0輸出320×240@30 fps碼流。然后改變選擇項為第二種,重啟系統,CAP1_0輸出經過TV-Encoder編碼的640×480@30 fps碼流。
在該系統中一路輸出固定為160×112@30 fps,另外一路可以切換不同的制式以及不同的輸出端口。根據界面上設置的輸出制式,媒體數據流管理模塊可以將CAP0_0和CAP0_1縮放到相應制式,選擇不同的通道送給編碼器,然后再根據終端類型選擇輸出到網口還是TV端口。
實驗結果表明,系統可以正確初始化媒體資源管理模塊,并能根據設備配置表,創建功能不同的視頻終端系統。數據流管理模塊能通過界面切換視頻終端的處理數據,實現在線、動態地改變視頻資源的處理方式和流程。
本文提出的視頻終端媒體資源管理軟件方案滿足可靠性、可擴展性和兼容性的設計要求,可以應用到其他視頻終端系統的設計,具有較強的實用性。
[1]李昂,寧海聲,蘇小蕓.基于Android的視頻監控系統設計與實現[J].電子技術應用,2012,38(7):138-143.
[2]張宏祥,李宇成.基于ARM11的嵌入式無線視頻終端的設計[J].計算機測量與控制,2011,19(11):2778-2780.
[3]任克強,劉蘇,謝斌.基于ARM11和Linux的網絡視頻監控系統[J].電視技術,2014,38(5):155-159.
[4]張凱,莊梁,張強.基于視頻動態檢測的車庫監控報警系統[J].電子技術應用,2013,39(11):30-33.
[5]Grain Media Inc.GM8126 Linux Software Development Kit.Version 0.1,2010.
[6]楊奇.基于Nios II的嵌入式標清高清視覺檢測系統的設計[J].科技促進發展,2010(6):14-15.
[7]Khronos Group.Open Max Application Layer Application Programming Interface Specification(version 1.0.1)[M].New York:The Khronos,2009.