H264、H265 NAL类型定义和计算方法

一、H264 NAL类型定义

    enum H264_NAL_TYP
    {
    H264_NAL_UNKNOWN = 0, // 未使用
    H264_NAL_SLICE = 1, // 不分区、非 IDR 图像的片(片的头信息和数据)
    H264_NAL_SLICE_DPA = 2, // 片分区 A
    H264_NAL_SLICE_DPB = 3, // 片分区 B
    H264_NAL_SLICE_DPC = 4, // 片分区 C
    H264_NAL_SLICE_IDR = 5,  // IDR 图像中的片
    H264_NAL_SEI = 6,// 补充增强信息单元

    //参数集是 H.264 标准的一个新概念,是一种通过改进视频码流结构增强错误恢复能力的方法。
    H264_NAL_SPS = 7, // 序列参数集 (包括一个图像序列的所有信息,即两个 IDR 图像间的所有图像信息,如图像尺寸、视频格式等)
    H264_NAL_PPS = 8, // 图像参数集 (包括一个图像的所有分片的所有相关信息, 包括图像类型、序列号等,解码时某些序列号的丢失可用来检验信息包的丢失与否)

    H264_NAL_AUD = 9, // 分界符
    H264_NAL_SEQ_END = 10,//序列结束(表明下一图像为IDR图像)
    H264_NAL_STREAM_END = 11,//码流结束(表明该流中已没有图像)
    H264_NAL_FILLER = 12, // 填充(哑元数据,用于填充字节)
    //13~23 //保留
    //24~31 //未使用
    };

二、H264 NAL计算方法

static H264_NAL_TYP ParseH264NalType(unsigned char code)
{
    return H264_NAL_TYP(code & 0x1F);
}

三、HEVC NAL类型定义

    enum HEVC_NAL_TYPE
    {
        HEVC_NAL_TRAIL_N    = 0,
        HEVC_NAL_TRAIL_R    = 1,    //P frame
        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,    //IDR
        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,    //VPS
        HEVC_NAL_SPS        = 33,    //SPS
        HEVC_NAL_PPS        = 34,    //PPS
        HEVC_NAL_AUD        = 35,
        HEVC_NAL_EOS_NUT    = 36,
        HEVC_NAL_EOB_NUT    = 37,
        HEVC_NAL_FD_NUT     = 38,
        HEVC_NAL_SEI_PREFIX = 39,    //SEI
        HEVC_NAL_SEI_SUFFIX = 40,
    };

四、HEVC NAL计算方法

static HEVC_NAL_TYPE ParseHevcNalType(unsigned char code)
{
    return HEVC_NAL_TYPE((code & 0x7E) >> 1);
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值