Showing the changes to codec/processing/src (4 of 13 files). Show all
Unified · Split
| @@ -33,6 +33,8 @@ · 32 unmodified lines | |||
| 33 | #ifdef HAVE_NEON_AARCH64 | 33 | #ifdef HAVE_NEON_AARCH64 |
| 34 | #include "arm_arch64_common_macro.S" | 34 | #include "arm_arch64_common_macro.S" |
| 35 | WELS_ASM_AARCH64_FUNC_BEGIN SampleVariance16x16_AArch64_neon | 35 | WELS_ASM_AARCH64_FUNC_BEGIN SampleVariance16x16_AArch64_neon |
| 36 | SIGN_EXTENSION x1, w1 | ||
| 37 | SIGN_EXTENSION x3, w3 | ||
| 36 | ld1 {v1.16b}, [x0], x1 //save the ref data (16bytes) | 38 | ld1 {v1.16b}, [x0], x1 //save the ref data (16bytes) |
| 37 | ld1 {v0.16b}, [x2], x3 //save the src data (16bytes) | 39 | ld1 {v0.16b}, [x2], x3 //save the src data (16bytes) |
| 38 | uabd v2.16b, v0.16b, v1.16b | 40 | uabd v2.16b, v0.16b, v1.16b |
| @@ -174,6 +174,9 @@ comp_ds_bilinear_onethird_loop0: · 173 unmodified lines | |||
| 174 | //restore the tailer for the unasigned size | 174 | //restore the tailer for the unasigned size |
| 175 | st1 {v16.16b}, [x0] | 175 | st1 {v16.16b}, [x0] |
| 176 | WELS_ASM_AARCH64_FUNC_END | 176 | WELS_ASM_AARCH64_FUNC_END |
| 177 | ;void DyadicBilinearQuarterDownsampler_AArch64_neon(uint8_t* pDst, const int32_t kiDstStride, | ||
| 178 | ;uint8_t* pSrc, const int32_t kiSrcStride, | ||
| 179 | ;const int32_t kiSrcWidth, const int32_t kiHeight); | ||
| 177 | 180 | ||
| 178 | WELS_ASM_AARCH64_FUNC_BEGIN DyadicBilinearQuarterDownsampler_AArch64_neon | 181 | WELS_ASM_AARCH64_FUNC_BEGIN DyadicBilinearQuarterDownsampler_AArch64_neon |
| 179 | //Initialize the register | 182 | //Initialize the register |
| @@ -229,6 +232,9 @@ comp_ds_bilinear_quarter_loop0: · 49 unmodified lines | |||
| 229 | st1 {v16.16b}, [x0] | 232 | st1 {v16.16b}, [x0] |
| 230 | WELS_ASM_AARCH64_FUNC_END | 233 | WELS_ASM_AARCH64_FUNC_END |
| 231 | 234 | ||
| 235 | ;void GeneralBilinearAccurateDownsampler_AArch64_neon (uint8_t* pDst, const int32_t kiDstStride, | ||
| 236 | ; const int32_t kiDstWidth, const int32_t kiDstHeight, | ||
| 237 | ; uint8_t* pSrc, const int32_t kiSrcStride, const uint32_t kuiScaleX, const uint32_t kuiScaleY); | ||
| 232 | WELS_ASM_AARCH64_FUNC_BEGIN GeneralBilinearAccurateDownsampler_AArch64_neon | 238 | WELS_ASM_AARCH64_FUNC_BEGIN GeneralBilinearAccurateDownsampler_AArch64_neon |
| 233 | mov w10, #32767 | 239 | mov w10, #32767 |
| 234 | and w8, w6, w10 | 240 | and w8, w6, w10 |
| @@ -259,6 +265,13 @@ WELS_ASM_AARCH64_FUNC_BEGIN GeneralBilinearAccurateDownsampler_AArch64_neon · 24 unmodified lines | |||
| 259 | 265 | ||
| 260 | eor v26.16b, v26.16b, v26.16b | 266 | eor v26.16b, v26.16b, v26.16b |
| 261 | eor v27.16b, v27.16b, v27.16b | 267 | eor v27.16b, v27.16b, v27.16b |
| 268 | SIGN_EXTENSION x1, w1 | ||
| 269 | SIGN_EXTENSION x2, w2 | ||
| 270 | SIGN_EXTENSION x3, w3 | ||
| 271 | SIGN_EXTENSION x5, w5 | ||
| 272 | SIGN_EXTENSION x6, w6 | ||
| 273 | SIGN_EXTENSION x7, w7 | ||
| 274 | |||
| 262 | sub x1, x1, x2 | 275 | sub x1, x1, x2 |
| 263 | sub x3, x3, #1 | 276 | sub x3, x3, #1 |
| 264 | 277 | ||
| @@ -32,8 +32,10 @@ · 31 unmodified lines | |||
| 32 | 32 | ||
| 33 | #ifdef HAVE_NEON_AARCH64 | 33 | #ifdef HAVE_NEON_AARCH64 |
| 34 | #include "arm_arch64_common_macro.S" | 34 | #include "arm_arch64_common_macro.S" |
| 35 | 35 | ;int32_t WelsProcessingSampleSad8x8_AArch64_neon (uint8_t*, int32_t, uint8_t*, int32_t); | |
| 36 | WELS_ASM_AARCH64_FUNC_BEGIN WelsProcessingSampleSad8x8_AArch64_neon | 36 | WELS_ASM_AARCH64_FUNC_BEGIN WelsProcessingSampleSad8x8_AArch64_neon |
| 37 | SIGN_EXTENSION x1, w1 | ||
| 38 | SIGN_EXTENSION x3, w3 | ||
| 37 | ld1 {v0.8b}, [x0], x1 | 39 | ld1 {v0.8b}, [x0], x1 |
| 38 | ld1 {v1.8b}, [x2], x3 | 40 | ld1 {v1.8b}, [x2], x3 |
| 39 | uabdl v2.8h, v0.8b, v1.8b | 41 | uabdl v2.8h, v0.8b, v1.8b |
| @@ -61,6 +61,8 @@ · 60 unmodified lines | |||
| 61 | */ | 61 | */ |
| 62 | WELS_ASM_AARCH64_FUNC_BEGIN VAACalcSad_AArch64_neon | 62 | WELS_ASM_AARCH64_FUNC_BEGIN VAACalcSad_AArch64_neon |
| 63 | eor v31.16b, v31.16b, v31.16b | 63 | eor v31.16b, v31.16b, v31.16b |
| 64 | |||
| 65 | SIGN_EXTENSION x4, w4 | ||
| 64 | lsl x9, x4, #4 | 66 | lsl x9, x4, #4 |
| 65 | sub x10, x9, #16 //x10 keep the 16*pic_stride-16 | 67 | sub x10, x9, #16 //x10 keep the 16*pic_stride-16 |
| 66 | sub x9, x9, x2 //x9 keep the 16*pic_stride-pic_width | 68 | sub x9, x9, x2 //x9 keep the 16*pic_stride-pic_width |
| @@ -119,6 +121,7 @@ WELS_ASM_AARCH64_FUNC_BEGIN VAACalcSadBgd_AArch64_neon · 52 unmodified lines | |||
| 119 | ldr x15, [sp, #0] | 121 | ldr x15, [sp, #0] |
| 120 | eor v28.16b, v28.16b, v28.16b | 122 | eor v28.16b, v28.16b, v28.16b |
| 121 | 123 | ||
| 124 | SIGN_EXTENSION x4, w4 | ||
| 122 | lsl x9, x4, #4 | 125 | lsl x9, x4, #4 |
| 123 | sub x10, x9, #16 //x10 keep the 16*pic_stride-16 | 126 | sub x10, x9, #16 //x10 keep the 16*pic_stride-16 |
| 124 | sub x9, x9, x2 //x9 keep the 16*pic_stride-pic_width | 127 | sub x9, x9, x2 //x9 keep the 16*pic_stride-pic_width |
| @@ -260,6 +263,7 @@ WELS_ASM_AARCH64_FUNC_BEGIN VAACalcSadSsdBgd_AArch64_neon · 135 unmodified lines | |||
| 260 | ldr x15, [sp, #24] //p_mad8x8 | 263 | ldr x15, [sp, #24] //p_mad8x8 |
| 261 | eor v17.16b, v17.16b, v17.16b | 264 | eor v17.16b, v17.16b, v17.16b |
| 262 | 265 | ||
| 266 | SIGN_EXTENSION x4, w4 | ||
| 263 | lsl x9, x4, #4 | 267 | lsl x9, x4, #4 |
| 264 | sub x10, x9, #16 //x10 keep the 16*pic_stride-16 | 268 | sub x10, x9, #16 //x10 keep the 16*pic_stride-16 |
| 265 | sub x9, x9, x2 //x9 keep the 16*pic_stride-pic_width | 269 | sub x9, x9, x2 //x9 keep the 16*pic_stride-pic_width |
| @@ -400,6 +404,7 @@ WELS_ASM_AARCH64_FUNC_BEGIN VAACalcSadSsd_AArch64_neon · 134 unmodified lines | |||
| 400 | ldr x13, [sp, #8] //psqdiff16x16 | 404 | ldr x13, [sp, #8] //psqdiff16x16 |
| 401 | eor v17.16b, v17.16b, v17.16b | 405 | eor v17.16b, v17.16b, v17.16b |
| 402 | 406 | ||
| 407 | SIGN_EXTENSION x4, w4 | ||
| 403 | lsl x9, x4, #4 | 408 | lsl x9, x4, #4 |
| 404 | sub x10, x9, #16 //x10 keep the 16*pic_stride-16 | 409 | sub x10, x9, #16 //x10 keep the 16*pic_stride-16 |
| 405 | sub x9, x9, x2 //x9 keep the 16*pic_stride-pic_width | 410 | sub x9, x9, x2 //x9 keep the 16*pic_stride-pic_width |
| @@ -500,6 +505,7 @@ WELS_ASM_AARCH64_FUNC_BEGIN VAACalcSadVar_AArch64_neon · 94 unmodified lines | |||
| 500 | ldr x12, [sp, #0] //psqsum16x16 | 505 | ldr x12, [sp, #0] //psqsum16x16 |
| 501 | eor v17.16b, v17.16b, v17.16b | 506 | eor v17.16b, v17.16b, v17.16b |
| 502 | 507 | ||
| 508 | SIGN_EXTENSION x4, w4 | ||
| 503 | lsl x9, x4, #4 | 509 | lsl x9, x4, #4 |
| 504 | sub x10, x9, #16 //x10 keep the 16*pic_stride-16 | 510 | sub x10, x9, #16 //x10 keep the 16*pic_stride-16 |
| 505 | sub x9, x9, x2 //x9 keep the 16*pic_stride-pic_width | 511 | sub x9, x9, x2 //x9 keep the 16*pic_stride-pic_width |