本系列主要介紹視頻編解碼芯片的設計,以HEVC視頻編碼標準為基礎,簡要介紹編解碼芯片的整體硬件架構設計以及各核心模塊的算法優化與硬件流水線設計。
本文首先將介紹整像素運動估計的基礎知識,分析HEVC標準中IME的搜索策略。接著,分析IME算法優化在搜索模式和參考窗設計等方面的突破口,提出了微代碼可配置的IME算法和對應的IME硬件設計。最后根據不同的應用場景提出了三種配置模式,并展示了優化后的IME架構測試結果。
概述
視頻序列圖像在時間上存在很強的相關性,即相鄰幀的圖像差別不大。幀間預測即消除視頻序列在時間上的冗余,從而達到壓縮視頻的作用。運動補償(Motion Compensation, MC)是一種描述相鄰幀差別的方法。通過運動補償,編碼器可以通過編碼兩幀之間的差別,消除幀間的冗余信息。運動估計ME(Motion Estimation)是指搜索出每個塊在鄰近幀中最匹配塊位置的方法。兩者之間空間位置的相對偏移量被稱為運動矢量(Motion Vector, MV)。
圖1
在HEVC運動補償的過程中,運動估計是其中計算復雜度最高、且耗時最長的模塊。整像素運動估計IME即預測過程僅涉及整像素的運動估計,其計算得到的最佳整像素MV將送至后續的分像素運動估計階段做進一步亞像素MV搜索。
預測單元
在HEVC標準中,“當前像素塊”被稱之為預測單元(Prediction Unit, PU)。當最大編碼單元(Largest Coding Unit, LCU)的大小是64×64時,幀間PU的大小可以從64 × 64變化到4×4(本文中,“PU”指的都是“幀間PU”。)每一個PU都會被指定一個與之盡量相似的匹配塊,該匹配塊來自于已經編碼了的圖像幀,是編碼端和解碼端都能夠獲得的重建信息。下圖給出了HEVC中的各種PU。
圖2
運動估計
在HEVC標準中,“已經編碼了的圖像幀”被稱之為“參考幀”。由于時間上相鄰的參考幀更可能存在相似的圖像塊,因此,這些相鄰幀一般是參考幀的主要來源。在選定參考幀之后,編碼器需要通過整數運動估計的手段在一定大小的搜索窗內找到與預測當前PU最佳匹配的塊,然后把所有的最佳匹配塊組合成一幅圖像構成預測幀,那么預測幀將與當前幀相差最小。如下圖所示。
所謂“最佳匹配”,有兩方面的指標。
其一、該匹配塊與當前塊相對偏移MV的編碼代價較小。由于參考幀是編碼端和解碼端共有的信息,所以,編碼端只需要保留運動矢量就可以將PU所采用匹配塊的信息傳遞到解碼端。
其二,該匹配塊與當前塊差值的失真程度較小(和編碼代價較小)。這一指標通常可以使用包括均方差(MSE)、平均絕對差(MAE)、絕對值差之和(SAD)在內的函數進行估計。
搜索窗和快速搜索
塊匹配的搜索策略決定了運動估計收斂速度和匹配塊的準確度,一般可以把搜索策略分為兩類:全搜索和快速搜索。
全搜索也稱為窮盡搜索,遍歷搜索區域內的所有位置塊,因此精確度最高,但耗費的運算資源也最多。
為了保證搜索的效率,整數運動估計不會在整個參考幀內進行,而是限定于某個搜索范圍,這一范圍被稱之為“搜索窗”。在HEVC標準下,搜索窗的大小一般設置為[-64,64),換言之,對于每一個PU都存在16384(=128×128)種可能的運動矢量。快速搜索策略在保證運動估計一定精度的前提下,通過減少搜索點,從而減少運算復雜度。因此可以根據一定的收斂模型(搜索模板),通過一步步縮小搜索范圍逼近最佳匹配點,較為著名的快速搜索算法有菱形搜索,六邊形搜索,十字搜索等等。
HM推薦算法
在HEVC 模型(HM)中,整像素運動估計單元采用了快速預測算法TZSearch,算法流程見下圖3。
圖3
算法優化
本文提出的IME架構不是針對某個特定的算法。相反的,該IME架構包括若干個搜索步驟,每步執行不同的搜索策略,這樣可以組成各種搜索算法。在不同步驟中,這些參數可以被配置為不同的數值。具體來說,在每一步內,每個QLCU(Quarter LCU)內的所有PU采用同樣的搜索配置,包括起始點,搜索窗的形狀和降采樣率。
搜索起始點
每個QLCU可以獲取前一幀的最佳MV,并將其作為該QLCU下一步的搜索起始點。
參考窗形狀
最基礎的參考窗是六邊形。但是,通過改變參考窗的長度,寬度以及各個角的度數,參考窗可以轉變為各種形狀,如下圖4所示。
圖4
降采樣搜索
本文提出的IME設計將通過降采樣來搜索64×64,64×32和32×64大小的PU的最佳MV,如下圖5所示。
圖5
64×64大小的PU及其參考塊被1/4降采樣到32×32大小,然后被送入32×32大小的SAD引擎。降采樣后的32×32塊的最佳的MV結果以及相應的代價會被視作該64×64大小PU的最佳的MV和代價。
基于微代碼的整像素運動估計架構
通過微代碼(Micro-code)配置,每段微代碼的長度為44個比特。其中:16個比特用來表示搜索的起始點,25個比特用來表示參考窗的形狀,3個比特用來表示搜索的采樣率。微代碼的格式如下圖6所示:
圖6
VLSI實現
VLSI實現概述
在Fan[1]的工作中,Fan[1]根據特定算法設計了整像素運動估計引擎,最終的B-D rate損失非常小,但是硬件開銷比較大,且搜索算法缺少靈活性。因此,本次設計優化了硬件設計架構,如下圖7所示。
圖7
優化后的硬件架構仍將使用Fan[1]中提出的4×4塊壓縮和解壓縮邏輯,水平-垂直參考像素存儲器和低功耗32×32大小SAD引擎。本節提出的硬件設計的主要工作如下:
(1) 尋址控制邏輯支持微代碼可編程。
(2) 簡化了參考像素更新邏輯,減少了該模塊的硬件開銷。
(3) 在轉置邏輯中復用了參考像素陣列。
(4) 引入了像素截位,減少了H-VSRAM,寄存器陣列和SAD引擎的硬件開銷。
水平垂直參考像素存儲器
為了支持二維數據復用,本次設計采用了水平-垂直參考像素存儲器(Horizontal-vertical Reference SRAM,H-V SRAMs)。該存儲器由兩個SRAM組成,即水平參考像素存儲器(Horizontal Reference SRAM,H SRAM)和垂直參考像素存儲器(VerticalReference SRAM,V SRAM),如圖8所示。前者以行的方式存儲參考像素,每一行像素存儲在H SRAM的同一地址上;后者以列的方式存儲參考像素,每一列像素存儲在V SRAM的同一地址上。
圖8
轉置寄存器
在本文提出的硬件設計中,轉置模塊將復用參考像素陣列。這不僅可以減少硬件代價,還可以提供“雙工”數據傳輸。為了簡化轉置過程的說明,下圖9展示了一個4×4塊的轉置過程。
圖9
像素截位
在Fan[1]的工作中,一個基于4×4塊的壓縮和解壓縮方案被提了出來,用來減少片上參考像素存儲器的面積。由于采用了這項技術,每個像素相當于被截位到7個比特,且引入的B-D rate損失非常小。
在本次設計中,測試了不同截位比特數對于最終編碼B-D rate和硬件代價的影響,如下表1所示。
表1
截位比特數 |
硬件門數 |
B-D Rate損失 |
0 |
210.1 Kgate |
/ |
1 |
166.4 Kgate |
-0.10% |
2 |
145.4 Kgate |
0.13% |
3 |
124.3 Kgate |
-0.01% |
4 |
102.7 Kgate |
0.51% |
根據上表1,在截位比特數為3,即每個像素用5個比特表示的時候,SAD樹的硬件代價可以減少40.8%,但是B-D rate的損失僅為-0.01%。因此,本設計采用了3比特截位,這可以在減小硬件代價的同時保證圖像的編碼質量。
性能評估
為了對基于微代碼可編程的IME架構進行測試,我們提出了3種搜索方案,3種方案均可以通過微代碼配置出來,如下圖10所示。
三種方案中,A方案的側重點在于編碼速度,C方案的側重點是編碼質量,B方案是兩者的折衷。值得注意的是,在采用1/4降采樣的時候,如果起始點為(0, 0),那么搜索過程只能覆蓋搜索范圍內的奇數行、奇數列的候選點,因此,在C方案中,將(0, 0),(0, 1),(1, 0)和(1, 1)分別作為起始點搜索,這樣可以覆蓋搜索范圍內的所有點。此外,C*方案采取了和C方案一致的搜索策略,不同點在于C*方案并沒有使用像素截位。
圖10
B-D rate的測試基于HM 16.9,測試的基準是encoder_lowdelay_P_main.cfg下的默認配置,且只有一幀參考幀。
將綜合結果與業界的相關工作進行了比較,如下表所示。值得注意的是,SAD樹的門數是指換算到16×16大小時的門數。
在編碼效果方面,我們提出的IME架構在B方案和C方案時的B-D rate增益均為負值,遠優于Ye[2]、Medhat[3]和Jou[4]的工作。雖然B-Drate效果不如Fan[1]的工作,但是在搜索起始點、參考窗形狀和降采樣率等參數上靈活性都比Fan[1]的工作要更好。
在編碼速度方面,本節提出的方案A在處理單個LCU時僅需要2146個時鐘周期,與Jou的工作[4]接近。但是,A方案的B-D rate增量僅為0.55%,遠優于Jou[4]工作的4.04%。
在硬件面積方面,在同樣換算到16×16大小的SAD樹以后,本節提出的IME架構與Jou[4]工作中的SAD樹的門數是差不多的。而在SRAM大小上,本節提出的IME架構是這幾個工作里面最小的。
在靈活性上,我們提出的IME架構可以通過微代碼配置成各種復雜度的運動估計算法,是遠優于其他幾個工作的。
圖11
參考文獻:
[1] Y. Fan, L. Huang, B. Hao and X. Zeng. AHardware-Oriented IME Algorithm for HEVC and its Hardware Implementation [J].IEEE Transactions on Circuits and Systems for Video Technology, 2018, 28(8):2048-2057.
[2] X. Ye, D. Ding and L. Yu. Ahardware-oriented IME algorithm and its implementation for HEVC [A]. IEEEVisual Communications and Image Processing Conference[C].IEEE, 2014: 7-10.
[3] A. Medhat, A. Shalaby, M. S. Sayed, M.Elsabrouty and F. Mehdipour. Fast center search algorithm with hardwareimplementation for motion estimation in HEVC encoder [A]. IEEE InternationalConference on Electronics (ICECS) [C]. IEEE, 2014: 155-158.
[4] S. Jou, S. Chang and T. Chang. FastMotion Estimation Algorithm and Design for Real Time QFHD High Efficiency VideoCoding [J]. IEEE Transactions on Circuits and Systems for Video Technology,2015, 25(9): 1533-1544.