diff vc1.c @ 3656:1cc5bdadd487 libavcodec

New qpel MC functions conforming to VC-1 standard. Existing DSPUtil functions cause chroma artifacts on some files.
author kostya
date Thu, 31 Aug 2006 04:44:54 +0000
parents 8dbf728f3967
children de842f000384
line wrap: on
line diff
--- a/vc1.c	Thu Aug 31 04:42:13 2006 +0000
+++ b/vc1.c	Thu Aug 31 04:44:54 2006 +0000
@@ -879,13 +879,8 @@
     if(s->flags & CODEC_FLAG_GRAY) return;
     /* Chroma MC always uses qpel bilinear */
     uvdxy = ((uvmy & 3) << 2) | (uvmx & 3);
-    if(!v->rnd){
-        dsp->put_qpel_pixels_tab[1][uvdxy](s->dest[1], srcU, s->uvlinesize);
-        dsp->put_qpel_pixels_tab[1][uvdxy](s->dest[2], srcV, s->uvlinesize);
-    }else{
-        dsp->put_no_rnd_qpel_pixels_tab[1][uvdxy](s->dest[1], srcU, s->uvlinesize);
-        dsp->put_no_rnd_qpel_pixels_tab[1][uvdxy](s->dest[2], srcV, s->uvlinesize);
-    }
+    dsp->put_vc1_qpel_pixels_tab[uvdxy](s->dest[1], srcU, s->uvlinesize, v->rnd);
+    dsp->put_vc1_qpel_pixels_tab[uvdxy](s->dest[2], srcV, s->uvlinesize, v->rnd);
 }
 
 /** Do motion compensation for 4-MV macroblock - luminance block
@@ -1082,13 +1077,8 @@
 
     /* Chroma MC always uses qpel bilinear */
     uvdxy = ((uvmy & 3) << 2) | (uvmx & 3);
-    if(!v->rnd){
-        dsp->put_qpel_pixels_tab[1][uvdxy](s->dest[1], srcU, s->uvlinesize);
-        dsp->put_qpel_pixels_tab[1][uvdxy](s->dest[2], srcV, s->uvlinesize);
-    }else{
-        dsp->put_no_rnd_qpel_pixels_tab[1][uvdxy](s->dest[1], srcU, s->uvlinesize);
-        dsp->put_no_rnd_qpel_pixels_tab[1][uvdxy](s->dest[2], srcV, s->uvlinesize);
-    }
+    dsp->put_vc1_qpel_pixels_tab[uvdxy](s->dest[1], srcU, s->uvlinesize, v->rnd);
+    dsp->put_vc1_qpel_pixels_tab[uvdxy](s->dest[2], srcV, s->uvlinesize, v->rnd);
 }
 
 /**