]> granicus.if.org Git - libvpx/commitdiff
Removing txfrm_block_to_raster_xy() call from extend_for_intra().
authorDmitry Kovalev <dkovalev@google.com>
Fri, 22 Nov 2013 03:30:58 +0000 (19:30 -0800)
committerDmitry Kovalev <dkovalev@google.com>
Fri, 22 Nov 2013 03:30:58 +0000 (19:30 -0800)
Change-Id: I6a48d1f35ed5fe7a2c7499675b339994c9c3bdf2

vp9/common/vp9_blockd.h
vp9/decoder/vp9_decodeframe.c
vp9/encoder/vp9_encodemb.c

index 121947b7e4a5efbab021451541552e98a43633b9..e704bcca20e18862eb77e91cab61be5d7b6fe236 100644 (file)
@@ -394,21 +394,18 @@ static void txfrm_block_to_raster_xy(BLOCK_SIZE plane_bsize,
 }
 
 static void extend_for_intra(MACROBLOCKD *xd, BLOCK_SIZE plane_bsize,
-                             int plane, int block, TX_SIZE tx_size) {
+                             int plane, int aoff, int loff) {
   struct macroblockd_plane *const pd = &xd->plane[plane];
   uint8_t *const buf = pd->dst.buf;
   const int stride = pd->dst.stride;
-
-  int x, y;
-  txfrm_block_to_raster_xy(plane_bsize, tx_size, block, &x, &y);
-  x = x * 4 - 1;
-  y = y * 4 - 1;
+  const int x = aoff * 4 - 1;
+  const int y = loff * 4 - 1;
   // Copy a pixel into the umv if we are in a situation where the block size
   // extends into the UMV.
   // TODO(JBB): Should be able to do the full extend in place so we don't have
   // to do this multiple times.
   if (xd->mb_to_right_edge < 0) {
-    const int bw = 4 << b_width_log2(plane_bsize);
+    const int bw = 4 * num_4x4_blocks_wide_lookup[plane_bsize];
     const int umv_border_start = bw + (xd->mb_to_right_edge >>
                                        (3 + pd->subsampling_x));
 
@@ -419,7 +416,7 @@ static void extend_for_intra(MACROBLOCKD *xd, BLOCK_SIZE plane_bsize,
 
   if (xd->mb_to_bottom_edge < 0) {
     if (xd->left_available || x >= 0) {
-      const int bh = 4 << b_height_log2(plane_bsize);
+      const int bh = 4 * num_4x4_blocks_high_lookup[plane_bsize];
       const int umv_border_start =
           bh + (xd->mb_to_bottom_edge >> (3 + pd->subsampling_y));
 
index b64d98c37c8e6955aa2d4d97503d7e0fda276fd2..8a3640697b66ef3036d84f95f2aed98cbb259f61 100644 (file)
@@ -310,7 +310,7 @@ static void predict_and_reconstruct_intra_block(int plane, int block,
   dst = &pd->dst.buf[4 * y * pd->dst.stride + 4 * x];
 
   if (xd->mb_to_right_edge < 0 || xd->mb_to_bottom_edge < 0)
-    extend_for_intra(xd, plane_bsize, plane, block, tx_size);
+    extend_for_intra(xd, plane_bsize, plane, x, y);
 
   vp9_predict_intra_block(xd, block >> (tx_size << 1),
                           b_width_log2(plane_bsize), tx_size, mode,
index ff62f084d51276374cf6976777e65f1a2f39b39c..aa7902a81a9e68ddb9582fa97636bb400a2acfe1 100644 (file)
@@ -563,7 +563,7 @@ void vp9_encode_block_intra(int plane, int block, BLOCK_SIZE plane_bsize,
   src_diff = &p->src_diff[4 * (j * diff_stride + i)];
 
   if (xd->mb_to_right_edge < 0 || xd->mb_to_bottom_edge < 0)
-    extend_for_intra(xd, plane_bsize, plane, block, tx_size);
+    extend_for_intra(xd, plane_bsize, plane, i, j);
 
   // if (x->optimize)
   // vp9_optimize_b(plane, block, plane_bsize, tx_size, x, args->ctx);