利用已编码的一个或几个样本值,根据某种模型或方法,对当前的样本值进行预测,并对样本真实值和预测值之间的差值进行编码,包括帧内预测和帧间预测两种。
对于当前编码的图像的输入像素值x(n),首先利用已编码像素的重建值得到当前像素的预测值p(n)进行残差,得到运动残差e(n),将e(n)送入量化器得到e’(n)后进行熵编码,同时利用量化后的残差e’(n)以及p(n)得到当前像素的重建值x’(n),用于预测之后的待编码像素。
经过熵编码得到当前像素预测误差的重建值e’(n),将其与预测值p(n)相加即可得到当前像素的重建值x’(n)。
H.265将图像划分为树编码单元(coding tree units, CTU),每个树编码块利用四叉树结构被递归分割
编码树单元可向下分成:
编码单元(Coding Unit,CU)
预测单元(Prediction Unit,PU)
变换单元(Transform Unit,TU)
每个编码树单元内包含1个亮度(Luma)编码树区块(CTB)与2个色度(Chroma)编码树区块(CTB),以及记录额外信息的语法元素,编码树单元的大小可以调整。
对于4:2:0的YUV视频,16 x 16的编码树单元,会包含1个16 x 16的亮度编码树区块,以及2个8 x 8的色度编码树区块。
编码单元是进行预测、变换、量化和熵编码登处理的基本单元。
一个CTU可以包含一个或切割成多个CU,一个CU是一个编码树的叶子节点。
在CU上采用z型扫描,编码顺序如上图所示,在整个编码树上是深度优先遍历,HEVC的最高深度为4(64-32-16-8-4)。
一个CTB(编码树区块)可以分成多个CB(编码块)
CU可以划分为:
①skipped CU:只能采用帧间预测模式,而且产生的运动向量和图像的残差信息不需要传送给解码器
②普通CU:可以采用帧内预测和帧间预测两种方式进行预测,然后对残差数据以及附加的控制信息进行编码
视频序列的分辨率必须是mininum CU size的整数倍,但可以不是 CTU size的整数倍。
编码单元是否继续被划分取决于分割标志位 Split flag。对于编码单元CUa,假设它的大小为2N×2N,深度为d。如果它对应的 Split flag值为0,则CU不再进行四叉树划分;反之,CU4将会被划分为4个独立的编码单元CU1。编码单元CUa1的深度和大小分别变为d+1和N×N。
包含一个PB_luma、2个PB_choma和相应的语法元素syntax element组成。
一个编码单元(CU)可以根据预测模式的切割类型(Splitting Type)分割成一个、两个或是四个预测单元(Prediction Units, PUs)。
帧内编码的CU只能使用2N×2N或N×N的平方划分,NxN模式只有对mininum size CB可以使用。
帧间编码的CU可以使用平方和非对称的方式划分。
PU只能被分割一次(预测单元不能再往下分,它已经是最小的单元,没有预测子单元)
8种PU划分模式:
对于AMP模式,只有32x32和16x16的CU可以使用,8x8和64x64的CU不能使用
如果一个CU的prediction mode是Skip,那么PU的划分模式只能是2N x 2N。
A.亮度模式的编码:
包含35种预测模式
①0:Planar模式
②1:DC模式
③2~34:33种角度模式
首先建立一个帧内预测模式候选列表candModelList,表中包含三个最可能候选预测模式,用于存储相邻PU的预测模式,下图是相邻PU位置图
设A的预测模式为ModeA,B的预测模式为ModeB,candModelList具体建立过程不阐述,当candModelList建立完毕后,利用该列表对当前PU模式信息进行编码
假设为S={M1,M2,M3}
B.色度模式的编码:
包含5种预测模式:
①0:Planar模式(100)
②1:垂直模式(角度模式26)(101)
③2:水平模式(角度模式10)(110)
④3:DC模式(111)
⑤4:对应亮度分量模式(0)
主要做整数转换或量化,是变换和量化的基本单元
编码单元CU可以只由一个转换单元或是由许多个较小的转换单元所组成,但转换单元与预测单元不同,转换单元可以递回地往下继续分割,用四叉树的方式存储。
PU可以以四叉树的形式划分TU,同一个PU内所有的TU共享同一种预测模式。
下图是编码单元与转换单元的关系,实线为编码单元,虚线为转换单元
转换单元TU的编码树CT可以称为转换树(Transform Tree)或是残量四分树(Residual Quadtree, RQT)
CU划分成TU中,TU的大小范围取决于max TU size、min TU size和max TU depth三个参数决定,这三个参数在SPS level进行传输。
max TU size为5表示最大TU是32x32,
min TU size为2表示最小TU是4x4。
max depth为3表示CU划分成TU最多划分成3层。
在帧内预测中,要确保PU大于等于TU,在帧间预测中没有限制。