[svn] / branches / dev-api-4 / xvidcore / src / motion / estimation_pvop.c Repository:
ViewVC logotype

Diff of /branches/dev-api-4/xvidcore/src/motion/estimation_pvop.c

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

revision 1163, Fri Oct 3 12:36:56 2003 UTC revision 1214, Tue Nov 18 21:41:21 2003 UTC
# Line 21  Line 21 
21   *  along with this program ; if not, write to the Free Software   *  along with this program ; if not, write to the Free Software
22   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
23   *   *
24   * $Id: estimation_pvop.c,v 1.1.2.3 2003-10-03 12:36:56 syskin Exp $   * $Id: estimation_pvop.c,v 1.1.2.7 2003-11-18 21:41:21 edgomez Exp $
25   *   *
26   ****************************************************************************/   ****************************************************************************/
27    
# Line 384  Line 384 
384                  pmv[0] = pmv[1] = pmv[2] = pmv[3] = zeroMV;                  pmv[0] = pmv[1] = pmv[2] = pmv[3] = zeroMV;
385                  psad[0] = 0;                  psad[0] = 0;
386                  psad[1] = psad[2] = psad[3] = MV_MAX_ERROR;                  psad[1] = psad[2] = psad[3] = MV_MAX_ERROR;
387                    return;
388          }          }
389    
390          /* if only one valid candidate preictor, the invalid candiates are set to the canidate */          /* if only one valid candidate preictor, the invalid candiates are set to the canidate */
391          if (num_cand == 1) {          if (num_cand == 1) {
392                  pmv[0] = pmv[last_cand];                  pmv[0] = pmv[last_cand];
393                  psad[0] = psad[last_cand];                  psad[0] = psad[last_cand];
394                    return;
395          }          }
396    
397          if ((MVequal(pmv[1], pmv[2])) && (MVequal(pmv[1], pmv[3]))) {          if ((MVequal(pmv[1], pmv[2])) && (MVequal(pmv[1], pmv[3]))) {
398                  pmv[0] = pmv[1];                  pmv[0] = pmv[1];
399                  psad[0] = MIN(MIN(psad[1], psad[2]), psad[3]);                  psad[0] = MIN(MIN(psad[1], psad[2]), psad[3]);
400                    return;
401          }          }
402    
403          /* set median, minimum */          /* set median, minimum */
# Line 825  Line 828 
828                                  pParam->width, pParam->height, Data->iFcode, 2, 0);                                  pParam->width, pParam->height, Data->iFcode, 2, 0);
829                  Data->qpel_precision = 1;                  Data->qpel_precision = 1;
830                  if (MotionFlags & XVID_ME_QUARTERPELREFINE16) {                  if (MotionFlags & XVID_ME_QUARTERPELREFINE16) {
831                            *Data->iMinSAD2 = 256 * 4096;
832                          if(MotionFlags & XVID_ME_FASTREFINE16)                          if(MotionFlags & XVID_ME_FASTREFINE16)
833                                  SubpelRefine_Fast(Data, CheckCandidate16_qpel);                                  SubpelRefine_Fast(Data, CheckCandidate16_qpel);
834                          else                          else
# Line 1010  Line 1014 
1014                                                                            MAX((&pMBs[x + (y-1) * pParam->mb_width])->sad16,                                                                            MAX((&pMBs[x + (y-1) * pParam->mb_width])->sad16,
1015                                                                            MAX((&pMBs[(x+1) + (y-1) * pParam->mb_width])->sad16,                                                                            MAX((&pMBs[(x+1) + (y-1) * pParam->mb_width])->sad16,
1016                                                                            prevMB->sad16)));                                                                            prevMB->sad16)));
                                         }  
1017                                  } else {                                  } else {
1018                                          stat_thresh = MIN((&pMBs[(x-1) + y * pParam->mb_width])->sad16,                                          stat_thresh = MIN((&pMBs[(x-1) + y * pParam->mb_width])->sad16,
1019                                                                            MIN((&pMBs[x + (y-1) * pParam->mb_width])->sad16,                                                                            MIN((&pMBs[x + (y-1) * pParam->mb_width])->sad16,
# Line 1018  Line 1021 
1021                                                                            prevMB->sad16)));                                                                            prevMB->sad16)));
1022                                  }                                  }
1023                          }                          }
1024                            }
1025    
1026                           /* favorize (0,0) vector for cartoons */                           /* favorize (0,0) vector for cartoons */
1027                          if ((current->vop_flags & XVID_VOP_CARTOON) &&                          if ((current->vop_flags & XVID_VOP_CARTOON) &&

Legend:
Removed from v.1163  
changed lines
  Added in v.1214

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