]> granicus.if.org Git - libvpx/commitdiff
Removed rectangular intra prediction code
authorYaowu Xu <yaowu@google.com>
Tue, 4 Jun 2013 17:59:27 +0000 (10:59 -0700)
committerYaowu Xu <yaowu@google.com>
Fri, 7 Jun 2013 04:35:10 +0000 (21:35 -0700)
As all intra predictions happen on squared transform block now.

Change-Id: I7ec91e3f0ad01383a03d2bd3099bbf32e87e3466

vp9/common/vp9_reconintra.c

index 4a4634b63bf9960cecfafd3c340b567372f99c2b..85dfe5137798bf493bfe27175e0383504b3ed9d1 100644 (file)
@@ -204,6 +204,8 @@ void vp9_build_intra_predictors(uint8_t *src, int src_stride,
   // 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 @@ void vp9_build_intra_predictors(uint8_t *src, int src_stride,
       }
       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;