HEVC笔记-1

简介

在这里插入图片描述

H265视频标准编码框架
1、帧内预测
该模块主要用于去除图像的空间相关性。通过边马厚的重构块信息来预测当前像素块以去除空间冗余信息,提高图像的压缩率。与以往的标准相比,H265/HEVC支持更多的帧内预测模式
2、帧间预测
该模块主要用于去除图像的时间相关性。帧间预测通过降已编码的图像作为当前帧的参考图像,来获取各个块的运动信息,从而去除时间冗余,提高压缩效率。在H265/HEVC中,帧间预测可采用单向和双向的参考图像来进行预测,包括类似H264/AVC中分层B帧的预测结构。
3、变换量化
改模块通过对残差数据进行变换量化以去除频域相关性,对数据进行有损压缩。变换编码将图像从时域变换至频域,将能量集中至低频区域。量化模块可以减小图像编码的动态单位。变换模块和量化模块从原理上属于两个相互独立的过程,但是在H.265/HEVC中,两个过程相互结合,减少了计算复杂度。
4、去方块滤波
在基于块的视频编码中,形成的重构图像会出现方块效应,采用去方块滤波课达到削弱甚至消除方块效应的目的,提高图像的主观质量和压缩效率。H.265/HEVC仍然是基于块的视频编码,因此延续了环内去方块滤波的思路。
5、样点自适应补偿
SAO滤波处于去方块滤波之后,通过解析去方块滤波后的像素的统计特性,为像素添加相应的偏移值,可以在一定程度上削弱振铃效应,提高图像的主观质量和压缩效率。这是H.265/HEVC新增的一项编码方式。
6、熵编码
该模块将编码控制数据、量化变换系数、帧内预测数据以及运动数据等编码为二进制流进行存储或传输。熵编码模块的输出数据即原始视频压缩后的码流。H.265/HEVC中采用先进的基于上下文的自适应二进制算术编码CABAC进行熵编码,引入了并行处理架构,在速度、压缩率和内存占用等方面均得到了大幅改善。

H265/HEVC编码新技术:四叉树的灵活块分割结构、不同角度的帧内预测模式、自适应的运动矢量预测AMVP、合并技术Merge、可变尺寸的离散余先变换、模式依赖的离散正弦变换、性能更好的CABAC、以及新的样点自适应补偿滤波器等。

H265采用了编码树单元CTU和编码树块CTB。为了更灵活表示视频内容,H265为图像的划分定义了一套全新的分割模式,包括编码单元CU、预测单元PU、变换单元TU。

数字视频格式

数字视频格式作为视频编码器的输入和解码器的输出,具有时间分辨率、空间分辨率、颜色空间、量化深度等多个参数,不同格式的视频具有不同的特性,也应采用不同的处理方式。
编码图像格式
承载编码图像格式的语法元素属于序列参数集SPS,SPS表征一组图像(CVS)的共有参数,一个CVS内的所有图像应具有相同的格式。SPS中编码图像格式的相关语法如下
在这里插入图片描述
解码图像格式
解码图像格式除编码图像携带的格式信息,还包括扫描类型、图像类型。色彩空间等信息。
扫描类型:每副图像必须的格式信息,用于确定图像时逐行模式的一帧、隔行模式的顶场、隔行模式的底场、隔行模式的多场。
与解码图像格式相关的主要3段语法如下。
1、属于SPS的语法元素集profile_tier_level()包含了解码图像的格式信息,是视频流中必须存在的元素,其作用于CVS中的所有图像。
在这里插入图片描述
2、VUI(Video Usability Information)参数主要包含解码图像的格式信息,如采样纵横比、光电转换特性、颜色空间等。VUI属于SPS,也作用于一个CVS中的所有图像。VUI不一定存在,同样也不影响视频的解码过程
在这里插入图片描述
在这里插入图片描述

3、SEI(Supplemental Enhancement Information)语法元素集pc_timing()也可能包含解码图像的格式信息,如扫描类型、图像类型等。SEI不一定存在,同样也不影响解码过程。
在这里插入图片描述
source_scan_type表明扫描类型,指图像时逐行扫描还是隔行扫描。如果没有可以通过SPS中general_progressive_source_flag和general_interlaced_source_flag的值组合推算得到。

pic_struct表明图像类型,如图像为逐行扫描模式的帧、隔行扫描模式的顶场等。pic_struct应该与VUI语法元素field_seq_flag一致,当field_seq_flag无法获取时,pic_struct应设置为0。field_seq_flag为0时,表明CVS中所有图像为帧,为1时表示CVS中的所有图像为场,需要pic_struct进一步表明图像的详细图像类型。

