Commit 4df9e788 authored by Yaowu Xu's avatar Yaowu Xu Committed by Gerrit Code Review
Browse files

Merge "Removed rectangular intra prediction code" into experimental

parents e127bdc0 9470c1a2
......@@ -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;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment