50 |
* 22.12.2001 lock based interpolation |
* 22.12.2001 lock based interpolation |
51 |
* 01.12.2001 inital version; (c)2001 peter ross <pross@cs.rmit.edu.au> |
* 01.12.2001 inital version; (c)2001 peter ross <pross@cs.rmit.edu.au> |
52 |
* |
* |
53 |
* $Id: decoder.c,v 1.23 2002-06-30 10:46:29 suxen_drol Exp $ |
* $Id: decoder.c,v 1.24 2002-07-03 12:32:50 suxen_drol Exp $ |
54 |
* |
* |
55 |
*************************************************************************/ |
*************************************************************************/ |
56 |
|
|
501 |
int low = ((-32) * scale_fac); |
int low = ((-32) * scale_fac); |
502 |
int range = (64 * scale_fac); |
int range = (64 * scale_fac); |
503 |
|
|
504 |
VECTOR pmv[4]; |
VECTOR pmv; |
|
int32_t psad[4]; |
|
|
|
|
505 |
int mv_x, mv_y; |
int mv_x, mv_y; |
|
int pmv_x, pmv_y; |
|
|
|
|
506 |
|
|
507 |
get_pmvdata2(dec->mbs, x, y, dec->mb_width, k, pmv, psad, bound); |
pmv = get_pmv2(dec->mbs, dec->mb_width, bound, x, y, k); |
|
|
|
|
pmv_x = pmv[0].x; |
|
|
pmv_y = pmv[0].y; |
|
508 |
|
|
509 |
mv_x = get_mv(bs, fcode); |
mv_x = get_mv(bs, fcode); |
510 |
mv_y = get_mv(bs, fcode); |
mv_y = get_mv(bs, fcode); |
511 |
|
|
512 |
DPRINTF(DPRINTF_MV,"mv_diff (%i,%i) pred (%i,%i)", mv_x, mv_y, pmv_x, pmv_y); |
DPRINTF(DPRINTF_MV,"mv_diff (%i,%i) pred (%i,%i)", mv_x, mv_y, pmv.x, pmv.y); |
513 |
|
|
514 |
mv_x += pmv_x; |
mv_x += pmv.x; |
515 |
mv_y += pmv_y; |
mv_y += pmv.y; |
516 |
|
|
517 |
if (mv_x < low) { |
if (mv_x < low) { |
518 |
mv_x += range; |
mv_x += range; |