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 17int vp8_mbblock_error_xmm_impl(short *coeff_ptr, short *dcoef_ptr, int dc); 18int 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 25int vp8_mbuverror_xmm_impl(short *s_ptr, short *d_ptr); 26int 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 33void vp8_subtract_b_sse2_impl(unsigned char *z, int src_stride, 34 short *diff, unsigned char *predictor, 35 int pitch); 36void 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