黃賀焜,吳林煌,蔡江震
(福州大學 先進制造學院,福建 泉州 362200)
為解決國際音視頻編解碼標準壟斷問題,我國建立了自己的標準制定團隊——數字音頻視頻編解碼技術標準工作組,于2003 年提出了第一代數字音視頻編解碼技術標準(Audio Video coding Standard,AVS),實現了與H264 標準相當的編碼效率。隨著對高清、超高清、3D 視頻需求的增加,第二代視頻編碼標準AVS2 被提出。AVS2 標準相比AVS 標準平均減少了45%的碼率,在編碼速度與效率方面與高效率視頻編碼(High Efficiency Video Coding,HEVC)、H.265 標準相當[1]。AVS2 采用了與HEVC[2]類似的編碼結構,并加入了許多新的編碼工具,如內方向預測、短距離幀內預測、非方形四叉數變換、邏輯變換以及雙標準系數編碼等[3]。為了保證編碼壓縮率,AVS2 標準采用了9 種分式和33種方向預測[4],以及多種類型的變換編碼,實現了高效視頻編碼,但也有著較大的編碼復雜度與計算量。目前,對AVS 編碼器的研究在普通平臺上已經取得了較好的成果,滿足了大部分產業化應用需求。但隨著移動多媒體等設備的普及,現如今的AVS 壓縮效率和壓縮質量已經無法滿足低延時、輕量化、淺壓縮場景的需求,故需要對AVS 模塊如幀內預測[5]、量化與反量化[6]、模式決策[7-8]、熵編碼[9]或碼率控制[10]中的算法進行改進,通過硬件實現加速,得到更優化的視頻編解碼性能。
AVS 編碼器在我國的廣闊前景驅使從業者深入研究AVS、AVS2 及AVS3 編碼器的優化與應用,以便其更廣地實現產業化。因此,為了實現AVS 編碼器的在淺壓縮場景下的應用,需要對其編碼過程進行優化。2021 年,AVS 視頻組織確認了淺壓縮需求以及測試方案,于2022 年4 月提出淺壓縮參考軟件平臺HIM。該平臺通過低復雜度的預測、量化、模式決策和熵編碼方案,實現主觀視覺無損的高性能壓縮。因此,最新的AVS 淺壓縮編碼器的算法實現與優化研究具有非常重要的理論價值。
針對上述問題,本文首先分析AVS 淺壓縮模式決策算法原理,其次介紹一種適配于硬件的算法實現方案以及系統整體方案設計流程,并對結果進行分析。本文方案在VCS 平臺上進行功能仿真驗證并上板進行部署,驗證了本方案的可行性。
AVS 淺壓縮可以處理YUV 和RGB 格式的圖像和視頻,并支持YUV4 ∶0 ∶0、YUV4 ∶2 ∶0、YUV4 ∶2 ∶2、YUV4 ∶4 ∶4 和RGB4 ∶4 ∶4,支持8 bits、10 bits、12 bits 和16 bits 的輸入比特深度,并根據不同圖像格式產生不同的基本處理單元。圖像格式有亮度通道(Y 分量)和色度通道(U、V 分量),在YUV4 ∶0 ∶0、YUV4 ∶2 ∶0、YUV4 ∶2 ∶2、YUV4 ∶4 ∶4 和RGB4 ∶4 ∶4格式下,亮度通道為固定的16×2 像素塊,色度通道在YUV4 ∶4 ∶4 和RGB4 ∶4 ∶4 格式下為16×2 像素塊,YUV4 ∶2 ∶2 格式下為8×2 像素塊,YUV4 ∶2 ∶0 格式下為8×1 像素塊。
編碼層架構如圖1 所示。AVS 淺壓縮編碼器頂層包含塊劃分、逐點預測、量化、模式決策、熵編碼及碼率控制等模塊,負責各個模塊之間的數據傳遞及模塊之間的工作順序安排。根據外部輸入圖像的不同格式,首先進行圖像格式轉換,其中非YUV的圖像需要進行顏色空間轉換,將其統一到YUV顏色空間中。此時編碼器所需的編碼信息如比特深度、圖像格式及塊數量等將通過外部APB接口輸入。通過碼率控制模塊得到量化參數QP,并將量化參數QP 送入預測模塊。預測模塊通過4 種預測方式得到的殘差值需要進行QP 調整,并將調整后的殘差送入后級的量化、反量化與重建模塊中。將量化后的殘差值送入模式決策模塊,模式決策模塊計算當前使用到的每一種編碼塊中的各個預測模式下的編碼比特數和失真代價,對求和的結果進行比較后得到最優的一種預測模式,將最佳預測模式下的殘差等信息傳輸至后級的熵編碼模塊進行比特流的傳輸。

