You are on page 1of 79

國立臺灣科技大學

電 機 工 程 系

碩士學位論文

學 號 : M10707324

運用殘差網路及隨機森林預測方法於加速
H.266/QTMT幀內編碼

Speed up H.266/QTMT Intra Coding based on


the Predictions of ResNet Model and Random
Forest Classifier

研 究 生: 黃 昱 寰
指 導 教 授: 陳 建 中 博士

中 華 民 國 一 百 零 九 年 七 月 二 十 三 日
摘要

隨著 5G 通信的發展,帶動 4K 以上的超高畫質影像、擴增實境(AR)/虛擬實境
(VR)、360 度全景投影等新技術的進步。為了提供更高畫質的沉浸式體驗,需要更多
儲存空間及網路頻寬,其中高畫質視訊壓縮的效能扮演關鍵角色。JVET(Joint Video
Exploration Team)自 2015 年開始制定新的視訊壓縮標準 H.266/VVC(Versatile Video
Coding),預計於 2020 年正式發布為新一代的國際視訊壓縮標準。H.266/VVC 採用了四
分樹加多分樹劃分(QuadTree plus Multi-Type tree, QTMT)的編碼架構,即在原 QT 葉節
點下再使用多分樹(Multi-type Tree)繼續向下劃分,使 CU 不侷限於正方形,而能夠根據
影像的局部紋理採用合適的尺寸;另外為了匹配更多型態的紋理特徵,幀內預測模式
也從原先的 35 種增加到 67 種。這些新技術讓 H.266/VVC 編碼效能大幅提升,但也需
要更高的運算複雜度,實驗顯示 H.266 幀內編碼所需時間為 H.265/HEVC 的 18 倍。本
論文針對 H.266 幀內編碼架構,研究快速編碼模式決策演算法。我們提出了劃分深度
及劃分模式的快速決策:(1)在深度快速決策的部分,針對 32× 32 大小的亮度區塊
(Luma block),使用 ResNetV2 的架構來抽取影像特徵並預測當前區塊 BTDepth 的最大
值,再將預測所得到的 Label 對應到深度範圍表,對於不在範圍內的深度則可透過提前
跳過(Early Skip)或提前終止(Early Terminate)來降低編碼運算量;(2)在劃分模式快速決
策的部分,同樣使用 32×32 大小的亮度區塊作為預測標的。為了模擬多標籤分類器的
功能,使用隨機森林分別訓練六種劃分模式的二元分類器,再將個別的預測結果組合
成 6 digits 的整數串,對於預測值為 0 的劃分模式及其後續 subCUs 則不再嘗試劃分,
藉此省去遞迴劃分所花費的時間。將兩種快速決策演算法結合之後,實驗結果顯示,
與 VTM7.0 的原始編碼結果相比,本論文提出的方法在 BDBR 僅上升 0.70%的情況下,
能夠節省 39.16%的編碼時間。

i
Abstract

The fifth generation (5G) network enables the advance of video processing techniques,
such as 4k and 8k UHD, augmented/virtual reality (AR/VR) and 360° videos. To provide high
fidelity immersive experience, it needs high-speed communication, low-latency transmission,
and huge data storage space, all of which depend on Highly Efficient Video Coding (HEVC)
techniques. The Joint Video Exploration Team started to study the next-generation video
compression standard - H.266/VVC (Versatile Video Coding) since 2015, which is expected to
be finalized in 2020. The H.266/VVC adopts QuadTree (QT) plus Multi-Type (MT) tree
(QTMT) block partition structure to encode one coding unit (CU). Apart from the recursive
QT partition structure adopted in the H.265/HEVC, the recursive MT is applied to each leaf
node to enable more flexible block partitions according to different local texture. Besides, it
increases the number of Intra prediction modes from 35 to 67 to well encode various texture
patterns. These new techniques enable the H.266/VVC to achieve high video coding efficiency,
but also lead to very high time complexity. In comparison, the time complexity of H.266 is 18
times of that of the H.265 in terms of execution time. In this research, to reduce the VVC
encoding time complexity, we proposed one fast CU depth decision method and one fast CU
coding mode decision method: (1) For the fast CU depth decision, we select 3232 luma blocks
as training samples and utilize a ResNetV2 model to predict the maximum BTDepth value of
one CU. Based on the predicted depth label, it can get a depth range from a pre-determined
lookup table. It performs RDO tests only for depths in this range to reduce time complexity
while maintaining coding quality; (2) For fast CU coding mode decision, we utilize a Random
Forest learning algorithm for classification of the same size luma blocks, in which 6 different
binary classifiers act as a multi-label classifier. If the predicted coding mode is label “0”, there
is no need to further partition on this CU and its subCUs. Experiments showed that the
proposed fast encoding method, comprising the fast CU depth decision process and the fast CU
coding mode decision process, can reduce up to 39.16% of encoding time with just 0.7%
increase in BDBR as compared to the default VTM7.0.

ii
致謝

在研究所的兩年期間成長了許多,在編碼及影像處理方面都有更進一步的瞭解。
首先要感謝陳建中老師讓我有機會能加入 MMLAB,這段時間非常照顧我們,也鼓勵
實驗室的同學都能在有興趣的領域自由發展;在碩一時也提供了產學合作的機會,讓
我能及早熟悉程式語法,並累積深度學習的實作經驗,才能順利找到實習,能做您的
學生真的很幸運!

另外也要謝謝學長姐們,謝謝逸韡學長作為實驗室第一位研究 VTM 編碼器的人,


前期花了相當多的時間在研讀程式碼,有你的經驗我們才能快速熟悉編碼器的操作;
謝謝政樺學長幫忙安裝 GPU,才能順利地訓練模型,也分享了很多工作上的見聞;謝
謝姵如學姊總是很罩,跟學姊一起做事就是安心,常常被學姐的正能量加持 XD。

當然也要謝謝同屆的夥伴們,在產學計畫時一起解 issue 到很晚,還有各種開會和


進度,到現在還是很感謝崴隆當時有完整備份開發板的資料,也常在 IG 上分享奇怪的
冷笑話,為研究生活帶來小小的樂趣;謝謝慈諠作為隊友總是很給力,一起學習程式
跟完成資料庫的專題,生日時還收到禮物和小卡(感動 QQ),等天氣轉涼的時候,再
一起去玩城市尋寶吧!

建安和宇峯,軟體硬體都精通的你們,遇到不熟悉的事情也會試著去研究,看著
你們認真的背影,聽到了實驗室要起飛的聲音;座位有生活感兼具設計感的晟儒,總
是看到你在標註資料,祝你的研究可以順利完成;默默做了很多事的嘉慶,也是實驗
室的好男人擔當,很多地方都受到你的幫忙,有機會再一起去梅花湖騎腳踏車吧;英
文很溜的承翰,祝你能找到有興趣的研究領域~

還有長春之家可愛的室友們,每次的火鍋之夜都讓乾涸的靈魂重新充滿活力;也
謝謝宇龍帶我東奔西跑,踩點台北的美食和景點,未來的路上請你繼續包涵囉;最後
要謝謝家人們,總是尊重我的選擇並願意溝通,也提供我專心做研究的環境,以後換
我分擔你們的煩惱。

願身邊的家人好友們,平安健康、事事順心。

黃昱寰 2020.08.06
iii
目錄

摘要 .......................................................................................................................................... I

ABSTRACT ...........................................................................................................................II

致謝 ....................................................................................................................................... III

目錄 ....................................................................................................................................... IV

圖目錄 .................................................................................................................................. VII

表目錄 ................................................................................................................................... IX

第一章 緒論 ............................................................................................................................. 1

1.1 研究背景 .................................................................................................................. 1


1.2 研究動機與目的 ...................................................................................................... 1
1.3 論文組織 .................................................................................................................. 2

第二章 知識背景 ..................................................................................................................... 4

2.1 H.266/VVC 視訊編碼標準介紹.............................................................................. 4


2.1.1 H.266/VVC 與 H.265/HEVC 的差異 ........................................................... 4
2.1.2 H.266/VVC 的 CU 編碼架構 ........................................................................ 5
2.1.2.1 編碼單位(Coding Unit, CU).................................................................. 5
2.1.2.2 QTMT 的架構......................................................................................... 6
2.1.2.3 邊界的 CU 劃分 .................................................................................... 8
2.1.2.4 CU 對於冗餘劃分的限制 ..................................................................... 8
2.1.3 幀內預測 (Intra Prediction) ......................................................................... 10
2.1.3.1 參考像素的獲取 .................................................................................. 10
2.1.3.2 參考像素的平滑濾波 .......................................................................... 11
2.1.3.3 當前區塊的預測 .................................................................................. 12
2.1.3.4 邊界濾波 .............................................................................................. 15
2.2 殘差網路(RESNET)介紹 ........................................................................................ 15
2.2.1 ResNetV1 ..................................................................................................... 15
2.2.2 ResNetV2 ..................................................................................................... 18
iv
2.3 隨機森林(RANDOM FOREST)介紹 ......................................................................... 19
2.3.1 決策樹單元 ................................................................................................. 19
2.3.2 資訊增益 ..................................................................................................... 19
2.3.3 隨機森林 ..................................................................................................... 20

第三章 H.266/VVC 相關快速演算法介紹 .......................................................................... 22

3.1 傳統機器學習演算法 ............................................................................................ 22


3.2 深度學習演算法 .................................................................................................... 23

第四章 H.266/VVC 編碼單位之快速演算法 ...................................................................... 26

4.1 H.266/VVC 於幀內編碼中的 CU 劃分流程 ........................................................ 26


4.2 H.266/VVC 之劃分深度快速決策........................................................................ 26
4.2.1 劃分深度的分類 ......................................................................................... 27
4.2.2 Label 的分析 ............................................................................................... 28
4.2.3 訓練資料的蒐集 ......................................................................................... 32
4.2.4 CNN 的架構與訓練 .................................................................................... 37
4.2.4.1 CNN 模型架構 ..................................................................................... 37
4.2.4.2 損失函數的選擇 ................................................................................... 38
4.2.4.3 模型的訓練 ........................................................................................... 39
4.2.5 應用 CNN 之劃分深度快速決策 ............................................................... 42
4.3 H.266/VVC 之劃分模式快速決策........................................................................ 44
4.3.1 分類器的架構 ............................................................................................. 45
4.3.1 劃分模式的分析 ......................................................................................... 46
4.3.2 特徵值的選擇 ............................................................................................. 48
4.3.3 RandomForest 的訓練 ................................................................................. 50
4.3.3.1 訓練資料的蒐集 ................................................................................... 50
4.3.3.2 模型的訓練 ........................................................................................... 50
4.4 H.266/VVC 之劃分深度快速決策結合劃分模式快速決策................................ 53

第五章 實驗結果與討論 ....................................................................................................... 55

5.1 實驗環境設置 ........................................................................................................ 55

v
5.2 實驗結果 ................................................................................................................. 56
5.2.1 與原始 VTM 之編碼結果進行比較 ............................................................ 56
5.2.2 與其他 H266/VVC 相關之幀內編碼快速演算法進行比較 ...................... 61

第六章 結論與未來研究探討 ............................................................................................... 62

6.1 結論 ........................................................................................................................ 62
6.2 未來研究討論 ........................................................................................................ 63

參考文獻 ................................................................................................................................ 64

vi
圖目錄

圖 2-1. VVC 編碼架構流程圖 [4] ...................................................................................... 5

圖 2-2. QTMT 的 5 種劃分模式示意圖 ............................................................................. 5

圖 2-3. QTMT 劃分示意圖 ................................................................................................. 7

圖 2-4. QTMT 架構中對於冗餘劃分的限制[4] ................................................................ 9

圖 2-5. 參考像素示意圖[4] .............................................................................................. 10

圖 2-6 . 平滑濾波示意圖[4] ...............................................................................................11

圖 2-7. 預測模式示意圖[4] .............................................................................................. 12

圖 2-8. DC 模式及 Planar 模式示意圖[4] ........................................................................ 13

圖 2-9. 殘差結構(Building block)[7] ................................................................................ 16

圖 2-10. ResNet 中的兩種殘差結構[7]............................................................................ 17

圖 2-11. ResNet 架構及其他變形[8] ................................................................................ 18

圖 2-12. Decision Tree 的決策過程示意圖 ...................................................................... 19

圖 2-13. IG 算法示意圖 .................................................................................................... 20

圖 3-1. CU 快速編碼流程[12] .......................................................................................... 23

圖 3-2. 預測最大深度之 CNN 模型[13] .......................................................................... 24

圖 3-3. 預測劃分與否之 CNN 模型[15] .......................................................................... 25

圖 4-1. 劃分單位的選擇 ................................................................................................... 27

圖 4-2. 區塊的 class_depth ............................................................................................... 28

圖 4-3. 畫面的切割示意圖 ............................................................................................... 32

圖 4-4. Sobel 運算子 ......................................................................................................... 33

圖 4-5. 畫面經過 Sobel 濾波器後的輸出結果 ................................................................ 33

vii
圖 4-6. 本論文提出之 CNN 模型基本架構..................................................................... 37

圖 4-7 mnist 使用不同損失函數的訓練結果示意圖 [20] ............................................. 38

圖 4-8. 加入 center-loss 後之模型架構 ............................................................................ 39

圖 4-9. 模型的混淆矩陣 ................................................................................................... 40

圖 4-10. Class Activation Map (CAM) 在不同 patch 上的結果 ...................................... 41

圖 4-11. 本論文提出之深度快速決策演算法流程圖 ..................................................... 43

圖 4-12. CU 在 32×32 大小時的 6 種劃分模式 .............................................................. 45

圖 4-13. 本論文提出之使用隨機森林模擬多標籤分類器之架構 ................................. 45

圖 4-14. Keiba frame#1 在 QP 27 時的亮度劃分結果 .................................................... 47

圖 4-15. VARQUA 示意圖 ................................................................................................... 49

圖 4-16. VARUB 及 VARLR 示意圖 .................................................................................... 49

圖 4-17. VARMUB 及 VARMLR 示意圖 ............................................................................... 49

圖 4-18. QP 值為 27 時,六種二元分類器的特徵重要程度 ......................................... 52

圖 4-19. 本論文提出之結合劃分深度快速決策及劃分模式快速決策之演算法流程圖

.................................................................................................................................... 54

圖 5-1. 影像解析度與△ 𝑇之關聯 .................................................................................... 58

圖 5-2. 4 種 QP 下的△ 𝑇 .................................................................................................. 58

viii
表目錄

表 1-1. VVC 與 HEVC 間 BD-rate 的比較(RA) [5] .......................................................... 1

表 2-1. QTMT 中的 SPS 語法結構 .................................................................................... 6

表 2-2. 圖片邊界劃分規則[4] ............................................................................................ 8

表 2-3. 常見 ResNet 網路架構[7]..................................................................................... 17

表 2-4. 不同 ResNet 架構在 Cifar-10 上的 Classification error (%)[8]........................... 18

表 3-1. Label 的對應深度範圍[13] .................................................................................. 24

表 4-1. class_depth 與 Label 的轉換 ................................................................................ 28

表 4-2. 訓練影片簡介 ....................................................................................................... 29

表 4-3. 不同 QP 下的亮度區塊及對應 Label .................................................................. 30

表 4-4. 訓練影片中 Label 的分布情形 ............................................................................ 31

表 4-5. 各 Label 的 GV 範圍 (以 QP27 為例) .................................................................. 34

表 4-6. 各 QP 值中 Label 的分布情形 ............................................................................. 34

表 4-7. UVG 訓練影片簡介 ............................................................................................. 35

