[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 675, Sun Nov 24 16:38:11 2002 UTC revision 698, Sun Dec 8 06:43:34 2002 UTC
# Line 47  Line 47 
47  #define FINAL_SKIP_THRESH       (50)  #define FINAL_SKIP_THRESH       (50)
48  #define MAX_SAD00_FOR_SKIP      (20)  #define MAX_SAD00_FOR_SKIP      (20)
49  #define MAX_CHROMA_SAD_FOR_SKIP (22)  #define MAX_CHROMA_SAD_FOR_SKIP (22)
50  #define SKIP_THRESH_B (15)  #define SKIP_THRESH_B (25)
51    
52  #define CHECK_CANDIDATE(X,Y,D) { \  #define CHECK_CANDIDATE(X,Y,D) { \
53  (*CheckCandidate)((const int)(X),(const int)(Y), (D), &iDirection, data ); }  (*CheckCandidate)((const int)(X),(const int)(Y), (D), &iDirection, data ); }
54    
55  #define iDiamondSize 2  #define iDiamondSize 2
56    
57    static VECTOR
58    GlobalMotionEst(const MACROBLOCK * const pMBs,
59                                    const MBParam * const pParam, const uint32_t iFcode);
60    
61    
62  static __inline int  static __inline int
63  d_mv_bits(int x, int y, const uint32_t iFcode)  d_mv_bits(int x, int y, const uint32_t iFcode)
64  {  {
# Line 1455  Line 1460 
1460    
1461          SubpelRefine(Data);          SubpelRefine(Data);
1462    
1463          *Data->iMinSAD +=  1 * Data->lambda16; // one bit is needed to code direct mode  //      *Data->iMinSAD +=  1 * Data->lambda16; // one bit is needed to code direct mode
1464          *best_sad = *Data->iMinSAD;          *best_sad = *Data->iMinSAD;
1465    
1466          if (b_mb->mode == MODE_INTER4V)          if (b_mb->mode == MODE_INTER4V)
# Line 1579  Line 1584 
1584    
1585          } while (!(iDirection));          } while (!(iDirection));
1586    
         *fData->iMinSAD +=  2 * fData->lambda16; // two bits are needed to code interpolate mode.  
   
1587          if (fData->qpel) {          if (fData->qpel) {
1588                  CheckCandidate = CheckCandidateInt;                  CheckCandidate = CheckCandidateInt;
1589                  fData->qpel_precision = bData.qpel_precision = 1;                  fData->qpel_precision = bData.qpel_precision = 1;
# Line 1595  Line 1598 
1598                  SubpelRefine(&bData);                  SubpelRefine(&bData);
1599          }          }
1600    
1601            *fData->iMinSAD +=  2 * fData->lambda16; // two bits are needed to code interpolate mode.
1602    
1603          if (*fData->iMinSAD < *best_sad) {          if (*fData->iMinSAD < *best_sad) {
1604                  *best_sad = *fData->iMinSAD;                  *best_sad = *fData->iMinSAD;
1605                  pMB->mvs[0] = fData->currentMV[0];                  pMB->mvs[0] = fData->currentMV[0];
# Line 1655  Line 1660 
1660          Data.iEdgedWidth = pParam->edged_width;          Data.iEdgedWidth = pParam->edged_width;
1661          Data.currentMV = currentMV; Data.currentQMV = currentQMV;          Data.currentMV = currentMV; Data.currentQMV = currentQMV;
1662          Data.iMinSAD = &iMinSAD;          Data.iMinSAD = &iMinSAD;
1663          Data.lambda16 = lambda_vec16[frame->quant];          Data.lambda16 = lambda_vec16[frame->quant] + 2;
1664          Data.qpel = pParam->m_quarterpel;          Data.qpel = pParam->m_quarterpel;
1665          Data.rounding = 0;          Data.rounding = 0;
1666    
# Line 1752  Line 1757 
1757                                  case MODE_DIRECT:                                  case MODE_DIRECT:
1758                                  case MODE_DIRECT_NO4V:                                  case MODE_DIRECT_NO4V:
1759                                          d_count++;                                          d_count++;
                                         break;  
1760                                  default:                                  default:
1761                                          break;                                          break;
1762                          }                          }

Legend:
Removed from v.675  
changed lines
  Added in v.698

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