概述
=========================================================================
块划分方式:
H264:
编码的基本单元为宏块:
预测单元:对于luma,4*4的块有9中种预测模式;16*16的块有4种预测模式。
对于chroma:8*8:4种预测模式。
-------------------------------------------------------------------------------------------------------------------------------
H265
对于luma:划分为正方形的块,4*4、8*8、16*16、32*32、64*64,每种块都有35种预测模式(Planar(0) + DC(1) + 33种角度)
而对于PU,可以以四叉树方式进一步划分为TU,一个PU内的所有TU共用一种预测模式。
-------------------------------------------------------------------------------------------------------------------------------
H266:
VVC采用混合树的方式划分,即:二叉树、三叉树、四叉树。所以划分后会出现矩形,而HEVC全都为正方形。最大128x128,最小尺寸还是4x4。
划分步骤:
一个CTU首先进行四叉树划分,即可以不划分,也可以是4个相同的子块。然后在四叉树的叶子节点通过二叉树或者三叉树
进一步划分,二叉树和三叉树可以交替进行划分,但是,二叉树和三叉树不能与四叉树交替使用。
在HEVC中I、P、B三种图像的亮度和色度共享相同的划分结构,但在VVC中,允许I帧的亮度和色度的块划分方式不同。
划分方式多种多样,允许混合树及二叉树、三叉树的划分,使得最终的块可能不是正方形,也有可能是矩形。
总的预测模式有67种【Planar(0) + DC(1) + 65种角度】
-------------------------------------------------------------------------------------------------------------------------------
AV1:
VP9支持四种划分方式:
AV1:LCU:128*128。划分方式:4分区、3分区(T型分区)、2分区。对于8*8块,不进行4分区和3分区划分。共10种
编码块(深度最多为2级) 划分为 变换块:共19种大小:
0 TX_4X4 4x4 transform
1 TX_8X8 8x8 transform
2 TX_16X16 16x16 transform
3 TX_32X32 32x32 transform
4 TX_64X64 64x64 transform
5 TX_4X8 4x8 transform
6 TX_8X4 8x4 transform
7 TX_8X16 8x16 transform
8 TX_16X8 16x8 transform
9 TX_16X32 16x32 transform
10 TX_32X16 32x16 transform
11 TX_32X64 32x64 transform
12 TX_64X32 64x32 transform
13 TX_4X16 4x16 transform
14 TX_16X4 16x4 transform
15 TX_8X32 8x32 transform
16 TX_32X8 32x8 transform
17 TX_16X64 16x64 transform
18 TX_64X16 64x16 transform
以光栅扫描的方式对TU进行编码(从左到右,从上到下)。帧内TU划分:亮度:最大64*64---最小4*4,色度:TU与CU相同大小。
=========================================================================
预测模式及计算方法:
AVC:不同划分有不同的预测模式。
HEVC:共35种预测模式:planar(0) + DC(1) + 33种角度预测
VVC:共67种预测模式:Planar(0) + DC(1) + 65种角度预测(HEVC的基础上,每两个角度模式中间加一种)
Planar:当前像素点在水平、垂直方向对应的参考像素a和b、参考像素左下c、参考像素右上d,四个像素的加权平均,权值与距离相关。
DC:上边和左边参考像素的均值。HEVC和AVC一样,VVC则要考虑矩形块的情况,但使用的参考像素都只有上边和左边的像素。
角度预测计算方法:
HEVC:在当前块内的像素被映射到参考像素之后,用最邻近的两个参考像素通过线性插值来生成预测像素值。
VVC:对于靠近水平和垂直方向的方向预测,采用4-tap Cubic 插值滤波器来更好的保留图像的边缘信息,对于靠近对角线方向的方向预测,采用4-tap Gaussian 插值滤波器来生成更加平滑的预测图像。
-------------------------------------------------------------------------------------------------------------------------------
AV1:
VP9支持10种帧内预测模式,8个方向(45°~207°) + DC + True Motion(TM)模式。
AV1:
1、定向帧内预测:即56个方向预测,由VP9的8个主方向引申出56个方向,每个主方向引申为7个方向,左右各三个,以3°为步长递增。模式编码:对主方向索引和角度增量索引编码,主方向编码在前。
2、帧内非方向预测:
1)Smooth模式:smooth_v、smooth_H、smooth。smooth模式使用垂直或水平方向上的二次插值或其平均值进行预测。二次内插中使用的样本包括:右上、上、左、左下的重建值。
2)peath模式 (取代了TM模式):预测值使用上、左和左上三个方向的值进行预测。
3、基于递归滤波的帧内预测器:为了捕获边缘参考块的衰减空间相关性,将亮度块看做二维的马儿可夫过程。为AV1设计了5个滤波器帧内预测模式。每个模式由一组8个7抽头滤波器表示,反映了4*2子块中的像素与相邻的7个相邻像素之间的相关性。将不同的滤波器应用于位于4×2子块内不同坐标处的样本。可以在单元4x2子块中递归地完成预测过程,这意味着为 一个4x2预测块生成的预测样本可用于预测另一个4x2子块。
4)从亮度预测的色度(CFL):色度的帧内预测器。通过以重建后亮度像素的线性函数建模得到色度像素。将速度像素建模为重合的重构亮度像素的线性函数。重建的亮度像素被二次采样为色度分辨率,然后去除直流分量,形成交流分量。为了从交流分量中估计色度的交流分量,而不是像某些现有技术那样要求解码器提供缩放参数,AV1CfL根据原始色度像素确定参数并在比特流中用信号发送。
5)调色板作为预测指标:有时,尤其是对于诸如屏幕截图和游戏之类的人造视频,可以用少量唯一颜色的近似块来替代。
6)帧内块拷贝:AV1允许其帧内编码器参考同一帧中先前重建的块,其方式类似于帧间编码器引用前一帧中块的方式,这对于通常包含重复纹理的屏幕内容视频非常有用。
=========================================================================
预测模式编码:
AVC:根据左测和上测块的预测模式的相关性,计算当前块的预测模式。根据两个语法元素编码。
HEVC:根据左侧和上侧的参考像素的预测模式建立MPM。列表长度为3。如果当前块的预测模式在MPM中,则编码MPM的索引值,否则,直接使用5bit编码预测模式索引。
VVC:MPM的列表长度扩展为6。由于Planar模式使用概率很高,VVC的MPM列表的首位为Planar模式。默认的6个MPM:{A, Planar (0) or DC (1), Vertical (50), HOR (18), VER - 4 (46), VER + 4 (54)}。再根据相邻帧内预测模式:当前块左方的编码块A和上方的编码块B的预测模式,修改MPM
HEVC对色度模式的编码:
共5种预测模式:Planar、垂直、水平、DC和对应亮度分量预测模式。如果亮度分量预测模式为前四种(Planar、垂直、水平、DC)中的一种,则预测模式替换为角度预测模式34。直接对色度模式编码进行编码。
VVC对色度的预测:在色度的预测过程中,H.266/VVC 添加了新的预测技术,称为跨分量线性模型预测(Cross-component linear model prediction,CCLM)。该技术的基本思想是使用当前块的重建亮度值,通过一个线性模型预测得到色度分量的预测。
最后
以上就是幽默薯片为你收集整理的AVC/HEVC/VVC/AV1 块划分、帧内预测过程及预测模式编码的全部内容,希望文章能够帮你解决AVC/HEVC/VVC/AV1 块划分、帧内预测过程及预测模式编码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复