張 寬,張 銘,張志剛,劉 娟,唐立軍
(1.長沙理工大學(xué) 物理與電子科學(xué)學(xué)院,湖南 長沙 410114;2.近地空間電磁環(huán)境監(jiān)測與建模湖南省普通高校重點(diǎn)實(shí)驗(yàn)室,湖南 長沙 410114)
超高清視頻無線傳輸現(xiàn)在主要有三種方案:第一種是利用公共通信系統(tǒng)進(jìn)行信號(hào)傳輸[1?2];第二種是利用WiFi 進(jìn)行短距離、低延遲的視頻傳輸[3];第三種是利用微波無線電技術(shù)[4?5]。在抗震救災(zāi)或者戰(zhàn)場偵察等特殊場所,需要視頻遠(yuǎn)距離無線傳輸,但又沒有公共通信系統(tǒng)可以利用。所以微波無線電技術(shù)就變成了視頻遠(yuǎn)距離無線傳輸唯一可用的方案,但微波無線電技術(shù)存在著傳輸帶寬過窄的問題,導(dǎo)致傳輸?shù)囊曨l流分辨率低或者幀數(shù)低的問題。針對(duì)存在的這一問題提出了兩種方案:第一種是增加微波傳輸帶寬,第二種是通過對(duì)視頻編解碼來減少視頻的傳輸帶寬。目前,4K 視頻傳輸帶寬至少需要12 GB,增加微波傳輸帶寬來實(shí)現(xiàn)4K 的傳輸顯然是無法完成的,現(xiàn)階段的方法是通過對(duì)視頻流進(jìn)行編解碼壓縮來降低傳輸帶寬,實(shí)現(xiàn)4K@30 Hz 視頻的無線傳輸。這種做法雖然實(shí)現(xiàn)了4K 視頻的傳輸[5],但幀率只有30 f/s。本文通過異構(gòu)多核FPGA 和AD9361 搭建了UHD 無線傳輸系統(tǒng),利用HEVC 和OFDM 技術(shù)實(shí)現(xiàn)了4K@60 Hz 視頻的遠(yuǎn)距離無線傳輸,具有視頻分辨率高、幀率高、集成化度高的特點(diǎn)。
由于流暢無損傳輸4K@60 Hz 視頻至少需要12 GB帶寬,而OFDM 射頻的傳輸帶寬僅10 MB,所以4K@60 Hz 的視頻流傳輸?shù)年P(guān)鍵是要對(duì)視頻流進(jìn)行編解碼壓縮來降低傳輸帶寬,把原本需要12 GB 帶寬傳輸?shù)腢HD 視頻壓縮至僅需要10 MB 帶寬傳輸。HEVC 編解碼技術(shù)對(duì)視頻流壓縮的壓縮比[6?10]最大可達(dá)1∶500,因此,本文選取HEVC 編解碼方案對(duì)視頻流進(jìn)行壓縮。
目前視頻流的HEVC 編解碼主要有以下三種方法,一種是利用PC 機(jī)實(shí)現(xiàn)4K@60 Hz 視頻流的HEVC 編解碼,但由于受到體積過大的限制,難以實(shí)現(xiàn)集成和小型化;一種是ARM 芯片進(jìn)行HEVC 編解碼,但由于ARM運(yùn)算速度慢會(huì)導(dǎo)致編解碼產(chǎn)生巨大的延遲;還有一種是利用專業(yè)的HEVC 編解碼芯片,但開發(fā)周期非常長[8]。鑒于此,本文提出異構(gòu)多核的視頻流的編解碼方法,采用ARM+FPGA 架構(gòu),利用FPGA 硬件加速的優(yōu)勢搭建IP核,利用ARM 多任務(wù)處理的性能實(shí)現(xiàn)對(duì)FPGA 模塊進(jìn)行控制,結(jié)構(gòu)靈活,開發(fā)周期短,為實(shí)現(xiàn)高效靈活的4K@60 Hz 視頻流傳輸提供一定的技術(shù)支撐。
本文利用異構(gòu)多核結(jié)構(gòu)的編解碼器VCU 來實(shí)現(xiàn)。VCU 編解碼器最大可支持4K@60 Hz 的視頻流數(shù)據(jù),其編碼架構(gòu)如圖1 所示,相應(yīng)環(huán)節(jié)的方法說明如下:
圖1 視頻流編碼架構(gòu)
1)幀內(nèi)編碼方法。當(dāng)圖片緩存完畢后,首先對(duì)圖片進(jìn)行塊狀區(qū)域分割,并實(shí)現(xiàn)對(duì)其數(shù)據(jù)進(jìn)行幀內(nèi)估算,完成幀內(nèi)編碼。隨后進(jìn)行幀內(nèi)預(yù)測,利用分塊后的原圖像幀和幀內(nèi)預(yù)測相減,得到幀內(nèi)殘差信號(hào)。殘差信號(hào)經(jīng)過線性變化,可得到相應(yīng)的變化系數(shù),再把變化系數(shù)進(jìn)行縮放和量化得到殘差信號(hào)系數(shù),經(jīng)過反處理還原殘差信號(hào)。把殘差信號(hào)和幀內(nèi)預(yù)測信號(hào)進(jìn)行相加得到分塊預(yù)測圖像幀。利用環(huán)路濾波和自適應(yīng)補(bǔ)償除去“分塊效應(yīng)”,得到未經(jīng)分塊的圖像幀。最終把幀內(nèi)編碼信號(hào)和殘差信號(hào)系數(shù)一起進(jìn)行熵編碼,隨后進(jìn)行輸出。
2)幀間編碼方法。把分塊圖像幀數(shù)據(jù)輸送到運(yùn)動(dòng)估計(jì)模塊,通過利用幀內(nèi)編碼所預(yù)測得到的上一幀或下一幀圖像數(shù)據(jù)進(jìn)行幀間編碼。通過運(yùn)動(dòng)補(bǔ)償實(shí)現(xiàn)對(duì)幀間編碼數(shù)據(jù)的補(bǔ)償。同幀內(nèi)編碼一樣,把分塊原圖像幀和去幀間預(yù)測結(jié)果進(jìn)行做差,得到殘差信號(hào)。利用殘差信號(hào)和幀間預(yù)測信號(hào)相加得到分塊預(yù)測圖像幀。把得到的分塊預(yù)測圖像幀利用環(huán)路濾波和自適應(yīng)補(bǔ)償去除“分塊效應(yīng)”進(jìn)行濾波,可得到分塊的圖像幀。最后將幀間編碼信號(hào)和殘差信號(hào)系數(shù)一起進(jìn)行熵編碼,將得到的結(jié)果輸出。
解碼器結(jié)構(gòu)相對(duì)簡單,視頻流解碼架構(gòu)如圖2 所示。解碼器只需把接收到的比特流信號(hào)進(jìn)行熵解碼得到幀內(nèi)/幀間編碼信號(hào)和殘差信號(hào)系數(shù)。首先,把幀內(nèi)編碼信號(hào)和殘差信號(hào)相加,經(jīng)過去塊濾波得到第一幀圖像。然后,把幀間編碼信號(hào)和殘差信號(hào)相加,再與前一幀圖像進(jìn)行運(yùn)動(dòng)補(bǔ)償?shù)玫疆?dāng)前幀圖像數(shù)據(jù),最后經(jīng)過去塊濾波得到當(dāng)前幀圖像。
圖2 視頻流解碼架構(gòu)
HEVC 編解碼方案的輸入端是受到限制的,輸入信號(hào)必須為YUV 格式的視頻流,但視頻流大部分的格式為RGB 格式,所以需要對(duì)視頻流進(jìn)行格式轉(zhuǎn)換。因此,通過設(shè)計(jì)IP 核,將RGB 格式視頻流轉(zhuǎn)換為YUV 格式的視頻流,識(shí)別視頻流格式,直接將YUV 格式的視頻流傳輸給VCU 進(jìn)行HEVC 編解碼。下面介紹視頻流格式轉(zhuǎn)換原理與方案。
在進(jìn)行HEVC 編解碼之前先要對(duì)視頻流進(jìn)行格式轉(zhuǎn)換。視頻輸入端輸入的為HDMI 差分信號(hào),無論是ARM 還是FPGA 都無法直接對(duì)視頻信號(hào)進(jìn)行處理。因而首先,要把差分信號(hào)轉(zhuǎn)換為并行信號(hào)通過VDMA 存入到內(nèi)存中,再將非YUV 格式的視頻流進(jìn)行格式轉(zhuǎn)換,使其滿足VCU 的要求。
在HMDI 接收端設(shè)計(jì)視頻格式轉(zhuǎn)換器(IP 核),實(shí)現(xiàn)對(duì)視頻信號(hào)判斷和轉(zhuǎn)換,把RGB 格式和YUV 格式的信號(hào)轉(zhuǎn)換為YUV 4∶2∶2 的格式,還原原畫質(zhì),大大壓縮數(shù)據(jù)量,最大可壓縮到原數(shù)據(jù)量的。為了減少運(yùn)算量,降低編解碼延遲,把RGB 數(shù)據(jù)轉(zhuǎn)換為YVU 4∶4∶4 格式,再轉(zhuǎn)換為YUV 4∶2∶2 和YUV 4∶2∶0 格式。設(shè)Y(x,y),U(x,y),V(x,y)分別為x行y列像素點(diǎn)的Y,U,V的值,RGB 格式轉(zhuǎn)換為YVU 4∶4∶4 格式公式如下:
設(shè)P(x,y)為一個(gè)像素所含有的顏色信息,S為一幀圖像包含的YUV 值。當(dāng)采取YUV 4∶2∶2 時(shí)每行間隔去U和V的值,剔除部分信息。YUV 4∶4∶4 格式轉(zhuǎn)換為YUV 4∶2∶2 格式如下:
YUV 4∶4∶4 格式轉(zhuǎn)換為YUV 4∶2∶0 格式如下:
UHD 視頻無線傳輸多用于緊急狀況,對(duì)于復(fù)雜、惡劣環(huán)境傳輸?shù)男盘?hào)極易受到干擾。采用OFDM 多載波調(diào)制方法,在提高頻譜利用率的同時(shí),增強(qiáng)了抗干擾能力[11?16]。圖3 為OFDM 系統(tǒng)原理框圖。
圖3 OFDM 系統(tǒng)原理框圖
在發(fā)射端,將輸入的高速比特流信號(hào)通過調(diào)制映射得到調(diào)制信號(hào),通過串并轉(zhuǎn)換生成N條并行的低速數(shù)據(jù)流,并將每個(gè)N個(gè)并行數(shù)據(jù)組成一個(gè)OFDM 符號(hào)。在OFDM 符號(hào)中插入導(dǎo)頻信號(hào)后進(jìn)行快速離散傅里葉反變換(IDFT),實(shí)現(xiàn)對(duì)每個(gè)OFDM 符號(hào)的N個(gè)數(shù)據(jù)進(jìn)行調(diào)制,變成時(shí)域信號(hào),如下:
式中:m為頻域上的離散點(diǎn);n為時(shí)域上的離散點(diǎn);N為載波數(shù)。通常在每一時(shí)域OFDM 符號(hào)前加入保護(hù)間隔如式(5)所示,最后經(jīng)過并/串變化及D/A 轉(zhuǎn)換由發(fā)送天線發(fā)送出去。
在接收端,先完成定時(shí)同步和載波同步,在由A/D轉(zhuǎn)換和串并轉(zhuǎn)換得到信號(hào),把得到的信號(hào)進(jìn)行去前綴和DFT 變化得到如式(6)的信號(hào),把FFT 解調(diào)后的信號(hào)和信道估值放入檢測器進(jìn)行相干檢測,最后通過反映射及信道譯碼恢復(fù)出原始的比特流數(shù)據(jù)。
由式(4)和式(6)可以看出,利用IDFT 進(jìn)行調(diào)制,把每條信道上的數(shù)據(jù)率降低,通過多個(gè)互不干擾的子信道并行傳輸,同時(shí)通過式(5)在時(shí)域上加入周期性前綴,可大大提高無線傳輸?shù)目垢蓴_性。
UHD 視頻流無線傳輸系統(tǒng)發(fā)射端和接收具有相似的結(jié)構(gòu)如圖4 所示,利用異構(gòu)多核ARM+FPGA 架構(gòu),在PS 端搭建Linux 系統(tǒng),把HEVC 壓縮后的ES 流轉(zhuǎn)化為TS 流,通過UART 串口實(shí)現(xiàn)與電腦的通信,打印信息和進(jìn)行功能選擇,通過SPI 接口實(shí)現(xiàn)對(duì)AD9361 的初始化配置。在PL 端進(jìn)行視頻輸入/輸出、HEVC 編解碼和OFDM 調(diào)制/解調(diào),通過FPGA 實(shí)現(xiàn)硬件加速。利用FPGA 并行輸出的特點(diǎn),提高FPGA 和AD9361 間的數(shù)據(jù)傳輸速度。
圖4 發(fā)射/接收端結(jié)構(gòu)
發(fā)射端框圖如圖5 所示,首先視頻流經(jīng)過HDMI 接口流入FPGA,F(xiàn)PGA 利用Video_PHY 和HDMI_Rx 組成的解碼器把TMDS 數(shù)據(jù)流解碼成RGB 格式或者YUV 格式進(jìn)行緩存。由于HEVC 的編碼只支持YUV 格式,所以要將非YUV 格式的數(shù)據(jù)轉(zhuǎn)成YUV 的格式,并將轉(zhuǎn)換好格式的YUV 數(shù)據(jù)存儲(chǔ)到VDMA 中。本文設(shè)計(jì)中,VDMA 設(shè)為3 幀緩存,P 幀編解碼只需要對(duì)當(dāng)前幀和前一幀進(jìn)行對(duì)比,而B 幀編碼則需要后一幀圖像進(jìn)行預(yù)測,即B 幀編碼共需要3 幀圖像。把當(dāng)前幀圖像通過VCU 進(jìn)行HEVC 編碼生成ES 流,將ES 流通過總線傳輸?shù)絉AM 端,利用Gstreamer 實(shí)現(xiàn)將ES 流轉(zhuǎn)換為TS 流碼,在通過FPGA 端的OFDM 模組實(shí)現(xiàn)對(duì)TS 流的調(diào)制,最后將調(diào)制后的數(shù)據(jù)傳輸給AD9361,實(shí)現(xiàn)無線發(fā)送。
圖5 發(fā)射端設(shè)計(jì)框圖
接收端框圖如圖6 所示。與發(fā)射端相似,AD9361把接收到的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),經(jīng)過OFDM 模塊解調(diào)還原TS 數(shù)據(jù)流,再通過RAM 端利用Gstreamer 把TS 流還原成ES 流,并采用VCU 實(shí)現(xiàn)HEVC 解碼,將解碼出的圖像存儲(chǔ)到VDMA 中,通過Video_PHY 和HDMI_Tx 組成的編碼模塊,把YUV 格式的圖像數(shù)據(jù)變成差分信號(hào)輸出。
圖6 接收端設(shè)計(jì)框圖
系統(tǒng)利用VCU 實(shí)現(xiàn)對(duì)圖像的壓縮并生成相應(yīng)的TS流。視頻流先經(jīng)過YUV 的格式轉(zhuǎn)換,轉(zhuǎn)換為YUV 4∶2∶0 的格式,通過VDMA 把視頻流傳入VCU IP 核中,通過Linux 系統(tǒng)中的Gstreamer 將HEVC 編解碼后的ES 流轉(zhuǎn)換成TS 流。圖7 為TS 流生成流程。
圖7 TS 流生成流程
本文初始化VCU 為全P 幀編解碼。在Linux 系統(tǒng)下通過ARM 端初始化VCU 的配置,經(jīng)過YUV 格式變化的視頻信號(hào)經(jīng)VDMA 搬運(yùn)到VCU 硬核中進(jìn)行編解碼,得到視頻的ES 流,ES 流經(jīng)過分組器得到PES,PES 流按照MPEF?2 標(biāo)準(zhǔn)分割成TS 包,實(shí)現(xiàn)TS 流數(shù)據(jù)包的轉(zhuǎn)換。
在解碼端,利用ARM 搭建的Linux 中的Gstreamer實(shí)現(xiàn)TS 流到ES 流的轉(zhuǎn)換,轉(zhuǎn)換后的ES 流通過總線傳輸給VCU 硬核進(jìn)行HEVC 解碼,把得到的原始視頻存儲(chǔ)在VDMA 的幀緩存區(qū),最后通過PHY 和HDMI_TX 系統(tǒng)進(jìn)行HDMI 信號(hào)輸出,完成解碼。
為了選取最優(yōu)的無線傳輸帶寬,對(duì)4K@60 Hz 視頻流在不同傳輸帶寬下壓縮測試,根據(jù)測試結(jié)果在不同傳輸帶寬下與解碼后圖像的SSIM 值進(jìn)行對(duì)比,結(jié)果如圖8所示。由圖8 可以看出,傳輸帶寬和SSIM 成對(duì)數(shù)式增長,尤其是當(dāng)傳輸帶寬大于10 MHz 時(shí),SSIM 值增加速度明顯變緩,即傳輸帶寬大于10 MHz 時(shí),畫質(zhì)近似于無損傳輸。為了節(jié)約帶寬,系統(tǒng)把視頻壓縮后的傳輸帶寬設(shè)定為10 MHz,考慮到OFDM 信號(hào)的完整性,左右各設(shè)有1 MHz 保護(hù)間隔。
圖8 不同傳輸帶寬下圖像SSIM 值
表1 列出了本文設(shè)計(jì)的OFDM 通信系統(tǒng)的系統(tǒng)參數(shù),其中,OFDM 子載波調(diào)制方式采用BPSK,子載波數(shù)目為512。循環(huán)前綴采用的OFDM 符號(hào)長度,保證多徑干擾嚴(yán)重時(shí)仍可以防止符號(hào)間干擾。每個(gè)OFDM幀長度為15 個(gè)OFDM 符號(hào)長度,包含1個(gè)短訓(xùn)練序列,4 個(gè)長訓(xùn)練序列和10 個(gè)數(shù) 據(jù)OFDM 符號(hào)[16]。
表1 OFDM 系統(tǒng)參數(shù)
本文測試視頻分為兩種,一種是利用4K@60 Hz 的視頻來驗(yàn)證,使顯示器可直接觀察UHD 視頻流無線傳輸系統(tǒng),使UHD 視頻流無線傳輸系統(tǒng)生成相應(yīng)的視頻文件,通過和原始文件同一幀圖像的對(duì)比,得到SSIM值;另一種是利用幀率測試視頻,進(jìn)行延遲測試。PC機(jī)通過GPU 輸出兩路完全相同的4K@60 Hz 視頻流,一路直接連接顯示器,另一路則通過UHD 視頻流無線傳輸系統(tǒng)連接到顯示器上。OFDM 系統(tǒng)按照表1 所示參數(shù)進(jìn)行設(shè)定;HEVC 采用全P 幀編解碼模式,在實(shí)驗(yàn)室內(nèi)進(jìn)行測試。
測試結(jié)果如圖9 所示,圖9a)所展示的是4K@60 Hz視頻利用UHD 無線傳輸系統(tǒng)效果,左半屏顯示的是直接從顯卡輸出的視頻,右半屏顯示的是經(jīng)過UHD 無線傳輸系統(tǒng)所輸出的視頻。經(jīng)過對(duì)比,2 張同一畫面的SSIM 值約為0.98,具有較好的還原性。
圖9 測試結(jié)果
圖9b)則是延遲對(duì)比,同樣左半屏顯示的是直接從顯卡輸出的視頻,右半屏顯示的是經(jīng)過UHD 無線傳輸系統(tǒng)所輸出的視頻。從視頻幀數(shù)計(jì)數(shù)器來看,UHD 無線傳輸系統(tǒng)大約有35 幀的延遲,即約為500 ms 的延遲。而且在距離約為500 m 處可以得到圖像,滿足遠(yuǎn)距離UHD 無線傳輸?shù)囊蟆?/p>
本文研究了UHD 視頻無線傳輸方法,使用異構(gòu)多核ARM+FPGA 架構(gòu),采用VCU +HEVC 編解碼算法,實(shí)現(xiàn)視頻流的高壓縮、快編解碼的處理,有效解決了UHD視頻流幀率不足的問題。根據(jù)該方法設(shè)計(jì)實(shí)現(xiàn)了4K@60 Hz 視頻流的無線傳輸系統(tǒng),系統(tǒng)采用OFDM 技術(shù),硬件電路采用Zynq?UltraScale +?MPSoC 和AD9361 芯片搭建。實(shí)驗(yàn)結(jié)果表明,經(jīng)過UHD 視頻無線傳輸系統(tǒng)輸出的視頻流與原視頻流的結(jié)構(gòu)相似值(SSIM)約為0.98,畫面延遲約為500 ms,在傳輸過程中沒有明顯的畫面丟幀和缺失狀況,實(shí)現(xiàn)了4K@60 Hz 視頻流的高質(zhì)量、抗干擾性強(qiáng)、低延遲的無線傳輸。