?

UHD 視頻流無線傳輸方法研究

2021-06-20 02:57張志剛唐立軍
現代電子技術 2021年12期
關鍵詞:編解碼視頻流殘差

張 寬,張 銘,張志剛,劉 娟,唐立軍

(1.長沙理工大學 物理與電子科學學院,湖南 長沙 410114;2.近地空間電磁環境監測與建模湖南省普通高校重點實驗室,湖南 長沙 410114)

0 引言

超高清視頻無線傳輸現在主要有三種方案:第一種是利用公共通信系統進行信號傳輸[1?2];第二種是利用WiFi 進行短距離、低延遲的視頻傳輸[3];第三種是利用微波無線電技術[4?5]。在抗震救災或者戰場偵察等特殊場所,需要視頻遠距離無線傳輸,但又沒有公共通信系統可以利用。所以微波無線電技術就變成了視頻遠距離無線傳輸唯一可用的方案,但微波無線電技術存在著傳輸帶寬過窄的問題,導致傳輸的視頻流分辨率低或者幀數低的問題。針對存在的這一問題提出了兩種方案:第一種是增加微波傳輸帶寬,第二種是通過對視頻編解碼來減少視頻的傳輸帶寬。目前,4K 視頻傳輸帶寬至少需要12 GB,增加微波傳輸帶寬來實現4K 的傳輸顯然是無法完成的,現階段的方法是通過對視頻流進行編解碼壓縮來降低傳輸帶寬,實現4K@30 Hz 視頻的無線傳輸。這種做法雖然實現了4K 視頻的傳輸[5],但幀率只有30 f/s。本文通過異構多核FPGA 和AD9361 搭建了UHD 無線傳輸系統,利用HEVC 和OFDM 技術實現了4K@60 Hz 視頻的遠距離無線傳輸,具有視頻分辨率高、幀率高、集成化度高的特點。

1 UHD 視頻流處理方案

由于流暢無損傳輸4K@60 Hz 視頻至少需要12 GB帶寬,而OFDM 射頻的傳輸帶寬僅10 MB,所以4K@60 Hz 的視頻流傳輸的關鍵是要對視頻流進行編解碼壓縮來降低傳輸帶寬,把原本需要12 GB 帶寬傳輸的UHD 視頻壓縮至僅需要10 MB 帶寬傳輸。HEVC 編解碼技術對視頻流壓縮的壓縮比[6?10]最大可達1∶500,因此,本文選取HEVC 編解碼方案對視頻流進行壓縮。

目前視頻流的HEVC 編解碼主要有以下三種方法,一種是利用PC 機實現4K@60 Hz 視頻流的HEVC 編解碼,但由于受到體積過大的限制,難以實現集成和小型化;一種是ARM 芯片進行HEVC 編解碼,但由于ARM運算速度慢會導致編解碼產生巨大的延遲;還有一種是利用專業的HEVC 編解碼芯片,但開發周期非常長[8]。鑒于此,本文提出異構多核的視頻流的編解碼方法,采用ARM+FPGA 架構,利用FPGA 硬件加速的優勢搭建IP核,利用ARM 多任務處理的性能實現對FPGA 模塊進行控制,結構靈活,開發周期短,為實現高效靈活的4K@60 Hz 視頻流傳輸提供一定的技術支撐。

1.1 HEVC 編解碼方案

本文利用異構多核結構的編解碼器VCU 來實現。VCU 編解碼器最大可支持4K@60 Hz 的視頻流數據,其編碼架構如圖1 所示,相應環節的方法說明如下:

圖1 視頻流編碼架構

1)幀內編碼方法。當圖片緩存完畢后,首先對圖片進行塊狀區域分割,并實現對其數據進行幀內估算,完成幀內編碼。隨后進行幀內預測,利用分塊后的原圖像幀和幀內預測相減,得到幀內殘差信號。殘差信號經過線性變化,可得到相應的變化系數,再把變化系數進行縮放和量化得到殘差信號系數,經過反處理還原殘差信號。把殘差信號和幀內預測信號進行相加得到分塊預測圖像幀。利用環路濾波和自適應補償除去“分塊效應”,得到未經分塊的圖像幀。最終把幀內編碼信號和殘差信號系數一起進行熵編碼,隨后進行輸出。

