在分析視頻監(jiān)控系統(tǒng)網(wǎng)絡化趨勢和實時性要求的基礎上,采用DSP TMS320C6416和ARM微控制器,設計并實現(xiàn)了支持煤礦井下工業(yè)以太網(wǎng)傳輸?shù)那度胧紿.264視頻編碼器。
給出了系統(tǒng)結(jié)構原理及硬件設計,實現(xiàn)了DSP編碼算法和面向RTP/UDP/IP的NAL接口。測試表明,系統(tǒng)能夠進行高質(zhì)量的視頻網(wǎng)絡化傳輸。
目前,在煤礦使用模擬視頻信號的煤礦工業(yè)電視監(jiān)控系統(tǒng)已經(jīng)不能滿足煤礦綜合自動化的技術發(fā)展,新型的視頻監(jiān)控系統(tǒng)應在確保視頻采集和壓縮的實時性的同時,支持視頻流在工業(yè)以太網(wǎng)上的IP傳輸,實現(xiàn)全礦信息化的數(shù)字化和網(wǎng)絡化。
H.264/AVC作為最新的視頻編碼標準,定義了視頻編碼層(VCL)和網(wǎng)絡提取層(NAL)。從框架結(jié)構上將NAL與VCL分離,主要實現(xiàn)兩個目的:(1)可以定義VCL視頻壓縮處理與NAL網(wǎng)絡傳輸機制的接口,這樣允許視頻編碼層VCL的設計可以在不同的處理器平臺進行移植,而與NAL層的數(shù)據(jù)封裝格式無關;(2)VCL和NAL都被設計成工作于不同的傳輸環(huán)境,異構的網(wǎng)絡環(huán)境并不需要對VCL比特流進行重構和重編碼。從H.264在VCL和NAL上優(yōu)點來說,它對于復雜多樣的嵌入式應用環(huán)境是非常適用的,提高了網(wǎng)絡適應性,從而保證了視頻傳輸?shù)腝oS。
基于以上分析,本文提出了一種綜合運用DSP和嵌入式ARM微控制器的嵌入式實時網(wǎng)絡化視頻方案。該方案采用全嵌入式設計,具有可靠性高、體積小、環(huán)境適應性強的優(yōu)點,符合IEEE802.3u規(guī)范,在保證圖像質(zhì)量的同時支持數(shù)字化視頻流在煤礦工業(yè)以太網(wǎng)上直接傳輸。
基于工業(yè)以太網(wǎng)的視頻監(jiān)控系統(tǒng)
如圖1,使用自行開發(fā)的KJJ系列隔爆型工業(yè)以太網(wǎng)交換機1、2、3,構成基于光纖傳輸介質(zhì)的100Mbps單環(huán)冗余工業(yè)以太網(wǎng),H.264編碼器設備使用RJ45雙絞線連接到交換機,速率10/100Mbps自適應。環(huán)網(wǎng)通過交換機4連接至礦區(qū)Intranet或地面監(jiān)控主機。因此,嵌入式視頻編碼器是視頻監(jiān)控系統(tǒng)實現(xiàn)的關鍵。

圖1 基于工業(yè)以太網(wǎng)的視頻監(jiān)控系統(tǒng)
H.264編碼器系統(tǒng)設計
結(jié)合煤礦應用環(huán)境的特點,其系統(tǒng)結(jié)構設計摒棄了傳統(tǒng)的計算機擴展插卡的設計形式,采用全嵌入式網(wǎng)絡化設計。如圖2所示,以TI公司的高性能C6416系列定點DSP芯片和Samsung公司的嵌入式ARM-S3C4510B芯片為基礎,構建嵌入式視頻編碼器系統(tǒng)硬件平臺,支持通過嵌入式文件系統(tǒng)實現(xiàn)系統(tǒng)軟件的在線升級。
系統(tǒng)主要由視頻采集、視頻緩沖、視頻處理和視頻傳輸4部分組成。CCD攝像頭獲得的模擬視頻信號經(jīng)A/D轉(zhuǎn)換為數(shù)字視頻信號后,視頻信號通過高速DSP壓縮成所需的數(shù)據(jù)碼流。視頻壓縮后的數(shù)據(jù)流由S3C4510B從DSP的數(shù)據(jù)接口HPI32讀出,在嵌入式操作系統(tǒng)的UDP/IP協(xié)議棧,將數(shù)據(jù)打包,并運行WebServer服務器,等待客戶服務端通過網(wǎng)絡訪問數(shù)據(jù)流,從而實現(xiàn)基于Web的嵌入式視頻壓縮編碼系統(tǒng)。

