![H.266/VVC概述、佈局啟發、台灣專利概況](assets/images/common/blank_article_pic.png)
More Detail
作者 呂嘉雄
一、前言
H.266/VVC在2020年08月29日通過第一版,並在2022年04月29日通過第二版,是目前由ITU VCEG和ISO/IEC MPEG最新制定的視訊標準。它採用多種技巧來達成比H.264/AVC和H.265/HEVC更高的壓縮比,以至少滿足人們對於4k和8k等級高畫質電視的需求。
本文首先會在第二章中介紹H.266的多種技巧,第三章則是分享由H.266的發展經驗中獲得關於專利佈局的啟發,第四章則是分析在台灣專利案中提及H.266的概況,最後則是本文的結論。
二、H.266的技術概述
圖1是H.266的基本流程方塊圖,本文將按流程的順序依序進行重點介紹,其中為了讓主題明顯,所以僅介紹有關亮度(luma)的部分,而忽略涉及色度(chroma)的內容。
(一) 切割 (partition) [1] [8] [9]
視訊中任一張影像會先切割為編碼樹單元(coding tree unit;CTU),之後每一個編碼樹單元以一次四分樹(quaternary tree)切割為四個編碼單位(coding unit;CU),每一CU則可再使用四分樹、二分樹(binary tree)或三分樹(ternary tree)進行後續切割,並針對切割後的結果,再次使用四分樹、二分樹或三分樹進行更細部的切割。然而如果在遞迴切割的過程中採用了二分樹或三分樹切割,則後續地切割過程僅能使用二分樹或三分樹切割,而不能再使用四分樹切割。
CTU可接受的尺寸有32x32、64x64、128x128像素,其中因為硬體解碼端的計算能力限制,以及管線間同時計算的考量,可以把最大尺寸限制為64x64像素。
另外一方面,二分樹切割是將待切割區域沿著水平軸或垂直軸的其中一軸進行平分,讓切割後的結果區域呈現1:1的面積關係。相對性地,三分樹切割則將待切割區域沿著水平軸或垂直軸的其中一軸切割為三部分,並為了讓出現在中央區域的物件保有較整體性描述而不進行額外細分,故中央區域和上下(左右)區域的總面積相等,而讓切割後的結果區域呈現1:2:1的面積關係。
(二) 畫框內預測 (intra prediction)[2] [8] [9]
H.266/VVC共支援95種框內預測模式,其中有65個模式是屬於用來描述45度~135度之間預測方向的方向角度(directional angular)模式、一個是表示DC模式、一個是planar模式,另外附加有14*2種的寬角度(wide-angle)模式,它們是針對非正方形而是長方形之CU而被提議。
在尋找合適的角度框內預測方向時,會依正在檢驗中的模式不同而對參考的樣本像素使用不同的濾波器。如果邊長樣本像素的數目大於32像素,且是屬於整數(integer)斜率模式時,則使用一平滑濾波器。相反地,則使用二種內插濾波器的其中一種,以把解析度提高到1/32像素。
除此之外,由於和邊界直接鄰接的樣本可能會因為雜訊、物件遮蔽、分類不精確,而導致框內預測的效果不佳,所以另有離開邊界二條線和三條線距離的另外二條線可供選擇。
(三) 畫框間預測 (inter prediction)[3] [4] [8] [9]
針對平移運動向量的預測過程中,運動向量的解析度達到1/16像素,同時為了減少使用過多的位元在傳送運動向量差值(MVD),MVD可依不同場合而使用4、1、1/2、1/4、1/16像素等不同解析度來表示,其中當解析度為1/2時,是使用六階的平滑濾波器,而不是常規的八階的內插濾波器,以便用前者較強的低通特性來衰减高頻雜訊成分。
另外一方面,為了更精確地表示相對於靜態背景或其它運動物件的一快速運動物件,可以利用角度和偏移(offset)二參數在一CU在製造出一傾斜直線,再利用這直線把這個CU分為二部分,每部分各自有參考至不同參考圖像(picture)的不同CU,由此合併(merge)出這個目前在處理中的運動向量。
除此之外,針對旋轉和縮放運動向量的預測,則可用四個參數或六個參數進行描述,其中四個參數是左上角和右上角的運動向量,而六個參數則是左上角、右上角、左下角的運動向量,而此時可接受的解析度有1、1/4、1/16像素。
(四) 轉換 (transform)[5] [8] [9]
被轉換區塊的最大尺寸可以在序列(sequence)層級中被設定為64或32個像素點,超過即會自動進行切割區塊,例如當設定為32點時,而待轉換的區塊是64x16時,則會自動被切割為二個32x16區塊。
VVC支援第二類型DCT(DCT-2)、第七類型DST(DST-7)、第八類型DST(DST-7)等三種類型轉換,且在轉換時水平方向和垂直方向可以使用不同的轉換類型,(水平,垂直)的組合則可有(DCT-2,DCT-2)、(DST-7,DST-7)、(DCT-8,DST-7)、(DST-7,DCT-8)、(DCT-8,DCT-8)等數種,其中DCT-2所能支援的轉換範圍為4~64點像素,而DST-7/DCT-7則僅支援4~32點像素。除此之外,為了避免浪費過多記憶空間來儲存不同尺寸的轉換係數,較小尺寸的轉換(如DCT-2)可以由較大尺寸的轉換中擷取出。並為了控制一次轉換中所使用的乘法運算個數,64點DCT-2中在前32個低頻係數外的其它係數均被視為0,32點DST-7/DCT-8則僅保留前16個低頻係數。
除了因超出最大尺寸所造成的切割以外,由於畫框內/畫框間預測和補償後的剩餘資料會產生不同的特性,例如非零值數值僅出現在特定的區域,例如是出現在一正方形區塊的上半部或上1/4面積,故只需要針對區塊中的特定子區域中的殘差資料來進行轉換,而不是整個區塊進行轉換。VVC標準則是定義殘差資料可能分佈在區塊中的左、右、上、下四個邊緣部分,並針對不同邊緣部分的殘差資料,分別使用(DCT-8,DST-7)、(DST-7,DST-7)、(DST-7,DCT-8)、(DST-7,DST-7)的轉換,被轉換區塊面積可僅佔原區塊的1/2或1/4面積,另因為DST-7、DCT-8所能支援的最大尺寸僅到32像素,所以若轉換區塊超出32像素,則一律使用(DCT-2,DCT-2),而不再依分佈位置不同所選用不同的轉換方式。
(五) 量化 (quantization)[6] [8] [9]
因為每一個轉換後結果數值都會產生一量化索引值,所以VVC中所使用的量化器仍為純量量化器而不是向量量化器,但在內部細節中,VVC並不是讓一組量化器去完成-4Δk、-3Δk、-2Δk、-1Δk、0、1Δk、2Δk、3Δk、4Δk步階映射至索引值-4、-3、-2、-1、0、1、2、3、4的轉換,而是使用二組量化器,其中第一量化器負責偶數倍數和零(-4Δk、-2Δk、0、2Δk、4Δk),第二量化器負責奇數倍數和零(-3Δk、-1Δk、0、1Δk、3Δk), 其中Δk是量化步階(quantization step)。並且可隨係數的位置去調整權重,所以VVC所使用的量化器是屬於均勻(uniform)量化器。
為了能在這二組量化器間進行切換,VVC使用一個有限狀態機來在四個狀態間進行切換,每組量化器皆各自對應有二個狀態。而有限狀態機則是依照現在的有限狀態機的狀態,配合現今獲得的量化索引的奇偶數(parity) 來切換至下一狀態,以確定是使用第一量化器或第二量化器來量化下一筆係數。
(六) 熵編碼(entropy coding)[6] [8] [9]
VVC所使用的熵編碼是CABAC,除了所使用的情境(context)模型較HEVC多以外,由於在實驗中發現待由CABAC壓縮的二進制值(binary)符號並不符合非相關(uncorrelated)的假設,而可發現有一個一階自相關(auto-correlation)係數 (ρ) 出現在0和1之間。為了能反映此情況,在VVC的CABAC中針對每一情境模型使用二個機率預估器,並把它們適應(adaptation)速率α0和α1 設定為不同,例如α0 設定為0,而α1 則設定為 ρ 的函式,並用這二個機率預估器的平均來決定子區間(subinterval)範圍。
(七) 環路濾波器(in loop filter)[7] [8] [9]
依序採用LMCS(Luma mapping with chroma scaling)、去區塊濾波器(deblocking filter)、取樣點適應偏移(Sample Adaptive Offset;SAO)、適應性環路濾波器(Adaptive Loop Filter;ALE)等技術。其中,LMCS雖然是全新概念而不是原有概念延伸,但因已涉及亮度(luma)和色度(chroma)間的互動,而超出本文的範圍。另外,H.266所採用的SAO和H.255所採用的SAO相同,而無進一步改進,故在本子章節中僅介紹去區塊濾波器和適應性環路濾波器。
在去區塊濾波器的運算中,VVC依然會針對二個左右相鄰或是二個上下相鄰的區塊,判斷它們最外側的上下二條線或左右二條線的自然邊緣(natural edge)和平坦性(flatness),以決定是要選擇正常(normal)濾波器或是強烈(strong)濾波器,但因為VVC的最大區塊的尺寸已到128x128像素,故在原有的短階數(short tap)正常和強烈濾波器外,另增加了長階數(long-tap)濾波器。當依據區塊尺寸或是CU/TU邊界離PU邊界的距離所決定之去區塊長度大於3時,則可能啟用長階數濾波器。
適應性環路濾波器基本上而言是屬於一尺寸為4x4像素的正方形濾波器,但不同於傳統濾波器的正方形二邊和水平及垂直二軸平行之外觀,整個濾波器被旋轉45度,讓ALF形成一個具有菱形外觀的濾波器。由於通過ALF中央點之水平軸線及垂直軸線具有的七個係數,離中央點的上下和左右二側越遠的水平軸線及垂直軸線則具有5、3、1個係數,所以VVC所使用的ALF濾波器是一個 7x7 鑽石形濾波器,並且濾波器的係數呈現點對稱。
針對每一個4x4的還原影像區塊,VVC會先用2維拉普拉斯活動性 (2D Laplacian activity) 運算得到一水平、一垂直、和二對角線的資料,以判別方向性是屬於紋理、強水平/垂直、弱水平/垂直、強對角線、弱對角線等五類中之何類,以及活動性是屬於 0~4 共 5 等級中的何等級,以便利用方向性和活動性二資訊來在25組ALF濾波器系數集合中選擇合適的濾波器係數。除此之外,VVC亦會再次利用2維拉普拉斯活動性 (2D Laplacian activity) 運算得到水平、垂直、和二對角線的資料,判斷是否需要對LAF濾波器施加對角線翻轉 (flip)、水平翻轉、旋轉90度等額外的運算,以對準不同區塊的方向性。
三、專利佈局和研發的建議
視訊壓縮的發展中,可以觀察到新標準有時是對原有標準進行線性內插、外插的改善。舉例來說,畫框間預測所採用的解析度,即由H.261時期的整數像素,進展到MPEG-1和MPEG-2時期的1/2像素,進展到MPEG-4時期的1/4像素和現在H.266時期的1/16像素。另外一方面,畫框內預測的模式數目,則由H.264時代的8種模式,進展對H.265時代的33種角度模式,再進展到H.266時代的65種角度模式,其中H.266模式數目增加的主要原因,即是額外判斷當前區塊的角度模式是否可能位於二個相鄰的H.265角度模式之間 [8] [10] 。
由於發明專利的專利權自申請日起長達二十年,它可能遭遇不同世代的壓縮標準,為了日後主張專利權時減少爭論是否落入均等範圍的機率,可在專利說明書中加入適當的預測。舉例來說,H.266雖是2017年10月才開啓標準化流程,但在台灣專利資料庫中申請日在2017年10月以前的資料裡,有8篇早期公開案和3篇公告案在說明書中曾提及「H.266」。
另外一方面,為了精簡內容本文省略所有關於色度處理的介紹,但H.266有多種技術是涉及亮度和色度間的互動,例如LMCS等[8]。由於這類在不同資料(亮度和和色度)間探討資料的隱藏關係和互動性之研究,其方法步驟和傳統的步驟存在差異,又可產生無法預期的功效,而可較容易地獲得專利。
四、台灣專利概況
為了解H.266/VVC在台灣的專利佈局概況,在智慧財產局的資料庫中,找尋說明書中曾提及H.266/VVC和其相關中英文的早期公開案和公告案,並從中排除了出現核心部空隙體積(core void volume)、真空可變電容(vacuum variable capacitor)等相關字詞的案件。又因H.266/VVC是於2017年10月才開始向外界徵求提案,故進一步排除申請日早於2017年10月之申請案。截至2023年01月21日止,共計有761筆早期公開案和235筆公告案符合上述條件。
在已獲准的公告案中,申請時的申請人主要是集中於字節跳動(大陸,84)、聯發科(台灣,62)、寰發(台灣,18)、佳能(日本,14)、弗勞恩霍夫爾協會(德國,12)、高通(美國,12),其中括號中前半部文字代表申請人的國別,而後半部的數字則代表已獲准公告的件數。
另外一方向,在早期公開案中,申請時的申請人主要集中於高通(美國,251)、字節跳動(大陸,148)、聯發科(台灣,87)、佳能(日本,71)、弗勞恩霍夫爾協會(德國,37)、OPPO(大陸,27)、松下電器知識產權(美國,23)、索尼(日本,15)、內數位VC控股(法國,13)、華為(大陸,10)、VID衡器(美國,10)。
由這些資料可以得知,台灣申請人以聯發科居於領先地位,而來自大陸、美國、日本、歐洲地區的申請人,則分別以字節跳動、高通、佳能、弗勞恩霍夫爾協會居於領先地位,亦即世界上不同國家均有公司在努力發展H.266/VVC相關技術和專利,其中並以字節跳動和高通二家公司態度最為積極。
五、結論
H.266/VCC或許也會如同H.265/HEVC一樣因高額授權金而導致後續商業普及性緩慢,但我們仍可藉由學習H.266/VCC所提出的技術,增廣對未來研究並進而提出改良的可能。
參考文獻:
[1] Yu-Wen Huang, Jicheng An, Han Huang, Xiang Li, Shih-Ta Hsiang, Kai Zhang, Han Gao, Jackie Ma, and Olena Chubach, “Block Partitioning Structure in the VVC Standard,” IEEE Transactions on Circuits and Systems for Video Technology, Vol. 31, Iss. 10, Pp. 3818 - 3833, October 2021.
[2] Jonathan Pfaff, Alexey Filippov, Shan Liu, Xin Zhao, Jianle Chen, Santiago De-Luxán-Hernández, Thomas Wiegand, Vasily Rufitskiy, Adarsh Krishnan Ramasubramonian, Geert Van der Auwera, “Intra Prediction and Mode Coding in VVC,” IEEE Transactions on Circuits and Systems for Video Technology, Vol. 31, Iss. 10, Pp. 3834 - 3847, October 2021.
[3] Wei-Jung Chien, Li Zhang, Martin Winken, Xiang Li, Ru-Ling Liao, Han Gao, Chih-Wei Hsu, Hongbin Liu, Chun-Chi Chen, “Motion Vector Coding and Block Merging in the Versatile Video Coding Standard,” IEEE Transactions on Circuits and Systems for Video Technology, Vol. 31, Iss. 10, Pp. 3848 - 3861, October 2021.
[4] Haitao Yang, Huanbang Chen, Jianle Chen, Semih Esenlik, Sriram Sethuraman, Xiaoyu Xiu, Elena Alshina, Jiancong Luo, “Subblock-Based Motion Derivation and Inter Prediction Refinement in the Versatile Video Coding Standard,” IEEE Transactions on Circuits and Systems for Video Technology, Vol. 31, Iss. 10, Pp. 3862 - 3877, October 2021.
[5] Xin Zhao, Seung-Hwan Kim, Yin Zhao, Hilmi E. Egilmez, Moonmo Koo, Shan Liu, Jani Lainema, Marta Karczewicz, “Transform Coding in the VVC Standard,” IEEE Transactions on Circuits and Systems for Video Technology, Vol. 31, Iss. 10, Pp. 3878 - 3890, October 2021.
[6] Heiko Schwarz, Muhammed Coban, Marta Karczewicz, Tzu-Der Chuang, Frank Bossen, Alexander Alshin, Jani Lainema, Christian R. Helmrich, and Thomas Wiegand, “Quantization and Entropy Coding in the Versatile Video Coding (VVC) Standard,” IEEE Transactions on Circuits and Systems for Video Technology, Vol. 31, Iss. 10, Pp. 3891 - 3906, October 2021.
[7] Marta Karczewicz, Nan Hu, Jonathan Taquet, Ching-Yeh Chen, Kiran Misra, Kenneth Andersson, Peng Yin, Taoran Lu, Edouard François, and Jie Chen, “VVC In-Loop Filters,” IEEE Transactions on Circuits and Systems for Video Technology, Vol. 31, Iss. 10, Pp. 3907 - 3925, October 2021.
[8] Benjamin Bross, Jianle Chen, Jens-Rainer Ohm, Gary J. Sullivan, and Ye-Kui Wang, “Developments in International Video Coding Standardization After AVC, With an Overview of Versatile Video Coding (VVC),” Proceedings of the IEEE, Vol. 109, Iss. 9, Pp. 1463 - 1493, September 2021.
[9] Frank Bossen, Karsten Sühring, Adam Wieckowski, and Shan Liu, “VVC Complexity and Software Implementation Analysis,” IEEE Transactions on Circuits and Systems for Video Technology, Pp. 3765 - 3778, Vol. 31, Iss. 10, October 2021.
[10] Mahsa T. Pourazad, Colin Doutre, Maryam Azimi, Panos Nasiopoulos, “HEVC: The New Gold Standard for Video Compression: How Does HEVC Compare with H.264/AVC?” IEEE Consumer Electronics Magazine, Vol. 1, Iss. 3, Pp. 36 - 46, July 2012.