2)幀間編碼方法。把分塊圖像幀數據輸送到運動估計模塊,通過利用幀內編碼所預測得到的上一幀或下一幀圖像數據進行幀間編碼。通過運動補償實現對幀間編碼數據的補償。同幀內編碼一樣,把分塊原圖像幀和去幀間預測結果進行做差,得到殘差信號。利用殘差信號和幀間預測信號相加得到分塊預測圖像幀。把得到的分塊預測圖像幀利用環路濾波和自適應補償去除“分塊效應”進行濾波,可得到分塊的圖像幀。最后將幀間編碼信號和殘差信號系數一起進行熵編碼,將得到的結果輸出。

解碼器結構相對簡單,視頻流解碼架構如圖2 所示。解碼器只需把接收到的比特流信號進行熵解碼得到幀內/幀間編碼信號和殘差信號系數。首先,把幀內編碼信號和殘差信號相加,經過去塊濾波得到第一幀圖像。然后,把幀間編碼信號和殘差信號相加,再與前一幀圖像進行運動補償得到當前幀圖像數據,最后經過去塊濾波得到當前幀圖像。

圖2 視頻流解碼架構

1.2 視頻流格式轉換方案

HEVC 編解碼方案的輸入端是受到限制的,輸入信號必須為YUV 格式的視頻流,但視頻流大部分的格式為RGB 格式,所以需要對視頻流進行格式轉換。因此,通過設計IP 核,將RGB 格式視頻流轉換為YUV 格式的視頻流,識別視頻流格式,直接將YUV 格式的視頻流傳輸給VCU 進行HEVC 編解碼。下面介紹視頻流格式轉換原理與方案。

在進行HEVC 編解碼之前先要對視頻流進行格式轉換。視頻輸入端輸入的為HDMI 差分信號,無論是ARM 還是FPGA 都無法直接對視頻信號進行處理。因而首先,要把差分信號轉換為并行信號通過VDMA 存入到內存中,再將非YUV 格式的視頻流進行格式轉換,使其滿足VCU 的要求。

在HMDI 接收端設計視頻格式轉換器(IP 核),實現對視頻信號判斷和轉換,把RGB 格式和YUV 格式的信號轉換為YUV 4∶2∶2 的格式,還原原畫質,大大壓縮數據量,最大可壓縮到原數據量的。為了減少運算量,降低編解碼延遲,把RGB 數據轉換為YVU 4∶4∶4 格式,再轉換為YUV 4∶2∶2 和YUV 4∶2∶0 格式。設Y(x,y),U(x,y),V(x,y)分別為x行y列像素點的Y,U,V的值,RGB 格式轉換為YVU 4∶4∶4 格式公式如下:

設P(x,y)為一個像素所含有的顏色信息,S為一幀圖像包含的YUV 值。當采取YUV 4∶2∶2 時每行間隔去U和V的值,剔除部分信息。YUV 4∶4∶4 格式轉換為YUV 4∶2∶2 格式如下:

YUV 4∶4∶4 格式轉換為YUV 4∶2∶0 格式如下:

2 抗干擾特性的無線傳輸方案

UHD 視頻無線傳輸多用于緊急狀況,對于復雜、惡劣環境傳輸的信號極易受到干擾。采用OFDM 多載波調制方法,在提高頻譜利用率的同時,增強了抗干擾能力[11?16]。圖3 為OFDM 系統原理框圖。

圖3 OFDM 系統原理框圖

在發射端,將輸入的高速比特流信號通過調制映射得到調制信號,通過串并轉換生成N條并行的低速數據流,并將每個N個并行數據組成一個OFDM 符號。在OFDM 符號中插入導頻信號后進行快速離散傅里葉反變換(IDFT),實現對每個OFDM 符號的N個數據進行調制,變成時域信號,如下:

式中:m為頻域上的離散點;n為時域上的離散點;N為載波數。通常在每一時域OFDM 符號前加入保護間隔如式(5)所示,最后經過并/串變化及D/A 轉換由發送天線發送出去。

