ref_pic_list_reordering( ) {
if( slice_type != I && slice_type != SI ) {
// ref_pic_list_reordering_flag_l0 指明是否进行重排序操作,这个句法元素等于1 时表明紧跟着会有一系列句法元素用于参考帧队列的重排序。
ref_pic_list_reordering_flag_l0
if( ref_pic_list_reordering_flag_l0 )
do {
// reordering_of_pic_nums_idc 指明执行哪种重排序操作
reordering_of_pic_nums_idc 操作
0 短期参考帧重排序,abs_diff_pic_num_minus1会出现在码流中,从当
前图像的PicNum减去 (abs_diff_pic_num_minus1 + 1) 后指明需要重
排序的图像。
1 短期参考帧重排序,abs_diff_pic_num_minus1会出现在码流中,从当
前图像的PicNum加上 (abs_diff_pic_num_minus1 + 1) 后指明需要重
排序的图像。
2 长期参考帧重排序,long_term_pic_num会出现在码流中,指明需要重
排序的图像。
3 结束循环,退出重排序操作。
reordering_of_pic_nums_idc
if( reordering_of_pic_nums_idc == 0 | |
reordering_of_pic_nums_idc == 1 )
// abs_diff_pic_num_minus1 在对短期参考帧重排序时指明重排序图像与当前的差
abs_diff_pic_num_minus1
else if( reordering_of_pic_nums_idc = = 2 )
// long_term_pic_num 在对长期参考帧重排序时指明重排序图像
long_term_pic_num
} while( reordering_of_pic_nums_idc != 3 )
}
if( slice_type == B ) {
ref_pic_list_reordering_flag_l1
if( ref_pic_list_reordering_flag_l1 )
do {
reordering_of_pic_nums_idc
if( reordering_of_pic_nums_idc = = 0 | |
reordering_of_pic_nums_idc = = 1 )
abs_diff_pic_num_minus1
else if( reordering_of_pic_nums_idc = = 2 )
long_term_pic_num
} while( reordering_of_pic_nums_idc != 3 )
}
}
H.264句法和语法总结(六)参考帧队列重排序(reordering)句法
最新推荐文章于 2023-11-29 14:57:17 发布