From: hkuang Date: Fri, 1 May 2015 19:35:08 +0000 (-0700) Subject: Optimize the read_partition. X-Git-Tag: v1.5.0~710^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4c1a8be29d51b9e3face742ff145995996a0da20;p=libvpx Optimize the read_partition. Change-Id: I5a796425ce5706824a2fc17c6f24f983c5b9e43b --- diff --git a/vp9/common/vp9_onyxc_int.h b/vp9/common/vp9_onyxc_int.h index 8a97cbedc..166da68cc 100644 --- a/vp9/common/vp9_onyxc_int.h +++ b/vp9/common/vp9_onyxc_int.h @@ -417,21 +417,12 @@ static INLINE int partition_plane_context(const MACROBLOCKD *xd, BLOCK_SIZE bsize) { const PARTITION_CONTEXT *above_ctx = xd->above_seg_context + mi_col; const PARTITION_CONTEXT *left_ctx = xd->left_seg_context + (mi_row & MI_MASK); - const int bsl = mi_width_log2_lookup[bsize]; - const int bs = 1 << bsl; - int above = 0, left = 0, i; + int above = (*above_ctx >> bsl) & 1 , left = (*left_ctx >> bsl) & 1; assert(b_width_log2_lookup[bsize] == b_height_log2_lookup[bsize]); assert(bsl >= 0); - for (i = 0; i < bs; i++) { - above |= above_ctx[i]; - left |= left_ctx[i]; - } - above = (above & bs) > 0; - left = (left & bs) > 0; - return (left * 2 + above) + bsl * PARTITION_PLOFFSET; }