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

Diff of /branches/dev-api-4/xvidcore/src/motion/vop_type_decision.c

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

revision 1214, Tue Nov 18 21:41:21 2003 UTC revision 1215, Wed Nov 19 12:24:25 2003 UTC
# Line 19  Line 19 
19   *  along with this program ; if not, write to the Free Software   *  along with this program ; if not, write to the Free Software
20   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21   *   *
22   * $Id: vop_type_decision.c,v 1.1.2.4 2003-11-16 15:32:38 edgomez Exp $   * $Id: vop_type_decision.c,v 1.1.2.5 2003-11-19 12:24:25 syskin Exp $
23   *   *
24   ****************************************************************************/   ****************************************************************************/
25    
# Line 38  Line 38 
38  #define INTRA_THRESH2   90  #define INTRA_THRESH2   90
39    
40  static void  static void
41  CheckCandidate32I(const int x, const int y, const SearchData * const data, const unsigned int Direction)  CheckCandidate32I(const int x, const int y, SearchData * const data, const unsigned int Direction)
42  {  {
43          /* maximum speed */          /* maximum speed */
44          int32_t sad;          int32_t sad;
# Line 52  Line 52 
52          if (sad < *(data->iMinSAD)) {          if (sad < *(data->iMinSAD)) {
53                  *(data->iMinSAD) = sad;                  *(data->iMinSAD) = sad;
54                  data->currentMV[0].x = x; data->currentMV[0].y = y;                  data->currentMV[0].x = x; data->currentMV[0].y = y;
55                  *data->dir = Direction;                  data->dir = Direction;
56          }          }
57          if (data->temp[0] < data->iMinSAD[1]) {          if (data->temp[0] < data->iMinSAD[1]) {
58                  data->iMinSAD[1] = data->temp[0]; data->currentMV[1].x = x; data->currentMV[1].y = y; }                  data->iMinSAD[1] = data->temp[0]; data->currentMV[1].x = x; data->currentMV[1].y = y; }
# Line 115  Line 115 
115                          CheckCandidate32I(pmv[2].x, pmv[2].y, Data, 2);                          CheckCandidate32I(pmv[2].x, pmv[2].y, Data, 2);
116    
117                  if (*Data->iMinSAD > 500) { /* diamond only if needed */                  if (*Data->iMinSAD > 500) { /* diamond only if needed */
118                          unsigned int mask = make_mask(pmv, 3, *Data->dir);                          unsigned int mask = make_mask(pmv, 3, Data->dir);
119                          xvid_me_DiamondSearch(Data->currentMV->x, Data->currentMV->y, Data, mask, CheckCandidate32I);                          xvid_me_DiamondSearch(Data->currentMV->x, Data->currentMV->y, Data, mask, CheckCandidate32I);
120                  } else simplicity++;                  } else simplicity++;
121    
# Line 151  Line 151 
151          int blocks = 10;          int blocks = 10;
152          int complexity = 0;          int complexity = 0;
153    
         int32_t iMinSAD[5], temp[5];  
         uint32_t dir;  
         VECTOR currentMV[5];  
154          SearchData Data;          SearchData Data;
155          Data.iEdgedWidth = pParam->edged_width;          Data.iEdgedWidth = pParam->edged_width;
         Data.currentMV = currentMV;  
         Data.iMinSAD = iMinSAD;  
156          Data.iFcode = Current->fcode;          Data.iFcode = Current->fcode;
         Data.temp = temp;  
         Data.dir = &dir;  
157          Data.qpel = (pParam->vol_flags & XVID_VOL_QUARTERPEL)? 1: 0;          Data.qpel = (pParam->vol_flags & XVID_VOL_QUARTERPEL)? 1: 0;
158          Data.qpel_precision = 0;          Data.qpel_precision = 0;
159    

Legend:
Removed from v.1214  
changed lines
  Added in v.1215

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