表 4-8. 加入 UVG dataset 之後,各 QP 值中 Label 的分布情形 .................................. 36

表 4-9. Label 及對應深度範圍 ......................................................................................... 44

表 4-10. 亮度區塊為 32×32 大小時,QP 值與相應劃分模式比例 .............................. 47

表 4-11. QP 值為 27 時,對測試集的準確率及混淆矩陣 ............................................. 51

表 5-1. 環境設置 ............................................................................................................... 55

表 5-2. 與 VTM 7.0 為參考軟體之編碼效能表現 .......................................................... 57

表 5-3. 以 Class 為單位之編碼效能表現 ........................................................................ 58

表 5-4. 實際有加速效果的劃分模式預測結果在測試集所佔比例 ............................... 60


ix
表 5-5. 有無加入劃分模式預測之編碼效能表現比較 ................................................... 60

表 5-6. 文獻[27]及文獻[15]與本論文提出之演算法的編碼效能比較 ......................... 61

x
第一章 緒論

1.1 研究背景

隨著網路及行動裝置的普及,人們習慣透過線上影像串流觀賞影片,也對影像解
析度及幀率更為要求,而在儲存空間和網路速度都受限制的狀況下,視訊編碼的技術
能讓裝置更有效率的存取多媒體資料。H.265/HEVC [1] 為市面上常使用的編碼技術,
而隨著 5G 時代的到來,4K 及 4K 以上的超高畫質影像、AR/VR、360 度的全景投影等
新興技術也備受期待,為了提供使用者沉浸式的體驗,這些高質量的影像往往對儲存
空間及網路速度有更高的要求;為了因應這些需求,ISO/IEC 組織 MPEG (Motion
Picture Expert Group)和 ITU-T 組織 VCEG (Video Coding Experts Group)聯合成立的 JVET
在 H.265/HEVC 的基準之上,制定了新的視訊壓縮標準 H.266/VVC [2],目標在生成與
HEVC 相同品質的影像時,能夠節省 50%以上的 bitrate,也就是達到 2 倍以上的壓縮
率。目前 VTM (VVC Test Model)[3, 4]是由 JVET 所開發的 H.266/VVC 參考軟體,從表
1-1 可以看到初代 VTM 已能節省約 45%的 bitrate,並計畫在 2020 年底正式發布為新一
代國際視訊壓縮標準。

表 1-1. VVC 與 HEVC 間 BD-rate 的比較(RA) [5]

BD-rate (Y) BD-rate(Cb) BD-rate(Cr)


Average -43.81% -45.61% -47.41%

1.2 研究動機與目的

在 H.266/VVC 中,CTU 的尺寸從 64×64 提高到 128×128,且為了能更好地匹配影


像紋理,除了 HEVC 原有的四分樹結構,還引入了二分樹結構和三分樹結構,且不再
有 CU、PU 和 TU 的區別;而幀內預測的部分,為了提高精度,也從原本的 35 種增加
為 67 種預測模式(DC+Planar+65 種角度),且因為 QTMT 的架構,使得 CU 的尺寸不再
侷限於正方形,因此擴張了角度預測的範圍,引入了廣角的預測模式。

綜上所述,H.266/VVC 採用了更多元的分割方法及預測角度,在進一步提升壓縮
率的同時,又保有良好的影像品質。但這些新技術的引入,同時也造成編碼複雜度
高、編碼時間過長的問題。因此若要讓 H.266/VVC 的技術能夠普及地被使用,就必須

1
讓 H.266/VVC 的編碼速度有所提升。

在尋找最優 CU 的過程中,需要透過不斷的遞迴,來計算各種劃分情況下的
RDCost,並選出代價最低的 RDCost 作為最終劃分方式;而因為 QTMT 架構的引入了
二分樹劃分及三分樹劃分,使得不同劃分方式的的組合擁有更多變化,編碼複雜度也
大為增加,H.266/VVC 在幀內編碼所花費的時間更為 H.265/HEVC 的 18 倍 [6],因此需
要對 H.266/VVC 的幀內編碼模式提出可降低運算時間的架構和演算法。

因此本論文針對幀內編碼(Intra-frame Coding),在進行 CU 劃分決策時,利用殘差


網路預測區塊的紋理複雜度,藉以判斷當前區塊的劃分深度範圍,並輔以隨機森林分
類器,利用當前區塊的紋理特徵,優先排除較沒有機會被選用的劃分模式,以達到加
速編碼的目的。

1.3 論文組織

本論文的內容共分六章,最後附上參考文獻,各章的主要內容如下。

第1章 緒論

本章將說明本論文的研究背景、動機與目的。

第2章 背景知識

本章將介紹本研究理論與實作之背景知識,背景知識部分將著重於 H.266/VVC
的編碼單元及幀內預測流程之相關知識探討,以及殘差網路(ResNet)與隨機森林
(Random Forest)之簡介。

第3章 H.266/VVC 相關快速演算法介紹

本章將介紹現有的 H.266/VVC 幀內編碼快速演算法。

第4章 H.266/VVC 編碼單元之快速演算法

本章將提出應用 ResNet 於 H.266/VVC 編碼單元之劃分深度快速決策,及應用


Random Forest 於 H.266/VVC 編碼單元之劃分模式快速決策。

2
第5章 實驗結果與分析討論

本章將對本篇論文所提出之快速決策應用到實際的 H.266/VVC 幀內編碼中,並


進行原始編碼結果及加速編碼結果的比較,再與其他 H.266/VVC 幀內編碼快速
演算法的編碼結果進行比較。

第6章 結論與未來展望

本章將依據實驗結果與本論文之貢獻作總結與論述,並提出未來發展、改進的
方向與研究重點。

3
第二章 知識背景

本 章 將 敘 述 與 本 論 文 研 究 相 關 之 背 景 知 識 與 相 關 文 獻 探 討 , 分 別 如 下 :(1)
H.266/VVC 視 訊 編 碼 標 準 介 紹 ;(2)殘 差 網 路(ResNet)介 紹 ;(3)隨 機 森 林(Random
Forest)介紹。

2.1 H.266/VVC 視訊編碼標準介紹

2.1.1 H.266/VVC 與 H.265/HEVC 的差異

H.265/HEVC 是 2013 年所制定的視訊編碼標準,也是目前市場主流的編碼軟體,


而隨著對對視訊品質的要求提高, H.265/HEVC 也逐漸不敷時用。因此,ISO/IEC 組織
MPEG (Motion Picture Expert Group) 和 ITU-T 組織 VCEG (Video Coding Experts Group)
組 成 JVET (Joint Video Exploration Team), 開 始 制 定 新 一 代 的 視 訊 壓 縮 標 準
H.266/VVC,主要應用場景為 4K & 8K 等 UHD 影像、AR/VR、360 度視訊,且需要滿
足 HDR(高動態)/WCG(廣色域)的需求。

以劃分結構來說,H.265/HEVC 的 CTU 大小為 64×64,編碼單元(Coding Unit, CU)


尺寸從最大的 64×64 到最小的 8×8 ,且只使用四分樹劃分,因此 CU 大小統一為正方
形。而 H.266/VVC 的 QTMT (QuadTree plus Multi-type Tree) 採用了更為複雜的編碼單
元劃分結構,在 HEVC 四分樹(QT) 劃分的基礎上增加了兩種二分樹(BT)模式和兩種三
分樹(TT)模式,其中 BT 和 TT 統稱為 MT(Multi-Type tree) ,且多數情況下,H.266/VVC
的編碼單元(CU)、預測單位(PU)、轉換單元(TU) 共享相同的尺寸,因此 CU 可以直接
進行預測及轉換。此外,H.266/VVC 僅提供 10bit-depth 的編碼處理,且在處理 I 幀時,
亮度和色度編碼單元劃分是分開進行的。

H.266/VVC 的編碼架構與 H.265/HEVC 相似,如圖 2-1 所示,其中幀內預測模式從


35 種 提 高 至 67 種 , 並 增 加 了 位 置 自 適 應 幀 內 聯 合 預 測(Position Dependent Intra
Prediciton Combination, PDPC)、幀內廣角預測(Wide-Angle Intra Prediction, WAIP)、多
參考行幀內預測(Multiple Reference Line Intra Prediction, MRL)、幀內逐塊預測(Intra
Sub-Partition Prediction, ISP)等新技術;在幀間預測方面,則增加了 affine 模式、自適應
運動矢量精度(Advanced Motion Vector Resolution, AMVR)、可選時域運動矢量預測

4
(Alternative Temporal Motion Vector Prediction, ATMVP)等新技術。綜合上述的說明,可
以感受到 H.266/VVC 編碼所需的計算量及複雜度遠比 HEVC 增加許多。

圖 2-1. VVC 編碼架構流程圖 [4]

2.1.2 H.266/VVC 的 CU 編碼架構

2.1.2.1 編碼單位(Coding Unit, CU)


在 H.266/VVC 中,採用 QTMT 架構,即由四分樹(QT),兩種二分樹(BT)和兩種三
分樹(TT)結構組成,而 QTMT 劃分架構的子節點則稱為 CU (Coding Unit)。這種劃分結
構使 CU 形狀不再侷限於正方形,能更好的匹配畫面中的局部特徵,且在多數情況
下,CU 可直接用於預測及變換,不用再做更進一步的劃分,即統一了 CU、PU 和 TU
概念。編碼樹單元(CTU)首先會進行四分樹劃分,四分樹的節點再由 QTMT 進一步劃
分。如圖 2-2 所示,水平二分樹(HBT)及垂直二分樹(VBT)的劃分類型都是對稱的,水
平三分樹(HTT)及垂直三分樹(VTT)的劃分比例為 1:2:1。

圖 2-2. QTMT 的 5 種劃分模式示意圖

5
2.1.2.2 QTMT 的架構

圖 2-3 (a)為 QTMT 劃分結果的示意圖,圖 2-3(b)為對應劃分結果的樹狀圖,其中


黑線為四分樹劃分,藍色虛線為二分樹劃分,紅色虛線為三分樹劃分;樹狀圖中的 0
表示水平方向劃分,1 表示垂直方向劃分,劃分方式遵照如表 2-1 所示的 SPS 語法結
構,並且對於紋理越複雜的區域,會執行更密集的劃分。在 VVC 的幀內編碼中,對於
4:2:0 的 YUV 序列,CTU 的預設大小為 128×128,並會強制執行四分樹劃分至 64×64
大小;在 64× 64 階段,僅提供四分樹劃分作為選擇,而在未執行 MT 劃分之前,
MtDepth 為 0;當進一步向下劃分至 32×32 大小,因為 MaxBtSize 及 MaxTtSize 皆為
32×32,因此這個階段加入二分樹劃分及三分樹劃分作為選擇,另外需注意一但執行
了 MT 劃 分 , 該 分 支 就 不 能 再 進 行 四 分 樹 劃 分 。 當 MtDepth 為 3 時 即 到 達
MaxMttDepth, 不 再 向 下 劃 分 。 最 終 一 個 CU 的 尺 寸 可 以 由 QTDepth 和
BTDepth/MTDepth 所決定,其中,若執行二分樹劃分,BTDepth 與 MTDepth 都會+1;
而 若 執 行 三 分 樹 劃 分 , 則 三 分 樹 劃 分 兩 端 的 區 塊 BTDepth+2, 中 間 的 區 塊
BTDepth+1,三個區塊的 MTDepth 都會+1。

另外需要注意的是,在 VVC 的 P 幀及 B 幀中,亮度和色度在共享同一種編碼單元


劃分結果;但在 I 幀中,亮度和色度的編碼單元劃分是分開進行的。因此在 P 幀及 B 幀
中,CU 會由 Luma CB、Cb CB 及 Cr CB 等三種分量所組成;但在 I 幀中 CU 可能僅由
一個 Luma CB(亮度分量)組成,或僅由 Cb CB 及 Cr CB 等兩個色度分量組成。

表 2-1. QTMT 中的 SPS 語法結構

6
(a) 劃分結果示意圖

(b) 劃分結果樹狀圖

圖 2-3. QTMT 劃分示意圖

7
2.1.2.3 邊界的 CU 劃分

而當 CU 的一部分超出圖片的右邊界或下邊界,這個 CU 將被強制劃分,直到每個
CU 都在圖片的邊界中,具體規則如表 2-2 所示,另外需要注意的是套用邊界劃分規則
的 CU,MTDepth 可能會大於 3。

表 2-2. 圖片邊界劃分規則[4]

2.1.2.4 CU 對於冗餘劃分的限制

在 QTMT 架構中,因為提供了多樣化的劃分模式,不同的劃分選擇可能會有相同
的劃分結果,而在 H.266/VVC 中,制定了一套規則來避免特定冗餘劃分的情況:

(1)當 HBT 劃分的第一個子 CU 嘗試進行 VBT 劃分時,第二個子 CU 中的 VBT 劃分


被禁用,防止劃分成四分樹,如圖 2-4(a)所示。

(2)當 VBT 劃分的第一個子 CU 嘗試進行 HBT 劃分時,第二個子 CU 中的 HBT 劃分


被禁用,防止劃分成四分樹,如圖 2-4(b)所示。

(3)HTT 劃分的第二個子 CU 中的 HBT 被禁用,以防止形成兩次水平二分樹劃分的重


複情形,如圖 2-4(c)所示。

8
(4)VTT 劃分的第二個子 CU 中的 VBT 被禁用,以防止形成兩次垂直二分樹劃分的重
複情形,如圖 2-4(d)所示。

(5)HBT 劃分的第一個子 CU 嘗試進行 VTT 劃分時,第二個子 CU 中的 VTT 劃分被


禁用,防止與二分樹和三分樹劃分重合,如圖 2-4(e)所示,此限制僅適用於 P 幀
及 B 幀。

(6)VBT 劃分的第一個子 CU 嘗試進行 HTT 劃分時,第二個子 CU 中的 HTT 劃分被


禁用,防止與二分樹和三分樹劃分重合,如圖 2-4(f)所示,此限制僅適用於 P 幀
及 B 幀。

圖 2-4. QTMT 架構中對於冗餘劃分的限制[4]

9
2.1.3 幀內預測 (Intra Prediction)

幀內預測主要是利用鄰近已編碼過的區塊來生成預測值,並將預測值與原始值相
減得到殘差,透過這樣的操作消除空間上的冗餘,幀內預測可分為 4 個步驟:參考像
素的獲取、參考像素的平滑濾波、當前區塊的預測、邊界濾波,以下將個別進行介
紹。

2.1.3.1 參考像素的獲取

如圖 2-5 所示,假設當前 CU 的大小為 W*H,當前 CU 的參考像素由 5 個部分所組


成,分別為左下一行的重建值,個數為 W;左側一行的重建值,個數為 H;左上角的
重建值,個數為 1;上方一列的重建值,個數為 W;右上方一列的重建值,個數為 H,
因此總共可取得 2*(W+H)+1 個參考像素。

圖 2-5. 參考像素示意圖[4]

當某一部分的重建值不能被使用時,則遵照以下規則:

(1)當 5 個部分的重建值都無法使用,則用 1 << (bitdepth-1)來填充,而 VVC 僅提供


10bit-depth 的編碼處理,因此這邊填充的像素值為 512。

10
(2)當 5 個部分的重建值有部分不可用時,先查看最左下方的重建值是否可用,若可
使用,則從下往上遍歷,不可用的重建值則利用下方最相鄰的重建值填充;到達
左上角後,在從左往右遍歷,不可用的重建值則利用左方最相鄰的重建值填充。

