美文网首页
二、NAL Uint解析

二、NAL Uint解析

作者: 一亩三分甜 | 来源:发表于2024-02-18 09:59 被阅读0次

H264H265视频编解码算法文章汇总
NAL Unit解析

1.NAL Unit格式

  • NAL Unit:

    • NAL Unit = NAL Header + NAL Body
  • NAL Header:一个字节,包括:

    • forbidden_zero_bit:0禁止位,1bit;

    • nal_ref_idc:参考索引,代表当前NAL Unit重要性,2bit;

    • nal_unit_type: NAL Unit类型,5bit;

2.NAL Unit Header

image.png

3.NAL Unit 有效负载数据及其封装

  • NAL Body包含了有效负载数据的封装;

  • NAL Body自外向内的封装共3层:

    • 第一层:EBSP——扩展字节序列载荷

    • 第二层:RBSP——原始字节序列载荷

    • 第三层:SODB——数据字节流

3.1 Extended Byte String Payload

  • 等同于NAL Body数据本身;

  • 在EBSP中包含了一个特殊的字节0x03,表示“防止竞争校验字节” (emulation_prevention_three_byte);

  • 作用: 防止NAL Body内部出现于NAL Unit起始码0x 00 00 01或0x 00 00 00 01冲突。

当内部的连续4字节数据出现了下列情况时:

  • 0x 00 00 00

  • 0x 00 00 01

  • 0x 00 00 02

  • 0x 00 00 03

在两个0字节之后会插入值为3的一个字节:

  • 0x 00 00 03 00

  • 0x 00 00 03 01

  • 0x 00 00 03 02

  • 0x 00 00 03 03

3.2 RBSP和SODB

  • RBSP:Raw Byte Sequence Payload

    • 原始字节序列载荷:相当于NAL Body去掉附加03字节之后的数据;

    • 同原始的语法元素码流相比,RBSP在末尾添加了rbsp_trailing_bits()部分;

    • rbsp_trailing_bits():包括一个1bit和若干个0bit,用于实现字节的对齐

  • SODB:String Of Data Bits

    • 表示H.264的语法元素编码完成后的实际的原始二进制码流。SODB通常不能保证字节对齐。

相关文章

网友评论

      本文标题:二、NAL Uint解析

      本文链接:https://www.haomeiwen.com/subject/hiopadtx.html