解析hevc的nal数据,判断是I帧P帧还是B帧
时间: 2023-07-15 10:10:29 浏览: 169
hevc帧间预测
4星 · 用户满意度95%
HEVC采用了类似H.264的NAL单元结构,每个NAL单元包含了一个完整的视频帧或片段的编码数据。在HEVC中,NAL单元可以是VPS、SPS、PPS、SEI或视频帧数据。
要判断一个NAL单元中包含的视频帧类型,需要解析NAL单元中的头部信息。在HEVC中,NAL单元的头部信息包括了NAL单元类型(NAL unit type)和层次(Layer ID)等信息。具体来说,NAL单元类型由header中的`nal_unit_type`字段指定,其值为0~55,其中0-32是VCL NAL单元,表示视频帧数据,33-35是非VCL NAL单元,表示参数集等信息。
对于VCL NAL单元,可以进一步从NAL单元的payload中获取视频帧类型。在HEVC中,视频帧类型与NAL单元类型之间的对应关系如下:
- NAL_UNIT_TYPE_BLA_N_LP:前向预测帧(B帧)
- NAL_UNIT_TYPE_BLA_W_LP:前向预测帧(B帧)
- NAL_UNIT_TYPE_BLA_W_RADL:前向预测帧(B帧)
- NAL_UNIT_TYPE_CRA:无参考帧(I帧)
- NAL_UNIT_TYPE_IDR_W_RADL:关键帧(I帧)
- NAL_UNIT_TYPE_IDR_N_LP:关键帧(I帧)
- NAL_UNIT_TYPE_IDR_W_LP:关键帧(I帧)
- NAL_UNIT_TYPE_P_BLA_W_LP:双向预测帧(P帧)
- NAL_UNIT_TYPE_P_BLA_W_RADL:双向预测帧(P帧)
- NAL_UNIT_TYPE_P_RPS_N_LP:双向预测帧(P帧)
- NAL_UNIT_TYPE_P_RPS_W_LP:双向预测帧(P帧)
- NAL_UNIT_TYPE_P_RPS_W_RADL:双向预测帧(P帧)
- NAL_UNIT_TYPE_P_SLICE:双向预测帧(P帧)
因此,可以根据NAL单元类型和payload中的数据,判断一个NAL单元中包含的视频帧类型是I帧、P帧还是B帧。
阅读全文