(3)若最左下角的重建值無法使用,則從下往上,從左往右進行遍歷,直到找到可用
的重建值,並將此重建值填充到最左下角,然後按照(2)的規則進行重建值的填
充。

2.1.3.2 參考像素的平滑濾波

為了減少噪聲(Noise)對預測的影響,會先對參考像素進行平滑濾波,而平滑濾波
本質為一個低通濾波器,其中,只對符合 VVC 中特定條件的亮度分量進行平滑濾波。

平滑濾波可分為常規濾波及強濾波,常規濾波如圖 2-6(a)所示,為一種 3-tap 濾波


器,參考當前像素(x)及左右兩個鄰近像素(a,b),進行一維的 1:2:1 低通濾波;強濾波如
圖 2-6 (b)所示,若當前像素 x 位於上方,則利用左上角參考像素 a 和右上角參考像素 b
的加權平均求得,其中權重與左右兩角的距離成反比;若當前像素位於左側,則使用
最左上角參考像素 a 及最左下角參考像素 c 求得。

(a) 常規濾波 (b) 強濾波

圖 2-6 . 平滑濾波示意圖[4]
需要注意強濾波只適用於大於等於 32× 32 的亮度區塊,且需符合 abs(A+C-
2B)<threshold 及 abs(C+E-2D)<threshold 等條件,其中 A 為最左小角參考像素、B 為左

11
側最下方參考像素、C 為左上角參考像素、D 上方最右側參考像素、E 最右上角參考像
素,threshold = 1 << (bitdepth-5) = 32。從 threshold 的設定可以看出強濾波是用於低紋
理區域,沿著每個方向的紋理進行線性內插並取代當前參考值,透過這樣的方式消除
了局部的紋理變化,儘管這種紋理變化很細微,但在 32×32 以上的亮度區塊仍可能造
成幀內預測時的紋理失真。

2.1.3.3 當前區塊的預測

預測模式可分為 DC、Planar、角度模式,而 VVC 中的角度模式從 HEVC 原有的


33 種增加到 65 種,因此共有 67 種預測模式,如圖 2-7 所示,其中黑色箭頭為 HEVC
原有的角度模式,紅色箭頭為 VVC 中新增的角度模式(為原有角度模式的內插)。

圖 2-7. 預測模式示意圖[4]

12
DC 模式適用於平滑區域,在 DC 模式中,若當前區塊為正方形,則計算上方和左
方參考像素的平均值作為 dcValue,並把 dcValue 作為當前區塊中每個像素點的預測
值;若當前區塊的寬大於高,則只使用上方參考像素的平均值作為 dcValue;若當前區
塊的高大於寬,則只使用左側參考像素的平均值作為 dcValue,如圖 2-8(a)所示。而
Planar 模式又稱作平面預測模式,適用於紋理緩慢變化的區域,在 Planar 模式中,利用
水平方向及垂直方向的線性插值的平均值作為當前像素點的預測值,如圖 2-8(b)所
示。

(a) DC 模式 (b) Planar 模式


圖 2-8. DC 模式及 Planar 模式示意圖[4]

角度模式適用於紋理較為複雜的區域,在角度模式中,為了減少複雜度,會將需
要用到的參考像素統一到一維上:對於水平預測模式 2-33,將上方參考像素投影到左
側;對於垂直預測類別 34-66,則將左側參考像素投影到上方。將參考像素變成一維的
形式後,再根據採用的預測角度,將投影到的參考像素點作為預測值。

因為在 VVC 中存在 67 種預測模式,若直接進行編碼需要使用 7bit 來存取預測模


式,為了降低數據量,VVC 採取跟 HEVC 相同的方式,先建構最可能模式列表(Most
Probable Mode, MPM)。而為了降低複雜度,VVC 只參考左側和上方兩個相鄰 CU 來生
成 MPM 列表,且列表中包含 6 種預測模式(只需 3bit 存取),MPM 列表的建構方法如
下:

(1)當左側 CU 及上方 CU 都不可參考時,將預測模式設為 Planar 模式。

(2)當左側 CU 及上方 CU 都不是角度模式時,MPM list = {Planar, DC, HOR(18),


VER(50) , VER-4(46) , VER+4(54)}

13
(3)當左側 CU 及上方 CU,其中一個為角度模式,另一個為非角度模式時,將 MAX
設 定 為 該 角 度 模 式 的 值 ,MPM list = {Planar, DC, MAX, MAX-1, MAX+1,
MAX+2 }

(4)當左側 CU 及上方 CU 皆為角度模式且角度相同時,MPM list = {Planar, DC, Left,


Left-1, Left+1, Left-2}

(5)當左側 CU 及上方 CU 皆為角度模式,但為不同角度時,將 MAX 設定為兩個鄰


近 CU 中較大的角度模式,若兩個鄰近 CU 的角度差介於 2-62,則 MPM list =
{Planar, DC, Left, Above, MAX-1, MAX+1};否則,MPM list = {Planar, DC, Left,
Above, MAX-2, MAX+2}

在 VVC 中為了降低編碼的複雜度,使用了 3-stage 由粗到細的方法來遴選預測模


式:stage-1 也稱作 Rough Modes Decision (RMD),會對 HEVC 原有的 35 種角度模式計
算 HCost (Hadmard cost),如式(2.1)所示,並選擇 N 個擁有最小 HCost 的角度模式,其
中 N 值是根據當前區塊的長寬決定;在 stage-2,對 N 個模式的鄰近角度(±1)計算 HCost
並進行比較,選擇 HCost 較低的角度並對 N 個模式進行更新;在 stage-3,將 M 個 MPM
模式與 N 個模式進行合併並消除重複值,得到最終的預測模式候選列表,並透過式
(2.2)計算 RDCost,從候選列表中選取最佳的預測模式。

𝐻𝐶𝑜𝑠𝑡 = 𝐷𝑆𝐴𝑇𝐷 + 𝜆 ∗ 𝐵𝑖𝑡𝑚𝑜𝑑𝑒 (2.1)

𝑅𝐷𝐶𝑜𝑠𝑡 = SSD + 𝜆 ∗ 𝐵𝑖𝑡𝑚𝑜𝑑𝑒,𝑟𝑒𝑠𝑖𝑑𝑢𝑎𝑙 (2.2)

式(2.1)中的𝐷𝑆𝐴𝑇𝐷 為殘差值的 SATD(Sum of Absolute Transformed Difference),即將


殘差經哈達瑪變換後的殘差絕對值總和,為一種時域轉頻域的變化,並可一定程度反
映 bitrate 的大小;𝜆為拉格朗常日常數(Lagrangian Constant),為一種會隨量化參數
(Quantization Parameter, QP)變化的函數值;𝐵𝑖𝑡𝑚𝑜𝑑𝑒 為編碼當前模式所需的 bit 數。而在
式(2.2)中,SSD (Sum of Square Difference)為原始像素值和重建值相減後之平方和;
𝐵𝑖𝑡𝑚𝑜𝑑𝑒,𝑟𝑒𝑠𝑖𝑑𝑢𝑎𝑙 為編碼當前模式所有資訊所需要的的 bit 數。相較於𝑅𝐷𝐶𝑜𝑠𝑡,𝐻𝐶𝑜𝑠𝑡省
去了變換、量化、反量化、反變換以及熵編碼等過程,極大的降低了複雜度,為一種
能更簡單地計算失真代價的方法。
14
2.1.3.4 邊界濾波

對於特定幾種涉及邊界的預測模式,會執行進一步的濾波,使預測方向的紋理即
使存在較大變化,仍能保有邊界的連續性。越接近對角模式,第一列或第一行與相鄰
的參考像素之間的差距越大,所以需要與參考像素進行濾波,以減少邊界的不連貫
性:

(1) 對於模式 2,對目前區塊的第一列至第四列預測值進行濾波,因模式 2 為水平


預測,其預測值是根據左測參考像素所獲得的,為保持邊界方向的連貫性,令
其與上方參考列水平方向正偏移 2 的位置,按係數進行 2-tap 濾波,從上到下的
係數為[8,8],[12,4],[14,2],[15,1]。

(2) 對於模式 66,對目前區塊的第一行至第四行預測值進行濾波,因模式 66 為垂


直預測,其預測值是根據上方參考像素所獲得的,為保持邊界方向的連貫性,
令其與左側參考行垂直方向正偏移 2 的位置,按係數進行 2-tap 濾波,從左到右
的係數為[8,8],[12,4],[14,2],[15,1]。

(3) 對於水平模式 3-10,根據左側參考像素,對目前區塊的第一列進行 3-tap 濾波;


垂直模式 58-65,根據上方參考像素,對目前區塊的第一行進行 3-tap 濾波。根
據模式由小至大設定了 8 組濾波係數及正向偏移值,分別為{{12, 3, 1}, {12, 3,
1}, {12, 1, 3}, {12, 2, 2},{12, 2, 2}, {12, 3, 1},{8, 6, 2},{8, 7, 1}}及{{2, 3}, {2, 3},{1,
2},{1, 2},{1, 2},{1, 2},{1, 2},{1, 2}}。舉例來說,對於模式 64,其濾波係數為{8,
6, 2},偏移值為{1, 2},令目前區塊的的首地址為 pDst,參考樣本的首地址為
pSrc,y 為 整 數 值 為 且 介 於 0 至 目 前 區 塊 的 高 度-1, 則 pDst.at(0,y) =
(8*Pdst.at(0,y) + 6*pSrc.at(0,y+1+1) + 2*pSrc.at(0,y+2+1)+8)/16。

2.2 殘差網路(ResNet)介紹

2.2.1 ResNetV1

隨著網路深度加深,出現了因為梯度消失而導致準確率下降的現象,而 Kaiming
He 團隊提出的殘差網路(ResNet) [7],利用殘差結構(Building block)有效地解決了梯度
消失的問題,如圖 2-9 所示。其中曲線傳遞的部分為 Identity mapping,即公式中的 x

15
(input);直線傳遞部分為 Residual mapping,為公式中的 F(x),因為最後的輸出 y =
F(x)+x,即 F(x) = y-x,所以殘差指的就是 F(x)。

圖 2-9. 殘差結構(Building block)[7]

以下簡單說明 ResNet 的公式,式(2.3)為將殘差結構透過公式呈現,其中 𝑥𝑙+1 為


output, 𝑥𝑙 為 input, 𝑊𝑙 為 網 路 權 重 , F(𝑥𝑙 , 𝑊𝑙 ) 為 input 經 過 卷 積 層 後 的 結 果 , 即
residual。經過遞迴計算,對於 ResNet 中的 L 層(較深)及第 l 層(較淺)之間的關係,可由
式(2.4)表示。接著假設損失為 loss,在反向傳播時透過鏈鎖率可得在第 l 層的梯度,如
式(2.5)所示,可以看出因為 identity mapping 的關係,在進行反向傳播時始終保有一個
𝜕
“1”的值,而在一個 mini-batch 中,𝜕𝑥 ∑𝐿−1
𝑖=𝑙 𝐹(𝑥𝑙 , 𝑊𝑙 )的值不會一直為-1,因此 loss 的值
𝑙

不會輕易被抵銷,也就有效的避免了權重很小時梯度消失的問題。從另一個角度來
看,當網路效能已達到最佳但又繼續加深網路時,residual mapping 的值將趨近於 0 (反
向傳播時),只剩下 identity mapping 的 1,這樣網路的權重不會再做調整,一樣處於最
佳的狀態,因此即使網路加深,網路的效能也不會因此而下降。

𝑥𝑙+1 = 𝑥𝑙 + F(𝑥𝑙 , 𝑊𝑙 ) (2.3)

𝐿−1
𝑥𝐿 = 𝑥𝑙 + ∑ 𝐹(𝑥𝑙 , 𝑊𝑙 ) (2.4)
𝑖=𝑙

𝜕loss 𝜕loss 𝜕𝑥𝐿 𝜕loss 𝜕 𝐿−1


= ∗ = ∗ (1 + ∑ 𝐹(𝑥𝑙 , 𝑊𝑙 )) (2.5)
𝜕𝑥𝑙 𝜕𝑥𝐿 𝜕𝑥𝑙 𝜕𝑥𝐿 𝜕𝑥𝑙 𝑖=𝑙

16
ResNet 中提出了為兩種殘差結構,如圖 2-10 所示,左邊結構適用於淺層網路,如
ResNet34;右邊結構適用於深層網路,如 ResNet50/101/152。其中右邊結構又稱做
bottleneck block,目的是為了降低參數數量,先透過 1×1 的卷積將 256 channel 降維至
64 channel,執行 3×3 卷積後再透過 1×1 卷積恢復至原本維度。

(a) Building block (b) Bottleneck block

圖 2-10. ResNet 中的兩種殘差結構[7]

表 2-3 為 5 種常見的 ResNet 深度,分別為 18/34/50/101/152,而 ResNet 的網路架構


遵循兩種規則:

(1) 若 output size 的尺寸相同,則使用相同數量的 filter。

(2) 若 output size 尺寸減半,則 filter 的數量加倍,以維持每一層網路的時間複雜


度。

另外 ResNet 可分為 con1, conv2_x, conv3_x , conv4_x , conv5_x 等 5 個部分。

表 2-3. 常見 ResNet 網路架構[7]

17
2.2.2 ResNetV2

ResNetV2 [8]同樣由 Kaiming He 團隊提出,使用了跟 ResNetV1 相同的殘差概念,


但在 Identity branch 與 Residual branch 上做了一些更改,如圖 2-11 所示,其中圖 2-11(a)
為原始的 ResNetV1 架構,圖 2-11(e)為改進後的 ResNetV2 架構,表 2-4 為對應架構在
Cifar-10 上 的 錯 誤 分類 率(Classification error), 可 以 看出 圖 2-11(e)的 架 構, 不 論 在
ResNet-110 或 ResNet-164 都表現出最低的錯誤分類率。對於圖 2-11(c)的架構,因為將
ReLU 置於 Residual branch 的結尾,這會造成在正向傳遞時,Residual branch 的輸出恆
為非負,從而陷入單調遞增,降低了模型的表達能力;而對於圖 2-11(b)的架構,BN
層改變了 Identity branch 的分佈,破壞了式(2.3)的假設,也就使後續的公式無法成立,
造 成 模型 收 斂速 度 的下 降 ;而 圖 2-11(d)及 圖 2-11(e)的 差 別 在 於 BN 層 作 為 pre-
activation,發揮了正規化的功效。

圖 2-11. ResNet 架構及其他變形[8]

表 2-4. 不同 ResNet 架構在 Cifar-10 上的 Classification error (%)[8]

18
2.3 隨機森林(Random Forest)介紹

隨機森林[9]是一種集成學習(Ensemble Learning)的方法,它以決策樹 [10]為基本單


位,每顆決策樹都是一個弱分類器,且森林中的每顆樹都是獨立的。隨機森林蒐集了
每顆決策樹的分類結果,進而組成一個強分類器,並將投票次數最多的類別作為最終
的輸出結果。

2.3.1 決策樹單元

決策樹(Decision Tree)是一種樹狀結構(可為二分樹或非二分樹),在每個非葉節點
會進行特徵的測試,並以得到最大信息增益為原則(Information Gain, IG)選擇出分支,
最後在每個葉節點會存放一個類別。使用決策樹的過程如圖 2-12 所示,會從根節點開
始,對資料中的對應特徵屬性進行測試,並根據測試的條件選擇分支,直到到達葉節
點並將葉節點存放的類別作為決策結果。

(a) 決策過程樹狀圖 (b) 決策過程平面圖

圖 2-12. Decision Tree 的決策過程示意圖