在接收端,先完成定時同步和載波同步,在由A/D轉換和串并轉換得到信號,把得到的信號進行去前綴和DFT 變化得到如式(6)的信號,把FFT 解調后的信號和信道估值放入檢測器進行相干檢測,最后通過反映射及信道譯碼恢復出原始的比特流數據。

由式(4)和式(6)可以看出,利用IDFT 進行調制,把每條信道上的數據率降低,通過多個互不干擾的子信道并行傳輸,同時通過式(5)在時域上加入周期性前綴,可大大提高無線傳輸的抗干擾性。

3 UHD 視頻流無線傳輸系統設計與實現

UHD 視頻流無線傳輸系統發射端和接收具有相似的結構如圖4 所示,利用異構多核ARM+FPGA 架構,在PS 端搭建Linux 系統,把HEVC 壓縮后的ES 流轉化為TS 流,通過UART 串口實現與電腦的通信,打印信息和進行功能選擇,通過SPI 接口實現對AD9361 的初始化配置。在PL 端進行視頻輸入/輸出、HEVC 編解碼和OFDM 調制/解調,通過FPGA 實現硬件加速。利用FPGA 并行輸出的特點,提高FPGA 和AD9361 間的數據傳輸速度。

圖4 發射/接收端結構

3.1 發射端設計

發射端框圖如圖5 所示,首先視頻流經過HDMI 接口流入FPGA,FPGA 利用Video_PHY 和HDMI_Rx 組成的解碼器把TMDS 數據流解碼成RGB 格式或者YUV 格式進行緩存。由于HEVC 的編碼只支持YUV 格式,所以要將非YUV 格式的數據轉成YUV 的格式,并將轉換好格式的YUV 數據存儲到VDMA 中。本文設計中,VDMA 設為3 幀緩存,P 幀編解碼只需要對當前幀和前一幀進行對比,而B 幀編碼則需要后一幀圖像進行預測,即B 幀編碼共需要3 幀圖像。把當前幀圖像通過VCU 進行HEVC 編碼生成ES 流,將ES 流通過總線傳輸到RAM 端,利用Gstreamer 實現將ES 流轉換為TS 流碼,在通過FPGA 端的OFDM 模組實現對TS 流的調制,最后將調制后的數據傳輸給AD9361,實現無線發送。

圖5 發射端設計框圖

3.2 接收端設計

接收端框圖如圖6 所示。與發射端相似,AD9361把接收到的模擬信號轉換為數字信號,經過OFDM 模塊解調還原TS 數據流,再通過RAM 端利用Gstreamer 把TS 流還原成ES 流,并采用VCU 實現HEVC 解碼,將解碼出的圖像存儲到VDMA 中,通過Video_PHY 和HDMI_Tx 組成的編碼模塊,把YUV 格式的圖像數據變成差分信號輸出。

圖6 接收端設計框圖

3.3 TS 流生成設計

系統利用VCU 實現對圖像的壓縮并生成相應的TS流。視頻流先經過YUV 的格式轉換,轉換為YUV 4∶2∶0 的格式,通過VDMA 把視頻流傳入VCU IP 核中,通過Linux 系統中的Gstreamer 將HEVC 編解碼后的ES 流轉換成TS 流。圖7 為TS 流生成流程。

圖7 TS 流生成流程

本文初始化VCU 為全P 幀編解碼。在Linux 系統下通過ARM 端初始化VCU 的配置,經過YUV 格式變化的視頻信號經VDMA 搬運到VCU 硬核中進行編解碼,得到視頻的ES 流,ES 流經過分組器得到PES,PES 流按照MPEF?2 標準分割成TS 包,實現TS 流數據包的轉換。

在解碼端,利用ARM 搭建的Linux 中的Gstreamer實現TS 流到ES 流的轉換,轉換后的ES 流通過總線傳輸給VCU 硬核進行HEVC 解碼,把得到的原始視頻存儲在VDMA 的幀緩存區,最后通過PHY 和HDMI_TX 系統進行HDMI 信號輸出,完成解碼。

3.4 OFDM 參數設置

