diff options
author | Kostya Shishkov <kostya.shishkov@gmail.com> | 2006-08-31 04:44:54 +0000 |
---|---|---|
committer | Kostya Shishkov <kostya.shishkov@gmail.com> | 2006-08-31 04:44:54 +0000 |
commit | 74691b7bcb0f3a0e4fb3e15dcc1a3270237079b7 (patch) | |
tree | aca962e181feb55b3e8a984e6dae4bc424062274 /libavcodec/vc1.c | |
parent | 2d5eadccb5c96b461861ad0a3434863615f80867 (diff) | |
download | ffmpeg-74691b7bcb0f3a0e4fb3e15dcc1a3270237079b7.tar.gz |
New qpel MC functions conforming to VC-1 standard.
Existing DSPUtil functions cause chroma artifacts on some files.
Originally committed as revision 6139 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/vc1.c')
-rw-r--r-- | libavcodec/vc1.c | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index 8a5cf20b06..7e76ecdad9 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -879,13 +879,8 @@ static void vc1_mc_1mv(VC1Context *v, int dir) 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 @@ static void vc1_mc_4mv_chroma(VC1Context *v) /* 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); } /** |