2.3.2 資訊增益

資訊增益的公式如式(2.6)所示,其中𝐼𝐺(𝐷𝑝 , 𝑓)為獲得的資訊量,𝐼(𝐷𝑝 )為原本的資


𝑁
訊量,∑𝑚 𝑗
𝑗=1 𝑁 𝐼(𝐷𝑗 )為分割後的資訊量,m 為分支數目,𝑁𝑝 為原始的樣本數目,𝑁𝑖 為該
𝑝

分支的樣本數目。因為目標是獲得最大信息增益,對同一個非葉節點來說,原始的資
訊 量 是 固 定 的 , 因 此分 割 後 的 資 訊 量 要 越小 越 好 。 而 常 見 的 資訊 量 有 兩 種 : 熵
(Entropy) 式(2.7)以及 Gini 不純度(Gini Impurity) 式(2.8),其中 c 表示類別數目,𝑝(𝑖|𝑡)

19
表示樣本屬 i 類別的機率。

𝑚
𝑁𝑗
𝐼𝐺(𝐷𝑝 , 𝑓) = 𝐼(𝐷𝑝 ) − ∑ 𝐼(𝐷𝑗 ) (2.6)
𝑁𝑝
𝑗=1

𝐼𝐻 (𝑡) = − ∑ 𝑝(𝑖|𝑡)𝑙𝑜𝑔2 𝑝(𝑖|𝑡) (2.7)


𝑖=1

𝑐 𝑐

𝐼𝐺 (𝑡) = − ∑ 𝑝(𝑖|𝑡)(1 − 𝑝(𝑖|𝑡)) = 1 − ∑ 𝑝(𝑖|𝑡)2 (2.8)


𝑖=1 𝑖=1

假設對同一個非葉節點,有 a、b 兩種切割方式,如圖 2-13 所示,選擇使用熵判斷

信息量,則原始節點的信息量𝐼𝐻 (𝐷𝑝 ) = −(0.5log 2 0.5 + 0.5log 2 0.5) = 1;若採取 a 切割


1 1 2 2 2 2 1 1
方 式 , 𝐼𝐻 (𝐷𝑙𝑒𝑓𝑡 ) = − (3 log 2 3 + 3 log 2 3) = 0.92 , 𝐼𝐻 (𝐷𝑟𝑖𝑔ℎ𝑡 ) = − (3 log 2 3 + 3 log 2 3) =
30 30
0.92,因此 a 切割方式的信息增益IG𝐻,𝑎 = 1 − 60 0.92 − 60 0.92 =0.08;若採取 b 切割方
3 3 5 5 3 3 1 1
式 , 𝐼𝐻 (𝐷𝑙𝑒𝑓𝑡 ) = − (8 log 2 8 + 8 log 2 8) = 0.95 , 𝐼𝐻 (𝐷𝑟𝑖𝑔ℎ𝑡 ) = − (4 log 2 4 + 4 log 2 4) =
40 20
0.81,因此 b 切割方式的信息增益IG𝐻,𝑏 = 1 − 60 0.95 − 60 0.81 =0.097。因為 b 切割方

式的信息增益較高,因此會偏好 b 切割方式。

(a) 切割方式 a (b) 切割方式 b


圖 2-13. IG 算法示意圖

2.3.3 隨機森林

森林中的每棵樹按照以下規則生成:

(1) 若訓練集大小為 N,對每棵樹而言,隨機且有放回地從訓練集中的抽取 N 個

20
訓練樣本(這種採樣方法稱作 Bootstrap Sample),作為該樹的訓練集。因此可
以知道,每棵樹的訓練集都是不同的,且訓練集中包含重複的樣本。

(2) 如果每個樣本的特徵維度為 M,指定一個常數 m<<M,在非葉節點處隨機地


從 M 個特徵中選取 m 個特徵子集,並從這個特徵子集中選擇一個最優的特徵
作為劃分的依據。

(3) 每棵樹都能最大程度的生長,並且沒有剪枝過程。

因此可以知道,隨機森林採用了 “隨機抽樣”及“隨機選取特徵”,兩種隨機性的引
入,使得隨機森林不易出現過擬合,且具備很好的抗噪能力;而隨機森林的森林指的
是它將每棵決策樹的判斷結果蒐集起來,再根據每個結果的得票數給出一個最終的結
果。因此在隨機森林中,有兩個重要參數需要設定:一個是森林中應該包含幾棵樹,
通常較多的樹能讓模型有較好的性能,但也會需要更大的儲存空間及運算時間;另一
個是選取的特徵個數 m,縮小 m 會讓樹之間的相關性減弱,並讓單棵樹的分類能力下
降,反之亦然,因此通常會透過袋外錯誤率(Out of Bag Error)來選擇最優的 m。

OOB Error 為隨機森林中特有的交叉驗證方法,對於森林中的每棵樹,因為訓練集


是採用 bootstrap sample,所以會有一部分的訓練樣本沒有參與到第 k 棵樹的生成,將
這些樣本稱為第 k 棵樹的 oob 樣本。然後對每個樣本,計算它作為 oob 樣本的樹(訓練
時沒有採用此樣本的樹)對它的分類情形,並以簡單多數投票作為該樣本的分類結果,
最後以“錯誤分類數目”和“總樣本數目”的比例作為隨機森林的 OOB Error。因為 OOB
Error 的結果近似於需大量計算的 k-fold 交叉驗證,因此可以簡單透過 gird-search 的方
式,找到能使 OOB Error 最低的 m。

21
第三章 H.266/VVC 相關快速演算法介紹

VVC 作為新一代編碼標準,仍在不斷改進中,目前(2020.6)最新版本為 VTM 9.0,


而在開發期間也發表了 HEVC 及 VVC 的之間的過渡版本 JEM [11],以下針對幀內編碼
之編碼單元快速決策,挑選一篇機器學習演算法及兩篇深度學習演算法進行介紹。

3.1 傳統機器學習演算法

在文獻[12]中,利用決策樹(Decision Tree)進行劃分模式的選擇,如圖 3-1 上半部分


所示,總共對 CU 提取了 9 種特徵,其中包括 5 種 CU 的全局特徵(Global Texture
Information):CU 尺寸、平均梯度、最大梯度及水平/垂直方向的平均梯度;2 種局部特
徵(Local Texture Information):CU 上下區塊的紋理複雜度差異、CU 上左右區塊的紋理
複雜度差異(利用區域內的變異數作為衡量);2 種上下文資訊(Context Information):利
用鄰近 CU 的 QT 深度及 QTMT 深度,再與當前 CU 比較。

在全局特徵中,平均梯度及最大梯度可用於表示該區塊的紋理複雜度,複雜的紋
理區塊傾向於繼續向下劃分;對於四種 MT 劃分方式要使用水平劃分還是垂直劃分,
則與紋理方向有高度關聯性。在局部特徵中,上下/左右的紋理複雜度差異與 MT 劃分
中要使用水平劃分還是垂直劃分有高度關聯性。在上下文資訊中,若鄰近 CU 都具有
較大的 QT 深度或 QTMT 深度,則目前 CU 也有較大的可能性繼續向下劃分,反之則
較有機會提前終止。

在訓練過程中,利用剪枝來避免過擬合;而在預測時,只採用信心程度大於等於
90%的結果,否則則按照原本的編碼流程進行完整的 RDO 計算。另外注意到在文獻
[12]所提出的快速編碼流程中,會先對 QT 進行判斷,若判段結果為非 QT,則再對四
種 MT 進行平行判斷。

而在圖 3-1 下半部分則針對預測模式的選擇進行加速,作者觀察到約 71%的 CU 最


終還是會選擇存在於 MPM list 中的模式,因此可以省略 RMD 過程,只計算 MPM list
中每種模式的 HCost,並選擇具最低 HCost 的模式作為 Ms;接著對 Ms 的鄰近模式進行
搜尋,搜尋範圍為[Ms - 2, Ms + 2]並找到具最低 HCost 的模式 Md,最終只需對{DC,
PLANAR, Md}等三種模式進行完整的 RDO 計算。

22
而在實驗結果部分,若只對劃分方式進行加速,則 BDBR 增加 1.56%,並可節省
52.59%的編碼時間;若再加上預測模式的加速,則 BDBR 增加 1.93%,可節省 62.46%
的編碼時間。

圖 3-1. CU 快速編碼流程[12]

3.2 深度學習演算法

在文獻[13]中使用的編碼器為 JEM,因此對於 CU 的劃分採用 QTBT 架構[14],其


利用 CNN 模型去預測 32×32 大小的區塊中的最大深度(QTDepth*2+BTDepth*1),如圖
3-2 所示,並可分為紋理最平滑-紋理最複雜等 5 個 Label,接著為這五種 Label 設定對
應的深度範圍。最後在編碼時,只需要對深度範圍內的 subCUs 進行 RDO 計算,對於
不符合條件的 RDO 則可利用提前跳過(Early Skip)或提前終止(Early Terminate)來節省計

23
算時間。

圖 3-2. 預測最大深度之 CNN 模型[13]

另外在文獻[13]中也提及:越深的 BT 劃分會需要越高的 RDO 計算量。舉例來說,


在 MaxBtDepth=3, MinBtSize=4 的條件下,若父 QT 節點為 32×32 大小,則 BT 的 RDO
計算總次數𝐵𝑇𝑅𝐷𝑂_𝑛𝑢𝑚𝑏𝑒𝑟如式(3.1)所示:

𝐵𝑇𝑅𝐷𝑂_𝑛𝑢𝑚𝑏𝑒𝑟 = 2 × 2 + 2 × 2 × 4 + 2 × 2 × 4 × 4 = 84 (3.1)
BTDepth=1 BTDepth=2 BTDepth=3

因此,作者提出了 RD Maintaining 及 Low Complexity 兩種策略,並對應到不同的


深度範圍,如表 3-1 所示,並且在 Low Complexity 策略下的 MaxBtDepth=2。

表 3-1. Label 的對應深度範圍[13]


Label RD Maintaining Low Complexity
QTDepth=2, BTDepth=0-1 QTDepth=2, BTDepth=0-1
0
QTDepth=3, BTDepth=0 QTDepth=3, BTDepth=0
QTDepth=2, BTDepth=0-3 QTDepth=2, BTDepth=0-2
1
QTDepth=3, BTDepth=0-1 QTDepth=3, BTDepth=0
QTDepth=2, BTDepth=0-3 QTDepth=2, BTDepth=0-2
2
QTDepth=3, BTDepth=0-2 QTDepth=3, BTDepth=0-1
QTDepth=3, BTDepth=0-3 QTDepth=3, BTDepth=0-2
3
QTDepth=4, BTDepth=0-1 QTDepth=4, BTDepth=0-1
QTDepth=3, BTDepth=0-3 QTDepth=3, BTDepth=0-2
4
QTDepth=4, BTDepth=0-2 QTDepth=4, BTDepth=0-2

24
而實驗結果部分,若採取 RD Maintaining 策略,則 BDBR 僅增加 0.69%,可節省
42.33%的編碼時間;而若採取 Low Complexity 策略,則 BDBR 增加 2.04%,並可節省
62.08%的編碼時間。

而在文獻[15]的部分,則利用了 Shape-adaptive Pooling 的方式,使得 CNN 的輸入


可為多種尺寸的 CU,並將 QP、CU 的長及寬作為參數 concat 到最後的全連接層中,如
圖 3-3 所示,最後則輸出切/不切兩種 Label 的機率。在實驗結果部分,BDBR 增加
0.99%,可節省 33.41%的編碼時間,而文獻[15]的創新在於單一模型可套用於多種 QP
值及多種 CU 尺寸。

圖 3-3. 預測劃分與否之 CNN 模型[15]

25
第四章 H.266/VVC 編碼單位之快速演算法

在此章節將會先對 H.266/VVC 於幀內編碼中的 CU 劃分流程進行介紹,並提出可


以加速的部分,後續兩個小節則分別使用 CNN 預測 CU 的劃分深度,及使用 Random
Forest 預測 CU 的劃分模式,以達到加速劃分流程的目的。

4.1 H.266/VVC 於幀內編碼中的 CU 劃分流程

相較於 H.265/HEVC 編碼標準,H.266/VVC 在四分樹劃分(QT)的基礎下,加入了


二分樹劃分(BT)及三分樹劃分(TT),提供了更好的壓縮品質及編解碼效率,卻也使運
算複雜度隨之增加,編碼一支影片往往需要耗費數小時的時間。

為 了 做 到 壓 縮 品 質 的 最 佳 化 ,H.266/VVC 透 過 遞 迴 呼 叫 xCompressCU 及
xCheckModeSplit,遍歷所有可能的劃分模式。以 128×128 大小的 CTU 為例,64×64 大
小的的亮度塊會進行:幀內預測及四分樹等兩種劃分模式;32×32 大小的亮度塊會進
行:幀內預測、四分樹、水平二分樹、垂直二分樹、水平三分樹及垂直三分樹等六種
劃分模式。以這種方式劃分到最底層之後,再以 bottom-up 的方式比較各種劃分模式的
RDCost,最終決定整塊 CTU 的劃分方式。

綜上所述,H.266/VVC 以窮舉的方式計算出 CTU 最佳劃分方法;然而,若能提前


決定當前區塊的劃分深度及劃分模式,則能在保障低 RDCost 的同時,又能省去窮舉法
所花費的時間。因此本論文旨在利用原始影像(亮度)提供的訊息,預測當前區塊的劃
分深度及劃分模式,藉此達到加速編碼流程的效果:(1)對於 CU 的劃分深度,與當前
CU 的紋理複雜度有關,屬於電腦視覺能處理的範疇,因此選擇使用 CNN 作為分類
器;(2)對於 CU 的劃分模式,與當前 CU 及 subCUs 的紋理複雜度及紋理方向有關,能
蒐集到較多的資訊,並且為了降低計算成本,因此選擇 Random Forest 作為分類器。

4.2 H.266/VVC 之劃分深度快速決策

從前一節提到的 CU 劃分流程可知,若能提前得知目前編碼區塊的最大深度,在
處理不合適的深度時,可藉由提前跳過(Early Skip)省略 RDO 的計算;在達到劃分的最
大深度時,也能做到劃分的提前終止(Early Terminate)。透過提前跳過及提前終止這兩

26
種手段,可以加速編碼的流程。

4.2.1 劃分深度的分類

我們可以將預測區塊的最大深度視作一個多分類問題,並以 BTDepth 作為基礎的


劃分單位,這邊我們以圖 4-1 列舉的三種劃分模式進行說明。

(a) 二分樹劃分 (b) 四分樹劃分 (c) 三分樹劃分


圖 4-1. 劃分單位的選擇

圖 4-1(a) 執行了一次垂直二分樹劃分,因此可將每塊 subCU 的 BTDepth 視作 +1;


若單純以 subCU 的面積來衡量,圖 4-1 (b) 的四分樹劃分可以視作執行了兩次的二分樹
劃分(水平+垂直),因此可以將每塊 subCU 的 BTDepth 視作 +2;同樣地,以 subCU 的
面積來衡量,圖 4-1(c) 三分樹劃分的兩端 subCU,可以視作執行了兩次的二分樹劃
分,因此兩端 subCU 的 BTDepth 視作 +2;而中間 subCU 的面積等同於執行了一次二
分樹劃分,因此中間 subCU 的 BTDepth 視作 +1。

因為後續將使用 CNN 模型來預測區塊深度,考慮到 (1) 區域紋理的相關性;(2) 在


