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

本篇博客是我学习h265的一点心得,也算给初学者的一点小启发,如有不完善的地方和不对的地方,望读者指正。

一、介绍一些基本概念
序列:视频图像就是以序列进行组织,即连续画面变化不大的图像帧。
帧:分为i帧、p帧和b帧:
i帧:I帧是最大去除图像空间冗余信息而压缩得到的帧,自带全部信息,不参考其他帧可独立解码,称为帧内编码帧。
b帧:双向搜索帧/双向内插帧,由I帧、P帧预测B帧。
p帧:前向搜索帧/前向预测帧,以I帧预测P帧。
视频编码层(VCL):codec编解码功能(基于宏块模型)、运动补偿预测处理、循环过滤器处理。
网路抽象层(NAL):NAL把VCL的输出封装成NALU(网络抽象层单元),以适应基于包的网络传输或面向包的多路复用环境。
宏块:编码处理的基本单元,由多个块组成。
块:一个编码图像要划分成多个块才能进行处理。
VPS:主要用于传输视频分级信息,有利于兼容标准在可分级视频编码或多视点视频的扩展,对于一个视频序列,无论它每一层的SPS是否相同,都参考相同的VPS。
SPS:保存了一组编码视频序列(Coded video sequence)的全局参数。所谓的编码视频序列即原始视频的一帧一帧的像素数据经过编码之后的结构组成的序列。而每一帧的编码后数据所依赖的参数保存于图像参数集中。一般情况SPS和PPS的NAL Unit通常位于整个码流的起始位置。SPS为所有 SS(Slice Segment)提供了公共参数(如图像格式、档次、级等),通过被PPS引用而作用于编码图像,一个CVS中所有被使用的PPS必须引用同一个SPS,SPS被引用后激活直到整个CVS结束。
PPS:包含一幅图像所用的公共参数,即一幅图像中所有片段SS(Slice Segment)引用同一个PPS。
SEI:主要起补充和增强的作用。SEI没有图像数据信息,只是对图像数据信 息或者视频流的补充,有些内容可能对解码有帮助。
二、Nalu结构
Nalu结构=开始码+Nalu头+Nalu数据。
开始码:由4个字节的16进制数00 00 00 01组成,表示一个Nalu的开始。
Nalu头:由2个字节的16进制数组成,第一位通常为0表示此Nalu有效,2~7位为type位表示为何种类型的Nalu,剩下的 8~15位为0,第16位为1。
(1)VPS(视频参数集):NALU头值为0x40 01(十六进制),NALU头type位值为32(十进制)。
(2)SPS(序列参数集):NALU头值为0x42 01(十六进制),NALU头type位值为33(十进制)。
(3)PPS(图像参数集):NALU头值为0x44 01(十六进制),NALU头type位值为34(十进制)。
(4)SEI(补充增强信息):NALU头值为0x4e 01(十六进制),NALU头type位值为39(十进制)。
(5)IDR帧:0x26 01(十六进制),NALU头type位值为19(十进制),IDR帧是一个序列里面的第一个I帧,P帧不可预测IDR帧之前的I帧。
(6)0x02 01(十六进制),NALU头type位值为1(十进制)语义上理解为语义为被参考的后置图像,且非TSA、非STSA的SS编码数据。
(7)从ffmpeg上的定义理解为type位从1到9(十进制数)都是P帧,16-21(10进制)是I帧。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值