+++ /dev/null
-/*
- * 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) {
-
-}
-
-/* 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);
-}
-
/* Transpose 16x8 */
transpose(src, 16, dst, p, 2);
}
-
-/* Horizontal MB filtering */
-void vp9_loop_filter_mbh_sse2(unsigned char *y_ptr,
- unsigned char *u_ptr, unsigned char *v_ptr,
- int y_stride, int uv_stride,
- struct loop_filter_info *lfi) {
- vp9_mbloop_filter_horizontal_edge_sse2(y_ptr, y_stride, lfi->mblim,
- lfi->lim, lfi->hev_thr);
-
- /* u,v */
- if (u_ptr)
- vp9_mbloop_filter_horizontal_edge_uv_sse2(u_ptr, uv_stride, lfi->mblim,
- lfi->lim, lfi->hev_thr, v_ptr);
-}
-
-
-void vp9_lpf_mbh_w_sse2(unsigned char *y_ptr, unsigned char *u_ptr,
- unsigned char *v_ptr, int y_stride, int uv_stride,
- struct loop_filter_info *lfi) {
- vp9_mb_lpf_horizontal_edge_w_sse2(y_ptr, y_stride,
- lfi->mblim, lfi->lim, lfi->hev_thr);
-
- /* u,v */
- if (u_ptr)
- vp9_mbloop_filter_horizontal_edge_uv_sse2(u_ptr, uv_stride, lfi->mblim,
- lfi->lim, lfi->hev_thr, v_ptr);
-}
-
-
-void vp9_loop_filter_bh8x8_sse2(unsigned char *y_ptr, unsigned char *u_ptr,
- unsigned char *v_ptr, int y_stride, int uv_stride,
- struct loop_filter_info *lfi) {
- vp9_mbloop_filter_horizontal_edge_sse2(
- y_ptr + 8 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr);
-
- if (u_ptr)
- vp9_loop_filter_horizontal_edge_uv_sse2(u_ptr + 4 * uv_stride, uv_stride,
- lfi->blim, lfi->lim, lfi->hev_thr,
- v_ptr + 4 * uv_stride);
-}
-
-/* Vertical MB Filtering */
-void vp9_loop_filter_mbv_sse2(unsigned char *y_ptr, unsigned char *u_ptr,
- unsigned char *v_ptr, int y_stride, int uv_stride,
- struct loop_filter_info *lfi) {
- vp9_mbloop_filter_vertical_edge_sse2(y_ptr, y_stride, lfi->mblim, lfi->lim,
- lfi->hev_thr);
-
- /* u,v */
- if (u_ptr)
- vp9_mbloop_filter_vertical_edge_uv_sse2(u_ptr, uv_stride, lfi->mblim,
- lfi->lim, lfi->hev_thr, v_ptr);
-}
-
-
-void vp9_lpf_mbv_w_sse2(unsigned char *y_ptr, unsigned char *u_ptr,
- unsigned char *v_ptr, int y_stride, int uv_stride,
- struct loop_filter_info *lfi) {
- vp9_mb_lpf_vertical_edge_w_sse2(y_ptr, y_stride,
- lfi->mblim, lfi->lim, lfi->hev_thr);
-
- /* u,v */
- if (u_ptr)
- vp9_mbloop_filter_vertical_edge_uv_sse2(u_ptr, uv_stride, lfi->mblim,
- lfi->lim, lfi->hev_thr, v_ptr);
-}
-
-
-void vp9_loop_filter_bv8x8_sse2(unsigned char *y_ptr, unsigned char *u_ptr,
- unsigned char *v_ptr, int y_stride, int uv_stride,
- struct loop_filter_info *lfi) {
- vp9_mbloop_filter_vertical_edge_sse2(
- y_ptr + 8, y_stride, lfi->blim, lfi->lim, lfi->hev_thr);
-
- if (u_ptr)
- vp9_loop_filter_vertical_edge_uv_sse2(u_ptr + 4, uv_stride,
- lfi->blim, lfi->lim, lfi->hev_thr,
- v_ptr + 4);
-}
-
-/* Horizontal B Filtering */
-void vp9_loop_filter_bh_sse2(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_horizontal_edge_sse2(y_ptr + 4 * y_stride, y_stride,
- lfi->blim, lfi->lim, lfi->hev_thr, 2);
- vp9_loop_filter_horizontal_edge_sse2(y_ptr + 8 * y_stride, y_stride,
- lfi->blim, lfi->lim, lfi->hev_thr, 2);
- vp9_loop_filter_horizontal_edge_sse2(y_ptr + 12 * y_stride, y_stride,
- lfi->blim, lfi->lim, lfi->hev_thr, 2);
-
- if (u_ptr)
- vp9_loop_filter_horizontal_edge_uv_sse2(u_ptr + 4 * uv_stride, uv_stride,
- lfi->blim, lfi->lim, lfi->hev_thr,
- v_ptr + 4 * uv_stride);
-}
-
-/* Vertical B Filtering */
-void vp9_loop_filter_bv_sse2(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_sse2(y_ptr + 4, y_stride,
- lfi->blim, lfi->lim, lfi->hev_thr, 2);
- vp9_loop_filter_vertical_edge_sse2(y_ptr + 8, y_stride,
- lfi->blim, lfi->lim, lfi->hev_thr, 2);
- vp9_loop_filter_vertical_edge_sse2(y_ptr + 12, y_stride,
- lfi->blim, lfi->lim, lfi->hev_thr, 2);
-
- if (u_ptr)
- vp9_loop_filter_vertical_edge_uv_sse2(u_ptr + 4, uv_stride,
- lfi->blim, lfi->lim, lfi->hev_thr,
- v_ptr + 4);
-}
-