視頻技術(shù)之超高清(UHD)H.264視頻編解碼IP設(shè)計(jì)
Atria Logic公司開發(fā)的H.264編解碼IP(包括AL-H264E-4KI422-HW編碼器和AL-H264D-4KI422-HW解碼器)移植到Xilinx Zynq Z-7045 SoC上,能夠?qū)崿F(xiàn)UHD 4K@60fps視頻流的操作,如下圖所示:
ArTIa Logic公司開發(fā)的H.264編解碼IP設(shè)計(jì)模塊圖
ArTIa Logic設(shè)計(jì)的AL-H264E-4KI422-HW 編碼IP核是基于硬件的,特性豐富,低延遲,高質(zhì)量,面向H.264(AVC) UHD Hi422幀內(nèi)編碼。AL-H264E-4KI422-HW編碼器與AL-H264D-4KI422-HW低延遲解碼器配對(duì)使用。
該IP核包含的特性如下:
全面的模塊化設(shè)計(jì),支持用戶自定義和擴(kuò)展
支持幀內(nèi)H.264和Hi422 5.1編碼和解碼
集成HDMI2.0接收和發(fā)送子系統(tǒng)
支持8/10位編解碼
支持RGB,YUV 4:2:2/4:4:4
低延遲 ~0.3秒
支持可變比特率(VBR)和恒定比特率(CBR)方式
視頻質(zhì)量0.99% SSIM,或者50dB PSNR或者更高
視頻處理子系統(tǒng)用于預(yù)/后處理,包括顏色空間轉(zhuǎn)換,視頻縮放和濃度二次抽樣
支持Gbps以太網(wǎng)數(shù)據(jù)流輸出
我們需要設(shè)計(jì)一個(gè)方案來(lái)評(píng)估我們的UHD編碼和解碼IP核以滿足4K@60fps性能需要,那么我們需要一個(gè)靈活的,功能強(qiáng)大的平臺(tái)。最終我們選用Xilinx ZC706評(píng)估套件,其是基于Zynq Z-7045 SoC,原因如下:
有一個(gè)現(xiàn)成的FMC擴(kuò)展板卡,提供4K HDMI視頻接口:TB-FMC-HDMI 4K 2.0版本子卡
Zynq Z-7045 SoC豐富的可編程邏輯資源能夠適應(yīng)編碼器和解碼器IP邏輯,滿足嚴(yán)格的時(shí)序要求以達(dá)到性能要求
Zynq SoC的處理器系統(tǒng)集成了雙核ARM Cortex-A9 MPCore處理器,能夠讓我們有能力修改應(yīng)用驅(qū)動(dòng)軟件和自定義設(shè)計(jì),像是應(yīng)用設(shè)計(jì)的GUI接口
H.264編碼器支持H.264 Hi422格式配置,5.1標(biāo)準(zhǔn)(3840x2160p30)幀內(nèi)唯一編碼。支持10位視頻流這表示從視頻條帶來(lái)看不會(huì)出現(xiàn)灰度和顏色退化現(xiàn)象。支持YUV4:2:2視頻流意味著能夠?qū)崿F(xiàn)更好的顏色劃分——尤其對(duì)于紅色很明顯——這使得圖像更加清晰。對(duì)于醫(yī)療成像場(chǎng)合視頻質(zhì)量非常重要。
Atria Logic公司UHD H.264編碼器IP模塊圖
幀內(nèi)編碼讓H.264編碼器實(shí)現(xiàn)幀頻延遲,宏模塊流水線架構(gòu)設(shè)計(jì)則進(jìn)一步降低延遲:大約0.3毫秒。流水線設(shè)計(jì)支持每個(gè)時(shí)鐘處理八個(gè)像素點(diǎn),實(shí)現(xiàn)實(shí)時(shí)的4K@60fps視頻編碼。
Atria Logic公司開發(fā)的這款H.264編碼器僅使用了Zynq Z-7045 SoC 78%的可編程邏輯和DSP資源,以及55%的可用RAM,為其他必需電路預(yù)留了足夠的空間。
H.264解碼器支持H.264 Hi422格式配置,5.1標(biāo)準(zhǔn)(3840x2160p30)幀內(nèi)唯一編碼。同編碼器一樣支持10位視頻流編碼,即從視頻條帶來(lái)看不會(huì)出現(xiàn)灰度或者顏色退化現(xiàn)象。解碼器也支持YUV 4:2:2視頻格式,支持幀內(nèi)解碼,采用流水線架構(gòu)實(shí)現(xiàn)解碼器的幀率延遲。
Atria Logic公司 UHD H.264解碼器IP模塊圖
對(duì)于任何閉環(huán)的人/機(jī)應(yīng)用低延遲都非常重要。當(dāng)AL-H264E-4KI422-HW編碼器和AL-H264D-4KI422-HW低延遲解碼器通過IP網(wǎng)絡(luò)連接起來(lái)時(shí),玻璃延遲時(shí)間大約是0.6毫秒(不包括傳輸時(shí)間)。這大約是兩個(gè)幀的延遲時(shí)間。
Atria Logic H.264解碼器的實(shí)現(xiàn)僅占用了Zynq Z-7045 SoC 68%的可編程邏輯資源,35%的DSP資源,以及45%的RAM,為其它必需電路留出了足夠的空間。
HDMI子系統(tǒng)包括兩個(gè)主要模塊:Xilinx LogicCore HDMI TX和RX子系統(tǒng),如下圖所示:
HDMI收發(fā)器(GTX)模塊發(fā)送和接收串行HDMI TX和RX傳輸?shù)臄?shù)據(jù),并且在串行數(shù)據(jù)流和片上并行數(shù)據(jù)流之前轉(zhuǎn)換。收發(fā)器模塊實(shí)現(xiàn)并行數(shù)據(jù)與串行數(shù)據(jù)之間的相互轉(zhuǎn)換采用的是Zynq SoC高速GT收發(fā)器作為HDMI PHY物理層接口。
TX子系統(tǒng)包括發(fā)送模塊、AXI Video轉(zhuǎn)換、視頻時(shí)序控制和可選的HDCP模塊。Axi Video數(shù)據(jù)流通道每個(gè)時(shí)鐘傳輸兩到四個(gè)像素點(diǎn)到HDMI TX子系統(tǒng),并且支持8,10,12位數(shù)據(jù)編碼。這個(gè)數(shù)據(jù)流符合AXI設(shè)計(jì)參考手冊(cè)(UG761)中定義的視頻傳輸協(xié)議,視頻轉(zhuǎn)換模塊將輸入的AXI-Stream轉(zhuǎn)換為本地視頻格式,視頻時(shí)序控制器用于生成本地視頻時(shí)序。音頻AXI Stream將多通道未壓縮的音頻數(shù)據(jù)傳輸給HDMI TX子系統(tǒng)。Zynq Z-7045 SoC的ARM Cortex-A9處理器通過CPU接口控制HDMI TX子系統(tǒng)的發(fā)送模塊。
HDMI RX子系統(tǒng)包括三個(gè)AXI協(xié)議接口。視頻轉(zhuǎn)換橋?qū)⒉东@的本地視頻轉(zhuǎn)換為AXI Stream數(shù)據(jù)流,將這些視頻數(shù)據(jù)通過AXI Video接口輸出,符合AXI設(shè)計(jì)參考手冊(cè)(UG761)中定義的協(xié)議規(guī)范。視頻時(shí)序控制器則測(cè)量視頻時(shí)序,接收的音頻通過AXI Stream音頻接口發(fā)送出去。CPU接口則實(shí)現(xiàn)與外設(shè)的控制和狀態(tài)數(shù)據(jù)通信。
HDCP模塊是可選的,不含在標(biāo)準(zhǔn)的IP核配置中。