summaryrefslogtreecommitdiff
path: root/vp9/common
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@google.com>2013-01-08 10:29:22 -0800
committerRonald S. Bultje <rbultje@google.com>2013-01-08 12:54:45 -0800
commit4455036cfc3c6b7fb9d7b85af1982e7df3711a05 (patch)
tree4294eb7d43141c3406d3f3f184b522a1b052fadd /vp9/common
parent879cb7d96259a71eea0038452a00241650589084 (diff)
downloadlibvpx-4455036cfc3c6b7fb9d7b85af1982e7df3711a05.tar
libvpx-4455036cfc3c6b7fb9d7b85af1982e7df3711a05.tar.gz
libvpx-4455036cfc3c6b7fb9d7b85af1982e7df3711a05.tar.bz2
libvpx-4455036cfc3c6b7fb9d7b85af1982e7df3711a05.zip
Merge superblocks (32x32) experiment.
Change-Id: I0df99742029834a85c4933652b0587cf5b6b2587
Diffstat (limited to 'vp9/common')
-rw-r--r--vp9/common/vp9_blockd.c4
-rw-r--r--vp9/common/vp9_blockd.h28
-rw-r--r--vp9/common/vp9_default_coef_probs.h4
-rw-r--r--vp9/common/vp9_entropy.c12
-rw-r--r--vp9/common/vp9_entropy.h8
-rw-r--r--vp9/common/vp9_entropymode.c16
-rw-r--r--vp9/common/vp9_findnearmv.c8
-rw-r--r--vp9/common/vp9_invtrans.c2
-rw-r--r--vp9/common/vp9_invtrans.h2
-rw-r--r--vp9/common/vp9_loopfilter.c42
-rw-r--r--vp9/common/vp9_mvref_common.c7
-rw-r--r--vp9/common/vp9_onyxc_int.h22
-rw-r--r--vp9/common/vp9_pred_common.c12
-rw-r--r--vp9/common/vp9_recon.c4
-rw-r--r--vp9/common/vp9_reconinter.c4
-rw-r--r--vp9/common/vp9_reconinter.h4
-rw-r--r--vp9/common/vp9_reconintra.c14
-rw-r--r--vp9/common/vp9_reconintra.h2
-rw-r--r--vp9/common/vp9_rtcd_defs.sh36
19 files changed, 83 insertions, 148 deletions
diff --git a/vp9/common/vp9_blockd.c b/vp9/common/vp9_blockd.c
index b8ad433dc..c3fa07284 100644
--- a/vp9/common/vp9_blockd.c
+++ b/vp9/common/vp9_blockd.c
@@ -16,7 +16,7 @@ const uint8_t vp9_block2left[TX_SIZE_MAX_SB][25] = {
{0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8},
{0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 6, 6, 6, 6, 8},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 6, 6, 6, 6, 8},
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 6, 6, 6, 6, 8}
#endif
};
@@ -24,7 +24,7 @@ const uint8_t vp9_block2above[TX_SIZE_MAX_SB][25] = {
{0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 4, 5, 6, 7, 6, 7, 8},
{0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 4, 4, 4, 4, 6, 6, 6, 6, 8},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 6, 6, 6, 6, 8},
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 6, 6, 6, 6, 8}
#endif
};
diff --git a/vp9/common/vp9_blockd.h b/vp9/common/vp9_blockd.h
index bfc5b82e1..9f6e53356 100644
--- a/vp9/common/vp9_blockd.h
+++ b/vp9/common/vp9_blockd.h
@@ -122,7 +122,7 @@ typedef enum {
TX_8X8 = 1, // 8x8 dct transform
TX_16X16 = 2, // 16x16 dct transform
TX_SIZE_MAX_MB = 3, // Number of different transforms available
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
TX_32X32 = TX_SIZE_MAX_MB, // 32x32 dct transform
TX_SIZE_MAX_SB, // Number of transforms available to SBs
#else
@@ -226,7 +226,6 @@ typedef enum {
MAX_REF_FRAMES = 4
} MV_REFERENCE_FRAME;
-#if CONFIG_SUPERBLOCKS
typedef enum {
BLOCK_SIZE_MB16X16 = 0,
BLOCK_SIZE_SB32X32 = 1,
@@ -234,7 +233,6 @@ typedef enum {
BLOCK_SIZE_SB64X64 = 2,
#endif
} BLOCK_SIZE_TYPE;
-#endif
typedef struct {
MB_PREDICTION_MODE mode, uv_mode;
@@ -274,13 +272,9 @@ typedef struct {
// Flag to turn prediction signal filter on(1)/off(0 ) at the MB level
unsigned int pred_filter_enabled;
#endif
- INTERPOLATIONFILTERTYPE interp_filter;
+ INTERPOLATIONFILTERTYPE interp_filter;
-#if CONFIG_SUPERBLOCKS
- // FIXME need a SB array of 4 MB_MODE_INFOs that
- // only needs one sb_type.
BLOCK_SIZE_TYPE sb_type;
-#endif
} MB_MODE_INFO;
typedef struct {
@@ -310,7 +304,7 @@ typedef struct blockd {
union b_mode_info bmi;
} BLOCKD;
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
typedef struct superblockd {
/* 32x32 Y and 16x16 U/V. No 2nd order transform yet. */
DECLARE_ALIGNED(16, int16_t, diff[32*32+16*16*2]);
@@ -326,7 +320,7 @@ typedef struct macroblockd {
DECLARE_ALIGNED(16, int16_t, dqcoeff[400]);
DECLARE_ALIGNED(16, uint16_t, eobs[25]);
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
SUPERBLOCKD sb_coeff_data;
#endif
@@ -417,14 +411,6 @@ typedef struct macroblockd {
int corrupted;
-#if !CONFIG_SUPERBLOCKS && (ARCH_X86 || ARCH_X86_64)
- /* This is an intermediate buffer currently used in sub-pixel motion search
- * to keep a copy of the reference area. This buffer can be used for other
- * purpose.
- */
- DECLARE_ALIGNED(32, uint8_t, y_buf[22 * 32]);
-#endif
-
int sb_index;
int mb_index; // Index of the MB in the SB (0..3)
int q_index;
@@ -528,11 +514,9 @@ static TX_TYPE get_tx_type_4x4(const MACROBLOCKD *xd, const BLOCKD *b) {
int ib = (int)(b - xd->block);
if (ib >= 16)
return tx_type;
-#if CONFIG_SUPERBLOCKS
// TODO(rbultje, debargha): Explore ADST usage for superblocks
if (xd->mode_info_context->mbmi.sb_type)
return tx_type;
-#endif
if (xd->mode_info_context->mbmi.mode == B_PRED &&
xd->q_index < ACTIVE_HT) {
tx_type = txfm_map(
@@ -585,11 +569,9 @@ static TX_TYPE get_tx_type_8x8(const MACROBLOCKD *xd, const BLOCKD *b) {
int ib = (int)(b - xd->block);
if (ib >= 16)
return tx_type;
-#if CONFIG_SUPERBLOCKS
// TODO(rbultje, debargha): Explore ADST usage for superblocks
if (xd->mode_info_context->mbmi.sb_type)
return tx_type;
-#endif
if (xd->mode_info_context->mbmi.mode == I8X8_PRED &&
xd->q_index < ACTIVE_HT8) {
// TODO(rbultje): MB_PREDICTION_MODE / B_PREDICTION_MODE should be merged
@@ -620,11 +602,9 @@ static TX_TYPE get_tx_type_16x16(const MACROBLOCKD *xd, const BLOCKD *b) {
int ib = (int)(b - xd->block);
if (ib >= 16)
return tx_type;
-#if CONFIG_SUPERBLOCKS
// TODO(rbultje, debargha): Explore ADST usage for superblocks
if (xd->mode_info_context->mbmi.sb_type)
return tx_type;
-#endif
if (xd->mode_info_context->mbmi.mode < I8X8_PRED &&
xd->q_index < ACTIVE_HT16) {
tx_type = txfm_map(pred_mode_conv(xd->mode_info_context->mbmi.mode));
diff --git a/vp9/common/vp9_default_coef_probs.h b/vp9/common/vp9_default_coef_probs.h
index 6968dcd76..0c9131db2 100644
--- a/vp9/common/vp9_default_coef_probs.h
+++ b/vp9/common/vp9_default_coef_probs.h
@@ -1038,7 +1038,7 @@ static const vp9_coeff_probs default_hybrid_coef_probs_16x16[BLOCK_TYPES_16X16]
}
}
};
-#if CONFIG_SUPERBLOCKS && CONFIG_TX32X32
+#if CONFIG_TX32X32
static const vp9_coeff_probs default_coef_probs_32x32[BLOCK_TYPES_32X32] = {
{ /* block Type 0 */
{ /* Coeff Band 0 */
@@ -1210,4 +1210,4 @@ static const vp9_coeff_probs default_coef_probs_32x32[BLOCK_TYPES_32X32] = {
}
}
};
-#endif // CONFIG_SUPERBLOCKS && CONFIG_TX32X32
+#endif // CONFIG_TX32X32
diff --git a/vp9/common/vp9_entropy.c b/vp9/common/vp9_entropy.c
index 1402c084e..cdc8bc14e 100644
--- a/vp9/common/vp9_entropy.c
+++ b/vp9/common/vp9_entropy.c
@@ -142,7 +142,7 @@ DECLARE_ALIGNED(16, const int, vp9_default_zig_zag1d_16x16[256]) = {
237, 252, 253, 238, 223, 239, 254, 255,
};
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
#if CONFIG_DWT32X32HYBRID
DECLARE_ALIGNED(16, const int, vp9_coef_bands_32x32[1024]) = {
0, 1, 2, 3, 5, 4, 4, 5, 5, 3, 6, 3, 5, 4, 6,
@@ -547,7 +547,7 @@ DECLARE_ALIGNED(16, int,
vp9_default_zig_zag1d_8x8_neighbors[64 * MAX_NEIGHBORS]);
DECLARE_ALIGNED(16, int,
vp9_default_zig_zag1d_16x16_neighbors[256 * MAX_NEIGHBORS]);
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
DECLARE_ALIGNED(16, int,
vp9_default_zig_zag1d_32x32_neighbors[1024 * MAX_NEIGHBORS]);
#endif
@@ -628,7 +628,7 @@ void vp9_init_neighbors() {
vp9_default_zig_zag1d_8x8_neighbors);
init_scan_neighbors(vp9_default_zig_zag1d_16x16, 16,
vp9_default_zig_zag1d_16x16_neighbors);
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
init_scan_neighbors(vp9_default_zig_zag1d_32x32, 32,
vp9_default_zig_zag1d_32x32_neighbors);
#endif
@@ -645,7 +645,7 @@ const int *vp9_get_coef_neighbors_handle(const int *scan) {
return vp9_default_zig_zag1d_8x8_neighbors;
} else if (scan == vp9_default_zig_zag1d_16x16) {
return vp9_default_zig_zag1d_16x16_neighbors;
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
} else if (scan == vp9_default_zig_zag1d_32x32) {
return vp9_default_zig_zag1d_32x32_neighbors;
#endif
@@ -693,7 +693,7 @@ void vp9_default_coef_probs(VP9_COMMON *pc) {
vpx_memcpy(pc->fc.hybrid_coef_probs_16x16,
default_hybrid_coef_probs_16x16,
sizeof(pc->fc.hybrid_coef_probs_16x16));
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
vpx_memcpy(pc->fc.coef_probs_32x32, default_coef_probs_32x32,
sizeof(pc->fc.coef_probs_32x32));
#endif
@@ -840,7 +840,7 @@ void vp9_adapt_coef_probs(VP9_COMMON *cm) {
cm->fc.pre_hybrid_coef_probs_16x16,
BLOCK_TYPES_16X16, cm->fc.hybrid_coef_counts_16x16,
count_sat, update_factor);
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
update_coef_probs(cm->fc.coef_probs_32x32, cm->fc.pre_coef_probs_32x32,
BLOCK_TYPES_32X32, cm->fc.coef_counts_32x32,
count_sat, update_factor);
diff --git a/vp9/common/vp9_entropy.h b/vp9/common/vp9_entropy.h
index 99826015a..cc65ffc0a 100644
--- a/vp9/common/vp9_entropy.h
+++ b/vp9/common/vp9_entropy.h
@@ -66,7 +66,7 @@ extern vp9_extra_bit_struct vp9_extra_bits[12]; /* indexed by token value */
#define BLOCK_TYPES_16X16 4
-#if CONFIG_SUPERBLOCKS && CONFIG_TX32X32
+#if CONFIG_TX32X32
#define BLOCK_TYPES_32X32 4
#endif
@@ -77,7 +77,7 @@ extern vp9_extra_bit_struct vp9_extra_bits[12]; /* indexed by token value */
extern DECLARE_ALIGNED(16, const int, vp9_coef_bands_4x4[16]);
extern DECLARE_ALIGNED(64, const int, vp9_coef_bands_8x8[64]);
extern DECLARE_ALIGNED(16, const int, vp9_coef_bands_16x16[256]);
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
extern DECLARE_ALIGNED(16, const int, vp9_coef_bands_32x32[1024]);
#endif
@@ -122,7 +122,7 @@ extern DECLARE_ALIGNED(16, const int, vp9_row_scan_4x4[16]);
extern DECLARE_ALIGNED(64, const int, vp9_default_zig_zag1d_8x8[64]);
extern DECLARE_ALIGNED(16, const int, vp9_default_zig_zag1d_16x16[256]);
-#if CONFIG_SUPERBLOCKS && CONFIG_TX32X32
+#if CONFIG_TX32X32
extern DECLARE_ALIGNED(16, const int, vp9_default_zig_zag1d_32x32[1024]);
#endif
@@ -154,7 +154,7 @@ extern DECLARE_ALIGNED(16, int, vp9_default_zig_zag1d_8x8_neighbors[
64 * MAX_NEIGHBORS]);
extern DECLARE_ALIGNED(16, int, vp9_default_zig_zag1d_16x16_neighbors[
256 * MAX_NEIGHBORS]);
-#if CONFIG_SUPERBLOCKS && CONFIG_TX32X32
+#if CONFIG_TX32X32
extern DECLARE_ALIGNED(16, int, vp9_default_zig_zag1d_32x32_neighbors[
1024 * MAX_NEIGHBORS]);
#endif
diff --git a/vp9/common/vp9_entropymode.c b/vp9/common/vp9_entropymode.c
index d7c2d8e06..d7c7a3f66 100644
--- a/vp9/common/vp9_entropymode.c
+++ b/vp9/common/vp9_entropymode.c
@@ -272,13 +272,11 @@ const vp9_tree_index vp9_mv_ref_tree[8] = {
-NEWMV, -SPLITMV
};
-#if CONFIG_SUPERBLOCKS
const vp9_tree_index vp9_sb_mv_ref_tree[6] = {
-ZEROMV, 2,
-NEARESTMV, 4,
-NEARMV, -NEWMV
};
-#endif
const vp9_tree_index vp9_sub_mv_ref_tree[6] = {
-LEFT4X4, 2,
@@ -289,19 +287,15 @@ const vp9_tree_index vp9_sub_mv_ref_tree[6] = {
struct vp9_token_struct vp9_bmode_encodings[VP9_NKF_BINTRAMODES];
struct vp9_token_struct vp9_kf_bmode_encodings[VP9_KF_BINTRAMODES];
struct vp9_token_struct vp9_ymode_encodings[VP9_YMODES];
-#if CONFIG_SUPERBLOCKS
struct vp9_token_struct vp9_sb_ymode_encodings[VP9_I32X32_MODES];
struct vp9_token_struct vp9_sb_kf_ymode_encodings[VP9_I32X32_MODES];
-#endif
struct vp9_token_struct vp9_kf_ymode_encodings[VP9_YMODES];
struct vp9_token_struct vp9_uv_mode_encodings[VP9_UV_MODES];
struct vp9_token_struct vp9_i8x8_mode_encodings[VP9_I8X8_MODES];
struct vp9_token_struct vp9_mbsplit_encodings[VP9_NUMMBSPLITS];
struct vp9_token_struct vp9_mv_ref_encoding_array[VP9_MVREFS];
-#if CONFIG_SUPERBLOCKS
struct vp9_token_struct vp9_sb_mv_ref_encoding_array[VP9_MVREFS];
-#endif
struct vp9_token_struct vp9_sub_mv_ref_encoding_array[VP9_SUBMVREFS];
void vp9_init_mbmode_probs(VP9_COMMON *x) {
@@ -310,24 +304,20 @@ void vp9_init_mbmode_probs(VP9_COMMON *x) {
vp9_tree_probs_from_distribution(VP9_YMODES, vp9_ymode_encodings,
vp9_ymode_tree, x->fc.ymode_prob,
bct, y_mode_cts);
-#if CONFIG_SUPERBLOCKS
vp9_tree_probs_from_distribution(VP9_I32X32_MODES, vp9_sb_ymode_encodings,
vp9_sb_ymode_tree, x->fc.sb_ymode_prob,
bct, y_mode_cts);
-#endif
{
int i;
for (i = 0; i < 8; i++) {
vp9_tree_probs_from_distribution(VP9_YMODES, vp9_kf_ymode_encodings,
vp9_kf_ymode_tree, x->kf_ymode_prob[i],
bct, kf_y_mode_cts[i]);
-#if CONFIG_SUPERBLOCKS
vp9_tree_probs_from_distribution(VP9_I32X32_MODES,
vp9_sb_kf_ymode_encodings,
vp9_sb_kf_ymode_tree,
x->sb_kf_ymode_prob[i], bct,
kf_y_mode_cts[i]);
-#endif
}
}
{
@@ -426,10 +416,8 @@ void vp9_entropy_mode_init() {
vp9_tokens_from_tree(vp9_bmode_encodings, vp9_bmode_tree);
vp9_tokens_from_tree(vp9_ymode_encodings, vp9_ymode_tree);
vp9_tokens_from_tree(vp9_kf_ymode_encodings, vp9_kf_ymode_tree);
-#if CONFIG_SUPERBLOCKS
vp9_tokens_from_tree(vp9_sb_ymode_encodings, vp9_sb_ymode_tree);
vp9_tokens_from_tree(vp9_sb_kf_ymode_encodings, vp9_sb_kf_ymode_tree);
-#endif
vp9_tokens_from_tree(vp9_uv_mode_encodings, vp9_uv_mode_tree);
vp9_tokens_from_tree(vp9_i8x8_mode_encodings, vp9_i8x8_mode_tree);
vp9_tokens_from_tree(vp9_mbsplit_encodings, vp9_mbsplit_tree);
@@ -438,10 +426,8 @@ void vp9_entropy_mode_init() {
vp9_tokens_from_tree_offset(vp9_mv_ref_encoding_array,
vp9_mv_ref_tree, NEARESTMV);
-#if CONFIG_SUPERBLOCKS
vp9_tokens_from_tree_offset(vp9_sb_mv_ref_encoding_array,
vp9_sb_mv_ref_tree, NEARESTMV);
-#endif
vp9_tokens_from_tree_offset(vp9_sub_mv_ref_encoding_array,
vp9_sub_mv_ref_tree, LEFT4X4);
}
@@ -599,11 +585,9 @@ void vp9_adapt_mode_probs(VP9_COMMON *cm) {
update_mode_probs(VP9_YMODES, vp9_ymode_encodings, vp9_ymode_tree,
cm->fc.ymode_counts, cm->fc.pre_ymode_prob,
cm->fc.ymode_prob);
-#if CONFIG_SUPERBLOCKS
update_mode_probs(VP9_I32X32_MODES, vp9_sb_ymode_encodings, vp9_sb_ymode_tree,
cm->fc.sb_ymode_counts, cm->fc.pre_sb_ymode_prob,
cm->fc.sb_ymode_prob);
-#endif
for (i = 0; i < VP9_YMODES; ++i) {
update_mode_probs(VP9_UV_MODES, vp9_uv_mode_encodings, vp9_uv_mode_tree,
cm->fc.uv_mode_counts[i], cm->fc.pre_uv_mode_prob[i],
diff --git a/vp9/common/vp9_findnearmv.c b/vp9/common/vp9_findnearmv.c
index 85982fc18..30e721e07 100644
--- a/vp9/common/vp9_findnearmv.c
+++ b/vp9/common/vp9_findnearmv.c
@@ -190,7 +190,6 @@ void vp9_find_best_ref_mvs(MACROBLOCKD *xd,
SP(this_mv.as_mv.row),
above_src, xd->dst.y_stride, &sse);
score += sse;
-#if CONFIG_SUPERBLOCKS
if (xd->mode_info_context->mbmi.sb_type >= BLOCK_SIZE_SB32X32) {
vp9_sub_pixel_variance16x2_c(above_ref + offset + 16,
ref_y_stride,
@@ -215,7 +214,6 @@ void vp9_find_best_ref_mvs(MACROBLOCKD *xd,
score += sse;
}
#endif
-#endif
}
if (xd->left_available) {
vp9_sub_pixel_variance2x16_c(left_ref + offset, ref_y_stride,
@@ -223,7 +221,6 @@ void vp9_find_best_ref_mvs(MACROBLOCKD *xd,
SP(this_mv.as_mv.row),
left_src, xd->dst.y_stride, &sse);
score += sse;
-#if CONFIG_SUPERBLOCKS
if (xd->mode_info_context->mbmi.sb_type >= BLOCK_SIZE_SB32X32) {
vp9_sub_pixel_variance2x16_c(left_ref + offset + ref_y_stride * 16,
ref_y_stride,
@@ -251,7 +248,6 @@ void vp9_find_best_ref_mvs(MACROBLOCKD *xd,
score += sse;
}
#endif
-#endif
}
#else
row_offset = (this_mv.as_mv.row > 0) ?
@@ -263,7 +259,6 @@ void vp9_find_best_ref_mvs(MACROBLOCKD *xd,
if (xd->up_available) {
score += vp9_sad16x3(above_src, xd->dst.y_stride,
above_ref + offset, ref_y_stride);
-#if CONFIG_SUPERBLOCKS
if (xd->mode_info_context->mbmi.sb_type >= BLOCK_SIZE_SB32X32) {
score += vp9_sad16x3(above_src + 16, xd->dst.y_stride,
above_ref + offset + 16, ref_y_stride);
@@ -276,12 +271,10 @@ void vp9_find_best_ref_mvs(MACROBLOCKD *xd,
above_ref + offset + 48, ref_y_stride);
}
#endif
-#endif
}
if (xd->left_available) {
score += vp9_sad3x16(left_src, xd->dst.y_stride,
left_ref + offset, ref_y_stride);
-#if CONFIG_SUPERBLOCKS
if (xd->mode_info_context->mbmi.sb_type >= BLOCK_SIZE_SB32X32) {
score += vp9_sad3x16(left_src + xd->dst.y_stride * 16,
xd->dst.y_stride,
@@ -300,7 +293,6 @@ void vp9_find_best_ref_mvs(MACROBLOCKD *xd,
ref_y_stride);
}
#endif
-#endif
}
#endif
// Add the entry to our list and then resort the list on score.
diff --git a/vp9/common/vp9_invtrans.c b/vp9/common/vp9_invtrans.c
index 60deb5260..a09c0a80a 100644
--- a/vp9/common/vp9_invtrans.c
+++ b/vp9/common/vp9_invtrans.c
@@ -146,7 +146,7 @@ void vp9_inverse_transform_mb_16x16(MACROBLOCKD *xd) {
vp9_inverse_transform_mbuv_8x8(xd);
}
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
void vp9_inverse_transform_sby_32x32(SUPERBLOCKD *xd_sb) {
vp9_short_idct32x32(xd_sb->dqcoeff, xd_sb->diff, 64);
}
diff --git a/vp9/common/vp9_invtrans.h b/vp9/common/vp9_invtrans.h
index 3cfb45fed..1f0164bb1 100644
--- a/vp9/common/vp9_invtrans.h
+++ b/vp9/common/vp9_invtrans.h
@@ -39,7 +39,7 @@ extern void vp9_inverse_transform_mb_16x16(MACROBLOCKD *xd);
extern void vp9_inverse_transform_mby_16x16(MACROBLOCKD *xd);
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
extern void vp9_inverse_transform_sby_32x32(SUPERBLOCKD *xd_sb);
extern void vp9_inverse_transform_sbuv_16x16(SUPERBLOCKD *xd_sb);
#endif
diff --git a/vp9/common/vp9_loopfilter.c b/vp9/common/vp9_loopfilter.c
index bce090ee7..d91f98ebf 100644
--- a/vp9/common/vp9_loopfilter.c
+++ b/vp9/common/vp9_loopfilter.c
@@ -229,16 +229,13 @@ void vp9_loop_filter_frame(VP9_COMMON *cm,
lfi.lim = lfi_n->lim[filter_level];
lfi.hev_thr = lfi_n->hev_thr[hev_index];
- if (mb_col > 0
-#if CONFIG_SUPERBLOCKS
- && !((mb_col & 1) && mode_info_context->mbmi.sb_type &&
- ((skip_lf && mb_lf_skip(&mode_info_context[-1].mbmi))
+ if (mb_col > 0 &&
+ !((mb_col & 1) && mode_info_context->mbmi.sb_type &&
+ ((skip_lf && mb_lf_skip(&mode_info_context[-1].mbmi))
#if CONFIG_TX32X32
- || tx_size == TX_32X32
+ || tx_size == TX_32X32
#endif
- ))
-#endif
- )
+ )))
vp9_loop_filter_mbv(y_ptr, u_ptr, v_ptr, post->y_stride,
post->uv_stride, &lfi);
if (!skip_lf) {
@@ -251,16 +248,13 @@ void vp9_loop_filter_frame(VP9_COMMON *cm,
}
/* don't apply across umv border */
- if (mb_row > 0
-#if CONFIG_SUPERBLOCKS
- && !((mb_row & 1) && mode_info_context->mbmi.sb_type &&
- ((skip_lf && mb_lf_skip(&mode_info_context[-mis].mbmi))
+ if (mb_row > 0 &&
+ !((mb_row & 1) && mode_info_context->mbmi.sb_type &&
+ ((skip_lf && mb_lf_skip(&mode_info_context[-mis].mbmi))
#if CONFIG_TX32X32
- || tx_size == TX_32X32
-#endif
- ))
+ || tx_size == TX_32X32
#endif
- )
+ )))
vp9_loop_filter_mbh(y_ptr, u_ptr, v_ptr, post->y_stride,
post->uv_stride, &lfi);
if (!skip_lf) {
@@ -273,12 +267,9 @@ void vp9_loop_filter_frame(VP9_COMMON *cm,
}
} else {
// FIXME: Not 8x8 aware
- if (mb_col > 0 &&
- !(skip_lf && mb_lf_skip(&mode_info_context[-1].mbmi))
-#if CONFIG_SUPERBLOCKS
- && !((mb_col & 1) && mode_info_context->mbmi.sb_type)
-#endif
- )
+ if (mb_col > 0 &&
+ !(skip_lf && mb_lf_skip(&mode_info_context[-1].mbmi)) &&
+ !((mb_col & 1) && mode_info_context->mbmi.sb_type))
vp9_loop_filter_simple_mbv(y_ptr, post->y_stride,
lfi_n->mblim[filter_level]);
if (!skip_lf)
@@ -287,11 +278,8 @@ void vp9_loop_filter_frame(VP9_COMMON *cm,
/* don't apply across umv border */
if (mb_row > 0 &&
- !(skip_lf && mb_lf_skip(&mode_info_context[-mis].mbmi))
-#if CONFIG_SUPERBLOCKS
- && !((mb_row & 1) && mode_info_context->mbmi.sb_type)
-#endif
- )
+ !(skip_lf && mb_lf_skip(&mode_info_context[-mis].mbmi)) &&
+ !((mb_row & 1) && mode_info_context->mbmi.sb_type))
vp9_loop_filter_simple_mbh(y_ptr, post->y_stride,
lfi_n->mblim[filter_level]);
if (!skip_lf)
diff --git a/vp9/common/vp9_mvref_common.c b/vp9/common/vp9_mvref_common.c
index bfdc1af32..786b02188 100644
--- a/vp9/common/vp9_mvref_common.c
+++ b/vp9/common/vp9_mvref_common.c
@@ -17,14 +17,12 @@ static int mb_mv_ref_search[MVREF_NEIGHBOURS][2] = {
};
static int mb_ref_distance_weight[MVREF_NEIGHBOURS] =
{ 3, 3, 2, 1, 1, 1, 1, 1 };
-#if CONFIG_SUPERBLOCKS
static int sb_mv_ref_search[MVREF_NEIGHBOURS][2] = {
{0, -1}, {-1, 0}, {1, -1}, {-1, 1},
{-1, -1}, {0, -2}, {-2, 0}, {-1, -2}
};
static int sb_ref_distance_weight[MVREF_NEIGHBOURS] =
{ 3, 3, 2, 2, 2, 1, 1, 1 };
-#endif
// clamp_mv
#define MV_BORDER (16 << 3) // Allow 16 pels in 1/8th pel units
@@ -236,7 +234,6 @@ void vp9_find_mv_refs(
vpx_memset(candidate_mvs, 0, sizeof(int_mv) * MAX_MV_REF_CANDIDATES);
vpx_memset(candidate_scores, 0, sizeof(candidate_scores));
-#if CONFIG_SUPERBLOCKS
if (mbmi->sb_type) {
mv_ref_search = sb_mv_ref_search;
ref_distance_weight = sb_ref_distance_weight;
@@ -244,10 +241,6 @@ void vp9_find_mv_refs(
mv_ref_search = mb_mv_ref_search;
ref_distance_weight = mb_ref_distance_weight;
}
-#else
- mv_ref_search = mb_mv_ref_search;
- ref_distance_weight = mb_ref_distance_weight;
-#endif
// We first scan for candidate vectors that match the current reference frame
// Look at nearest neigbours
diff --git a/vp9/common/vp9_onyxc_int.h b/vp9/common/vp9_onyxc_int.h
index 3b62dac81..bdff48bf3 100644
--- a/vp9/common/vp9_onyxc_int.h
+++ b/vp9/common/vp9_onyxc_int.h
@@ -44,9 +44,7 @@ void vp9_initialize_common(void);
typedef struct frame_contexts {
vp9_prob bmode_prob[VP9_NKF_BINTRAMODES - 1];
vp9_prob ymode_prob[VP9_YMODES - 1]; /* interframe intra mode probs */
-#if CONFIG_SUPERBLOCKS
vp9_prob sb_ymode_prob[VP9_I32X32_MODES - 1];
-#endif
vp9_prob uv_mode_prob[VP9_YMODES][VP9_UV_MODES - 1];
vp9_prob i8x8_mode_prob[VP9_I8X8_MODES - 1];
vp9_prob sub_mv_ref_prob[SUBMVREF_COUNT][VP9_SUBMVREFS - 1];
@@ -57,7 +55,7 @@ typedef struct frame_contexts {
vp9_coeff_probs hybrid_coef_probs_8x8[BLOCK_TYPES_8X8];
vp9_coeff_probs coef_probs_16x16[BLOCK_TYPES_16X16];
vp9_coeff_probs hybrid_coef_probs_16x16[BLOCK_TYPES_16X16];
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
vp9_coeff_probs coef_probs_32x32[BLOCK_TYPES_32X32];
#endif
@@ -65,18 +63,14 @@ typedef struct frame_contexts {
nmv_context pre_nmvc;
vp9_prob pre_bmode_prob[VP9_NKF_BINTRAMODES - 1];
vp9_prob pre_ymode_prob[VP9_YMODES - 1]; /* interframe intra mode probs */
-#if CONFIG_SUPERBLOCKS
vp9_prob pre_sb_ymode_prob[VP9_I32X32_MODES - 1];
-#endif
vp9_prob pre_uv_mode_prob[VP9_YMODES][VP9_UV_MODES - 1];
vp9_prob pre_i8x8_mode_prob[VP9_I8X8_MODES - 1];
vp9_prob pre_sub_mv_ref_prob[SUBMVREF_COUNT][VP9_SUBMVREFS - 1];
vp9_prob pre_mbsplit_prob[VP9_NUMMBSPLITS - 1];
unsigned int bmode_counts[VP9_NKF_BINTRAMODES];
unsigned int ymode_counts[VP9_YMODES]; /* interframe intra mode probs */
-#if CONFIG_SUPERBLOCKS
unsigned int sb_ymode_counts[VP9_I32X32_MODES];
-#endif
unsigned int uv_mode_counts[VP9_YMODES][VP9_UV_MODES];
unsigned int i8x8_mode_counts[VP9_I8X8_MODES]; /* interframe intra probs */
unsigned int sub_mv_ref_counts[SUBMVREF_COUNT][VP9_SUBMVREFS];
@@ -88,7 +82,7 @@ typedef struct frame_contexts {
vp9_coeff_probs pre_hybrid_coef_probs_8x8[BLOCK_TYPES_8X8];
vp9_coeff_probs pre_coef_probs_16x16[BLOCK_TYPES_16X16];
vp9_coeff_probs pre_hybrid_coef_probs_16x16[BLOCK_TYPES_16X16];
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
vp9_coeff_probs pre_coef_probs_32x32[BLOCK_TYPES_32X32];
#endif
@@ -98,7 +92,7 @@ typedef struct frame_contexts {
vp9_coeff_count hybrid_coef_counts_8x8[BLOCK_TYPES_8X8];
vp9_coeff_count coef_counts_16x16[BLOCK_TYPES_16X16];
vp9_coeff_count hybrid_coef_counts_16x16[BLOCK_TYPES_16X16];
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
vp9_coeff_count coef_counts_32x32[BLOCK_TYPES_32X32];
#endif
@@ -131,11 +125,11 @@ typedef enum {
ONLY_4X4 = 0,
ALLOW_8X8 = 1,
ALLOW_16X16 = 2,
-#if CONFIG_TX32X32 && CONFIG_SUPERBLOCKS
+#if CONFIG_TX32X32
ALLOW_32X32 = 3,
#endif
- TX_MODE_SELECT = 3 + (CONFIG_TX32X32 && CONFIG_SUPERBLOCKS),
- NB_TXFM_MODES = 4 + (CONFIG_TX32X32 && CONFIG_SUPERBLOCKS),
+ TX_MODE_SELECT = 3 + CONFIG_TX32X32,
+ NB_TXFM_MODES = 4 + CONFIG_TX32X32,
} TXFM_MODE;
typedef struct VP9Common {
@@ -237,9 +231,7 @@ typedef struct VP9Common {
[VP9_KF_BINTRAMODES]
[VP9_KF_BINTRAMODES - 1];
vp9_prob kf_ymode_prob[8][VP9_YMODES - 1]; /* keyframe "" */
-#if CONFIG_SUPERBLOCKS
vp9_prob sb_kf_ymode_prob[8][VP9_I32X32_MODES - 1];
-#endif
int kf_ymode_probs_index;
int kf_ymode_probs_update;
vp9_prob kf_uv_mode_prob[VP9_YMODES] [VP9_UV_MODES - 1];
@@ -247,12 +239,10 @@ typedef struct VP9Common {
vp9_prob prob_intra_coded;
vp9_prob prob_last_coded;
vp9_prob prob_gf_coded;
-#if CONFIG_SUPERBLOCKS
vp9_prob sb32_coded;
#if CONFIG_SUPERBLOCKS64
vp9_prob sb64_coded;
#endif // CONFIG_SUPERBLOCKS64
-#endif
// Context probabilities when using predictive coding of segment id
vp9_prob segment_pred_probs[PREDICTION_PROBS];
diff --git a/vp9/common/vp9_pred_common.c b/vp9/common/vp9_pred_common.c
index f2f35a3b4..76ae0b36b 100644
--- a/vp9/common/vp9_pred_common.c
+++ b/vp9/common/vp9_pred_common.c
@@ -223,14 +223,11 @@ unsigned char vp9_get_pred_flag(const MACROBLOCKD *const xd,
void vp9_set_pred_flag(MACROBLOCKD *const xd,
PRED_ID pred_id,
unsigned char pred_flag) {
-#if CONFIG_SUPERBLOCKS
const int mis = xd->mode_info_stride;
-#endif
switch (pred_id) {
case PRED_SEG_ID:
xd->mode_info_context->mbmi.seg_id_predicted = pred_flag;
-#if CONFIG_SUPERBLOCKS
if (xd->mode_info_context->mbmi.sb_type) {
#define sub(a, b) (b) < 0 ? (a) + (b) : (a)
const int n_mbs = 1 << xd->mode_info_context->mbmi.sb_type;
@@ -245,12 +242,10 @@ void vp9_set_pred_flag(MACROBLOCKD *const xd,
}
}
}
-#endif
break;
case PRED_REF:
xd->mode_info_context->mbmi.ref_predicted = pred_flag;
-#if CONFIG_SUPERBLOCKS
if (xd->mode_info_context->mbmi.sb_type) {
const int n_mbs = 1 << xd->mode_info_context->mbmi.sb_type;
const int x_mbs = sub(n_mbs, xd->mb_to_right_edge >> 7);
@@ -263,12 +258,10 @@ void vp9_set_pred_flag(MACROBLOCKD *const xd,
}
}
}
-#endif
break;
case PRED_MBSKIP:
xd->mode_info_context->mbmi.mb_skip_coeff = pred_flag;
-#if CONFIG_SUPERBLOCKS
if (xd->mode_info_context->mbmi.sb_type) {
const int n_mbs = 1 << xd->mode_info_context->mbmi.sb_type;
const int x_mbs = sub(n_mbs, xd->mb_to_right_edge >> 7);
@@ -281,7 +274,6 @@ void vp9_set_pred_flag(MACROBLOCKD *const xd,
}
}
}
-#endif
break;
default:
@@ -299,11 +291,8 @@ unsigned char vp9_get_pred_mb_segid(const VP9_COMMON *const cm,
const MACROBLOCKD *const xd, int MbIndex) {
// Currently the prediction for the macroblock segment ID is
// the value stored for this macroblock in the previous frame.
-#if CONFIG_SUPERBLOCKS
if (!xd->mode_info_context->mbmi.sb_type) {
-#endif
return cm->last_frame_seg_map[MbIndex];
-#if CONFIG_SUPERBLOCKS
} else {
const int n_mbs = 1 << xd->mode_info_context->mbmi.sb_type;
const int mb_col = MbIndex % cm->mb_cols;
@@ -321,7 +310,6 @@ unsigned char vp9_get_pred_mb_segid(const VP9_COMMON *const cm,
return seg_id;
}
-#endif
}
MV_REFERENCE_FRAME vp9_get_pred_ref(const VP9_COMMON *const cm,
diff --git a/vp9/common/vp9_recon.c b/vp9/common/vp9_recon.c
index 00b537565..5c3f565a5 100644
--- a/vp9/common/vp9_recon.c
+++ b/vp9/common/vp9_recon.c
@@ -81,7 +81,6 @@ void vp9_recon2b_c(uint8_t *pred_ptr,
}
}
-#if CONFIG_SUPERBLOCKS
void vp9_recon_mby_s_c(MACROBLOCKD *xd, uint8_t *dst) {
int x, y;
BLOCKD *b = &xd->block[0];
@@ -146,8 +145,7 @@ void vp9_recon_sbuv_s_c(MACROBLOCKD *xd, uint8_t *udst, uint8_t *vdst) {
vdiff += 16;
}
}
-#endif
-#endif
+#endif // CONFIG_TX32X32
void vp9_recon_mby_c(MACROBLOCKD *xd) {
int i;
diff --git a/vp9/common/vp9_reconinter.c b/vp9/common/vp9_reconinter.c
index 8a1b93df0..7a7283183 100644
--- a/vp9/common/vp9_reconinter.c
+++ b/vp9/common/vp9_reconinter.c
@@ -711,7 +711,6 @@ void vp9_build_1st_inter16x16_predictors_mb(MACROBLOCKD *xd,
vp9_build_1st_inter16x16_predictors_mbuv(xd, dst_u, dst_v, dst_uvstride);
}
-#if CONFIG_SUPERBLOCKS
void vp9_build_inter32x32_predictors_sb(MACROBLOCKD *x,
uint8_t *dst_y,
uint8_t *dst_u,
@@ -781,6 +780,7 @@ void vp9_build_inter32x32_predictors_sb(MACROBLOCKD *x,
#endif
}
+#if CONFIG_SUPERBLOCKS64
void vp9_build_inter64x64_predictors_sb(MACROBLOCKD *x,
uint8_t *dst_y,
uint8_t *dst_u,
@@ -844,7 +844,7 @@ void vp9_build_inter64x64_predictors_sb(MACROBLOCKD *x,
}
#endif
}
-#endif
+#endif // CONFIG_SUPERBLOCKS64
/*
* The following functions should be called after an initial
diff --git a/vp9/common/vp9_reconinter.h b/vp9/common/vp9_reconinter.h
index 5e45b6879..12b4b2514 100644
--- a/vp9/common/vp9_reconinter.h
+++ b/vp9/common/vp9_reconinter.h
@@ -47,7 +47,6 @@ extern void vp9_build_2nd_inter16x16_predictors_mb(MACROBLOCKD *xd,
int dst_ystride,
int dst_uvstride);
-#if CONFIG_SUPERBLOCKS
extern void vp9_build_inter32x32_predictors_sb(MACROBLOCKD *x,
uint8_t *dst_y,
uint8_t *dst_u,
@@ -55,13 +54,14 @@ extern void vp9_build_inter32x32_predictors_sb(MACROBLOCKD *x,
int dst_ystride,
int dst_uvstride);
+#if CONFIG_SUPERBLOCKS64
extern void vp9_build_inter64x64_predictors_sb(MACROBLOCKD *x,
uint8_t *dst_y,
uint8_t *dst_u,
uint8_t *dst_v,
int dst_ystride,
int dst_uvstride);
-#endif
+#endif // CONFIG_SUPERBLOCKS64
extern void vp9_build_inter_predictors_mb(MACROBLOCKD *xd);
diff --git a/vp9/common/vp9_reconintra.c b/vp9/common/vp9_reconintra.c
index 0f58f9862..0504edaeb 100644
--- a/vp9/common/vp9_reconintra.c
+++ b/vp9/common/vp9_reconintra.c
@@ -658,7 +658,6 @@ void vp9_build_interintra_16x16_predictors_mbuv(MACROBLOCKD *xd,
vpred, uvstride, vintrapredictor, 8, 8);
}
-#if CONFIG_SUPERBLOCKS
void vp9_build_interintra_32x32_predictors_sby(MACROBLOCKD *xd,
uint8_t *ypred,
int ystride) {
@@ -704,6 +703,7 @@ void vp9_build_interintra_32x32_predictors_sb(MACROBLOCKD *xd,
vp9_build_interintra_32x32_predictors_sbuv(xd, upred, vpred, uvstride);
}
+#if CONFIG_SUPERBLOCKS64
void vp9_build_interintra_64x64_predictors_sby(MACROBLOCKD *xd,
uint8_t *ypred,
int ystride) {
@@ -744,8 +744,8 @@ void vp9_build_interintra_64x64_predictors_sb(MACROBLOCKD *xd,
vp9_build_interintra_64x64_predictors_sby(xd, ypred, ystride);
vp9_build_interintra_64x64_predictors_sbuv(xd, upred, vpred, uvstride);
}
-#endif
-#endif
+#endif // CONFIG_SUPERBLOCKS64
+#endif // CONFIG_COMP_INTERINTRA_PRED
void vp9_build_intra_predictors_mby(MACROBLOCKD *xd) {
vp9_build_intra_predictors_internal(xd->dst.y_buffer, xd->dst.y_stride,
@@ -761,7 +761,6 @@ void vp9_build_intra_predictors_mby_s(MACROBLOCKD *xd) {
xd->up_available, xd->left_available);
}
-#if CONFIG_SUPERBLOCKS
void vp9_build_intra_predictors_sby_s(MACROBLOCKD *xd) {
vp9_build_intra_predictors_internal(xd->dst.y_buffer, xd->dst.y_stride,
xd->dst.y_buffer, xd->dst.y_stride,
@@ -769,13 +768,14 @@ void vp9_build_intra_predictors_sby_s(MACROBLOCKD *xd) {
xd->up_available, xd->left_available);
}
+#if CONFIG_SUPERBLOCKS64
void vp9_build_intra_predictors_sb64y_s(MACROBLOCKD *xd) {
vp9_build_intra_predictors_internal(xd->dst.y_buffer, xd->dst.y_stride,
xd->dst.y_buffer, xd->dst.y_stride,
xd->mode_info_context->mbmi.mode, 64,
xd->up_available, xd->left_available);
}
-#endif
+#endif // CONFIG_SUPERBLOCKS64
#if CONFIG_COMP_INTRA_PRED
void vp9_build_comp_intra_predictors_mby(MACROBLOCKD *xd) {
@@ -827,7 +827,6 @@ void vp9_build_intra_predictors_mbuv_s(MACROBLOCKD *xd) {
8);
}
-#if CONFIG_SUPERBLOCKS
void vp9_build_intra_predictors_sbuv_s(MACROBLOCKD *xd) {
vp9_build_intra_predictors_mbuv_internal(xd, xd->dst.u_buffer,
xd->dst.v_buffer, xd->dst.uv_stride,
@@ -835,13 +834,14 @@ void vp9_build_intra_predictors_sbuv_s(MACROBLOCKD *xd) {
16);
}
+#if CONFIG_SUPERBLOCKS64
void vp9_build_intra_predictors_sb64uv_s(MACROBLOCKD *xd) {
vp9_build_intra_predictors_mbuv_internal(xd, xd->dst.u_buffer,
xd->dst.v_buffer, xd->dst.uv_stride,
xd->mode_info_context->mbmi.uv_mode,
32);
}
-#endif
+#endif // CONFIG_SUPERBLOCKS64
#if CONFIG_COMP_INTRA_PRED
void vp9_build_comp_intra_predictors_mbuv(MACROBLOCKD *xd) {
diff --git a/vp9/common/vp9_reconintra.h b/vp9/common/vp9_reconintra.h
index 7bdcb4ece..88584ad3b 100644
--- a/vp9/common/vp9_reconintra.h
+++ b/vp9/common/vp9_reconintra.h
@@ -34,7 +34,6 @@ extern void vp9_build_interintra_16x16_predictors_mbuv(MACROBLOCKD *xd,
int uvstride);
#endif // CONFIG_COMP_INTERINTRA_PRED
-#if CONFIG_SUPERBLOCKS
extern void vp9_build_interintra_32x32_predictors_sb(MACROBLOCKD *xd,
uint8_t *ypred,
uint8_t *upred,
@@ -47,6 +46,5 @@ extern void vp9_build_interintra_64x64_predictors_sb(MACROBLOCKD *xd,
uint8_t *vpred,
int ystride,
int uvstride);
-#endif // CONFIG_SUPERBLOCKS
#endif // VP9_COMMON_VP9_RECONINTRA_H_
diff --git a/vp9/common/vp9_rtcd_defs.sh b/vp9/common/vp9_rtcd_defs.sh
index 95253ef67..2dbfa72de 100644
--- a/vp9/common/vp9_rtcd_defs.sh
+++ b/vp9/common/vp9_rtcd_defs.sh
@@ -77,6 +77,16 @@ specialize vp9_dequant_idct_add_y_block
prototype void vp9_dequant_idct_add_uv_block "int16_t *q, const int16_t *dq, uint8_t *pre, uint8_t *dstu, uint8_t *dstv, int stride, uint16_t *eobs"
specialize vp9_dequant_idct_add_uv_block
+if [ "$CONFIG_TX32X32" = "yes" ]; then
+
+prototype void vp9_dequant_idct_add_32x32 "int16_t *q, const int16_t *dq, uint8_t *pre, uint8_t *dst, int pitch, int stride, int eob"
+specialize vp9_dequant_idct_add_32x32
+
+prototype void vp9_dequant_idct_add_uv_block_16x16 "int16_t *q, const int16_t *dq, uint8_t *dstu, uint8_t *dstv, int stride, uint16_t *eobs"
+specialize vp9_dequant_idct_add_uv_block_16x16
+
+fi
+
#
# RECON
#
@@ -125,6 +135,16 @@ specialize vp9_recon_mby_s
prototype void vp9_recon_mbuv_s "struct macroblockd *x, uint8_t *udst, uint8_t *vdst"
specialize void vp9_recon_mbuv_s
+if [ "$CONFIG_TX32X32" = "yes" ]; then
+
+prototype void vp9_recon_sby_s "struct macroblockd *x, uint8_t *dst"
+specialize vp9_recon_sby_s
+
+prototype void vp9_recon_sbuv_s "struct macroblockd *x, uint8_t *udst, uint8_t *vdst"
+specialize void vp9_recon_sbuv_s
+
+fi
+
prototype void vp9_build_intra_predictors_mby_s "struct macroblockd *x"
specialize vp9_build_intra_predictors_mby_s
@@ -152,6 +172,16 @@ specialize vp9_build_intra_predictors_mbuv_s;
prototype void vp9_build_comp_intra_predictors_mbuv "struct macroblockd *x"
specialize vp9_build_comp_intra_predictors_mbuv;
+if [ "$CONFIG_SUPERBLOCKS64" = "yes" ]; then
+
+prototype void vp9_build_intra_predictors_sb64y_s "struct macroblockd *x"
+specialize vp9_build_intra_predictors_sb64y_s;
+
+prototype void vp9_build_intra_predictors_sb64uv_s "struct macroblockd *x"
+specialize vp9_build_intra_predictors_sb64uv_s;
+
+fi
+
prototype void vp9_intra4x4_predict "struct blockd *x, int b_mode, uint8_t *predictor"
specialize vp9_intra4x4_predict;
@@ -396,18 +426,12 @@ prototype void vp9_short_inv_walsh4x4_1_lossless "int16_t *in, int16_t *out"
prototype void vp9_short_inv_walsh4x4_lossless "int16_t *in, int16_t *out"
fi
-
-
-if [ "$CONFIG_SUPERBLOCKS" = "yes" ]; then
-
prototype unsigned int vp9_sad32x3 "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, int max_sad"
specialize vp9_sad32x3
prototype unsigned int vp9_sad3x32 "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, int max_sad"
specialize vp9_sad3x32
-fi
-
#
# Encoder functions below this point.
#