HEVC基礎知識講解(1)-LCU 模式選擇過程分析(CTU的深度選擇及CU的分割)

1.率失真代價計算模型
HEVC 的最大編碼單元為 LCU,即 64×64 的 CU(認為是數據單元,也就是編碼單元);
下面就需要對LCU進行CU的劃分;步驟如下:
1、對一個 LCU 選擇最佳 CU編碼深度,需要遍歷所有 64×64 到 8×8 的分割,一共 85 個 CU,通過計算率失真代價選擇此 LCU 的最佳分割方式。
PS:首先先看這一步,一個LCU = 1個64CU+4個32CU+16個16CU+64個8CU = 1+4+16+64 = 85;
然后有一個問題,我們為什么在cu劃分的時候,最小是8x8,而不是4x4?
因為我們劃分LCU也只是第一步,因為后面還要去看PU的劃分以及TU的劃分;因為PU和TU得到劃分都是要基于CU來進行;后面會分析到PU和TU的劃分;這里我們要明白的是,因為PU和TU的劃分,所以CU只能最小到8x8(!!!!CU最小的劃分單元就是8x8,切記!!!!);

2、對于每一個 CU,遍歷幀內和幀間所有可選的預測模式,根據率失真代價選擇最佳 PU(預測單元,做像素值的預測) 預測模式。
PS:PU有8種模式;它是針對于CU來進行劃分的,而且針對于不同的預測模式(skip,幀間,幀內),劃分的方式是不一樣的;如下:


image.png

3、對于每一種 PU 預測模式,TU的分割方式由當前 CU 的大小、PU 的預測模式以及最大 TU 分割深度等因素決定,選擇過程也需要計算率失真代價。
PS:TU的分割是與PU無關的,可以跨越多個PU的界限,也可以不跨越;還是依賴于的是CU的劃分

可以看出,在 HEVC 編碼過程中,任何一個劃分方式或預測模式的選擇,都需要計算率失真代價, HM 的編碼器中,率失真代價的計算模型有以下兩種:
1、非 RDO 模型
非 RDO 模型可用于幀內預測、運動估計、最佳 MVP 的選擇 及 merge 模式中最佳運動參數集的選擇等。
2、RDO 模型

所有有關分割方式的選擇都采用 RDO 模型計算率失真代價。

2.LCU 編碼深度選擇過程

當 LCU 的大小為 64×64,最大編碼深度為 3,則 LCU 編碼深度的選擇過程可如下圖表示。


image.png

第一步,如圖 a),對大小為 64×64 深度為 0 的編碼單元 a 遍歷所有幀間和幀內預測模式,得到深度為 0 時的最優預測模式和率失真代價 Ra。

第二步,如圖 b),對 a 進行一次 CU 劃分,得到四個子 CU:b0,b1,b2,b3,此時編碼深度為 1,并對編碼單元 b0 遍歷所有幀間和幀內預測模式,得到 b0的最優預測方式和率失真代價 Rb0。

第三步,如圖 c),對 b0 進行進一步的 CU 劃分,得到四個子 CU:c0,c1,c2 和 c3,此時編碼深度為 2,并對編碼單元 c0 遍歷所有可能的預測模式,得到 c0的最優預測模式和率失真代價 Rc0。

第四步,如圖 d),對 c0 做進一步 CU 劃分,得到四個子 CU:d0,d1,d2和 d3,此時編碼深度為 3,已達到最大編碼深度,不能再進行 CU 劃分。依次對d0、d1、d2 和 d3 進行預測模式選擇,得到各自對應的最優預測方式和率失真代價Rd0、Rd1、Rd2以及 Rd3,計算四個 CU 的率失真代價之和,并與 Rc0進行比較,選擇較小的值作為 c0 的最優率失真代價(記為 Min-Rc0),其對應的預測方式以及分割方式即為 c0 的最優預測方式和分割方式。

第五步,仿照第四步,依次對 c1、c2 和 c3 進行劃分與預測模式選擇,分別得到各自對應的最優預測方式和率失真代價 Min-Rc1、Min-Rc2、Min-Rc3,并計算當前編碼深度的四個 CU 的率失真代價之和,與 Rb0比較,得到較小的率失真代價(記為 Min-Rb0),其所對應的預測模式以及分割方式即為 b0 的最優預測模式和分割方式。

第六步,仿照第二步到第五步,依次對 b1、b2 和 b3 進行劃分與預測模式選擇,分別得到各自對應的最優預測方式和率失真代價 Min-Rb1、Min-Rb2、Min-Rb3,計并計算當前編碼深度的四個 CU 的率失真代價之和,并與 Ra 比較,得到較小的率失真代價(記為 Min-Ra),找出該 LCU 的最佳劃分方式以及最優預測模式。

3.CU 的預測模式選擇過程

