Demux vp9_loopfilter_x86.c
Allow more careful targeting of compiler flags. Change-Id: I963ab4a6479dedb165419310dfca52a58a9877b8
This commit is contained in:
parent
6c147b9d93
commit
3db60c8c6c
74
vp9/common/x86/vp9_loopfilter_intrin_mmx.c
Normal file
74
vp9/common/x86/vp9_loopfilter_intrin_mmx.c
Normal file
@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#include "vp9/common/vp9_loopfilter.h"
|
||||
|
||||
prototype_loopfilter(vp9_loop_filter_vertical_edge_mmx);
|
||||
prototype_loopfilter(vp9_loop_filter_horizontal_edge_mmx);
|
||||
|
||||
/* Horizontal MB filtering */
|
||||
void vp9_loop_filter_mbh_mmx(unsigned char *y_ptr,
|
||||
unsigned char *u_ptr, unsigned char *v_ptr,
|
||||
int y_stride, int uv_stride,
|
||||
struct loop_filter_info *lfi) {
|
||||
}
|
||||
|
||||
/* Vertical MB Filtering */
|
||||
void vp9_loop_filter_mbv_mmx(unsigned char *y_ptr,
|
||||
unsigned char *u_ptr, unsigned char *v_ptr,
|
||||
int y_stride, int uv_stride,
|
||||
struct loop_filter_info *lfi) {
|
||||
}
|
||||
|
||||
/* Horizontal B Filtering */
|
||||
void vp9_loop_filter_bh_mmx(unsigned char *y_ptr,
|
||||
unsigned char *u_ptr, unsigned char *v_ptr,
|
||||
int y_stride, int uv_stride,
|
||||
struct loop_filter_info *lfi) {
|
||||
|
||||
}
|
||||
|
||||
void vp9_loop_filter_bhs_mmx(unsigned char *y_ptr, int y_stride,
|
||||
const unsigned char *blimit) {
|
||||
vp9_loop_filter_simple_horizontal_edge_mmx(y_ptr + 4 * y_stride,
|
||||
y_stride, blimit);
|
||||
vp9_loop_filter_simple_horizontal_edge_mmx(y_ptr + 8 * y_stride,
|
||||
y_stride, blimit);
|
||||
vp9_loop_filter_simple_horizontal_edge_mmx(y_ptr + 12 * y_stride,
|
||||
y_stride, blimit);
|
||||
}
|
||||
|
||||
/* Vertical B Filtering */
|
||||
void vp9_loop_filter_bv_mmx(unsigned char *y_ptr,
|
||||
unsigned char *u_ptr, unsigned char *v_ptr,
|
||||
int y_stride, int uv_stride,
|
||||
struct loop_filter_info *lfi) {
|
||||
vp9_loop_filter_vertical_edge_mmx(y_ptr + 4, y_stride,
|
||||
lfi->blim, lfi->lim, lfi->hev_thr, 2);
|
||||
vp9_loop_filter_vertical_edge_mmx(y_ptr + 8, y_stride,
|
||||
lfi->blim, lfi->lim, lfi->hev_thr, 2);
|
||||
vp9_loop_filter_vertical_edge_mmx(y_ptr + 12, y_stride,
|
||||
lfi->blim, lfi->lim, lfi->hev_thr, 2);
|
||||
|
||||
if (u_ptr)
|
||||
vp9_loop_filter_vertical_edge_mmx(u_ptr + 4, uv_stride,
|
||||
lfi->blim, lfi->lim, lfi->hev_thr, 1);
|
||||
|
||||
if (v_ptr)
|
||||
vp9_loop_filter_vertical_edge_mmx(v_ptr + 4, uv_stride,
|
||||
lfi->blim, lfi->lim, lfi->hev_thr, 1);
|
||||
}
|
||||
|
||||
void vp9_loop_filter_bvs_mmx(unsigned char *y_ptr, int y_stride,
|
||||
const unsigned char *blimit) {
|
||||
vp9_loop_filter_simple_vertical_edge_mmx(y_ptr + 4, y_stride, blimit);
|
||||
vp9_loop_filter_simple_vertical_edge_mmx(y_ptr + 8, y_stride, blimit);
|
||||
vp9_loop_filter_simple_vertical_edge_mmx(y_ptr + 12, y_stride, blimit);
|
||||
}
|
@ -8,84 +8,16 @@
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#include <emmintrin.h> // SSE2
|
||||
#include "vpx_config.h"
|
||||
#include <emmintrin.h> /* SSE2 */
|
||||
#include "vp9/common/vp9_loopfilter.h"
|
||||
#include "vpx_ports/emmintrin_compat.h"
|
||||
|
||||
prototype_loopfilter(vp9_loop_filter_vertical_edge_mmx);
|
||||
prototype_loopfilter(vp9_loop_filter_horizontal_edge_mmx);
|
||||
|
||||
prototype_loopfilter(vp9_loop_filter_vertical_edge_sse2);
|
||||
prototype_loopfilter(vp9_loop_filter_horizontal_edge_sse2);
|
||||
|
||||
extern loop_filter_uvfunction vp9_loop_filter_horizontal_edge_uv_sse2;
|
||||
extern loop_filter_uvfunction vp9_loop_filter_vertical_edge_uv_sse2;
|
||||
|
||||
#if HAVE_MMX
|
||||
/* Horizontal MB filtering */
|
||||
void vp9_loop_filter_mbh_mmx(unsigned char *y_ptr,
|
||||
unsigned char *u_ptr, unsigned char *v_ptr,
|
||||
int y_stride, int uv_stride,
|
||||
struct loop_filter_info *lfi) {
|
||||
}
|
||||
|
||||
/* Vertical MB Filtering */
|
||||
void vp9_loop_filter_mbv_mmx(unsigned char *y_ptr,
|
||||
unsigned char *u_ptr, unsigned char *v_ptr,
|
||||
int y_stride, int uv_stride,
|
||||
struct loop_filter_info *lfi) {
|
||||
}
|
||||
|
||||
/* Horizontal B Filtering */
|
||||
void vp9_loop_filter_bh_mmx(unsigned char *y_ptr,
|
||||
unsigned char *u_ptr, unsigned char *v_ptr,
|
||||
int y_stride, int uv_stride,
|
||||
struct loop_filter_info *lfi) {
|
||||
|
||||
}
|
||||
|
||||
void vp9_loop_filter_bhs_mmx(unsigned char *y_ptr, int y_stride,
|
||||
const unsigned char *blimit) {
|
||||
vp9_loop_filter_simple_horizontal_edge_mmx(y_ptr + 4 * y_stride,
|
||||
y_stride, blimit);
|
||||
vp9_loop_filter_simple_horizontal_edge_mmx(y_ptr + 8 * y_stride,
|
||||
y_stride, blimit);
|
||||
vp9_loop_filter_simple_horizontal_edge_mmx(y_ptr + 12 * y_stride,
|
||||
y_stride, blimit);
|
||||
}
|
||||
|
||||
/* Vertical B Filtering */
|
||||
void vp9_loop_filter_bv_mmx(unsigned char *y_ptr,
|
||||
unsigned char *u_ptr, unsigned char *v_ptr,
|
||||
int y_stride, int uv_stride,
|
||||
struct loop_filter_info *lfi) {
|
||||
vp9_loop_filter_vertical_edge_mmx(y_ptr + 4, y_stride,
|
||||
lfi->blim, lfi->lim, lfi->hev_thr, 2);
|
||||
vp9_loop_filter_vertical_edge_mmx(y_ptr + 8, y_stride,
|
||||
lfi->blim, lfi->lim, lfi->hev_thr, 2);
|
||||
vp9_loop_filter_vertical_edge_mmx(y_ptr + 12, y_stride,
|
||||
lfi->blim, lfi->lim, lfi->hev_thr, 2);
|
||||
|
||||
if (u_ptr)
|
||||
vp9_loop_filter_vertical_edge_mmx(u_ptr + 4, uv_stride,
|
||||
lfi->blim, lfi->lim, lfi->hev_thr, 1);
|
||||
|
||||
if (v_ptr)
|
||||
vp9_loop_filter_vertical_edge_mmx(v_ptr + 4, uv_stride,
|
||||
lfi->blim, lfi->lim, lfi->hev_thr, 1);
|
||||
}
|
||||
|
||||
void vp9_loop_filter_bvs_mmx(unsigned char *y_ptr, int y_stride,
|
||||
const unsigned char *blimit) {
|
||||
vp9_loop_filter_simple_vertical_edge_mmx(y_ptr + 4, y_stride, blimit);
|
||||
vp9_loop_filter_simple_vertical_edge_mmx(y_ptr + 8, y_stride, blimit);
|
||||
vp9_loop_filter_simple_vertical_edge_mmx(y_ptr + 12, y_stride, blimit);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if HAVE_SSE2
|
||||
|
||||
void vp9_mb_lpf_horizontal_edge_w_sse2(unsigned char *s,
|
||||
int p,
|
||||
const unsigned char *_blimit,
|
||||
@ -1227,5 +1159,3 @@ void vp9_loop_filter_bvs_sse2(unsigned char *y_ptr, int y_stride,
|
||||
vp9_loop_filter_simple_vertical_edge_sse2(y_ptr + 8, y_stride, blimit);
|
||||
vp9_loop_filter_simple_vertical_edge_sse2(y_ptr + 12, y_stride, blimit);
|
||||
}
|
||||
|
||||
#endif
|
@ -83,7 +83,8 @@ VP9_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/vp9_subpixel_x86.h
|
||||
VP9_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/vp9_loopfilter_x86.h
|
||||
VP9_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/vp9_postproc_x86.h
|
||||
VP9_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/vp9_asm_stubs.c
|
||||
VP9_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/vp9_loopfilter_x86.c
|
||||
VP9_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/vp9_loopfilter_intrin_mmx.c
|
||||
VP9_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/vp9_loopfilter_intrin_sse2.c
|
||||
VP9_COMMON_SRCS-$(CONFIG_POSTPROC) += common/vp9_postproc.h
|
||||
VP9_COMMON_SRCS-$(CONFIG_POSTPROC) += common/vp9_postproc.c
|
||||
VP9_COMMON_SRCS-$(HAVE_MMX) += common/x86/vp9_iwalsh_mmx.asm
|
||||
@ -121,10 +122,10 @@ VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_filter_sse2.c
|
||||
VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_sadmxn_sse2.c
|
||||
ifeq ($(HAVE_SSE2),yes)
|
||||
vp9/common/x86/vp9_filter_sse2.c.o: CFLAGS += -msse2
|
||||
vp9/common/x86/vp9_loopfilter_x86.c.o: CFLAGS += -msse2
|
||||
vp9/common/x86/vp9_loopfilter_intrin_sse2.c.o: CFLAGS += -msse2
|
||||
vp9/common/x86/vp9_sadmxn_sse2.c.o: CFLAGS += -msse2
|
||||
vp9/common/x86/vp9_filter_sse2.c.d: CFLAGS += -msse2
|
||||
vp9/common/x86/vp9_loopfilter_x86.c.d: CFLAGS += -msse2
|
||||
vp9/common/x86/vp9_loopfilter_intrin_sse2.c.d: CFLAGS += -msse2
|
||||
vp9/common/x86/vp9_sadmxn_sse2.c.d: CFLAGS += -msse2
|
||||
endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user