| Index: source/libvpx/third_party/libyuv/include/libyuv/row.h
|
| diff --git a/source/libvpx/third_party/libyuv/include/libyuv/row.h b/source/libvpx/third_party/libyuv/include/libyuv/row.h
|
| index 80e844bae3ce4c97d058d1af7319ed0227778e07..ebae3e7195dab1fdfa1df42578b0cd8e22976173 100644
|
| --- a/source/libvpx/third_party/libyuv/include/libyuv/row.h
|
| +++ b/source/libvpx/third_party/libyuv/include/libyuv/row.h
|
| @@ -37,10 +37,8 @@ extern "C" {
|
| free(var##_mem); \
|
| var = 0
|
|
|
| -#if defined(__pnacl__) || defined(__CLR_VER) || defined(COVERAGE_ENABLED) || \
|
| - defined(TARGET_IPHONE_SIMULATOR) || \
|
| - (defined(__i386__) && !defined(__SSE2__)) || \
|
| - (defined(_MSC_VER) && defined(__clang__))
|
| +#if defined(__pnacl__) || defined(__CLR_VER) || \
|
| + (defined(__i386__) && !defined(__SSE2__))
|
| #define LIBYUV_DISABLE_X86
|
| #endif
|
| // True if compiling for SSSE3 as a requirement.
|
| @@ -48,6 +46,9 @@ extern "C" {
|
| #define LIBYUV_SSSE3_ONLY
|
| #endif
|
|
|
| +#if defined(__native_client__)
|
| +#define LIBYUV_DISABLE_NEON
|
| +#endif
|
| // clang >= 3.5.0 required for Arm64.
|
| #if defined(__clang__) && defined(__aarch64__) && !defined(LIBYUV_DISABLE_NEON)
|
| #if (__clang_major__ < 3) || (__clang_major__ == 3 && (__clang_minor__ < 5))
|
| @@ -63,11 +64,11 @@ extern "C" {
|
| #define HAS_ABGRTOYROW_SSSE3
|
| #define HAS_ARGB1555TOARGBROW_SSE2
|
| #define HAS_ARGB4444TOARGBROW_SSE2
|
| +#define HAS_ARGBSETROW_X86
|
| #define HAS_ARGBSHUFFLEROW_SSE2
|
| #define HAS_ARGBSHUFFLEROW_SSSE3
|
| #define HAS_ARGBTOARGB1555ROW_SSE2
|
| #define HAS_ARGBTOARGB4444ROW_SSE2
|
| -#define HAS_ARGBTOBAYERGGROW_SSE2
|
| #define HAS_ARGBTORAWROW_SSSE3
|
| #define HAS_ARGBTORGB24ROW_SSSE3
|
| #define HAS_ARGBTORGB565ROW_SSE2
|
| @@ -95,7 +96,8 @@ extern "C" {
|
| #define HAS_I422TOUYVYROW_SSE2
|
| #define HAS_I422TOYUY2ROW_SSE2
|
| #define HAS_I444TOARGBROW_SSSE3
|
| -// #define HAS_J422TOARGBROW_SSSE3
|
| +#define HAS_J400TOARGBROW_SSE2
|
| +#define HAS_J422TOARGBROW_SSSE3
|
| #define HAS_MERGEUVROW_SSE2
|
| #define HAS_MIRRORROW_SSE2
|
| #define HAS_MIRRORROW_SSSE3
|
| @@ -112,15 +114,13 @@ extern "C" {
|
| #define HAS_RGB565TOARGBROW_SSE2
|
| #define HAS_RGBATOUVROW_SSSE3
|
| #define HAS_RGBATOYROW_SSSE3
|
| -#define HAS_SETROW_X86
|
| #define HAS_SETROW_ERMS
|
| -#define HAS_ARGBSETROW_X86
|
| +#define HAS_SETROW_X86
|
| #define HAS_SPLITUVROW_SSE2
|
| #define HAS_UYVYTOARGBROW_SSSE3
|
| #define HAS_UYVYTOUV422ROW_SSE2
|
| #define HAS_UYVYTOUVROW_SSE2
|
| #define HAS_UYVYTOYROW_SSE2
|
| -#define HAS_YTOARGBROW_SSE2
|
| #define HAS_YUY2TOARGBROW_SSSE3
|
| #define HAS_YUY2TOUV422ROW_SSE2
|
| #define HAS_YUY2TOUVROW_SSE2
|
| @@ -157,8 +157,9 @@ extern "C" {
|
| #define HAS_SOBELYROW_SSE2
|
| #endif
|
|
|
| -// The following are available on x64 Visual C:
|
| -#if !defined(LIBYUV_DISABLE_X86) && defined (_M_X64)
|
| +// The following are available on x64 Visual C and clangcl.
|
| +#if !defined(LIBYUV_DISABLE_X86) && defined (_M_X64) && \
|
| + (!defined(__clang__) || defined(__SSSE3__))
|
| #define HAS_I422TOARGBROW_SSSE3
|
| #endif
|
|
|
| @@ -177,27 +178,31 @@ extern "C" {
|
| #endif // __clang__
|
|
|
| // Visual C 2012 required for AVX2.
|
| -#if defined(_M_IX86) && defined(_MSC_VER) && _MSC_VER >= 1700
|
| +#if defined(_M_IX86) && !defined(__clang__) && \
|
| + defined(_MSC_VER) && _MSC_VER >= 1700
|
| #define VISUALC_HAS_AVX2 1
|
| #endif // VisualStudio >= 2012
|
|
|
| // The following are available require VS2012. Port to GCC.
|
| #if !defined(LIBYUV_DISABLE_X86) && defined(VISUALC_HAS_AVX2)
|
| -// TODO(fbarchard): fix AVX2 versions of YUV conversion. bug=393
|
| -#define HAS_I422TOABGRROW_AVX2
|
| -#define HAS_I422TOARGBROW_AVX2
|
| -#define HAS_I422TOBGRAROW_AVX2
|
| -#define HAS_I422TORGBAROW_AVX2
|
| -#define HAS_NV12TOARGBROW_AVX2
|
| -#define HAS_NV21TOARGBROW_AVX2
|
| -#define HAS_ARGBTORGB565ROW_AVX2
|
| +#define HAS_ARGB1555TOARGBROW_AVX2
|
| +#define HAS_ARGB4444TOARGBROW_AVX2
|
| #define HAS_ARGBTOARGB1555ROW_AVX2
|
| #define HAS_ARGBTOARGB4444ROW_AVX2
|
| -#define HAS_NV12TORGB565ROW_AVX2
|
| -#define HAS_NV21TORGB565ROW_AVX2
|
| -#define HAS_I422TORGB565ROW_AVX2
|
| +#define HAS_ARGBTORGB565DITHERROW_AVX2
|
| +#define HAS_ARGBTORGB565DITHERROW_SSE2
|
| +#define HAS_ARGBTORGB565ROW_AVX2
|
| +#define HAS_I411TOARGBROW_AVX2
|
| #define HAS_I422TOARGB1555ROW_AVX2
|
| #define HAS_I422TOARGB4444ROW_AVX2
|
| +#define HAS_I422TORGB565ROW_AVX2
|
| +#define HAS_I444TOARGBROW_AVX2
|
| +#define HAS_J400TOARGBROW_AVX2
|
| +#define HAS_NV12TOARGBROW_AVX2
|
| +#define HAS_NV12TORGB565ROW_AVX2
|
| +#define HAS_NV21TOARGBROW_AVX2
|
| +#define HAS_NV21TORGB565ROW_AVX2
|
| +#define HAS_RGB565TOARGBROW_AVX2
|
| #endif
|
|
|
| // The following are available on all x86 platforms, but
|
| @@ -214,24 +219,27 @@ extern "C" {
|
| #define HAS_ARGBTOYJROW_AVX2
|
| #define HAS_ARGBTOYROW_AVX2
|
| #define HAS_COPYROW_AVX
|
| +#define HAS_I400TOARGBROW_AVX2
|
| +#define HAS_I422TOABGRROW_AVX2
|
| +#define HAS_I422TOARGBROW_AVX2
|
| +#define HAS_I422TOBGRAROW_AVX2
|
| +#define HAS_I422TORAWROW_AVX2
|
| +#define HAS_I422TORGB24ROW_AVX2
|
| +#define HAS_I422TORGBAROW_AVX2
|
| #define HAS_INTERPOLATEROW_AVX2
|
| +#define HAS_J422TOARGBROW_AVX2
|
| #define HAS_MERGEUVROW_AVX2
|
| #define HAS_MIRRORROW_AVX2
|
| #define HAS_SPLITUVROW_AVX2
|
| +#define HAS_UYVYTOARGBROW_AVX2
|
| #define HAS_UYVYTOUV422ROW_AVX2
|
| #define HAS_UYVYTOUVROW_AVX2
|
| #define HAS_UYVYTOYROW_AVX2
|
| -#define HAS_YTOARGBROW_AVX2
|
| +#define HAS_YUY2TOARGBROW_AVX2
|
| #define HAS_YUY2TOUV422ROW_AVX2
|
| #define HAS_YUY2TOUVROW_AVX2
|
| #define HAS_YUY2TOYROW_AVX2
|
|
|
| -// The following require HAS_I422TOARGBROW_AVX2
|
| -#if defined(HAS_I422TOARGBROW_AVX2)
|
| -#define HAS_YUY2TOARGBROW_AVX2
|
| -#define HAS_UYVYTOARGBROW_AVX2
|
| -#endif
|
| -
|
| // Effects:
|
| #define HAS_ARGBADDROW_AVX2
|
| #define HAS_ARGBATTENUATEROW_AVX2
|
| @@ -240,22 +248,6 @@ extern "C" {
|
| #define HAS_ARGBUNATTENUATEROW_AVX2
|
| #endif
|
|
|
| -
|
| -// The following are Yasm x86 only:
|
| -// TODO(fbarchard): Port AVX2 to inline.
|
| -#if !defined(LIBYUV_DISABLE_X86) && defined(HAVE_YASM)
|
| - (defined(_M_IX86) || defined(_M_X64) || \
|
| - defined(__x86_64__) || defined(__i386__))
|
| -#define HAS_MERGEUVROW_AVX2
|
| -#define HAS_MERGEUVROW_MMX
|
| -#define HAS_SPLITUVROW_AVX2
|
| -#define HAS_SPLITUVROW_MMX
|
| -#define HAS_UYVYTOYROW_AVX2
|
| -#define HAS_UYVYTOYROW_MMX
|
| -#define HAS_YUY2TOYROW_AVX2
|
| -#define HAS_YUY2TOYROW_MMX
|
| -#endif
|
| -
|
| // The following are disabled when SSSE3 is available:
|
| #if !defined(LIBYUV_DISABLE_X86) && \
|
| (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) && \
|
| @@ -278,7 +270,6 @@ extern "C" {
|
| #define HAS_ARGB4444TOYROW_NEON
|
| #define HAS_ARGBTOARGB1555ROW_NEON
|
| #define HAS_ARGBTOARGB4444ROW_NEON
|
| -#define HAS_ARGBTOBAYERGGROW_NEON
|
| #define HAS_ARGBTORAWROW_NEON
|
| #define HAS_ARGBTORGB24ROW_NEON
|
| #define HAS_ARGBTORGB565ROW_NEON
|
| @@ -292,7 +283,7 @@ extern "C" {
|
| #define HAS_BGRATOUVROW_NEON
|
| #define HAS_BGRATOYROW_NEON
|
| #define HAS_COPYROW_NEON
|
| -#define HAS_I400TOARGBROW_NEON
|
| +#define HAS_J400TOARGBROW_NEON
|
| #define HAS_I411TOARGBROW_NEON
|
| #define HAS_I422TOABGRROW_NEON
|
| #define HAS_I422TOARGB1555ROW_NEON
|
| @@ -331,11 +322,12 @@ extern "C" {
|
| #define HAS_UYVYTOUV422ROW_NEON
|
| #define HAS_UYVYTOUVROW_NEON
|
| #define HAS_UYVYTOYROW_NEON
|
| -#define HAS_YTOARGBROW_NEON
|
| +#define HAS_I400TOARGBROW_NEON
|
| #define HAS_YUY2TOARGBROW_NEON
|
| #define HAS_YUY2TOUV422ROW_NEON
|
| #define HAS_YUY2TOUVROW_NEON
|
| #define HAS_YUY2TOYROW_NEON
|
| +#define HAS_ARGBTORGB565DITHERROW_NEON
|
|
|
| // Effects:
|
| #define HAS_ARGBADDROW_NEON
|
| @@ -388,7 +380,6 @@ typedef __declspec(align(32)) int8 lvec8[32];
|
| typedef __declspec(align(32)) uint16 ulvec16[16];
|
| typedef __declspec(align(32)) uint32 ulvec32[8];
|
| typedef __declspec(align(32)) uint8 ulvec8[32];
|
| -
|
| #elif defined(__GNUC__)
|
| // Caveat GCC 4.2 to 4.7 have a known issue using vectors with const.
|
| #define SIMD_ALIGNED(var) var __attribute__((aligned(16)))
|
| @@ -869,6 +860,11 @@ void ARGB1555ToARGBRow_SSE2(const uint8* src_argb1555, uint8* dst_argb,
|
| int pix);
|
| void ARGB4444ToARGBRow_SSE2(const uint8* src_argb4444, uint8* dst_argb,
|
| int pix);
|
| +void RGB565ToARGBRow_AVX2(const uint8* src_rgb565, uint8* dst_argb, int pix);
|
| +void ARGB1555ToARGBRow_AVX2(const uint8* src_argb1555, uint8* dst_argb,
|
| + int pix);
|
| +void ARGB4444ToARGBRow_AVX2(const uint8* src_argb4444, uint8* dst_argb,
|
| + int pix);
|
|
|
| void RGB24ToARGBRow_NEON(const uint8* src_rgb24, uint8* dst_argb, int pix);
|
| void RAWToARGBRow_NEON(const uint8* src_raw, uint8* dst_argb, int pix);
|
| @@ -884,12 +880,20 @@ void ARGB1555ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int pix);
|
| void ARGB4444ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int pix);
|
| void RGB24ToARGBRow_Any_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix);
|
| void RAWToARGBRow_Any_SSSE3(const uint8* src_raw, uint8* dst_argb, int pix);
|
| +
|
| void RGB565ToARGBRow_Any_SSE2(const uint8* src_rgb565, uint8* dst_argb,
|
| int pix);
|
| void ARGB1555ToARGBRow_Any_SSE2(const uint8* src_argb1555, uint8* dst_argb,
|
| int pix);
|
| void ARGB4444ToARGBRow_Any_SSE2(const uint8* src_argb4444, uint8* dst_argb,
|
| int pix);
|
| +void RGB565ToARGBRow_Any_AVX2(const uint8* src_rgb565, uint8* dst_argb,
|
| + int pix);
|
| +void ARGB1555ToARGBRow_Any_AVX2(const uint8* src_argb1555, uint8* dst_argb,
|
| + int pix);
|
| +void ARGB4444ToARGBRow_Any_AVX2(const uint8* src_argb4444, uint8* dst_argb,
|
| + int pix);
|
| +
|
| void RGB24ToARGBRow_Any_NEON(const uint8* src_rgb24, uint8* dst_argb, int pix);
|
| void RAWToARGBRow_Any_NEON(const uint8* src_raw, uint8* dst_argb, int pix);
|
| void RGB565ToARGBRow_Any_NEON(const uint8* src_rgb565, uint8* dst_argb,
|
| @@ -905,6 +909,13 @@ void ARGBToRGB565Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToARGB1555Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToARGB4444Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix);
|
|
|
| +void ARGBToRGB565DitherRow_C(const uint8* src_argb, uint8* dst_rgb,
|
| + const uint32 dither4, int pix);
|
| +void ARGBToRGB565DitherRow_SSE2(const uint8* src_argb, uint8* dst_rgb,
|
| + const uint32 dither4, int pix);
|
| +void ARGBToRGB565DitherRow_AVX2(const uint8* src_argb, uint8* dst_rgb,
|
| + const uint32 dither4, int pix);
|
| +
|
| void ARGBToRGB565Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToARGB1555Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToARGB4444Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| @@ -914,6 +925,8 @@ void ARGBToRAWRow_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToRGB565Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToARGB1555Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToARGB4444Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| +void ARGBToRGB565DitherRow_NEON(const uint8* src_argb, uint8* dst_rgb,
|
| + const uint32 dither4, int width);
|
|
|
| void ARGBToRGBARow_C(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToRGB24Row_C(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| @@ -922,14 +935,13 @@ void ARGBToRGB565Row_C(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToARGB1555Row_C(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToARGB4444Row_C(const uint8* src_argb, uint8* dst_rgb, int pix);
|
|
|
| -void ARGBToRGB565DitherRow_C(const uint8* src_argb, uint8* dst_rgb,
|
| - const uint8* dither8x8, int pix);
|
| -
|
| -void I400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int pix);
|
| -void I400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int pix);
|
| -void I400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int pix);
|
| -void I400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int pix);
|
| -void I400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int pix);
|
| +void J400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int pix);
|
| +void J400ToARGBRow_AVX2(const uint8* src_y, uint8* dst_argb, int pix);
|
| +void J400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int pix);
|
| +void J400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int pix);
|
| +void J400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int pix);
|
| +void J400ToARGBRow_Any_AVX2(const uint8* src_y, uint8* dst_argb, int pix);
|
| +void J400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int pix);
|
|
|
| void I444ToARGBRow_C(const uint8* src_y,
|
| const uint8* src_u,
|
| @@ -1038,6 +1050,11 @@ void I444ToARGBRow_SSSE3(const uint8* src_y,
|
| const uint8* src_v,
|
| uint8* dst_argb,
|
| int width);
|
| +void I444ToARGBRow_AVX2(const uint8* src_y,
|
| + const uint8* src_u,
|
| + const uint8* src_v,
|
| + uint8* dst_argb,
|
| + int width);
|
| void I422ToARGBRow_SSSE3(const uint8* src_y,
|
| const uint8* src_u,
|
| const uint8* src_v,
|
| @@ -1048,6 +1065,11 @@ void I411ToARGBRow_SSSE3(const uint8* src_y,
|
| const uint8* src_v,
|
| uint8* dst_argb,
|
| int width);
|
| +void I411ToARGBRow_AVX2(const uint8* src_y,
|
| + const uint8* src_u,
|
| + const uint8* src_v,
|
| + uint8* dst_argb,
|
| + int width);
|
| void NV12ToARGBRow_SSSE3(const uint8* src_y,
|
| const uint8* src_uv,
|
| uint8* dst_argb,
|
| @@ -1097,6 +1119,11 @@ void J422ToARGBRow_SSSE3(const uint8* src_y,
|
| const uint8* src_v,
|
| uint8* dst_argb,
|
| int width);
|
| +void J422ToARGBRow_AVX2(const uint8* src_y,
|
| + const uint8* src_u,
|
| + const uint8* src_v,
|
| + uint8* dst_argb,
|
| + int width);
|
| void I422ToBGRARow_SSSE3(const uint8* src_y,
|
| const uint8* src_u,
|
| const uint8* src_v,
|
| @@ -1147,11 +1174,21 @@ void I422ToRGB24Row_SSSE3(const uint8* src_y,
|
| const uint8* src_v,
|
| uint8* dst_rgb24,
|
| int width);
|
| +void I422ToRGB24Row_AVX2(const uint8* src_y,
|
| + const uint8* src_u,
|
| + const uint8* src_v,
|
| + uint8* dst_rgb24,
|
| + int width);
|
| void I422ToRAWRow_SSSE3(const uint8* src_y,
|
| const uint8* src_u,
|
| const uint8* src_v,
|
| uint8* dst_raw,
|
| int width);
|
| +void I422ToRAWRow_AVX2(const uint8* src_y,
|
| + const uint8* src_u,
|
| + const uint8* src_v,
|
| + uint8* dst_raw,
|
| + int width);
|
| void I422ToARGBRow_Any_AVX2(const uint8* src_y,
|
| const uint8* src_u,
|
| const uint8* src_v,
|
| @@ -1177,6 +1214,11 @@ void I444ToARGBRow_Any_SSSE3(const uint8* src_y,
|
| const uint8* src_v,
|
| uint8* dst_argb,
|
| int width);
|
| +void I444ToARGBRow_Any_AVX2(const uint8* src_y,
|
| + const uint8* src_u,
|
| + const uint8* src_v,
|
| + uint8* dst_argb,
|
| + int width);
|
| void I422ToARGBRow_Any_SSSE3(const uint8* src_y,
|
| const uint8* src_u,
|
| const uint8* src_v,
|
| @@ -1187,6 +1229,11 @@ void I411ToARGBRow_Any_SSSE3(const uint8* src_y,
|
| const uint8* src_v,
|
| uint8* dst_argb,
|
| int width);
|
| +void I411ToARGBRow_Any_AVX2(const uint8* src_y,
|
| + const uint8* src_u,
|
| + const uint8* src_v,
|
| + uint8* dst_argb,
|
| + int width);
|
| void NV12ToARGBRow_Any_SSSE3(const uint8* src_y,
|
| const uint8* src_uv,
|
| uint8* dst_argb,
|
| @@ -1231,6 +1278,16 @@ void YUY2ToARGBRow_Any_AVX2(const uint8* src_yuy2,
|
| void UYVYToARGBRow_Any_AVX2(const uint8* src_uyvy,
|
| uint8* dst_argb,
|
| int width);
|
| +void J422ToARGBRow_Any_SSSE3(const uint8* src_y,
|
| + const uint8* src_u,
|
| + const uint8* src_v,
|
| + uint8* dst_argb,
|
| + int width);
|
| +void J422ToARGBRow_Any_AVX2(const uint8* src_y,
|
| + const uint8* src_u,
|
| + const uint8* src_v,
|
| + uint8* dst_argb,
|
| + int width);
|
| void I422ToBGRARow_Any_SSSE3(const uint8* src_y,
|
| const uint8* src_u,
|
| const uint8* src_v,
|
| @@ -1281,33 +1338,29 @@ void I422ToRGB24Row_Any_SSSE3(const uint8* src_y,
|
| const uint8* src_v,
|
| uint8* dst_argb,
|
| int width);
|
| +void I422ToRGB24Row_Any_AVX2(const uint8* src_y,
|
| + const uint8* src_u,
|
| + const uint8* src_v,
|
| + uint8* dst_argb,
|
| + int width);
|
| void I422ToRAWRow_Any_SSSE3(const uint8* src_y,
|
| const uint8* src_u,
|
| const uint8* src_v,
|
| uint8* dst_argb,
|
| int width);
|
| +void I422ToRAWRow_Any_AVX2(const uint8* src_y,
|
| + const uint8* src_u,
|
| + const uint8* src_v,
|
| + uint8* dst_argb,
|
| + int width);
|
|
|
| -void YToARGBRow_C(const uint8* src_y,
|
| - uint8* dst_argb,
|
| - int width);
|
| -void YToARGBRow_SSE2(const uint8* src_y,
|
| - uint8* dst_argb,
|
| - int width);
|
| -void YToARGBRow_AVX2(const uint8* src_y,
|
| - uint8* dst_argb,
|
| - int width);
|
| -void YToARGBRow_NEON(const uint8* src_y,
|
| - uint8* dst_argb,
|
| - int width);
|
| -void YToARGBRow_Any_SSE2(const uint8* src_y,
|
| - uint8* dst_argb,
|
| - int width);
|
| -void YToARGBRow_Any_AVX2(const uint8* src_y,
|
| - uint8* dst_argb,
|
| - int width);
|
| -void YToARGBRow_Any_NEON(const uint8* src_y,
|
| - uint8* dst_argb,
|
| - int width);
|
| +void I400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int width);
|
| +void I400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int width);
|
| +void I400ToARGBRow_AVX2(const uint8* src_y, uint8* dst_argb, int width);
|
| +void I400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int width);
|
| +void I400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int width);
|
| +void I400ToARGBRow_Any_AVX2(const uint8* src_y, uint8* dst_argb, int width);
|
| +void I400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int width);
|
|
|
| // ARGB preattenuated alpha blend.
|
| void ARGBBlendRow_SSSE3(const uint8* src_argb, const uint8* src_argb1,
|
| @@ -1375,6 +1428,11 @@ void ARGBToRGB565Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToARGB1555Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToARGB4444Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix);
|
|
|
| +void ARGBToRGB565DitherRow_Any_SSE2(const uint8* src_argb, uint8* dst_rgb,
|
| + const uint32 dither4, int pix);
|
| +void ARGBToRGB565DitherRow_Any_AVX2(const uint8* src_argb, uint8* dst_rgb,
|
| + const uint32 dither4, int pix);
|
| +
|
| void ARGBToRGB565Row_Any_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToARGB1555Row_Any_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToARGB4444Row_Any_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| @@ -1384,6 +1442,8 @@ void ARGBToRAWRow_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToRGB565Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToARGB1555Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| void ARGBToARGB4444Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
|
| +void ARGBToRGB565DitherRow_Any_NEON(const uint8* src_argb, uint8* dst_rgb,
|
| + const uint32 dither4, int width);
|
|
|
| void I444ToARGBRow_Any_NEON(const uint8* src_y,
|
| const uint8* src_u,
|
| @@ -1570,17 +1630,6 @@ void UYVYToUVRow_Any_NEON(const uint8* src_uyvy, int stride_uyvy,
|
| void UYVYToUV422Row_Any_NEON(const uint8* src_uyvy,
|
| uint8* dst_u, uint8* dst_v, int pix);
|
|
|
| -void ARGBToBayerGGRow_C(const uint8* src_argb, uint8* dst_bayer,
|
| - uint32 /* selector */, int pix);
|
| -void ARGBToBayerGGRow_SSE2(const uint8* src_argb, uint8* dst_bayer,
|
| - uint32 /* selector */, int pix);
|
| -void ARGBToBayerGGRow_NEON(const uint8* src_argb, uint8* dst_bayer,
|
| - uint32 /* selector */, int pix);
|
| -void ARGBToBayerGGRow_Any_SSE2(const uint8* src_argb, uint8* dst_bayer,
|
| - uint32 /* selector */, int pix);
|
| -void ARGBToBayerGGRow_Any_NEON(const uint8* src_argb, uint8* dst_bayer,
|
| - uint32 /* selector */, int pix);
|
| -
|
| void I422ToYUY2Row_C(const uint8* src_y,
|
| const uint8* src_u,
|
| const uint8* src_v,
|
| @@ -1770,6 +1819,18 @@ void SobelXYRow_SSE2(const uint8* src_sobelx, const uint8* src_sobely,
|
| uint8* dst_argb, int width);
|
| void SobelXYRow_NEON(const uint8* src_sobelx, const uint8* src_sobely,
|
| uint8* dst_argb, int width);
|
| +void SobelRow_Any_SSE2(const uint8* src_sobelx, const uint8* src_sobely,
|
| + uint8* dst_argb, int width);
|
| +void SobelRow_Any_NEON(const uint8* src_sobelx, const uint8* src_sobely,
|
| + uint8* dst_argb, int width);
|
| +void SobelToPlaneRow_Any_SSE2(const uint8* src_sobelx, const uint8* src_sobely,
|
| + uint8* dst_y, int width);
|
| +void SobelToPlaneRow_Any_NEON(const uint8* src_sobelx, const uint8* src_sobely,
|
| + uint8* dst_y, int width);
|
| +void SobelXYRow_Any_SSE2(const uint8* src_sobelx, const uint8* src_sobely,
|
| + uint8* dst_argb, int width);
|
| +void SobelXYRow_Any_NEON(const uint8* src_sobelx, const uint8* src_sobely,
|
| + uint8* dst_argb, int width);
|
|
|
| void ARGBPolynomialRow_C(const uint8* src_argb,
|
| uint8* dst_argb, const float* poly,
|
|
|