| Index: source/libvpx/vp8/encoder/encodemb.c
|
| ===================================================================
|
| --- source/libvpx/vp8/encoder/encodemb.c (revision 96967)
|
| +++ source/libvpx/vp8/encoder/encodemb.c (working copy)
|
| @@ -19,6 +19,7 @@
|
| #include "vp8/common/reconintra.h"
|
| #include "dct.h"
|
| #include "vpx_mem/vpx_mem.h"
|
| +#include "rdopt.h"
|
|
|
| #if CONFIG_RUNTIME_CPU_DETECT
|
| #define IF_RTCD(x) (x)
|
| @@ -100,7 +101,9 @@
|
|
|
| static void vp8_subtract_mb(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x)
|
| {
|
| - ENCODEMB_INVOKE(&rtcd->encodemb, submby)(x->src_diff, x->src.y_buffer, x->e_mbd.predictor, x->src.y_stride);
|
| + BLOCK *b = &x->block[0];
|
| +
|
| + ENCODEMB_INVOKE(&rtcd->encodemb, submby)(x->src_diff, *(b->base_src), x->e_mbd.predictor, b->src_stride);
|
| ENCODEMB_INVOKE(&rtcd->encodemb, submbuv)(x->src_diff, x->src.u_buffer, x->src.v_buffer, x->e_mbd.predictor, x->src.uv_stride);
|
| }
|
|
|
| @@ -195,42 +198,7 @@
|
| }
|
|
|
|
|
| -void vp8_stuff_inter16x16(MACROBLOCK *x)
|
| -{
|
| - vp8_build_inter_predictors_mb_s(&x->e_mbd);
|
| - /*
|
| - // recon = copy from predictors to destination
|
| - {
|
| - BLOCKD *b = &x->e_mbd.block[0];
|
| - unsigned char *pred_ptr = b->predictor;
|
| - unsigned char *dst_ptr = *(b->base_dst) + b->dst;
|
| - int stride = b->dst_stride;
|
|
|
| - int i;
|
| - for(i=0;i<16;i++)
|
| - vpx_memcpy(dst_ptr+i*stride,pred_ptr+16*i,16);
|
| -
|
| - b = &x->e_mbd.block[16];
|
| - pred_ptr = b->predictor;
|
| - dst_ptr = *(b->base_dst) + b->dst;
|
| - stride = b->dst_stride;
|
| -
|
| - for(i=0;i<8;i++)
|
| - vpx_memcpy(dst_ptr+i*stride,pred_ptr+8*i,8);
|
| -
|
| - b = &x->e_mbd.block[20];
|
| - pred_ptr = b->predictor;
|
| - dst_ptr = *(b->base_dst) + b->dst;
|
| - stride = b->dst_stride;
|
| -
|
| - for(i=0;i<8;i++)
|
| - vpx_memcpy(dst_ptr+i*stride,pred_ptr+8*i,8);
|
| - }
|
| - */
|
| -}
|
| -
|
| -#if !(CONFIG_REALTIME_ONLY)
|
| -#define RDCOST(RM,DM,R,D) ( ((128+(R)*(RM)) >> 8) + (DM)*(D) )
|
| #define RDTRUNC(RM,DM,R,D) ( (128+(R)*(RM)) & 0xFF )
|
|
|
| typedef struct vp8_token_state vp8_token_state;
|
| @@ -272,7 +240,7 @@
|
| int i0;
|
| int rc;
|
| int x;
|
| - int sz;
|
| + int sz = 0;
|
| int next;
|
| int rdmult;
|
| int rddiv;
|
| @@ -608,7 +576,6 @@
|
| ta + vp8_block2above[b], tl + vp8_block2left[b], rtcd);
|
| }
|
| }
|
| -#endif
|
|
|
| void vp8_encode_inter16x16(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x)
|
| {
|
| @@ -620,10 +587,8 @@
|
|
|
| vp8_quantize_mb(x);
|
|
|
| -#if !(CONFIG_REALTIME_ONLY)
|
| if (x->optimize)
|
| optimize_mb(x, rtcd);
|
| -#endif
|
|
|
| vp8_inverse_transform_mb(IF_RTCD(&rtcd->common->idct), &x->e_mbd);
|
|
|
| @@ -635,10 +600,12 @@
|
| /* this funciton is used by first pass only */
|
| void vp8_encode_inter16x16y(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x)
|
| {
|
| - vp8_build_inter_predictors_mby(&x->e_mbd);
|
| + BLOCK *b = &x->block[0];
|
|
|
| - ENCODEMB_INVOKE(&rtcd->encodemb, submby)(x->src_diff, x->src.y_buffer, x->e_mbd.predictor, x->src.y_stride);
|
| + vp8_build_inter16x16_predictors_mby(&x->e_mbd);
|
|
|
| + ENCODEMB_INVOKE(&rtcd->encodemb, submby)(x->src_diff, *(b->base_src), x->e_mbd.predictor, b->src_stride);
|
| +
|
| transform_mby(x);
|
|
|
| vp8_quantize_mby(x);
|
|
|