圖2 系統(tǒng)結(jié)構原理
C6416與S3C4510B接口模塊
DSP與微控制器的接口是通過C6416的主機接口HPI32實現(xiàn)的,為了確保數(shù)據(jù)吞吐量,使用32位總線,C6416的主機接口和PCI總線引腳共用,設置PCI_EN=0,配置為HPI模式。這樣做的優(yōu)點是充分利用DSP的帶寬資源,減少總線上的沖突,減輕EMIF總線壓力。因為DSP為高速器件,S3C4510B為低速器件,接口DSP采用異步從模式,即DSP(slave),S3C4510B(master),這樣DSP工作在從模式下,無須加入共享存儲器模塊,節(jié)省了開發(fā)的成本,同時也降低了開發(fā)的難度,其他相關控制信號線連接如圖3。
因為S3C4510B有自己的地址和數(shù)據(jù)總線,所以地址選通信號/HAS接高電平,S3C4510B通過內(nèi)存分區(qū)(BANK)RCS5訪問C6416來傳遞數(shù)據(jù)。S3C4510B配置了64MSDRAM在RAM分區(qū)0,引導BootROM2MB和文件系統(tǒng)IntelFlashROM8MB分別放在ROM分區(qū)0和1。在S3C4510B上運行VxWorks實時操作系統(tǒng),包括TrueFFS文件系統(tǒng)和嵌入式Web服務器。

圖3 C6416和S3C4510接口
視頻采集
該模塊的主要功能是將從CCD攝像頭輸入的模擬視頻信號轉(zhuǎn)換為數(shù)字信號。如圖4所示,普通CCD攝像頭的輸出是NTSC制式(或PAL制式)的復合全電視信號CVBS或是S-Video信號,二者均為模擬信號。通過Philips公司的TV解碼芯片SAA7114H將模擬TV信號解碼并且模數(shù)轉(zhuǎn)換為符合CCIR.601標準的數(shù)字視頻信號,并且存儲到AVERLOGIC(凌泰)專用的視頻幀F(xiàn)IFO芯片AL4V8M440(8Mb)中,等待DSP處理。幀F(xiàn)IFO配置在C6416的CE2空間,CPLD通過SAA7114H的輸出狀態(tài)信號以及C6416DSP的相應輸出控制信號生成FIFOAL4V8M440的控制信號。通過檢測SAA7114H輸出的同步信號來生成DSP中斷,通知DSP讀取視頻FIFO中已滿的一場圖像數(shù)據(jù)。

圖4 視頻采集模塊
由于H.264的視頻格式主要為QCIF和CIF,QCIF的Y信號規(guī)定為176點/行、144行/幀,其色度信號Cb和Cr的規(guī)定為88點/行、72行/幀,每個像素用12位表示;CIF的Y信號的規(guī)定為352點/行、288行/幀,其色度信號Cb和Cr的規(guī)定為176點/行、144行/幀,每個像素用12位表示。H.264標準中默認的輸入位流為4:2:0形式,所以要對采集來的視頻數(shù)據(jù)進行存儲格式轉(zhuǎn)換,即通過存儲轉(zhuǎn)換使視頻流在FIFO中以4:2:0的QCIF或者CIF格式進行存放,這里稱之為視頻格式轉(zhuǎn)換。
主處理器模塊
TMS320C6416是德州儀器(TI)公司最新推出的高性能定點DSP,其時鐘頻率可達600MHz,最高處理能力為4800MIPS,該DSP具有Viterbi譯碼協(xié)處理器(VCP)和Turbo譯碼協(xié)處理器(TCP)。采用兩級緩存結(jié)構:一級緩存(L1)由128kb的程序緩存和128kb的數(shù)據(jù)緩存組成,二級緩存(L2)為8Mb。有2個擴展存儲器接口(EMIF),可以與異步(SRAM,EPROM)/同步存儲器(SDRAM、SBSRAM、ZBTSRAM、FIFO)無縫連接,最大可尋址范圍為1280MB;主機接口(HPI)總線寬度可由用戶配置(32/16b)。由于需要處理的圖像數(shù)據(jù)量非常大(對于720*576的圖像需要829440B),而且系統(tǒng)頻繁的轉(zhuǎn)移數(shù)據(jù),采用64位數(shù)據(jù)寬度的SDRAM對提高整體效率非常有用,所以配置64位寬128MB的SDRAM在A總線EMIFA上,使用分區(qū)CE0。FLASHROM用于存放程序,連接在分區(qū)CE1,使用16位寬B總線EMIFB,共8MB。幀F(xiàn)IFO配置在分區(qū)CE2,用于存放A/D采集的像素,由CPLD控制寫入,DSP讀出數(shù)據(jù)進行壓縮處理,具體流程如圖5所示。

