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

Diff of /branches/dev-api-3/xvidcore/src/motion/motion_comp.c

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

revision 702, Tue Dec 10 11:13:50 2002 UTC revision 703, Tue Dec 10 12:03:01 2002 UTC
# Line 130  Line 130 
130          }          }
131  }  }
132    
133    
134    
135    /* XXX: slow, inelegant... */
136    static void
137    interpolate18x18_switch(uint8_t * const cur,
138                                              const uint8_t * const refn,
139                                              const uint32_t x,
140                                              const uint32_t y,
141                                              const int32_t dx,
142                                              const int dy,
143                                              const uint32_t stride,
144                                              const uint32_t rounding)
145    {
146            interpolate8x8_switch(cur, refn, x-1, y-1, dx, dy, stride, rounding);
147            interpolate8x8_switch(cur, refn, x+7, y-1, dx, dy, stride, rounding);
148            interpolate8x8_switch(cur, refn, x+9, y-1, dx, dy, stride, rounding);
149    
150            interpolate8x8_switch(cur, refn, x-1, y+7, dx, dy, stride, rounding);
151            interpolate8x8_switch(cur, refn, x+7, y+7, dx, dy, stride, rounding);
152            interpolate8x8_switch(cur, refn, x+9, y+7, dx, dy, stride, rounding);
153    
154            interpolate8x8_switch(cur, refn, x-1, y+9, dx, dy, stride, rounding);
155            interpolate8x8_switch(cur, refn, x+7, y+9, dx, dy, stride, rounding);
156            interpolate8x8_switch(cur, refn, x+9, y+9, dx, dy, stride, rounding);
157    }
158    
159    
160  void  void
161  MBMotionCompensation(MACROBLOCK * const mb,  MBMotionCompensation(MACROBLOCK * const mb,
162                                           const uint32_t i,                                           const uint32_t i,
# Line 197  Line 224 
224    
225                          current = cur->u + 16*j*stride + 16*i;                          current = cur->u + 16*j*stride + 16*i;
226                          reference = refv->u + 16*j*stride + 16*i;                          reference = refv->u + 16*j*stride + 16*i;
227                          interpolate16x16_switch(refv->u, ref->u, 16*i, 16*j, dx, dy, stride, rounding);                          //interpolate16x16_switch(refv->u, ref->u, 16*i, 16*j, dx, dy, stride, rounding);
228                            interpolate18x18_switch(refv->u, ref->u, 16*i, 16*j, dx, dy, stride, rounding);
229                          filter_18x18_to_8x8(dct_codes + 4*64, current, stride);                          filter_18x18_to_8x8(dct_codes + 4*64, current, stride);
230                          filter_diff_18x18_to_8x8(dct_codes + 4*64, reference, stride);                          filter_diff_18x18_to_8x8(dct_codes + 4*64, reference, stride);
231                          transfer16x16_copy(current, reference, stride);                          transfer16x16_copy(current, reference, stride);
232    
233                          current = cur->v + 16*j*stride + 16*i;                          current = cur->v + 16*j*stride + 16*i;
234                          reference = refv->v + 16*j*stride + 16*i;                          reference = refv->v + 16*j*stride + 16*i;
235                          interpolate16x16_switch(refv->v, ref->v, 16*i, 16*j, dx, dy, stride, rounding);                          //interpolate16x16_switch(refv->v, ref->v, 16*i, 16*j, dx, dy, stride, rounding);
236                            interpolate18x18_switch(refv->v, ref->v, 16*i, 16*j, dx, dy, stride, rounding);
237                          filter_18x18_to_8x8(dct_codes + 5*64, current, stride);                          filter_18x18_to_8x8(dct_codes + 5*64, current, stride);
238                          filter_diff_18x18_to_8x8(dct_codes + 5*64, reference, stride);                          filter_diff_18x18_to_8x8(dct_codes + 5*64, reference, stride);
239                          transfer16x16_copy(current, reference, stride);                          transfer16x16_copy(current, reference, stride);

Legend:
Removed from v.702  
changed lines
  Added in v.703

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