Mercurial > libavcodec.hg
diff h263.c @ 1255:625ccacd1113 libavcodec
decode motion & modulo optimize patch by (BERO <bero at geocities dot co dot jp>)
author | michaelni |
---|---|
date | Wed, 14 May 2003 01:08:02 +0000 |
parents | 604661d34c68 |
children | 6defe392d5d2 |
line wrap: on
line diff
--- a/h263.c Wed May 14 00:32:22 2003 +0000 +++ b/h263.c Wed May 14 01:08:02 2003 +0000 @@ -3437,10 +3437,12 @@ sign = get_bits1(&s->gb); shift = f_code - 1; - val = (code - 1) << shift; - if (shift > 0) + val = code; + if (shift) { + val = (val - 1) << shift; val |= get_bits(&s->gb, shift); - val++; + val++; + } if (sign) val = -val; val += pred; @@ -3448,11 +3450,7 @@ /* modulo decoding */ if (!s->h263_long_vectors) { l = 1 << (f_code + 4); - if (val < -l) { - val += l<<1; - } else if (val >= l) { - val -= l<<1; - } + val = ((val + l)&(l*2-1)) - l; } else { /* horrible h263 long vector mode */ if (pred < -31 && val < -63)