LCU 模式選擇過程分析(CTU的深度選擇及CU的分割)

LCU 模式選擇過程分析(CTU的深度選擇及CU的分割)

1.率失真代價計算模型 HEVC 的最大編碼單元為 LCU,即 64×64 的 CU,對一個 LCU 選擇最佳 CU編碼深度,需要遍曆所有 64×64 到 8×8 的分割,一共 85 個 CU,通過計算率失真代價選擇此 LCU 的最佳分割方式。對於每一個 CU,遍曆幀內和幀間所有可選的預測模式,根據率失真代價選擇最佳 PU 預測模式。對於每一種 PU 預測模式,TU的分割方式由當前 CU 的大小PU 的預測模式以及最大 TU 分割深度等因素決定,選擇過程也需要計算率失真代價。可以看出,在 HEVC 編碼過程中,任何一個劃分方式或預測模式的選擇,都需要計算率失真代價, HM 的編碼器中,率失真代價的計算模型有以下兩種:

1、非 RDO 模型 非 RDO 模型可用於幀內預測、運動估計、最佳 MVP 的選擇 及 merge 模式中最佳運動參數集的選擇等。 2、RDO 模型 所有有關分割方式的選擇都採用 RDO 模型計算率失真代價。

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

第一步,如圖 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。其中 skip 模式對應的 CU劃分方式為 2N×2N,N×N 模式只有在 CU 的大小為 8×8 時才會使用。後四種模式統稱為 AMP 模式,AMP 模式可以根據需要在參數配置中直接關閉。在 AMP 模式開啟的情況下,這四種模式的選擇與前面的選擇結果相關。幀內模式 PU 的大小可以為 2N×2N 或 N×N,N×N 只能適用於深度為最大編碼深度的 CU。對於每一個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的最佳分割模式以及預測模式選擇部分做模式判決。具體選擇如下表:

第五步,幀內預測模式選擇,對於 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 的最佳劃分方式及幀內預測模式。 第六步,計算 PCM 模式的率失真代價。 由上述描述可知,對於一個 LCU 想要得到最佳 CU 劃分方式,需要遍曆其所有的 CU,對每個 CU 還需要遍曆各種預測模式,得到其最小的率失真代價。為加快編碼速度,模式選擇過程的最佳化可從 CU 編碼深度的選擇,PU 模式選擇和 TU分割方式的選擇三個方面進行研究和分析。因為 PU 模式選擇和 TU 分割方式選擇都是為了計算當前深度下,編碼 CU 的率失真代價,減少 CU 遍曆的次數,同時也減少了 PU 模式選擇的次數和 TU 分割方式選擇的次數。因此,基於 CU 編碼深度選擇過程做演算法最佳化是最有效。 本文摘自論文:下一代視頻編碼通訊協定HEVC幀間預測最佳化演算法研究_張和仙

🎀 相关推荐

微信图片保存不了是怎么回事
365名品汇推荐码多少

微信图片保存不了是怎么回事

📅 10-07 👀 695
什么是扇形图?如何制作扇形图?
365bet足球实时动画

什么是扇形图?如何制作扇形图?

📅 10-11 👀 9312
荣耀 6 手机使用总结(界面|功能|拍照|续航)
365名品汇推荐码多少

荣耀 6 手机使用总结(界面|功能|拍照|续航)

📅 09-06 👀 6910