圖1 編碼層架構
在AVS 淺壓縮中,模式決策的準則如式(1)所示,通過比特代價和絕對誤差和(Sum of Absolute Difference,SAD)值進行求和,得到最優的預測模式為率失真代價最小的模式。
式中:m表示模式(mode),Ψ表示所有模式的集合,λQP表示率失真優化中的拉格朗日因子,R(m)表示不同預測模式下編碼當前像素塊的比特代價,D(m)表示表示不同預測模式下重建像素塊與原始像素塊的SAD 值。λQP由碼率控制模塊生成的量化參數QP 導出,具體描述如下。
首先計算QP 對應的Qstep。再計算碼控滿度fullness 對應的系數α,計算公式為
最后計算λQP,計算公式為
R(m)為需要傳輸的語法信息所計算出的比特代價,其中需要傳遞的語法元素包括逐點預測的模式pred_mode、系數分組rpm、殘差編碼長度lc 以及邊界符號trailing。
2.1.1 逐點預測模式
逐點預測共有4 種預測模式,通過在模式決策中進行代價比較,得到4 種預測模式最佳的預測模式,進而輸入到后級的熵編碼模塊中進行編碼。pred_mode 的比特代價計算方式是:定義數組pred_mode_code 用于存儲不同模式下的初始值,通過判斷模式類型進行索引,取值為{3,3,0,0,2,4,4,5,5,5,6,6,0,0,2},{0,1,0,0,3,11,10,19,18,17,33,32,0,0,1}。
2.1.2 殘差編碼長度和邊界符號
在當前最佳預測模式下,首先計算當前通道宏塊對應的最佳預測模式的殘差值。其次將其分組為大小為4 的子集,計算每組內殘差最大值占用的比特數,作為當前4×1 塊內殘差碼長度。最后,檢查每組殘差值是否位于當前殘差碼長度能表示的范圍邊界上,根據具體的取值情況,對邊界符號修正符進行相應的設定。殘差編碼長度lc的比特代價計算方式為
式中:ccl為殘差編碼長度lc的代價,d是當前圖像的比特深度。
邊界符號trailing 的比特代價為每個cl 塊的trailing 之和。
2.1.3 系數分組
當編碼塊處于亮度通道,可采用5 種方式進行劃分,如圖2 所示。

圖2 16×2 編碼塊系數分組方式
根據計算出的殘差編碼長度lc進行系數分組。每4 個像素為一個cl,標記為cl00、cl01、cl02 和cl03。cl 塊兩兩相比較得出系數分組rpm 的具體方法是:當4 個塊的殘差編碼長度都相等,rpm 為PRM0;當cl00=cl01 且cl02=cl03,rpm 為PRM1;當cl00=cl01 且cl02 ≠cl03,rpm 為PRM2;當cl00 ≠cl01 且cl02=cl03,rpm 為PRM3; 當cl00 ≠cl01 且cl02 ≠cl03,rpm 為PRM4。
當編碼塊為色度通道時,需要根據不同的圖像格式進行不同的編碼塊大小判斷。若編碼塊大小為8×2,可采用2 種方式進行劃分,如圖3 所示。

圖3 8×2 編碼塊系數分組方式
若編碼塊大小為8×1,可采用2 種方式進行劃分,如圖4 所示。

圖4 8×1 編碼塊系數分組方式
rpm 的比特代價計算公式為
式中:crpm為系數分組rpm 的比特代價,mrpm表示rpm 分組模式,其中e[j]為兩種索引模式的索引,j=0,1。rpm 在亮度模式下有兩種模式,需要對兩種模式下的rpm 分別計算代價,相加得到最終的crpm。
SAD 的計算公式為
式中:porg為每個編碼宏塊的各點原始像素,prec為該點對應的重構像素。重構像素由模式決策模塊上一級的逐點預測模塊得到。
本文根據算法設計一套面向低延時的AVS 淺壓縮編碼的模式決策硬件方案。其中編碼器硬件的頂層架構如圖5 所示。為加快編碼器運行頻率,采用流水架構設計,各模塊的啟動信號由流水控制模塊控制,每隔12 個時鐘進行一級模塊啟動,收集每個模塊的結束信號以開啟下一級模塊,將每個模塊得到的結果進行數據緩存。得到上一級逐點預測模塊頂層模塊輸出的預測殘差值、重建值、預測模式等信息和模式決策啟動信號后,模式決策模塊按圖像格式所對應的通道進行處理,若圖像為YUV444或RGB444,則選擇的亮色度通道在16×2 編碼塊模式決策中進行,否則亮度通道在16×2 編碼塊模式決策中進行,色度通道則進一步判斷,從而準確送入8×2 或8×1 編碼塊模式決策中分別進行,最終進行比較后得到最佳預測模式下的殘差值、rpm、lc 等信息進行數據緩存。

