[svn] / trunk / xvidcore / src / encoder.c Repository:
ViewVC logotype

Diff of /trunk/xvidcore/src/encoder.c

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

revision 648, Sat Nov 16 23:38:16 2002 UTC revision 686, Thu Nov 28 07:27:37 2002 UTC
# Line 52  Line 52 
52   *  exception also makes it possible to release a modified version which   *  exception also makes it possible to release a modified version which
53   *  carries forward this exception.   *  carries forward this exception.
54   *   *
55   * $Id: encoder.c,v 1.87 2002-11-16 23:38:16 edgomez Exp $   * $Id: encoder.c,v 1.89 2002-11-28 07:27:37 suxen_drol Exp $
56   *   *
57   ****************************************************************************/   ****************************************************************************/
58    
# Line 78  Line 78 
78  #include "quant/quant_matrix.h"  #include "quant/quant_matrix.h"
79  #include "utils/mem_align.h"  #include "utils/mem_align.h"
80    
 #ifdef _SMP  
 #include "motion/smp_motion_est.h"  
 #endif  
81  /*****************************************************************************  /*****************************************************************************
82   * Local macros   * Local macros
83   ****************************************************************************/   ****************************************************************************/
# Line 239  Line 236 
236    
237          pEnc->mbParam.m_quant_type = H263_QUANT;          pEnc->mbParam.m_quant_type = H263_QUANT;
238    
 #ifdef _SMP  
         pEnc->mbParam.num_threads = MIN(pParam->num_threads, MAXNUMTHREADS);  
 #endif  
   
239          pEnc->sStat.fMvPrevSigma = -1;          pEnc->sStat.fMvPrevSigma = -1;
240    
241          /* Fill rate control parameters */          /* Fill rate control parameters */
# Line 703  Line 696 
696                                          pMB->pmvs[vec].x = pMB->mvs[vec].x - pred.x;                                          pMB->pmvs[vec].x = pMB->mvs[vec].x - pred.x;
697                                          pMB->pmvs[vec].y = pMB->mvs[vec].y - pred.y;                                          pMB->pmvs[vec].y = pMB->mvs[vec].y - pred.y;
698                                  }                                  }
699                          } else                          // intra / stuffing / not_coded                          } else                          /* intra / stuffing / not_coded */
700                          {                          {
701                                  for (vec = 0; vec < 4; ++vec) {                                  for (vec = 0; vec < 4; ++vec) {
702                                          pMB->mvs[vec].x = pMB->mvs[vec].y = 0;                                          pMB->mvs[vec].x = pMB->mvs[vec].y = 0;
# Line 876  Line 869 
869                  HintedMEGet(pEnc, 1);                  HintedMEGet(pEnc, 1);
870          }          }
871    
872          return 1;                                       // intra          return 1;                                       /* intra */
873  }  }
874    
875    
# Line 932  Line 925 
925                  HintedMESet(pEnc, &bIntra);                  HintedMESet(pEnc, &bIntra);
926          } else {          } else {
927    
 #ifdef _SMP  
         if (pEnc->mbParam.num_threads > 1)  
                 bIntra =  
                         SMP_MotionEstimation(&pEnc->mbParam, pEnc->current, pEnc->reference,  
                                                  &pEnc->vInterH, &pEnc->vInterV, &pEnc->vInterHV,  
                                                  iLimit);  
         else  
 #endif  
928                  bIntra =                  bIntra =
929                          MotionEstimation(&pEnc->mbParam, pEnc->current, pEnc->reference,                          MotionEstimation(&pEnc->mbParam, pEnc->current, pEnc->reference,
930                           &pEnc->vInterH, &pEnc->vInterV, &pEnc->vInterHV,                           &pEnc->vInterH, &pEnc->vInterV, &pEnc->vInterHV,
# Line 1058  Line 1043 
1043          iSearchRange = 1 << (3 + pEnc->mbParam.m_fcode);          iSearchRange = 1 << (3 + pEnc->mbParam.m_fcode);
1044    
1045          if ((fSigma > iSearchRange / 3)          if ((fSigma > iSearchRange / 3)
1046                  && (pEnc->mbParam.m_fcode <= 3))        // maximum search range 128                  && (pEnc->mbParam.m_fcode <= 3))        /* maximum search range 128 */
1047          {          {
1048                  pEnc->mbParam.m_fcode++;                  pEnc->mbParam.m_fcode++;
1049                  iSearchRange *= 2;                  iSearchRange *= 2;
1050          } else if ((fSigma < iSearchRange / 6)          } else if ((fSigma < iSearchRange / 6)
1051                             && (pEnc->sStat.fMvPrevSigma >= 0)                             && (pEnc->sStat.fMvPrevSigma >= 0)
1052                             && (pEnc->sStat.fMvPrevSigma < iSearchRange / 6)                             && (pEnc->sStat.fMvPrevSigma < iSearchRange / 6)
1053                             && (pEnc->mbParam.m_fcode >= 2))     // minimum search range 16                             && (pEnc->mbParam.m_fcode >= 2))     /* minimum search range 16 */
1054          {          {
1055                  pEnc->mbParam.m_fcode--;                  pEnc->mbParam.m_fcode--;
1056                  iSearchRange /= 2;                  iSearchRange /= 2;
# Line 1075  Line 1060 
1060    
1061          *pBits = BitstreamPos(bs) - *pBits;          *pBits = BitstreamPos(bs) - *pBits;
1062    
1063          return 0;                                       // inter          return 0;                                       /* inter */
1064    
1065  }  }

Legend:
Removed from v.648  
changed lines
  Added in v.686

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