summaryrefslogtreecommitdiff
path: root/vp9/encoder/encodemb.c
diff options
context:
space:
mode:
Diffstat (limited to 'vp9/encoder/encodemb.c')
-rw-r--r--vp9/encoder/encodemb.c85
1 files changed, 39 insertions, 46 deletions
diff --git a/vp9/encoder/encodemb.c b/vp9/encoder/encodemb.c
index 6774a88f5..136a24893 100644
--- a/vp9/encoder/encodemb.c
+++ b/vp9/encoder/encodemb.c
@@ -20,12 +20,6 @@
#include "vp9/common/systemdependent.h"
#include "vp9_rtcd.h"
-#if CONFIG_RUNTIME_CPU_DETECT
-#define IF_RTCD(x) (x)
-#else
-#define IF_RTCD(x) NULL
-#endif
-
void vp9_subtract_b_c(BLOCK *be, BLOCKD *bd, int pitch) {
unsigned char *src_ptr = (*(be->base_src) + be->src);
short *diff_ptr = be->src_diff;
@@ -119,7 +113,7 @@ void vp9_subtract_mby_c(short *diff, unsigned char *src,
vp9_subtract_mby_s_c(diff, src, stride, pred, 16);
}
-static void subtract_mb(const VP9_ENCODER_RTCD *rtcd, MACROBLOCK *x) {
+static void subtract_mb(MACROBLOCK *x) {
BLOCK *b = &x->block[0];
vp9_subtract_mby(x->src_diff, *(b->base_src), x->e_mbd.predictor,
@@ -265,7 +259,7 @@ static const int plane_rd_mult[4] = {
static void optimize_b(MACROBLOCK *mb, int i, PLANE_TYPE type,
ENTROPY_CONTEXT *a, ENTROPY_CONTEXT *l,
- const VP9_ENCODER_RTCD *rtcd, int tx_size) {
+ int tx_size) {
BLOCK *b;
BLOCKD *d;
vp9_token_state tokens[65][2];
@@ -567,7 +561,7 @@ static void check_reset_8x8_2nd_coeffs(MACROBLOCKD *xd,
}
}
-void vp9_optimize_mby_4x4(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
+void vp9_optimize_mby_4x4(MACROBLOCK *x) {
int b;
PLANE_TYPE type;
int has_2nd_order;
@@ -590,19 +584,19 @@ void vp9_optimize_mby_4x4(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
for (b = 0; b < 16; b++) {
optimize_b(x, b, type,
- ta + vp9_block2above[b], tl + vp9_block2left[b], rtcd, TX_4X4);
+ ta + vp9_block2above[b], tl + vp9_block2left[b], TX_4X4);
}
if (has_2nd_order) {
b = 24;
optimize_b(x, b, PLANE_TYPE_Y2,
- ta + vp9_block2above[b], tl + vp9_block2left[b], rtcd, TX_4X4);
+ ta + vp9_block2above[b], tl + vp9_block2left[b], TX_4X4);
check_reset_2nd_coeffs(&x->e_mbd,
ta + vp9_block2above[b], tl + vp9_block2left[b]);
}
}
-void vp9_optimize_mbuv_4x4(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
+void vp9_optimize_mbuv_4x4(MACROBLOCK *x) {
int b;
ENTROPY_CONTEXT_PLANES t_above, t_left;
ENTROPY_CONTEXT *ta;
@@ -619,16 +613,16 @@ void vp9_optimize_mbuv_4x4(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
for (b = 16; b < 24; b++) {
optimize_b(x, b, PLANE_TYPE_UV,
- ta + vp9_block2above[b], tl + vp9_block2left[b], rtcd, TX_4X4);
+ ta + vp9_block2above[b], tl + vp9_block2left[b], TX_4X4);
}
}
-static void optimize_mb_4x4(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
- vp9_optimize_mby_4x4(x, rtcd);
- vp9_optimize_mbuv_4x4(x, rtcd);
+static void optimize_mb_4x4(MACROBLOCK *x) {
+ vp9_optimize_mby_4x4(x);
+ vp9_optimize_mbuv_4x4(x);
}
-void vp9_optimize_mby_8x8(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
+void vp9_optimize_mby_8x8(MACROBLOCK *x) {
int b;
PLANE_TYPE type;
ENTROPY_CONTEXT_PLANES t_above, t_left;
@@ -648,7 +642,7 @@ void vp9_optimize_mby_8x8(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
for (b = 0; b < 16; b += 4) {
optimize_b(x, b, type,
ta + vp9_block2above_8x8[b], tl + vp9_block2left_8x8[b],
- rtcd, TX_8X8);
+ TX_8X8);
ta[vp9_block2above_8x8[b] + 1] = ta[vp9_block2above_8x8[b]];
tl[vp9_block2left_8x8[b] + 1] = tl[vp9_block2left_8x8[b]];
}
@@ -661,7 +655,7 @@ void vp9_optimize_mby_8x8(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
}
}
-void vp9_optimize_mbuv_8x8(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
+void vp9_optimize_mbuv_8x8(MACROBLOCK *x) {
int b;
ENTROPY_CONTEXT_PLANES t_above, t_left;
ENTROPY_CONTEXT *ta;
@@ -679,20 +673,19 @@ void vp9_optimize_mbuv_8x8(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
for (b = 16; b < 24; b += 4) {
optimize_b(x, b, PLANE_TYPE_UV,
ta + vp9_block2above_8x8[b], tl + vp9_block2left_8x8[b],
- rtcd, TX_8X8);
+ TX_8X8);
ta[vp9_block2above_8x8[b] + 1] = ta[vp9_block2above_8x8[b]];
tl[vp9_block2left_8x8[b] + 1] = tl[vp9_block2left_8x8[b]];
}
}
-static void optimize_mb_8x8(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
- vp9_optimize_mby_8x8(x, rtcd);
- vp9_optimize_mbuv_8x8(x, rtcd);
+static void optimize_mb_8x8(MACROBLOCK *x) {
+ vp9_optimize_mby_8x8(x);
+ vp9_optimize_mbuv_8x8(x);
}
static void optimize_b_16x16(MACROBLOCK *mb, int i, PLANE_TYPE type,
- ENTROPY_CONTEXT *a, ENTROPY_CONTEXT *l,
- const VP9_ENCODER_RTCD *rtcd) {
+ ENTROPY_CONTEXT *a, ENTROPY_CONTEXT *l) {
BLOCK *b = &mb->block[i];
BLOCKD *d = &mb->e_mbd.block[i];
vp9_token_state tokens[257][2];
@@ -864,7 +857,7 @@ static void optimize_b_16x16(MACROBLOCK *mb, int i, PLANE_TYPE type,
*a = *l = (d->eob != !type);
}
-void vp9_optimize_mby_16x16(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
+void vp9_optimize_mby_16x16(MACROBLOCK *x) {
ENTROPY_CONTEXT_PLANES t_above, t_left;
ENTROPY_CONTEXT *ta, *tl;
@@ -876,15 +869,15 @@ void vp9_optimize_mby_16x16(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
ta = (ENTROPY_CONTEXT *)&t_above;
tl = (ENTROPY_CONTEXT *)&t_left;
- optimize_b_16x16(x, 0, PLANE_TYPE_Y_WITH_DC, ta, tl, rtcd);
+ optimize_b_16x16(x, 0, PLANE_TYPE_Y_WITH_DC, ta, tl);
}
-static void optimize_mb_16x16(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
- vp9_optimize_mby_16x16(x, rtcd);
- vp9_optimize_mbuv_8x8(x, rtcd);
+static void optimize_mb_16x16(MACROBLOCK *x) {
+ vp9_optimize_mby_16x16(x);
+ vp9_optimize_mbuv_8x8(x);
}
-void vp9_fidct_mb(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
+void vp9_fidct_mb(MACROBLOCK *x) {
MACROBLOCKD *const xd = &x->e_mbd;
TX_SIZE tx_size = xd->mode_info_context->mbmi.txfm_size;
@@ -892,8 +885,8 @@ void vp9_fidct_mb(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
vp9_transform_mb_16x16(x);
vp9_quantize_mb_16x16(x);
if (x->optimize)
- optimize_mb_16x16(x, rtcd);
- vp9_inverse_transform_mb_16x16(IF_RTCD(&rtcd->common->idct), xd);
+ optimize_mb_16x16(x);
+ vp9_inverse_transform_mb_16x16(xd);
} else if (tx_size == TX_8X8) {
if (xd->mode_info_context->mbmi.mode == SPLITMV) {
assert(xd->mode_info_context->mbmi.partitioning != PARTITIONING_4X4);
@@ -902,38 +895,38 @@ void vp9_fidct_mb(MACROBLOCK *x, const VP9_ENCODER_RTCD *rtcd) {
vp9_quantize_mby_8x8(x);
vp9_quantize_mbuv_4x4(x);
if (x->optimize) {
- vp9_optimize_mby_8x8(x, rtcd);
- vp9_optimize_mbuv_4x4(x, rtcd);
+ vp9_optimize_mby_8x8(x);
+ vp9_optimize_mbuv_4x4(x);
}
- vp9_inverse_transform_mby_8x8(IF_RTCD(&rtcd->common->idct), xd);
- vp9_inverse_transform_mbuv_4x4(IF_RTCD(&rtcd->common->idct), xd);
+ vp9_inverse_transform_mby_8x8(xd);
+ vp9_inverse_transform_mbuv_4x4(xd);
} else {
vp9_transform_mb_8x8(x);
vp9_quantize_mb_8x8(x);
if (x->optimize)
- optimize_mb_8x8(x, rtcd);
- vp9_inverse_transform_mb_8x8(IF_RTCD(&rtcd->common->idct), xd);
+ optimize_mb_8x8(x);
+ vp9_inverse_transform_mb_8x8(xd);
}
} else {
transform_mb_4x4(x);
vp9_quantize_mb_4x4(x);
if (x->optimize)
- optimize_mb_4x4(x, rtcd);
- vp9_inverse_transform_mb_4x4(IF_RTCD(&rtcd->common->idct), xd);
+ optimize_mb_4x4(x);
+ vp9_inverse_transform_mb_4x4(xd);
}
}
-void vp9_encode_inter16x16(const VP9_ENCODER_RTCD *rtcd, MACROBLOCK *x) {
+void vp9_encode_inter16x16(MACROBLOCK *x) {
MACROBLOCKD *const xd = &x->e_mbd;
vp9_build_inter_predictors_mb(xd);
- subtract_mb(rtcd, x);
- vp9_fidct_mb(x, rtcd);
+ subtract_mb(x);
+ vp9_fidct_mb(x);
vp9_recon_mb(xd);
}
/* this function is used by first pass only */
-void vp9_encode_inter16x16y(const VP9_ENCODER_RTCD *rtcd, MACROBLOCK *x) {
+void vp9_encode_inter16x16y(MACROBLOCK *x) {
MACROBLOCKD *xd = &x->e_mbd;
BLOCK *b = &x->block[0];
@@ -948,7 +941,7 @@ void vp9_encode_inter16x16y(const VP9_ENCODER_RTCD *rtcd, MACROBLOCK *x) {
vp9_transform_mby_4x4(x);
vp9_quantize_mby_4x4(x);
- vp9_inverse_transform_mby_4x4(IF_RTCD(&rtcd->common->idct), xd);
+ vp9_inverse_transform_mby_4x4(xd);
vp9_recon_mby(xd);
}