Mercurial > libavcodec.hg
diff mpeg12.c @ 2093:82816cad0e29 libavcodec
optimization
author | michael |
---|---|
date | Fri, 25 Jun 2004 14:11:44 +0000 |
parents | 23280e1b8dbf |
children | 5ab35105671a |
line wrap: on
line diff
--- a/mpeg12.c Thu Jun 24 22:13:44 2004 +0000 +++ b/mpeg12.c Fri Jun 25 14:11:44 2004 +0000 @@ -696,7 +696,7 @@ // RAL: Parameter added: f_or_b_code static void mpeg1_encode_motion(MpegEncContext *s, int val, int f_or_b_code) { - int code, bit_size, l, m, bits, range, sign; + int code, bit_size, l, bits, range, sign; if (val == 0) { /* zero vector */ @@ -708,13 +708,8 @@ bit_size = f_or_b_code - 1; range = 1 << bit_size; /* modulo encoding */ - l = 16 * range; - m = 2 * l; - if (val < -l) { - val += m; - } else if (val >= l) { - val -= m; - } + l= INT_BIT - 5 - bit_size; + val= (val<<l)>>l; if (val >= 0) { val--; @@ -1411,8 +1406,8 @@ val += pred; /* modulo decoding */ - l = 1 << (shift+4); - val = ((val + l)&(l*2-1)) - l; + l= INT_BIT - 5 - shift; + val = (val<<l)>>l; return val; }