void SubpelRefine::MatchPic(const PicArray& pic_data , const PicArray& refup_data , MEData& me_data , int ref_id) { // Match a picture against a single reference. Loop over all the blocks // doing the matching // Initialisation // //////////////////// // Provide aliases for the appropriate motion vector data components MvArray& mv_array = me_data.Vectors( ref_id ); TwoDArray<MvCostData>& pred_costs = me_data.PredCosts( ref_id ); // Provide a block matching object to do the work BlockMatcher my_bmatch( pic_data , refup_data , m_predparams->LumaBParams(2) , m_predparams->MVPrecision() , mv_array , pred_costs ); // Do the work // ///////////////// // Loop over all the blocks, doing the work for (int yblock=0 ; yblock<m_predparams->YNumBlocks() ; ++yblock){ for (int xblock=0 ; xblock<m_predparams->XNumBlocks() ; ++xblock){ DoBlock(xblock , yblock , my_bmatch , me_data , ref_id ); }// xblock }// yblock }