mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Make calculation of mask_edge free of branches, faster of course but probably
little effect overall as this is not that often executed. Originally committed as revision 21366 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
b4d68544c8
commit
31f6e3c19e
@ -434,8 +434,9 @@ static av_always_inline void filter_mb_dir(H264Context *h, int mb_x, int mb_y, u
|
|||||||
const int edges = (mb_type & (MB_TYPE_16x16|MB_TYPE_SKIP))
|
const int edges = (mb_type & (MB_TYPE_16x16|MB_TYPE_SKIP))
|
||||||
== (MB_TYPE_16x16|MB_TYPE_SKIP) ? 1 : 4;
|
== (MB_TYPE_16x16|MB_TYPE_SKIP) ? 1 : 4;
|
||||||
// how often to recheck mv-based bS when iterating between edges
|
// how often to recheck mv-based bS when iterating between edges
|
||||||
const int mask_edge = (mb_type & (MB_TYPE_16x16 | (MB_TYPE_16x8 << dir))) ? 3 :
|
static const uint8_t mask_edge_tab[2][8]={{0,3,3,3,1,1,1,1},
|
||||||
(mb_type & (MB_TYPE_8x16 >> dir)) ? 1 : 0;
|
{0,3,1,1,3,3,3,3}};
|
||||||
|
const int mask_edge = mask_edge_tab[dir][(mb_type>>3)&7];
|
||||||
// how often to recheck mv-based bS when iterating along each edge
|
// how often to recheck mv-based bS when iterating along each edge
|
||||||
const int mask_par0 = mb_type & (MB_TYPE_16x16 | (MB_TYPE_8x16 >> dir));
|
const int mask_par0 = mb_type & (MB_TYPE_16x16 | (MB_TYPE_8x16 >> dir));
|
||||||
int start = h->slice_table[mbm_xy] == 0xFFFF
|
int start = h->slice_table[mbm_xy] == 0xFFFF
|
||||||
|
Loading…
Reference in New Issue
Block a user