在 LCU 的最佳劃分方式的選擇過程中,對于每一個編碼深度的 CU,做 PU 預測模式選擇,一個大小為 2N×2N 的 CU,PU 幀間預測模式有 skip、2N×2N、2N×N、N×2N、N×N、2N×nU、2N×nD、nL×2N 以及 nR×2N。
1)其中 skip 模式對應的 CU劃分方式為 2N×2N;
2)幀內模式 PU 的大小可以為 2N×2N 或 N×N,N×N 只能適用于深度為最大編碼深度(8x8)的 CU。
3)幀間預測模式有八種,后四種模式統稱為 AMP 模式,AMP 模式可以根據需要在參數配置中直接關閉。在 AMP 模式打開的情況下,這四種模式的選擇與前面的選擇結果相關。對于每一個 PU,共有 35 種幀內預測模式。

PU 的模式選擇過程如圖 3.3 所示:
第一步,計算 skip 模式的率失真代價,skip 模式運用到了 HEVC 中的新引入的運動合并技術。運用運動參數候選列表中的每個運動參數集找到預測塊,與原始塊做差值并進行變換,量化和熵編碼。最后用編碼的比特數和重構塊以及原始塊的失真計算出率失真代價,找到最佳的 merge-index。

第二步,計算 2N×2N 模式的率失真代價,首先運用 AMVP 技術得到 MVP 列表;然后運用非 RDO 方法計算率失真代價得到最佳 MVP;最后做運動搜索,找到預測塊,與原始塊做差值并進行變換、量化和熵編碼,運用編碼比特數以及重構塊和原始塊的 SSD 計算出率失真代價。與 skip 模式的率失真代價進行比較,在skip 和 2N×2N 中找出最佳 PU 模式。

第三步,計算 2N×N 和 N×2N 模式的率失真代價,首先運用 AMVP 技術,找到最佳 MVP 并作運動搜索找到預測塊;然后運用運動合并技術技術,得到最佳merge-index 對應的率失真代價,根據率失真代價確定最佳預測模式;最后對最佳模式得到的殘差做變換量化和熵編碼運用RDO計算出當前PU模式的率失真代價,并與第二步得到的最佳 PU 模式的率失真代價做比較,得到最佳 PU 模式。

第四步,計算 AMP 模式的率失真代價,AMP 模式包括四種分割方式,但是為了減小編碼復雜度,編碼過程中并沒有遍歷所有的模式,而是根據前三步選出的最佳PU模式以及上一層的CU的最佳分割模式以及預測模式選擇部分做模式判決。具體選擇如下表:

image

第五步,幀內預測模式選擇,對于 I_SLICE 或非 I_SLICE 中需要編碼的量化系數不全為 0 的 CU,需要做幀內預測的分割方式和幀內預測模式選擇,選擇過程如下:
1、預測單元 PU 大小與 CU 大小一致為 2N×2N,用非 RDO 模型計算率失真代價,從 35 種幀內預測模式中找到率失真代價較小的 n 中預測模式作為候選模式,n 的大小與 PU 的大小相關,如表 3-2 所示。
2、將當前 PU 上側和左側相鄰 PU 采用的幀內預測模式,即當前 PU 最有可能的預測模式(MPM)加入到該步驟的候選模式中,此時候選模式 k 最多為(n+2)。
3、運用 RDO 模型計算率失真代價在 k 種最佳候選模式中選出最佳亮度的幀內預測模式。
4、根據亮度的幀內預測模式選擇結果,做色度的幀內預測模式選擇。
5、如果當前編碼單元的編碼深度為最大編碼深度,將當前編碼單元分為 4 個N×N 的 PU,對于每一個 PU 重復 1~4 步,找到每一個 PU 的最佳幀內預測模式以及最佳預測模式對應的率失真代價。
6、根據前幾步得到率失真代價的值,決定當前 CU 的最佳劃分方式及幀內預測模式。

image

第六步,計算 PCM 模式的率失真代價。

image

由上述描述可知,對于一個 LCU 想要得到最佳 CU 劃分方式,需要遍歷其所有的 CU,對每個 CU 還需要遍歷各種預測模式,得到其最小的率失真代價。為加快編碼速度,模式選擇過程的優化可從 CU 編碼深度的選擇,PU 模式選擇和 TU分割方式的選擇三個方面進行研究和分析。因為 PU 模式選擇和 TU 分割方式選擇都是為了計算當前深度下,編碼 CU 的率失真代價,減少 CU 遍歷的次數,同時也減少了 PU 模式選擇的次數和 TU 分割方式選擇的次數。因此,基于 CU 編碼深度選擇過程做算法優化是最有效的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,527評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,687評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,640評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,957評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,682評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,011評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,009評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,183評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,714評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,435評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,665評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,148評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,838評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,251評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,588評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,379評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,627評論 2 380

推薦閱讀更多精彩內容