summaryrefslogtreecommitdiff
path: root/vp8/encoder/x86/variance_sse2.c
diff options
context:
space:
mode:
Diffstat (limited to 'vp8/encoder/x86/variance_sse2.c')
-rw-r--r--vp8/encoder/x86/variance_sse2.c34
1 files changed, 22 insertions, 12 deletions
diff --git a/vp8/encoder/x86/variance_sse2.c b/vp8/encoder/x86/variance_sse2.c
index 24062eb9b..e3c6268ea 100644
--- a/vp8/encoder/x86/variance_sse2.c
+++ b/vp8/encoder/x86/variance_sse2.c
@@ -13,6 +13,12 @@
#include "vp8/common/pragmas.h"
#include "vpx_ports/mem.h"
+#if CONFIG_SIXTEENTH_SUBPEL_UV
+#define HALFNDX 8
+#else
+#define HALFNDX 4
+#endif
+
extern void filter_block1d_h6_mmx(const unsigned char *src_ptr, unsigned short *output_ptr, unsigned int src_pixels_per_line, unsigned int pixel_step, unsigned int output_height, unsigned int output_width, short *vp7_filter);
extern void filter_block1d_v6_mmx(const short *src_ptr, unsigned char *output_ptr, unsigned int pixels_per_line, unsigned int pixel_step, unsigned int output_height, unsigned int output_width, short *vp7_filter);
extern void filter_block1d8_h6_sse2(const unsigned char *src_ptr, unsigned short *output_ptr, unsigned int src_pixels_per_line, unsigned int pixel_step, unsigned int output_height, unsigned int output_width, short *vp7_filter);
@@ -135,7 +141,11 @@ void vp8_half_vert_variance16x_h_sse2
unsigned int *sumsquared
);
+#if CONFIG_SIXTEENTH_SUBPEL_UV
+DECLARE_ALIGNED(16, extern short, vp8_vp7_bilinear_filters_mmx[16][8]);
+#else
DECLARE_ALIGNED(16, extern short, vp8_vp7_bilinear_filters_mmx[8][8]);
+#endif
unsigned int vp8_variance4x4_wmt(
const unsigned char *src_ptr,
@@ -284,21 +294,21 @@ unsigned int vp8_sub_pixel_variance8x8_wmt
int xsum;
unsigned int xxsum;
- if (xoffset == 4 && yoffset == 0)
+ if (xoffset == HALFNDX && yoffset == 0)
{
vp8_half_horiz_variance8x_h_sse2(
src_ptr, src_pixels_per_line,
dst_ptr, dst_pixels_per_line, 8,
&xsum, &xxsum);
}
- else if (xoffset == 0 && yoffset == 4)
+ else if (xoffset == 0 && yoffset == HALFNDX)
{
vp8_half_vert_variance8x_h_sse2(
src_ptr, src_pixels_per_line,
dst_ptr, dst_pixels_per_line, 8,
&xsum, &xxsum);
}
- else if (xoffset == 4 && yoffset == 4)
+ else if (xoffset == HALFNDX && yoffset == HALFNDX)
{
vp8_half_horiz_vert_variance8x_h_sse2(
src_ptr, src_pixels_per_line,
@@ -335,21 +345,21 @@ unsigned int vp8_sub_pixel_variance16x16_wmt
// note we could avoid these if statements if the calling function
// just called the appropriate functions inside.
- if (xoffset == 4 && yoffset == 0)
+ if (xoffset == HALFNDX && yoffset == 0)
{
vp8_half_horiz_variance16x_h_sse2(
src_ptr, src_pixels_per_line,
dst_ptr, dst_pixels_per_line, 16,
&xsum0, &xxsum0);
}
- else if (xoffset == 0 && yoffset == 4)
+ else if (xoffset == 0 && yoffset == HALFNDX)
{
vp8_half_vert_variance16x_h_sse2(
src_ptr, src_pixels_per_line,
dst_ptr, dst_pixels_per_line, 16,
&xsum0, &xxsum0);
}
- else if (xoffset == 4 && yoffset == 4)
+ else if (xoffset == HALFNDX && yoffset == HALFNDX)
{
vp8_half_horiz_vert_variance16x_h_sse2(
src_ptr, src_pixels_per_line,
@@ -408,21 +418,21 @@ unsigned int vp8_sub_pixel_variance16x8_wmt
int xsum0, xsum1;
unsigned int xxsum0, xxsum1;
- if (xoffset == 4 && yoffset == 0)
+ if (xoffset == HALFNDX && yoffset == 0)
{
vp8_half_horiz_variance16x_h_sse2(
src_ptr, src_pixels_per_line,
dst_ptr, dst_pixels_per_line, 8,
&xsum0, &xxsum0);
}
- else if (xoffset == 0 && yoffset == 4)
+ else if (xoffset == 0 && yoffset == HALFNDX)
{
vp8_half_vert_variance16x_h_sse2(
src_ptr, src_pixels_per_line,
dst_ptr, dst_pixels_per_line, 8,
&xsum0, &xxsum0);
}
- else if (xoffset == 4 && yoffset == 4)
+ else if (xoffset == HALFNDX && yoffset == HALFNDX)
{
vp8_half_horiz_vert_variance16x_h_sse2(
src_ptr, src_pixels_per_line,
@@ -464,21 +474,21 @@ unsigned int vp8_sub_pixel_variance8x16_wmt
int xsum;
unsigned int xxsum;
- if (xoffset == 4 && yoffset == 0)
+ if (xoffset == HALFNDX && yoffset == 0)
{
vp8_half_horiz_variance8x_h_sse2(
src_ptr, src_pixels_per_line,
dst_ptr, dst_pixels_per_line, 16,
&xsum, &xxsum);
}
- else if (xoffset == 0 && yoffset == 4)
+ else if (xoffset == 0 && yoffset == HALFNDX)
{
vp8_half_vert_variance8x_h_sse2(
src_ptr, src_pixels_per_line,
dst_ptr, dst_pixels_per_line, 16,
&xsum, &xxsum);
}
- else if (xoffset == 4 && yoffset == 4)
+ else if (xoffset == HALFNDX && yoffset == HALFNDX)
{
vp8_half_horiz_vert_variance8x_h_sse2(
src_ptr, src_pixels_per_line,