H265相比较于H264,除了包含SPS、PPS外,还多包含一个VPS;在NALU header上,H.264的HALU header是一个字节,而H.265则是两个字节。

以OX4001为例,头信息可以被解析成4个部分,其中:

forbidden_zero_bit = 0:占1个bit,与H.264相同,禁止位,用以检查传输过程中是否发生错误,0表示正常,1表示违反语法;
nal_unit_type = 32:占6个bit,用来用以指定NALU类型
nuh_reserved_zero_6bits = 0:占6位,预留位,要求为0,用于未来扩展或3D视频编码
nuh_temporal_id_plus1 = 1:占3个bit,表示NAL所在的时间层ID
对比H.264的头信息,H.265移除了nal_ref_idc,此信息被合并到了nal_unit_type中,H.265NALU类型规定如下:

nal_unit_type NALU类型 备注
0 NAL_UNIT_CODE_SLICE_TRAIL_N 非关键帧
1 NAL_UNIT_CODED_SLICE_TRAIL_R
2 NAL_UNIT_CODED_SLICE_TSA_N
3 NAL_UINT_CODED_SLICE_TSA_R
4 NAL_UINT_CODED_SLICE_STSA_N
5 NAL_UINT_CODED_SLICE_STSA_R
6 NAL_UNIT_CODED_SLICE_RADL_N
7 NAL_UNIT_CODED_SLICE_RADL_R
8 NAL_UNIT_CODED_SLICE_RASL_N
9 NAL_UNIT_CODE_SLICE_RASL_R
10 ~ 15 NAL_UNIT_RESERVED_X 保留
16 NAL_UNIT_CODED_SLICE_BLA_W_LP 关键帧
17 NAL_UNIT_CODE_SLICE_BLA_W_RADL
18 NAL_UNIT_CODE_SLICE_BLA_N_LP
19 NAL_UNIT_CODE_SLICE_IDR_W_RADL
20 NAL_UNIT_CODE_SLICE_IDR_N_LP
21 NAL_UNIT_CODE_SLICE_CRA
22 ~ 31 NAL_UNIT_RESERVED_X 保留
32 NAL_UNIT_VPS VPS(Video Paramater Set)
33 NAL_UNIT_SPS SPS
34 NAL_UNIT_PPS PPS
35 NAL_UNIT_ACCESS_UNIT_DELIMITER
36 NAL_UNIT_EOS
37 NAL_UNIT_EOB
38 NAL_UNIT_FILLER_DATA
39 NAL_UNIT_SEI Prefix SEI
40 NAL_UNIT_SEI_SUFFIX Suffix SEI
41 ~ 47 NAL_UNIT_RESERVED_X 保留
48 ~ 63 NAL_UNIT_UNSPECIFIED_X 未规定
64 NAL_UNIT_INVALID
H.265的NALU类型是在信息头的第一个字节的第2到7位,所以判断H.265NALU类型的方法是将NALU第一个字节与0x7E进行与操作并右移一位,即:

NALU类型 = (NALU头第一字节 & 0x7E) >> 1
与H.264类似,H.265码流也有两种封装格式,一种是用起始码作为分界的Annex B格式,另一种则是在NALU头添加NALU长度前缀的格式,称为HVCC。

最新文章

  1. Oralce 重建EM服务,OracleDBConsoleOracle
  2. C++ int与string的转化
  3. 深入浅出Redis02 使用Redis数据库(String类型)
  4. c语言二维数组传递
  5. IE中Keep-Alive机制引起的错误
  6. C语言的左位移能不能超过8位?
  7. SQL最简单分类简介
  8. 追踪CPU跑满 堆栈调试
  9. [置顶] Android项目组织和代码重用
  10. malloc/free和new/delete的区别汇总
  11. weighted Kernel k-means 加权核k均值算法理解及其实现(一)
  12. AtomicInteger学习
  13. mysql 时间戳的使用!
  14. 01LaTeX学习系列之---TeX的介绍与认识
  15. docker on mac:误删default vm的处理方法
  16. 【AGC012E】 Camel and Oases ST表+状压dp
  17. (转)Linux ldconfig 与 ldd指令
  18. 《Android应用性能优化》3——电量、渲染
  19. Leetcode题库——17.电话号码的字母组合
  20. Python学习札记(十一) Function2 函数定义

热门文章

  1. CentOS7升级OpenSSL版本
  2. CentOS 7.x 安装 ZSH 终端
  3. Web前端基础(14):jQuery基础(一)
  4. python自带编译器在写入文件时闪退,或者一步步执行到写入时提示8170。解决办法:
  5. Java - 运算符 方法
  6. 使用策略模式重构switch case 代码
  7. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之十:为SQL Server配置Always On
  8. arcgis api 4.x for js 自定义 Draw 绘制手绘面以及手绘线,只针对二维视图(附源码下载)
  9. Linux-3.14.12内存管理笔记【构建内存管理框架(5)】
  10. 转载:关于STM32硬件I2C读写EEPROM代码实现原理的理解与总结