关于h265协议的解读和应用(基础)(2)

上一篇说到nalu头16~21都是I帧,这回具体讲一讲这些I帧具体含义:
IDR:这个词儿的全称是Instantaneous Decoding Refresh,是在H.264中定义的结构。在H.264中,IDR帧一定是I帧,而且一定是GOP的开始,也是H.264 GOP的关键帧。但是反过来却不成立,I帧不一定是IDR帧。GOP的长度不是定死不变的,在H.264的编码器中,如果判定场景发生变化,那么及时不到原定GOP的末尾,也会在这个位置加入一个IDR,作为新一个GOP的开始。此时这个GOP的长度就被缩小了。
CRA:h265采用的是开放GOP,第一个GOP的第一个帧内编码图像为IDR图像,后续GOP中的第一个帧内编码图像为non-IDR,就是后面GOP中的帧间编码图像可以越过non_IDR图像,使用前一个CRA中已编码的图像做参考图像。
BLA: BLA只是CRA在视频流切换情况下的一种特例。视频流在某个RAP上要求切换到另一个视频流继续解码,则直接将该CRA同另一个视频流中的接入CRA连接,后者便是BLA。由于BLA之前解码到缓存的视频流与当前视频流无关,因此其特性类似于直接从该点进行随机存取后的CRA。
RASL(random access skipped leading)和RADL(random access decodable leading):这是两种GOP间的图像类型。如果解码器从某个CRA随机接入,则按照显示顺序的后面几帧数据由于缺少参考帧而不能解码,这些图像将被解码器抛弃,即skip leading。而对于没有从当前CRA接入的数据,这些图像可以被正常解码显示,因此称为decodable leading。由于这些数据是有可能舍弃的,因此其他图像(trailing pictures)不能参考这些数据,否则万一这些图像被舍弃,将会有更多的图像受其影响而不能正常解码。
STSA和TSA:随机接入点后按解码和输出顺序的图像。
附上两张nalu类型的数据表:
在这里插入图片描述

在这里插入图片描述
h265的vps/sps/pps:(与分辨率有管,与帧率无关)
1、4M
Payload: 40010c01ffff016000000300b00000030000030099aa0240
Payload: 420101016000000300b00000030000030099a001402005a1636aa4932f90
Payload: 4401c0f2f03c90

2、4M_4x3
Payload: 40010c01ffff016000000300b00000030000030099aa0240
Payload: 420101016000000300b00000030000030099a001202006c1636aa4932f90
Payload: 4401c0f2f03c90

3、3M
Payload: 40010c01ffff016000000300b00000030000030099aa0240
Payload: 420101016000000300b00000030000030099a00100200601636aa4932f90
Payload: 4401c0f2f03c90

4、1080P
Payload: 40010c01ffff016000000300b0000003000003007baa0240
Payload: 420101016000000300b0000003000003007ba003c08010e58daa924cbe40
Payload: 4401c0f2f03c90

5、960P
Payload: 40010c01ffff016000000300b0000003000003007baa0240
Payload: 420101016000000300b0000003000003007ba00280803c1636aa4932f9
Payload: 4401c0f2f03c90

6、720P
Payload: 40010c01ffff016000000300b0000003000003005daa0240
Payload: 420101016000000300b0000003000003005da00280802d1636aa4932f9
Payload: 4401c0f2f03c90

