Mercurial > libavcodec.hg
comparison vp8.c @ 11937:bc617cceacb1 libavcodec
avoid conditional and division in chroma MV calculation
author | stefang |
---|---|
date | Wed, 23 Jun 2010 21:45:26 +0000 |
parents | f2007d7c3f1d |
children | fc9e4874a12c |
comparison
equal
deleted
inserted
replaced
11936:0a36d4b2144b | 11937:bc617cceacb1 |
---|---|
987 mb->bmv[(2*y+1) * 4 + 2*x+1].x; | 987 mb->bmv[(2*y+1) * 4 + 2*x+1].x; |
988 uvmv.y = mb->bmv[ 2*y * 4 + 2*x ].y + | 988 uvmv.y = mb->bmv[ 2*y * 4 + 2*x ].y + |
989 mb->bmv[ 2*y * 4 + 2*x+1].y + | 989 mb->bmv[ 2*y * 4 + 2*x+1].y + |
990 mb->bmv[(2*y+1) * 4 + 2*x ].y + | 990 mb->bmv[(2*y+1) * 4 + 2*x ].y + |
991 mb->bmv[(2*y+1) * 4 + 2*x+1].y; | 991 mb->bmv[(2*y+1) * 4 + 2*x+1].y; |
992 uvmv.x = (uvmv.x + (uvmv.x < 0 ? -2 : 2)) / 4; | 992 uvmv.x = (uvmv.x + 2 + (uvmv.x >> (INT_BIT-1))) >> 2; |
993 uvmv.y = (uvmv.y + (uvmv.y < 0 ? -2 : 2)) / 4; | 993 uvmv.y = (uvmv.y + 2 + (uvmv.y >> (INT_BIT-1))) >> 2; |
994 if (s->profile == 3) { | 994 if (s->profile == 3) { |
995 uvmv.x &= ~7; | 995 uvmv.x &= ~7; |
996 uvmv.y &= ~7; | 996 uvmv.y &= ~7; |
997 } | 997 } |
998 vp8_mc(s, 0, dst[1] + 4*y*s->uvlinesize + x*4, | 998 vp8_mc(s, 0, dst[1] + 4*y*s->uvlinesize + x*4, |