采样高宽比
表示像素的宽度与高度的比值,结合图像的空间分辨率就可以得到图像显示时的宽高比。图像的采样的宽高比由VUI语法元素aspect_ratio_idc标识。
在这里插入图片描述
过扫描
overscan_appropriate_flag,overscan是指显示器输入图像的边缘附近部分像素在显示屏上不可见
视频格式
VUI语法元素video_format表明了视频的格式。
像素特征值
颜色是由亮度和色度共同表示的,而色度(Chromaticity)则时不包括亮度在内的颜色的性质,它反映的时颜色的色调和饱和度。VUI语法元素colour_primaries表明视频的RGB空间中RGB分量对应的色度最表(Chromaticity coordinates)。VUI语法元素matrix_coeffs表明亮度和色度信号与RGB信号的转换关系矩阵,结合语法元素video_full_range_flag可以确定解码器输出像素值对应的RGB空间的像素值,VUI语法元素transfer_characteristics表明像素信息的光电转换关系,结合RGB空间像素值可以确定像素位置的光强度。

编码结构

新的语法架构使得H265在压缩率和网络适应性两个方面都有显著提升。H.265/HEVC还相应低规定出不同的档次、层、级,以适应各种应用场景。
视频序列由若干时间连续的图像构成,在对齐进行压缩时,先将改视频序列分割为若干个小的图像组(GOP)。视频编码中存在两种GOP:封闭式GOP和开放式GOP。
封闭式GOP:以IDR图像开始,各个GOP之间独立编解码。
开放式GOP:第一个GOP中的第一个帧内编码图像为IDR,后续GOP中的第一帧内编码图像为non-IDR图像。
每个GOP又被划分为多个片(Slice),片与片之间进行独立编解码。主要目的之一是数据丢失的情况下进行重新同步。
Slice由一个或者多个片段(SS)组成。编码时,SS被分割成相同大小的CTU,每一个CTU按照四叉树的方式被划分成不同CU。

HEVC将GOP层、Slice层中共用的大部分元素游离出来,组成SPS和PPS。SPS包含一个CVS(Coded Video Sequence)中所有图像共用的信息。
SPS内容大致包括解码相关信息,如档次、分辨率、某档次中编码工具开关标识和涉及的参数,时域可分级信息等。
PPS包含一副图像所用的公共参数,即一副图像中所有SS共用一个PPS,大致内容包括图像控制信息,如量化参数(QP)、分块信息等。
一个视频序列的编码码流由一系列SS所生成的多个VCLU单元和夹杂其间的一些分割标示数据和餐数据数据组成。分割标示数据用于区分一个SS属于哪副图像、那个CVS。

视频参数集
无论每一层的SPS是否相同,都参考相同的VPS。
VPS包含的信息有:
1、多个子层和操作点共享的语法元素
2、会话所需的有关操作点的关键信息,如档次、级别
3、其他不属于SPS的操作点特征信息,例如与多层或子层相关的虚拟参考解码器(HRD)参数

描述子符号标示如下:
ae(v):基于上下文自适应的二元算术编码
b(8):读进连续的8 bit
f(n):读进连续的n bit
se(v):有符号指数Golomb熵编码
u(n):读进连续的n bit,且它们解码后的值为无符号整数
ue(n):无符号指数Golomb熵编码
上面描述子中括号内的参数为n时,表明该语法元素是定长编码;参数为v时表示语法元素采用变长编码。