7、D1
Payload: 40010c01ffff016000000300b0000003000003005aaa0240
Payload: 420101016000000300b0000003000003005aa00582009058daa924cbe4
Payload: 4401c0f2f03c90
写一下其中都包含的的信息:
VPS:①多个子层和操作点共享的语法元素;
②会话所需的有关操作点的关键信息,如档次、级别;
③其他不属于SPS的操作点特性信息,例如与多层或子层相关的虚拟参考解码器;
SPS:①图像格式的信息;
②编码参数信息;
③与参考图像相关的信息;
④档次、层和级相关参数;
⑤时域分级信息;
⑥可视化可用性信息;
⑦其他信息;
PPS:①编码工具的可用性标志;
②量化过程相关句法元素;
③Tile相关句法元素;
④去方块滤波相关句法元素;
⑤片头中的控制信息;
⑥其他编码一幅图像时可以共用的信息;
vcl——nalu中的信息:
NALU负载长度为整数字节,承载视频压缩后的原始字节序列载荷(RBSP);
RBSP是对视频编码后的原始比特流片段SODB(STring OF Data Bits)进行添加尾部(添加结尾比特1,以凑足整字节)的包装;
在字节流环境中,如果NALU对应的Slice为一帧的开始,则其开始码为0x00000001,若对应的Slice不是一帧的开始,则为0x000001;
可能有些读者有些糊涂码流和nalu数据的关系:
VCL层包含了视频数据的内容,NAL主要负责对视频压缩后的数据进行划分和封装,保证数据能在不同的网络环境中传输。通过NAL,视频压缩数据将被根据其内容特性分割成具有不同特性的NAL单元(NAL Unit,NALU),并对NALU的内容特性进行标识。因此,传输网络根据NALU的标识就可以优化视频传输的性能,而不需再分析视频的内容特征。VCL可认为是视频编码后的裸码流,NAL是将VCL裸码流进行打包后进行网络传输的码流。
最后稍微一讲编码树单元:
HEVC将编码帧分为若干编码树块( Coding Tree Blocks,CTB),它们是进行预测、变换、量化和熵编码等处理的基本单元,其尺寸或者所包含的像素数可以是16×16、32×32或64×64。
CTU 又可以按照四叉树结构分解为若干方形编码单元( Coding Units,CU),同一层次的CU必须是同一尺寸的4个方块,最多可有4层分解,即64×64,32×32,16×16和8×8。如果不分解,则这个CTU仅包含一个 CU。每个CU包含一块亮度编码块( Coding Blocks,CB) 、两个色度CB以及相应的语法元素。CB 的大小和图像的特性是自适应的,在图像比较平缓区域,选择比较大的CB,而在图像边缘或纹理复杂的区域,选择比较小的CU,有利于提高编码效率。CU是决定进行帧内预测还是帧间预测的单元,也就是说整个 CU只能是一种预测模式,不是帧内就是帧间。CU还可以按照四杈树层次分解(或不分解) 为更小的预测单元( Prediction Units,PU) 和变换单元( TB,Transform Units) 。
预测单元PU是进行预测运算的基本单元,包括帧内和帧间预测两类。一个编码单元CU可以包含一个或者多个预测单元,CU到PU仅允许一层划分,最小的PU为4×4。划分可以是对称的,也可以是不对称的。如图所示, 一个2N×2N ( N可以是 4、8、16、32) 的CU可划分为8种包含PU方式。
变换单元TU是进行变换和量化的基本单元,是在CU的基础上划分的,但受到所在的预测单元PU的限制。如PU是正方形,则TU也必须是正方形,尺寸为4×4、8×8、16×16、32×32。帧内编码模式中变换单元的尺寸需小于或者等于预测单元,而帧间编码模式中变换单元可以大于预测单元,但是不能超过编码单元 CU。一个编码单元中多个变换单元也是按照四叉树的结构排列,即每向下一层划分为4个小的正方形。如 PU为非正方形时,TU 也需非正方形,其大小为32×8、8×32、16×4、4×16,可用于亮度分量,其中只有32×8、8×32 可用于色度分量。HEVC中允许使用的变换包括4x4、8x8、16x16和32x32整数DCT变换以及对于Intra预测中4x4亮度块使用的整数DST变换。
在HEVC中新引入了片( Tile)的划分,用水平和垂直的若干条边界将图像帧划分为多个矩形区域,每个区域就是一个片,每一个片包含整数个CTU,片之间也可以互相独立,以此实现并行处理。片划分时并不要求水平或垂直边界均匀分布, 可根据并行计算和差错控制的要求灵活掌握。在编码时图像中的片也是按扫描顺序进行处理,每个片中的CTU 也是按扫描顺序进行。在HEVC中,允许条和片在同一图像帧中同时使用,既可以一个条中包含若干片,又可以一个片中包含若干条。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值