Commit 2d603902 authored by Michael Niedermayer's avatar Michael Niedermayer

Reduce the size of the bidir refine hashtable from 4096 to 256 and

change the hash function to something more sane and simple.
about 1/3 faster, no meassureable change in psnr or size and i gues
its even same md5 with my test file but i forgot testing that.

Originally committed as revision 22773 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent e056d2a2
...@@ -1475,11 +1475,11 @@ static inline int bidir_refine(MpegEncContext * s, int mb_x, int mb_y) ...@@ -1475,11 +1475,11 @@ static inline int bidir_refine(MpegEncContext * s, int mb_x, int mb_y)
const int ymin= c->ymin<<shift; const int ymin= c->ymin<<shift;
const int xmax= c->xmax<<shift; const int xmax= c->xmax<<shift;
const int ymax= c->ymax<<shift; const int ymax= c->ymax<<shift;
uint8_t map[8][8][8][8]; uint8_t map[256];
memset(map,0,sizeof(map)); memset(map,0,sizeof(map));
#define BIDIR_MAP(fx,fy,bx,by) \ #define BIDIR_MAP(fx,fy,bx,by) \
map[(motion_fx+fx)&7][(motion_fy+fy)&7][(motion_bx+bx)&7][(motion_by+by)&7] map[((motion_fx+fx)+17*(motion_fy+fy)+63*(motion_bx+bx)+117*(motion_by+by))&255]
BIDIR_MAP(0,0,0,0) = 1; BIDIR_MAP(0,0,0,0) = 1;
fbmin= check_bidir_mv(s, motion_fx, motion_fy, fbmin= check_bidir_mv(s, motion_fx, motion_fy,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment