您的位置:首页 > 理论基础 > 计算机网络

网络抽象层单元类型 (NALU)

2014-03-11 15:02 141 查看
http://www.cppblog.com/czanyou/archive/2008/11/26/67940.html

网络抽象层单元类型 (NALU)

NALU 头由一个字节组成, 它的语法如下:

+---------------+

|0|1|2|3|4|5|6|7|

+-+-+-+-+-+-+-+-+

|F|NRI| Type |

+---------------+

F: 1 个比特.

forbidden_zero_bit. 在 H.264 规范中规定了这一位必须为 0.

NRI: 2 个比特.

nal_ref_idc. 取 00 ~ 11, 似乎指示这个 NALU 的重要性, 如 00 的 NALU 解码器可以丢弃它而不影响图像的回放. 不过一般情况下不太关心

这个属性.

Type: 5 个比特.

nal_unit_type. 这个 NALU 单元的类型. 简述如下:

0 没有定义

1-23 NAL单元 单个 NAL 单元包.

24 STAP-A 单一时间的组合包

25 STAP-B 单一时间的组合包

26 MTAP16 多个时间的组合包

27 MTAP24 多个时间的组合包

28 FU-A 分片的单元

29 FU-B 分片的单元

30-31 没有定义

========================

起始码:如果 NALU 对应的 Slice 为一帧的开始,则用 4 字节表示,即 0x00000001;

否则用 3 字节表示,0x000001。

NAL Header:forbidden_bit,nal_reference_bit(优先级),nal_unit_type(类型)。

脱壳操作:为了使 NALU 主体不包括起始码,在编码时每遇到两个字节(连续)的 0,

就插入一字节 0x03,以和起始码相区别。解码时,则将相应的 0x03 删除掉。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: