• H265码流分析


    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。

  • 相关阅读:
    【2019-11-29】人品才是自己的护城河
    【一句日历】2019年11月
    【2019-11-27】没压力何来成长
    【2019-11-26】自我质疑的必要性
    day 02 ---class
    商品综合练习题
    day01 --class --home
    总结day1 ---- 基础内容学习 ,以及历史了解
    day00 预习 ------基础数据类型预习 ,int ,str ,bool ,dict ,set ,切片,等相关
    day00 -----博客作业1
  • 原文地址:https://www.cnblogs.com/lidabo/p/11856799.html
Copyright © 2020-2023  润新知