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

Diff of /branches/dev-api-3/xvidcore/src/motion/motion_est.c

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

revision 752, Mon Dec 30 10:49:17 2002 UTC revision 753, Wed Jan 1 12:50:44 2003 UTC
# Line 84  Line 84 
84  {  {
85          int sad;          int sad;
86          const uint32_t stride = data->iEdgedWidth/2;          const uint32_t stride = data->iEdgedWidth/2;
         dx = (dx >> 1) + roundtab_79[dx & 0x3];  
         dy = (dy >> 1) + roundtab_79[dy & 0x3];  
87    
88          if (dx == data->temp[5] && dy == data->temp[6]) return data->temp[7]; //it has been checked recently          if (dx == data->temp[5] && dy == data->temp[6]) return data->temp[7]; //it has been checked recently
89          data->temp[5]  = dx; data->temp[6] = dy; // backup          data->temp[5]  = dx; data->temp[6] = dy; // backup
# Line 264  Line 262 
262          data->temp[0] += (data->lambda16 * t * data->temp[0])/1000;          data->temp[0] += (data->lambda16 * t * data->temp[0])/1000;
263          data->temp[1] += (data->lambda8 * t * (data->temp[1] + NEIGH_8X8_BIAS))/100;          data->temp[1] += (data->lambda8 * t * (data->temp[1] + NEIGH_8X8_BIAS))/100;
264    
265          if (data->chroma) data->temp[0] += ChromaSAD(xc, yc, data);          if (data->chroma) data->temp[0] += ChromaSAD((xc >> 1) + roundtab_79[xc & 0x3],
266                                                                                                            (yc >> 1) + roundtab_79[yc & 0x3], data);
267    
268          if (data->temp[0] < data->iMinSAD[0]) {          if (data->temp[0] < data->iMinSAD[0]) {
269                  data->iMinSAD[0] = data->temp[0];                  data->iMinSAD[0] = data->temp[0];
# Line 1124  Line 1123 
1123                  Search8(Data, 2*x + 1, 2*y + 1, MotionFlags, pParam, pMB, pMBs, 3, &Data8);                  Search8(Data, 2*x + 1, 2*y + 1, MotionFlags, pParam, pMB, pMBs, 3, &Data8);
1124    
1125                  if (Data->chroma) {                  if (Data->chroma) {
1126                          int sumx, sumy, dx, dy;                          int sumx, sumy;
1127    
1128                          if(pParam->m_quarterpel) {                          if(pParam->m_quarterpel) {
1129                                  sumx= pMB->qmvs[0].x/2 + pMB->qmvs[1].x/2 + pMB->qmvs[2].x/2 + pMB->qmvs[3].x/2;                                  sumx= pMB->qmvs[0].x/2 + pMB->qmvs[1].x/2 + pMB->qmvs[2].x/2 + pMB->qmvs[3].x/2;
# Line 1133  Line 1132 
1132                                  sumx = pMB->mvs[0].x + pMB->mvs[1].x + pMB->mvs[2].x + pMB->mvs[3].x;                                  sumx = pMB->mvs[0].x + pMB->mvs[1].x + pMB->mvs[2].x + pMB->mvs[3].x;
1133                                  sumy = pMB->mvs[0].y + pMB->mvs[1].y + pMB->mvs[2].y + pMB->mvs[3].y;                                  sumy = pMB->mvs[0].y + pMB->mvs[1].y + pMB->mvs[2].y + pMB->mvs[3].y;
1134                          }                          }
                         dx = (sumx >> 3) + roundtab_76[sumx & 0xf];  
                         dy = (sumy >> 3) + roundtab_76[sumy & 0xf];  
1135    
1136                          Data->iMinSAD[1] += ChromaSAD(dx, dy, Data);                          Data->iMinSAD[1] += ChromaSAD(  (sumx >> 3) + roundtab_76[sumx & 0xf],
1137                                                                                            (sumy >> 3) + roundtab_76[sumy & 0xf], Data);
1138                  }                  }
1139          }          }
1140    

Legend:
Removed from v.752  
changed lines
  Added in v.753

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