Commit 4c10515f authored by Jingning Han's avatar Jingning Han Committed by Gerrit Code Review
Browse files

Merge "Make update_partition_context faster"

parents 896dc47c 92479d95
......@@ -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,
......
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