馬文科,肖永江
(萍鄉(xiāng)學院 機械電子工程系,萍鄉(xiāng)337000)
隨著視頻終端、網(wǎng)絡技術(shù)和視頻編解碼技術(shù)的飛速發(fā)展,視頻處理系統(tǒng)也快速向智能化、高清化和網(wǎng)絡化發(fā)展[1]。目前,應用較多的高清視頻系統(tǒng)有視頻會議電視、視頻監(jiān)控器、網(wǎng)絡視頻錄像、視頻服務器、行車記錄儀等。同時,以網(wǎng)絡為基礎(chǔ)的視頻終端突破了時間、地域的限制,只要有網(wǎng)絡存在的地方就可以建立網(wǎng)絡視頻系統(tǒng),省去了傳統(tǒng)的布線和線路維護費用,降低了成本。網(wǎng)絡視頻終端將成為視頻系統(tǒng)的主流,特別是在當前移動終端和移動互聯(lián)網(wǎng)爆發(fā)的大趨勢下[2]。
本文基于監(jiān)控攝像機專用單芯片GM8126,設(shè)計了一種高清視頻終端系統(tǒng)。視頻終端的軟件設(shè)計總體方案是在Linux基礎(chǔ)上建立統(tǒng)一的軟件平臺,并在底層抽象出媒體資源管理模塊,用于屏蔽視頻終端系統(tǒng)的硬件和媒體設(shè)備需求的差異。
高清視頻系統(tǒng)主要由高清視頻終端、服務器、監(jiān)控計算機、以太網(wǎng)絡及管理平臺軟件等組成。高清視頻系統(tǒng)組成如圖1所示。
圖1 高清視頻系統(tǒng)
高清視頻終端可以直接將視頻數(shù)據(jù)保存在本地的服務器或數(shù)據(jù)存儲媒介中,也可以通過網(wǎng)絡傳送到遠程接收設(shè)備。高清視頻終端有自己的IP地址,可直接與以太網(wǎng)連接,同時支持很多網(wǎng)絡通信協(xié)議。局域網(wǎng)以及廣域網(wǎng)上的用戶使用標準的網(wǎng)絡瀏覽器就可以根據(jù)IP地址對視頻終端進行訪問,觀看通過網(wǎng)絡傳輸?shù)膶崟r圖像[3]。另外,還可通過對鏡頭、云臺的控制,對目標進行全方位的監(jiān)控。高清視頻系統(tǒng)還包含很多其他更有吸引力的功能,例如硬件加密、圖像水印、運動探查和智能警報等[4]。
系統(tǒng)硬件平臺采用升邁公司的GM8126芯片,這是一款針對在因特網(wǎng)上傳送音、視頻數(shù)據(jù)的SoC芯片。其內(nèi)核為基于ARM9+DSP多核架構(gòu)、高性能FA626TE處理器,主頻高達600 MHz,能輕松實現(xiàn)各種智能算法;較強的H.264編碼能力,720P達到45幀,1080P達到30幀,同時支持MPEG4、MJPEG編解碼;除了集成嵌入式系統(tǒng)必備接口(如USB、SD、UART、GPIO)外,在內(nèi)部還集成了ISP(Image Signal Processing)預處理、網(wǎng)口、AudioCodec、TV-Encoder等專門用于視頻處理的接口[5]。根據(jù)視頻系統(tǒng)性價比要求,采用GM8126開發(fā)平臺是普通高清視頻系統(tǒng)比較合適的解決方案,GM8126內(nèi)部結(jié)構(gòu)如圖2所示。
圖2 GM8126內(nèi)部結(jié)構(gòu)
GM8126內(nèi)置了802.3以太網(wǎng)MAC控制器,外部只需要802.3物理接口芯片即可實現(xiàn)以太網(wǎng)的功能。此外,音頻輸入采用模擬MIC或線輸入,音頻輸出采用線輸出,視頻輸入采用圖像采集模塊,視頻輸出到網(wǎng)絡、LCD或TV設(shè)備。
圖像采集模塊主要任務是高清圖像采集,直接輸出高清圖像數(shù)據(jù),目前主要有CCD和CMOS兩種類型的圖像傳感器芯片。CCD圖像傳感器性能好,但價格相對較貴,不太適合于低成本的系統(tǒng)。CMOS的制造成本和功耗都要低于CCD,且隨著集成電路工藝技術(shù)的提高,CMOS圖像傳感器在分辨率、噪聲等方面都有顯著的改善。系統(tǒng)中采用Omni公司的OV9712芯片,該傳感器為1/4英寸高清CMOS圖像傳感器,像素尺寸3.0μm,可輸出1280×800(WXGA)、1280×720(720P)和640×480分辨率圖像[6]。
GM8126 SDK提供了一系列開發(fā)工具用于視頻終端系統(tǒng)的開發(fā)。采用Linux2.6.28作為操作系統(tǒng),選用uboot作為加載,交叉編譯工具鏈為gcc4.4.0,庫為glibc2.9。平臺提供了芯片內(nèi)部控制器和開發(fā)板外設(shè)的所有應用于視頻終端的驅(qū)動,例如capture drivers、video graph drivers、I2S audio driver等,平臺還提供了 H.264/MPEG4/JPEG編解碼器驅(qū)動,可以分別支持 H.264/MPEG4/JPEG三種編碼標準。另外,它還支持大量的網(wǎng)絡協(xié)議,可以方便應用于視頻終端系統(tǒng),比如DNS、DHCP、PPPoE、TFTP、ARP/PARP、NFS、PING等。GM8126 Linux開發(fā)平臺的軟件框圖如圖3所示。
圖3 GM8126 Linux開發(fā)平臺的軟件框圖
媒體資源管理重點關(guān)注音視頻接口及音視頻處理兩部分內(nèi)容,與硬件設(shè)計方案緊密相關(guān)。GM8126同時支持兩組BT656視頻,通過圖像傳感器采集圖像,傳送給圖像信號處理器(ISP)進行圖像預處理,以提供更高質(zhì)量的圖像。平臺提供的H.264最高支持1080P@30 fps和720P@45 fps編碼。為了適應不同的網(wǎng)絡速率,如局域網(wǎng)、廣域網(wǎng)或手機的無線網(wǎng),以及考慮不同的網(wǎng)絡帶寬和輸出顯示設(shè)備的分辨率[5],平臺還分別支持 H.264/MPEG4/JPEG 3種編碼標準的多種制式。
3.2.1 媒體資源分配
不同的視頻系統(tǒng)要求輸出的視頻數(shù)目和制式不一致,實際設(shè)計中需要根據(jù)不同的系統(tǒng)和GM8126本身的編碼能力確定各種視頻終端系統(tǒng)的媒體資源分配方案。
根據(jù)實際使用場合,在GM8126平臺上設(shè)計了高清視頻監(jiān)控系統(tǒng)的兩種媒體資源分配方案,如圖4所示,可以輸出多種視頻制式發(fā)送到網(wǎng)絡或存儲器,此外還能發(fā)送一路160×112@30 fps的視頻用于手機監(jiān)控。其中一種視頻監(jiān)控器的CAP1_0路視頻編碼320×240@30 fps發(fā)送給網(wǎng)絡或者存儲器,如圖4虛線所示連接,另外一種CAP1_0路視頻經(jīng)過TV-Encoder編碼640×480@30 fps接入到NTSC/PAL TV。
圖4 兩種視頻監(jiān)控器媒體資源分配方案
3.2.2 軟件方案
媒體資源管理的軟件方案主要對GM8126中音視頻相關(guān)的硬件進行抽象和適配,提供業(yè)務模塊對音視頻媒體資源進行控制,并對它們之間的協(xié)作和數(shù)據(jù)流進行管理[7]。媒體資源管理設(shè)計分為4個子模塊:設(shè)備管理、設(shè)備配置表、數(shù)據(jù)流管理及業(yè)務設(shè)備組。媒體資源管理軟件方案如圖5所示。
圖5 媒體資源管理軟件方案
通過對媒體資源管理模塊的抽象和封裝軟件設(shè)計,各種高清視頻終端系統(tǒng)的開發(fā)可以使用統(tǒng)一的媒體設(shè)備層,不同視頻終端系統(tǒng)媒體管理層的差別在于設(shè)備配置表不同。通過主控管理層的配置,啟動初始化時媒體資源管理模塊就可以切換到不同的視頻系統(tǒng)。
3.2.3 軟件流程
媒體資源管理初始化流程如圖6所示。媒體資源管理模塊初始化過程是從媒體設(shè)備配置表獲取各種媒體資源分配方案,以及媒體資源分配方案下的媒體設(shè)備配置數(shù)據(jù),生成不同媒體資源分配方案下的業(yè)務模塊,為媒體資源配置做好準備。此外,系統(tǒng)啟動時是從底向上進行初始化,在媒體資源管理系統(tǒng)初始化完成之前不允許業(yè)務模塊控制媒體設(shè)備子系統(tǒng)。
圖6 媒體資源管理初始化流程圖
數(shù)據(jù)流管理采用兩種不同的配置方式,分別用于兩種不同情況:第一,采用靜態(tài)配置的方式,由視頻終端硬件和媒體設(shè)備需求決定各邏輯設(shè)備之間的關(guān)系,這種方式用在媒體資源管理初始化的時候。第二,在初始化完成后,數(shù)據(jù)流采取動態(tài)配置的方式,由業(yè)務模塊來觸發(fā),例如視頻輸入的視頻源切換、視頻編碼方式切換和視頻輸出源的切換等。主控管理層的界面通知業(yè)務模塊切換視頻,業(yè)務模塊設(shè)置下發(fā)命令到數(shù)據(jù)流管理模塊,以更改邏輯設(shè)備的數(shù)據(jù)流連接狀態(tài)。一個邏輯設(shè)備的輸入端口不能同時連接多個邏輯設(shè)備的輸出,所以在進行端口連接時需要首先刪除原有端口連接,再建立新的數(shù)據(jù)連接,否則原輸出端口的數(shù)據(jù)與新輸出端口的數(shù)據(jù)會發(fā)生混亂。
根據(jù)圖4中兩種視頻監(jiān)控器媒體資源分配方案,創(chuàng)建不同的設(shè)備配置表,在應用界面增加終端類型的選擇項。默認設(shè)置為第一種,系統(tǒng)啟動后CAP1_0輸出320×240@30 fps碼流。然后改變選擇項為第二種,重啟系統(tǒng),CAP1_0輸出經(jīng)過TV-Encoder編碼的640×480@30 fps碼流。
在該系統(tǒng)中一路輸出固定為160×112@30 fps,另外一路可以切換不同的制式以及不同的輸出端口。根據(jù)界面上設(shè)置的輸出制式,媒體數(shù)據(jù)流管理模塊可以將CAP0_0和CAP0_1縮放到相應制式,選擇不同的通道送給編碼器,然后再根據(jù)終端類型選擇輸出到網(wǎng)口還是TV端口。
實驗結(jié)果表明,系統(tǒng)可以正確初始化媒體資源管理模塊,并能根據(jù)設(shè)備配置表,創(chuàng)建功能不同的視頻終端系統(tǒng)。數(shù)據(jù)流管理模塊能通過界面切換視頻終端的處理數(shù)據(jù),實現(xiàn)在線、動態(tài)地改變視頻資源的處理方式和流程。
本文提出的視頻終端媒體資源管理軟件方案滿足可靠性、可擴展性和兼容性的設(shè)計要求,可以應用到其他視頻終端系統(tǒng)的設(shè)計,具有較強的實用性。
[1]李昂,寧海聲,蘇小蕓.基于Android的視頻監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)[J].電子技術(shù)應用,2012,38(7):138-143.
[2]張宏祥,李宇成.基于ARM11的嵌入式無線視頻終端的設(shè)計[J].計算機測量與控制,2011,19(11):2778-2780.
[3]任克強,劉蘇,謝斌.基于ARM11和Linux的網(wǎng)絡視頻監(jiān)控系統(tǒng)[J].電視技術(shù),2014,38(5):155-159.
[4]張凱,莊梁,張強.基于視頻動態(tài)檢測的車庫監(jiān)控報警系統(tǒng)[J].電子技術(shù)應用,2013,39(11):30-33.
[5]Grain Media Inc.GM8126 Linux Software Development Kit.Version 0.1,2010.
[6]楊奇.基于Nios II的嵌入式標清高清視覺檢測系統(tǒng)的設(shè)計[J].科技促進發(fā)展,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.