diff options
author | John Koleszar <jkoleszar@google.com> | 2013-04-02 14:54:44 -0700 |
---|---|---|
committer | John Koleszar <jkoleszar@google.com> | 2013-04-02 14:54:44 -0700 |
commit | 42db454c7f99ad97d834edb231b94172d4f29b97 (patch) | |
tree | 2824f813e12549dd9a6f68086a682238c26886dc /vp9/common | |
parent | 49bc402a9479636d6b75693e421473161de98db4 (diff) | |
parent | 3db60c8c6c6081864e50a162e2236ba03e21828b (diff) | |
download | libvpx-42db454c7f99ad97d834edb231b94172d4f29b97.tar libvpx-42db454c7f99ad97d834edb231b94172d4f29b97.tar.gz libvpx-42db454c7f99ad97d834edb231b94172d4f29b97.tar.bz2 libvpx-42db454c7f99ad97d834edb231b94172d4f29b97.zip |
Merge branch 'master' into experimental
Conflicts:
vp9/vp9_common.mk
Change-Id: I2cd5ab47dc31c4210cefc23a282102123d5e2221
Diffstat (limited to 'vp9/common')
-rw-r--r-- | vp9/common/x86/vp9_loopfilter_intrin_mmx.c | 74 | ||||
-rw-r--r-- | vp9/common/x86/vp9_loopfilter_intrin_sse2.c (renamed from vp9/common/x86/vp9_loopfilter_x86.c) | 72 | ||||
-rw-r--r-- | vp9/common/x86/vp9_sadmxn_sse2.c (renamed from vp9/common/x86/vp9_sadmxn_x86.c) | 7 |
3 files changed, 76 insertions, 77 deletions
diff --git a/vp9/common/x86/vp9_loopfilter_intrin_mmx.c b/vp9/common/x86/vp9_loopfilter_intrin_mmx.c new file mode 100644 index 000000000..2be9e3179 --- /dev/null +++ b/vp9/common/x86/vp9_loopfilter_intrin_mmx.c @@ -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); +} diff --git a/vp9/common/x86/vp9_loopfilter_x86.c b/vp9/common/x86/vp9_loopfilter_intrin_sse2.c index c8487547b..08447a62d 100644 --- a/vp9/common/x86/vp9_loopfilter_x86.c +++ b/vp9/common/x86/vp9_loopfilter_intrin_sse2.c @@ -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, @@ -1217,5 +1149,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 diff --git a/vp9/common/x86/vp9_sadmxn_x86.c b/vp9/common/x86/vp9_sadmxn_sse2.c index 3072d6df8..ed873a5ba 100644 --- a/vp9/common/x86/vp9_sadmxn_x86.c +++ b/vp9/common/x86/vp9_sadmxn_sse2.c @@ -8,13 +8,10 @@ * be found in the AUTHORS file in the root of the source tree. */ -#include <emmintrin.h> // SSE2 -#include "./vpx_config.h" -#include "./vp9_rtcd.h" +#include <emmintrin.h> /* SSE2 */ #include "vpx/vpx_integer.h" #include "vpx_ports/emmintrin_compat.h" -#if HAVE_SSE2 unsigned int vp9_sad16x3_sse2( const unsigned char *src_ptr, int src_stride, @@ -96,5 +93,3 @@ unsigned int vp9_sad3x16_sse2( sad = _mm_add_epi16(sad, _mm_srli_si128(sad, 8)); return _mm_cvtsi128_si32(sad); } - -#endif |