POC的含义
来源:互联网 发布:24u标准网络机柜 编辑:程序博客网 时间:2024/04/30 01:43
刚好这段时间在看POC
关于参数的注解:
FrameNumOffset: 帧数的偏置.定义为当前帧为IDR时,FNO的值为0;当prevFrameNum > frame_num时,说明了有溢出,故FrameNumOffset = prevFrameNumOffset + MaxFrameNum.当prevFrameNum <=frame_num时FrameNumOffset = prevFrameNumOffset.
POCLsb: POC的低有效位.通过slice header传送到解码端.由于编码端知道传送的序列的顺序,所以在编码端,POC的值由以下方法确定:
(1)对于帧或者场 img->toppoc = IMG_NUMBER*img->offset_for_ref_frame[0];
(2)对于B帧 img->toppoc = (IMG_NUMBER-1)*img->offset_for_ref_frame[0] + 2* img->b_frame_to_code.
而编码端只需要传送POCLsb到解码端,解码端就可以解出POC的值.
解码端通过IDR帧进行分段(编码端并没有分段),每次分段将POCLsb置0.然后计算出POC的值.
POCMsb: POC的高有效位.POCMsb的计算方法如下:
if( ( pic_order_cnt_lsb < prevPicOrderCntLsb ) &&
( ( prevPicOrderCntLsb – pic_order_cnt_lsb ) >= ( MaxPicOrderCntLsb / 2 ) ) )
PicOrderCntMsb = prevPicOrderCntMsb + MaxPicOrderCntLsb
else if( ( pic_order_cnt_lsb > prevPicOrderCntLsb ) &&
( ( pic_order_cnt_lsb – prevPicOrderCntLsb ) > ( MaxPicOrderCntLsb / 2 ) ) )
PicOrderCntMsb = prevPicOrderCntMsb – MaxPicOrderCntLsb
else
PicOrderCntMsb = prevPicOrderCntMsb
这段程序的解释:例:log2_max_poc_lsb_minus4=0,prevPOCMsb=16,prevPOCLsb=1,POCLsb=14.
此时MaxPOCLsb=16,所以POCMsb=0
prevPOCMsb和prevPOCLsb的确定:
(1) 当前图片为IDR图片时, prevPOCMsb= prevPOCLsb=0;
(2) 非IDR,但mmco=5时,而且非底场时prevPOCMsb=0, prevPOCLsb=prevTopFOC;
(3) 非IDR,mmco不等于5,为底场时prevPOCMsb= prevPOCLsb=0;
(4) 除以上情况外Msb和Lsb都等于前一幅图片的Msb和Lsb.
算法:
0模式:
当为帧时
TopFieldOrderCount = POCMsb + POCLsb
POCLsb被送到每个slice header.POCMsb在POCLsb达到最大值时增加.
BottomFieldOrderCnt = TopFieldOrderCnt + delta_pic_order_cnt_bottom
因为帧时POC=min(TopFOC,BottomFOC)
故只需要计算TopFieldOrderCount = POCMsb + POCLsb
为场时
TopFieldOrderCount = POCMsb + POCLsb
BottomFieldOrderCnt= POCMsb + POCLsb
1模式:
TopFieldOrderCount = expected POC + delta_pic_order_cnt[0]
BottomFieldOrderCount = expected POC + delta[1] (场)
= expected POC + offset to bottom field + delta[0] (帧)
2模式:
TopFieldOrderCnt = BottomFieldOrderCount =tempPicOrderCnt
没有用作参考时
tempPicOrderCnt = 2 * ( FrameNumOffset + frame_num ) – 1
用作参考时
tempPicOrderCnt = 2 * ( FrameNumOffset + frame_num )
输出:
当为帧或场对时,输出TopFieldOrderCount和 BottomFieldOrderCnt中的小值;
当为顶场时,输出TopFieldOrderCount;
当为底场时输出BottomFieldOrderCnt.
expectedDeltaPerPicOrderCntCycle: 一个POC循环的期望delta值.等于在这个POC循环中的所有delta值之和.
deltaPOC[0]表示一个帧中顶场与expectPOC的差值.[1]表示底场与expectPOC的差值.
Offset_for_ref_pic用来计算参考图片间的POC的差值.
Offset_for_non_ref_pic用来计算非参考图片间的POC的差值.
Num_ref_frame_in_pic_order_cnt_cycle表示在一个POC循环中的参考图片的个数,可以取值0-255,但是在jm75中,设为1.
- POC的含义
- POC的含义
- POC的意思
- MS12-032的POC
- PoC
- PoC
- POC
- POC
- POC
- 264中 POC的计算方法
- metasploit 添加自己的poc
- 264中 POC的计算方法
- POC和frame_num的概念
- JM86 中 POC 的计算方法
- 提交Poc的平台介绍
- S2-052的POC测试
- POC,和frame_num的概念(转)
- MongoDB的Replica Set POC验证
- 学校知道老师有精神病仍留用
- 教师摧残8少女仅判5年理由竟为"未长期强奸"
- 开源世界新军: newxy新坐标
- newxy新坐标源码下载
- 如何循序渐进向DotNet架构师发展
- POC的含义
- 持久类及FormBean类构建器
- 博客信息系统开发流程
- 我看超女
- 蜘蛛协议
- Hibernate性能优化
- umask
- 项目开发经验谈!
- ROS速成