您的位置:首页 > 其它

H.264句法和语法总结(六)参考帧队列重排序(reordering)句法

2011-08-03 20:38 344 查看
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 )

}

}

分享到:

上一
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: