[svn] / trunk / xvidcore / src / motion / estimation_bvop.c Repository:
ViewVC logotype

Diff of /trunk/xvidcore/src/motion/estimation_bvop.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1988, Wed May 18 09:10:05 2011 UTC revision 2051, Tue Oct 25 10:56:22 2011 UTC
# Line 810  Line 810 
810  }  }
811    
812  static void  static void
813    SearchInterpolate_final_fast(const int x, const int y,
814                                                             const uint32_t MotionFlags,
815                                                             const MBParam * const pParam,
816                                                             int32_t * const best_sad,
817                                                             SearchData * const Data)
818    {
819            /* qpel refinement */
820            if (Data->qpel) {
821                    Data->qpel_precision = 1;
822                    get_range(&Data->min_dx, &Data->max_dx, &Data->min_dy, &Data->max_dy,
823                            x, y, 4, pParam->width, pParam->height, Data->iFcode, 2);
824    
825                    Data->currentQMV[0].x = 2 * Data->currentMV[0].x;
826                    Data->currentQMV[0].y = 2 * Data->currentMV[0].y;
827                    Data->currentQMV[1].x = 2 * Data->currentMV[1].x;
828                    Data->currentQMV[1].y = 2 * Data->currentMV[1].y;
829            }
830    }
831    
832    static void
833  ModeDecision_BVOP_SAD(const SearchData * const Data_d,  ModeDecision_BVOP_SAD(const SearchData * const Data_d,
834                                            const SearchData * const Data_b,                                            const SearchData * const Data_b,
835                                            const SearchData * const Data_f,                                            const SearchData * const Data_f,
# Line 1083  Line 1103 
1103                                                                    &Data_i, Data_f.currentMV[0], Data_b.currentMV[0]);                                                                    &Data_i, Data_f.currentMV[0], Data_b.currentMV[0]);
1104    
1105                          if (((Data_i.iMinSAD[0] < best_sad +(best_sad>>3)) && !(frame->motion_flags&XVID_ME_FAST_MODEINTERPOLATE))                          if (((Data_i.iMinSAD[0] < best_sad +(best_sad>>3)) && !(frame->motion_flags&XVID_ME_FAST_MODEINTERPOLATE))
1106                                  || Data_i.iMinSAD[0] <= best_sad)                                  || Data_i.iMinSAD[0] <= best_sad) {
1107    
1108                                  SearchInterpolate_final(i, j, frame->motion_flags, pParam, &best_sad, &Data_i);                                  SearchInterpolate_final(i, j, frame->motion_flags, pParam, &best_sad, &Data_i);
1109                            }
1110                            else {
1111                                    SearchInterpolate_final_fast(i, j, frame->motion_flags, pParam, &best_sad, &Data_i);
1112                            }
1113    
1114                          if (Data_d.iMinSAD[0] <= 2*best_sad)                          if (Data_d.iMinSAD[0] <= 2*best_sad)
1115                                  if ((!(frame->motion_flags&XVID_ME_SKIP_DELTASEARCH) && (best_sad > 750))                                  if ((!(frame->motion_flags&XVID_ME_SKIP_DELTASEARCH) && (best_sad > 750))

Legend:
Removed from v.1988  
changed lines
  Added in v.2051

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4