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