2.H.265/HEVC —— 帧内预测

在H.265/HEVC中,35种预测模式是在PU的基础上定义的,而具体帧内预测过程的实现则是以TU为单位的。编撰规定PU可以以四叉树的形式划分TU,且一个PU内所有TU共享同一种预测模式的形式划分TU,且一个PU内的所有TU共享同一种预测模式。H.265/HEVC帧内预测可分为以下3个步骤:
**
1.判断当前TU相邻参考像素是否可用并做相应的处理
2.对参考像素进行滤波
3.根据滤波后的参考像素计算当前TU的预测像素值
**


1.相邻参考像素的获取

如图,当前的TU大小为NxN,其参考像素按区域可分为5部分:左下(A)、左侧(B)、左上(C)、上方(D)和右上(E),一共4N+1个点。若当前TU位于图像边界,或Slice、Tile的边界(H.265/HEVC规定在帧内编码中,相邻Slice或Tile不能相互参考),则相邻参考像素可能会不存在或不可用。另外,在某些情形下A或E所在的块可能尚未进行编码,此时这些参考像素也是不可用的。

相邻参考像素位置

当参考像素不存在或不可用时,H.265/HEVC标准会使用最邻近的像素进行填充。例如,若区域A的参考像素不存在,则区域A所有参考像素都用区域B最下方的像素进行填充;若区域E的参考像素不存在,则区域E所有参考像素都用D最右侧的像素进行填充。需要说明的是,若所有参考像素都不可用,则参考像素都用固定值填充,该固定值大小为

                                         R = 1 << (BitDepth -1)

源码解析:
fillReferenceSamples这个函数,它主要功能是在真正进行帧内预测之前,使用重建后的Yuv图像对当前PU的相邻样点进行赋值,为接下来进行的角度预测提供参考样点值。
源码解析可以参考:http://blog.csdn.net/hevc_cjl/article/details/8175721

帧内预测一个很重要的函数initAdiPattern,它的主要功能有三个,(1)检测当前PU的相邻样点包括左上、上、右上、左、左下邻域样点值的可用性,或者说检查这些点是否存在;(2)参考样点的替换过程,主要实现的是JCTVC-J1003即draft 8.4.4.2.2的内容,主要由函数fillReferenceSamples来完成;(3)相邻样点即参考样点的平滑滤波,主要实现draft 8.4.4.2.3的内容。
源码解析可以参考:http://blog.csdn.net/HEVC_CJL/article/details/8184276


2.参考像素的滤波

1.不同大小TU需要进行参考像素滤波的模式
DC模式以及4x4大小的TU都不需要进行参考像素滤波。其他情形介绍如下:
32x32TU:除了模式10(水平)、模式26(垂直)之外的所有角度模式以及Planar模式。
16x16TU:在32x32TU的基础上进一步出去最接近水平个垂直方向的4个模式——模式9、11、25、27
8x8TU:仅对3个45度倾斜方向的模式(模式2、18、34)以及Planar模式进行参考像素滤波。

2.常规滤波与强滤波方法
这部分就是需要满足几个条件进行常规滤波或者强滤波。


2.预测像素的计算

与h.264/avc相比,h.265/hevc增加使用了左下方块的边界像素作为当前块的参考。这是由于h.264/avc以固定大小的宏块为单元进行编码,在对当前块进行帧内预测时,其左下方块很有可能尚未进行编码,无法用于参考;而h.265/hevc四叉树形的编码结构使得这一区域成为可用像素。此外,这一区域像素的使用也提供了更多可能的预测方向,在某些情形下(如倾斜向上方向的纹理等)能够大幅度提高预测精度。

h.264 4x4 luma prediction modes
h.265/hevc 帧内参考示意图

H.265/HEVC亮度分量帧内预测支持5种大小的PU: 4x4, 8x8, 16x16, 32x32, 64x64
每一种大小的PU都有35种预测模式:
1. Planar模式
2. DC 模式
3. 33种角度模式
所有预测模式都使用相同的模板。


1.Planar模式(解决渐变式的平滑纹理区域)

Planar模式是由H.264/AVC中的Plane模式发展而来的,它适用于图像值缓慢变化的区域。Planar模式使用水平和垂直方向的两个线性滤波器,并将二者的平均值作为当前块像素的预测值。


帧内Planar模式预测
a)对应像素的计算公式 b)其计算效果图

2.DC模式(适用于大面积平坦区域)

DC模式适用于大面积平坦区域,其做法与H.264/AVC基本相同。当前块预测值可由其左侧和上方(注意不包含左上角、左上方和右上方)参考像素的平均值得到。

在4X4的非边缘块,即蓝色透明部分

3.角度模式

H.264/AVC使用了8中不同的预测方向(4x4大小),H.265/HEVC则进一步细化了这些预测方向,规定了33种角度预测模式,以更好地适应视频内容种不同方向的纹理。

下图给出了33种角度模式的具体方向,其中V0(模式26)和H0(模式10)分别表示为垂直和水平方向,其余模式的预测方向都可以看成再垂直或水平方向上做了一个偏移,该偏移角的大小可由模式下方的数字计算得出。

33种角度模式的预测方向

θ 为正表示预测方向向左偏移,θ为负表示预测方向向右偏移;对于水平类模式,θ为正表示预测方向向上偏移,θ为负表示预测方向向下偏移。

对于模式1125,当前块的预测需要同时用到上方和左侧的参考像素。为了能够使用一种统一的形式来计算预测像素值,H.264/HEVC标准采用了一种“投影像素”的方法,对于模式1825(垂直类模式),须将左侧参考像素按给定方向偷影至上方参考像素的左侧(水平排列),而对于模式11~17(水平类模式),须将上方参考像素按给定方向投影至左侧参考像素的上方(垂直排列)。


step:

  1. 对于给定垂直类模式M,使用“投影像素”法将其需要用到的参考像素映射为一维形式,记为Ref.
    2.计算当前像素对应参考像素的Ref中的位置,记为pos:
    pos = (y* offset[M]) >> 5
    3.计算当前像素对应参考像素的加权因子w:
    w = (y * offset[M]) & 31
    其中,&表示按位与运算。
    4.计算当前像素的预测值:
    Px,y = ((32-w)Ref[pos]+wRef[pos+1]+16)>>5
    需要注意的是,对于模式26(垂直模式),预测像素值改由下式计算:
    Px,y = Rx,o +((Ro,y - Ro,o) >> 0)

源码解析:
HM中TComPrediction.cpp文件下有以上模式的函数,具体的解析可以参考:
http://blog.csdn.net/hevc_cjl/article/details/8175721
http://blog.csdn.net/hevc_cjl/article/details/8184276
http://blog.csdn.net/hevc_cjl/article/details/8200793
http://blog.csdn.net/hevc_cjl/article/details/8216065
http://blog.csdn.net/hevc_cjl/article/details/8259844
http://blog.csdn.net/hevc_cjl/article/details/8259844

TComPrediction.cpp

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,194评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,058评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,780评论 0 346
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,388评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,430评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,764评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,907评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,679评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,122评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,459评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,605评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,270评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,867评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,734评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,961评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,297评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,472评论 2 348

推荐阅读更多精彩内容