You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
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
This commit is contained in:
@@ -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,
|
||||||
|
Reference in New Issue
Block a user