1b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian/*
2b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian *  Copyright (c) 2013 The WebM project authors. All Rights Reserved.
3b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian *
4b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian *  Use of this source code is governed by a BSD-style license
5b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian *  that can be found in the LICENSE file in the root of the source
6b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian *  tree. An additional intellectual property rights grant can be found
7b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian *  in the file PATENTS.  All contributing project authors may
8b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian *  be found in the AUTHORS file in the root of the source tree.
9b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian */
10b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian
11b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian#include "./vp9_rtcd.h"
12b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian
13b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanianvoid vp9_lpf_horizontal_8_dual_neon(uint8_t *s, int p /* pitch */,
14b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                    const uint8_t *blimit0,
15b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                    const uint8_t *limit0,
16b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                    const uint8_t *thresh0,
17b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                    const uint8_t *blimit1,
18b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                    const uint8_t *limit1,
19b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                    const uint8_t *thresh1) {
20b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  vp9_lpf_horizontal_8(s, p, blimit0, limit0, thresh0, 1);
21b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  vp9_lpf_horizontal_8(s + 8, p, blimit1, limit1, thresh1, 1);
22b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian}
23b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian
24b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanianvoid vp9_lpf_vertical_4_dual_neon(uint8_t *s, int p,
25b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                  const uint8_t *blimit0,
26b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                  const uint8_t *limit0,
27b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                  const uint8_t *thresh0,
28b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                  const uint8_t *blimit1,
29b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                  const uint8_t *limit1,
30b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                  const uint8_t *thresh1) {
31b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  vp9_lpf_vertical_4_neon(s, p, blimit0, limit0, thresh0, 1);
32b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  vp9_lpf_vertical_4_neon(s + 8 * p, p, blimit1, limit1, thresh1, 1);
33b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian}
34b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian
35b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanianvoid vp9_lpf_vertical_8_dual_neon(uint8_t *s, int p,
36b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                  const uint8_t *blimit0,
37b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                  const uint8_t *limit0,
38b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                  const uint8_t *thresh0,
39b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                  const uint8_t *blimit1,
40b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                  const uint8_t *limit1,
41b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                  const uint8_t *thresh1) {
42b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  vp9_lpf_vertical_8_neon(s, p, blimit0, limit0, thresh0, 1);
43b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  vp9_lpf_vertical_8_neon(s + 8 * p, p, blimit1, limit1, thresh1, 1);
44b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian}
45b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian
46b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanianvoid vp9_lpf_vertical_16_dual_neon(uint8_t *s, int p,
47b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                   const uint8_t *blimit,
48b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                   const uint8_t *limit,
49b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian                                   const uint8_t *thresh) {
50b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  vp9_lpf_vertical_16_neon(s, p, blimit, limit, thresh);
51b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  vp9_lpf_vertical_16_neon(s + 8 * p, p, blimit, limit, thresh);
52b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian}
53