圖5 系統(tǒng)工作流程
實現(xiàn)的主要功能:
(1)采用H.264/AVC標準,能夠?qū)?shù)字視頻數(shù)據(jù)進行壓縮和編碼處理;
(2)完成對整個硬件系統(tǒng)各模塊的控制功能,實現(xiàn)數(shù)字視頻流的傳輸控制;
(3)通過C6416的HPI32總線將壓縮后的視頻流傳送到微控制器上;
(4)通過C6416的McBSP1模擬I2C總線,對視頻A/DSAA7114H和視頻FIFO進行配置;
(5)帶有音頻擴展接口,可以很方便的構成音頻視頻同步的網(wǎng)絡視頻監(jiān)控系統(tǒng)。
面向RTP的NAL接口
H.264首先對視頻編碼流的相關信息進行語法優(yōu)先級上的數(shù)據(jù)分類,根據(jù)具體的網(wǎng)絡傳輸環(huán)境,在保證視頻抗誤碼能力的前提下選擇大小合適的數(shù)據(jù)分類整合打包策略。在此基礎上,H.264提供了面向RTP/UDP/IP和H.223信道傳輸?shù)腘AL接口,本系統(tǒng)使用面向RTP/UDP/IP的NAL接口。
H.264將每個編碼幀或者分片Slice在MTU容量的限制下分成傳輸優(yōu)先級不同的兩個輸出包:
(1)編碼信息包(優(yōu)先級高)
TYPE_HEADER,TYPE_MBHEADER;
TYPE_MVD,TYPE_EOS;
(2)紋理信息包(優(yōu)先級低)
TYPE_CBP,TYPE_2x2DC;
TYPE_COEFE_Y,TYPE_COEFE_C;
H.264/AVC編碼及關鍵技術
為了滿足不同速率、解析度以及網(wǎng)絡傳輸?shù)囊螅琀.264提供了多種檔次(Profile)和等級(level)。根據(jù)H.264/AVC規(guī)范,結(jié)合礦山監(jiān)控系統(tǒng)信息流的特點,經(jīng)過測試分析,采用如圖6所示的編碼結(jié)構。H.264編碼主要由幀間預測(Inter-Prediction),幀內(nèi)預測(Intra-Prediction),整數(shù)變換(Transition)、量化(Q)、環(huán)路濾波(filter)和熵編碼(EntropyEncoding)等幾部分組成,編碼器生成的碼流提交給NAL層。