為了選取最優的無線傳輸帶寬,對4K@60 Hz 視頻流在不同傳輸帶寬下壓縮測試,根據測試結果在不同傳輸帶寬下與解碼后圖像的SSIM 值進行對比,結果如圖8所示。由圖8 可以看出,傳輸帶寬和SSIM 成對數式增長,尤其是當傳輸帶寬大于10 MHz 時,SSIM 值增加速度明顯變緩,即傳輸帶寬大于10 MHz 時,畫質近似于無損傳輸。為了節約帶寬,系統把視頻壓縮后的傳輸帶寬設定為10 MHz,考慮到OFDM 信號的完整性,左右各設有1 MHz 保護間隔。

圖8 不同傳輸帶寬下圖像SSIM 值

表1 列出了本文設計的OFDM 通信系統的系統參數,其中,OFDM 子載波調制方式采用BPSK,子載波數目為512。循環前綴采用的OFDM 符號長度,保證多徑干擾嚴重時仍可以防止符號間干擾。每個OFDM幀長度為15 個OFDM 符號長度,包含1個短訓練序列,4 個長訓練序列和10 個數 據OFDM 符號[16]。

表1 OFDM 系統參數

4 測試與分析

本文測試視頻分為兩種,一種是利用4K@60 Hz 的視頻來驗證,使顯示器可直接觀察UHD 視頻流無線傳輸系統,使UHD 視頻流無線傳輸系統生成相應的視頻文件,通過和原始文件同一幀圖像的對比,得到SSIM值;另一種是利用幀率測試視頻,進行延遲測試。PC機通過GPU 輸出兩路完全相同的4K@60 Hz 視頻流,一路直接連接顯示器,另一路則通過UHD 視頻流無線傳輸系統連接到顯示器上。OFDM 系統按照表1 所示參數進行設定;HEVC 采用全P 幀編解碼模式,在實驗室內進行測試。

測試結果如圖9 所示,圖9a)所展示的是4K@60 Hz視頻利用UHD 無線傳輸系統效果,左半屏顯示的是直接從顯卡輸出的視頻,右半屏顯示的是經過UHD 無線傳輸系統所輸出的視頻。經過對比,2 張同一畫面的SSIM 值約為0.98,具有較好的還原性。

圖9 測試結果

圖9b)則是延遲對比,同樣左半屏顯示的是直接從顯卡輸出的視頻,右半屏顯示的是經過UHD 無線傳輸系統所輸出的視頻。從視頻幀數計數器來看,UHD 無線傳輸系統大約有35 幀的延遲,即約為500 ms 的延遲。而且在距離約為500 m 處可以得到圖像,滿足遠距離UHD 無線傳輸的要求。

5 結語

本文研究了UHD 視頻無線傳輸方法,使用異構多核ARM+FPGA 架構,采用VCU +HEVC 編解碼算法,實現視頻流的高壓縮、快編解碼的處理,有效解決了UHD視頻流幀率不足的問題。根據該方法設計實現了4K@60 Hz 視頻流的無線傳輸系統,系統采用OFDM 技術,硬件電路采用Zynq?UltraScale +?MPSoC 和AD9361 芯片搭建。實驗結果表明,經過UHD 視頻無線傳輸系統輸出的視頻流與原視頻流的結構相似值(SSIM)約為0.98,畫面延遲約為500 ms,在傳輸過程中沒有明顯的畫面丟幀和缺失狀況,實現了4K@60 Hz 視頻流的高質量、抗干擾性強、低延遲的無線傳輸。

猜你喜歡
編解碼視頻流殘差
邊緣實時視頻流分析系統配置動態調整算法研究
基于雙向GRU與殘差擬合的車輛跟馳建模
基于視頻流傳輸中的擁塞控制研究
基于殘差學習的自適應無人機目標跟蹤算法
1553B總線控制器編解碼設計
大型民機試飛遙測視頻編解碼方法研究
基于遞歸殘差網絡的圖像超分辨率重建
基于H.265編解碼的高清視頻傳輸系統研究
鐵路貨場智能大門集裝箱全景圖像采集方法研究
美國視頻流市場首現飽和征兆
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合