HEVC幀內預測原理

一、HEVC 角度預測模式的基本概念

H.265/HEVC亮度分量幀內預測支持5種大小的PU: 4x4, 8x8, 16x16, 32x32, 64x64

每一種大小的PU都有35種預測模式:

1. Planar模式

2. DC 模式

3. 33種角度模式

 

通過角度18 將 角度 的模式進一步 分爲 垂直 和 水平

所謂的水平 和 垂直 是指  通過 26 和  10 這兩個角度來定義的。

超過18 的就是垂直的,指的是 這些範圍內角度 可以通過 26 向左 或者 向右偏移一定的角度 得到的。

小於18 就是 水平的,指的是 這個範圍內的角度可以通過10 向上或者向下 偏移一定的角度 得到的。

其中角度的偏移的計算 

                                                            

 

x表示的是某種模式對應的偏移值。可以通過下面的表格進行查詢。 如 模式23 對應的 x是 9。通過上面的公式計算得到角度是 -15.7表示 向右偏移這麼大的角度。

 

                                                       

 

 

 

上圖 是 4 個方向的展示 1是垂直向左 角度大於0 , 2 是垂直向右角度小於0  3上水平向下,角度小於 0 , 4 是水平向上 角度 大於0。

 

 

二、投影像素法

    處於 11- 25 的像素 有可能 參考 左邊 也有可能參考 上面的。 對於處於垂直類的模式 需要將參考的左邊的映射到上面,形成一個水平的參考邊。 對於處於水平類的模式 需要將上面的映射到左邊,形成一個垂直的 參考邊。

投影的計算: 

 

這邊就是映射的函數,表示 x 可以通過下面的式子計算得到在y上面的座標。

實際在計算過程中是先把這樣的一個 參考的數組給構造出來。

構造的過程是  x 大於等於0 的,取 x下座標的值。

 x小於0的,將 x 座標 映射爲y座標 公式如下解釋。 然後取y座標上面的值 

y(x)的計算怎麼理解?

    如下圖角度 1 和 角度 2 是相等的。 也就是 32/offset[m] = y/x;     可得  y = 32*x/offset[m]。其中 offset[m] 表示角度的偏移, 這個偏移可以通過上面 查表得到。  從之前的計算 知道 實際上 通過兩個值 來決定角度 offset[m] 和 32.   所以說 y方向上的 映射 實際上是 按照角度映射 到 x 的。 這邊 x 每次加n。實際上y方向的變化是32/offset[m]*n 取整的結果。 offset <= 32 說明  映射的時候 y方向是不可能映射到同一個點的。

 

通過  這個式子計算 對應的位置

三、 水平和垂直方向 如何計算pos。

分爲水平和垂直的方向來考慮, 水平和垂直 的劃分 是上面的 那種方式 。

如果是垂直的方式。 那麼  參考點在x方向的座標   加 1 就是 直接 加1。 而 在y 方向的 要先映射。

同樣他們的座標計算 :

垂直方向的: pos  = (y* offset[M])/32。 pos 可以理解是x。

計算:

 y/x = 32/offset[m]。x = (y* offset[M])/32。

這種情況 對於一個 4*4 而言。 y確定了 x就確定了。 就是說同一行兩個列的 pos 都只相差1。

兩行的pos就是 offset[M]/32的倍數取整了。 這個肯定是不會超過1的。所以4個加起來也不會超過 4。

水平方向的: pos  = (x* offset[M])/32。 pos 可以理解是y。

計算:

 x/y = 32/offset[m]。y = (x* offset[M])/32。

這種情況 對於一個 4*4 而言。 x確定了 y就確定了。 就是說同一列的兩行 pos 都只相差1。

兩列的pos就是 offset[M]/32的倍數取整了。 這個肯定是不會超過1的。所以4個加起來也不會超過 4。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章