圖5 編碼器硬件頂層架構
模式決策內部硬件設計如圖6 所示。根據模塊輸入的重建值可得到SAD 代價。根據殘差值和預測模式,可得到lc、trailing,并根據lc 得到系數分組rpm,進行編碼比特代價計算,最終進行加權求和的總代價值進行比較,得到最佳的預測模式。將該預測模式對應的預測模式信息、殘差值、lc、trailing 及rpm 等信息輸出。

圖6 模式決策硬件頂層
本文考慮了工作頻率、資源使用等多方面要素,對模式決策模塊設計進一步深入分析,以優化路徑,提高編碼器性能。
使用VCS 仿真EDA 工具完成仿真波形的數據結果后,利用Verdi 工具查看波形結果,模式決策代價計算波形如圖7 所示。本設計仿真采用兩幅不同圖像格式(YUV444、YUV420),在8 bits 深度下進行測試,在時鐘信號的激勵下,模塊接收到pred_done 信號后,模式決策模塊開始工作,在3 個時鐘后得到lc、trailing 信息,緊接著得到系數分組rpm信息;在11 個時鐘后得到總加權求和后的代價,并輸出該時鐘下的代價有效信號total_cost_valid。

圖7 模式決策模塊代價計算端口時序圖
得到代價有效信號后,通過比較得到最佳預測模式和該最佳預測模式下所對應的值,并將best_mode_done 信號置1。該過程的時序如圖8 所示??傮w模塊總計花費12 個時鐘。

圖8 模式決策模塊選擇端口時序圖
完成各個子模塊的仿真驗證工作確保各模塊輸出的時序正確后,將各模塊信號端口連接并使用腳本對所設計的硬件整體進行仿真測試。圖9 為測試腳本測試不同圖像序列的輸出結果。3 幀圖像的測試結果與算法模型得到的數據完全吻合時,檢查結果輸出“PASSED”。

圖9 各序列模式決策模塊測試圖
在Vivado 2022.2 軟件上編譯實現后,得到系統的資源使用評估報告,如圖10 所示。其中,Y、U、V 各個分量所消耗的硬件資源與Y 分量下的預測模式3 類似,編碼器核心使用了芯片中的大部分邏輯資源。

圖10 模式決策頂層硬件資源
淺壓縮編碼器需要支持至少1 920×1 080、60 幀率,因此預設200 MHz 時鐘頻率,在40 nm工藝下用DC 綜合工具進行編譯后,生成設計模塊綜合后的時序報告,如圖11 所示。最終slack 為1.43,表明時序收斂,主頻可滿足淺壓縮編碼器整體的100 MHz 編碼時鐘需求。且同樣工藝節點下,ASIC 芯片所能實現的最高主頻通常遠高于在現場可編程邏輯門陣列(Field Programmable Gate Array,FPGA)上實現的主頻。

圖11 時序分析
將模式決策模塊集成在編碼器內部,使用高清攝像頭拍攝筆記本電腦上顯示的圖像,由解碼板上的解碼器進行硬解碼,編解碼效果如圖12 所示。

圖12 編解碼效果圖
本文基于AVS 淺壓縮標準,提出針對模式決策算法的硬件實現方案;介紹了AVS 淺壓縮整體設計,分析了模式決策模塊所采用的算法并設計了其硬件實現方案;最后對實現的硬件進行功能仿真驗證、資源和時序評估,通過仿真數據分析驗證了所設計的硬件模塊經過運算后輸出的數據與算法模型輸出的數據完全吻合;最后進行編碼器的集成,并進行上板測試。結果顯示端到端延時為60 ms,主頻為150 MHz,大于需求的100 MHz,可滿足1 080p@60 的視頻淺壓縮需求,并與編碼器低延時、低資源的標準相適配,達到了設計要求。