32×32 大小時加入了 MT 的劃分方法,這會導致後續劃分的 subCUs 尺寸不固定。因此
選擇 32×32 大小的亮度區塊作為模型的 input image,並將 32×32 大小區塊內的 subCUs
之深度,根據圖 4-1 所示的方法統一轉換為 BTDepth 表示,最後利用式(4.1)取得該區
塊的 class_depth。

𝑐𝑙𝑎𝑠𝑠_𝑑𝑒𝑝𝑡ℎ = 𝑚𝑎𝑥(𝐵𝑇𝐷𝑒𝑝𝑡ℎ𝑠𝑢𝑏𝐶𝑈𝑖 ) (4.1)

27
以圖 4-2 為例,每塊 subCU 上標示的數字為該 subCU 的 BTDepth,因為該區塊已
經劃分至 32×32 大小(兩次的四分樹劃分),所以該區塊具備初始的 BTDepth=4,透過
式(4.1)可獲得區塊內的 subCUs 的 BTDepth 的最大值。因此,區塊 a 的 class_depth 將會
是 6,區塊 b 的 class_dpeth 將會是 10。

(a) 區塊 a (b) 區塊 b
圖 4-2. 區塊的 class_depth

根據區塊內 subCUs 的 BTDepth 最大值的不同,可獲得 2、4、5、6、7、8、9、10


等 8 種不同的 class_depth,再透過表 4-1 將其轉換成訓練所需的 Label。

表 4-1. class_depth 與 Label 的轉換

4.2.2 Label 的分析

接著我們從 H.266/VVC 標準測試影片中選取了 8 支影片作為訓練影片(Training


Sequence),並使用 VTM 7.0 版本搭配 encoder_intra_vtm 的預設參數設定進行 QP22、
27、32、37 的編碼。為了避免 dataset 中存在過於相似的區塊,除了 Tango 外,每支影
片 按 照 時 間 軸 平 均 挑 選 11 張 frame 進 行 編 碼 。 而 因 為 Tango 的 解 析 度 為 4K
(4096×2160),每張 frame 可切割成 128×67 個 32×32 大小的區塊,為避免 dataset 中
Tango 的占比過大,只挑選 6 張 frame 進行編碼。詳情請參照表 4-2。

28
表 4-2. 訓練影片簡介
Total # coded
Sequence Resolution Frame #1 (Luma) Description Encoded frame #
frames frames

1, 61, 121,
Tango 4096x2160 294 moderate motion 6
181, 241, 294

1, 16, 31, 46,


Traffic 2560x1600 150 large local motion 11 61, 76, 91, 106,
121, 136, 150

1, 51, 101, 151,


201, 251, 301,
Basketballdrive 1920x1080 500 large motion 11
351, 401, 451,
500

1, 51, 101, 151,


201, 251, 301,
Cactus 1920x1080 500 rich texture 11
351, 401, 451,
500

1, 61, 121, 181,


smooth 241, 301, 361,
Johnny 1280x720 600 11
background 421, 481, 541,
600

1, 61, 121, 181,


241, 301, 361,
Bqmall 832x480 600 large local motion 11
421, 481, 541,
600

1, 31, 61, 91,


121, 151, 181,
Keiba 832x480 300 large motion 11
211, 241, 271,
300

1, 51, 101, 151,


201, 251, 301,
Partyscene 832x480 500 rich texture 11
351, 401, 451,
500

29
表 4-3. 不同 QP 下的亮度區塊及對應 Label

Label
QP Sequence
0 1 2 3 4 5 6 7

Tango

Traffic
22
Basketballdrive

Keiba

Tango

Traffic
27
Basketballdrive

Keiba

Tango

Traffic
32
Basketballdrive

Keiba

Tango

Traffic
37
Basketballdrive

Keiba

從表 4-3 可以看出,紋理平滑的亮度區塊,會對應到較小的 Label;而紋理複雜的


亮度區塊,則會對應到較大的 Label 。這也說明了 Label 可以用於表示亮度區塊的紋理
複雜程度,從 Label 0 到 Label 7 分別是紋理最平滑到紋理最複雜。另外與ㄧ般分類任
務不同的是,Label 之間是互有關聯的,如 Label 3 會與 Label 4 及 Label 5 較接近,而
與 Label 0 和 Label 7 較為遙遠。

30
表 4-4. 訓練影片中 Label 的分布情形
單位 (%)
四捨五入至小數第一位
Label
Sequence Class QP
0 1 2 3 4 5 6 7
22 9.8 24.0 14.2 11.3 15.9 16.7 6.7 1.4
Tango 27 32.1 34.3 13.7 8.9 6.5 3.8 0.7 0.1
A1
4096x2160 32 40.7 31.1 12.0 8.2 5.2 2.5 0.4 0.0
37 52.1 30.1 10.4 4.8 2.0 0.6 0.0 0.0
22 0.6 10.2 4.9 5.5 10.7 16.9 20.6 30.7
Traffic 27 1.6 10.2 7.1 7.6 15.4 22.0 20.1 16.1
A
2560x1600 32 3.1 11.4 6.6 8.1 18.6 27.0 17.9 7.2
37 8.9 17.5 11.5 11.6 19.6 21.0 8.4 1.5
22 4.5 16.0 6.1 7.7 19.5 17.0 12.5 16.7
Basketballdrive 27 9.0 15.6 11.0 11.5 22.7 13.1 8.8 8.4
B
1920x1080 32 14.8 18.2 10.9 11.3 19.7 13.1 7.5 4.7
37 27.1 24.9 12.8 10.4 11.9 7.6 3.6 1.7
22 7.4 14.3 6.1 6.0 10.8 10.3 13.4 31.7
Cactus 27 10.6 15.2 8.6 6.7 13.6 13.2 13.4 18.7
B
1920x1080 32 9.6 16.2 8.6 8.0 13.8 19.2 13.9 10.7
37 16.7 23.8 12.4 9.2 12.7 13.3 7.3 4.5
22 43.6 16.5 3.5 3.4 6.5 6.9 7.1 12.5
Johnny 27 46.1 13.4 3.8 4.8 7.3 8.5 7.6 8.6
E
1280x720 32 43.1 14.0 4.1 4.6 9.2 10.9 8.3 5.8
37 48.1 17.1 6.5 4.9 8.5 8.6 4.8 1.4
22 1.7 7.8 3.2 3.2 6.4 12.1 17.0 48.6
Bqmall 27 3.4 8.0 3.5 3.5 9.7 15.0 20.4 36.5
C
832x480 32 4.8 7.3 3.5 4.5 12.8 20.5 22.5 24.1
37 7.6 12.5 6.0 6.9 16.6 22.2 16.2 12.1
22 17.5 10.6 3.2 3.2 8.6 15.3 21.5 20.1
Keiba 27 21.9 13.2 4.7 4.3 11.5 18.1 14.6 11.8
C
832x480 32 19.4 13.3 4.9 5.8 16.2 19.8 13.3 7.3
37 24.9 19.5 9.0 7.7 15.8 12.8 7.1 3.3
22 0.0 0.6 0.2 0.6 1.3 1.5 9.8 86.1
Partyscene 27 0.0 0.5 0.3 0.9 2.4 4.6 14.1 77.3
C
832x480 32 0.0 0.7 0.3 0.8 5.0 11.4 21.7 60.0
37 0.0 1.6 1.7 2.0 10.5 19.9 23.1 41.2

表 4-4 為 Label 在不同訓練影片及不同 QP 下的分布情形,可以看出並非每個區塊


都屬於 Label7,也就是說雖然 CTU 在編碼時會先劃分到最底層,但最終並不一定會選
擇深度最大的劃分方式,因此可以透過設定深度範圍的方式,避免掉不必要的 RDO 計
算。另外,可以觀察出 QP 值與 Label 間有很強的關聯性,當 QP 增大的時候,小 Label
的比例增加而大 Label 的比例減少。舉例來說,當 QP 從 22 增加到 37,Tango 中 Label
0 的比例從 9.8 增加到 52.1,而 Label 7 的比例從 1.4 降為 0。因此在訓練 CNN 模型的
時候,也需要考慮到 QP 值對訓練資料的影響。而當影像解析度提高的時候,一個
32×32 大小的亮度區塊所包含的空間訊息量會降低,也就是紋理更趨向平滑。因此使
用 4K 影像進行編碼,可以快速的取得大量訓練資料,但如果沒有對訓練資料加以整
理,容易使得訓練資料中小 Label 的佔比量過大。

31
4.2.3 訓練資料的蒐集

訓練資料的部分,使用了如表 4-2 所示的訓練影片,將幀切割成數個 32×32 大小


的亮度區塊, 如圖 4-3 所示,而因為邊界區域使用特殊的劃分規則,因此對邊界無法
整除的部分則不加入訓練資料。另外為了讓 Label 之間的區別能更明顯,編碼時若最佳
劃分模式(optimal) 與次佳劃分模式(sub-optimal) 之間的∆𝑅𝐷𝐶𝑜𝑠𝑡 ≤ 0.005, 如式(4.2)所
示,表示對於目前這個影像區塊,兩種劃分模式的 RDCost 差別甚小,而對 CNN 模型
來說,這種微小的差別是難以辨認出來的,反而會造成訓練時的收斂困難[16],因此
先將此類型的 subCU 標註起來。而在一個 32×32 大小的亮度區塊中,若 BTDepth 最深
的 subCUs 都恰好被標註過,則棄用這個亮度區塊。

𝑅𝐷𝐶𝑜𝑠𝑡𝑜𝑝𝑡 − 𝑅𝐷𝐶𝑜𝑠𝑡𝑠𝑢𝑏
∆𝑅𝐷𝐶𝑜𝑠𝑡 = | | ≤ 0.005 (4.2)
𝑅𝐷𝐶𝑜𝑠𝑡𝑜𝑝𝑡 + 𝑅𝐷𝐶𝑜𝑠𝑡𝑠𝑢𝑏

圖 4-3. 畫面的切割示意圖
為了進一步消除離群值(Outlier),使用了梯度變異數(Gradient Variance, GV) [17]來
量化 32×32 大小亮度區塊的紋理複雜程度,如式(4.3)所示。其中使用到了如圖 4-4 所
示的 Sobel 濾波器來計算亮度區塊中的每一個像素點(Pi,j)的水平梯度(Gxi,j)及垂直梯度
(Gyi,j),GRADi,j 為梯度振幅,如式(4.4)所示。μ為該亮度區塊內梯度的平均值,如式
(4.5)所示。Sobel 濾波器多用於測邊,影像經過 Sobel 濾波器之後邊線紋理將變得明
顯,如圖 4-5 所示。

32
31 31
1
𝐺𝑉 = ∑ ∑(𝐺𝑅𝐴𝐷𝑖,𝑗 − 𝜇)2 (4.3)
32 × 32
𝑖=0 𝑗=0

𝐺𝑅𝐴𝐷𝑖.𝑗 = |𝐺𝑥𝑖,𝑗 | + |𝐺𝑦𝑖,𝑗 | (4.4)

31 31
1
μ= ∑ ∑ 𝐺𝑅𝐴𝐷𝑖,𝑗 (4.5)
32 × 32
𝑖=0 𝑗=0

Gx Gy
1 0 -1 1 2 1

2 0 -2 0 0 0

1 0 -1 -1 -2 -1

(a) 水平方向
(a) 水平方向 (b) 垂直方向

圖 4-4. Sobel 運算子

圖 4-5. 畫面經過 Sobel 濾波器後的輸出結果

然後對於各個 Label 內的亮度區塊,按照 GV 由小到大進行排序,並移除前 5%及


後 5%有較大機會屬於 outlier 的亮度區塊,詳細結果如表 4-5 所示。

33
表 4-5. 各 Label 的 GV 範圍 (以 QP27 為例)
GV (original) GV (after outlier removal)
Label
min max min max
0 0 2117.663 0.523 44.949
1 0 3825.594 1.1 218.415
2 0.149 4302.669 4.198 520.737
3 0.557 4472.321 10.457 878.245
4 3.223 5706.859 27.923 1589.519
5 2.724 6304.312 51.722 2220.079
6 13.032 7106.14 169.472 3325.74
7 46.372 9264.33 621.309 4784.056

最後得到的訓練資料數目如表 4-6 所示,紅字表示該 QP 值中樣本數目最多的


Label,綠字表示該 QP 值中樣本數目最少的 Label。可以觀察出各 Label 的樣本數目並
不平衡,這種不平衡會造成 CNN 模型在執行反向傳播時,對於樣本數目佔比多的
Label 頻繁地調整參數的權重,而忽略樣本數目佔比少的 Label,最後導致 CNN 模型對
於樣本數目佔比多的 Label 辨識度高,而對樣本數目佔比少的 Label 卻幾乎無法辨識。

表 4-6. 各 QP 值中 Label 的分布情形

Label
QP
0 1 2 3 4 5 6 7
22 6402 10309 4235 3608 6498 7077 7504 14406
27 15840 17126 8112 6155 9418 8818 7591 9400
32 25902 23078 10641 7757 10442 10199 7090 5508
37 37112 27515 12299 8461 10547 9582 4675 2516

34
為了避免這種狀況,對於樣本數目不足的 Label,再從 Ultra Video Group (UVG)[18]
這個資料庫中選取 6 支 4K 影片進行編碼,詳情請參照表 4-7。另外值得注意的是,通
常 4K 測試影片的 bit-depth 為 10,也就是灰階影像的像素值最高為 210-1,因此在處理
bit-dpeth 為 10 的影像時,需要先將像素值右移 2 個位元再加入訓練資料集,以配合其
它 bit-depth 為 8 的影像。

表 4-7. UVG 訓練影片簡介


Total # coded
Sequence Resolution Frame #1 (Luma) Encoded frame #
frames frames

1, 121, 241,
Bosphorus 3840x2160 600 6
361, 481, 600

1, 121, 241,
HoneyBee 3840x2160 600 6
361, 481, 600

1, 121, 241,
Jockey 3840x2160 600 6
361, 481, 600

1, 121, 241,
ReadySetGo 3840x2160 600 6
361, 481, 600

1, 61, 121,
ShakeNDry 3840x2160 300 6
181, 241, 300

1, 121, 241,
YachtRide 3840x2160 600 6
361, 481, 600

35
表 4-8. 加入 UVG dataset 之後,各 QP 值中 Label 的分布情形
Label
QP
0 1 2 3 4 5 6 7
22 14246 14244 13247 10433 13449 14342 14283 14406
27 17257 17126 17151 15365 17183 16695 13911 15351
32 25902 25769 25799 17767 19712 19096 12800 8979
37 37112 27515 27064 17836 19025 17795 9008 3995

從表 4-8 可以觀察到,各 QP 值的 Label 分布變得較為平均,如 QP27 時 Label1 及


Label3 的比例,從原本的 20.8:7.5 改善為 13.2:11.8;而在 QP37 時 Label0 及 Label7
比例,從 32.9:2.2 改善為 23.3:2.5,雖然有所改善,但比例仍然懸殊。對於這種狀
況,則透過在訓練時設置 class_weight,藉由設定 loss 的加權,讓比例較低的類別在進
行反向傳播時,對神經網路的權重有較大的影響力。

最後,蒐集到的亮度區塊再依照 8:2 的比例切割成訓練資料集(Training Set)及驗證


資料集(Validation Set)。因為 QTMT 的架構牽涉到當前區塊的紋理及鄰近 CU 的劃分結
果,貿然使用資料增強(Data Augmentation)的話,會造成 Label 的錯誤標示,導致 CNN
模型無法收斂,因此訓練時沒有使用 flipping, scaling, rotation 這些常見的 augmentation
技巧。

