diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2010-04-02 11:06:29 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2010-04-02 11:06:29 +0000 |
commit | 2d603902f3570de81a26b20bf056c30597be08a2 (patch) | |
tree | 2a0ac306e4329f4b8a8922c5351bb432587fa092 | |
parent | e056d2a24bb102a57debbd9fdfae4963ece1325e (diff) | |
download | ffmpeg-2d603902f3570de81a26b20bf056c30597be08a2.tar.gz |
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
-rw-r--r-- | libavcodec/motion_est.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c index 01ba6c63a7..17954b52f6 100644 --- a/libavcodec/motion_est.c +++ b/libavcodec/motion_est.c @@ -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 xmax= c->xmax<<shift; const int ymax= c->ymax<<shift; - uint8_t map[8][8][8][8]; + uint8_t map[256]; memset(map,0,sizeof(map)); #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; fbmin= check_bidir_mv(s, motion_fx, motion_fy, |