VPS语法元素
在这里插入图片描述
在这里插入图片描述
序列参数集
SPS的内容就是包含一个CVS中所有编码图像的共享编码参数。
SPS包含的语法元素大致分为以下几个部分:
1、图像格式信息。包括采样格式、图像分辨率、量化深度、解码图像是否需要剪裁输出以及相关的剪裁参数。
2、编码参数信息。包括编码块、变换块的最小尺寸和最大尺寸,帧内帧间编码时变换块最大划分深度,对4:4:4采样格式的三个通道分量是否单独编码,是否需要帧内强滤波,帧间预测过程中的某些限制条件【如非堆成模式(AMVP)的使用、时域MV预测的使用】是否使用量化矩阵,是否需要样点自适应补偿(SAO),是否采用PCM模式及在该模式下的相关编码参数。
3、与参考图像相关的信息。包括短期参考图像的设置,长期参考图像的使用和数目,长期参考图像的POC和其能否作为当前图像的参考图像
4、档次、层和级相关参数
5、时域分级信息。包括时域子层的最大数目,控制传输POC进位的参数,时域子层顺序标识开关,与子层相关的参数(如解码图像缓冲区的最大需求)
6、可视化可用性信息(VUI),用于表征视频格式等额外信息
7、其他信息。报刊当前SPS的VPS编号,SPS标识号和SPS扩展信息。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图像参数集
一个CVS包含多幅图像,每副图像可能包括一个或多个SS,每个SS头提供了器所引用的PPS标识号,以此得到相应PPS中的共用信息。对于同一副图像,其内所有的SS都共用一个PPS。PPS中存在一些与SPS相同的参数,PPS中的这些参数值会覆盖SPS中它们的取指。
PPS内容大致分为:
1、编码工具的可用性标志。指明片头中一些工具是否可用。这些编码工具主要包括符号位隐藏、帧内预测受限、去方块滤波、P/B图像的加权预测、环路滤波跨越边界或者Tile边界、Transform skip模式和Transquant bypass模式。
2、量化过程相关句法元素。包括每个Slice中QP初始值的设定以及计算每个CU的QP时所需的参数。此外,还有亮度量化参数的偏移量和由它带出的色度量化参数的偏移量等。
3、Tile相关句法元素。包括Tile划分模式的可用性标志,以及在使用Tile划分模式时的一些参数,例如Tile的划分形式,总行数,总列数及第几行、第几列的标识等。
4、去方块滤波相关句法元素。包括去方块滤波的可用性标志以及使用取方块滤波时的一些控制信息和参数,如去方块滤波的默认补偿β和tC。
5、片头中的控制信息。包括当前偏是否为依赖片、片头中是否有额外的Slice头比特。图像解码顺序与输出顺序的先后关系以及CABAC中确定上下文变量初始化表格时使用的方法等。
6、其他编码一副图像是可以共用的信息。包括ID标识符、参考图像的数目和并行产生merge候选列表的能力等。其中ID标识符用于标识当前活动的参数集,主要是当前活动的PPS的自身ID和其引用的SPS的ID。此外,PPS中还包括变换矩阵信息是否存的标志位,这一变换矩阵信息若存在,便会对SPS中的该信息进行覆盖。
在这里插入图片描述
在这里插入图片描述
片段层
一个图像可以被分割为一个或多个片(Slice),每个片的压缩数据都是独立的,Slice头信息突发从前一个Slice的头信息推断得到。这就要求Slice不能跨过它的边界来进行帧内或帧间预测,且在进行熵编码前需要进行初始化。但在环路滤波时,允许滤波器跨越Slice的边界进行滤波。使用Slice的目的是当数据丢失后能再次保证解码同步。
Slice可分为以下几部分
1、I Slice:该Slice中所有CU的编码过程都使用帧内预测
2、P Slice:在I Slice的基础上,该Slice中的CU还可以使用帧间预测,每个预测块使用至多一个运动补偿预测信息。P Slice只使用图像参考列表list0.
3、B Slice:在P Slice的基础上,B Slice中的CU也可以使用帧间预测,但是每个预测块使用至多两个运动补偿预测信息。B Slice可以使用图像参考列表list0和list1.
一个Slice可以进一步划分成若干SS,包括一个独立SS和若干个依赖SS。一个SS包含整数个CTU(至少一个)
SS层所需的图像层信息可以通过引用相关的PPS来获得。SS头包含其引用的PPS的标识号,SS头中会存在写与PPS中相同的参数,SS头中的这些参数值会对PPS中的该参数值进行覆盖。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Tile单元
从水平和垂直方向将一副图像分割为若干个矩形区域,一个矩形区域就是一个Tile。每个Tile包含整数个CTU,其可以独立解码。划分Tile的主要目的是增强并行处理能力的同时又不引入新的错误扩散。
Silce和Tile划分目的都是为了进行独立解码,Tile形状基本为矩形,Slice的形状则为条带状。
Slice和Tile至少满足以下两个条件之一;
1、一个Slice/SS中所有的CTU属于同一个Tile。
2、一个Tile中的CTU属于同一个Slice。

编码单元
H265最大CB为64x64,最小为8x8。采用四叉树的循环分层结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
预测单元
预测单元PU规定了编码单元的所有预测模式。比如帧内预测的方向、帧间预测的分割方式、运动矢量预测、以及帧间预测参考图像索引号都属于预测单元的范畴。

在这里插入图片描述
在这里插入图片描述
变换单元
变换单元是独立完成变换和量化的基本单元,H265/HEVC支持大小为4x4~32x32的编码变换。
在这里插入图片描述
档次、层和级别
档次(profile)主要规定编码器可采用哪些编码工具或算法
级别(level)则是指根据解码端的负载和存储空间情况对关键参数加以限制【如最大采样频率、最大图像尺寸、分辨率、最小压缩率,最大比特率和CPB(解码缓冲区)大小等】
有些Level定义了两个Tier:主层(Main Tier)和高层(Hign Tier),主层用于大多数应用,高层用于那些最苛刻的应用。

档次
分别是Main,Main 10和Main Still Picture。这三个档次的限制条件如下:
1、只使用4:2:0色度采样信号
2、使用了Tiles变不能使用WPP,每一个Tile亮度分辨率至少要为256x64
3、Main 10档次要支持10位像素深度,Main Still Picture档次不支持帧间预测

层和级别
H265/HEVC规定了2个层和13个级。4和4以上的8个Level支持High Tier。
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值