[cvs] / xvidcore / src / prediction / mbprediction.h Repository:
ViewVC logotype

Diff of /xvidcore/src/prediction/mbprediction.h

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

revision 1.5, Sun Apr 28 23:36:28 2002 UTC revision 1.8, Tue May 7 19:59:10 2002 UTC
# Line 204  Line 204 
204          int yin1, yin2, yin3;          int yin1, yin2, yin3;
205          int vec1, vec2, vec3;          int vec1, vec2, vec3;
206    
         static VECTOR zeroMV;  
207          uint32_t index = x + y * x_dim;          uint32_t index = x + y * x_dim;
208          zeroMV.x = zeroMV.y = 0;          const VECTOR zeroMV = { 0,0 };
209    
210          // first row (special case)          // first row of blocks (special case)
211          if (y == 0 && (block == 0 || block == 1))          if (y == 0 && (block == 0 || block == 1))
212          {          {
213                  if ((x == 0) && (block == 0))           // first column, first block                  if ((x == 0) && (block == 0))           // first column, first block
214                  {                  {
215                          pmv[0] = pmv[1] = pmv[2] = pmv[3] = zeroMV;                          pmv[0] = pmv[1] = pmv[2] = pmv[3] = zeroMV;
216                          psad[0] = psad[1] = psad[2] = psad[3] = MV_MAX_ERROR;                          psad[0] = 0;
217                            psad[1] = psad[2] = psad[3] = MV_MAX_ERROR;
218                          return 0;                          return 0;
219                  }                  }
220                  if (block == 1)         // second block; has only a left neighbour                  if (block == 1)         // second block; has only a left neighbour
# Line 272  Line 272 
272          }          }
273    
274    
275          if (xin1 < 0 || /* yin1 < 0  || */ xin1 >= (int32_t)x_dim)          if (xin1 < 0 ||  xin1 >= (int32_t)x_dim)
276          {          {
277                  pmv[1] = zeroMV;                  pmv[1] = zeroMV;
278                  psad[1] = MV_MAX_ERROR;                  psad[1] = MV_MAX_ERROR;
# Line 283  Line 283 
283                  psad[1] = pMBs[xin1 + yin1 * x_dim].sad8[vec1];                  psad[1] = pMBs[xin1 + yin1 * x_dim].sad8[vec1];
284          }          }
285    
286          if (xin2 < 0 || /* yin2 < 0 || */ xin2 >= (int32_t)x_dim)          if (xin2 < 0 || xin2 >= (int32_t)x_dim)
287          {          {
288                  pmv[2] = zeroMV;                  pmv[2] = zeroMV;
289                  psad[2] = MV_MAX_ERROR;                  psad[2] = MV_MAX_ERROR;
# Line 294  Line 294 
294                  psad[2] = pMBs[xin2 + yin2 * x_dim].sad8[vec2];                  psad[2] = pMBs[xin2 + yin2 * x_dim].sad8[vec2];
295          }          }
296    
297          if (xin3 < 0 || /* yin3 < 0 || */ xin3 >= (int32_t)x_dim)          if (xin3 < 0 || xin3 >= (int32_t)x_dim)
298          {          {
299                  pmv[3] = zeroMV;                  pmv[3] = zeroMV;
300                  psad[3] = MV_MAX_ERROR;                  psad[3] = MV_MAX_ERROR;
# Line 306  Line 306 
306          }          }
307    
308          if ( (MVequal(pmv[1],pmv[2])) && (MVequal(pmv[1],pmv[3])) )          if ( (MVequal(pmv[1],pmv[2])) && (MVequal(pmv[1],pmv[3])) )
309          {       pmv[0]=pmv[1];          {
310          psad[0]=psad[1];                  pmv[0]=pmv[1];
311                    psad[0]=MIN( MIN(psad[1],psad[2]), psad[3]);
312          return 1;          return 1;
313          }          }
314    

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.8

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