| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2015 The LibYuv Project Authors. All rights reserved. | 2 * Copyright 2015 The LibYuv Project Authors. All rights reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 2, | 276 2, |
| 277 4, | 277 4, |
| 278 7) | 278 7) |
| 279 SDANY(ScaleARGBRowDown2Box_Any_NEON, | 279 SDANY(ScaleARGBRowDown2Box_Any_NEON, |
| 280 ScaleARGBRowDown2Box_NEON, | 280 ScaleARGBRowDown2Box_NEON, |
| 281 ScaleARGBRowDown2Box_C, | 281 ScaleARGBRowDown2Box_C, |
| 282 2, | 282 2, |
| 283 4, | 283 4, |
| 284 7) | 284 7) |
| 285 #endif | 285 #endif |
| 286 #ifdef HAS_SCALEARGBROWDOWN2_MSA |
| 287 SDANY(ScaleARGBRowDown2_Any_MSA, |
| 288 ScaleARGBRowDown2_MSA, |
| 289 ScaleARGBRowDown2_C, |
| 290 2, |
| 291 4, |
| 292 3) |
| 293 SDANY(ScaleARGBRowDown2Linear_Any_MSA, |
| 294 ScaleARGBRowDown2Linear_MSA, |
| 295 ScaleARGBRowDown2Linear_C, |
| 296 2, |
| 297 4, |
| 298 3) |
| 299 SDANY(ScaleARGBRowDown2Box_Any_MSA, |
| 300 ScaleARGBRowDown2Box_MSA, |
| 301 ScaleARGBRowDown2Box_C, |
| 302 2, |
| 303 4, |
| 304 3) |
| 305 #endif |
| 286 #undef SDANY | 306 #undef SDANY |
| 287 | 307 |
| 288 // Scale down by even scale factor. | 308 // Scale down by even scale factor. |
| 289 #define SDAANY(NAMEANY, SCALEROWDOWN_SIMD, SCALEROWDOWN_C, BPP, MASK) \ | 309 #define SDAANY(NAMEANY, SCALEROWDOWN_SIMD, SCALEROWDOWN_C, BPP, MASK) \ |
| 290 void NAMEANY(const uint8* src_ptr, ptrdiff_t src_stride, int src_stepx, \ | 310 void NAMEANY(const uint8* src_ptr, ptrdiff_t src_stride, int src_stepx, \ |
| 291 uint8* dst_ptr, int dst_width) { \ | 311 uint8* dst_ptr, int dst_width) { \ |
| 292 int r = (int)((unsigned int)dst_width % (MASK + 1)); \ | 312 int r = (int)((unsigned int)dst_width % (MASK + 1)); \ |
| 293 int n = dst_width - r; \ | 313 int n = dst_width - r; \ |
| 294 if (n > 0) { \ | 314 if (n > 0) { \ |
| 295 SCALEROWDOWN_SIMD(src_ptr, src_stride, src_stepx, dst_ptr, n); \ | 315 SCALEROWDOWN_SIMD(src_ptr, src_stride, src_stepx, dst_ptr, n); \ |
| (...skipping 19 matching lines...) Expand all Loading... |
| 315 ScaleARGBRowDownEven_NEON, | 335 ScaleARGBRowDownEven_NEON, |
| 316 ScaleARGBRowDownEven_C, | 336 ScaleARGBRowDownEven_C, |
| 317 4, | 337 4, |
| 318 3) | 338 3) |
| 319 SDAANY(ScaleARGBRowDownEvenBox_Any_NEON, | 339 SDAANY(ScaleARGBRowDownEvenBox_Any_NEON, |
| 320 ScaleARGBRowDownEvenBox_NEON, | 340 ScaleARGBRowDownEvenBox_NEON, |
| 321 ScaleARGBRowDownEvenBox_C, | 341 ScaleARGBRowDownEvenBox_C, |
| 322 4, | 342 4, |
| 323 3) | 343 3) |
| 324 #endif | 344 #endif |
| 345 #ifdef HAS_SCALEARGBROWDOWNEVEN_MSA |
| 346 SDAANY(ScaleARGBRowDownEven_Any_MSA, |
| 347 ScaleARGBRowDownEven_MSA, |
| 348 ScaleARGBRowDownEven_C, |
| 349 4, |
| 350 3) |
| 351 SDAANY(ScaleARGBRowDownEvenBox_Any_MSA, |
| 352 ScaleARGBRowDownEvenBox_MSA, |
| 353 ScaleARGBRowDownEvenBox_C, |
| 354 4, |
| 355 3) |
| 356 #endif |
| 325 | 357 |
| 326 // Add rows box filter scale down. | 358 // Add rows box filter scale down. |
| 327 #define SAANY(NAMEANY, SCALEADDROW_SIMD, SCALEADDROW_C, MASK) \ | 359 #define SAANY(NAMEANY, SCALEADDROW_SIMD, SCALEADDROW_C, MASK) \ |
| 328 void NAMEANY(const uint8* src_ptr, uint16* dst_ptr, int src_width) { \ | 360 void NAMEANY(const uint8* src_ptr, uint16* dst_ptr, int src_width) { \ |
| 329 int n = src_width & ~MASK; \ | 361 int n = src_width & ~MASK; \ |
| 330 if (n > 0) { \ | 362 if (n > 0) { \ |
| 331 SCALEADDROW_SIMD(src_ptr, dst_ptr, n); \ | 363 SCALEADDROW_SIMD(src_ptr, dst_ptr, n); \ |
| 332 } \ | 364 } \ |
| 333 SCALEADDROW_C(src_ptr + n, dst_ptr + n, src_width & MASK); \ | 365 SCALEADDROW_C(src_ptr + n, dst_ptr + n, src_width & MASK); \ |
| 334 } | 366 } |
| 335 | 367 |
| 336 #ifdef HAS_SCALEADDROW_SSE2 | 368 #ifdef HAS_SCALEADDROW_SSE2 |
| 337 SAANY(ScaleAddRow_Any_SSE2, ScaleAddRow_SSE2, ScaleAddRow_C, 15) | 369 SAANY(ScaleAddRow_Any_SSE2, ScaleAddRow_SSE2, ScaleAddRow_C, 15) |
| 338 #endif | 370 #endif |
| 339 #ifdef HAS_SCALEADDROW_AVX2 | 371 #ifdef HAS_SCALEADDROW_AVX2 |
| 340 SAANY(ScaleAddRow_Any_AVX2, ScaleAddRow_AVX2, ScaleAddRow_C, 31) | 372 SAANY(ScaleAddRow_Any_AVX2, ScaleAddRow_AVX2, ScaleAddRow_C, 31) |
| 341 #endif | 373 #endif |
| 342 #ifdef HAS_SCALEADDROW_NEON | 374 #ifdef HAS_SCALEADDROW_NEON |
| 343 SAANY(ScaleAddRow_Any_NEON, ScaleAddRow_NEON, ScaleAddRow_C, 15) | 375 SAANY(ScaleAddRow_Any_NEON, ScaleAddRow_NEON, ScaleAddRow_C, 15) |
| 344 #endif | 376 #endif |
| 345 #undef SAANY | 377 #undef SAANY |
| 346 | 378 |
| 347 #ifdef __cplusplus | 379 #ifdef __cplusplus |
| 348 } // extern "C" | 380 } // extern "C" |
| 349 } // namespace libyuv | 381 } // namespace libyuv |
| 350 #endif | 382 #endif |
| OLD | NEW |