zoukankan      html  css  js  c++  java
  • JM8.6中的MV计算及上层块预测方法

    JM8.6中的运动估计

    BlockMotionSearch函数对不同帧间模式block type (1-16x16 ... 7-4x4)进行运动搜索.

    从该函数中,我们可以发现,有一个局部变量,通过下面的语句将img->pred_mvpred_mv联系了起来,

    这样其实通过调用函数SetMotionVectorPredictor来计算运动矢量的预测值(MVpred), 代码中向SetMotionVectorPredictor函数传递了pred_mv这个整型指针(指向img->pred_mv具体要保存的地方), 这样在函数SetMotionVectorPredictor中求出运动矢量的预测值,其实就存在了img->pred_mv中了.

    具体在函数SetMotionVectorPredictor中预测MV的求解如下:

    对水平和垂直两个方向进行循环

    具体的计算如下

    根据不同的mvPredType计算得出相应的pred_vec, 然后存在pmv[hv]中.

     

     

     

    2011年4月21日11:01:18

    JM8.6中对上层块模式预测的实现

    下面的几个变量是定义的保存上层块预测的结果

    上面这个三个数组应该都是和快速搜索有关的.

    具体的pred_MV_uplayer是在函数BlockMotionSearch,如代码:

    但是看代码可以发现上层块预测只在FMEable的情况下才使用的.在函数BlockMotionSearch中有对各个搜索函数的调用.

    由于pred_MV_uplayer是一个全局变量, 所以在函数FastIntegerPelBlockMotionSearch中有使用pred_MV_uplayer,如下

    对于模式1[16x16]是没有上层块预测的,所以只有在模式2-7的情况下可以使用的

    在函数FastSubPelBlockMotionSearch中也有使用

    总结上面的,我们可以发现,在进行求MVD的时候, 我们是使用利用中值预测求出来的MV的预测值, 没有使用上层块预测的结果,而上层块预测的结果是只在运动搜索中使用的.

     

  • 相关阅读:
    TCP Three-Way handshake
    java 连接mysql 和sql server2008代码
    关于dispatch_sync死锁问题
    MacBook Pro使用初体验之Mac快捷键汇总(持续更新中)
    Java对象的内存布局
    Android之adb
    ADT开发中的一些优化设置:代码背景色、代码字体大小、代码自动补全
    实用的eclipse adt 快捷键
    python操作Excel读--使用xlrd
    解决ImportError: cannot import name HTTPConnection的方法
  • 原文地址:https://www.cnblogs.com/xkfz007/p/2612127.html
Copyright © 2011-2022 走看看