History

Add sad arm64 code to processing.

zhiliang wang committed 12 years ago

Commit 3139fe71 parent 11bf5755 files · +67 −0Browse files

Showing the changes to codec/processing/src (3 of 5 files). Show all

Unified · Split

3 files
  1. codec/processing/src/arm64/pixel_sad_aarch64_neon.S +50 −0
  2. codec/processing/src/common/common.h +6 −0
  3. codec/processing/src/scenechangedetection/SceneChangeDetection.h +6 −0
codec/processing/src/arm64/pixel_sad_aarch64_neon.S+50−0
@@ -0,0 +1,50 @@
1/*!
2 * \copy
3 * Copyright (c) 2013, Cisco Systems
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * * Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in
15 * the documentation and/or other materials provided with the
16 * distribution.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
28 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
30 *
31 */
32
33#ifdef HAVE_NEON_AARCH64
34.text
35#include "arm_arch64_common_macro.S"
36
37WELS_ASM_AARCH64_FUNC_BEGIN WelsProcessingSampleSad8x8_AArch64_neon
38 ld1 {v0.8b}, [x0], x1
39 ld1 {v1.8b}, [x2], x3
40 uabdl v2.8h, v0.8b, v1.8b
41.rept 7
42 ld1 {v0.8b}, [x0], x1
43 ld1 {v1.8b}, [x2], x3
44 uabal v2.8h, v0.8b, v1.8b
45.endr
46 saddlv s2, v2.8h
47 fmov w0, s2
48WELS_ASM_AARCH64_FUNC_END
49
50#endif
codec/processing/src/common/common.h+6−0
@@ -69,6 +69,12 @@ int32_t WelsProcessingSampleSad8x8_neon (uint8_t*, int32_t, uint8_t*, int32_t); · 68 unmodified lines
69WELSVP_EXTERN_C_END69WELSVP_EXTERN_C_END
70#endif70#endif
71 71
72#ifdef HAVE_NEON_AARCH64
73WELSVP_EXTERN_C_BEGIN
74int32_t WelsProcessingSampleSad8x8_AArch64_neon (uint8_t*, int32_t, uint8_t*, int32_t);
75WELSVP_EXTERN_C_END
76#endif
77
72WELSVP_NAMESPACE_END78WELSVP_NAMESPACE_END
73 79
74#endif80#endif
codec/processing/src/scenechangedetection/SceneChangeDetection.h+6−0
@@ -83,6 +83,12 @@ class CSceneChangeDetectorVideo { · 82 unmodified lines
83 }83 }
84#endif84#endif
85 85
86#ifdef HAVE_NEON_AARCH64
87 if (iCpuFlag & WELS_CPU_NEON) {
88 m_pfSad = WelsProcessingSampleSad8x8_AArch64_neon;
89 }
90#endif
91
86 m_fSceneChangeMotionRatioLarge = SCENE_CHANGE_MOTION_RATIO_LARGE_VIDEO;92 m_fSceneChangeMotionRatioLarge = SCENE_CHANGE_MOTION_RATIO_LARGE_VIDEO;
87 m_fSceneChangeMotionRatioMedium = SCENE_CHANGE_MOTION_RATIO_MEDIUM;93 m_fSceneChangeMotionRatioMedium = SCENE_CHANGE_MOTION_RATIO_MEDIUM;
88 }94 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t