在H.264标准中,不能直接通过nal_begin[1]的bit7位(即nal_begin[1] & 0x80)来快速判断是否是first_mb_in_slice,原因如下:
1. first_mb_in_slice 是变长编码(UEV,即无符号指数哥伦布编码)
-
first_mb_in_slice是 slice header 的第一个字段,采用 无符号指数哥伦布编码(UEV),其长度可变(通常1~4字节)。 -
无法直接通过固定偏移(如
nal_begin[1])判断,因为:-
如果
first_mb_in_slice = 0,它可能仅占用 1~2 bits(UEV编码0的二进制是1)。 -
如果
first_mb_in_slice较大,可能占用 多个字节。
-
2. NAL Unit 结构
-
nal_begin[0]是 NAL header(forbidden_bit(1) | nal_ref_idc(2) | nal_unit_type(5))。

最低0.47元/天 解锁文章
2138

被折叠的 条评论
为什么被折叠?



