diff --git a/vp8/common/findnearmv.c b/vp8/common/findnearmv.c index 05789aff2293f99eaf4e59804bd66a1ff14a0f40..6f7361dd0ad827edf348af17992d5f601af56b1b 100644 --- a/vp8/common/findnearmv.c +++ b/vp8/common/findnearmv.c @@ -10,6 +10,7 @@ #include "findnearmv.h" +#include "vp8/encoder/variance.h" #include <limits.h> const unsigned char vp8_mbsplit_offset[4][16] = { diff --git a/vp8/common/findnearmv.h b/vp8/common/findnearmv.h index eff00c47eb1085fb55ee7377796284fbc9877345..e3cdab5cece4ed0ea579483ebaac8fff37bf4b61 100644 --- a/vp8/common/findnearmv.h +++ b/vp8/common/findnearmv.h @@ -18,6 +18,18 @@ #include "treecoder.h" #include "onyxc_int.h" +#if CONFIG_NEWBESTREFMV +/* check a list of motion vectors by sad score using a number rows of pixels + * above and a number cols of pixels in the left to select the one with best + * score to use as ref motion vector + */ +void vp8_find_best_ref_mvs(MACROBLOCKD *xd, + unsigned char *ref_y_buffer, + int ref_y_stride, + int_mv *best_mv, + int_mv *nearest, + int_mv *near); +#endif static void mv_bias(int refmb_ref_frame_sign_bias, int refframe, int_mv *mvp, const int *ref_frame_sign_bias) { MV xmv; diff --git a/vp8/decoder/decodframe.c b/vp8/decoder/decodframe.c index 0ac23654cbadfca3b016c527b9379463bad58776..4b3d36956ae75b76bd004c81b1f064901d92b6dd 100644 --- a/vp8/decoder/decodframe.c +++ b/vp8/decoder/decodframe.c @@ -372,8 +372,10 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd, if (mode == I8X8_PRED) { for (i = 0; i < 4; i++) { int ib = vp8_i8x8_block[i]; +#if !CONFIG_HYBRIDTRANSFORM8X8 const int iblock[4] = {0, 1, 4, 5}; int j; +#endif int i8x8mode; BLOCKD *b; diff --git a/vp8/decoder/dequantize.h b/vp8/decoder/dequantize.h index b12ee6904eebb5b02c5067c51f6f15f0a52e8ed2..c4c8d4a06dc7d5bde709441eae96d33623565333 100644 --- a/vp8/decoder/dequantize.h +++ b/vp8/decoder/dequantize.h @@ -195,4 +195,11 @@ typedef struct { #define DEQUANT_INVOKE(ctx,fn) vp8_dequant_##fn #endif +#if CONFIG_HYBRIDTRANSFORM8X8 +void vp8_ht_dequant_idct_add_8x8_c(TX_TYPE tx_type, short *input, short *dq, + unsigned char *pred, unsigned char *dest, + int pitch, int stride); +#endif + + #endif diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index bcbc857666d293ce0b88867237c04df688011fb0..d7a9456d147709805bd66e3b224dd912e2cf0d98 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -707,14 +707,12 @@ void vp8_set_speed_features(VP8_COMP *cpi) { sf->thresh_mult[THR_V_PRED ] = 1000; sf->thresh_mult[THR_H_PRED ] = 1000; -#if CONFIG_NEWINTRAMODES sf->thresh_mult[THR_D45_PRED ] = 1000; sf->thresh_mult[THR_D135_PRED] = 1000; sf->thresh_mult[THR_D117_PRED] = 1000; sf->thresh_mult[THR_D153_PRED] = 1000; sf->thresh_mult[THR_D27_PRED ] = 1000; sf->thresh_mult[THR_D63_PRED ] = 1000; -#endif sf->thresh_mult[THR_B_PRED ] = 2000; sf->thresh_mult[THR_I8X8_PRED] = 2000; sf->thresh_mult[THR_TM ] = 1000; diff --git a/vp8/encoder/rdopt.c b/vp8/encoder/rdopt.c index a2c1a230c6f3e11b3830201754e9fb567c7bf727..ed5b5c96d10153040dd7b4e1900d69df2cf6a63e 100644 --- a/vp8/encoder/rdopt.c +++ b/vp8/encoder/rdopt.c @@ -2699,7 +2699,7 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int int best_filter_state; #endif #if CONFIG_NEWBESTREFMV - int_mv ref_mv[MAX_REF_FRAMES] = {0}; + int_mv ref_mv[MAX_REF_FRAMES] = {{0}}; #endif #if CONFIG_SWITCHABLE_INTERP diff --git a/vp8/encoder/variance.h b/vp8/encoder/variance.h index 73a0a6b99fdcd3b26239fa3c331e892af45190e5..da83d1261817233bddca26cbf319480e22409a06 100644 --- a/vp8/encoder/variance.h +++ b/vp8/encoder/variance.h @@ -422,4 +422,19 @@ typedef struct { #define SSIMPF_INVOKE(ctx,fn) vp8_ssimpf_##fn #endif +#if CONFIG_NEWBESTREFMV +unsigned int vp8_sad2x16_c( + const unsigned char *src_ptr, + int src_stride, + const unsigned char *ref_ptr, + int ref_stride, + int max_sad); +unsigned int vp8_sad16x2_c( + const unsigned char *src_ptr, + int src_stride, + const unsigned char *ref_ptr, + int ref_stride, + int max_sad); +#endif + #endif