H265 数据结构与码流分析

H265 是在 H264 的基础上,又做了优化改进。如果了解 H264 的数据结构,再去看 H265 的数据结构,就非常简单了。

图像帧序列

  • H264 的图像帧序列:00 00 00 01 + SEI + SPS + PPS + IDR帧+P帧+B帧…+ I帧+P帧+B帧…
  • H265 的图像帧序列:00 00 00 01 + VPS+SPS+PPS+SEI+IDR帧+P帧+B帧…+ I帧+P帧+B帧…
  • 其中在有的视频文件中,SEI并不存在,是可选项。
  • H265 新增了 VPS 数据,视频参数集,主要用于传输视频分级信息,有利于兼容标准在可分级视频编码或多视点视频的扩展。
  • 和H264相同,每一个VPS、SPS、PPS、SEI、一个I帧、一个P帧都可以称为一个NALU。

NALU 格式

来看一个真正的 H265 的码流数据,具体分析一下:
在这里插入图片描述
NALU的格式都是 : 开始码+NALU头+NALU数据。

  • 开始码:00 00 00 01
  • H265 的 NALU 的头部由两个字节组成:
  | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
  | A |       Nalu Type       |             B         |     C     |
  
  - A:forbidden_zero_bit,1 bit, value = 0;
  - Nalu Type: nal_unit_type,6 bits;
  - B:nuh_layer_id,6 bits;
  - c:nuh_temporal_id_plus1,3 bits;

所以判断NALU的类型方式如下:

  • H264 NALU类型判断方式: int type = (code & 0x1F),这主要取决于 H264 的 NALU 的数据结构;
  • H265 NALU类型判断方式:int type = (code & 0x7E) >> 1;

就可以得出一下结论:

在这里插入图片描述
在进行编解码时,就可以按照上面的结论进行了。

在应用层面,只要了解了NALU的类型判断和码流序列就好了。

————————————————
版权声明:本文为 CSDN 博主「猿诗人」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wujian946110509/article/details/104818247

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值