You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
2.4 KiB
103 lines
2.4 KiB
@/****************************************************************************** |
|
@ * |
|
@ * Copyright (C) 2015 The Android Open Source Project |
|
@ * |
|
@ * Licensed under the Apache License, Version 2.0 (the "License"); |
|
@ * you may not use this file except in compliance with the License. |
|
@ * You may obtain a copy of the License at: |
|
@ * |
|
@ * http://www.apache.org/licenses/LICENSE-2.0 |
|
@ * |
|
@ * Unless required by applicable law or agreed to in writing, software |
|
@ * distributed under the License is distributed on an "AS IS" BASIS, |
|
@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
@ * See the License for the specific language governing permissions and |
|
@ * limitations under the License. |
|
@ * |
|
@ ***************************************************************************** |
|
@ * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore |
|
@*/ |
|
|
|
|
|
@****************************************************************************** |
|
@* |
|
@* |
|
@* @brief |
|
@* This file contains definitions of routines for SAD caclulation |
|
@* |
|
@* @author |
|
@* Ittiam |
|
@* |
|
@* @par List of Functions: |
|
@* - icv_sad_8x4_a9() |
|
@* |
|
@* @remarks |
|
@* None |
|
@* |
|
@******************************************************************************* |
|
|
|
|
|
@****************************************************************************** |
|
@* |
|
@* @brief computes distortion (SAD) between 2 8x4 blocks |
|
@* |
|
@* |
|
@* @par Description |
|
@* This functions computes SAD between 2 8x4 blocks. |
|
@* |
|
@* @param[in] pu1_src |
|
@* UWORD8 pointer to the source |
|
@* |
|
@* @param[out] pu1_ref |
|
@* UWORD8 pointer to the reference buffer |
|
@* |
|
@* @param[in] src_strd |
|
@* integer source stride |
|
@* |
|
@* @param[in] ref_strd |
|
@* integer reference stride |
|
@* |
|
@* @param[in] wd |
|
@* Width (assumed to be 8) |
|
@* |
|
@* @param[in] ht |
|
@* Height (assumed to be 4) |
|
@* |
|
@* @returns |
|
@* SAD value in r0 |
|
@* |
|
@* @remarks |
|
@* |
|
@****************************************************************************** |
|
|
|
.global icv_sad_8x4_a9 |
|
|
|
icv_sad_8x4_a9: |
|
|
|
push {lr} |
|
|
|
vld1.8 d4, [r0], r2 |
|
vld1.8 d5, [r1], r3 |
|
|
|
vld1.8 d6, [r0], r2 |
|
vabdl.u8 q0, d5, d4 |
|
|
|
vld1.8 d7, [r1], r3 |
|
vabal.u8 q0, d7, d6 |
|
|
|
vld1.8 d4, [r0], r2 |
|
vld1.8 d5, [r1], r3 |
|
|
|
vld1.8 d6, [r0], r2 |
|
vabal.u8 q0, d5, d4 |
|
|
|
vld1.8 d7, [r1], r3 |
|
vabal.u8 q0, d7, d6 |
|
|
|
vadd.i16 d0, d1, d0 |
|
vpaddl.u16 d0, d0 |
|
vpaddl.u32 d0, d0 |
|
|
|
vmov.32 r0, d0[0] |
|
|
|
pop {pc}
|
|
|