[cvs] / xvidcore / src / image / qpel.h Repository:
ViewVC logotype

Diff of /xvidcore/src/image/qpel.h

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

revision 1.3, Tue Aug 10 21:58:55 2004 UTC revision 1.8, Wed Nov 26 01:04:34 2008 UTC
# Line 73  Line 73 
73  extern XVID_QP_FUNCS xvid_QP_Funcs_C;       /* for P-frames */  extern XVID_QP_FUNCS xvid_QP_Funcs_C;       /* for P-frames */
74  extern XVID_QP_FUNCS xvid_QP_Add_Funcs_C;   /* for B-frames */  extern XVID_QP_FUNCS xvid_QP_Add_Funcs_C;   /* for B-frames */
75    
76  #ifdef ARCH_IS_IA32  #if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64)
77  extern XVID_QP_FUNCS xvid_QP_Funcs_mmx;  extern XVID_QP_FUNCS xvid_QP_Funcs_mmx;
78  extern XVID_QP_FUNCS xvid_QP_Add_Funcs_mmx;  extern XVID_QP_FUNCS xvid_QP_Add_Funcs_mmx;
79  #endif  #endif
80    
81    #ifdef ARCH_IS_PPC
82    extern XVID_QP_FUNCS xvid_QP_Funcs_Altivec_C;
83    extern XVID_QP_FUNCS xvid_QP_Add_Funcs_Altivec_C;
84    #endif
85    
86  extern XVID_QP_FUNCS *xvid_QP_Funcs;      /* <- main pointer for enc/dec structure */  extern XVID_QP_FUNCS *xvid_QP_Funcs;      /* <- main pointer for enc/dec structure */
87  extern XVID_QP_FUNCS *xvid_QP_Add_Funcs;  /* <- main pointer for enc/dec structure */  extern XVID_QP_FUNCS *xvid_QP_Add_Funcs;  /* <- main pointer for enc/dec structure */
88    
# Line 120  Line 125 
125    
126          int32_t x_int, y_int;          int32_t x_int, y_int;
127    
128          const int32_t xRef = x*4 + dx;          const int32_t xRef = (int)x*4 + dx;
129          const int32_t yRef = y*4 + dy;          const int32_t yRef = (int)y*4 + dy;
130    
131          Ops = xvid_QP_Funcs;          Ops = xvid_QP_Funcs;
132          quads = (dx&3) | ((dy&3)<<2);          quads = (dx&3) | ((dy&3)<<2);
133    
134          x_int = xRef/4;          x_int = xRef >> 2;
135          if (xRef < 0 && xRef % 4)          y_int = yRef >> 2;
                 x_int--;  
   
         y_int    = yRef/4;  
         if (yRef < 0 && yRef % 4)  
                 y_int--;  
136    
137          dst = cur + y * stride + x;          dst = cur + y * stride + x;
138          src = refn + y_int * stride + x_int;          src = refn + y_int * (int)stride + x_int;
139    
140          tmp = refh; /* we need at least a 16 x stride scratch block */          tmp = refh; /* we need at least a 16 x stride scratch block */
141    
# Line 223  Line 223 
223    
224          int32_t x_int, y_int;          int32_t x_int, y_int;
225    
226          const int32_t xRef = x*4 + dx;          const int32_t xRef = (int)x*4 + dx;
227          const int32_t yRef = y*4 + dy;          const int32_t yRef = (int)y*4 + dy;
228    
229          Ops = xvid_QP_Add_Funcs;          Ops = xvid_QP_Add_Funcs;
230          Ops_Copy = xvid_QP_Funcs;          Ops_Copy = xvid_QP_Funcs;
231          quads = (dx&3) | ((dy&3)<<2);          quads = (dx&3) | ((dy&3)<<2);
232    
233          x_int = xRef/4;          x_int = xRef >> 2;
234          if (xRef < 0 && xRef % 4)          y_int = yRef >> 2;
                 x_int--;  
   
         y_int    = yRef/4;  
         if (yRef < 0 && yRef % 4)  
                 y_int--;  
