HEVC码流解析

根据《T-REC-H.265-201504-I!!PDF-E》协议描述。

一,HEVC的码流格式定义

字节流格式由字节流NAL 单元语法结构序列构成。每一字节流NAL 单元语法结构包含有一个起始编码前缀,后面跟随一个nal_unit(NumBytesInNALunit)语法结构。它可能(一定情况下,它应该)包含一个额外的zero_byte 语法元素。它也可能包含一个或多个额外的trailing_zero_8bits 语法元素。当为第一个字节流NAL 单元时,也可能包含一个或多个额外的leading_zero_8bits语法元素。



二,NAL_TYPE定义

/**
 * Table 7-1: NAL unit type codes
 */
enum HEVCNALUnitType {
    HEVC_NAL_TRAIL_N    = 0,
    HEVC_NAL_TRAIL_R    = 1,
    HEVC_NAL_TSA_N      = 2,
    HEVC_NAL_TSA_R      = 3,
    HEVC_NAL_STSA_N     = 4,
    HEVC_NAL_STSA_R     = 5,
    HEVC_NAL_RADL_N     = 6,
    HEVC_NAL_RADL_R     = 7,
    HEVC_NAL_RASL_N     = 8,
    HEVC_NAL_RASL_R     = 9,
    HEVC_NAL_VCL_N10    = 10,
    HEVC_NAL_VCL_R11    = 11,
    HEVC_NAL_VCL_N12    = 12,
    HEVC_NAL_VCL_R13    = 13,
    HEVC_NAL_VCL_N14    = 14,
    HEVC_NAL_VCL_R15    = 15,
    HEVC_NAL_BLA_W_LP   = 16,
    HEVC_NAL_BLA_W_RADL = 17,
    HEVC_NAL_BLA_N_LP   = 18,
    HEVC_NAL_IDR_W_RADL = 19,
    HEVC_NAL_IDR_N_LP   = 20,
    HEVC_NAL_CRA_NUT    = 21,
    HEVC_NAL_IRAP_VCL22 = 22,
    HEVC_NAL_IRAP_VCL23 = 23,
    HEVC_NAL_RSV_VCL24  = 24,
    HEVC_NAL_RSV_VCL25  = 25,
    HEVC_NAL_RSV_VCL26  = 26,
    HEVC_NAL_RSV_VCL27  = 27,
    HEVC_NAL_RSV_VCL28  = 28,
    HEVC_NAL_RSV_VCL29  = 29,
    HEVC_NAL_RSV_VCL30  = 30,
    HEVC_NAL_RSV_VCL31  = 31,
    HEVC_NAL_VPS        = 32,
    HEVC_NAL_SPS        = 33,
    HEVC_NAL_PPS        = 34,
    HEVC_NAL_AUD        = 35,
    HEVC_NAL_EOS_NUT    = 36,
    HEVC_NAL_EOB_NUT    = 37,
    HEVC_NAL_FD_NUT     = 38,
    HEVC_NAL_SEI_PREFIX = 39,
    HEVC_NAL_SEI_SUFFIX = 40,
};

三,实例分析

1,截取一段HEVC视频码流


2,elecard对应该段码流的分析结果。


3,具体分析说明:

第一个NALU:0x40 >> 1 , 得到0x20,十进制32,为NAL_VPS
第二个NALU:0x42 >> 1 , 得到0x21,十进制33, 为NAL_SPS
第三个NALU:0x44 >> 1 , 得到0x22,十进制34, 为NAL_PPS
第四个NALU:0x4E >> 1 , 得到0x27,十进制39, 为NAL_SEI_PREFIX
第五个NALU:0x26 >> 1 , 得到0x13,十进制19, 为NAL_IDR_W_RADL



猜你喜欢

转载自blog.csdn.net/crystalshaw/article/details/80624804
今日推荐