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.5 2003-10-28 23:47:29 Isibaar Exp $ |
25 |
* |
* |
26 |
****************************************************************************/ |
****************************************************************************/ |
27 |
|
|
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 */ |
1014 |
MAX((&pMBs[(x+1) + (y-1) * pParam->mb_width])->sad16, |
MAX((&pMBs[(x+1) + (y-1) * pParam->mb_width])->sad16, |
1015 |
prevMB->sad16))); |
prevMB->sad16))); |
1016 |
} |
} |
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, |
1020 |
MIN((&pMBs[(x+1) + (y-1) * pParam->mb_width])->sad16, |
MIN((&pMBs[(x+1) + (y-1) * pParam->mb_width])->sad16, |
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) && |