Merge "Make update_partition_context faster"
This commit is contained in:
commit
4c10515f89
@ -405,34 +405,15 @@ static INLINE void update_partition_context(MACROBLOCKD *xd,
|
||||
int bwl = b_width_log2(sb_type);
|
||||
int bhl = b_height_log2(sb_type);
|
||||
int boffset = b_width_log2(BLOCK_SIZE_SB64X64) - bsl;
|
||||
int i;
|
||||
char pcvalue[2] = {~(0xe << boffset), ~(0xf <<boffset)};
|
||||
|
||||
assert(MAX(bwl, bhl) <= bsl);
|
||||
|
||||
// update the partition context at the end notes. set partition bits
|
||||
// of block sizes larger than the current one to be one, and partition
|
||||
// bits of smaller block sizes to be zero.
|
||||
if ((bwl == bsl) && (bhl == bsl)) {
|
||||
for (i = 0; i < bs; i++)
|
||||
xd->left_seg_context[i] = ~(0xf << boffset);
|
||||
for (i = 0; i < bs; i++)
|
||||
xd->above_seg_context[i] = ~(0xf << boffset);
|
||||
} else if ((bwl == bsl) && (bhl < bsl)) {
|
||||
for (i = 0; i < bs; i++)
|
||||
xd->left_seg_context[i] = ~(0xe << boffset);
|
||||
for (i = 0; i < bs; i++)
|
||||
xd->above_seg_context[i] = ~(0xf << boffset);
|
||||
} else if ((bwl < bsl) && (bhl == bsl)) {
|
||||
for (i = 0; i < bs; i++)
|
||||
xd->left_seg_context[i] = ~(0xf << boffset);
|
||||
for (i = 0; i < bs; i++)
|
||||
xd->above_seg_context[i] = ~(0xe << boffset);
|
||||
} else if ((bwl < bsl) && (bhl < bsl)) {
|
||||
for (i = 0; i < bs; i++)
|
||||
xd->left_seg_context[i] = ~(0xe << boffset);
|
||||
for (i = 0; i < bs; i++)
|
||||
xd->above_seg_context[i] = ~(0xe << boffset);
|
||||
} else {
|
||||
assert(0);
|
||||
}
|
||||
vpx_memset(xd->above_seg_context, pcvalue[bwl == bsl], bs);
|
||||
vpx_memset(xd->left_seg_context, pcvalue[bhl == bsl], bs);
|
||||
}
|
||||
|
||||
static INLINE int partition_plane_context(MACROBLOCKD *xd,
|
||||
|
Loading…
x
Reference in New Issue
Block a user