36
4.2.4 CNN 的架構與訓練

4.2.4.1 CNN 模型架構


因為圖像的輸入尺寸僅為 32×32×1,若使用大型的模型架構,例如 inception、
inception_resnet,容易造成過擬合(Overfitting)且會使得多數參數都是冗余的。因此這
邊選用了 Resnet-base 的架構,且因模型目標為判斷區塊中的紋理複雜度,不像其它辨
識任務需要高階的影像特徵,因此層數不需要疊得很深,總共的參數量僅為 181424,
屬於輕量級的架構,可以快速地進行預測(Inference),詳細架構如圖 4-6 所示。

圖 4-6. 本論文提出之 CNN 模型基本架構

從圖 4-6 可以看出,模型的輸入分別是 32×32×1 的灰階影像及對應劃分深度的的


QP 值,注意到這兩個輸入都需要先進行 MinMaxSacling 前處理,將值限縮在 0-1 之
間,以加速模型的收斂;在模型的前半部分,先進行了 mean removal,這個動作會讓
模型在訓練時的結果更為穩定,接著使用 ResNetV2 的經典架構,進行連續且多次的
BN-Relu-3×3Conv.來抽取影像特徵,並在 stage 結束之後,加入 dropout 來避免過擬
合,其中 droprate 設定為 0.2。而在模型的後半段,則使用到最後兩個層級的影像特
徵,將 stage2 及 stage3 的輸出做 Global Average Pooling 並進行 concat,會輸出 96 個
node (根據 feature map 數量,其中 32 個 node 為 stage2 所貢獻,64 個 node 為 stage3 所
貢獻),一樣進行 droprate 為 0.2 的 dropout,再將 QP 值進行 concat;經過第一層 FC 之
37
後會輸出 48 個 node,接著再次進行 QP 值的 concat,然後經過第二層 FC,最終會輸出
8 個 output,代表 8 種類別的可能性,並選擇可能性最高的類別作為最終的輸出結果。

4.2.4.2 損失函數的選擇
大部分深度學習的分類任務都是使用 softmax + cross-entropy 作為損失函數(Loss
Function)。而為了讓類別之間可以更明顯的區別開來,這邊再加入了 center-loss [19]進
行聯合訓練,center-loss 為每個類別提供了一個類別中心,並且會最小化 mini-batch 中
樣本與對應類別中心的距離,進而使類內距離更為收斂。下方圖 4-7 (a) 為手寫數字辨
識 mnist 使用 cross-entropy 作為損失函數的訓練結果,而圖 4-7 (b) 為使用 cross-entropy
+ center-loss 作為損失函數的訓練結果,可以看出加入 center-loss 縮短了類內的距離。

(a) cross-entropy (b) cross-entropy + center-loss

圖 4-7 mnist 使用不同損失函數的訓練結果示意圖 [20]

式(4.6)為 center-loss 的計算方式,其中 xi 為樣本經過第一層 FC 之後的輸出,cyi 為


batch 內每個樣本的對應類別中心,在 keras 中可以透過 embedding 層模擬出與 xi 相同維
度的類別中心,m 為 batch 大小。

𝑚
1 2
𝐿𝐶 = ∑‖𝑥𝑖 − 𝑐𝑦𝑖 ‖2 (4.6)
2
𝑖=1

式(4.7)為完整 loss 的計算方式,其中𝐿𝑆 為 cross-entropy loss,𝐿𝐶 為 center-loss,m 為


batch 大小,因此下標 i 代表 batch 中的第 i 個樣本;n 為類別數目,因此下標 j 代表第 j

個類別,而 log 內是 softmax function 的結果,λ為 loss 的權重。概括的說,𝐿𝑆 負責拉


開不同類別之間的距離,而𝐿𝐶 負責縮小同一類之間的距離,加入 center-loss 後的模型
架構如圖 4-8 所示,其中 center-loss 的 input 為亮度區塊的 true_label。
38
𝐿 = 𝐿𝑆 + λ𝐿𝐶

𝑚 𝑇 𝑚
𝑒 𝑊𝑦𝑖 𝑥𝑖 +𝑦𝑖 𝜆 2
= − ∑ 𝑙𝑜𝑔 𝑇 + ∑‖𝑥𝑖 − 𝑐𝑦𝑖 ‖2 (4.7)
𝑖=1 ∑𝑛𝑗=1 𝑒 𝑊𝑗 +𝑏𝑗 2𝑖=1

圖 4-8. 加入 center-loss 後之模型架構

4.2.4.3 模型的訓練
訓練的部分使用了 tensorflow_keras [21]作為框架,其中 3×3 Convolution 使用了
he_normal 進 行 初 始 化 , 並 在 每 次 的 3 × 3 Convolution 中 加 入 值 為 0.0001 的
l2_regularization 避 免 過 擬 合 ;Callback 的 部 分 使 用 了 ReduceLROnPlateau 及
EarlyStopping,ReduceLROnPlateau 會在驗證集準確率無法再提升時,調降 lr 的值試圖
找到 global minimum,而 EarlyStopping 會在驗證集準確率無法再提升時,及時終止訓
練以避免過擬合。在 label 的部分則加入了 label smoothing 的技巧,如式(4.8)所示,
label 由原本的 yk 轉化為y𝑘𝐿𝑆 ,其中 K 為類別數,𝛼為超參數,yk 在 k 為正確類別時為
1,其餘時候為 0。可以看出 label 由原本極端的 one-hot encoding 轉化為較為平滑的形
式,其作用相當於在真實分布中加入噪聲,並減少 true_label 在計算 loss 時的權重,進
而避免過擬合。label smoothing 下的 cross-entropy 如式(4.9)所示,其中𝑝𝑡 為正確類別對
應的輸出機率,𝑝𝑖 為非正確類別對應的輸出機率。

39
𝛼
y𝑘𝐿𝑆 = 𝑦𝑘 (1 − 𝛼) + , 𝑦𝑘 ∈ {0,1} (4.8)
𝐾

𝐻(𝑦, 𝑝) = ∑ −𝑦𝑘 log(𝑝𝑘 )


𝑘=1

𝛼 𝛼
= − (1 − 𝛼 + ) log𝑝𝑡 − ∑ 𝑙𝑜𝑔𝑝𝑖 (4.9)
𝐾 𝐾
𝑖≠𝑡

為了降低訓練難度,將模型分為兩個階段進行訓練:第一階段僅使用 QP27 的樣
本,優化器則選用了 Adam [22],並設定初始 learning_rate 為 0.001,batch_size 為 100,

λ值為 0.2,並且藉由 EarlyStopping 來中止訓練;第一階段的訓練完成後,模型的參數


趨於穩定(類似 pre-trained model 的概念),此時再使用完整 4 種 QP 的訓練集進行第二
階段的訓練,並將 learning_rate 調降為 0.0005,僅對模型的參數進行微調,其他超參數
皆不變,一樣藉由 EarlyStopping 來中止訓練,最終模型的準確率為 55.17%,混淆矩陣
如圖 4-9 所示。

圖 4-9. 模型的混淆矩陣

40
因 Label 又代表著亮度區塊的紋理複雜度,從圖 4-9 的混淆矩陣可以進一步看出,
Label 之間是存在關聯性的,如一個正確預測值為 3 的亮度區塊,模型容易將它誤判成
Label 2 或 Label 4,而不易將其誤判成其他相差更遠的 Label。而從表 4-3 可以看出,即
使使用人眼去觀測,鄰近 Label 間的亮度區塊也不易區分,因此使用 Class Activation
Map (CAM)[23]的技術,來確認模型是根據甚麼影像特徵做出判斷,結果如圖 4-10 所
示,最上排為原始亮度區塊,中間為套用 CAM 之後的熱像圖,區塊愈白表示模型對此
區塊愈加敏感,最下排為將原始亮度區塊與熱像圖疊加後的結果。從疊加後的結果可
以看出,對於較為複雜的影像區塊,模型多聚焦在影像特徵變化快速的區域。至此,
可以確認模型具備判斷亮度區塊複雜度的能力。

圖 4-10. Class Activation Map (CAM) 在不同 patch 上的結果

41
4.2.5 應用 CNN 之劃分深度快速決策

劃分深度快速決策的演算法如圖 4-11 所示,依照長寬將畫面切割成 32×32 大小的


亮度區塊,邊緣無法囊括的部分,則按照原本的編碼流程進行處理,再將切割好的亮
度區塊交由 CNN 進行分類。根據分類結果,可得到此亮度區塊的深度範圍,如表 4-9
所示,然後在這個深度範圍內,依照原本編碼的窮舉法找到能最小化 RDCost 的劃分方
式。詳細如下:

1. 在 128×128 大小的 CTU 階段,根據預設的 config,一定會執行四分樹劃分至


64×64 大小的 CU。

2. 在 64×64 大小的 CU 階段,若 4 塊 32×32 大小的亮度區塊的分類結果皆為 0,


則在計算完 RDCost 之後,在這個階段提前終止。

3. 對於 32×32 大小的 CU 或是此 CU 的 subCUs,則將 CNN 的分類結果對應到表


4-9 的深度範圍 (根據式(4.1)的 class_depth 歸納而成),只執行此深度範圍內的
RDCost 計算,對於不在此深範圍內的劃分選項,則透過 early skip 或 early
terminate 等手段省略 RDCost 的計算,進而達到加速編碼流程的效果。舉例來
說,當亮度區塊被分類成 label=3,則它的深度範圍為 QTDepth=2, BTDepth=0-2
及 QTDepth=3, BTDepth=0,也就是說對於 QTDepth=4 及後續的 MT 劃分,因不
在設定的深度範圍內,可藉由提前跳過(early skip)省略掉 RDCost 的計算;而在
QTDepth=2, BTDepth=2 及 QTDepth=3, BTDepth=0 時,因為已達深度範圍的最
大值,不需再向下劃分至更小的 subCUs,因此可藉由提前終止 (early terminate)
省略後續的 RDO 流程。

42
Offline inference

圖 4-11. 本論文提出之深度快速決策演算法流程圖

43
表 4-9. Label 及對應深度範圍

Label Depth Range

0 QTDepth=2, BTDepth=0

1 QTDepth=2, BTDepth=0

2 QTDepth=2, BTDepth=0-1

QTDepth=2, BTDepth=0-2
3
QTDepth=3, BTDepth=0

QTDepth=2, BTDepth=0-3
4
QTDepth=3, BTDepth=0-1

QTDepth=2, BTDepth=0-4
5 QTDepth=3, BTDepth=0-2
QTDepth=4, BTDepth=0
QTDepth=2, BTDepth=0-5
6 QTDepth=3, BTDepth=0-3
QTDepth=4, BTDepth=0-1

QTDepth=3, BTDepth=0-4
7
QTDepth=4, BTDepth=0-2

4.3 H.266/VVC 之劃分模式快速決策

QTMT 架構在編碼 32×32 大小的 CU,會分別嘗試四分樹劃分(QT)、水平二分樹劃


分(HBT)、垂直二分樹劃分(VBT)、水平三分樹劃分(HTT)、垂直三分樹劃分(VBT)及
幀內預測(NOT SPLIT)等六種模式,如下圖 4-12 所示(三分樹的劃分比例為 1:2:1),並
且會向下劃分至許可範圍內最小的 subCU,再透過比較同一個劃分層級的 RDCost,選
取能使 RDCost 最小的劃分模式。這個遞迴劃分的過程能讓找到的劃分模式擁有優異的
壓縮品質,卻也讓時間複雜度大幅提升。從上面的敘述可以發現,雖然六種劃分模式
都有嘗試過,但最後只會選擇一種能最小化 RDCost 的劃分模式,因此若能在 CU 為
32×32 大小時,根據影像紋理(Raw Data)給予的資訊,率先排除掉較沒有機會被選中的

44
劃分模式,就能在降低時間複雜度的同時,又能保有良好的壓縮品質。

圖 4-12. CU 在 32×32 大小時的 6 種劃分模式

4.3.1 分類器的架構

基於前述原因,我們希望能設計一個多標籤的分類器(Multi-label Classification),
將有機會被選中的劃分模式標示為 1,沒有機會被選中的劃分模式標示為 0。然而隨機
森林(Random Forest)本身並沒有支援多標籤的功能,鑒於隨機森林本身的訓練成本及
計算成本較低,我們將多標籤分類器簡化為 6 個二元分類器,如圖 4-13 所示,其中輸
入為 32×32 大小的亮度區塊,輸出為由 6 個 0/1 組成的整數串。

圖 4-13. 本論文提出之使用隨機森林模擬多標籤分類器之架構

45
4.3.1 劃分模式的分析

圖 4-14 為 Keiba frame#1 在 QP 27 時對於亮度的劃分結果(這邊背景使用 RGB 圖較


易辨識),可以觀察到對於交接處紋理較為複雜的區域,則多選擇使用四分樹劃分(黃
框處);對於紋理幾乎沒有變化的區域,則不再向下劃分(綠框處)。對於橫向的欄杆,
多選擇使用水平方向的劃分方式(紫框處);而對於直向的樹影,多選擇使用垂直方向
的劃分方式(藍框處)。而從圖 4-14 (a) 可以看出,當上下區塊的紋理有明顯差異時,傾
向於使用水平二分樹劃分(藍框處);而當中間區塊的紋理,與上下區塊的紋理有明顯
差異時,傾向於使用水平三分樹劃分(紅框處)。同理,從圖 4-14 (b) 可以看出,當左右
區塊的紋理有明顯差異時,傾向於使用垂直二分樹劃分(藍框處);而當中間區塊的紋
理,與左右區塊的紋理有明顯差異時,傾向於使用垂直三分樹劃分(紅框處)。

而從表 4-10 為可以觀察出,隨著 QP 增加,選擇四分樹劃分的比例減少,而不劃


分的比例增大,舉例來說,當 QP 從 22 提升到 37,選擇四分樹劃分的比例,從 25.29
下降到 9.52;而選擇不再向下劃分的比例則從 20.63 上升到 41.24,其他劃分模式的比
例則沒有明顯變化。

因此可以歸納出:

(1) 劃分模式選擇與紋理複雜度相關。

(2) 劃分模式選擇與紋理方向相關。

(3) 劃分模式與區塊內的紋理分布相關。

(4) 劃分模式的選擇與 QP 值相關。

46
圖 4-14. Keiba frame#1 在 QP 27 時的亮度劃分結果

表 4-10. 亮度區塊為 32×32 大小時,QP 值與相應劃分模式比例

47
4.3.2 特徵值的選擇

從 4.3.1 節的最終歸納,我們一共列舉出 11 種特徵值,如下面所述:

(1) 根 據 區 塊 內 的 紋 理 複 雜 度 , 使 用 了 GradientVariance、GradientMean、
GradientMax、Depth 等 4 種特徵值,其中 GradientVariance 為 4.2.3 節中的式
(4.3),用以代表該亮度區塊之紋理複雜度;GradientMean 為 4.2.3 節中的式
(4.5),為該亮度區塊之梯度平均值;GradientMax 為下方式(4.10),為該亮度
區塊之梯度最大值,其中 i,j 代表區塊中的像素點的座標;而 Depth 為 4.2 節中
深度模型的預測結果,其中𝑦𝑛 為模型的最終輸出,如式(4.11)所示。

𝐺𝑟𝑎𝑑𝑖𝑒𝑛𝑡𝑀𝑎𝑥 = 𝑚𝑎𝑥(𝐺𝑅𝐴𝐷𝑖,𝑗 ), 𝑖, 𝑗 ∈ {0,1, … ,31} (4.10)

