shithub: libvpx

Download patch

ref: 9470c1a2a1c47b00624d1c0ab488851b8fa57027
parent: 28d31aed7fa9ea227893698ebaa599caea087465
author: Yaowu Xu <yaowu@google.com>
date: Tue Jun 4 06:59:27 EDT 2013

Removed rectangular intra prediction code

As all intra predictions happen on squared transform block now.

Change-Id: I7ec91e3f0ad01383a03d2bd3099bbf32e87e3466

--- a/vp9/common/vp9_reconintra.c
+++ b/vp9/common/vp9_reconintra.c
@@ -204,6 +204,8 @@
   // 129  G   H  ..  S   T   T   T   T   T
   // ..
 
+  assert(bw == bh);
+
   if (left_available) {
     for (i = 0; i < bh; i++)
       yleft_col[i] = src[i * src_stride - 1];
@@ -271,89 +273,22 @@
       }
       break;
     case D45_PRED:
+      d45_predictor(ypred_ptr, y_stride, bw, bh, yabove_row, yleft_col);
+      break;
     case D135_PRED:
+      d135_predictor(ypred_ptr, y_stride, bw, bh, yabove_row, yleft_col);
+      break;
     case D117_PRED:
+      d117_predictor(ypred_ptr, y_stride, bw, bh, yabove_row, yleft_col);
+      break;
     case D153_PRED:
+      d153_predictor(ypred_ptr, y_stride, bw, bh, yabove_row, yleft_col);
+      break;
     case D27_PRED:
+      d27_predictor(ypred_ptr, y_stride, bw, bh, yabove_row, yleft_col);
+      break;
     case D63_PRED:
-      if (bw == bh) {
-        switch (mode) {
-          case D45_PRED:
-            d45_predictor(ypred_ptr, y_stride, bw, bh,  yabove_row, yleft_col);
-            break;
-          case D135_PRED:
-            d135_predictor(ypred_ptr, y_stride, bw, bh,  yabove_row, yleft_col);
-            break;
-          case D117_PRED:
-            d117_predictor(ypred_ptr, y_stride, bw, bh,  yabove_row, yleft_col);
-            break;
-          case D153_PRED:
-            d153_predictor(ypred_ptr, y_stride, bw, bh,  yabove_row, yleft_col);
-            break;
-          case D27_PRED:
-            d27_predictor(ypred_ptr, y_stride, bw, bh,  yabove_row, yleft_col);
-            break;
-          case D63_PRED:
-            d63_predictor(ypred_ptr, y_stride, bw, bh,  yabove_row, yleft_col);
-            break;
-          default:
-            assert(0);
-        }
-      } else if (bw > bh) {
-        uint8_t pred[64*64];
-        vpx_memset(yleft_col + bh, yleft_col[bh - 1], bw - bh);
-        switch (mode) {
-          case D45_PRED:
-            d45_predictor(pred, 64, bw, bw,  yabove_row, yleft_col);
-            break;
-          case D135_PRED:
-            d135_predictor(pred, 64, bw, bw,  yabove_row, yleft_col);
-            break;
-          case D117_PRED:
-            d117_predictor(pred, 64, bw, bw,  yabove_row, yleft_col);
-            break;
-          case D153_PRED:
-            d153_predictor(pred, 64, bw, bw,  yabove_row, yleft_col);
-            break;
-          case D27_PRED:
-            d27_predictor(pred, 64, bw, bw,  yabove_row, yleft_col);
-            break;
-          case D63_PRED:
-            d63_predictor(pred, 64, bw, bw,  yabove_row, yleft_col);
-            break;
-          default:
-            assert(0);
-        }
-        for (i = 0; i < bh; i++)
-          vpx_memcpy(ypred_ptr + y_stride * i, pred + i * 64, bw);
-      } else {
-        uint8_t pred[64 * 64];
-        vpx_memset(yabove_row + bw * 2, yabove_row[bw * 2 - 1], (bh - bw) * 2);
-        switch (mode) {
-          case D45_PRED:
-            d45_predictor(pred, 64, bh, bh,  yabove_row, yleft_col);
-            break;
-          case D135_PRED:
-            d135_predictor(pred, 64, bh, bh,  yabove_row, yleft_col);
-            break;
-          case D117_PRED:
-            d117_predictor(pred, 64, bh, bh,  yabove_row, yleft_col);
-            break;
-          case D153_PRED:
-            d153_predictor(pred, 64, bh, bh,  yabove_row, yleft_col);
-            break;
-          case D27_PRED:
-            d27_predictor(pred, 64, bh, bh,  yabove_row, yleft_col);
-            break;
-          case D63_PRED:
-            d63_predictor(pred, 64, bh, bh,  yabove_row, yleft_col);
-            break;
-          default:
-            assert(0);
-        }
-        for (i = 0; i < bh; i++)
-          vpx_memcpy(ypred_ptr + y_stride * i, pred + i * 64, bw);
-      }
+      d63_predictor(ypred_ptr, y_stride, bw, bh, yabove_row, yleft_col);
       break;
     default:
       break;