我正在解析h264 NAL单位。在我的序列中 - 有NAL单元,其中设置了图像参数,设置了序列参数,I帧(它们也是IDR)和P帧(I帧和P帧构成单个切片)。 (根本没有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
代表什么?
按照我的顺序:
frame_num==2
pic_order_cnt_lsb==4
frame_num==3
pic_order_cnt_lsb==6
frame_num==4
pic_order_cnt_lsb==8
pic_order_cnt_lsb == 2*frame_num
)为什么frame_num
和pic_order_cnt_lsb
之间存在这种相关性?
谢谢,
答案 0 :(得分:1)
看起来你有隔行数据。对于隔行扫描数据,一帧由两个场组成。每个帧的另一个字段将具有pic_order_cnt_lsb
的奇数值。
pic_order_cnt_lsb
只是跟踪图片顺序的计数器的最低有效位。如果(如在典型的隔行扫描数据中)每帧有两张图片,那么对于frame_num中的每次更改,它都会递增2。如果你的流是渐进的而不是交错的,那么这两个会一起增加。