王博,,王凱
?。ㄖ袊娇諢o線電電子研究所,上海 200232)
摘要:為解決在航空機載環(huán)境下,,需要同時壓縮記錄多路和多制式視頻信號的問題,,設計實現(xiàn)了一個以TMS320DM8168為核心的,能夠對多路高清視頻進行采集,、處理和壓縮的高清視頻編碼系統(tǒng),,采用H.264算法對高清視頻進行實時壓縮編碼。整個系統(tǒng)充分利用ARM核和DSP核的強大處理能力,,經(jīng)過對H.264視頻編碼算法的優(yōu)化,,整個系統(tǒng)能夠同時處理1路分辨率1 600×1 200、4路分辨率720×576的視頻和1路音頻,,視頻壓縮幀率最大能夠達到60幀/s,,滿足了實時處理的要求,整個系統(tǒng)設計簡單,,擴展性好,,處理能力強。
關鍵詞:TMS320DM8168; H.264; DSP; 高清視頻
中圖分類號:TP752文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.05.015
引用格式:王博,,王凱.基于DM8168的機載高清視頻編碼系統(tǒng)的設計與實現(xiàn)[J].微型機與應用,,2017,36(5):46-49,53.
0引言
在航空機載領域,視頻壓縮記錄已被廣泛應用,,尤其在飛機試飛過程中,,視頻壓縮記錄為記錄飛機飛行狀態(tài)、飛行員操作和飛行事后分析等提供了重要手段,。但隨著飛機的換代升級,,傳統(tǒng)的機載視頻壓縮記錄也面臨著諸多挑戰(zhàn),,首先機載視頻信號種類越來越多,在同一架飛機上,,可能同時存在著多種制式的視頻信號,,除了比較常見的PAL制視頻,更有VGA,、XGA等信號,;其次視頻圖像分辨率也越來越大,如1 024×768,、1 600×1 200等,,這就要求機載視頻壓縮記錄設備能夠具備同時處理多路多制式視頻信號的能力和較高的算法實時性。結合以上特點,,本文搭建了一種嵌入式平臺,,以TI公司最新推出的數(shù)字多媒體處理器TMS320DM8168芯片為開發(fā)平臺,,實現(xiàn)了同時對1路分辨率1 600×1 200,、4路分辨率720×576的視頻和1路音頻的實時采集及H.264壓縮編碼,能夠滿足機載環(huán)境下對多路高清視頻壓縮編碼的實時性要求,。
1DM8168結構
TMS320DM8168是TI公司最新推出的數(shù)字多媒體處理器,,采用了達芬奇技術架構。DM8168處理器內部集成了1個1.2 GHz ARM CortexA8核,,1個1 GHz DSP C674x核和3個高清視頻協(xié)處理器(HDVICP2)[1],,能夠快速高效地完成對高清視頻的處理和壓縮。通過將這些高清視頻處理功能集成在單片系統(tǒng)中,,在高速,、高效、移植性強的Linux系統(tǒng)中實現(xiàn),,不僅能夠滿足系統(tǒng)性能的要求,,而且降低了開發(fā)成本和設計復雜度。
2H.264視頻編碼標準介紹
H.264是國際電信聯(lián)盟(ITU)發(fā)布的一個視頻壓縮標準,,其目的是在比以往低的位速率下,,提供高質量的視頻壓縮技術。該標準具有高度的靈活性,,可以實現(xiàn)各種位速率,,以及各種不同的分辨率。圖1所示為H.264視頻編碼標準的編碼框架,,編碼以宏塊為單位進行[2],。
H.264具有如下特性:圖1H.264編碼框架(1)用戶可以配置運動估計的設置,以便控制編碼速度和壓縮質量之間的平衡,;
?。?)多種宏塊劃分方式,,如16×16、16×8,、8×16,、8×8、8×4,、4×8,、4×4,可以更好地匹配運動信息,,減少塊效應,;
(3)運動估計最深支持1/4像素的內插運算,;
?。?)H.264使用基于4×4像素的類DCT(離散余弦變換)變換,不存在反變換時因取舍而存在的誤差問題,,有利于向定點DSP進行移植,;
(5)可以在視頻輸入格式YUV平面與YUV422隔行掃描之間選擇,。
正是由于采用了這些最新技術,,使得H.264成為目前性能最好的視頻壓縮編碼器,并在諸多領域得到了廣泛應用,。
3系統(tǒng)的實現(xiàn)
3.1系統(tǒng)組成
該系統(tǒng)主要由兩部分構成:視頻壓縮處理模塊和視頻壓縮控制模塊,。前端視頻源由視頻信號發(fā)生器產(chǎn)生,可為整個系統(tǒng)提供符合要求的多種制式和分辨率的視頻信號,;視頻壓縮處理模塊由前后端兩個功能塊組成,,前端主要采集接收4路標清(分辨率720×576)視頻信號,然后通過FPGA實現(xiàn)圖像拼接,,將4路標清視頻拼接成1路高清(分辨率1 920×1 080)視頻,,后端采用了TI公司的TMS320DM8168達芬奇視頻SoC(System on Chip),對上述1路合成高清視頻和1路分辨率為1 600×1 200高清視頻信號做H.264壓縮編碼,,對1路音頻信號做ACC壓縮編碼,,然后將壓縮后的音視頻數(shù)據(jù)通過PCIE總線傳輸給視頻壓縮控制模塊;視頻壓縮控制模塊通過SATA接口將數(shù)據(jù)最終存儲到電子盤并實現(xiàn)目錄化的管理,。整個系統(tǒng)組成框圖如圖2所示,。
3.2系統(tǒng)硬件設計
(1) 視頻壓縮處理模塊
視頻壓縮處理模塊的主要功能是對前端輸入的4路標清模擬視頻信號、1路高清視頻信號和1路音頻信號進行采集,、處理,、編碼和傳輸。其組成框圖如圖3所示,。
A/D芯片采用TVP5158芯片,,主要功能有兩點:對采集到的4路PAL制式模擬視頻做A/D轉換,;采用時
分復用技術,將輸入的4路視頻數(shù)據(jù)流交織成1路,,通過8位數(shù)據(jù)線輸出YUV數(shù)據(jù),。而對于模塊上的FPGA芯片,則主要對上述TVP5158處理后輸出的4路標清視頻流進行拼接,,得到1路高清視頻流,,傳輸?shù)紻M8168。模塊上還采用了SIL9135芯片,,其可將另外1路輸入的HDMI信號轉變?yōu)閅UV數(shù)據(jù)格式,,輸出到DM8168,同時音頻信號采用TLV320AIC23芯片轉換后也傳輸?shù)紻M8168,。這樣,,DM8168最終收到了1路拼接的高清視頻數(shù)據(jù)、1路原始的高清視頻數(shù)據(jù)和1路音頻信號,。
?。?)視頻壓縮控制模塊
視頻壓縮控制模塊的主要功能是通過PCI-E總線接收視頻壓縮處理模塊發(fā)送過來的音視頻編碼數(shù)據(jù),并通過同步方式控制視頻壓縮處理模塊對數(shù)據(jù)的壓縮,,最后將接收到的音視頻編碼數(shù)據(jù)通過SATA接口存儲到電子盤中,。其組成框圖如圖4所示,。
控制芯片選用了PowerPC,,芯片型號為MPC8377,主頻為400 MHz,。
3.3系統(tǒng)軟件設計
3.3.1DM8168平臺軟件實現(xiàn)
在本系統(tǒng)開發(fā)初期,,使用的是TI公司的官方軟件開發(fā)包EZSDK[3],但經(jīng)過驗證,,目前的EZSDK版本不能支持兩路高清視頻的同時采集和編碼,,無法滿足設計要求,經(jīng)過調查研究,,TI公司第三方合作伙伴UDWorks公司研發(fā)出了另外一種架構的軟件開發(fā)包—DVRRDK,。其最新版本DVRRDK3.0可以滿足設計要求。因此最終采用DVRRDK3.0來開發(fā)DM8168的平臺軟件,。從音視頻數(shù)據(jù)的采集到壓縮編碼再到輸出均在DVRRDK的架構下完成,,極大地減輕了研發(fā)的難度。DVRRDK開發(fā)包沒有采用OpenMax架構,,而是設計了一種新的軟件結構,,DM8168中有多個核,比如做主控制器的ARM CortexA8,,控制VPSS(Video Processing SubSystem)的ARM CortexM3,,控制Video的ARM CortexM3,,還有一個高速DSP核[4]。DVRRDK軟件架構不但把每個核上的軟件分層處理,,而且還設計了不同核之間的通信機制,。整個軟件架構如圖5所示。
DM8168的核間通信通過Syslink/IPC進行,,任意兩個核之間都可以直接通信,。Link是其中的基本單元模塊[5],每個Link中包含了一個基于BIOS6/Linux[6]的任務,、線程,、消息盒(使用操作系統(tǒng)的信號量實現(xiàn))。對于視頻流數(shù)據(jù),、原始視頻數(shù)據(jù)的傳遞Link采用專門的接口來實現(xiàn),,只傳遞指針,而不是數(shù)據(jù),?;谶@種Link結構,視頻處理的流程中,,所有工作量都可以比較均衡地分配到每個處理器內核上去執(zhí)行,。
3.3.2H.264編碼算法在DM8168下的優(yōu)化
DM8168內部集成了HDVICP2協(xié)處理器[7],針對H.264視頻編碼算法提供了硬件加速器,。HDVICP2中的算法模塊如表1所示,。
表中各模塊完成的功能如下:
(1)IPE模塊完成H.264算法中的幀內預測模式,;
?。?)CALC、ECD,、BS,、LPF各模塊完成H.264算法中的離散余弦變換、量化,、變長編碼,、濾波等功能;
?。?)ME,、MC完成H.264算法中的運動預測和運動補償功能,既支持精度較高的全搜索運動估計算法也支持各種快速運動估計算法,。
根據(jù)HDVICP2內部各運算模塊的特點,,整個H.264算法流程可以根據(jù)HDVICP2的模塊特點進行分解,配合DSP核強大的運算能力,,整個H.264編碼過程可以由DSP與HDVICP2的算法子模塊共同完成,。在DM8168平臺下優(yōu)化了H.264基本檔次(BaseLine)的視頻編碼器,,在不影響算法實時性的前提下,采用全搜索運動估計算法,,搜索范圍限定于32×32像素范圍內,,整個編碼過程如圖6所示。
首先通過幀內預測(IPE)模塊獲得最佳幀內預測模式,,再通過幀間運動估計(ME)模塊獲得最佳運動矢量,。由于不規(guī)則宏塊如16×8、8×16的分割以及較大的運動搜索范圍會使ME的執(zhí)行時間大大加長,,影響算法的實時性,,筆者在實際設計中采用了如下的特性:宏塊僅支持16×16分割方式,運動估計的搜索范圍被限制在正負32整像素以內,,采用全搜索方式,;1/2像素搜索圍繞整像素最佳運動矢量進行,取全部取樣點中SAD值的最小點,。DSP核負責SAD(絕對差值和)值的計算,,并根據(jù)SAD值進行幀內幀間的模式判決;預測幀與參考幀相減,、正向離散余弦變換(DCT),、量化(Q)、反量化(IQ),、反向離散余弦變換(IDCT)等全部由計算模塊(CALC)完成,,最后由熵編碼(ECD)模塊對殘差數(shù)據(jù)進行編碼。
同時為進一步提高算法效率,,設計每個算法模塊一次只處理2個宏塊數(shù)據(jù)量,,這樣可以保證各算法模塊之間按流水線并行操作,一個典型的并行流水操作如圖7所示,。
從上圖可以看出,從第6個時鐘節(jié)拍開始,,所有算法子模塊都已處在并行操作的模式下,,大大提高了編碼速度。
3.3.3系統(tǒng)控制算法
視頻壓縮處理模塊與視頻壓縮控制模塊之間采用同步位的方式進行交互控制,。視頻壓縮處理模塊在壓縮好一幀視頻數(shù)據(jù)后,,將同步位置1,視頻壓縮控制模塊周期查詢同步位,,當同步位為1時,,從兩個模塊的共享內存中以DMA的方式將音視頻編碼數(shù)據(jù)取走,同時將同步位置0,,視頻壓縮處理模塊在檢測到同步位為0時開始下一幀數(shù)據(jù)的壓縮處理,。整個系統(tǒng)控制算法流程如圖8所示,。
4實驗結果
本編碼系統(tǒng)對1路分辨率為1 600×1 200的高清視頻和4路分辨率為720×576的標清視頻進行了編碼測試,其中4路標清視頻被FPGA合成為1路分辨率為1 920×1 080的逐行信號,,根據(jù)航空機載視頻畫面的特點,,本文選擇了相應的視頻測試序列。H.264算法采用的主要參數(shù)為:編碼量化步長25,,I幀(關鍵幀)間隔50,,前向單幀預測,不支持B幀,。實驗結果如表2所示,。
實驗結果表明,本系統(tǒng)已經(jīng)達到了對多路高清視頻實時編碼的要求,。
5結論
本文在充分分析機載航空視頻壓縮記錄特點的基礎上,,以TI達芬奇DM8168多核處理器為開發(fā)平臺,實現(xiàn)了實時多路高清編碼系統(tǒng),,同時結合DM8168的平臺特點,,對H.264編碼算法進行了相應優(yōu)化。實驗結果證明,,整個系統(tǒng)性能優(yōu)異,,較好地滿足了機載航空視頻壓縮記錄的發(fā)展需求。
參考文獻
?。?] Texas Instruments.TMS320DM816x DaVinci Digital Media Processors SPRS614F[Z]. Texas: Texas Instruments Incorporated, 2011.
?。?] 沈蘭蓀,卓立. 小波編碼與網(wǎng)絡視頻傳輸[M]. 北京:科學出版社, 2005.
?。?] Texas Instruments.Using the C6EZRun DSP development tool for DSP+ARM SoCs.sprabg1a[Z].Texas: Texas Instruments Incorporated, 2011.
?。?] Texas Instruments.TMS320DM816x DaVinci Digital Media Processors Technical Reference Manual[Z].sprugx8c Texas: Texas Instruments Incorporated, 2015.
[5] 王行行.基于TMS320DM8168的視頻編碼系統(tǒng)研究與實現(xiàn)[J]. 紅外與激光工程,,2014,,43(S): 213 .