𝐷𝑒𝑝𝑡ℎ = 𝑎𝑟𝑔 𝑚𝑎𝑥(𝑦𝑛 ), 𝑛 ∈ {0,1, … ,7} (4.11)

(2) 根據區塊內的紋理方向,使用了 GradX、GradY 等 2 種特徵值,其中 GradX


為水平方向梯度絕對值的加總,如式(4.12)所示;GradY 為垂直方向梯度絕對
值的加總,如式(4.13)所示。

31 31

𝐺𝑟𝑎𝑑𝑋 = ∑ ∑|𝐺𝑥𝑖,𝑗 | (4.12)


𝑖=0 𝑗=0

31 31

𝐺𝑟𝑎𝑑𝑌 = ∑ ∑|𝐺𝑦𝑖,𝑗 | (4.13)


𝑖=0 𝑗=0

(3) 根 據 區 塊 內 的 紋 理 分 布 , 使 用 了 VARQUA、VARUB、VARLR、VARMUB、
VARMLR 等 5 種特徵值,其中 VARQUA 為 CU 經過四分樹劃分後,四塊 subCUs
變異數加總的平均,如圖 4-15 及式(4.14)所示;VARUB 為 CU 經過水平二分樹
劃分後,上下兩塊 subCUs 變異數差值的絕對值,如圖 4-16(a)及式(4.15)所
示;VARLR 為 CU 經過垂直二分樹劃分後,左右兩塊 subCUs 變異數差值的絕
對值,如圖 4-16(b)及式(4.15)所示;VARMUB 為 CU 經過水平三分樹劃分後,
中間及上面兩塊 subCUs 變異數差值的絕對值再加上中間及下面兩塊 subCUs
變異數差值的絕對值,如圖 4-17(a)及式(4.16)所示;VARMLR 為 CU 經過垂直
48
三分樹劃分後,中間及左邊兩塊 subCUs 變異數差值的絕對值再加上中間及右
邊兩塊 subCUs 變異數差值的絕對值,如圖 4-17(b)及式(4.16)所示。

3
1
𝑉𝐴𝑅𝑄𝑈𝐴 = ∑ 𝑉𝑎𝑟𝑖𝑒𝑛𝑐𝑒𝑠𝑢𝑏𝐶𝑈𝑖 (4.14)
4
𝑖=0

𝑉𝐴𝑅𝑈𝐵 = 𝑉𝐴𝑅𝐿𝑅 = |𝑉𝑎𝑟𝑖𝑒𝑛𝑐𝑒𝑠𝑢𝑏𝐶𝑈0 − 𝑉𝑎𝑟𝑖𝑒𝑛𝑐𝑒𝑠𝑢𝑏𝐶𝑈1 | (4.15)

𝑉𝐴𝑅𝑀𝑈𝐵 = 𝑉𝐴𝑅𝑀𝐿𝑅 = |𝑉𝑎𝑟𝑖𝑒𝑛𝑐𝑒𝑠𝑢𝑏𝐶𝑈1 − 𝑉𝑎𝑟𝑖𝑒𝑛𝑐𝑒𝑠𝑢𝑏𝐶𝑈0 | +

|𝑉𝑎𝑟𝑖𝑒𝑛𝑐𝑒𝑠𝑢𝑏𝐶𝑈1 − 𝑉𝑎𝑟𝑖𝑒𝑛𝑐𝑒𝑠𝑢𝑏𝐶𝑈2 | (4.16)

圖 4-15. VARQUA 示意圖

圖 4-16. VARUB 及 VARLR 示意圖

圖 4-17. VARMUB 及 VARMLR 示意圖

49
4.3.3 RandomForest 的訓練

4.3.3.1 訓練資料的蒐集
訓練資料的部分,使用了表 4-2 及表 4-7 所提及的 14 支訓練影片,並分成 22、
27、32、37 等 4 種 QP 值。一樣先將畫面切割成數個 32×32 大小的亮度區塊,再進行
上一小節 11 種特徵值的提取,接著依照 8:2 的比例分成訓練集及驗證集。測試集的
部 分 則 使 用 了 catrobot、daylightroad、trafficflow、drums、bqterrace、kimono、
parkscene、kristenandsara、fourpeople、basketballdrill、racehorsesc、blowingbubble 等
12 支不同解析度的影片。另外,Random Forest 為一種集成式的分類器,透過結合多個
弱分類器來構築一個穩健(Robust)的模型,因此模型本身具備抗 outlier 及抗 overfitting
的特性,所以這邊不需要再對蒐集到的樣本做額外的篩選。

4.3.3.2 模型的訓練
訓練框架的部分,使用 sklearn 的 RandomForestClassifier [24]。從表 4-10 可以觀察
出,每種劃分模式的比例並不平均,因此訓練的時候,採用欠採樣(Undersampling)的
策略。舉例來說,若要訓練四分樹劃分的二元分類器,假設目前使用四分樹劃分的樣
本數為 10000 個,將這 10000 個樣本標示為 1 (positive),接著從其他非四分樹劃分的樣
本中隨機選取同樣數目的(10000 個) 樣本,並將這 10000 個樣本標示為 0 (negative)。

訓練參數的部分,首先對 QP27,四分樹劃分的訓練集進行 grid search,並針對驗


證集的準確率進行最佳化,得到的參數為 n_estimators=160、criterion 為“gini”,其他參
數則在使用預設參數的狀況下能得到最佳的準確率。對於其他分類器也採用相同的參
數設定,最後得到對測試集的準確率及混淆矩陣如表 4-11 所示(以 QP27 為例)。對於屬
於 QTMT 的劃分模式,只使用信心值 90%以上的預測結果,不符合條件的預測結果則
照原本的 RDO 流程進行編碼;對於 NOT SPLIT 模式,則使用原始預測結果。而若樣
本中有部分屬於 MT 劃分模式的預測結果為 1 (進行此劃分模式的嘗試劃分),則將其它
信心值低於 90%且屬於 MT 劃分模式的預測結果設為 0 (省略此劃分模式的嘗試劃分)。
對於屬於 QTMT 的劃分模式,需要盡量避免 FN(False Negative)的狀況,即本來要劃分
但預測結果為不劃分的錯誤預測。

50
表 4-11. QP 值為 27 時,對測試集的準確率及混淆矩陣

51
圖 4-18 為 6 種二元分類器個別的特徵值重要程度,一樣以 QP27 為例,可以看到
對於 QT 及 NOT SPLIT 這兩種分類器,Depth、GradientMax、GradientVariance 這些與
紋理複雜度相關的特徵值是較為重要的;而對於 HBT、VBT、HTT、VTT 這四種分類
器,GradX、GradY 這兩種與紋理方向相關的特徵值是較為重要的;對於水平方向的劃
分模式如 HBT 及 HTT,VARUB 及 VARMUB 的重要程度會大於 VARLR 及 VARMLR;對於
垂直方向的劃分模式如 VBT 及 VTT 則相反。

圖 4-18. QP 值為 27 時,六種二元分類器的特徵重要程度

52
4.4 H.266/VVC 之劃分深度快速決策結合劃分模式快速決策

不論是 4.2 節的劃分深度預測或是 4.3 節的劃分模式預測,準確率都並非百分之


百,因此若要將兩種快速決策做結合,可能會出現決策的衝突:如深度預測的結果為
1,即在 32×32 大小時執行 early terminate,但模式預測為水平二分樹劃分。對於這種
狀況,需要先進行深度的修正,以劃分模式的預測結果為準,將深度預測的結果做補
償。舉例來說,深度預測的結果為 2,劃分模式的預測結果為執行水平二分樹劃分及
水平三分樹劃分,從表 4-9 可以發現,當深度預測結果為 2 時,深度範圍為 QTDepth=2,
BTDepth 為 0-1,但在此深度範圍內無法執行水平三分樹劃分,因此我們再將深度預測
的結果+1,這時深度範圍改變為 QTDepth=2, BTDepth 為 0-2 及 QTDepth=3, BTDepth 為
0,兩種預測都可以正常執行。另外在深度預測結果為 1,但劃分模式中的 NOT SPLIT
不為 1 時,為了讓壓縮率的損失越少,一樣以能使深度較深的預測為主,因此將深度
的預測結果做+1 的處理。結合劃分深度快速決策及劃分模式快速決策的演算法如圖
4-19 所示。

53
Offline inference

圖 4-19. 本論文提出之結合劃分深度快速決策及劃分模式快速決策之演算法流程圖
54
第五章 實驗結果與討論

本章將使用 4.4 提出之快速決策演算法進行編碼,並與原始 VTM 編碼結果及其他


H.266/VVC 相關之幀內編碼快速演算法進行比較。

5.1 實驗環境設置

表 5-1. 環境設置
硬體設置
CPU Intel(R) Xeon(R) CPU E5-2630 v4 @2.20GHz
RAM 128 GB RAM
OS Microsoft Windows 10 Professional 64-bit
軟體配置
Reference software VTM Encoder Version 7.0rc1
Configuration file encoder_intra_vtm
FramesToBeEncoded 100
QP 22, 27, 32, 37

實驗配置部分如表 5-1 所示,使用 All-Intra 設定檔並遵守 CTC 規範[25]進行編碼,


且為了因應市場上不同需求的影像特性,本論文將使用 ClassA1 至 ClassE 共 24 組視訊
影像作為測試序列,用以驗證本演算法之通用性。對於編碼結果,一般使用 bitrate 表
示編碼的效率,當 bitrate 越小代表壓縮率越高;使用 PSNR 表示編碼的質量,PSNR 越
高代表重建影像的失真越少。然而通常編碼質量越好,編碼效率就越低;或是編碼效
率越高,編碼質量就越差。因此在比較兩種編碼器的能力時,會透過使用 4 種不同 QP
值,得到對應的 bitrate 及 PSNR,再以 bitrate 為橫坐標、以 PSNR 為縱座標得到兩條曲
線,並以這兩條曲線表示編碼器的能力。但在多數時候這兩條曲線可能是交織在一起
的,所以新的評價指標 BD-PSNR 及 BDBR [26]引入了量化曲線的概念,透過將兩條曲
線的均值相減,得到兩條曲線的差距。因此在實驗結果的部分,使用 BD-PSNR 及
BDBR 作為編碼器的衡量標準,並以△ 𝑇表示使用快速決策演算法所節省時間的百分

比,如式(5.1)所示,其中𝐸𝑛𝑐𝑜𝑑𝑖𝑛𝑔𝑇𝑖𝑚𝑒 𝑄𝑃 𝑖
𝑣𝑡𝑚 7.0
為 VTM7.0 的編碼時間及對應 QP 值,QP

範圍為{22, 27, 32, 37}。

3
1 𝐸𝑛𝑐𝑜𝑑𝑖𝑛𝑔𝑇𝑖𝑚𝑒 𝑄𝑃 𝑖
𝑣𝑡𝑚 7.0
− 𝐸𝑛𝑐𝑜𝑑𝑖𝑛𝑔𝑇𝑖𝑚𝑒 𝑄𝑃 𝑖
𝑝𝑟𝑜𝑝𝑜𝑠𝑒𝑑
△𝑇 = ∑ × 100% (5.1)
4
𝑖=0
𝐸𝑛𝑐𝑜𝑑𝑖𝑛𝑔𝑇𝑖𝑚𝑒 𝑄𝑃𝑖 𝑣𝑡𝑚 7.0

55
5.2 實驗結果

5.2.1 與原始 VTM 之編碼結果進行比較

本論文所提出之架構的編碼表現如表 5-2 所示,平均可節省 39.16%的時間,而


BDBR 僅增加 0.70%,其中打星號的測試序列部分幀數當初有作為模型的訓練集使用。
而除了打星號的測試序列外,其它測試序列在 BDBR 及△ 𝑇 的比例上也有不錯的表
現,因此可以知道模型具備良好的泛化能力。本論文提出之方法在 Tango(69.45%)及
RollerCoaster(56.475%)上能節省最多的時間,因為這兩個測試序列具有較為平滑的影
像紋理:如 Tango 中的大片衣物或光滑皮膚、RollerCoaster 中的平滑背景。在進行本論
文所提出之演算法時,深度預測方面會得到一個較小的 Label,因此在 MT 劃分的部分
不會有深入的嘗試,可以及早地進行提前終止,藉此省去大量的 RDO 運算時間;反過
來說,本論文提出之方法在 BQSquare(19.171%)及 BlowingBubbles (22.081%)這兩個測
試序列上能只能節省少量的時間,因為這兩個測試序列都屬於小解析度的 ClassC,因
此在同樣大小的區塊中,包含的圖像紋理是相對大量的,在深度預測方面會得到一個
較大的 Label,因此還是需要對多種深度進行 RDO 計算,能節省的時間也就比較少。
對於這種現象,也能觀察到 ClassA1 或 ClassA2 的時間節省的比例明顯大於 ClassC 或
ClassD,因此我們進一步針對 Class 觀察其編碼表現,如表 5-3 所示,並且依照解析度
由大到小對 Class 進行排序(A1=A2>B>E>C>D),再將 Class 與△ 𝑇 之間的關聯利用折線
圖表示,如圖 5-1 所示,可以看出隨著影像解析度降低,能節省的時間也會遞減,並
存在一個下跌的趨勢;不過對於 ClassD,雖然能解省的時間較少,但整體 BDBR 增加
的幅度也較小,僅為 0.236。而圖 5-2 為 4 種 QP 值下本論文所提出之演算法所能節省
的時間, △ 𝑇落在 36.168%及 40.826%之間,震盪幅度在可接受的範圍內,因此本論文
所提出之演算法在不同 QP 值下都同樣具備能降低運算複雜度的能力。

56
表 5-2. 與 VTM 7.0 為參考軟體之編碼效能表現

BD-PSNR BDBR ΔT
Test Sequence
(dB) (%) (%)
CampfireParty -0.049 1.870 51.083
ClassA1 Drums -0.023 0.504 53.767
4K Tango* -0.014 1.258 69.450
ToddlerFountain -0.019 0.366 36.890
Catrobot -0.021 0.853 44.736
ClassA2 DaylightRoad -0.023 0.747 45.583
4K RollerCoaster -0.057 1.394 56.475
TrafficFlow -0.022 1.210 53.416
BasketballDrive* -0.048 0.547 55.091
BQTerrace -0.050 0.554 33.125
ClassB
Cactus* -0.032 0.629 37.531
1920×1080
Kimono -0.027 0.405 53.004
ParkScene -0.020 0.348 32.094
BasketballDrill -0.049 1.048 29.895
ClassC BQMall* -0.044 0.580 30.774
832×480 PartyScene* -0.011 0.132 28.027
RaceHorsesC -0.050 0.626 32.281
BasketballPass -0.035 0.515 27.031
ClassD BlowingBubbles -0.008 0.124 22.081
416×240 BQSquare -0.020 0.212 19.171
RaceHorses -0.007 0.092 23.586
FourPeople -0.063 0.862 27.994
ClassE
Johnny* -0.063 1.058 41.054
1280×720
KristenAndSara -0.060 0.859 35.702
Average -0.034 0.700 39.160

57
表 5-3. 以 Class 為單位之編碼效能表現
BDBR ΔT
Test Classes Resolution
(%) (%)
ClassA1 4K 0.999 52.797
ClassA2 4K 1.051 50.052
ClassB 1920×1080 0.496 42.169
ClassC 832×480 0.597 30.244
ClassD 416×240 0.236 22.967
ClassE 1280×720 0.927 34.916

圖 5-1. 影像解析度與△ 𝑇之關聯

圖 5-2. 4 種 QP 下的△ 𝑇

