1 /* 2 * Copyright (c) 2012 The WebM project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 12 #include "vpx_config.h" 13 #include "vp8_rtcd.h" 14 #include "vpx_ports/x86.h" 15 #include "vp8/encoder/block.h" 16 17 int vp8_mbblock_error_xmm_impl(short *coeff_ptr, short *dcoef_ptr, int dc); 18 int vp8_mbblock_error_xmm(MACROBLOCK *mb, int dc) 19 { 20 short *coeff_ptr = mb->block[0].coeff; 21 short *dcoef_ptr = mb->e_mbd.block[0].dqcoeff; 22 return vp8_mbblock_error_xmm_impl(coeff_ptr, dcoef_ptr, dc); 23 } 24 25 int vp8_mbuverror_xmm_impl(short *s_ptr, short *d_ptr); 26 int vp8_mbuverror_xmm(MACROBLOCK *mb) 27 { 28 short *s_ptr = &mb->coeff[256]; 29 short *d_ptr = &mb->e_mbd.dqcoeff[256]; 30 return vp8_mbuverror_xmm_impl(s_ptr, d_ptr); 31 } 32 33 void vp8_subtract_b_sse2_impl(unsigned char *z, int src_stride, 34 short *diff, unsigned char *predictor, 35 int pitch); 36 void vp8_subtract_b_sse2(BLOCK *be, BLOCKD *bd, int pitch) 37 { 38 unsigned char *z = *(be->base_src) + be->src; 39 unsigned int src_stride = be->src_stride; 40 short *diff = &be->src_diff[0]; 41 unsigned char *predictor = &bd->predictor[0]; 42 vp8_subtract_b_sse2_impl(z, src_stride, diff, predictor, pitch); 43 } 44