H.264中最优运动矢量残差的输出
2015-04-30 18:30
183 查看
原文转自:http://www.360doc.cn/article/1412027_118336851.html
H.264中最优运动矢量残差的输出
2010-07-27 10:03
最优运动矢量的求解是在encode_one_macroblock函数里面,因此该函数执行完毕运动矢量及分割模式也就相应的确定了,这里我们对这一块作一下简要的分析。
运动矢量的写码流是在write_one_macroblock里的,它的一个大致的函数调用关系是:
write_one_macroblock----->writeMotionInfo2NAL----->writeMotionVector8x8,就是这样了,在writeMotionInfo2NAL里:
这里的两个循环主要是遍历一个宏块里的大的分割块,分割模式一共有1,2,3,(4,5,5,7)这些种,后四种又统称为P8*8模式,每个宏块的运动矢量数目是这样的,模式1有一个运动矢量,模式2,3有两个,P8*8则根据8*8子块的分割模式细分。我们进writeMotionVector8x8函数去看看。
上面被选中的那一句就是求运动矢量残差了,等号右边的两个也就是相应的最佳运动矢量和预测运动矢量,这里也有两个循环,是循环P8*8模式里的小分块的。
我们只要在这里把curr_mvd输出来就能得到运动矢量残差数据了,若想得到最优运动矢量则输出等号右边一项即可。
这里存在一个问题,如果在writeMotionVector8x8函数里直接输出运动矢量信息当然也是可以的,但在encode_one_macroblock函数里进行模式判决的时候调用了RDCost_for_macroblock以及RDCost_for_8*8block,而这两个函数里也分别调用了writeMotionInfo2NAL,因此在进行模式选择时也把一些其它模式求解出的运动矢量残差数据输出来,这个问题怎么解决呢。
可以这样解决,我们自己写一个函数,将我们需要的相关信息输出来,然后在encode_one_macroblock 函数执行完以后调用这个函数,就可以很好的避免了输出多余的信息了。
这里我直接把我写好的函数贴出来吧:
就是这样的了,当然这个函数还有其它一些功能,不必理会。
H.264中最优运动矢量残差的输出
2010-07-27 10:03
最优运动矢量的求解是在encode_one_macroblock函数里面,因此该函数执行完毕运动矢量及分割模式也就相应的确定了,这里我们对这一块作一下简要的分析。
运动矢量的写码流是在write_one_macroblock里的,它的一个大致的函数调用关系是:
write_one_macroblock----->writeMotionInfo2NAL----->writeMotionVector8x8,就是这样了,在writeMotionInfo2NAL里:
这里的两个循环主要是遍历一个宏块里的大的分割块,分割模式一共有1,2,3,(4,5,5,7)这些种,后四种又统称为P8*8模式,每个宏块的运动矢量数目是这样的,模式1有一个运动矢量,模式2,3有两个,P8*8则根据8*8子块的分割模式细分。我们进writeMotionVector8x8函数去看看。
上面被选中的那一句就是求运动矢量残差了,等号右边的两个也就是相应的最佳运动矢量和预测运动矢量,这里也有两个循环,是循环P8*8模式里的小分块的。
我们只要在这里把curr_mvd输出来就能得到运动矢量残差数据了,若想得到最优运动矢量则输出等号右边一项即可。
这里存在一个问题,如果在writeMotionVector8x8函数里直接输出运动矢量信息当然也是可以的,但在encode_one_macroblock函数里进行模式判决的时候调用了RDCost_for_macroblock以及RDCost_for_8*8block,而这两个函数里也分别调用了writeMotionInfo2NAL,因此在进行模式选择时也把一些其它模式求解出的运动矢量残差数据输出来,这个问题怎么解决呢。
可以这样解决,我们自己写一个函数,将我们需要的相关信息输出来,然后在encode_one_macroblock 函数执行完以后调用这个函数,就可以很好的避免了输出多余的信息了。
这里我直接把我写好的函数贴出来吧:
就是这样的了,当然这个函数还有其它一些功能,不必理会。
相关文章推荐
- 从下象棋的角度来类比浅析H.264中的像素残差和运动矢量残差
- 从下象棋的角度来类比浅析H.264中的像素残差和运动矢量残差
- H.266帧间预测:自适应运动矢量残差分辨率和更高运动矢量存储精度
- 一段小小的C++代码(从保存H.264运动矢量过程中想到的)
- H.264笔记之四--运动矢量预测
- H.264笔记之四--运动矢量预测
- H.264 像素块预测与运动补偿
- ffmpeg获取运动矢量问题
- DM365同时实现H.264和JPEG双码流输出
- 回溯——矩阵中路径问题(0,1矩阵中最优路径、矩阵中的路径、机器人的运动范围)
- H.266:自适应运动矢量精度(AMVR)
- ffdshow神奇的功能:视频播放时显示运动矢量和QP
- 将H.264采集卡的输出格式,转换为标准H.264
- 用 cairo 实现跨平台图形(用于产生一致输出的矢量绘图库)
- 回溯——矩阵中路径问题(0,1矩阵中最优路径、矩阵中的路径、机器人的运动范围)
- ffdshow神奇的功能:视频播放时显示运动矢量和QP
- 十三、熵编码算法(4):H.264使用CAVLC解析宏块的残差数据
- 用于产生一致输出的矢量绘图库——cairo
- Mpeg2Peter中运动矢量的获取
- H.264句法和语法总结(十四)CAVLC 残差句法