58
對於加入劃分模式快速決策演算法的影響如表 5-5 所示,左邊表格為採用本論文
完整演算法的結果,而右邊表格為僅採用深度快速決策演算法的結果,以平均結果來
看,採用完整演算法的結果在 BDBR 增加 0.033%的狀況下,△ 𝑇 僅上升 1.958%,與預
期結果有所出入。因此接下來對此現象的原因進行探討,首先從圖 4-19 可以看到,在
offline inference 的時候,透過 Depth label adjustment 的步驟來避免預測的衝突,因此對
於部分亮度區塊,深度預測 label 的值增加了,需要嘗試的深度範圍也有所增加,這點
從 CampfireParty、DaylightRoad 等 測 試 序 列 可 以 看 出 : 採 用 完 整 演 算 法 的
BDBR(1.87%, 0.747%)反而比只採用深度快速決策演算法的 BDBR(1.931%, 0.773%)還
要低,這是因為深度預測的 label 變得更嚴謹了,需要嘗試的深度範圍也有所增加,也
就需要更多的時間執行 RDO 計算;因此即使劃分模式預測能省去部分 QTMT 模式的
嘗試,兩者抵銷之下,能解省的時間也就不如預期的多。而另一方面,劃分模式快速
決策演算法的預測結果是由 6 個二元分類器(QT, HBT, VBT, HTT, VTT, NOT SPLIT)組成
的,其中 NOT SPLIT 預測為 1 與深度預測為 1 的功能是相同的,都為在 32×32 大小時
不再繼續向下劃分,因此將 NOT SPLIT 作為 Depth label adjustment 步驟中不再向下劃
分的第二次確認。因為 NOT SPLIT 並無節省時間的功能,因此劃分模式快速決策演算
法是藉由 QTMT 部分的預測結果為 0 來省去模式的嘗試劃分,然而當 QTMT 預測為 0
且 NOT SPLIT 為 1 時,這種預測結果並無實際加速的功能,我們將這種預測結果稱作
resultuseless。表 5-4 為劃分模式的測試集中,具有加速效果的預測結果在該劃分模式所
佔比例,而𝑟𝑎𝑡𝑖𝑜𝑢𝑠𝑒𝑓𝑢𝑙 是透過式(5.2)計算而得,其中𝑛𝑢𝑚_𝑟𝑒𝑠𝑢𝑙𝑡𝑢𝑠𝑒𝑙𝑒𝑠𝑠 為 resultuseless 在劃
𝑝𝑟𝑒𝑑𝑖𝑐𝑡=0
分模式𝑚𝑜𝑑𝑒_𝑖中所佔數目;𝑛𝑢𝑚_𝑟𝑒𝑠𝑢𝑙𝑡𝑚𝑜𝑑𝑒_𝑖 為在劃分摸式𝑚𝑜𝑑𝑒_𝑖中預測結果為 0
的數目,且皆在 QTMT 信心≧90%,NOT SPLIT 信心≧50%的狀況下計算。將表 5-4 進
一步結合表 4-10 可以知道,因為 QP 在 32 或 37 時,選擇 NOT SPLIT 的比例增加,這
將造成 resultuseless 的數量上升,因此在 QP 為 32 或 37 時,實際具加速效果的預測結果
佔比相當少。而因為𝑟𝑎𝑡𝑖𝑜𝑢𝑠𝑒𝑓𝑢𝑙 在 4 種 QP 值中的平均都偏低,因此這也是造成劃分模
式快速決策演算法僅能節省少量時間的原因之一。

59
𝑛𝑢𝑚_𝑟𝑒𝑠𝑢𝑙𝑡𝑢𝑠𝑒𝑙𝑒𝑠𝑠
𝑟𝑎𝑡𝑖𝑜𝑢𝑠𝑒𝑓𝑢𝑙 = 1 − 𝑝𝑟𝑒𝑑𝑖𝑐𝑡=0 (5.2)
𝑛𝑢𝑚_𝑟𝑒𝑠𝑢𝑙𝑡𝑚𝑜𝑑𝑒_𝑖

表 5-4. 實際有加速效果的劃分模式預測結果在測試集所佔比例

表 5-5. 有無加入劃分模式預測之編碼效能表現比較

60
5.2.2 與其他 H266/VVC 相關之幀內編碼快速演算法進行比較

表 5-6. 文獻[27]及文獻[15]與本論文提出之演算法的編碼效能比較

表 5-6 為本論文提出之演算法與其它幀內編碼快速演算法的編碼效能比較,文獻
[27]原為適用於 H.265/HEVC 的編碼單元快速演算法,其透過 CNN 去預測一塊 64×64
大小的 CTU,在 64×64、32×32、16×16 等 3 個階段是否執行四分樹劃分;而文獻[12]
將這個方法重新實現在 VTM2.0 編碼器上,這邊我們使用其在 VTM2.0 上的編碼結果。
文獻[15]是透過 CNN 預測 32×32 大小的 CU 及其 subCUs 是否執行劃分,其特點是利用
Shape-adaptive pooling 層來調整 feature map 的大小,使得輸入不再侷限於固定大小的
CU。

與文獻[27]相比,本方法在△ 𝑇 差距 8.88%的狀況下,BDBR 大幅下降至 0.537%;


這部分可能因為文獻[27]是針對 H.265/HEVC 的架構去設計的,而因為 H.266/VVC 引
入了 QTMT 架構,使得這套演算法在 VTM 編碼器上的 BDBR 代價較高。而與文獻[15]
相 比 , 本 方 法 在 BDBR 及 △ 𝑇 皆 有 較 佳 的 表現 :BDBR 下 降 0.390%且 △ 𝑇 增 加
0.244%。因為文獻[15]的 CNN 模型僅會輸出切與不切兩種結果,因此若預測為不切但
實際結果為切,則會直接省略後續的 RDO 計算,對 BDBR 的影響較大;而本方法則使
用較為保守的策略,在深度快速決策部分仍然維持深度範圍內 RDO 的計算,在劃分模
式快速決策部分則透過模擬多標籤分類器,使得分類結果不會過於武斷。

61
第六章 結論與未來研究探討

6.1 結論

H.266/VVC 採用了 QTMT 的架構,使 CU 不再侷限於正方形,在編碼時能夠根據


影像紋理,選擇最符合局部紋理特徵的 CU,進而提高壓縮率;然而 QTMT 架構及其
他新技術的的引入,也使得運算複雜度大幅提升,因此如何在加速編碼流程的同時,
又保有高質量的壓縮品質,是值得深入研究的一個議題。

本論文提出了劃分深度快速決策演算法及劃分模式快速決策演算法,並在不會發
生衝突的狀況下,將兩種演算法合併並平行處理。在劃分深度快速決策演算法的部
分,參考了文獻[4]的作法,並將其改進為 QTMT 架構也適用的演算法:使用 32×32 大
小 CU 內 BTDepth 的最大值來獲得 Label,在處理類別不平衡的問題時,則另外編碼
UVG Dataset 補 齊 不 足 的 類 別 , 對 於 數 量 仍 不 平 均 的 類 別 , 則 在 訓 練 時 設 定
class_weight 來調整 loss 的加權,接著透過 GradientVariance 及∆𝑅𝐷𝐶𝑜𝑠𝑡來濾除易造成
模型混淆的訓練樣本;在模型架構的部分,因為層數越深的 layer 能擷取更高層級的影
像特徵,因此將 stage2 及 stage3 的輸出做 GAP 及 concat,並透過 concat QP 值使模型
能適用於多種 QP 值,最後經過 FC 層輸出分類結果;loss function 的部分,結合了
cross-entropy loss 及 center-loss,使類間距離越大、類內距離越小,進而改善鄰近類別
容易混淆的問題;最後再根據 Label 的對應深度範圍做到深度的 early skip 及 early
terminate,達到加速編碼的目的。在劃分模式快速決策演算法的部分,則利用機器學
習中的隨機森林進行分類,因為隨機森林未提供多標籤分類器的功能,因此分別訓練
6 種劃分模式的二元分類器代替之,並一樣在 CU 為 32×32 大小時,使用 11 種影像特
徵進行分類,最後只採用信心≧90%的預測結果,而當 QTMT 預測為 0 時,則可略過
此種劃分模式及後續 subCUs 的嘗試劃分,藉此達到加速編碼的目的。最後將兩種演算
法進行合併,並且根據劃分模式的預測結果來調整深度預測的 Label,使得兩種演算法
不會發生衝突。實驗結果顯示,與 VTM 7.0 的原始編碼結果相比,本論文提出之演算
法可節省 39.16%的編碼時間,而 BDBR 僅增加 0.70%。

62
6.2 未來研究討論

本論文仍有一些相關問題需要更進一步的做探討與改進。其相關討論如下:

(1)從實驗結果可以知道,因為劃分模式預測之下的 NOT SPLIT 為 1 與深度預測 Label


為 1 具相同的功能,都是指 CU 在 32×32 大小時不再向下劃分,且劃分模式預測下
的𝑟𝑎𝑡𝑖𝑜𝑢𝑠𝑒𝑓𝑢𝑙 數值偏低,表示大部分的預測結果是不具備加速效果的。因此本論文
主要是依靠劃分深度快速決策演算法的部分進行加速,並且可以知道單獨使用劃分
深度快速決策演算法,能在 BDBR 僅提升 0.67 的狀況下,節省 37.20%的時間,尚
有可結合其他演算法共同使用的空間。

(2)承(1),若將劃分模式從 6 種多標籤分類器的平行選擇,改為 NOT SPLIT – QT – MT


的串接處理,則因為在執行深度快速決策演算法時,將不符合深度範圍的深度做
early skip 的處理,這部分需要在 VTM 中做額外的設定;而受限於此設定,部分 CU
在強行執行 QT 劃分時會發生 VTM 規則衝突的錯誤。

(3)承(2),在劃分模式快速決策演算法的架構無法更動的前提下,可以參考文獻[3]的作
法,針對幀內預測的 67 種預測模式做加速處理;雖然目前 VTM 已經使用 3-stage 的
方式來加速預測模式的選擇,但在 RMD 步驟時仍然需要對 37-41 種模式進行 HCOST
的計算,這部分的運算複雜度也是相當高。而若能在保有高壓縮品質的狀況下,減
少需要嘗試的預測模式,讓幀內預測所需的時間縮短,同樣能達到加速編碼流程的
目的,因此加速預測模式的選擇也是值得深入研究的方向之一。

63
參考文獻

[1] G. J. Sullivan, J. Ohm, W. Han, and T. Wiegand, “Overview of the High Efficiency
Video Coding (HEVC) Standard,” IEEE Transactions on Circuits and Systems for Video
Technology, vol. 22, no. 12, pp. 1649-1668, 2012.

[2] B. Bross, “Versatile Video Coding (Draft 1),” JVET-J1001, Joint Video Exploration
Team (JVET), 2018.

[3] F. Bossen, X. Li, and K. Sühring, “Guidelines for VVC reference software
development,” JVET-N1003, Joint Video Exploration Team (JVET), 2019.

[4] J. Chen, Y. Ye, and S. Kim, “Algorithm description for Versatile Video Coding and Test
Model 5 (VTM 5),” JVET-N1002, Joint Video Exploration Team (JVET), 2019.

[5] Y. Huang et al., “A VVC proposal with quaternary tree plus binary-ternary tree coding
block structure and advanced coding techniques,” IEEE Transactions on Circuits and
Systems for Video Technology, vol. 30, no. 5, pp. 1311-1325, 2020.

[6] F. Bossen, X. Li, and K. Suehring, “AHG report: Test model software
development(AHG3),” JVET-J0003, Joint Video Exploration Team (JVET), 2018.

[7] K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for image recognition,”
IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 770-778,
2016.

[8] K. He, X. Zhang, S. Ren, and J. Sun, “Identity mappings in deep residual networks,”
European Conference on Computer Vision, pp. 630-645, 2016.

[9] L. Breiman, “Random forests,” Machine Learning, vol. 45, no. 1, pp. 5-32, 2001.

[10] J. R. Quinlan, “Induction of decision trees,” Machine Learning, vol. 1, no. 1, pp. 81-
106, 1986.

[11] E. Alshina, G. Sullivan, M. Corp, J.-R. Ohm, and J. Boyce, JVET-G1001: Algorithm
description of Joint Exploration Test Model 7 (JEM7), 2018.

[12] H. Yang et al., “Low complexity CTU partition structure decision and fast intra mode
64
decision for versatile video coding,” IEEE Transactions on Circuits and Systems for
Video Technology, 2019.

[13] Z. Jin, P. An, C. Yang, and L. Shen, “Fast QTBT partition algorithm for intra frame
coding through convolutional neural network,” IEEE Access, vol. 6, pp. 54660-54673,
2018.

[14] J. An, H. Huang, K. Zhang, Y. Huang, and S. Lei, “Quadtree plus binary tree structure
integration with JEM tools,” JVET-B0023, Joint Video Exploration Team (JVET), 2016.

[15] G. Tang, M. Jing, X. Zeng, and Y. Fan, “Adaptive CU split decision with pooling-
variable CNN for VVC intra encoding,” IEEE Visual Communications and Image
Processing (VCIP), pp. 1-4, 2019.

[16] Z. Liu et al., “CU partition mode decision for HEVC hardwired intra encoder using
convolution neural network,” IEEE Transactions on Image Processing, vol. 25, no. 11,
pp. 5088-5103, 2016.

[17] T.-L. Lin, H.-Y. Jiang, J.-Y. Huang, and P.-C. Chang, “Fast intra coding unit partition
decision in H.266/FVC based on spatial features,” Journal of Real-Time Image
Processing, pp. 1-18, 2018.

[18] A. Mercat, M. Viitanen, and J. Vanne, “UVG dataset: 50/120fps 4K sequences for video
codec analysis and development,” Accepted to ACM Multimedia Syst. Conf., Istanbul,
Turkey, 2020.

[19] Y. Wen, K. Zhang, Z. Li, and Y. Qiao, “A discriminative feature learning approach for
deep face recognition,” European Conference on Computer Vision, pp. 499-515, 2016.

[20] shamangary, “Keras-MNIST-center-loss-with-visualization,” GitHub repository,


https://github.com/shamangary/Keras-MNIST-center-loss-with-visualization, 2017.

[21] M. Abadi et al., “Tensorflow: A system for large-scale machine learning,” 12th
{USENIX} Symposium on Operating Systems Design and Implementation ({OSDI} 16),
pp. 265-283, 2016.

[22] D. P. Kingma, and J. Ba, “Adam: A method for stochastic optimization,” arXiv preprint
arXiv:1412.6980, 2014.
65
[23] B. Zhou, A. Khosla, A. Lapedriza, A. Oliva, and A. Torralba, “Learning deep features
for discriminative localization,” Proceedings of the IEEE Conference on Computer
Vision and Pattern Recognition, pp. 2921-2929, 2016.

[24] F. Pedregosa et al., “Scikit-learn: Machine learning in python,” Journal of Machine


Learning Research, vol. 12, pp. 2825-2830, 2011.

[25] K. Suehring, and X. Li, “JVET common test conditions and software reference
configurations,” JVET-B1010, 2016.

[26] J. Jung, and S. Pateux, “An Excel add-in for computing Bjontegaard metric and its
evolution,” ITU-T VCEG contribution VCEG-AE07, Marrakech, 2007.

[27] M. Xu et al., “Reducing complexity of HEVC: A deep learning approach,” IEEE


Transactions on Image Processing, vol. 27, no. 10, pp. 5044-5059, 2018.

66

You might also like