一、参考帧列表
-
在上一篇博文中我们已知,对于每一个P帧和B帧的解码都需要从解码图像缓存DPB中选择某个参考帧
-
DPB中的参考帧可分为短期参考帧和长期参考帧两种
-
短期参考帧按照PicNum进行索引
-
长期参考帧按照LongTermFrameIdx索引。通过这两个索引值可以在参考帧列表中获取对应的参考帧图像。
-
解码不同的帧类型时,参考帧列表不同
- 当解码一个P或SP帧时,使用一个参考帧列表RefPicList0;
- 当解码一个B帧时,使用两个参考帧列表RefPicList0和RefPicList1。
-
执行过程如下:
- 对参考帧列表进行初始化;
- 若ref_pic_list_modification_flag_l0的值为1,参考帧列表RefPicList0会进行修改操作
- ref_pic_list_modification_flag_l1(对B帧)的值为1,参考帧列表RefPicList1(对B帧)会进行修改操作;
两个标识位ref_pic_list_modification_flag_l0和ref_pic_list_modification_flag_l1保存在slice_header中的ref_pic_list_modification结构中,该结构的定义见标准文档: