H265相比较于H264,除了包含SPS、PPS外,还多包含一个VPS;在NALU header上,H.264的NALU header是一个字节,而H.265则是两个字节。
以0x4001为例,头信息可以被解析成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_plus = 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_SLIC |