Intra Prediction for 8x32 and 32x8
Change-Id: I5c232b6948b236136aed609532d4cdf4a7016e4d
diff --git a/aom_dsp/intrapred.c b/aom_dsp/intrapred.c
index 790cd22..6433011 100644
--- a/aom_dsp/intrapred.c
+++ b/aom_dsp/intrapred.c
@@ -951,6 +951,8 @@
intra_pred_sized(type, 64, 32) \
intra_pred_sized(type, 4, 16) \
intra_pred_sized(type, 16, 4) \
+ intra_pred_sized(type, 8, 32) \
+ intra_pred_sized(type, 32, 8) \
intra_pred_highbd_sized(type, 4, 8) \
intra_pred_highbd_sized(type, 8, 4) \
intra_pred_highbd_sized(type, 8, 16) \
@@ -960,7 +962,9 @@
intra_pred_highbd_sized(type, 32, 64) \
intra_pred_highbd_sized(type, 64, 32) \
intra_pred_highbd_sized(type, 4, 16) \
- intra_pred_highbd_sized(type, 16, 4)
+ intra_pred_highbd_sized(type, 16, 4) \
+ intra_pred_highbd_sized(type, 8, 32) \
+ intra_pred_highbd_sized(type, 32, 8)
#define intra_pred_above_4x4(type) \
intra_pred_sized(type, 8, 8) \
intra_pred_sized(type, 16, 16) \
@@ -987,6 +991,8 @@
intra_pred_sized(type, 32, 16) \
intra_pred_sized(type, 4, 16) \
intra_pred_sized(type, 16, 4) \
+ intra_pred_sized(type, 8, 32) \
+ intra_pred_sized(type, 32, 8) \
intra_pred_highbd_sized(type, 4, 8) \
intra_pred_highbd_sized(type, 8, 4) \
intra_pred_highbd_sized(type, 8, 16) \
@@ -994,7 +1000,9 @@
intra_pred_highbd_sized(type, 16, 32) \
intra_pred_highbd_sized(type, 32, 16) \
intra_pred_highbd_sized(type, 4, 16) \
- intra_pred_highbd_sized(type, 16, 4)
+ intra_pred_highbd_sized(type, 16, 4) \
+ intra_pred_highbd_sized(type, 8, 32) \
+ intra_pred_highbd_sized(type, 32, 8)
#define intra_pred_above_4x4(type) \
intra_pred_sized(type, 8, 8) \
intra_pred_sized(type, 16, 16) \
@@ -1024,7 +1032,9 @@
intra_pred_sized(type, 32, 64) \
intra_pred_sized(type, 64, 32) \
intra_pred_sized(type, 4, 16) \
- intra_pred_sized(type, 16, 4)
+ intra_pred_sized(type, 16, 4) \
+ intra_pred_sized(type, 8, 32) \
+ intra_pred_sized(type, 32, 8)
#define intra_pred_above_4x4(type) \
intra_pred_sized(type, 8, 8) \
intra_pred_sized(type, 16, 16) \
@@ -1044,7 +1054,9 @@
intra_pred_sized(type, 16, 32) \
intra_pred_sized(type, 32, 16) \
intra_pred_sized(type, 4, 16) \
- intra_pred_sized(type, 16, 4)
+ intra_pred_sized(type, 16, 4) \
+ intra_pred_sized(type, 8, 32) \
+ intra_pred_sized(type, 32, 8)
#define intra_pred_above_4x4(type) \
intra_pred_sized(type, 8, 8) \
intra_pred_sized(type, 16, 16) \
diff --git a/av1/common/common_data.h b/av1/common/common_data.h
index 1e6c83c..1a9fecb 100644
--- a/av1/common/common_data.h
+++ b/av1/common/common_data.h
@@ -680,12 +680,14 @@
#if CONFIG_EXT_PARTITION_TYPES && CONFIG_RECT_TX_EXT_INTRA
// 4x16, 16x4,
TX_4X16, TX_16X4,
+ // 8x32, 32x8
+ TX_8X32, TX_32X8,
#else
// 4x16, 16x4,
TX_4X8, TX_8X4,
-#endif // CONFIG_EXT_PARTITION_TYPES && CONFIG_RECT_TX_EXT_INTRA
// 8x32, 32x8
TX_8X16, TX_16X8,
+#endif // CONFIG_EXT_PARTITION_TYPES && CONFIG_RECT_TX_EXT_INTRA
// 16x64, 64x16
TX_16X32, TX_32X16,
#if CONFIG_EXT_PARTITION
diff --git a/av1/common/reconintra.c b/av1/common/reconintra.c
index 4b48ac2..17d1c5f 100644
--- a/av1/common/reconintra.c
+++ b/av1/common/reconintra.c
@@ -673,7 +673,9 @@
p[TX_32X64] = aom_##type##_predictor_32x64; \
p[TX_64X32] = aom_##type##_predictor_64x32; \
p[TX_4X16] = aom_##type##_predictor_4x16; \
- p[TX_16X4] = aom_##type##_predictor_16x4;
+ p[TX_16X4] = aom_##type##_predictor_16x4; \
+ p[TX_8X32] = aom_##type##_predictor_8x32; \
+ p[TX_32X8] = aom_##type##_predictor_32x8;
#else
#define INIT_RECTANGULAR(p, type) \
p[TX_4X8] = aom_##type##_predictor_4x8; \
@@ -683,7 +685,9 @@
p[TX_16X32] = aom_##type##_predictor_16x32; \
p[TX_32X16] = aom_##type##_predictor_32x16; \
p[TX_4X16] = aom_##type##_predictor_4x16; \
- p[TX_16X4] = aom_##type##_predictor_16x4;
+ p[TX_16X4] = aom_##type##_predictor_16x4; \
+ p[TX_8X32] = aom_##type##_predictor_8x32; \
+ p[TX_32X8] = aom_##type##_predictor_32x8;
#endif // CONFIG_TX64X64
#if CONFIG_TX64X64