summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Kovalev <dkovalev@google.com>2013-10-04 15:53:32 -0700
committerDmitry Kovalev <dkovalev@google.com>2013-10-04 15:53:32 -0700
commitee74054e8184d42983db974142b57f9302c43216 (patch)
tree27367351fcf399c0f701703ca460b526214db867
parent56acf7e528a8196a696f5ce48bc90c1423c5d05a (diff)
downloadlibvpx-ee74054e8184d42983db974142b57f9302c43216.tar
libvpx-ee74054e8184d42983db974142b57f9302c43216.tar.gz
libvpx-ee74054e8184d42983db974142b57f9302c43216.tar.bz2
libvpx-ee74054e8184d42983db974142b57f9302c43216.zip
Cleaning up foreach_predicted_block_in_plane() function.
Change-Id: Ibb3d9667eba56621667412f62097aa7a392659c2
-rw-r--r--vp9/common/vp9_reconinter.c29
1 files changed, 5 insertions, 24 deletions
diff --git a/vp9/common/vp9_reconinter.c b/vp9/common/vp9_reconinter.c
index b3b9e1d8a..2fabe2ad9 100644
--- a/vp9/common/vp9_reconinter.c
+++ b/vp9/common/vp9_reconinter.c
@@ -174,36 +174,17 @@ typedef void (*foreach_predicted_block_visitor)(int plane, int block,
static INLINE void foreach_predicted_block_in_plane(
const MACROBLOCKD* const xd, BLOCK_SIZE bsize, int plane,
foreach_predicted_block_visitor visit, void *arg) {
- int i, x, y;
-
- // block sizes in number of 4x4 blocks log 2 ("*_b")
- // 4x4=0, 8x8=2, 16x16=4, 32x32=6, 64x64=8
- // subsampled size of the block
const int bwl = b_width_log2(bsize) - xd->plane[plane].subsampling_x;
const int bhl = b_height_log2(bsize) - xd->plane[plane].subsampling_y;
- // size of the predictor to use.
- int pred_w, pred_h;
-
if (xd->this_mi->mbmi.sb_type < BLOCK_8X8) {
+ int i = 0, x, y;
assert(bsize == BLOCK_8X8);
- pred_w = 0;
- pred_h = 0;
+ for (y = 0; y < 1 << bhl; ++y)
+ for (x = 0; x < 1 << bwl; ++x)
+ visit(plane, i++, bsize, 0, 0, arg);
} else {
- pred_w = bwl;
- pred_h = bhl;
- }
- assert(pred_w <= bwl);
- assert(pred_h <= bhl);
-
- // visit each subblock in raster order
- i = 0;
- for (y = 0; y < 1 << bhl; y += 1 << pred_h) {
- for (x = 0; x < 1 << bwl; x += 1 << pred_w) {
- visit(plane, i, bsize, pred_w, pred_h, arg);
- i += 1 << pred_w;
- }
- i += (1 << (bwl + pred_h)) - (1 << bwl);
+ visit(plane, 0, bsize, bwl, bhl, arg);
}
}