diff options
Diffstat (limited to 'vp8/encoder')
-rw-r--r-- | vp8/encoder/dct.h | 1 | ||||
-rw-r--r-- | vp8/encoder/encodeframe.c | 18 | ||||
-rw-r--r-- | vp8/encoder/encodeintra.c | 40 | ||||
-rw-r--r-- | vp8/encoder/encodemb.c | 7 | ||||
-rw-r--r-- | vp8/encoder/generic/csystemdependent.c | 12 | ||||
-rw-r--r-- | vp8/encoder/mbgraph.c | 2 | ||||
-rw-r--r-- | vp8/encoder/onyx_if.c | 3 | ||||
-rw-r--r-- | vp8/encoder/rdopt.c | 38 | ||||
-rw-r--r-- | vp8/encoder/temporal_filter.c | 4 |
9 files changed, 53 insertions, 72 deletions
diff --git a/vp8/encoder/dct.h b/vp8/encoder/dct.h index 597640d8c..180192bbb 100644 --- a/vp8/encoder/dct.h +++ b/vp8/encoder/dct.h @@ -42,6 +42,7 @@ extern prototype_fdct(vp8_fdct_short16x16); extern prototype_fdct(vp8_fdct_short8x8); #ifndef vp8_fhaar_short2x2 +#define vp8_fdct_haar_short2x2 vp8_fhaar_short2x2 #define vp8_fhaar_short2x2 vp8_short_fhaar2x2_c #endif extern prototype_fdct(vp8_fhaar_short2x2); diff --git a/vp8/encoder/encodeframe.c b/vp8/encoder/encodeframe.c index 4f2437fac..fda5aa994 100644 --- a/vp8/encoder/encodeframe.c +++ b/vp8/encoder/encodeframe.c @@ -26,6 +26,7 @@ #include "vp8/common/findnearmv.h" #include "vp8/common/reconintra.h" #include "vp8/common/seg_common.h" +#include "vpx_rtcd.h" #include <stdio.h> #include <math.h> #include <limits.h> @@ -1880,8 +1881,8 @@ void vp8cx_encode_intra_super_block(VP8_COMP *cpi, vp8_update_zbin_extra(cpi, x); } - RECON_INVOKE(&rtcd->common->recon, build_intra_predictors_sby_s)(&x->e_mbd); - RECON_INVOKE(&rtcd->common->recon, build_intra_predictors_sbuv_s)(&x->e_mbd); + vp8_build_intra_predictors_sby_s(&x->e_mbd); + vp8_build_intra_predictors_sbuv_s(&x->e_mbd); assert(x->e_mbd.mode_info_context->mbmi.txfm_size == TX_8X8); for (n = 0; n < 4; n++) @@ -1913,9 +1914,8 @@ void vp8cx_encode_intra_super_block(VP8_COMP *cpi, } vp8_inverse_transform_mby_8x8(IF_RTCD(&rtcd->common->idct), &x->e_mbd); vp8_inverse_transform_mbuv_8x8(IF_RTCD(&rtcd->common->idct), &x->e_mbd); - vp8_recon_mby_s_c(IF_RTCD(&rtcd->common->recon), &x->e_mbd, - dst + x_idx * 16 + y_idx * 16 * dst_y_stride); - vp8_recon_mbuv_s_c(IF_RTCD(&rtcd->common->recon), &x->e_mbd, + vp8_recon_mby_s_c(&x->e_mbd, dst + x_idx * 16 + y_idx * 16 * dst_y_stride); + vp8_recon_mbuv_s_c(&x->e_mbd, udst + x_idx * 8 + y_idx * 8 * dst_uv_stride, vdst + x_idx * 8 + y_idx * 8 * dst_uv_stride); @@ -2249,8 +2249,8 @@ void vp8cx_encode_inter_superblock(VP8_COMP *cpi, MACROBLOCK *x, TOKENEXTRA **t, set_pred_flag(xd, PRED_REF, ref_pred_flag); if (xd->mode_info_context->mbmi.ref_frame == INTRA_FRAME) { - RECON_INVOKE(&rtcd->common->recon, build_intra_predictors_sby_s)(&x->e_mbd); - RECON_INVOKE(&rtcd->common->recon, build_intra_predictors_sbuv_s)(&x->e_mbd); + vp8_build_intra_predictors_sby_s(&x->e_mbd); + vp8_build_intra_predictors_sbuv_s(&x->e_mbd); } else { int ref_fb_idx; @@ -2319,9 +2319,9 @@ void vp8cx_encode_inter_superblock(VP8_COMP *cpi, MACROBLOCK *x, TOKENEXTRA **t, } vp8_inverse_transform_mby_8x8(IF_RTCD(&rtcd->common->idct), &x->e_mbd); vp8_inverse_transform_mbuv_8x8(IF_RTCD(&rtcd->common->idct), &x->e_mbd); - vp8_recon_mby_s_c(IF_RTCD(&rtcd->common->recon), &x->e_mbd, + vp8_recon_mby_s_c( &x->e_mbd, dst + x_idx * 16 + y_idx * 16 * dst_y_stride); - vp8_recon_mbuv_s_c(IF_RTCD(&rtcd->common->recon), &x->e_mbd, + vp8_recon_mbuv_s_c(&x->e_mbd, udst + x_idx * 8 + y_idx * 8 * dst_uv_stride, vdst + x_idx * 8 + y_idx * 8 * dst_uv_stride); diff --git a/vp8/encoder/encodeintra.c b/vp8/encoder/encodeintra.c index 323df005b..6bfe929cb 100644 --- a/vp8/encoder/encodeintra.c +++ b/vp8/encoder/encodeintra.c @@ -16,10 +16,10 @@ #include "vp8/common/reconintra4x4.h" #include "encodemb.h" #include "vp8/common/invtrans.h" -#include "vp8/common/recon.h" #include "dct.h" #include "vp8/common/g_common.h" #include "encodeintra.h" +#include "vpx_rtcd.h" #if CONFIG_RUNTIME_CPU_DETECT @@ -73,12 +73,11 @@ void vp8_encode_intra4x4block(const VP8_ENCODER_RTCD *rtcd, #if CONFIG_COMP_INTRA_PRED if (b->bmi.as_mode.second == (B_PREDICTION_MODE)(B_DC_PRED - 1)) { #endif - RECON_INVOKE(&rtcd->common->recon, intra4x4_predict) - (b, b->bmi.as_mode.first, b->predictor); + vp8_intra4x4_predict(b, b->bmi.as_mode.first, b->predictor); #if CONFIG_COMP_INTRA_PRED } else { - RECON_INVOKE(&rtcd->common->recon, comp_intra4x4_predict) - (b, b->bmi.as_mode.first, b->bmi.as_mode.second, b->predictor); + vp8_comp_intra4x4_predict(b, b->bmi.as_mode.first, b->bmi.as_mode.second, + b->predictor); } #endif @@ -102,7 +101,7 @@ void vp8_encode_intra4x4block(const VP8_ENCODER_RTCD *rtcd, vp8_inverse_transform_b(IF_RTCD(&rtcd->common->idct), b, 32); #endif - RECON_INVOKE(&rtcd->common->recon, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride); + vp8_recon_b(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride); } void vp8_encode_intra4x4mby(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *mb) { @@ -130,10 +129,10 @@ void vp8_encode_intra16x16mby(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x) { #if CONFIG_COMP_INTRA_PRED if (x->e_mbd.mode_info_context->mbmi.second_mode == (MB_PREDICTION_MODE)(DC_PRED - 1)) #endif - RECON_INVOKE(&rtcd->common->recon, build_intra_predictors_mby)(&x->e_mbd); + vp8_build_intra_predictors_mby(&x->e_mbd); #if CONFIG_COMP_INTRA_PRED else - RECON_INVOKE(&rtcd->common->recon, build_comp_intra_predictors_mby)(&x->e_mbd); + vp8_build_comp_intra_predictors_mby(&x->e_mbd); #endif ENCODEMB_INVOKE(&rtcd->encodemb, submby)(x->src_diff, *(b->base_src), x->e_mbd.predictor, b->src_stride); @@ -192,8 +191,7 @@ void vp8_encode_intra16x16mby(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x) { else vp8_inverse_transform_mby(IF_RTCD(&rtcd->common->idct), &x->e_mbd); - RECON_INVOKE(&rtcd->common->recon, recon_mby) - (IF_RTCD(&rtcd->common->recon), &x->e_mbd); + vp8_recon_mby(&x->e_mbd); } @@ -203,10 +201,10 @@ void vp8_encode_intra16x16mbuv(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x) { #if CONFIG_COMP_INTRA_PRED if (x->e_mbd.mode_info_context->mbmi.second_uv_mode == (MB_PREDICTION_MODE)(DC_PRED - 1)) { #endif - RECON_INVOKE(&rtcd->common->recon, build_intra_predictors_mbuv)(&x->e_mbd); + vp8_build_intra_predictors_mbuv(&x->e_mbd); #if CONFIG_COMP_INTRA_PRED } else { - RECON_INVOKE(&rtcd->common->recon, build_comp_intra_predictors_mbuv)(&x->e_mbd); + vp8_build_comp_intra_predictors_mbuv(&x->e_mbd); } #endif @@ -233,7 +231,7 @@ void vp8_encode_intra16x16mbuv(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x) { else vp8_inverse_transform_mbuv(IF_RTCD(&rtcd->common->idct), &x->e_mbd); - vp8_recon_intra_mbuv(IF_RTCD(&rtcd->common->recon), &x->e_mbd); + vp8_recon_intra_mbuv(&x->e_mbd); } void vp8_encode_intra8x8(const VP8_ENCODER_RTCD *rtcd, @@ -247,12 +245,11 @@ void vp8_encode_intra8x8(const VP8_ENCODER_RTCD *rtcd, #if CONFIG_COMP_INTRA_PRED if (b->bmi.as_mode.second == (MB_PREDICTION_MODE)(DC_PRED - 1)) { #endif - RECON_INVOKE(&rtcd->common->recon, intra8x8_predict) - (b, b->bmi.as_mode.first, b->predictor); + vp8_intra8x8_predict(b, b->bmi.as_mode.first, b->predictor); #if CONFIG_COMP_INTRA_PRED } else { - RECON_INVOKE(&rtcd->common->recon, comp_intra8x8_predict) - (b, b->bmi.as_mode.first, b->bmi.as_mode.second, b->predictor); + vp8_comp_intra8x8_predict(b, b->bmi.as_mode.first, b->bmi.as_mode.second, + b->predictor); } #endif @@ -311,12 +308,10 @@ void vp8_encode_intra_uv4x4(const VP8_ENCODER_RTCD *rtcd, #if CONFIG_COMP_INTRA_PRED if (second == -1) { #endif - RECON_INVOKE(&rtcd->common->recon, intra_uv4x4_predict) - (b, mode, b->predictor); + vp8_intra_uv4x4_predict(b, mode, b->predictor); #if CONFIG_COMP_INTRA_PRED } else { - RECON_INVOKE(&rtcd->common->recon, comp_intra_uv4x4_predict) - (b, mode, second, b->predictor); + vp8_comp_intra_uv4x4_predict(b, mode, second, b->predictor); } #endif @@ -328,8 +323,7 @@ void vp8_encode_intra_uv4x4(const VP8_ENCODER_RTCD *rtcd, vp8_inverse_transform_b(IF_RTCD(&rtcd->common->idct), b, 16); - RECON_INVOKE(&rtcd->common->recon, recon_uv)(b->predictor, - b->diff, *(b->base_dst) + b->dst, b->dst_stride); + vp8_recon_uv_b_c(b->predictor,b->diff, *(b->base_dst) + b->dst, b->dst_stride); } diff --git a/vp8/encoder/encodemb.c b/vp8/encoder/encodemb.c index 0b753b5e6..a392c52c6 100644 --- a/vp8/encoder/encodemb.c +++ b/vp8/encoder/encodemb.c @@ -15,7 +15,6 @@ #include "quantize.h" #include "tokenize.h" #include "vp8/common/invtrans.h" -#include "vp8/common/recon.h" #include "vp8/common/reconintra.h" #include "dct.h" #include "vpx_mem/vpx_mem.h" @@ -1162,8 +1161,7 @@ void vp8_encode_inter16x16(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x) { #endif } - RECON_INVOKE(&rtcd->common->recon, recon_mb) - (IF_RTCD(&rtcd->common->recon), &x->e_mbd); + vp8_recon_mb(&x->e_mbd); #ifdef ENC_DEBUG if (enc_debug) { int i, j, k; @@ -1216,6 +1214,5 @@ void vp8_encode_inter16x16y(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x) { else vp8_inverse_transform_mby(IF_RTCD(&rtcd->common->idct), &x->e_mbd); - RECON_INVOKE(&rtcd->common->recon, recon_mby) - (IF_RTCD(&rtcd->common->recon), &x->e_mbd); + vp8_recon_mby(&x->e_mbd); } diff --git a/vp8/encoder/generic/csystemdependent.c b/vp8/encoder/generic/csystemdependent.c index 56199d902..356e32c3f 100644 --- a/vp8/encoder/generic/csystemdependent.c +++ b/vp8/encoder/generic/csystemdependent.c @@ -118,13 +118,18 @@ void vp8_cmachine_specific_config(VP8_COMP *cpi) { cpi->rtcd.search.refining_search = vp8_refining_search_sad; cpi->rtcd.search.diamond_search = vp8_diamond_search_sad; cpi->rtcd.temporal.apply = vp8_temporal_filter_apply_c; + cpi->rtcd.variance.satd16x16 = vp8_satd16x16_c; + cpi->rtcd.fdct.short4x4 = vp8_short_fdct4x4_c; + cpi->rtcd.fdct.short8x4 = vp8_short_fdct8x4_c; + cpi->rtcd.fdct.fast4x4 = vp8_short_fdct4x4_c; + cpi->rtcd.fdct.fast8x4 = vp8_short_fdct8x4_c; + cpi->rtcd.fdct.walsh_short4x4 = vp8_short_walsh4x4_c; #if CONFIG_INTERNAL_STATS cpi->rtcd.variance.ssimpf_8x8 = vp8_ssim_parms_8x8_c; cpi->rtcd.variance.ssimpf_16x16 = vp8_ssim_parms_16x16_c; #endif #endif - cpi->rtcd.variance.satd16x16 = vp8_satd16x16_c; vp8_yv12_copy_partial_frame_ptr = vp8_yv12_copy_partial_frame; #if ARCH_X86 || ARCH_X86_64 @@ -135,10 +140,5 @@ void vp8_cmachine_specific_config(VP8_COMP *cpi) { vp8_arch_arm_encoder_init(cpi); #endif - cpi->rtcd.fdct.short4x4 = vp8_short_fdct4x4_c; - cpi->rtcd.fdct.short8x4 = vp8_short_fdct8x4_c; - cpi->rtcd.fdct.fast4x4 = vp8_short_fdct4x4_c; - cpi->rtcd.fdct.fast8x4 = vp8_short_fdct8x4_c; - cpi->rtcd.fdct.walsh_short4x4 = vp8_short_walsh4x4_c; } diff --git a/vp8/encoder/mbgraph.c b/vp8/encoder/mbgraph.c index d512ae4bc..180ee5870 100644 --- a/vp8/encoder/mbgraph.c +++ b/vp8/encoder/mbgraph.c @@ -220,7 +220,7 @@ static int find_best_16x16_intra unsigned int err; xd->mode_info_context->mbmi.mode = mode; - RECON_INVOKE(&cpi->rtcd.common->recon, build_intra_predictors_mby)(xd); + vp8_build_intra_predictors_mby(xd); // VARIANCE_INVOKE(&cpi->rtcd.variance, satd16x16) err = VARIANCE_INVOKE(&cpi->rtcd.variance, sad16x16) (xd->predictor, 16, diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index e8f9adc5e..8a3e3f3cf 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -4412,8 +4412,9 @@ int vp8_get_compressed_data(VP8_PTR ptr, unsigned int *frame_flags, unsigned lon { double frame_psnr2, frame_ssim2 = 0; double weight = 0; - +#if CONFIG_POSTPROC vp8_deblock(cm->frame_to_show, &cm->post_proc_buffer, cm->filter_level * 10 / 6, 1, 0, IF_RTCD(&cm->rtcd.postproc)); +#endif vp8_clear_system_state(); ye = calc_plane_error(orig->y_buffer, orig->y_stride, diff --git a/vp8/encoder/rdopt.c b/vp8/encoder/rdopt.c index 467cb313d..f9fa56519 100644 --- a/vp8/encoder/rdopt.c +++ b/vp8/encoder/rdopt.c @@ -1190,12 +1190,10 @@ static int64_t rd_pick_intra4x4block(VP8_COMP *cpi, MACROBLOCK *x, BLOCK *be, #if CONFIG_COMP_INTRA_PRED if (mode2 == (B_PREDICTION_MODE)(B_DC_PRED - 1)) { #endif - RECON_INVOKE(&cpi->rtcd.common->recon, intra4x4_predict) - (b, mode, b->predictor); + vp8_intra4x4_predict(b, mode, b->predictor); #if CONFIG_COMP_INTRA_PRED } else { - RECON_INVOKE(&cpi->rtcd.common->recon, comp_intra4x4_predict) - (b, mode, mode2, b->predictor); + vp8_comp_intra4x4_predict(b, mode, mode2, b->predictor); rate += bmode_costs[mode2]; } #endif @@ -1266,7 +1264,7 @@ static int64_t rd_pick_intra4x4block(VP8_COMP *cpi, MACROBLOCK *x, BLOCK *be, IDCT_INVOKE(IF_RTCD(&cpi->rtcd.common->idct), idct16)(best_dqcoeff, b->diff, 32); #endif - RECON_INVOKE(IF_RTCD(&cpi->rtcd.common->recon), recon)(best_predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride); + vp8_recon_b(best_predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride); return best_rd; } @@ -1371,8 +1369,7 @@ static int64_t rd_pick_intra_sby_mode(VP8_COMP *cpi, /* Y Search for 32x32 intra prediction mode */ for (mode = DC_PRED; mode <= TM_PRED; mode++) { x->e_mbd.mode_info_context->mbmi.mode = mode; - RECON_INVOKE(&cpi->common.rtcd.recon, - build_intra_predictors_sby_s)(&x->e_mbd); + vp8_build_intra_predictors_sby_s(&x->e_mbd); super_block_yrd_8x8(x, &this_rate_tokenonly, &this_distortion, IF_RTCD(&cpi->rtcd), &s); @@ -1441,13 +1438,11 @@ static int64_t rd_pick_intra16x16mby_mode(VP8_COMP *cpi, mbmi->second_mode = mode2; if (mode2 == (MB_PREDICTION_MODE)(DC_PRED - 1)) { #endif - RECON_INVOKE(&cpi->common.rtcd.recon, build_intra_predictors_mby) - (&x->e_mbd); + vp8_build_intra_predictors_mby(&x->e_mbd); #if CONFIG_COMP_INTRA_PRED } else { continue; // i.e. disable for now - RECON_INVOKE(&cpi->common.rtcd.recon, build_comp_intra_predictors_mby) - (&x->e_mbd); + vp8_build_comp_intra_predictors_mby(&x->e_mbd); } #endif @@ -1553,13 +1548,11 @@ static int64_t rd_pick_intra8x8block(VP8_COMP *cpi, MACROBLOCK *x, int ib, #if CONFIG_COMP_INTRA_PRED if (mode2 == (MB_PREDICTION_MODE)(DC_PRED - 1)) { #endif - RECON_INVOKE(&cpi->rtcd.common->recon, intra8x8_predict) - (b, mode, b->predictor); + vp8_intra8x8_predict(b, mode, b->predictor); #if CONFIG_COMP_INTRA_PRED } else { continue; // i.e. disable for now - RECON_INVOKE(&cpi->rtcd.common->recon, comp_intra8x8_predict) - (b, mode, mode2, b->predictor); + vp8_comp_intra8x8_predict(b, mode, mode2, b->predictor); } #endif @@ -1895,13 +1888,11 @@ static void rd_pick_intra_mbuv_mode(VP8_COMP *cpi, mbmi->second_uv_mode = mode2; if (mode2 == (MB_PREDICTION_MODE)(DC_PRED - 1)) { #endif - RECON_INVOKE(&cpi->rtcd.common->recon, build_intra_predictors_mbuv) - (&x->e_mbd); + vp8_build_intra_predictors_mbuv(&x->e_mbd); #if CONFIG_COMP_INTRA_PRED } else { continue; - RECON_INVOKE(&cpi->rtcd.common->recon, build_comp_intra_predictors_mbuv) - (&x->e_mbd); + vp8_build_comp_intra_predictors_mbuv(&x->e_mbd); } #endif @@ -1963,8 +1954,7 @@ static void rd_pick_intra_mbuv_mode_8x8(VP8_COMP *cpi, int64_t this_rd; mbmi->uv_mode = mode; - RECON_INVOKE(&cpi->rtcd.common->recon, build_intra_predictors_mbuv) - (&x->e_mbd); + vp8_build_intra_predictors_mbuv(&x->e_mbd); ENCODEMB_INVOKE(IF_RTCD(&cpi->rtcd.encodemb), submbuv)(x->src_diff, x->src.u_buffer, x->src.v_buffer, x->e_mbd.predictor, x->src.uv_stride); @@ -2057,8 +2047,7 @@ static int64_t rd_pick_intra_sbuv_mode(VP8_COMP *cpi, for (mode = DC_PRED; mode <= TM_PRED; mode++) { x->e_mbd.mode_info_context->mbmi.uv_mode = mode; - RECON_INVOKE(&cpi->rtcd.common->recon, - build_intra_predictors_sbuv_s)(&x->e_mbd); + vp8_build_intra_predictors_sbuv_s(&x->e_mbd); super_block_uvrd_8x8(x, &this_rate_tokenonly, &this_distortion, IF_RTCD(&cpi->rtcd), &s); @@ -3564,8 +3553,7 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int case D63_PRED: mbmi->ref_frame = INTRA_FRAME; // FIXME compound intra prediction - RECON_INVOKE(&cpi->common.rtcd.recon, build_intra_predictors_mby) - (&x->e_mbd); + vp8_build_intra_predictors_mby(&x->e_mbd); macro_block_yrd(cpi, x, &rate_y, &distortion, &skippable, txfm_cache); #if CONFIG_HYBRIDTRANSFORM16X16 rd_txtype = x->e_mbd.block[0].bmi.as_mode.tx_type; diff --git a/vp8/encoder/temporal_filter.c b/vp8/encoder/temporal_filter.c index 6bc24a01f..e59aa14fa 100644 --- a/vp8/encoder/temporal_filter.c +++ b/vp8/encoder/temporal_filter.c @@ -79,8 +79,8 @@ static void vp8_temporal_filter_predictors_mb_c (omv_col & 15), (omv_row & 15), &pred[320], 8); } else { - RECON_INVOKE(&xd->rtcd->recon, copy8x8)(uptr, stride, &pred[256], 8); - RECON_INVOKE(&xd->rtcd->recon, copy8x8)(vptr, stride, &pred[320], 8); + vp8_copy_mem8x8(uptr, stride, &pred[256], 8); + vp8_copy_mem8x8(vptr, stride, &pred[320], 8); } } void vp8_temporal_filter_apply_c |