圖6 H.264編碼器
輸入幀F(xiàn)n經(jīng)過宏塊(MC)處理后,根據(jù)是在幀間還是幀內(nèi)預測編碼模式,分別確定預測值(P):在幀內(nèi)模式,P值由前面經(jīng)過編碼、譯碼和重建的分片uF'n決定;在幀間模式,P值由幀間的運動補償預測決定。
另外,H.264使用以下幾項關鍵技術:
(1)H.264除了支持P幀、B幀外,還包括流間傳送幀—SP幀,能在有類似內(nèi)容但有不同碼率的碼流之間快速切換,使用多參考幀進行幀間預測編碼,其中參考幀的個數(shù)為1~5個,這樣比單參考幀節(jié)省了5%~10%的碼子空間;
(2)幀間預測可以基于7種不同大小的塊來進行,這比單獨的16×16塊預測方法提高大于15%的編碼率;
(3)H.264的運動估計采用高精度的亞像素運動補償,支持1/4或者1/8像素精度的運動估值。對于QCIF的視頻格式使用1/4像素精度預測方式;對CIF的視頻格式使用1/8像素精度預測方式。
(4)H.264中可選32種不同的量化步長,這與H.263中有31個量化步長很相似,但是在H.264中,步長是以12.5%的復合率遞進的,而不是一個固定常數(shù);
(5)H.264使用基于4×4塊的整數(shù)殘差變換編碼方式,反變換過程中沒有匹配錯誤問題;
(6)采用基于4×4塊邊界的去塊濾波器來消除塊效應,從而極大地改善了圖像的主觀質(zhì)量;
(7)H.264采用兩種可選擇熵編碼CAVLC(基于內(nèi)容的自適應變長編碼)和CABAC(自適應二進制算術編碼)。后者可以提高大約10%
的編碼率。
H.264算法的DSP實現(xiàn)和優(yōu)化
代碼實現(xiàn)
ITU-T官方提供的H.264的核心算法不僅在代碼結(jié)構上需要改進,而且在具體的核心算法上也需要做大的改動,才能達到實時的要求。
需要做的具體工作包括:去除冗余代碼,規(guī)范程序結(jié)構,全局和局部變量的調(diào)整和重新定義,結(jié)構體的調(diào)整等。開發(fā)工具CCS有自己的ANSIC編譯器和優(yōu)化器,并有自己的語法規(guī)則和定義,所以在DSP上實現(xiàn)H.264的算法要把PC機上C語言編寫的H.264代碼進行改動,使其完全符合DSP中C的規(guī)則。相關的改動包括:去除所有的文件操作;去除可視化界面的操作;合理安排內(nèi)存空間的預留和分配;規(guī)范數(shù)據(jù)類型——因為C6416是定點DSP芯片,只支持4種數(shù)據(jù)類型:short型(16b)、int(32b)、long型(40b)和double型(64b),因此必須對數(shù)據(jù)進行重新規(guī)范,把浮點數(shù)的運算部分近似用定點表示,或用定點實現(xiàn)浮點運算;根據(jù)內(nèi)存的分配定義遠近程常量和變量;把常用的數(shù)據(jù)在數(shù)據(jù)結(jié)構中提取出來,以near型數(shù)據(jù)定義在DSP內(nèi)部存儲空間,以減少對EMIF端口的讀取,從而提高速度。
H.264的DSP算法優(yōu)化
結(jié)合DSP本身的特點,對算法進一步優(yōu)化,實現(xiàn)H.264算法對視頻圖像的實時處理。采取了以下措施:
(1)通過選擇CCS提供的編譯優(yōu)化參數(shù)-mw、-pm、-o3和-mt等,根據(jù)H.264系統(tǒng)的要求進行優(yōu)化,通過不斷地對各個參數(shù)的選擇、搭配、調(diào)整,改善循環(huán)、多重循環(huán)體的性能,從而提高軟件的并行性。
(2)對反復調(diào)用和影響編碼速度的關鍵C代碼進行線性匯編重寫。結(jié)合CCS代碼剖析工具,利用線性匯編重寫了反整數(shù)變換、1/4像素內(nèi)插和去塊效應等關鍵函數(shù),函數(shù)運行時鐘周期只是C語言的1/2~1/3。
(3)對原測試模型進行裁減,定制H.264的編碼代碼,通過實際測試盒性能分析,刪除了對性能影響不大的算法,如峰值信噪比計算等部分。
(4)使用intrinsics內(nèi)聯(lián)函數(shù)優(yōu)化C程序,內(nèi)聯(lián)函數(shù)直接替代復雜的C代碼,有助于減少指令周期,提高代碼性能。
(5)利用EDMA實現(xiàn)大容量數(shù)據(jù)傳輸,以DMA的方式加快數(shù)據(jù)處理速度,從而減少CPU接入,減輕處理器的負擔。
(6)在網(wǎng)絡軟件實現(xiàn)、EDMA數(shù)據(jù)傳輸和定時器使用上,充分利用TI提供的庫函數(shù),有助于提高性能,降低代碼長度。
H.264編碼器防爆設計和性能評價
由于煤礦井下環(huán)境極其惡劣,因此除了在進行硬件設計時需考慮電路板的電氣特性以外,基于編碼器功耗和現(xiàn)場安全要求,對其采用防爆外殼。外殼的設計參照《煤礦安全規(guī)范》、《煤礦設計規(guī)范》、《爆炸性環(huán)境用防爆電氣通用設備要求》、《煤礦通信、檢測、控制用電工電子產(chǎn)品通用技術要求》、《爆炸性環(huán)境用防爆電氣設備本質(zhì)安全型電路和電氣設備要求》等技術標準,要求產(chǎn)品能夠通過振動、沖擊、淋水、濕熱、高低溫工作、電壓波動等10多項安全檢測,并能安全運行在井下有爆炸性氣體的環(huán)境中。
對H.264與MPEG-4、H.263++編碼性能在10/100Mbps工業(yè)以太網(wǎng)試驗環(huán)境進行比較,結(jié)果表明:H.264具有比MPEG和H.263++更優(yōu)秀的PSNR性能。H.264的PSNR比MPEG-4平均要高2dB,比H.263++平均要高3dB。而且在同樣的編碼速率下,基于H.264的編碼系統(tǒng)視頻更清晰、流暢,能滿足現(xiàn)場的需求。
結(jié)束語
本文提出了使用數(shù)字信號處理器和嵌入式網(wǎng)絡微控制器,設計面向煤礦工業(yè)以太網(wǎng)應用的H.264編碼器,從而構建基于工業(yè)以太網(wǎng)的網(wǎng)絡化視頻監(jiān)控系統(tǒng),對煤礦視頻監(jiān)控系統(tǒng)的網(wǎng)絡化關鍵技術進行研究。有利于促進煤礦企業(yè)信息化和網(wǎng)絡化,構建基于IP的管控一體化網(wǎng)絡。