235    
236          dst = cur + y * stride + x;          dst = cur + y * stride + x;
237          src = refn + y_int * stride + x_int;          src = refn + y_int * (int)stride + x_int;
238    
239          tmp = refh; /* we need at least a 16 x stride scratch block */          tmp = refh; /* we need at least a 16 x stride scratch block */
240    
# Line 328  Line 323 
323    
324          int32_t x_int, y_int;          int32_t x_int, y_int;
325    
326          const int32_t xRef = x*4 + dx;          const int32_t xRef = (int)x*4 + dx;
327          const int32_t yRef = y*4 + dy;          const int32_t yRef = (int)y*4 + dy;
328    
329          Ops = xvid_QP_Funcs;          Ops = xvid_QP_Funcs;
330          quads = (dx&3) | ((dy&3)<<2);          quads = (dx&3) | ((dy&3)<<2);
331    
332          x_int = xRef/4;          x_int = xRef >> 2;
333          if (xRef < 0 && xRef % 4)          y_int = yRef >> 2;
                 x_int--;  
   
         y_int    = yRef/4;  
         if (yRef < 0 && yRef % 4)  
                 y_int--;  
334    
335          dst = cur + y * stride + x;          dst = cur + y * stride + x;
336          src = refn + y_int * stride + x_int;          src = refn + y_int * (int)stride + x_int;
337    
338          tmp = refh; /* we need at least a 16 x stride scratch block */          tmp = refh; /* we need at least a 16 x stride scratch block */
339    
# Line 428  Line 418 
418    
419          int32_t x_int, y_int;          int32_t x_int, y_int;
420    
421          const int32_t xRef = x*4 + dx;          const int32_t xRef = (int)x*4 + dx;
422          const int32_t yRef = y*4 + dy;          const int32_t yRef = (int)y*4 + dy;
423    
424          Ops = xvid_QP_Funcs;          Ops = xvid_QP_Funcs;
425          quads = (dx&3) | ((dy&3)<<2);          quads = (dx&3) | ((dy&3)<<2);
426    
427          x_int = xRef/4;          x_int = xRef >> 2;
428          if (xRef < 0 && xRef % 4)          y_int = yRef >> 2;
                 x_int--;  
   
         y_int    = yRef/4;  
         if (yRef < 0 && yRef % 4)  
                 y_int--;  
429    
430          dst = cur + y * stride + x;          dst = cur + y * stride + x;
431          src = refn + y_int * stride + x_int;          src = refn + y_int * (int)stride + x_int;
432    
433          tmp = refh; /* we need at least a 16 x stride scratch block */          tmp = refh; /* we need at least a 16 x stride scratch block */
434    
# Line 528  Line 513 
513    
514          int32_t x_int, y_int;          int32_t x_int, y_int;
515    
516          const int32_t xRef = x*4 + dx;          const int32_t xRef = (int)x*4 + dx;
517          const int32_t yRef = y*4 + dy;          const int32_t yRef = (int)y*4 + dy;
518    
519          Ops = xvid_QP_Add_Funcs;          Ops = xvid_QP_Add_Funcs;
520          Ops_Copy = xvid_QP_Funcs;          Ops_Copy = xvid_QP_Funcs;
521          quads = (dx&3) | ((dy&3)<<2);          quads = (dx&3) | ((dy&3)<<2);
522    
523          x_int = xRef/4;          x_int = xRef >> 2;
524          if (xRef < 0 && xRef % 4)          y_int = yRef >> 2;
                 x_int--;  
   
         y_int    = yRef/4;  
         if (yRef < 0 && yRef % 4)  
                 y_int--;  
525    
526          dst = cur + y * stride + x;          dst = cur + y * stride + x;
527          src = refn + y_int * stride + x_int;          src = refn + y_int * (int)stride + x_int;
528    
529          tmp = refh; /* we need at least a 16 x stride scratch block */          tmp = refh; /* we need at least a 16 x stride scratch block */
530    

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

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