H264语法(P帧语法细节)

5
我正在解析h264 NAL单元。在我的序列中,有设置图片参数集、序列参数集、I帧(它们也是IDR)和P帧(I和P帧由单个slice组成)。 (没有B帧)。
因此,我拥有的NAL单元流如下:
[SPS] [PPS] [I(IDR)] [P] [P] [P] ... [P] [P] [SPS] [PPS] [I(IDR)] [P] [P] [P] ....

我的流中的每个I帧也是IDR帧,因此其frame_num为0(根据h.264标准)。
另外,每个P帧的每个单元都比前一帧有更大的frame_num。
但是,我对pic_order_cnt_lsb感到困惑。 pic_order_cnt_lsb代表什么?
在我的序列中:
- 如果P帧具有frame_num == 2,则pic_order_cnt_lsb == 4 - 如果P帧具有frame_num == 3,则pic_order_cnt_lsb == 6 - 如果P帧具有frame_num == 4,则pic_order_cnt_lsb == 8 - 等等...(在我的情况下,pic_order_cnt_lsb == 2 * frame_num)
为什么frame_num和pic_order_cnt_lsb之间存在这样的相关性?
谢谢,
1个回答

1

看起来你有交错数据。使用交错数据,一个帧由两个场组成。每个帧的另一个场将具有pic_order_cnt_lsb的奇数值。

pic_order_cnt_lsb只是跟踪图片顺序的计数器的最低有效位。如果(如典型的交错数据),每帧有两张图片,则每次更改frame_num时它将增加两个。如果您的流是渐进式而不是交错的,则两者将一起递增。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接