Changeset 5699 for pjproject/trunk/third_party/yuv/include/libyuv/row.h
- Timestamp:
- Nov 21, 2017 9:25:11 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/third_party/yuv/include/libyuv/row.h
r5633 r5699 32 32 33 33 #if defined(__pnacl__) || defined(__CLR_VER) || \ 34 (defined(__i386__) && !defined(__SSE 2__))34 (defined(__i386__) && !defined(__SSE__) && !defined(__clang__)) 35 35 #define LIBYUV_DISABLE_X86 36 36 #endif … … 265 265 #endif 266 266 267 // The following are available for gcc/clang x86 platforms: 268 // TODO(fbarchard): Port to Visual C 269 #if !defined(LIBYUV_DISABLE_X86) && \ 270 (defined(__x86_64__) || (defined(__i386__) && !defined(_MSC_VER))) 271 #define HAS_MERGERGBROW_SSSE3 272 #define HAS_SPLITRGBROW_SSSE3 273 #endif 274 275 // The following are available for AVX2 gcc/clang x86 platforms: 276 // TODO(fbarchard): Port to Visual C 277 #if !defined(LIBYUV_DISABLE_X86) && \ 278 (defined(__x86_64__) || (defined(__i386__) && !defined(_MSC_VER))) && \ 279 (defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2)) 280 #define HAS_MERGEUVROW_16_AVX2 281 #define HAS_MULTIPLYROW_16_AVX2 282 #endif 283 267 284 // The following are available on Neon platforms: 268 285 #if !defined(LIBYUV_DISABLE_NEON) && \ … … 324 341 #define HAS_RGBATOYROW_NEON 325 342 #define HAS_SETROW_NEON 343 #define HAS_SPLITRGBROW_NEON 326 344 #define HAS_SPLITUVROW_NEON 327 345 #define HAS_UYVYTOARGBROW_NEON … … 353 371 #define HAS_SOBELXYROW_NEON 354 372 #define HAS_SOBELYROW_NEON 373 #endif 374 375 // The following are available on AArch64 platforms: 376 #if !defined(LIBYUV_DISABLE_NEON) && defined(__aarch64__) 377 #define HAS_SCALESUMSAMPLES_NEON 355 378 #endif 356 379 … … 386 409 387 410 #if !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa) 411 #define HAS_ABGRTOUVROW_MSA 412 #define HAS_ABGRTOYROW_MSA 413 #define HAS_ARGB1555TOARGBROW_MSA 414 #define HAS_ARGB1555TOUVROW_MSA 415 #define HAS_ARGB1555TOYROW_MSA 416 #define HAS_ARGB4444TOARGBROW_MSA 417 #define HAS_ARGBADDROW_MSA 418 #define HAS_ARGBATTENUATEROW_MSA 419 #define HAS_ARGBBLENDROW_MSA 420 #define HAS_ARGBCOLORMATRIXROW_MSA 421 #define HAS_ARGBEXTRACTALPHAROW_MSA 422 #define HAS_ARGBGRAYROW_MSA 388 423 #define HAS_ARGBMIRRORROW_MSA 424 #define HAS_ARGBMULTIPLYROW_MSA 425 #define HAS_ARGBQUANTIZEROW_MSA 426 #define HAS_ARGBSEPIAROW_MSA 427 #define HAS_ARGBSETROW_MSA 428 #define HAS_ARGBSHADEROW_MSA 429 #define HAS_ARGBSHUFFLEROW_MSA 430 #define HAS_ARGBSUBTRACTROW_MSA 431 #define HAS_ARGBTOARGB1555ROW_MSA 432 #define HAS_ARGBTOARGB4444ROW_MSA 433 #define HAS_ARGBTORAWROW_MSA 434 #define HAS_ARGBTORGB24ROW_MSA 435 #define HAS_ARGBTORGB565DITHERROW_MSA 436 #define HAS_ARGBTORGB565ROW_MSA 437 #define HAS_ARGBTOUV444ROW_MSA 438 #define HAS_ARGBTOUVJROW_MSA 439 #define HAS_ARGBTOUVROW_MSA 440 #define HAS_ARGBTOYJROW_MSA 441 #define HAS_ARGBTOYROW_MSA 442 #define HAS_BGRATOUVROW_MSA 443 #define HAS_BGRATOYROW_MSA 444 #define HAS_HALFFLOATROW_MSA 445 #define HAS_I400TOARGBROW_MSA 446 #define HAS_I422ALPHATOARGBROW_MSA 447 #define HAS_I422TOARGBROW_MSA 448 #define HAS_I422TORGB24ROW_MSA 449 #define HAS_I422TORGBAROW_MSA 389 450 #define HAS_I422TOUYVYROW_MSA 390 451 #define HAS_I422TOYUY2ROW_MSA 452 #define HAS_I444TOARGBROW_MSA 453 #define HAS_INTERPOLATEROW_MSA 454 #define HAS_J400TOARGBROW_MSA 455 #define HAS_MERGEUVROW_MSA 391 456 #define HAS_MIRRORROW_MSA 457 #define HAS_MIRRORUVROW_MSA 458 #define HAS_NV12TOARGBROW_MSA 459 #define HAS_NV12TORGB565ROW_MSA 460 #define HAS_NV21TOARGBROW_MSA 461 #define HAS_RAWTOARGBROW_MSA 462 #define HAS_RAWTORGB24ROW_MSA 463 #define HAS_RAWTOUVROW_MSA 464 #define HAS_RAWTOYROW_MSA 465 #define HAS_RGB24TOARGBROW_MSA 466 #define HAS_RGB24TOUVROW_MSA 467 #define HAS_RGB24TOYROW_MSA 468 #define HAS_RGB565TOARGBROW_MSA 469 #define HAS_RGB565TOUVROW_MSA 470 #define HAS_RGB565TOYROW_MSA 471 #define HAS_RGBATOUVROW_MSA 472 #define HAS_RGBATOYROW_MSA 473 #define HAS_SETROW_MSA 474 #define HAS_SOBELROW_MSA 475 #define HAS_SOBELTOPLANEROW_MSA 476 #define HAS_SOBELXROW_MSA 477 #define HAS_SOBELXYROW_MSA 478 #define HAS_SOBELYROW_MSA 479 #define HAS_SPLITUVROW_MSA 480 #define HAS_UYVYTOARGBROW_MSA 392 481 #define HAS_UYVYTOUVROW_MSA 393 482 #define HAS_UYVYTOYROW_MSA 483 #define HAS_YUY2TOARGBROW_MSA 394 484 #define HAS_YUY2TOUV422ROW_MSA 395 485 #define HAS_YUY2TOUVROW_MSA 396 486 #define HAS_YUY2TOYROW_MSA 397 #define HAS_ARGB4444TOARGBROW_MSA398 #define HAS_ARGBTOYROW_MSA399 #define HAS_ARGBTOUVROW_MSA400 #define HAS_I422TOARGBROW_MSA401 #define HAS_I422TORGBAROW_MSA402 #define HAS_I422ALPHATOARGBROW_MSA403 #define HAS_I422TORGB24ROW_MSA404 #define HAS_ARGBTORGB24ROW_MSA405 #define HAS_ARGBTORAWROW_MSA406 #define HAS_ARGBTORGB565ROW_MSA407 #define HAS_ARGBTOARGB1555ROW_MSA408 #define HAS_ARGBTOARGB4444ROW_MSA409 #define HAS_ARGBTOUV444ROW_MSA410 #define HAS_ARGBMULTIPLYROW_MSA411 #define HAS_ARGBADDROW_MSA412 #define HAS_ARGBSUBTRACTROW_MSA413 #define HAS_ARGBATTENUATEROW_MSA414 #define HAS_ARGBTORGB565DITHERROW_MSA415 #define HAS_ARGBSHUFFLEROW_MSA416 #define HAS_ARGBSHADEROW_MSA417 #define HAS_ARGBGRAYROW_MSA418 #define HAS_ARGBSEPIAROW_MSA419 #define HAS_ARGB1555TOARGBROW_MSA420 #define HAS_RGB565TOARGBROW_MSA421 #define HAS_RGB24TOARGBROW_MSA422 #define HAS_RAWTOARGBROW_MSA423 #define HAS_ARGB1555TOYROW_MSA424 #define HAS_RGB565TOYROW_MSA425 #define HAS_RGB24TOYROW_MSA426 #define HAS_RAWTOYROW_MSA427 #define HAS_ARGB1555TOUVROW_MSA428 #define HAS_RGB565TOUVROW_MSA429 #define HAS_RGB24TOUVROW_MSA430 #define HAS_RAWTOUVROW_MSA431 #define HAS_NV12TOARGBROW_MSA432 #define HAS_NV12TORGB565ROW_MSA433 #define HAS_NV21TOARGBROW_MSA434 #define HAS_SOBELROW_MSA435 #define HAS_SOBELTOPLANEROW_MSA436 #define HAS_SOBELXYROW_MSA437 #define HAS_ARGBTOYJROW_MSA438 #define HAS_BGRATOYROW_MSA439 #define HAS_ABGRTOYROW_MSA440 #define HAS_RGBATOYROW_MSA441 #define HAS_ARGBTOUVJROW_MSA442 #define HAS_BGRATOUVROW_MSA443 #define HAS_ABGRTOUVROW_MSA444 #define HAS_RGBATOUVROW_MSA445 #define HAS_I444TOARGBROW_MSA446 #define HAS_I400TOARGBROW_MSA447 #define HAS_J400TOARGBROW_MSA448 #define HAS_YUY2TOARGBROW_MSA449 #define HAS_UYVYTOARGBROW_MSA450 #define HAS_INTERPOLATEROW_MSA451 #define HAS_ARGBSETROW_MSA452 #define HAS_RAWTORGB24ROW_MSA453 #define HAS_MERGEUVROW_MSA454 487 #endif 455 488 … … 1346 1379 uint8* dst_v, 1347 1380 int width); 1381 void MirrorUVRow_MSA(const uint8* src_uv, 1382 uint8* dst_u, 1383 uint8* dst_v, 1384 int width); 1348 1385 void MirrorUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int width); 1349 1386 … … 1375 1412 uint8* dst_v, 1376 1413 int width); 1414 void SplitUVRow_MSA(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int width); 1377 1415 void SplitUVRow_Any_SSE2(const uint8* src_uv, 1378 1416 uint8* dst_u, … … 1391 1429 uint8* dst_v, 1392 1430 int width); 1431 void SplitUVRow_Any_MSA(const uint8* src_uv, 1432 uint8* dst_u, 1433 uint8* dst_v, 1434 int width); 1393 1435 1394 1436 void MergeUVRow_C(const uint8* src_u, … … 1429 1471 int width); 1430 1472 1473 void SplitRGBRow_C(const uint8* src_rgb, 1474 uint8* dst_r, 1475 uint8* dst_g, 1476 uint8* dst_b, 1477 int width); 1478 void SplitRGBRow_SSSE3(const uint8* src_rgb, 1479 uint8* dst_r, 1480 uint8* dst_g, 1481 uint8* dst_b, 1482 int width); 1483 void SplitRGBRow_NEON(const uint8* src_rgb, 1484 uint8* dst_r, 1485 uint8* dst_g, 1486 uint8* dst_b, 1487 int width); 1488 void SplitRGBRow_Any_SSSE3(const uint8* src_rgb, 1489 uint8* dst_r, 1490 uint8* dst_g, 1491 uint8* dst_b, 1492 int width); 1493 void SplitRGBRow_Any_NEON(const uint8* src_rgb, 1494 uint8* dst_r, 1495 uint8* dst_g, 1496 uint8* dst_b, 1497 int width); 1498 1499 void MergeRGBRow_C(const uint8* src_r, 1500 const uint8* src_g, 1501 const uint8* src_b, 1502 uint8* dst_rgb, 1503 int width); 1504 void MergeRGBRow_SSSE3(const uint8* src_r, 1505 const uint8* src_g, 1506 const uint8* src_b, 1507 uint8* dst_rgb, 1508 int width); 1509 void MergeRGBRow_NEON(const uint8* src_r, 1510 const uint8* src_g, 1511 const uint8* src_b, 1512 uint8* dst_rgb, 1513 int width); 1514 void MergeRGBRow_Any_SSSE3(const uint8* src_r, 1515 const uint8* src_g, 1516 const uint8* src_b, 1517 uint8* dst_rgb, 1518 int width); 1519 void MergeRGBRow_Any_NEON(const uint8* src_r, 1520 const uint8* src_g, 1521 const uint8* src_b, 1522 uint8* dst_rgb, 1523 int width); 1524 1525 void MergeUVRow_16_C(const uint16* src_u, 1526 const uint16* src_v, 1527 uint16* dst_uv, 1528 int scale, /* 64 for 10 bit */ 1529 int width); 1530 void MergeUVRow_16_AVX2(const uint16* src_u, 1531 const uint16* src_v, 1532 uint16* dst_uv, 1533 int scale, 1534 int width); 1535 1536 void MultiplyRow_16_AVX2(const uint16* src_y, 1537 uint16* dst_y, 1538 int scale, 1539 int width); 1540 void MultiplyRow_16_C(const uint16* src_y, uint16* dst_y, int scale, int width); 1541 1431 1542 void CopyRow_SSE2(const uint8* src, uint8* dst, int count); 1432 1543 void CopyRow_AVX(const uint8* src, uint8* dst, int count); … … 1455 1566 void ARGBExtractAlphaRow_AVX2(const uint8* src_argb, uint8* dst_a, int width); 1456 1567 void ARGBExtractAlphaRow_NEON(const uint8* src_argb, uint8* dst_a, int width); 1568 void ARGBExtractAlphaRow_MSA(const uint8* src_argb, uint8* dst_a, int width); 1457 1569 void ARGBExtractAlphaRow_Any_SSE2(const uint8* src_argb, 1458 1570 uint8* dst_a, … … 1464 1576 uint8* dst_a, 1465 1577 int width); 1578 void ARGBExtractAlphaRow_Any_MSA(const uint8* src_argb, 1579 uint8* dst_a, 1580 int width); 1466 1581 1467 1582 void ARGBCopyYToAlphaRow_C(const uint8* src_y, uint8* dst_argb, int width); … … 1476 1591 1477 1592 void SetRow_C(uint8* dst, uint8 v8, int count); 1593 void SetRow_MSA(uint8* dst, uint8 v8, int count); 1478 1594 void SetRow_X86(uint8* dst, uint8 v8, int count); 1479 1595 void SetRow_ERMS(uint8* dst, uint8 v8, int count); … … 2123 2239 uint8* dst_argb, 2124 2240 int width); 2241 void ARGBBlendRow_MSA(const uint8* src_argb, 2242 const uint8* src_argb1, 2243 uint8* dst_argb, 2244 int width); 2125 2245 void ARGBBlendRow_C(const uint8* src_argb, 2126 2246 const uint8* src_argb1, … … 2836 2956 const int8* matrix_argb, 2837 2957 int width); 2958 void ARGBColorMatrixRow_MSA(const uint8* src_argb, 2959 uint8* dst_argb, 2960 const int8* matrix_argb, 2961 int width); 2838 2962 2839 2963 void ARGBColorTableRow_C(uint8* dst_argb, const uint8* table_argb, int width); … … 2858 2982 int interval_offset, 2859 2983 int width); 2984 void ARGBQuantizeRow_MSA(uint8* dst_argb, 2985 int scale, 2986 int interval_size, 2987 int interval_offset, 2988 int width); 2860 2989 2861 2990 void ARGBShadeRow_C(const uint8* src_argb, … … 2991 3120 uint8* dst_sobelx, 2992 3121 int width); 3122 void SobelXRow_MSA(const uint8* src_y0, 3123 const uint8* src_y1, 3124 const uint8* src_y2, 3125 uint8* dst_sobelx, 3126 int width); 2993 3127 void SobelYRow_C(const uint8* src_y0, 2994 3128 const uint8* src_y1, … … 3003 3137 uint8* dst_sobely, 3004 3138 int width); 3139 void SobelYRow_MSA(const uint8* src_y0, 3140 const uint8* src_y1, 3141 uint8* dst_sobely, 3142 int width); 3005 3143 void SobelRow_C(const uint8* src_sobelx, 3006 3144 const uint8* src_sobely, … … 3133 3271 float scale, 3134 3272 int width); 3273 void HalfFloatRow_MSA(const uint16* src, uint16* dst, float scale, int width); 3274 void HalfFloatRow_Any_MSA(const uint16* src, 3275 uint16* dst, 3276 float scale, 3277 int width); 3135 3278 3136 3279 void ARGBLumaColorTableRow_C(const uint8* src_argb, … … 3145 3288 uint32 lumacoeff); 3146 3289 3290 float ScaleMaxSamples_C(const float* src, float* dst, float scale, int width); 3291 float ScaleMaxSamples_NEON(const float* src, 3292 float* dst, 3293 float scale, 3294 int width); 3295 float ScaleSumSamples_C(const float* src, float* dst, float scale, int width); 3296 float ScaleSumSamples_NEON(const float* src, 3297 float* dst, 3298 float scale, 3299 int width); 3300 void ScaleSamples_C(const float* src, float* dst, float scale, int width); 3301 void ScaleSamples_NEON(const float* src, float* dst, float scale, int width); 3302 3147 3303 #ifdef __cplusplus 3148 3304 } // extern "C"
Note: See TracChangeset
for help on using the changeset viewer.