loopfilter_neon.c 2.16 KB
Newer Older
1
/*
Yaowu Xu's avatar
Yaowu Xu committed
2
 * Copyright (c) 2016, Alliance for Open Media. All rights reserved
3
 *
Yaowu Xu's avatar
Yaowu Xu committed
4 5 6 7 8 9
 * This source code is subject to the terms of the BSD 2 Clause License and
 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
 * was not distributed with this source code in the LICENSE file, you can
 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
 * Media Patent License 1.0 was not distributed with this source code in the
 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
10 11 12 13
 */

#include <arm_neon.h>

Yaowu Xu's avatar
Yaowu Xu committed
14 15 16
#include "./aom_dsp_rtcd.h"
#include "./aom_config.h"
#include "aom/aom_integer.h"
Johann's avatar
Johann committed
17

Yaowu Xu's avatar
Yaowu Xu committed
18
void aom_lpf_vertical_4_dual_neon(uint8_t *s, int p, const uint8_t *blimit0,
clang-format's avatar
clang-format committed
19 20
                                  const uint8_t *limit0, const uint8_t *thresh0,
                                  const uint8_t *blimit1, const uint8_t *limit1,
Johann's avatar
Johann committed
21
                                  const uint8_t *thresh1) {
Yaowu Xu's avatar
Yaowu Xu committed
22 23
  aom_lpf_vertical_4_neon(s, p, blimit0, limit0, thresh0);
  aom_lpf_vertical_4_neon(s + 8 * p, p, blimit1, limit1, thresh1);
24 25
}

Johann's avatar
Johann committed
26
#if HAVE_NEON_ASM
Yaowu Xu's avatar
Yaowu Xu committed
27
void aom_lpf_horizontal_8_dual_neon(
clang-format's avatar
clang-format committed
28 29 30
    uint8_t *s, int p /* pitch */, const uint8_t *blimit0,
    const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1,
    const uint8_t *limit1, const uint8_t *thresh1) {
Yaowu Xu's avatar
Yaowu Xu committed
31 32
  aom_lpf_horizontal_8_neon(s, p, blimit0, limit0, thresh0);
  aom_lpf_horizontal_8_neon(s + 8, p, blimit1, limit1, thresh1);
Johann's avatar
Johann committed
33 34
}

Yaowu Xu's avatar
Yaowu Xu committed
35
void aom_lpf_vertical_8_dual_neon(uint8_t *s, int p, const uint8_t *blimit0,
clang-format's avatar
clang-format committed
36 37
                                  const uint8_t *limit0, const uint8_t *thresh0,
                                  const uint8_t *blimit1, const uint8_t *limit1,
Johann's avatar
Johann committed
38
                                  const uint8_t *thresh1) {
Yaowu Xu's avatar
Yaowu Xu committed
39 40
  aom_lpf_vertical_8_neon(s, p, blimit0, limit0, thresh0);
  aom_lpf_vertical_8_neon(s + 8 * p, p, blimit1, limit1, thresh1);
41 42
}

Yaowu Xu's avatar
Yaowu Xu committed
43
void aom_lpf_vertical_16_dual_neon(uint8_t *s, int p, const uint8_t *blimit,
Johann's avatar
Johann committed
44 45
                                   const uint8_t *limit,
                                   const uint8_t *thresh) {
Yaowu Xu's avatar
Yaowu Xu committed
46 47
  aom_lpf_vertical_16_neon(s, p, blimit, limit, thresh);
  aom_lpf_vertical_16_neon(s + 8 * p, p, blimit, limit, thresh);
48
}
Johann's avatar
Johann committed
49
#endif  // HAVE_NEON_ASM