| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 The LibYuv Project Authors. All rights reserved. | 2 * Copyright 2011 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 |
| 11 #ifndef INCLUDE_LIBYUV_ROW_H_ // NOLINT | 11 #ifndef INCLUDE_LIBYUV_ROW_H_ // NOLINT |
| 12 #define INCLUDE_LIBYUV_ROW_H_ | 12 #define INCLUDE_LIBYUV_ROW_H_ |
| 13 | 13 |
| 14 #include <stdlib.h> // For malloc. | 14 #include <stdlib.h> // For malloc. |
| 15 | 15 |
| 16 #include "libyuv/basic_types.h" | 16 #include "libyuv/basic_types.h" |
| 17 | 17 |
| 18 #if defined(__native_client__) | |
| 19 #include "ppapi/c/pp_macros.h" // For PPAPI_RELEASE | |
| 20 #endif | |
| 21 | |
| 22 #ifdef __cplusplus | 18 #ifdef __cplusplus |
| 23 namespace libyuv { | 19 namespace libyuv { |
| 24 extern "C" { | 20 extern "C" { |
| 25 #endif | 21 #endif |
| 26 | 22 |
| 27 #define IS_ALIGNED(p, a) (!((uintptr_t)(p) & ((a) - 1))) | 23 #define IS_ALIGNED(p, a) (!((uintptr_t)(p) & ((a) - 1))) |
| 28 | 24 |
| 29 #ifdef __cplusplus | 25 #ifdef __cplusplus |
| 30 #define align_buffer_64(var, size) \ | 26 #define align_buffer_64(var, size) \ |
| 31 uint8* var##_mem = reinterpret_cast<uint8*>(malloc((size) + 63)); \ | 27 uint8* var##_mem = reinterpret_cast<uint8*>(malloc((size) + 63)); \ |
| 32 uint8* var = reinterpret_cast<uint8*> \ | 28 uint8* var = reinterpret_cast<uint8*> \ |
| 33 ((reinterpret_cast<intptr_t>(var##_mem) + 63) & ~63) | 29 ((reinterpret_cast<intptr_t>(var##_mem) + 63) & ~63) |
| 34 #else | 30 #else |
| 35 #define align_buffer_64(var, size) \ | 31 #define align_buffer_64(var, size) \ |
| 36 uint8* var##_mem = (uint8*)(malloc((size) + 63)); /* NOLINT */ \ | 32 uint8* var##_mem = (uint8*)(malloc((size) + 63)); /* NOLINT */ \ |
| 37 uint8* var = (uint8*)(((intptr_t)(var##_mem) + 63) & ~63) /* NOLINT */ | 33 uint8* var = (uint8*)(((intptr_t)(var##_mem) + 63) & ~63) /* NOLINT */ |
| 38 #endif | 34 #endif |
| 39 | 35 |
| 40 #define free_aligned_buffer_64(var) \ | 36 #define free_aligned_buffer_64(var) \ |
| 41 free(var##_mem); \ | 37 free(var##_mem); \ |
| 42 var = 0 | 38 var = 0 |
| 43 | 39 |
| 44 #if defined(__pnacl__) || defined(__CLR_VER) || defined(COVERAGE_ENABLED) || \ | 40 #if defined(__pnacl__) || defined(__CLR_VER) || defined(COVERAGE_ENABLED) || \ |
| 45 defined(TARGET_IPHONE_SIMULATOR) || \ | 41 defined(TARGET_IPHONE_SIMULATOR) || \ |
| 42 (defined(__i386__) && !defined(__SSE2__)) || \ |
| 46 (defined(_MSC_VER) && defined(__clang__)) | 43 (defined(_MSC_VER) && defined(__clang__)) |
| 47 #define LIBYUV_DISABLE_X86 | 44 #define LIBYUV_DISABLE_X86 |
| 48 #endif | 45 #endif |
| 49 // True if compiling for SSSE3 as a requirement. | 46 // True if compiling for SSSE3 as a requirement. |
| 50 #if defined(__SSSE3__) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 3)) | 47 #if defined(__SSSE3__) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 3)) |
| 51 #define LIBYUV_SSSE3_ONLY | 48 #define LIBYUV_SSSE3_ONLY |
| 52 #endif | 49 #endif |
| 53 | 50 |
| 54 // Enable for NaCL pepper 33 for bundle and AVX2 support. | 51 // clang >= 3.5.0 required for Arm64. |
| 55 #if defined(__native_client__) && PPAPI_RELEASE >= 33 | 52 #if defined(__clang__) && defined(__aarch64__) && !defined(LIBYUV_DISABLE_NEON) |
| 56 #define NEW_BINUTILS | 53 #if (__clang_major__ < 3) || (__clang_major__ == 3 && (__clang_minor__ < 5)) |
| 57 #endif | |
| 58 #if defined(__native_client__) && defined(__arm__) && PPAPI_RELEASE < 37 | |
| 59 #define LIBYUV_DISABLE_NEON | 54 #define LIBYUV_DISABLE_NEON |
| 60 #endif | 55 #endif // clang >= 3.5 |
| 56 #endif // __clang__ |
| 61 | 57 |
| 62 // The following are available on all x86 platforms: | 58 // The following are available on all x86 platforms: |
| 63 #if !defined(LIBYUV_DISABLE_X86) && \ | 59 #if !defined(LIBYUV_DISABLE_X86) && \ |
| 64 (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) | 60 (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) |
| 65 // Effects: | |
| 66 #define HAS_ARGBADDROW_SSE2 | |
| 67 #define HAS_ARGBAFFINEROW_SSE2 | |
| 68 #define HAS_ARGBATTENUATEROW_SSSE3 | |
| 69 #define HAS_ARGBBLENDROW_SSSE3 | |
| 70 #define HAS_ARGBCOLORMATRIXROW_SSSE3 | |
| 71 #define HAS_ARGBCOLORTABLEROW_X86 | |
| 72 #define HAS_ARGBCOPYALPHAROW_SSE2 | |
| 73 #define HAS_ARGBCOPYYTOALPHAROW_SSE2 | |
| 74 #define HAS_ARGBGRAYROW_SSSE3 | |
| 75 #define HAS_ARGBLUMACOLORTABLEROW_SSSE3 | |
| 76 #define HAS_ARGBMIRRORROW_SSSE3 | |
| 77 #define HAS_ARGBMULTIPLYROW_SSE2 | |
| 78 #define HAS_ARGBPOLYNOMIALROW_SSE2 | |
| 79 #define HAS_ARGBQUANTIZEROW_SSE2 | |
| 80 #define HAS_ARGBSEPIAROW_SSSE3 | |
| 81 #define HAS_ARGBSHADEROW_SSE2 | |
| 82 #define HAS_ARGBSUBTRACTROW_SSE2 | |
| 83 #define HAS_ARGBTOUVROW_SSSE3 | |
| 84 #define HAS_ARGBUNATTENUATEROW_SSE2 | |
| 85 #define HAS_COMPUTECUMULATIVESUMROW_SSE2 | |
| 86 #define HAS_CUMULATIVESUMTOAVERAGEROW_SSE2 | |
| 87 #define HAS_INTERPOLATEROW_SSE2 | |
| 88 #define HAS_INTERPOLATEROW_SSSE3 | |
| 89 #define HAS_RGBCOLORTABLEROW_X86 | |
| 90 #define HAS_SOBELROW_SSE2 | |
| 91 #define HAS_SOBELTOPLANEROW_SSE2 | |
| 92 #define HAS_SOBELXROW_SSE2 | |
| 93 #define HAS_SOBELXYROW_SSE2 | |
| 94 #define HAS_SOBELYROW_SSE2 | |
| 95 | |
| 96 // Conversions: | 61 // Conversions: |
| 97 #define HAS_ABGRTOUVROW_SSSE3 | 62 #define HAS_ABGRTOUVROW_SSSE3 |
| 98 #define HAS_ABGRTOYROW_SSSE3 | 63 #define HAS_ABGRTOYROW_SSSE3 |
| 99 #define HAS_ARGB1555TOARGBROW_SSE2 | 64 #define HAS_ARGB1555TOARGBROW_SSE2 |
| 100 #define HAS_ARGB4444TOARGBROW_SSE2 | 65 #define HAS_ARGB4444TOARGBROW_SSE2 |
| 101 #define HAS_ARGBSHUFFLEROW_SSE2 | 66 #define HAS_ARGBSHUFFLEROW_SSE2 |
| 102 #define HAS_ARGBSHUFFLEROW_SSSE3 | 67 #define HAS_ARGBSHUFFLEROW_SSSE3 |
| 103 #define HAS_ARGBTOARGB1555ROW_SSE2 | 68 #define HAS_ARGBTOARGB1555ROW_SSE2 |
| 104 #define HAS_ARGBTOARGB4444ROW_SSE2 | 69 #define HAS_ARGBTOARGB4444ROW_SSE2 |
| 105 #define HAS_ARGBTOBAYERGGROW_SSE2 | 70 #define HAS_ARGBTOBAYERGGROW_SSE2 |
| 106 #define HAS_ARGBTOBAYERROW_SSSE3 | |
| 107 #define HAS_ARGBTORAWROW_SSSE3 | 71 #define HAS_ARGBTORAWROW_SSSE3 |
| 108 #define HAS_ARGBTORGB24ROW_SSSE3 | 72 #define HAS_ARGBTORGB24ROW_SSSE3 |
| 109 #define HAS_ARGBTORGB565ROW_SSE2 | 73 #define HAS_ARGBTORGB565ROW_SSE2 |
| 110 #define HAS_ARGBTOUV422ROW_SSSE3 | 74 #define HAS_ARGBTOUV422ROW_SSSE3 |
| 111 #define HAS_ARGBTOUV444ROW_SSSE3 | 75 #define HAS_ARGBTOUV444ROW_SSSE3 |
| 112 #define HAS_ARGBTOUVJROW_SSSE3 | 76 #define HAS_ARGBTOUVJROW_SSSE3 |
| 77 #define HAS_ARGBTOUVROW_SSSE3 |
| 113 #define HAS_ARGBTOYJROW_SSSE3 | 78 #define HAS_ARGBTOYJROW_SSSE3 |
| 114 #define HAS_ARGBTOYROW_SSSE3 | 79 #define HAS_ARGBTOYROW_SSSE3 |
| 115 #define HAS_BGRATOUVROW_SSSE3 | 80 #define HAS_BGRATOUVROW_SSSE3 |
| 116 #define HAS_BGRATOYROW_SSSE3 | 81 #define HAS_BGRATOYROW_SSSE3 |
| 117 #define HAS_COPYROW_ERMS | 82 #define HAS_COPYROW_ERMS |
| 118 #define HAS_COPYROW_SSE2 | 83 #define HAS_COPYROW_SSE2 |
| 119 #define HAS_COPYROW_X86 | |
| 120 #define HAS_HALFROW_SSE2 | |
| 121 #define HAS_I400TOARGBROW_SSE2 | 84 #define HAS_I400TOARGBROW_SSE2 |
| 122 #define HAS_I411TOARGBROW_SSSE3 | 85 #define HAS_I411TOARGBROW_SSSE3 |
| 123 #define HAS_I422TOARGB1555ROW_SSSE3 | |
| 124 #define HAS_I422TOABGRROW_SSSE3 | 86 #define HAS_I422TOABGRROW_SSSE3 |
| 125 #define HAS_I422TOARGB1555ROW_SSSE3 | 87 #define HAS_I422TOARGB1555ROW_SSSE3 |
| 126 #define HAS_I422TOARGB4444ROW_SSSE3 | 88 #define HAS_I422TOARGB4444ROW_SSSE3 |
| 127 #define HAS_I422TOARGBROW_SSSE3 | 89 #define HAS_I422TOARGBROW_SSSE3 |
| 128 #define HAS_I422TOBGRAROW_SSSE3 | 90 #define HAS_I422TOBGRAROW_SSSE3 |
| 129 #define HAS_I422TORAWROW_SSSE3 | 91 #define HAS_I422TORAWROW_SSSE3 |
| 130 #define HAS_I422TORGB24ROW_SSSE3 | 92 #define HAS_I422TORGB24ROW_SSSE3 |
| 131 #define HAS_I422TORGB565ROW_SSSE3 | 93 #define HAS_I422TORGB565ROW_SSSE3 |
| 132 #define HAS_I422TORGBAROW_SSSE3 | 94 #define HAS_I422TORGBAROW_SSSE3 |
| 133 #define HAS_I422TOUYVYROW_SSE2 | 95 #define HAS_I422TOUYVYROW_SSE2 |
| 134 #define HAS_I422TOYUY2ROW_SSE2 | 96 #define HAS_I422TOYUY2ROW_SSE2 |
| 135 #define HAS_I444TOARGBROW_SSSE3 | 97 #define HAS_I444TOARGBROW_SSSE3 |
| 98 // #define HAS_J422TOARGBROW_SSSE3 |
| 136 #define HAS_MERGEUVROW_SSE2 | 99 #define HAS_MERGEUVROW_SSE2 |
| 137 #define HAS_MIRRORROW_SSE2 | 100 #define HAS_MIRRORROW_SSE2 |
| 138 #define HAS_MIRRORROW_SSSE3 | 101 #define HAS_MIRRORROW_SSSE3 |
| 139 #define HAS_MIRRORROW_UV_SSSE3 | 102 #define HAS_MIRRORROW_UV_SSSE3 |
| 140 #define HAS_MIRRORUVROW_SSSE3 | 103 #define HAS_MIRRORUVROW_SSSE3 |
| 141 #define HAS_NV12TOARGBROW_SSSE3 | 104 #define HAS_NV12TOARGBROW_SSSE3 |
| 142 #define HAS_NV12TORGB565ROW_SSSE3 | 105 #define HAS_NV12TORGB565ROW_SSSE3 |
| 143 #define HAS_NV21TOARGBROW_SSSE3 | 106 #define HAS_NV21TOARGBROW_SSSE3 |
| 144 #define HAS_NV21TORGB565ROW_SSSE3 | 107 #define HAS_NV21TORGB565ROW_SSSE3 |
| 145 #define HAS_RAWTOARGBROW_SSSE3 | 108 #define HAS_RAWTOARGBROW_SSSE3 |
| 146 #define HAS_RAWTOYROW_SSSE3 | 109 #define HAS_RAWTOYROW_SSSE3 |
| 147 #define HAS_RGB24TOARGBROW_SSSE3 | 110 #define HAS_RGB24TOARGBROW_SSSE3 |
| 148 #define HAS_RGB24TOYROW_SSSE3 | 111 #define HAS_RGB24TOYROW_SSSE3 |
| 149 #define HAS_RGB565TOARGBROW_SSE2 | 112 #define HAS_RGB565TOARGBROW_SSE2 |
| 150 #define HAS_RGBATOUVROW_SSSE3 | 113 #define HAS_RGBATOUVROW_SSSE3 |
| 151 #define HAS_RGBATOYROW_SSSE3 | 114 #define HAS_RGBATOYROW_SSSE3 |
| 152 #define HAS_SETROW_X86 | 115 #define HAS_SETROW_X86 |
| 116 #define HAS_SETROW_ERMS |
| 117 #define HAS_ARGBSETROW_X86 |
| 153 #define HAS_SPLITUVROW_SSE2 | 118 #define HAS_SPLITUVROW_SSE2 |
| 154 #define HAS_UYVYTOARGBROW_SSSE3 | 119 #define HAS_UYVYTOARGBROW_SSSE3 |
| 155 #define HAS_UYVYTOUV422ROW_SSE2 | 120 #define HAS_UYVYTOUV422ROW_SSE2 |
| 156 #define HAS_UYVYTOUVROW_SSE2 | 121 #define HAS_UYVYTOUVROW_SSE2 |
| 157 #define HAS_UYVYTOYROW_SSE2 | 122 #define HAS_UYVYTOYROW_SSE2 |
| 158 #define HAS_YTOARGBROW_SSE2 | 123 #define HAS_YTOARGBROW_SSE2 |
| 159 #define HAS_YUY2TOARGBROW_SSSE3 | 124 #define HAS_YUY2TOARGBROW_SSSE3 |
| 160 #define HAS_YUY2TOUV422ROW_SSE2 | 125 #define HAS_YUY2TOUV422ROW_SSE2 |
| 161 #define HAS_YUY2TOUVROW_SSE2 | 126 #define HAS_YUY2TOUVROW_SSE2 |
| 162 #define HAS_YUY2TOYROW_SSE2 | 127 #define HAS_YUY2TOYROW_SSE2 |
| 128 |
| 129 // Effects: |
| 130 #define HAS_ARGBADDROW_SSE2 |
| 131 #define HAS_ARGBAFFINEROW_SSE2 |
| 132 #define HAS_ARGBATTENUATEROW_SSSE3 |
| 133 #define HAS_ARGBBLENDROW_SSSE3 |
| 134 #define HAS_ARGBCOLORMATRIXROW_SSSE3 |
| 135 #define HAS_ARGBCOLORTABLEROW_X86 |
| 136 #define HAS_ARGBCOPYALPHAROW_SSE2 |
| 137 #define HAS_ARGBCOPYYTOALPHAROW_SSE2 |
| 138 #define HAS_ARGBGRAYROW_SSSE3 |
| 139 #define HAS_ARGBLUMACOLORTABLEROW_SSSE3 |
| 140 #define HAS_ARGBMIRRORROW_SSE2 |
| 141 #define HAS_ARGBMULTIPLYROW_SSE2 |
| 142 #define HAS_ARGBPOLYNOMIALROW_SSE2 |
| 143 #define HAS_ARGBQUANTIZEROW_SSE2 |
| 144 #define HAS_ARGBSEPIAROW_SSSE3 |
| 145 #define HAS_ARGBSHADEROW_SSE2 |
| 146 #define HAS_ARGBSUBTRACTROW_SSE2 |
| 147 #define HAS_ARGBUNATTENUATEROW_SSE2 |
| 148 #define HAS_COMPUTECUMULATIVESUMROW_SSE2 |
| 149 #define HAS_CUMULATIVESUMTOAVERAGEROW_SSE2 |
| 150 #define HAS_INTERPOLATEROW_SSE2 |
| 151 #define HAS_INTERPOLATEROW_SSSE3 |
| 152 #define HAS_RGBCOLORTABLEROW_X86 |
| 153 #define HAS_SOBELROW_SSE2 |
| 154 #define HAS_SOBELTOPLANEROW_SSE2 |
| 155 #define HAS_SOBELXROW_SSE2 |
| 156 #define HAS_SOBELXYROW_SSE2 |
| 157 #define HAS_SOBELYROW_SSE2 |
| 163 #endif | 158 #endif |
| 164 | 159 |
| 165 // The following are available on x64 Visual C: | 160 // The following are available on x64 Visual C: |
| 166 #if !defined(LIBYUV_DISABLE_X86) && defined (_M_X64) | 161 #if !defined(LIBYUV_DISABLE_X86) && defined (_M_X64) |
| 167 #define HAS_I422TOARGBROW_SSSE3 | 162 #define HAS_I422TOARGBROW_SSSE3 |
| 168 #endif | 163 #endif |
| 169 | 164 |
| 170 // GCC >= 4.7.0 required for AVX2. | 165 // GCC >= 4.7.0 required for AVX2. |
| 171 #if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__)) | 166 #if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__)) |
| 172 #if (__GNUC__ > 4) || (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7)) | 167 #if (__GNUC__ > 4) || (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7)) |
| 173 #define GCC_HAS_AVX2 1 | 168 #define GCC_HAS_AVX2 1 |
| 174 #endif // GNUC >= 4.7 | 169 #endif // GNUC >= 4.7 |
| 175 #endif // __GNUC__ | 170 #endif // __GNUC__ |
| 176 | 171 |
| 177 // clang >= 3.4.0 required for AVX2. | 172 // clang >= 3.4.0 required for AVX2. |
| 178 #if defined(__clang__) && (defined(__x86_64__) || defined(__i386__)) | 173 #if defined(__clang__) && (defined(__x86_64__) || defined(__i386__)) |
| 179 #if (__clang_major__ > 3) || (__clang_major__ == 3 && (__clang_minor__ >= 4)) | 174 #if (__clang_major__ > 3) || (__clang_major__ == 3 && (__clang_minor__ >= 4)) |
| 180 #define CLANG_HAS_AVX2 1 | 175 #define CLANG_HAS_AVX2 1 |
| 181 #endif // clang >= 3.4 | 176 #endif // clang >= 3.4 |
| 182 #endif // __clang__ | 177 #endif // __clang__ |
| 183 | 178 |
| 184 // Visual C 2012 required for AVX2. | 179 // Visual C 2012 required for AVX2. |
| 185 #if defined(_M_IX86) && defined(_MSC_VER) && _MSC_VER >= 1700 | 180 #if defined(_M_IX86) && defined(_MSC_VER) && _MSC_VER >= 1700 |
| 186 #define VISUALC_HAS_AVX2 1 | 181 #define VISUALC_HAS_AVX2 1 |
| 187 #endif // VisualStudio >= 2012 | 182 #endif // VisualStudio >= 2012 |
| 188 | 183 |
| 184 // The following are available require VS2012. Port to GCC. |
| 185 #if !defined(LIBYUV_DISABLE_X86) && defined(VISUALC_HAS_AVX2) |
| 186 // TODO(fbarchard): fix AVX2 versions of YUV conversion. bug=393 |
| 187 #define HAS_I422TOABGRROW_AVX2 |
| 188 #define HAS_I422TOARGBROW_AVX2 |
| 189 #define HAS_I422TOBGRAROW_AVX2 |
| 190 #define HAS_I422TORGBAROW_AVX2 |
| 191 #define HAS_NV12TOARGBROW_AVX2 |
| 192 #define HAS_NV21TOARGBROW_AVX2 |
| 193 #define HAS_ARGBTORGB565ROW_AVX2 |
| 194 #define HAS_ARGBTOARGB1555ROW_AVX2 |
| 195 #define HAS_ARGBTOARGB4444ROW_AVX2 |
| 196 #define HAS_NV12TORGB565ROW_AVX2 |
| 197 #define HAS_NV21TORGB565ROW_AVX2 |
| 198 #define HAS_I422TORGB565ROW_AVX2 |
| 199 #define HAS_I422TOARGB1555ROW_AVX2 |
| 200 #define HAS_I422TOARGB4444ROW_AVX2 |
| 201 #endif |
| 202 |
| 189 // The following are available on all x86 platforms, but | 203 // The following are available on all x86 platforms, but |
| 190 // require VS2012, clang 3.4 or gcc 4.7. | 204 // require VS2012, clang 3.4 or gcc 4.7. |
| 191 // The code supports NaCL but requires a new compiler and validator. | 205 // The code supports NaCL but requires a new compiler and validator. |
| 192 #if !defined(LIBYUV_DISABLE_X86) && (defined(VISUALC_HAS_AVX2) || \ | 206 #if !defined(LIBYUV_DISABLE_X86) && (defined(VISUALC_HAS_AVX2) || \ |
| 193 defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2)) | 207 defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2)) |
| 194 // Effects: | 208 #define HAS_ARGBCOPYALPHAROW_AVX2 |
| 209 #define HAS_ARGBCOPYYTOALPHAROW_AVX2 |
| 210 #define HAS_ARGBMIRRORROW_AVX2 |
| 195 #define HAS_ARGBPOLYNOMIALROW_AVX2 | 211 #define HAS_ARGBPOLYNOMIALROW_AVX2 |
| 196 #define HAS_ARGBSHUFFLEROW_AVX2 | 212 #define HAS_ARGBSHUFFLEROW_AVX2 |
| 197 #define HAS_ARGBCOPYALPHAROW_AVX2 | |
| 198 #define HAS_ARGBCOPYYTOALPHAROW_AVX2 | |
| 199 #endif | |
| 200 | |
| 201 // The following are require VS2012. | |
| 202 // TODO(fbarchard): Port to gcc. | |
| 203 #if !defined(LIBYUV_DISABLE_X86) && defined(VISUALC_HAS_AVX2) | |
| 204 #define HAS_ARGBTOUVROW_AVX2 | 213 #define HAS_ARGBTOUVROW_AVX2 |
| 205 #define HAS_ARGBTOYJROW_AVX2 | 214 #define HAS_ARGBTOYJROW_AVX2 |
| 206 #define HAS_ARGBTOYROW_AVX2 | 215 #define HAS_ARGBTOYROW_AVX2 |
| 207 #define HAS_HALFROW_AVX2 | 216 #define HAS_COPYROW_AVX |
| 208 #define HAS_I422TOARGBROW_AVX2 | |
| 209 #define HAS_INTERPOLATEROW_AVX2 | 217 #define HAS_INTERPOLATEROW_AVX2 |
| 210 #define HAS_MERGEUVROW_AVX2 | 218 #define HAS_MERGEUVROW_AVX2 |
| 211 #define HAS_MIRRORROW_AVX2 | 219 #define HAS_MIRRORROW_AVX2 |
| 212 #define HAS_SPLITUVROW_AVX2 | 220 #define HAS_SPLITUVROW_AVX2 |
| 213 #define HAS_UYVYTOUV422ROW_AVX2 | 221 #define HAS_UYVYTOUV422ROW_AVX2 |
| 214 #define HAS_UYVYTOUVROW_AVX2 | 222 #define HAS_UYVYTOUVROW_AVX2 |
| 215 #define HAS_UYVYTOYROW_AVX2 | 223 #define HAS_UYVYTOYROW_AVX2 |
| 224 #define HAS_YTOARGBROW_AVX2 |
| 216 #define HAS_YUY2TOUV422ROW_AVX2 | 225 #define HAS_YUY2TOUV422ROW_AVX2 |
| 217 #define HAS_YUY2TOUVROW_AVX2 | 226 #define HAS_YUY2TOUVROW_AVX2 |
| 218 #define HAS_YUY2TOYROW_AVX2 | 227 #define HAS_YUY2TOYROW_AVX2 |
| 219 | 228 |
| 229 // The following require HAS_I422TOARGBROW_AVX2 |
| 230 #if defined(HAS_I422TOARGBROW_AVX2) |
| 231 #define HAS_YUY2TOARGBROW_AVX2 |
| 232 #define HAS_UYVYTOARGBROW_AVX2 |
| 233 #endif |
| 234 |
| 220 // Effects: | 235 // Effects: |
| 221 #define HAS_ARGBADDROW_AVX2 | 236 #define HAS_ARGBADDROW_AVX2 |
| 222 #define HAS_ARGBATTENUATEROW_AVX2 | 237 #define HAS_ARGBATTENUATEROW_AVX2 |
| 223 #define HAS_ARGBMIRRORROW_AVX2 | |
| 224 #define HAS_ARGBMULTIPLYROW_AVX2 | 238 #define HAS_ARGBMULTIPLYROW_AVX2 |
| 225 #define HAS_ARGBSUBTRACTROW_AVX2 | 239 #define HAS_ARGBSUBTRACTROW_AVX2 |
| 226 #define HAS_ARGBUNATTENUATEROW_AVX2 | 240 #define HAS_ARGBUNATTENUATEROW_AVX2 |
| 227 #endif // defined(VISUALC_HAS_AVX2) | 241 #endif |
| 242 |
| 228 | 243 |
| 229 // The following are Yasm x86 only: | 244 // The following are Yasm x86 only: |
| 230 // TODO(fbarchard): Port AVX2 to inline. | 245 // TODO(fbarchard): Port AVX2 to inline. |
| 231 #if !defined(LIBYUV_DISABLE_X86) && defined(HAVE_YASM) | 246 #if !defined(LIBYUV_DISABLE_X86) && defined(HAVE_YASM) |
| 232 (defined(_M_IX86) || defined(_M_X64) || \ | 247 (defined(_M_IX86) || defined(_M_X64) || \ |
| 233 defined(__x86_64__) || defined(__i386__)) | 248 defined(__x86_64__) || defined(__i386__)) |
| 234 #define HAS_MERGEUVROW_AVX2 | 249 #define HAS_MERGEUVROW_AVX2 |
| 235 #define HAS_MERGEUVROW_MMX | 250 #define HAS_MERGEUVROW_MMX |
| 236 #define HAS_SPLITUVROW_AVX2 | 251 #define HAS_SPLITUVROW_AVX2 |
| 237 #define HAS_SPLITUVROW_MMX | 252 #define HAS_SPLITUVROW_MMX |
| 238 #define HAS_UYVYTOYROW_AVX2 | 253 #define HAS_UYVYTOYROW_AVX2 |
| 239 #define HAS_UYVYTOYROW_MMX | 254 #define HAS_UYVYTOYROW_MMX |
| 240 #define HAS_YUY2TOYROW_AVX2 | 255 #define HAS_YUY2TOYROW_AVX2 |
| 241 #define HAS_YUY2TOYROW_MMX | 256 #define HAS_YUY2TOYROW_MMX |
| 242 #endif | 257 #endif |
| 243 | 258 |
| 244 // The following are disabled when SSSE3 is available: | 259 // The following are disabled when SSSE3 is available: |
| 245 #if !defined(LIBYUV_DISABLE_X86) && \ | 260 #if !defined(LIBYUV_DISABLE_X86) && \ |
| 246 (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) && \ | 261 (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) && \ |
| 247 !defined(LIBYUV_SSSE3_ONLY) | 262 !defined(LIBYUV_SSSE3_ONLY) |
| 263 #define HAS_ARGBATTENUATEROW_SSE2 |
| 248 #define HAS_ARGBBLENDROW_SSE2 | 264 #define HAS_ARGBBLENDROW_SSE2 |
| 249 #define HAS_ARGBATTENUATEROW_SSE2 | |
| 250 #define HAS_MIRRORROW_SSE2 | 265 #define HAS_MIRRORROW_SSE2 |
| 251 #endif | 266 #endif |
| 252 | 267 |
| 253 // The following are available on arm64 platforms: | |
| 254 #if !defined(LIBYUV_DISABLE_NEON) && defined(__aarch64__) | |
| 255 // #define HAS_I444TOARGBROW_NEON | |
| 256 // #define HAS_I422TOARGBROW_NEON | |
| 257 // #define HAS_I411TOARGBROW_NEON | |
| 258 // #define HAS_I422TOBGRAROW_NEON | |
| 259 // #define HAS_I422TOABGRROW_NEON | |
| 260 // #define HAS_I422TORGBAROW_NEON | |
| 261 // #define HAS_I422TORGB24ROW_NEON | |
| 262 // #define HAS_I422TORAWROW_NEON | |
| 263 // #define HAS_I422TORGB565ROW_NEON | |
| 264 // #define HAS_I422TOARGB1555ROW_NEON | |
| 265 // #define HAS_I422TOARGB4444ROW_NEON | |
| 266 // #define HAS_YTOARGBROW_NEON | |
| 267 // #define HAS_I400TOARGBROW_NEON | |
| 268 // #define HAS_NV12TOARGBROW_NEON | |
| 269 // #define HAS_NV21TOARGBROW_NEON | |
| 270 // #define HAS_NV12TORGB565ROW_NEON | |
| 271 // #define HAS_NV21TORGB565ROW_NEON | |
| 272 // #define HAS_YUY2TOARGBROW_NEON | |
| 273 // #define HAS_UYVYTOARGBROW_NEON | |
| 274 #define HAS_SPLITUVROW_NEON | |
| 275 #define HAS_MERGEUVROW_NEON | |
| 276 #define HAS_COPYROW_NEON | |
| 277 #define HAS_SETROW_NEON | |
| 278 #define HAS_ARGBSETROWS_NEON | |
| 279 #define HAS_MIRRORROW_NEON | |
| 280 #define HAS_MIRRORUVROW_NEON | |
| 281 #define HAS_ARGBMIRRORROW_NEON | |
| 282 #define HAS_RGB24TOARGBROW_NEON | |
| 283 #define HAS_RAWTOARGBROW_NEON | |
| 284 // #define HAS_RGB565TOARGBROW_NEON | |
| 285 // #define HAS_ARGB1555TOARGBROW_NEON | |
| 286 // #define HAS_ARGB4444TOARGBROW_NEON | |
| 287 #define HAS_ARGBTORGB24ROW_NEON | |
| 288 #define HAS_ARGBTORAWROW_NEON | |
| 289 #define HAS_YUY2TOYROW_NEON | |
| 290 #define HAS_UYVYTOYROW_NEON | |
| 291 #define HAS_YUY2TOUV422ROW_NEON | |
| 292 #define HAS_UYVYTOUV422ROW_NEON | |
| 293 #define HAS_YUY2TOUVROW_NEON | |
| 294 #define HAS_UYVYTOUVROW_NEON | |
| 295 #define HAS_HALFROW_NEON | |
| 296 #define HAS_ARGBTOBAYERROW_NEON | |
| 297 #define HAS_ARGBTOBAYERGGROW_NEON | |
| 298 #define HAS_ARGBSHUFFLEROW_NEON | |
| 299 #define HAS_I422TOYUY2ROW_NEON | |
| 300 #define HAS_I422TOUYVYROW_NEON | |
| 301 // #define HAS_ARGBTORGB565ROW_NEON | |
| 302 // #define HAS_ARGBTOARGB1555ROW_NEON | |
| 303 // #define HAS_ARGBTOARGB4444ROW_NEON | |
| 304 #define HAS_ARGBTOYROW_NEON | |
| 305 #define HAS_ARGBTOYJROW_NEON | |
| 306 // #define HAS_ARGBTOUV444ROW_NEON | |
| 307 // #define HAS_ARGBTOUV422ROW_NEON | |
| 308 // #define HAS_ARGBTOUV411ROW_NEON | |
| 309 // #define HAS_ARGBTOUVROW_NEON | |
| 310 // #define HAS_ARGBTOUVJROW_NEON | |
| 311 // #define HAS_BGRATOUVROW_NEON | |
| 312 // #define HAS_ABGRTOUVROW_NEON | |
| 313 // #define HAS_RGBATOUVROW_NEON | |
| 314 // #define HAS_RGB24TOUVROW_NEON | |
| 315 // #define HAS_RAWTOUVROW_NEON | |
| 316 // #define HAS_RGB565TOUVROW_NEON | |
| 317 // #define HAS_ARGB1555TOUVROW_NEON | |
| 318 // #define HAS_ARGB4444TOUVROW_NEON | |
| 319 // #define HAS_RGB565TOYROW_NEON | |
| 320 // #define HAS_ARGB1555TOYROW_NEON | |
| 321 // #define HAS_ARGB4444TOYROW_NEON | |
| 322 // #define HAS_BGRATOYROW_NEON | |
| 323 // #define HAS_ABGRTOYROW_NEON | |
| 324 // #define HAS_RGBATOYROW_NEON | |
| 325 // #define HAS_RGB24TOYROW_NEON | |
| 326 // #define HAS_RAWTOYROW_NEON | |
| 327 // #define HAS_INTERPOLATEROW_NEON | |
| 328 // #define HAS_ARGBBLENDROW_NEON | |
| 329 // #define HAS_ARGBATTENUATEROW_NEON | |
| 330 // #define HAS_ARGBQUANTIZEROW_NEON | |
| 331 // #define HAS_ARGBSHADEROW_NEON | |
| 332 // #define HAS_ARGBGRAYROW_NEON | |
| 333 // #define HAS_ARGBSEPIAROW_NEON | |
| 334 // #define HAS_ARGBCOLORMATRIXROW_NEON | |
| 335 #define HAS_ARGBMULTIPLYROW_NEON | |
| 336 #define HAS_ARGBADDROW_NEON | |
| 337 #define HAS_ARGBSUBTRACTROW_NEON | |
| 338 #define HAS_SOBELROW_NEON | |
| 339 #define HAS_SOBELTOPLANEROW_NEON | |
| 340 #define HAS_SOBELXYROW_NEON | |
| 341 #define HAS_SOBELXROW_NEON | |
| 342 #define HAS_SOBELYROW_NEON | |
| 343 #endif | |
| 344 | |
| 345 // The following are available on Neon platforms: | 268 // The following are available on Neon platforms: |
| 346 #if !defined(LIBYUV_DISABLE_NEON) && \ | 269 #if !defined(LIBYUV_DISABLE_NEON) && \ |
| 347 (defined(__ARM_NEON__) || defined(LIBYUV_NEON)) | 270 (defined(__aarch64__) || defined(__ARM_NEON__) || defined(LIBYUV_NEON)) |
| 348 #define HAS_ABGRTOUVROW_NEON | 271 #define HAS_ABGRTOUVROW_NEON |
| 349 #define HAS_ABGRTOYROW_NEON | 272 #define HAS_ABGRTOYROW_NEON |
| 350 #define HAS_ARGB1555TOARGBROW_NEON | 273 #define HAS_ARGB1555TOARGBROW_NEON |
| 351 #define HAS_ARGB1555TOUVROW_NEON | 274 #define HAS_ARGB1555TOUVROW_NEON |
| 352 #define HAS_ARGB1555TOYROW_NEON | 275 #define HAS_ARGB1555TOYROW_NEON |
| 353 #define HAS_ARGB4444TOARGBROW_NEON | 276 #define HAS_ARGB4444TOARGBROW_NEON |
| 354 #define HAS_ARGB4444TOUVROW_NEON | 277 #define HAS_ARGB4444TOUVROW_NEON |
| 355 #define HAS_ARGB4444TOYROW_NEON | 278 #define HAS_ARGB4444TOYROW_NEON |
| 356 #define HAS_ARGBTOARGB1555ROW_NEON | 279 #define HAS_ARGBTOARGB1555ROW_NEON |
| 357 #define HAS_ARGBTOARGB4444ROW_NEON | 280 #define HAS_ARGBTOARGB4444ROW_NEON |
| 358 #define HAS_ARGBTOBAYERROW_NEON | |
| 359 #define HAS_ARGBTOBAYERGGROW_NEON | 281 #define HAS_ARGBTOBAYERGGROW_NEON |
| 360 #define HAS_ARGBTORAWROW_NEON | 282 #define HAS_ARGBTORAWROW_NEON |
| 361 #define HAS_ARGBTORGB24ROW_NEON | 283 #define HAS_ARGBTORGB24ROW_NEON |
| 362 #define HAS_ARGBTORGB565ROW_NEON | 284 #define HAS_ARGBTORGB565ROW_NEON |
| 363 #define HAS_ARGBTOUV411ROW_NEON | 285 #define HAS_ARGBTOUV411ROW_NEON |
| 364 #define HAS_ARGBTOUV422ROW_NEON | 286 #define HAS_ARGBTOUV422ROW_NEON |
| 365 #define HAS_ARGBTOUV444ROW_NEON | 287 #define HAS_ARGBTOUV444ROW_NEON |
| 288 #define HAS_ARGBTOUVJROW_NEON |
| 366 #define HAS_ARGBTOUVROW_NEON | 289 #define HAS_ARGBTOUVROW_NEON |
| 367 #define HAS_ARGBTOUVJROW_NEON | 290 #define HAS_ARGBTOYJROW_NEON |
| 368 #define HAS_ARGBTOYROW_NEON | 291 #define HAS_ARGBTOYROW_NEON |
| 369 #define HAS_ARGBTOYJROW_NEON | |
| 370 #define HAS_BGRATOUVROW_NEON | 292 #define HAS_BGRATOUVROW_NEON |
| 371 #define HAS_BGRATOYROW_NEON | 293 #define HAS_BGRATOYROW_NEON |
| 372 #define HAS_COPYROW_NEON | 294 #define HAS_COPYROW_NEON |
| 373 #define HAS_HALFROW_NEON | |
| 374 #define HAS_I400TOARGBROW_NEON | 295 #define HAS_I400TOARGBROW_NEON |
| 375 #define HAS_I411TOARGBROW_NEON | 296 #define HAS_I411TOARGBROW_NEON |
| 376 #define HAS_I422TOABGRROW_NEON | 297 #define HAS_I422TOABGRROW_NEON |
| 377 #define HAS_I422TOARGB1555ROW_NEON | 298 #define HAS_I422TOARGB1555ROW_NEON |
| 378 #define HAS_I422TOARGB4444ROW_NEON | 299 #define HAS_I422TOARGB4444ROW_NEON |
| 379 #define HAS_I422TOARGBROW_NEON | 300 #define HAS_I422TOARGBROW_NEON |
| 380 #define HAS_I422TOBGRAROW_NEON | 301 #define HAS_I422TOBGRAROW_NEON |
| 381 #define HAS_I422TORAWROW_NEON | 302 #define HAS_I422TORAWROW_NEON |
| 382 #define HAS_I422TORGB24ROW_NEON | 303 #define HAS_I422TORGB24ROW_NEON |
| 383 #define HAS_I422TORGB565ROW_NEON | 304 #define HAS_I422TORGB565ROW_NEON |
| (...skipping 13 matching lines...) Expand all Loading... |
| 397 #define HAS_RAWTOYROW_NEON | 318 #define HAS_RAWTOYROW_NEON |
| 398 #define HAS_RGB24TOARGBROW_NEON | 319 #define HAS_RGB24TOARGBROW_NEON |
| 399 #define HAS_RGB24TOUVROW_NEON | 320 #define HAS_RGB24TOUVROW_NEON |
| 400 #define HAS_RGB24TOYROW_NEON | 321 #define HAS_RGB24TOYROW_NEON |
| 401 #define HAS_RGB565TOARGBROW_NEON | 322 #define HAS_RGB565TOARGBROW_NEON |
| 402 #define HAS_RGB565TOUVROW_NEON | 323 #define HAS_RGB565TOUVROW_NEON |
| 403 #define HAS_RGB565TOYROW_NEON | 324 #define HAS_RGB565TOYROW_NEON |
| 404 #define HAS_RGBATOUVROW_NEON | 325 #define HAS_RGBATOUVROW_NEON |
| 405 #define HAS_RGBATOYROW_NEON | 326 #define HAS_RGBATOYROW_NEON |
| 406 #define HAS_SETROW_NEON | 327 #define HAS_SETROW_NEON |
| 328 #define HAS_ARGBSETROW_NEON |
| 407 #define HAS_SPLITUVROW_NEON | 329 #define HAS_SPLITUVROW_NEON |
| 408 #define HAS_UYVYTOARGBROW_NEON | 330 #define HAS_UYVYTOARGBROW_NEON |
| 409 #define HAS_UYVYTOUV422ROW_NEON | 331 #define HAS_UYVYTOUV422ROW_NEON |
| 410 #define HAS_UYVYTOUVROW_NEON | 332 #define HAS_UYVYTOUVROW_NEON |
| 411 #define HAS_UYVYTOYROW_NEON | 333 #define HAS_UYVYTOYROW_NEON |
| 412 #define HAS_YTOARGBROW_NEON | 334 #define HAS_YTOARGBROW_NEON |
| 413 #define HAS_YUY2TOARGBROW_NEON | 335 #define HAS_YUY2TOARGBROW_NEON |
| 414 #define HAS_YUY2TOUV422ROW_NEON | 336 #define HAS_YUY2TOUV422ROW_NEON |
| 415 #define HAS_YUY2TOUVROW_NEON | 337 #define HAS_YUY2TOUVROW_NEON |
| 416 #define HAS_YUY2TOYROW_NEON | 338 #define HAS_YUY2TOYROW_NEON |
| 417 | 339 |
| 418 // Effects: | 340 // Effects: |
| 419 #define HAS_ARGBADDROW_NEON | 341 #define HAS_ARGBADDROW_NEON |
| 420 #define HAS_ARGBATTENUATEROW_NEON | 342 #define HAS_ARGBATTENUATEROW_NEON |
| 421 #define HAS_ARGBBLENDROW_NEON | 343 #define HAS_ARGBBLENDROW_NEON |
| 422 #define HAS_ARGBGRAYROW_NEON | 344 #define HAS_ARGBGRAYROW_NEON |
| 423 #define HAS_ARGBMIRRORROW_NEON | 345 #define HAS_ARGBMIRRORROW_NEON |
| 424 #define HAS_ARGBMULTIPLYROW_NEON | 346 #define HAS_ARGBMULTIPLYROW_NEON |
| 425 #define HAS_ARGBQUANTIZEROW_NEON | 347 #define HAS_ARGBQUANTIZEROW_NEON |
| 426 #define HAS_ARGBSEPIAROW_NEON | 348 #define HAS_ARGBSEPIAROW_NEON |
| 427 #define HAS_ARGBSHADEROW_NEON | 349 #define HAS_ARGBSHADEROW_NEON |
| 428 #define HAS_ARGBSUBTRACTROW_NEON | 350 #define HAS_ARGBSUBTRACTROW_NEON |
| 351 #define HAS_INTERPOLATEROW_NEON |
| 429 #define HAS_SOBELROW_NEON | 352 #define HAS_SOBELROW_NEON |
| 430 #define HAS_SOBELTOPLANEROW_NEON | 353 #define HAS_SOBELTOPLANEROW_NEON |
| 354 #define HAS_SOBELXROW_NEON |
| 431 #define HAS_SOBELXYROW_NEON | 355 #define HAS_SOBELXYROW_NEON |
| 432 #define HAS_SOBELXROW_NEON | |
| 433 #define HAS_SOBELYROW_NEON | 356 #define HAS_SOBELYROW_NEON |
| 434 #define HAS_INTERPOLATEROW_NEON | 357 #define HAS_ARGBCOLORMATRIXROW_NEON |
| 435 // TODO(fbarchard): Investigate neon unittest failure. | 358 #define HAS_ARGBSHUFFLEROW_NEON |
| 436 // #define HAS_ARGBCOLORMATRIXROW_NEON | |
| 437 #endif | 359 #endif |
| 438 | 360 |
| 439 // The following are available on Mips platforms: | 361 // The following are available on Mips platforms: |
| 440 #if !defined(LIBYUV_DISABLE_MIPS) && defined(__mips__) && \ | 362 #if !defined(LIBYUV_DISABLE_MIPS) && defined(__mips__) && \ |
| 441 (_MIPS_SIM == _MIPS_SIM_ABI32) | 363 (_MIPS_SIM == _MIPS_SIM_ABI32) && (__mips_isa_rev < 6) |
| 442 #define HAS_COPYROW_MIPS | 364 #define HAS_COPYROW_MIPS |
| 443 #if defined(__mips_dsp) && (__mips_dsp_rev >= 2) | 365 #if defined(__mips_dsp) && (__mips_dsp_rev >= 2) |
| 444 #define HAS_I422TOABGRROW_MIPS_DSPR2 | 366 #define HAS_I422TOABGRROW_MIPS_DSPR2 |
| 445 #define HAS_I422TOARGBROW_MIPS_DSPR2 | 367 #define HAS_I422TOARGBROW_MIPS_DSPR2 |
| 446 #define HAS_I422TOBGRAROW_MIPS_DSPR2 | 368 #define HAS_I422TOBGRAROW_MIPS_DSPR2 |
| 447 #define HAS_INTERPOLATEROWS_MIPS_DSPR2 | 369 #define HAS_INTERPOLATEROW_MIPS_DSPR2 |
| 448 #define HAS_MIRRORROW_MIPS_DSPR2 | 370 #define HAS_MIRRORROW_MIPS_DSPR2 |
| 449 #define HAS_MIRRORUVROW_MIPS_DSPR2 | 371 #define HAS_MIRRORUVROW_MIPS_DSPR2 |
| 450 #define HAS_SPLITUVROW_MIPS_DSPR2 | 372 #define HAS_SPLITUVROW_MIPS_DSPR2 |
| 451 #endif | 373 #endif |
| 452 #endif | 374 #endif |
| 453 | 375 |
| 454 #if defined(_MSC_VER) && !defined(__CLR_VER) | 376 #if defined(_MSC_VER) && !defined(__CLR_VER) |
| 455 #define SIMD_ALIGNED(var) __declspec(align(16)) var | 377 #define SIMD_ALIGNED(var) __declspec(align(16)) var |
| 378 #define SIMD_ALIGNED32(var) __declspec(align(64)) var |
| 456 typedef __declspec(align(16)) int16 vec16[8]; | 379 typedef __declspec(align(16)) int16 vec16[8]; |
| 457 typedef __declspec(align(16)) int32 vec32[4]; | 380 typedef __declspec(align(16)) int32 vec32[4]; |
| 458 typedef __declspec(align(16)) int8 vec8[16]; | 381 typedef __declspec(align(16)) int8 vec8[16]; |
| 459 typedef __declspec(align(16)) uint16 uvec16[8]; | 382 typedef __declspec(align(16)) uint16 uvec16[8]; |
| 460 typedef __declspec(align(16)) uint32 uvec32[4]; | 383 typedef __declspec(align(16)) uint32 uvec32[4]; |
| 461 typedef __declspec(align(16)) uint8 uvec8[16]; | 384 typedef __declspec(align(16)) uint8 uvec8[16]; |
| 462 typedef __declspec(align(32)) int16 lvec16[16]; | 385 typedef __declspec(align(32)) int16 lvec16[16]; |
| 463 typedef __declspec(align(32)) int32 lvec32[8]; | 386 typedef __declspec(align(32)) int32 lvec32[8]; |
| 464 typedef __declspec(align(32)) int8 lvec8[32]; | 387 typedef __declspec(align(32)) int8 lvec8[32]; |
| 465 typedef __declspec(align(32)) uint16 ulvec16[16]; | 388 typedef __declspec(align(32)) uint16 ulvec16[16]; |
| 466 typedef __declspec(align(32)) uint32 ulvec32[8]; | 389 typedef __declspec(align(32)) uint32 ulvec32[8]; |
| 467 typedef __declspec(align(32)) uint8 ulvec8[32]; | 390 typedef __declspec(align(32)) uint8 ulvec8[32]; |
| 468 | 391 |
| 469 #elif defined(__GNUC__) | 392 #elif defined(__GNUC__) |
| 470 // Caveat GCC 4.2 to 4.7 have a known issue using vectors with const. | 393 // Caveat GCC 4.2 to 4.7 have a known issue using vectors with const. |
| 471 #define SIMD_ALIGNED(var) var __attribute__((aligned(16))) | 394 #define SIMD_ALIGNED(var) var __attribute__((aligned(16))) |
| 395 #define SIMD_ALIGNED32(var) var __attribute__((aligned(64))) |
| 472 typedef int16 __attribute__((vector_size(16))) vec16; | 396 typedef int16 __attribute__((vector_size(16))) vec16; |
| 473 typedef int32 __attribute__((vector_size(16))) vec32; | 397 typedef int32 __attribute__((vector_size(16))) vec32; |
| 474 typedef int8 __attribute__((vector_size(16))) vec8; | 398 typedef int8 __attribute__((vector_size(16))) vec8; |
| 475 typedef uint16 __attribute__((vector_size(16))) uvec16; | 399 typedef uint16 __attribute__((vector_size(16))) uvec16; |
| 476 typedef uint32 __attribute__((vector_size(16))) uvec32; | 400 typedef uint32 __attribute__((vector_size(16))) uvec32; |
| 477 typedef uint8 __attribute__((vector_size(16))) uvec8; | 401 typedef uint8 __attribute__((vector_size(16))) uvec8; |
| 402 typedef int16 __attribute__((vector_size(32))) lvec16; |
| 403 typedef int32 __attribute__((vector_size(32))) lvec32; |
| 404 typedef int8 __attribute__((vector_size(32))) lvec8; |
| 405 typedef uint16 __attribute__((vector_size(32))) ulvec16; |
| 406 typedef uint32 __attribute__((vector_size(32))) ulvec32; |
| 407 typedef uint8 __attribute__((vector_size(32))) ulvec8; |
| 478 #else | 408 #else |
| 479 #define SIMD_ALIGNED(var) var | 409 #define SIMD_ALIGNED(var) var |
| 410 #define SIMD_ALIGNED32(var) var |
| 480 typedef int16 vec16[8]; | 411 typedef int16 vec16[8]; |
| 481 typedef int32 vec32[4]; | 412 typedef int32 vec32[4]; |
| 482 typedef int8 vec8[16]; | 413 typedef int8 vec8[16]; |
| 483 typedef uint16 uvec16[8]; | 414 typedef uint16 uvec16[8]; |
| 484 typedef uint32 uvec32[4]; | 415 typedef uint32 uvec32[4]; |
| 485 typedef uint8 uvec8[16]; | 416 typedef uint8 uvec8[16]; |
| 417 typedef int16 lvec16[16]; |
| 418 typedef int32 lvec32[8]; |
| 419 typedef int8 lvec8[32]; |
| 420 typedef uint16 ulvec16[16]; |
| 421 typedef uint32 ulvec32[8]; |
| 422 typedef uint8 ulvec8[32]; |
| 486 #endif | 423 #endif |
| 487 | 424 |
| 488 #if defined(__APPLE__) || defined(__x86_64__) || defined(__llvm__) | 425 #if defined(__APPLE__) || defined(__x86_64__) || defined(__llvm__) |
| 489 #define OMITFP | 426 #define OMITFP |
| 490 #else | 427 #else |
| 491 #define OMITFP __attribute__((optimize("omit-frame-pointer"))) | 428 #define OMITFP __attribute__((optimize("omit-frame-pointer"))) |
| 492 #endif | 429 #endif |
| 493 | 430 |
| 494 // NaCL macros for GCC x86 and x64. | 431 // NaCL macros for GCC x86 and x64. |
| 495 | |
| 496 // TODO(nfullagar): When pepper_33 toolchain is distributed, default to | |
| 497 // NEW_BINUTILS and remove all BUNDLEALIGN occurances. | |
| 498 #if defined(__native_client__) | 432 #if defined(__native_client__) |
| 499 #define LABELALIGN ".p2align 5\n" | 433 #define LABELALIGN ".p2align 5\n" |
| 500 #else | 434 #else |
| 501 #define LABELALIGN ".p2align 2\n" | 435 #define LABELALIGN |
| 502 #endif | 436 #endif |
| 503 #if defined(__native_client__) && defined(__x86_64__) | 437 #if defined(__native_client__) && defined(__x86_64__) |
| 504 #if defined(NEW_BINUTILS) | 438 // r14 is used for MEMOP macros. |
| 439 #define NACL_R14 "r14", |
| 505 #define BUNDLELOCK ".bundle_lock\n" | 440 #define BUNDLELOCK ".bundle_lock\n" |
| 506 #define BUNDLEUNLOCK ".bundle_unlock\n" | 441 #define BUNDLEUNLOCK ".bundle_unlock\n" |
| 507 #define BUNDLEALIGN "\n" | |
| 508 #else | |
| 509 #define BUNDLELOCK "\n" | |
| 510 #define BUNDLEUNLOCK "\n" | |
| 511 #define BUNDLEALIGN ".p2align 5\n" | |
| 512 #endif | |
| 513 #define MEMACCESS(base) "%%nacl:(%%r15,%q" #base ")" | 442 #define MEMACCESS(base) "%%nacl:(%%r15,%q" #base ")" |
| 514 #define MEMACCESS2(offset, base) "%%nacl:" #offset "(%%r15,%q" #base ")" | 443 #define MEMACCESS2(offset, base) "%%nacl:" #offset "(%%r15,%q" #base ")" |
| 515 #define MEMLEA(offset, base) #offset "(%q" #base ")" | 444 #define MEMLEA(offset, base) #offset "(%q" #base ")" |
| 516 #define MEMLEA3(offset, index, scale) \ | 445 #define MEMLEA3(offset, index, scale) \ |
| 517 #offset "(,%q" #index "," #scale ")" | 446 #offset "(,%q" #index "," #scale ")" |
| 518 #define MEMLEA4(offset, base, index, scale) \ | 447 #define MEMLEA4(offset, base, index, scale) \ |
| 519 #offset "(%q" #base ",%q" #index "," #scale ")" | 448 #offset "(%q" #base ",%q" #index "," #scale ")" |
| 520 #define MEMMOVESTRING(s, d) "%%nacl:(%q" #s "),%%nacl:(%q" #d "), %%r15" | 449 #define MEMMOVESTRING(s, d) "%%nacl:(%q" #s "),%%nacl:(%q" #d "), %%r15" |
| 521 #define MEMSTORESTRING(reg, d) "%%" #reg ",%%nacl:(%q" #d "), %%r15" | 450 #define MEMSTORESTRING(reg, d) "%%" #reg ",%%nacl:(%q" #d "), %%r15" |
| 522 #define MEMOPREG(opcode, offset, base, index, scale, reg) \ | 451 #define MEMOPREG(opcode, offset, base, index, scale, reg) \ |
| 523 BUNDLELOCK \ | 452 BUNDLELOCK \ |
| 524 "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" \ | 453 "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" \ |
| 525 #opcode " (%%r15,%%r14),%%" #reg "\n" \ | 454 #opcode " (%%r15,%%r14),%%" #reg "\n" \ |
| 526 BUNDLEUNLOCK | 455 BUNDLEUNLOCK |
| 527 #define MEMOPMEM(opcode, reg, offset, base, index, scale) \ | 456 #define MEMOPMEM(opcode, reg, offset, base, index, scale) \ |
| 528 BUNDLELOCK \ | 457 BUNDLELOCK \ |
| 529 "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" \ | 458 "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" \ |
| 530 #opcode " %%" #reg ",(%%r15,%%r14)\n" \ | 459 #opcode " %%" #reg ",(%%r15,%%r14)\n" \ |
| 531 BUNDLEUNLOCK | 460 BUNDLEUNLOCK |
| 532 #define MEMOPARG(opcode, offset, base, index, scale, arg) \ | 461 #define MEMOPARG(opcode, offset, base, index, scale, arg) \ |
| 533 BUNDLELOCK \ | 462 BUNDLELOCK \ |
| 534 "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" \ | 463 "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" \ |
| 535 #opcode " (%%r15,%%r14),%" #arg "\n" \ | 464 #opcode " (%%r15,%%r14),%" #arg "\n" \ |
| 536 BUNDLEUNLOCK | 465 BUNDLEUNLOCK |
| 466 #define VMEMOPREG(opcode, offset, base, index, scale, reg1, reg2) \ |
| 467 BUNDLELOCK \ |
| 468 "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" \ |
| 469 #opcode " (%%r15,%%r14),%%" #reg1 ",%%" #reg2 "\n" \ |
| 470 BUNDLEUNLOCK |
| 471 #define VEXTOPMEM(op, sel, reg, offset, base, index, scale) \ |
| 472 BUNDLELOCK \ |
| 473 "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" \ |
| 474 #op " $" #sel ",%%" #reg ",(%%r15,%%r14)\n" \ |
| 475 BUNDLEUNLOCK |
| 537 #else // defined(__native_client__) && defined(__x86_64__) | 476 #else // defined(__native_client__) && defined(__x86_64__) |
| 538 #define BUNDLEALIGN "\n" | 477 #define NACL_R14 |
| 478 #define BUNDLEALIGN |
| 539 #define MEMACCESS(base) "(%" #base ")" | 479 #define MEMACCESS(base) "(%" #base ")" |
| 540 #define MEMACCESS2(offset, base) #offset "(%" #base ")" | 480 #define MEMACCESS2(offset, base) #offset "(%" #base ")" |
| 541 #define MEMLEA(offset, base) #offset "(%" #base ")" | 481 #define MEMLEA(offset, base) #offset "(%" #base ")" |
| 542 #define MEMLEA3(offset, index, scale) \ | 482 #define MEMLEA3(offset, index, scale) \ |
| 543 #offset "(,%" #index "," #scale ")" | 483 #offset "(,%" #index "," #scale ")" |
| 544 #define MEMLEA4(offset, base, index, scale) \ | 484 #define MEMLEA4(offset, base, index, scale) \ |
| 545 #offset "(%" #base ",%" #index "," #scale ")" | 485 #offset "(%" #base ",%" #index "," #scale ")" |
| 546 #define MEMMOVESTRING(s, d) | 486 #define MEMMOVESTRING(s, d) |
| 547 #define MEMSTORESTRING(reg, d) | 487 #define MEMSTORESTRING(reg, d) |
| 548 #define MEMOPREG(opcode, offset, base, index, scale, reg) \ | 488 #define MEMOPREG(opcode, offset, base, index, scale, reg) \ |
| 549 #opcode " " #offset "(%" #base ",%" #index "," #scale "),%%" #reg "\n" | 489 #opcode " " #offset "(%" #base ",%" #index "," #scale "),%%" #reg "\n" |
| 550 #define MEMOPMEM(opcode, reg, offset, base, index, scale) \ | 490 #define MEMOPMEM(opcode, reg, offset, base, index, scale) \ |
| 551 #opcode " %%" #reg ","#offset "(%" #base ",%" #index "," #scale ")\n" | 491 #opcode " %%" #reg ","#offset "(%" #base ",%" #index "," #scale ")\n" |
| 552 #define MEMOPARG(opcode, offset, base, index, scale, arg) \ | 492 #define MEMOPARG(opcode, offset, base, index, scale, arg) \ |
| 553 #opcode " " #offset "(%" #base ",%" #index "," #scale "),%" #arg "\n" | 493 #opcode " " #offset "(%" #base ",%" #index "," #scale "),%" #arg "\n" |
| 494 #define VMEMOPREG(opcode, offset, base, index, scale, reg1, reg2) \ |
| 495 #opcode " " #offset "(%" #base ",%" #index "," #scale "),%%" #reg1 ",%%" \ |
| 496 #reg2 "\n" |
| 497 #define VEXTOPMEM(op, sel, reg, offset, base, index, scale) \ |
| 498 #op " $" #sel ",%%" #reg ","#offset "(%" #base ",%" #index "," #scale ")\n" |
| 554 #endif // defined(__native_client__) && defined(__x86_64__) | 499 #endif // defined(__native_client__) && defined(__x86_64__) |
| 555 | 500 |
| 556 #if defined(__arm__) || defined(__aarch64__) | 501 #if defined(__arm__) || defined(__aarch64__) |
| 557 #undef MEMACCESS | 502 #undef MEMACCESS |
| 558 #if defined(__native_client__) | 503 #if defined(__native_client__) |
| 559 #define MEMACCESS(base) ".p2align 3\nbic %" #base ", #0xc0000000\n" | 504 #define MEMACCESS(base) ".p2align 3\nbic %" #base ", #0xc0000000\n" |
| 560 #else | 505 #else |
| 561 #define MEMACCESS(base) "\n" | 506 #define MEMACCESS(base) |
| 562 #endif | 507 #endif |
| 563 #endif | 508 #endif |
| 564 | 509 |
| 565 void I444ToARGBRow_NEON(const uint8* src_y, | 510 void I444ToARGBRow_NEON(const uint8* src_y, |
| 566 const uint8* src_u, | 511 const uint8* src_u, |
| 567 const uint8* src_v, | 512 const uint8* src_v, |
| 568 uint8* dst_argb, | 513 uint8* dst_argb, |
| 569 int width); | 514 int width); |
| 570 void I422ToARGBRow_NEON(const uint8* src_y, | 515 void I422ToARGBRow_NEON(const uint8* src_y, |
| 571 const uint8* src_u, | 516 const uint8* src_u, |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 644 void ARGBToYRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int pix); | 589 void ARGBToYRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int pix); |
| 645 void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); | 590 void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); |
| 646 void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix); | 591 void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix); |
| 647 void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int pix); | 592 void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int pix); |
| 648 void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); | 593 void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); |
| 649 void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int pix); | 594 void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int pix); |
| 650 void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int pix); | 595 void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int pix); |
| 651 void RGBAToYRow_SSSE3(const uint8* src_rgba, uint8* dst_y, int pix); | 596 void RGBAToYRow_SSSE3(const uint8* src_rgba, uint8* dst_y, int pix); |
| 652 void RGB24ToYRow_SSSE3(const uint8* src_rgb24, uint8* dst_y, int pix); | 597 void RGB24ToYRow_SSSE3(const uint8* src_rgb24, uint8* dst_y, int pix); |
| 653 void RAWToYRow_SSSE3(const uint8* src_raw, uint8* dst_y, int pix); | 598 void RAWToYRow_SSSE3(const uint8* src_raw, uint8* dst_y, int pix); |
| 654 void ARGBToYRow_Unaligned_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); | |
| 655 void ARGBToYJRow_Unaligned_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); | |
| 656 void BGRAToYRow_Unaligned_SSSE3(const uint8* src_bgra, uint8* dst_y, int pix); | |
| 657 void ABGRToYRow_Unaligned_SSSE3(const uint8* src_abgr, uint8* dst_y, int pix); | |
| 658 void RGBAToYRow_Unaligned_SSSE3(const uint8* src_rgba, uint8* dst_y, int pix); | |
| 659 void RGB24ToYRow_Unaligned_SSSE3(const uint8* src_rgb24, uint8* dst_y, int pix); | |
| 660 void RAWToYRow_Unaligned_SSSE3(const uint8* src_raw, uint8* dst_y, int pix); | |
| 661 void ARGBToYRow_NEON(const uint8* src_argb, uint8* dst_y, int pix); | 599 void ARGBToYRow_NEON(const uint8* src_argb, uint8* dst_y, int pix); |
| 662 void ARGBToYJRow_NEON(const uint8* src_argb, uint8* dst_y, int pix); | 600 void ARGBToYJRow_NEON(const uint8* src_argb, uint8* dst_y, int pix); |
| 663 void ARGBToUV444Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, | 601 void ARGBToUV444Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, |
| 664 int pix); | 602 int pix); |
| 665 void ARGBToUV422Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, | 603 void ARGBToUV422Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, |
| 666 int pix); | 604 int pix); |
| 667 void ARGBToUV411Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, | 605 void ARGBToUV411Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, |
| 668 int pix); | 606 int pix); |
| 669 void ARGBToUVRow_NEON(const uint8* src_argb, int src_stride_argb, | 607 void ARGBToUVRow_NEON(const uint8* src_argb, int src_stride_argb, |
| 670 uint8* dst_u, uint8* dst_v, int pix); | 608 uint8* dst_u, uint8* dst_v, int pix); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 729 void ARGBToUVRow_SSSE3(const uint8* src_argb, int src_stride_argb, | 667 void ARGBToUVRow_SSSE3(const uint8* src_argb, int src_stride_argb, |
| 730 uint8* dst_u, uint8* dst_v, int width); | 668 uint8* dst_u, uint8* dst_v, int width); |
| 731 void ARGBToUVJRow_SSSE3(const uint8* src_argb, int src_stride_argb, | 669 void ARGBToUVJRow_SSSE3(const uint8* src_argb, int src_stride_argb, |
| 732 uint8* dst_u, uint8* dst_v, int width); | 670 uint8* dst_u, uint8* dst_v, int width); |
| 733 void BGRAToUVRow_SSSE3(const uint8* src_bgra, int src_stride_bgra, | 671 void BGRAToUVRow_SSSE3(const uint8* src_bgra, int src_stride_bgra, |
| 734 uint8* dst_u, uint8* dst_v, int width); | 672 uint8* dst_u, uint8* dst_v, int width); |
| 735 void ABGRToUVRow_SSSE3(const uint8* src_abgr, int src_stride_abgr, | 673 void ABGRToUVRow_SSSE3(const uint8* src_abgr, int src_stride_abgr, |
| 736 uint8* dst_u, uint8* dst_v, int width); | 674 uint8* dst_u, uint8* dst_v, int width); |
| 737 void RGBAToUVRow_SSSE3(const uint8* src_rgba, int src_stride_rgba, | 675 void RGBAToUVRow_SSSE3(const uint8* src_rgba, int src_stride_rgba, |
| 738 uint8* dst_u, uint8* dst_v, int width); | 676 uint8* dst_u, uint8* dst_v, int width); |
| 739 void ARGBToUVRow_Unaligned_SSSE3(const uint8* src_argb, int src_stride_argb, | |
| 740 uint8* dst_u, uint8* dst_v, int width); | |
| 741 void ARGBToUVJRow_Unaligned_SSSE3(const uint8* src_argb, int src_stride_argb, | |
| 742 uint8* dst_u, uint8* dst_v, int width); | |
| 743 void BGRAToUVRow_Unaligned_SSSE3(const uint8* src_bgra, int src_stride_bgra, | |
| 744 uint8* dst_u, uint8* dst_v, int width); | |
| 745 void ABGRToUVRow_Unaligned_SSSE3(const uint8* src_abgr, int src_stride_abgr, | |
| 746 uint8* dst_u, uint8* dst_v, int width); | |
| 747 void RGBAToUVRow_Unaligned_SSSE3(const uint8* src_rgba, int src_stride_rgba, | |
| 748 uint8* dst_u, uint8* dst_v, int width); | |
| 749 void ARGBToUVRow_Any_SSSE3(const uint8* src_argb, int src_stride_argb, | 677 void ARGBToUVRow_Any_SSSE3(const uint8* src_argb, int src_stride_argb, |
| 750 uint8* dst_u, uint8* dst_v, int width); | 678 uint8* dst_u, uint8* dst_v, int width); |
| 751 void ARGBToUVJRow_Any_SSSE3(const uint8* src_argb, int src_stride_argb, | 679 void ARGBToUVJRow_Any_SSSE3(const uint8* src_argb, int src_stride_argb, |
| 752 uint8* dst_u, uint8* dst_v, int width); | 680 uint8* dst_u, uint8* dst_v, int width); |
| 753 void BGRAToUVRow_Any_SSSE3(const uint8* src_bgra, int src_stride_bgra, | 681 void BGRAToUVRow_Any_SSSE3(const uint8* src_bgra, int src_stride_bgra, |
| 754 uint8* dst_u, uint8* dst_v, int width); | 682 uint8* dst_u, uint8* dst_v, int width); |
| 755 void ABGRToUVRow_Any_SSSE3(const uint8* src_abgr, int src_stride_abgr, | 683 void ABGRToUVRow_Any_SSSE3(const uint8* src_abgr, int src_stride_abgr, |
| 756 uint8* dst_u, uint8* dst_v, int width); | 684 uint8* dst_u, uint8* dst_v, int width); |
| 757 void RGBAToUVRow_Any_SSSE3(const uint8* src_rgba, int src_stride_rgba, | 685 void RGBAToUVRow_Any_SSSE3(const uint8* src_rgba, int src_stride_rgba, |
| 758 uint8* dst_u, uint8* dst_v, int width); | 686 uint8* dst_u, uint8* dst_v, int width); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 800 uint8* dst_u, uint8* dst_v, int width); | 728 uint8* dst_u, uint8* dst_v, int width); |
| 801 void RGB565ToUVRow_C(const uint8* src_rgb565, int src_stride_rgb565, | 729 void RGB565ToUVRow_C(const uint8* src_rgb565, int src_stride_rgb565, |
| 802 uint8* dst_u, uint8* dst_v, int width); | 730 uint8* dst_u, uint8* dst_v, int width); |
| 803 void ARGB1555ToUVRow_C(const uint8* src_argb1555, int src_stride_argb1555, | 731 void ARGB1555ToUVRow_C(const uint8* src_argb1555, int src_stride_argb1555, |
| 804 uint8* dst_u, uint8* dst_v, int width); | 732 uint8* dst_u, uint8* dst_v, int width); |
| 805 void ARGB4444ToUVRow_C(const uint8* src_argb4444, int src_stride_argb4444, | 733 void ARGB4444ToUVRow_C(const uint8* src_argb4444, int src_stride_argb4444, |
| 806 uint8* dst_u, uint8* dst_v, int width); | 734 uint8* dst_u, uint8* dst_v, int width); |
| 807 | 735 |
| 808 void ARGBToUV444Row_SSSE3(const uint8* src_argb, | 736 void ARGBToUV444Row_SSSE3(const uint8* src_argb, |
| 809 uint8* dst_u, uint8* dst_v, int width); | 737 uint8* dst_u, uint8* dst_v, int width); |
| 810 void ARGBToUV444Row_Unaligned_SSSE3(const uint8* src_argb, | |
| 811 uint8* dst_u, uint8* dst_v, int width); | |
| 812 void ARGBToUV444Row_Any_SSSE3(const uint8* src_argb, | 738 void ARGBToUV444Row_Any_SSSE3(const uint8* src_argb, |
| 813 uint8* dst_u, uint8* dst_v, int width); | 739 uint8* dst_u, uint8* dst_v, int width); |
| 814 | 740 |
| 815 void ARGBToUV422Row_SSSE3(const uint8* src_argb, | 741 void ARGBToUV422Row_SSSE3(const uint8* src_argb, |
| 816 uint8* dst_u, uint8* dst_v, int width); | 742 uint8* dst_u, uint8* dst_v, int width); |
| 817 void ARGBToUV422Row_Unaligned_SSSE3(const uint8* src_argb, | |
| 818 uint8* dst_u, uint8* dst_v, int width); | |
| 819 void ARGBToUV422Row_Any_SSSE3(const uint8* src_argb, | 743 void ARGBToUV422Row_Any_SSSE3(const uint8* src_argb, |
| 820 uint8* dst_u, uint8* dst_v, int width); | 744 uint8* dst_u, uint8* dst_v, int width); |
| 821 | 745 |
| 822 void ARGBToUV444Row_C(const uint8* src_argb, | 746 void ARGBToUV444Row_C(const uint8* src_argb, |
| 823 uint8* dst_u, uint8* dst_v, int width); | 747 uint8* dst_u, uint8* dst_v, int width); |
| 824 void ARGBToUV422Row_C(const uint8* src_argb, | 748 void ARGBToUV422Row_C(const uint8* src_argb, |
| 825 uint8* dst_u, uint8* dst_v, int width); | 749 uint8* dst_u, uint8* dst_v, int width); |
| 826 void ARGBToUV411Row_C(const uint8* src_argb, | 750 void ARGBToUV411Row_C(const uint8* src_argb, |
| 827 uint8* dst_u, uint8* dst_v, int width); | 751 uint8* dst_u, uint8* dst_v, int width); |
| 752 void ARGBToUVJ422Row_C(const uint8* src_argb, |
| 753 uint8* dst_u, uint8* dst_v, int width); |
| 828 | 754 |
| 829 void MirrorRow_AVX2(const uint8* src, uint8* dst, int width); | 755 void MirrorRow_AVX2(const uint8* src, uint8* dst, int width); |
| 830 void MirrorRow_SSSE3(const uint8* src, uint8* dst, int width); | 756 void MirrorRow_SSSE3(const uint8* src, uint8* dst, int width); |
| 831 void MirrorRow_SSE2(const uint8* src, uint8* dst, int width); | 757 void MirrorRow_SSE2(const uint8* src, uint8* dst, int width); |
| 832 void MirrorRow_NEON(const uint8* src, uint8* dst, int width); | 758 void MirrorRow_NEON(const uint8* src, uint8* dst, int width); |
| 833 void MirrorRow_MIPS_DSPR2(const uint8* src, uint8* dst, int width); | 759 void MirrorRow_MIPS_DSPR2(const uint8* src, uint8* dst, int width); |
| 834 void MirrorRow_C(const uint8* src, uint8* dst, int width); | 760 void MirrorRow_C(const uint8* src, uint8* dst, int width); |
| 761 void MirrorRow_Any_AVX2(const uint8* src, uint8* dst, int width); |
| 762 void MirrorRow_Any_SSSE3(const uint8* src, uint8* dst, int width); |
| 763 void MirrorRow_Any_SSE2(const uint8* src, uint8* dst, int width); |
| 764 void MirrorRow_Any_NEON(const uint8* src, uint8* dst, int width); |
| 835 | 765 |
| 836 void MirrorUVRow_SSSE3(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 766 void MirrorUVRow_SSSE3(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |
| 837 int width); | 767 int width); |
| 838 void MirrorUVRow_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 768 void MirrorUVRow_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |
| 839 int width); | 769 int width); |
| 840 void MirrorUVRow_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 770 void MirrorUVRow_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |
| 841 int width); | 771 int width); |
| 842 void MirrorUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 772 void MirrorUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |
| 843 int width); | 773 int width); |
| 844 | 774 |
| 845 void ARGBMirrorRow_AVX2(const uint8* src, uint8* dst, int width); | 775 void ARGBMirrorRow_AVX2(const uint8* src, uint8* dst, int width); |
| 846 void ARGBMirrorRow_SSSE3(const uint8* src, uint8* dst, int width); | 776 void ARGBMirrorRow_SSE2(const uint8* src, uint8* dst, int width); |
| 847 void ARGBMirrorRow_NEON(const uint8* src, uint8* dst, int width); | 777 void ARGBMirrorRow_NEON(const uint8* src, uint8* dst, int width); |
| 848 void ARGBMirrorRow_C(const uint8* src, uint8* dst, int width); | 778 void ARGBMirrorRow_C(const uint8* src, uint8* dst, int width); |
| 779 void ARGBMirrorRow_Any_AVX2(const uint8* src, uint8* dst, int width); |
| 780 void ARGBMirrorRow_Any_SSE2(const uint8* src, uint8* dst, int width); |
| 781 void ARGBMirrorRow_Any_NEON(const uint8* src, uint8* dst, int width); |
| 849 | 782 |
| 850 void SplitUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); | 783 void SplitUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); |
| 851 void SplitUVRow_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); | 784 void SplitUVRow_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); |
| 852 void SplitUVRow_AVX2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); | 785 void SplitUVRow_AVX2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); |
| 853 void SplitUVRow_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); | 786 void SplitUVRow_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); |
| 854 void SplitUVRow_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 787 void SplitUVRow_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |
| 855 int pix); | 788 int pix); |
| 856 void SplitUVRow_Unaligned_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | |
| 857 int pix); | |
| 858 void SplitUVRow_Unaligned_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, | |
| 859 uint8* dst_v, int pix); | |
| 860 void SplitUVRow_Any_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 789 void SplitUVRow_Any_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |
| 861 int pix); | 790 int pix); |
| 862 void SplitUVRow_Any_AVX2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 791 void SplitUVRow_Any_AVX2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |
| 863 int pix); | 792 int pix); |
| 864 void SplitUVRow_Any_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 793 void SplitUVRow_Any_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |
| 865 int pix); | 794 int pix); |
| 866 void SplitUVRow_Any_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 795 void SplitUVRow_Any_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |
| 867 int pix); | 796 int pix); |
| 868 | 797 |
| 869 void MergeUVRow_C(const uint8* src_u, const uint8* src_v, uint8* dst_uv, | 798 void MergeUVRow_C(const uint8* src_u, const uint8* src_v, uint8* dst_uv, |
| 870 int width); | 799 int width); |
| 871 void MergeUVRow_SSE2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, | 800 void MergeUVRow_SSE2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, |
| 872 int width); | 801 int width); |
| 873 void MergeUVRow_AVX2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, | 802 void MergeUVRow_AVX2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, |
| 874 int width); | 803 int width); |
| 875 void MergeUVRow_NEON(const uint8* src_u, const uint8* src_v, uint8* dst_uv, | 804 void MergeUVRow_NEON(const uint8* src_u, const uint8* src_v, uint8* dst_uv, |
| 876 int width); | 805 int width); |
| 877 void MergeUVRow_Unaligned_SSE2(const uint8* src_u, const uint8* src_v, | |
| 878 uint8* dst_uv, int width); | |
| 879 void MergeUVRow_Any_SSE2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, | 806 void MergeUVRow_Any_SSE2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, |
| 880 int width); | 807 int width); |
| 881 void MergeUVRow_Any_AVX2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, | 808 void MergeUVRow_Any_AVX2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, |
| 882 int width); | 809 int width); |
| 883 void MergeUVRow_Any_NEON(const uint8* src_u, const uint8* src_v, uint8* dst_uv, | 810 void MergeUVRow_Any_NEON(const uint8* src_u, const uint8* src_v, uint8* dst_uv, |
| 884 int width); | 811 int width); |
| 885 | 812 |
| 886 void CopyRow_SSE2(const uint8* src, uint8* dst, int count); | 813 void CopyRow_SSE2(const uint8* src, uint8* dst, int count); |
| 814 void CopyRow_AVX(const uint8* src, uint8* dst, int count); |
| 887 void CopyRow_ERMS(const uint8* src, uint8* dst, int count); | 815 void CopyRow_ERMS(const uint8* src, uint8* dst, int count); |
| 888 void CopyRow_X86(const uint8* src, uint8* dst, int count); | |
| 889 void CopyRow_NEON(const uint8* src, uint8* dst, int count); | 816 void CopyRow_NEON(const uint8* src, uint8* dst, int count); |
| 890 void CopyRow_MIPS(const uint8* src, uint8* dst, int count); | 817 void CopyRow_MIPS(const uint8* src, uint8* dst, int count); |
| 891 void CopyRow_C(const uint8* src, uint8* dst, int count); | 818 void CopyRow_C(const uint8* src, uint8* dst, int count); |
| 819 void CopyRow_Any_SSE2(const uint8* src, uint8* dst, int count); |
| 820 void CopyRow_Any_AVX(const uint8* src, uint8* dst, int count); |
| 821 void CopyRow_Any_NEON(const uint8* src, uint8* dst, int count); |
| 892 | 822 |
| 893 void CopyRow_16_C(const uint16* src, uint16* dst, int count); | 823 void CopyRow_16_C(const uint16* src, uint16* dst, int count); |
| 894 | 824 |
| 895 void ARGBCopyAlphaRow_C(const uint8* src_argb, uint8* dst_argb, int width); | 825 void ARGBCopyAlphaRow_C(const uint8* src_argb, uint8* dst_argb, int width); |
| 896 void ARGBCopyAlphaRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width); | 826 void ARGBCopyAlphaRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width); |
| 897 void ARGBCopyAlphaRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width); | 827 void ARGBCopyAlphaRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width); |
| 898 | 828 |
| 899 void ARGBCopyYToAlphaRow_C(const uint8* src_y, uint8* dst_argb, int width); | 829 void ARGBCopyYToAlphaRow_C(const uint8* src_y, uint8* dst_argb, int width); |
| 900 void ARGBCopyYToAlphaRow_SSE2(const uint8* src_y, uint8* dst_argb, int width); | 830 void ARGBCopyYToAlphaRow_SSE2(const uint8* src_y, uint8* dst_argb, int width); |
| 901 void ARGBCopyYToAlphaRow_AVX2(const uint8* src_y, uint8* dst_argb, int width); | 831 void ARGBCopyYToAlphaRow_AVX2(const uint8* src_y, uint8* dst_argb, int width); |
| 902 | 832 |
| 903 void SetRow_X86(uint8* dst, uint32 v32, int count); | 833 void SetRow_C(uint8* dst, uint8 v8, int count); |
| 904 void ARGBSetRows_X86(uint8* dst, uint32 v32, int width, | 834 void SetRow_X86(uint8* dst, uint8 v8, int count); |
| 905 int dst_stride, int height); | 835 void SetRow_ERMS(uint8* dst, uint8 v8, int count); |
| 906 void SetRow_NEON(uint8* dst, uint32 v32, int count); | 836 void SetRow_NEON(uint8* dst, uint8 v8, int count); |
| 907 void ARGBSetRows_NEON(uint8* dst, uint32 v32, int width, | 837 void SetRow_Any_X86(uint8* dst, uint8 v8, int count); |
| 908 int dst_stride, int height); | 838 void SetRow_Any_NEON(uint8* dst, uint8 v8, int count); |
| 909 void SetRow_C(uint8* dst, uint32 v32, int count); | 839 |
| 910 void ARGBSetRows_C(uint8* dst, uint32 v32, int width, int dst_stride, | 840 void ARGBSetRow_C(uint8* dst_argb, uint32 v32, int count); |
| 911 int height); | 841 void ARGBSetRow_X86(uint8* dst_argb, uint32 v32, int count); |
| 842 void ARGBSetRow_NEON(uint8* dst_argb, uint32 v32, int count); |
| 843 void ARGBSetRow_Any_NEON(uint8* dst_argb, uint32 v32, int count); |
| 912 | 844 |
| 913 // ARGBShufflers for BGRAToARGB etc. | 845 // ARGBShufflers for BGRAToARGB etc. |
| 914 void ARGBShuffleRow_C(const uint8* src_argb, uint8* dst_argb, | 846 void ARGBShuffleRow_C(const uint8* src_argb, uint8* dst_argb, |
| 915 const uint8* shuffler, int pix); | 847 const uint8* shuffler, int pix); |
| 916 void ARGBShuffleRow_SSE2(const uint8* src_argb, uint8* dst_argb, | 848 void ARGBShuffleRow_SSE2(const uint8* src_argb, uint8* dst_argb, |
| 917 const uint8* shuffler, int pix); | 849 const uint8* shuffler, int pix); |
| 918 void ARGBShuffleRow_SSSE3(const uint8* src_argb, uint8* dst_argb, | 850 void ARGBShuffleRow_SSSE3(const uint8* src_argb, uint8* dst_argb, |
| 919 const uint8* shuffler, int pix); | 851 const uint8* shuffler, int pix); |
| 920 void ARGBShuffleRow_AVX2(const uint8* src_argb, uint8* dst_argb, | 852 void ARGBShuffleRow_AVX2(const uint8* src_argb, uint8* dst_argb, |
| 921 const uint8* shuffler, int pix); | 853 const uint8* shuffler, int pix); |
| 922 void ARGBShuffleRow_NEON(const uint8* src_argb, uint8* dst_argb, | 854 void ARGBShuffleRow_NEON(const uint8* src_argb, uint8* dst_argb, |
| 923 const uint8* shuffler, int pix); | 855 const uint8* shuffler, int pix); |
| 924 void ARGBShuffleRow_Unaligned_SSSE3(const uint8* src_argb, uint8* dst_argb, | |
| 925 const uint8* shuffler, int pix); | |
| 926 void ARGBShuffleRow_Any_SSE2(const uint8* src_argb, uint8* dst_argb, | 856 void ARGBShuffleRow_Any_SSE2(const uint8* src_argb, uint8* dst_argb, |
| 927 const uint8* shuffler, int pix); | 857 const uint8* shuffler, int pix); |
| 928 void ARGBShuffleRow_Any_SSSE3(const uint8* src_argb, uint8* dst_argb, | 858 void ARGBShuffleRow_Any_SSSE3(const uint8* src_argb, uint8* dst_argb, |
| 929 const uint8* shuffler, int pix); | 859 const uint8* shuffler, int pix); |
| 930 void ARGBShuffleRow_Any_AVX2(const uint8* src_argb, uint8* dst_argb, | 860 void ARGBShuffleRow_Any_AVX2(const uint8* src_argb, uint8* dst_argb, |
| 931 const uint8* shuffler, int pix); | 861 const uint8* shuffler, int pix); |
| 932 void ARGBShuffleRow_Any_NEON(const uint8* src_argb, uint8* dst_argb, | 862 void ARGBShuffleRow_Any_NEON(const uint8* src_argb, uint8* dst_argb, |
| 933 const uint8* shuffler, int pix); | 863 const uint8* shuffler, int pix); |
| 934 | 864 |
| 935 void RGB24ToARGBRow_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix); | 865 void RGB24ToARGBRow_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 968 int pix); | 898 int pix); |
| 969 void ARGB4444ToARGBRow_Any_NEON(const uint8* src_argb4444, uint8* dst_argb, | 899 void ARGB4444ToARGBRow_Any_NEON(const uint8* src_argb4444, uint8* dst_argb, |
| 970 int pix); | 900 int pix); |
| 971 | 901 |
| 972 void ARGBToRGB24Row_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); | 902 void ARGBToRGB24Row_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 973 void ARGBToRAWRow_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); | 903 void ARGBToRAWRow_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 974 void ARGBToRGB565Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); | 904 void ARGBToRGB565Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 975 void ARGBToARGB1555Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); | 905 void ARGBToARGB1555Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 976 void ARGBToARGB4444Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); | 906 void ARGBToARGB4444Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 977 | 907 |
| 908 void ARGBToRGB565Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 909 void ARGBToARGB1555Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 910 void ARGBToARGB4444Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 911 |
| 978 void ARGBToRGB24Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 912 void ARGBToRGB24Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 979 void ARGBToRAWRow_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 913 void ARGBToRAWRow_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 980 void ARGBToRGB565Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 914 void ARGBToRGB565Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 981 void ARGBToARGB1555Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 915 void ARGBToARGB1555Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 982 void ARGBToARGB4444Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 916 void ARGBToARGB4444Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 983 | 917 |
| 984 void ARGBToRGBARow_C(const uint8* src_argb, uint8* dst_rgb, int pix); | 918 void ARGBToRGBARow_C(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 985 void ARGBToRGB24Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); | 919 void ARGBToRGB24Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 986 void ARGBToRAWRow_C(const uint8* src_argb, uint8* dst_rgb, int pix); | 920 void ARGBToRAWRow_C(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 987 void ARGBToRGB565Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); | 921 void ARGBToRGB565Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 988 void ARGBToARGB1555Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); | 922 void ARGBToARGB1555Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 989 void ARGBToARGB4444Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); | 923 void ARGBToARGB4444Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 990 | 924 |
| 925 void ARGBToRGB565DitherRow_C(const uint8* src_argb, uint8* dst_rgb, |
| 926 const uint8* dither8x8, int pix); |
| 927 |
| 991 void I400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int pix); | 928 void I400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int pix); |
| 992 void I400ToARGBRow_Unaligned_SSE2(const uint8* src_y, uint8* dst_argb, int pix); | |
| 993 void I400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int pix); | 929 void I400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int pix); |
| 994 void I400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int pix); | 930 void I400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int pix); |
| 995 void I400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int pix); | 931 void I400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int pix); |
| 996 void I400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int pix); | 932 void I400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int pix); |
| 997 | 933 |
| 998 void I444ToARGBRow_C(const uint8* src_y, | 934 void I444ToARGBRow_C(const uint8* src_y, |
| 999 const uint8* src_u, | 935 const uint8* src_u, |
| 1000 const uint8* src_v, | 936 const uint8* src_v, |
| 1001 uint8* dst_argb, | 937 uint8* dst_argb, |
| 1002 int width); | 938 int width); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1025 void NV21ToARGBRow_C(const uint8* src_y, | 961 void NV21ToARGBRow_C(const uint8* src_y, |
| 1026 const uint8* src_vu, | 962 const uint8* src_vu, |
| 1027 uint8* dst_argb, | 963 uint8* dst_argb, |
| 1028 int width); | 964 int width); |
| 1029 void YUY2ToARGBRow_C(const uint8* src_yuy2, | 965 void YUY2ToARGBRow_C(const uint8* src_yuy2, |
| 1030 uint8* dst_argb, | 966 uint8* dst_argb, |
| 1031 int width); | 967 int width); |
| 1032 void UYVYToARGBRow_C(const uint8* src_uyvy, | 968 void UYVYToARGBRow_C(const uint8* src_uyvy, |
| 1033 uint8* dst_argb, | 969 uint8* dst_argb, |
| 1034 int width); | 970 int width); |
| 971 void J422ToARGBRow_C(const uint8* src_y, |
| 972 const uint8* src_u, |
| 973 const uint8* src_v, |
| 974 uint8* dst_argb, |
| 975 int width); |
| 1035 void I422ToBGRARow_C(const uint8* src_y, | 976 void I422ToBGRARow_C(const uint8* src_y, |
| 1036 const uint8* src_u, | 977 const uint8* src_u, |
| 1037 const uint8* src_v, | 978 const uint8* src_v, |
| 1038 uint8* dst_bgra, | 979 uint8* dst_bgra, |
| 1039 int width); | 980 int width); |
| 1040 void I422ToABGRRow_C(const uint8* src_y, | 981 void I422ToABGRRow_C(const uint8* src_y, |
| 1041 const uint8* src_u, | 982 const uint8* src_u, |
| 1042 const uint8* src_v, | 983 const uint8* src_v, |
| 1043 uint8* dst_abgr, | 984 uint8* dst_abgr, |
| 1044 int width); | 985 int width); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1065 void I422ToARGB1555Row_C(const uint8* src_y, | 1006 void I422ToARGB1555Row_C(const uint8* src_y, |
| 1066 const uint8* src_u, | 1007 const uint8* src_u, |
| 1067 const uint8* src_v, | 1008 const uint8* src_v, |
| 1068 uint8* dst_argb4444, | 1009 uint8* dst_argb4444, |
| 1069 int width); | 1010 int width); |
| 1070 void I422ToRGB565Row_C(const uint8* src_y, | 1011 void I422ToRGB565Row_C(const uint8* src_y, |
| 1071 const uint8* src_u, | 1012 const uint8* src_u, |
| 1072 const uint8* src_v, | 1013 const uint8* src_v, |
| 1073 uint8* dst_rgb565, | 1014 uint8* dst_rgb565, |
| 1074 int width); | 1015 int width); |
| 1075 void YToARGBRow_C(const uint8* src_y, | |
| 1076 uint8* dst_argb, | |
| 1077 int width); | |
| 1078 void I422ToARGBRow_AVX2(const uint8* src_y, | 1016 void I422ToARGBRow_AVX2(const uint8* src_y, |
| 1079 const uint8* src_u, | 1017 const uint8* src_u, |
| 1080 const uint8* src_v, | 1018 const uint8* src_v, |
| 1081 uint8* dst_argb, | 1019 uint8* dst_argb, |
| 1082 int width); | 1020 int width); |
| 1021 void I422ToBGRARow_AVX2(const uint8* src_y, |
| 1022 const uint8* src_u, |
| 1023 const uint8* src_v, |
| 1024 uint8* dst_argb, |
| 1025 int width); |
| 1026 void I422ToRGBARow_AVX2(const uint8* src_y, |
| 1027 const uint8* src_u, |
| 1028 const uint8* src_v, |
| 1029 uint8* dst_argb, |
| 1030 int width); |
| 1031 void I422ToABGRRow_AVX2(const uint8* src_y, |
| 1032 const uint8* src_u, |
| 1033 const uint8* src_v, |
| 1034 uint8* dst_argb, |
| 1035 int width); |
| 1083 void I444ToARGBRow_SSSE3(const uint8* src_y, | 1036 void I444ToARGBRow_SSSE3(const uint8* src_y, |
| 1084 const uint8* src_u, | 1037 const uint8* src_u, |
| 1085 const uint8* src_v, | 1038 const uint8* src_v, |
| 1086 uint8* dst_argb, | 1039 uint8* dst_argb, |
| 1087 int width); | 1040 int width); |
| 1088 void I422ToARGBRow_SSSE3(const uint8* src_y, | 1041 void I422ToARGBRow_SSSE3(const uint8* src_y, |
| 1089 const uint8* src_u, | 1042 const uint8* src_u, |
| 1090 const uint8* src_v, | 1043 const uint8* src_v, |
| 1091 uint8* dst_argb, | 1044 uint8* dst_argb, |
| 1092 int width); | 1045 int width); |
| 1093 void I411ToARGBRow_SSSE3(const uint8* src_y, | 1046 void I411ToARGBRow_SSSE3(const uint8* src_y, |
| 1094 const uint8* src_u, | 1047 const uint8* src_u, |
| 1095 const uint8* src_v, | 1048 const uint8* src_v, |
| 1096 uint8* dst_argb, | 1049 uint8* dst_argb, |
| 1097 int width); | 1050 int width); |
| 1098 void NV12ToARGBRow_SSSE3(const uint8* src_y, | 1051 void NV12ToARGBRow_SSSE3(const uint8* src_y, |
| 1099 const uint8* src_uv, | 1052 const uint8* src_uv, |
| 1100 uint8* dst_argb, | 1053 uint8* dst_argb, |
| 1101 int width); | 1054 int width); |
| 1102 void NV21ToARGBRow_SSSE3(const uint8* src_y, | 1055 void NV21ToARGBRow_SSSE3(const uint8* src_y, |
| 1103 const uint8* src_vu, | 1056 const uint8* src_vu, |
| 1104 uint8* dst_argb, | 1057 uint8* dst_argb, |
| 1105 int width); | 1058 int width); |
| 1059 void NV12ToARGBRow_AVX2(const uint8* src_y, |
| 1060 const uint8* src_uv, |
| 1061 uint8* dst_argb, |
| 1062 int width); |
| 1063 void NV21ToARGBRow_AVX2(const uint8* src_y, |
| 1064 const uint8* src_vu, |
| 1065 uint8* dst_argb, |
| 1066 int width); |
| 1106 void NV12ToRGB565Row_SSSE3(const uint8* src_y, | 1067 void NV12ToRGB565Row_SSSE3(const uint8* src_y, |
| 1107 const uint8* src_uv, | 1068 const uint8* src_uv, |
| 1108 uint8* dst_argb, | 1069 uint8* dst_argb, |
| 1109 int width); | 1070 int width); |
| 1110 void NV21ToRGB565Row_SSSE3(const uint8* src_y, | 1071 void NV21ToRGB565Row_SSSE3(const uint8* src_y, |
| 1111 const uint8* src_vu, | 1072 const uint8* src_vu, |
| 1112 uint8* dst_argb, | 1073 uint8* dst_argb, |
| 1113 int width); | 1074 int width); |
| 1075 void NV12ToRGB565Row_AVX2(const uint8* src_y, |
| 1076 const uint8* src_uv, |
| 1077 uint8* dst_argb, |
| 1078 int width); |
| 1079 void NV21ToRGB565Row_AVX2(const uint8* src_y, |
| 1080 const uint8* src_vu, |
| 1081 uint8* dst_argb, |
| 1082 int width); |
| 1114 void YUY2ToARGBRow_SSSE3(const uint8* src_yuy2, | 1083 void YUY2ToARGBRow_SSSE3(const uint8* src_yuy2, |
| 1115 uint8* dst_argb, | 1084 uint8* dst_argb, |
| 1116 int width); | 1085 int width); |
| 1117 void UYVYToARGBRow_SSSE3(const uint8* src_uyvy, | 1086 void UYVYToARGBRow_SSSE3(const uint8* src_uyvy, |
| 1118 uint8* dst_argb, | 1087 uint8* dst_argb, |
| 1119 int width); | 1088 int width); |
| 1089 void YUY2ToARGBRow_AVX2(const uint8* src_yuy2, |
| 1090 uint8* dst_argb, |
| 1091 int width); |
| 1092 void UYVYToARGBRow_AVX2(const uint8* src_uyvy, |
| 1093 uint8* dst_argb, |
| 1094 int width); |
| 1095 void J422ToARGBRow_SSSE3(const uint8* src_y, |
| 1096 const uint8* src_u, |
| 1097 const uint8* src_v, |
| 1098 uint8* dst_argb, |
| 1099 int width); |
| 1120 void I422ToBGRARow_SSSE3(const uint8* src_y, | 1100 void I422ToBGRARow_SSSE3(const uint8* src_y, |
| 1121 const uint8* src_u, | 1101 const uint8* src_u, |
| 1122 const uint8* src_v, | 1102 const uint8* src_v, |
| 1123 uint8* dst_bgra, | 1103 uint8* dst_bgra, |
| 1124 int width); | 1104 int width); |
| 1125 void I422ToABGRRow_SSSE3(const uint8* src_y, | 1105 void I422ToABGRRow_SSSE3(const uint8* src_y, |
| 1126 const uint8* src_u, | 1106 const uint8* src_u, |
| 1127 const uint8* src_v, | 1107 const uint8* src_v, |
| 1128 uint8* dst_abgr, | 1108 uint8* dst_abgr, |
| 1129 int width); | 1109 int width); |
| 1130 void I422ToRGBARow_SSSE3(const uint8* src_y, | 1110 void I422ToRGBARow_SSSE3(const uint8* src_y, |
| 1131 const uint8* src_u, | 1111 const uint8* src_u, |
| 1132 const uint8* src_v, | 1112 const uint8* src_v, |
| 1133 uint8* dst_rgba, | 1113 uint8* dst_rgba, |
| 1134 int width); | 1114 int width); |
| 1135 void I422ToARGB4444Row_SSSE3(const uint8* src_y, | 1115 void I422ToARGB4444Row_SSSE3(const uint8* src_y, |
| 1136 const uint8* src_u, | 1116 const uint8* src_u, |
| 1137 const uint8* src_v, | 1117 const uint8* src_v, |
| 1138 uint8* dst_argb, | 1118 uint8* dst_argb, |
| 1139 int width); | 1119 int width); |
| 1120 void I422ToARGB4444Row_AVX2(const uint8* src_y, |
| 1121 const uint8* src_u, |
| 1122 const uint8* src_v, |
| 1123 uint8* dst_argb, |
| 1124 int width); |
| 1140 void I422ToARGB1555Row_SSSE3(const uint8* src_y, | 1125 void I422ToARGB1555Row_SSSE3(const uint8* src_y, |
| 1141 const uint8* src_u, | 1126 const uint8* src_u, |
| 1142 const uint8* src_v, | 1127 const uint8* src_v, |
| 1143 uint8* dst_argb, | 1128 uint8* dst_argb, |
| 1144 int width); | 1129 int width); |
| 1130 void I422ToARGB1555Row_AVX2(const uint8* src_y, |
| 1131 const uint8* src_u, |
| 1132 const uint8* src_v, |
| 1133 uint8* dst_argb, |
| 1134 int width); |
| 1145 void I422ToRGB565Row_SSSE3(const uint8* src_y, | 1135 void I422ToRGB565Row_SSSE3(const uint8* src_y, |
| 1146 const uint8* src_u, | 1136 const uint8* src_u, |
| 1147 const uint8* src_v, | 1137 const uint8* src_v, |
| 1148 uint8* dst_argb, | 1138 uint8* dst_argb, |
| 1149 int width); | 1139 int width); |
| 1150 // RGB24/RAW are unaligned. | 1140 void I422ToRGB565Row_AVX2(const uint8* src_y, |
| 1141 const uint8* src_u, |
| 1142 const uint8* src_v, |
| 1143 uint8* dst_argb, |
| 1144 int width); |
| 1151 void I422ToRGB24Row_SSSE3(const uint8* src_y, | 1145 void I422ToRGB24Row_SSSE3(const uint8* src_y, |
| 1152 const uint8* src_u, | 1146 const uint8* src_u, |
| 1153 const uint8* src_v, | 1147 const uint8* src_v, |
| 1154 uint8* dst_rgb24, | 1148 uint8* dst_rgb24, |
| 1155 int width); | 1149 int width); |
| 1156 void I422ToRAWRow_SSSE3(const uint8* src_y, | 1150 void I422ToRAWRow_SSSE3(const uint8* src_y, |
| 1157 const uint8* src_u, | 1151 const uint8* src_u, |
| 1158 const uint8* src_v, | 1152 const uint8* src_v, |
| 1159 uint8* dst_raw, | 1153 uint8* dst_raw, |
| 1160 int width); | 1154 int width); |
| 1161 | |
| 1162 void I444ToARGBRow_Unaligned_SSSE3(const uint8* src_y, | |
| 1163 const uint8* src_u, | |
| 1164 const uint8* src_v, | |
| 1165 uint8* dst_argb, | |
| 1166 int width); | |
| 1167 void I422ToARGBRow_Unaligned_SSSE3(const uint8* src_y, | |
| 1168 const uint8* src_u, | |
| 1169 const uint8* src_v, | |
| 1170 uint8* dst_argb, | |
| 1171 int width); | |
| 1172 void I411ToARGBRow_Unaligned_SSSE3(const uint8* src_y, | |
| 1173 const uint8* src_u, | |
| 1174 const uint8* src_v, | |
| 1175 uint8* dst_argb, | |
| 1176 int width); | |
| 1177 void NV12ToARGBRow_Unaligned_SSSE3(const uint8* src_y, | |
| 1178 const uint8* src_uv, | |
| 1179 uint8* dst_argb, | |
| 1180 int width); | |
| 1181 void NV21ToARGBRow_Unaligned_SSSE3(const uint8* src_y, | |
| 1182 const uint8* src_vu, | |
| 1183 uint8* dst_argb, | |
| 1184 int width); | |
| 1185 void YUY2ToARGBRow_Unaligned_SSSE3(const uint8* src_yuy2, | |
| 1186 uint8* dst_argb, | |
| 1187 int width); | |
| 1188 void UYVYToARGBRow_Unaligned_SSSE3(const uint8* src_uyvy, | |
| 1189 uint8* dst_argb, | |
| 1190 int width); | |
| 1191 void I422ToBGRARow_Unaligned_SSSE3(const uint8* src_y, | |
| 1192 const uint8* src_u, | |
| 1193 const uint8* src_v, | |
| 1194 uint8* dst_bgra, | |
| 1195 int width); | |
| 1196 void I422ToABGRRow_Unaligned_SSSE3(const uint8* src_y, | |
| 1197 const uint8* src_u, | |
| 1198 const uint8* src_v, | |
| 1199 uint8* dst_abgr, | |
| 1200 int width); | |
| 1201 void I422ToRGBARow_Unaligned_SSSE3(const uint8* src_y, | |
| 1202 const uint8* src_u, | |
| 1203 const uint8* src_v, | |
| 1204 uint8* dst_rgba, | |
| 1205 int width); | |
| 1206 void I422ToARGBRow_Any_AVX2(const uint8* src_y, | 1155 void I422ToARGBRow_Any_AVX2(const uint8* src_y, |
| 1207 const uint8* src_u, | 1156 const uint8* src_u, |
| 1208 const uint8* src_v, | 1157 const uint8* src_v, |
| 1209 uint8* dst_argb, | 1158 uint8* dst_argb, |
| 1210 int width); | 1159 int width); |
| 1160 void I422ToBGRARow_Any_AVX2(const uint8* src_y, |
| 1161 const uint8* src_u, |
| 1162 const uint8* src_v, |
| 1163 uint8* dst_argb, |
| 1164 int width); |
| 1165 void I422ToRGBARow_Any_AVX2(const uint8* src_y, |
| 1166 const uint8* src_u, |
| 1167 const uint8* src_v, |
| 1168 uint8* dst_argb, |
| 1169 int width); |
| 1170 void I422ToABGRRow_Any_AVX2(const uint8* src_y, |
| 1171 const uint8* src_u, |
| 1172 const uint8* src_v, |
| 1173 uint8* dst_argb, |
| 1174 int width); |
| 1211 void I444ToARGBRow_Any_SSSE3(const uint8* src_y, | 1175 void I444ToARGBRow_Any_SSSE3(const uint8* src_y, |
| 1212 const uint8* src_u, | 1176 const uint8* src_u, |
| 1213 const uint8* src_v, | 1177 const uint8* src_v, |
| 1214 uint8* dst_argb, | 1178 uint8* dst_argb, |
| 1215 int width); | 1179 int width); |
| 1216 void I422ToARGBRow_Any_SSSE3(const uint8* src_y, | 1180 void I422ToARGBRow_Any_SSSE3(const uint8* src_y, |
| 1217 const uint8* src_u, | 1181 const uint8* src_u, |
| 1218 const uint8* src_v, | 1182 const uint8* src_v, |
| 1219 uint8* dst_argb, | 1183 uint8* dst_argb, |
| 1220 int width); | 1184 int width); |
| 1221 void I411ToARGBRow_Any_SSSE3(const uint8* src_y, | 1185 void I411ToARGBRow_Any_SSSE3(const uint8* src_y, |
| 1222 const uint8* src_u, | 1186 const uint8* src_u, |
| 1223 const uint8* src_v, | 1187 const uint8* src_v, |
| 1224 uint8* dst_argb, | 1188 uint8* dst_argb, |
| 1225 int width); | 1189 int width); |
| 1226 void NV12ToARGBRow_Any_SSSE3(const uint8* src_y, | 1190 void NV12ToARGBRow_Any_SSSE3(const uint8* src_y, |
| 1227 const uint8* src_uv, | 1191 const uint8* src_uv, |
| 1228 uint8* dst_argb, | 1192 uint8* dst_argb, |
| 1229 int width); | 1193 int width); |
| 1230 void NV21ToARGBRow_Any_SSSE3(const uint8* src_y, | 1194 void NV21ToARGBRow_Any_SSSE3(const uint8* src_y, |
| 1231 const uint8* src_vu, | 1195 const uint8* src_vu, |
| 1232 uint8* dst_argb, | 1196 uint8* dst_argb, |
| 1233 int width); | 1197 int width); |
| 1198 void NV12ToARGBRow_Any_AVX2(const uint8* src_y, |
| 1199 const uint8* src_uv, |
| 1200 uint8* dst_argb, |
| 1201 int width); |
| 1202 void NV21ToARGBRow_Any_AVX2(const uint8* src_y, |
| 1203 const uint8* src_vu, |
| 1204 uint8* dst_argb, |
| 1205 int width); |
| 1234 void NV12ToRGB565Row_Any_SSSE3(const uint8* src_y, | 1206 void NV12ToRGB565Row_Any_SSSE3(const uint8* src_y, |
| 1235 const uint8* src_uv, | 1207 const uint8* src_uv, |
| 1236 uint8* dst_argb, | 1208 uint8* dst_argb, |
| 1237 int width); | 1209 int width); |
| 1238 void NV21ToRGB565Row_Any_SSSE3(const uint8* src_y, | 1210 void NV21ToRGB565Row_Any_SSSE3(const uint8* src_y, |
| 1239 const uint8* src_vu, | 1211 const uint8* src_vu, |
| 1240 uint8* dst_argb, | 1212 uint8* dst_argb, |
| 1241 int width); | 1213 int width); |
| 1214 void NV12ToRGB565Row_Any_AVX2(const uint8* src_y, |
| 1215 const uint8* src_uv, |
| 1216 uint8* dst_argb, |
| 1217 int width); |
| 1218 void NV21ToRGB565Row_Any_AVX2(const uint8* src_y, |
| 1219 const uint8* src_vu, |
| 1220 uint8* dst_argb, |
| 1221 int width); |
| 1242 void YUY2ToARGBRow_Any_SSSE3(const uint8* src_yuy2, | 1222 void YUY2ToARGBRow_Any_SSSE3(const uint8* src_yuy2, |
| 1243 uint8* dst_argb, | 1223 uint8* dst_argb, |
| 1244 int width); | 1224 int width); |
| 1245 void UYVYToARGBRow_Any_SSSE3(const uint8* src_uyvy, | 1225 void UYVYToARGBRow_Any_SSSE3(const uint8* src_uyvy, |
| 1246 uint8* dst_argb, | 1226 uint8* dst_argb, |
| 1247 int width); | 1227 int width); |
| 1228 void YUY2ToARGBRow_Any_AVX2(const uint8* src_yuy2, |
| 1229 uint8* dst_argb, |
| 1230 int width); |
| 1231 void UYVYToARGBRow_Any_AVX2(const uint8* src_uyvy, |
| 1232 uint8* dst_argb, |
| 1233 int width); |
| 1248 void I422ToBGRARow_Any_SSSE3(const uint8* src_y, | 1234 void I422ToBGRARow_Any_SSSE3(const uint8* src_y, |
| 1249 const uint8* src_u, | 1235 const uint8* src_u, |
| 1250 const uint8* src_v, | 1236 const uint8* src_v, |
| 1251 uint8* dst_bgra, | 1237 uint8* dst_bgra, |
| 1252 int width); | 1238 int width); |
| 1253 void I422ToABGRRow_Any_SSSE3(const uint8* src_y, | 1239 void I422ToABGRRow_Any_SSSE3(const uint8* src_y, |
| 1254 const uint8* src_u, | 1240 const uint8* src_u, |
| 1255 const uint8* src_v, | 1241 const uint8* src_v, |
| 1256 uint8* dst_abgr, | 1242 uint8* dst_abgr, |
| 1257 int width); | 1243 int width); |
| 1258 void I422ToRGBARow_Any_SSSE3(const uint8* src_y, | 1244 void I422ToRGBARow_Any_SSSE3(const uint8* src_y, |
| 1259 const uint8* src_u, | 1245 const uint8* src_u, |
| 1260 const uint8* src_v, | 1246 const uint8* src_v, |
| 1261 uint8* dst_rgba, | 1247 uint8* dst_rgba, |
| 1262 int width); | 1248 int width); |
| 1263 void I422ToARGB4444Row_Any_SSSE3(const uint8* src_y, | 1249 void I422ToARGB4444Row_Any_SSSE3(const uint8* src_y, |
| 1264 const uint8* src_u, | 1250 const uint8* src_u, |
| 1265 const uint8* src_v, | 1251 const uint8* src_v, |
| 1266 uint8* dst_rgba, | 1252 uint8* dst_rgba, |
| 1267 int width); | 1253 int width); |
| 1254 void I422ToARGB4444Row_Any_AVX2(const uint8* src_y, |
| 1255 const uint8* src_u, |
| 1256 const uint8* src_v, |
| 1257 uint8* dst_rgba, |
| 1258 int width); |
| 1268 void I422ToARGB1555Row_Any_SSSE3(const uint8* src_y, | 1259 void I422ToARGB1555Row_Any_SSSE3(const uint8* src_y, |
| 1269 const uint8* src_u, | 1260 const uint8* src_u, |
| 1270 const uint8* src_v, | 1261 const uint8* src_v, |
| 1271 uint8* dst_rgba, | 1262 uint8* dst_rgba, |
| 1272 int width); | 1263 int width); |
| 1264 void I422ToARGB1555Row_Any_AVX2(const uint8* src_y, |
| 1265 const uint8* src_u, |
| 1266 const uint8* src_v, |
| 1267 uint8* dst_rgba, |
| 1268 int width); |
| 1273 void I422ToRGB565Row_Any_SSSE3(const uint8* src_y, | 1269 void I422ToRGB565Row_Any_SSSE3(const uint8* src_y, |
| 1274 const uint8* src_u, | 1270 const uint8* src_u, |
| 1275 const uint8* src_v, | 1271 const uint8* src_v, |
| 1276 uint8* dst_rgba, | 1272 uint8* dst_rgba, |
| 1277 int width); | 1273 int width); |
| 1278 // RGB24/RAW are unaligned. | 1274 void I422ToRGB565Row_Any_AVX2(const uint8* src_y, |
| 1275 const uint8* src_u, |
| 1276 const uint8* src_v, |
| 1277 uint8* dst_rgba, |
| 1278 int width); |
| 1279 void I422ToRGB24Row_Any_SSSE3(const uint8* src_y, | 1279 void I422ToRGB24Row_Any_SSSE3(const uint8* src_y, |
| 1280 const uint8* src_u, | 1280 const uint8* src_u, |
| 1281 const uint8* src_v, | 1281 const uint8* src_v, |
| 1282 uint8* dst_argb, | 1282 uint8* dst_argb, |
| 1283 int width); | 1283 int width); |
| 1284 void I422ToRAWRow_Any_SSSE3(const uint8* src_y, | 1284 void I422ToRAWRow_Any_SSSE3(const uint8* src_y, |
| 1285 const uint8* src_u, | 1285 const uint8* src_u, |
| 1286 const uint8* src_v, | 1286 const uint8* src_v, |
| 1287 uint8* dst_argb, | 1287 uint8* dst_argb, |
| 1288 int width); | 1288 int width); |
| 1289 |
| 1290 void YToARGBRow_C(const uint8* src_y, |
| 1291 uint8* dst_argb, |
| 1292 int width); |
| 1289 void YToARGBRow_SSE2(const uint8* src_y, | 1293 void YToARGBRow_SSE2(const uint8* src_y, |
| 1290 uint8* dst_argb, | 1294 uint8* dst_argb, |
| 1291 int width); | 1295 int width); |
| 1296 void YToARGBRow_AVX2(const uint8* src_y, |
| 1297 uint8* dst_argb, |
| 1298 int width); |
| 1292 void YToARGBRow_NEON(const uint8* src_y, | 1299 void YToARGBRow_NEON(const uint8* src_y, |
| 1293 uint8* dst_argb, | 1300 uint8* dst_argb, |
| 1294 int width); | 1301 int width); |
| 1295 void YToARGBRow_Any_SSE2(const uint8* src_y, | 1302 void YToARGBRow_Any_SSE2(const uint8* src_y, |
| 1296 uint8* dst_argb, | 1303 uint8* dst_argb, |
| 1297 int width); | 1304 int width); |
| 1305 void YToARGBRow_Any_AVX2(const uint8* src_y, |
| 1306 uint8* dst_argb, |
| 1307 int width); |
| 1298 void YToARGBRow_Any_NEON(const uint8* src_y, | 1308 void YToARGBRow_Any_NEON(const uint8* src_y, |
| 1299 uint8* dst_argb, | 1309 uint8* dst_argb, |
| 1300 int width); | 1310 int width); |
| 1301 | 1311 |
| 1302 // ARGB preattenuated alpha blend. | 1312 // ARGB preattenuated alpha blend. |
| 1303 void ARGBBlendRow_SSSE3(const uint8* src_argb, const uint8* src_argb1, | 1313 void ARGBBlendRow_SSSE3(const uint8* src_argb, const uint8* src_argb1, |
| 1304 uint8* dst_argb, int width); | 1314 uint8* dst_argb, int width); |
| 1305 void ARGBBlendRow_SSE2(const uint8* src_argb, const uint8* src_argb1, | 1315 void ARGBBlendRow_SSE2(const uint8* src_argb, const uint8* src_argb1, |
| 1306 uint8* dst_argb, int width); | 1316 uint8* dst_argb, int width); |
| 1307 void ARGBBlendRow_NEON(const uint8* src_argb, const uint8* src_argb1, | 1317 void ARGBBlendRow_NEON(const uint8* src_argb, const uint8* src_argb1, |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1358 uint8* dst_argb, int width); | 1368 uint8* dst_argb, int width); |
| 1359 void ARGBSubtractRow_Any_NEON(const uint8* src_argb, const uint8* src_argb1, | 1369 void ARGBSubtractRow_Any_NEON(const uint8* src_argb, const uint8* src_argb1, |
| 1360 uint8* dst_argb, int width); | 1370 uint8* dst_argb, int width); |
| 1361 | 1371 |
| 1362 void ARGBToRGB24Row_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); | 1372 void ARGBToRGB24Row_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 1363 void ARGBToRAWRow_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); | 1373 void ARGBToRAWRow_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 1364 void ARGBToRGB565Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); | 1374 void ARGBToRGB565Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 1365 void ARGBToARGB1555Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); | 1375 void ARGBToARGB1555Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 1366 void ARGBToARGB4444Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); | 1376 void ARGBToARGB4444Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 1367 | 1377 |
| 1378 void ARGBToRGB565Row_Any_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 1379 void ARGBToARGB1555Row_Any_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 1380 void ARGBToARGB4444Row_Any_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 1381 |
| 1368 void ARGBToRGB24Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 1382 void ARGBToRGB24Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 1369 void ARGBToRAWRow_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 1383 void ARGBToRAWRow_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 1370 void ARGBToRGB565Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 1384 void ARGBToRGB565Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 1371 void ARGBToARGB1555Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 1385 void ARGBToARGB1555Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 1372 void ARGBToARGB4444Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 1386 void ARGBToARGB4444Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |
| 1373 | 1387 |
| 1374 void I444ToARGBRow_Any_NEON(const uint8* src_y, | 1388 void I444ToARGBRow_Any_NEON(const uint8* src_y, |
| 1375 const uint8* src_u, | 1389 const uint8* src_u, |
| 1376 const uint8* src_v, | 1390 const uint8* src_v, |
| 1377 uint8* dst_argb, | 1391 uint8* dst_argb, |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1482 void YUY2ToYRow_AVX2(const uint8* src_yuy2, uint8* dst_y, int pix); | 1496 void YUY2ToYRow_AVX2(const uint8* src_yuy2, uint8* dst_y, int pix); |
| 1483 void YUY2ToUVRow_AVX2(const uint8* src_yuy2, int stride_yuy2, | 1497 void YUY2ToUVRow_AVX2(const uint8* src_yuy2, int stride_yuy2, |
| 1484 uint8* dst_u, uint8* dst_v, int pix); | 1498 uint8* dst_u, uint8* dst_v, int pix); |
| 1485 void YUY2ToUV422Row_AVX2(const uint8* src_yuy2, | 1499 void YUY2ToUV422Row_AVX2(const uint8* src_yuy2, |
| 1486 uint8* dst_u, uint8* dst_v, int pix); | 1500 uint8* dst_u, uint8* dst_v, int pix); |
| 1487 void YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int pix); | 1501 void YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int pix); |
| 1488 void YUY2ToUVRow_SSE2(const uint8* src_yuy2, int stride_yuy2, | 1502 void YUY2ToUVRow_SSE2(const uint8* src_yuy2, int stride_yuy2, |
| 1489 uint8* dst_u, uint8* dst_v, int pix); | 1503 uint8* dst_u, uint8* dst_v, int pix); |
| 1490 void YUY2ToUV422Row_SSE2(const uint8* src_yuy2, | 1504 void YUY2ToUV422Row_SSE2(const uint8* src_yuy2, |
| 1491 uint8* dst_u, uint8* dst_v, int pix); | 1505 uint8* dst_u, uint8* dst_v, int pix); |
| 1492 void YUY2ToYRow_Unaligned_SSE2(const uint8* src_yuy2, | |
| 1493 uint8* dst_y, int pix); | |
| 1494 void YUY2ToUVRow_Unaligned_SSE2(const uint8* src_yuy2, int stride_yuy2, | |
| 1495 uint8* dst_u, uint8* dst_v, int pix); | |
| 1496 void YUY2ToUV422Row_Unaligned_SSE2(const uint8* src_yuy2, | |
| 1497 uint8* dst_u, uint8* dst_v, int pix); | |
| 1498 void YUY2ToYRow_NEON(const uint8* src_yuy2, uint8* dst_y, int pix); | 1506 void YUY2ToYRow_NEON(const uint8* src_yuy2, uint8* dst_y, int pix); |
| 1499 void YUY2ToUVRow_NEON(const uint8* src_yuy2, int stride_yuy2, | 1507 void YUY2ToUVRow_NEON(const uint8* src_yuy2, int stride_yuy2, |
| 1500 uint8* dst_u, uint8* dst_v, int pix); | 1508 uint8* dst_u, uint8* dst_v, int pix); |
| 1501 void YUY2ToUV422Row_NEON(const uint8* src_yuy2, | 1509 void YUY2ToUV422Row_NEON(const uint8* src_yuy2, |
| 1502 uint8* dst_u, uint8* dst_v, int pix); | 1510 uint8* dst_u, uint8* dst_v, int pix); |
| 1503 void YUY2ToYRow_C(const uint8* src_yuy2, uint8* dst_y, int pix); | 1511 void YUY2ToYRow_C(const uint8* src_yuy2, uint8* dst_y, int pix); |
| 1504 void YUY2ToUVRow_C(const uint8* src_yuy2, int stride_yuy2, | 1512 void YUY2ToUVRow_C(const uint8* src_yuy2, int stride_yuy2, |
| 1505 uint8* dst_u, uint8* dst_v, int pix); | 1513 uint8* dst_u, uint8* dst_v, int pix); |
| 1506 void YUY2ToUV422Row_C(const uint8* src_yuy2, | 1514 void YUY2ToUV422Row_C(const uint8* src_yuy2, |
| 1507 uint8* dst_u, uint8* dst_v, int pix); | 1515 uint8* dst_u, uint8* dst_v, int pix); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1523 void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int pix); | 1531 void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int pix); |
| 1524 void UYVYToUVRow_AVX2(const uint8* src_uyvy, int stride_uyvy, | 1532 void UYVYToUVRow_AVX2(const uint8* src_uyvy, int stride_uyvy, |
| 1525 uint8* dst_u, uint8* dst_v, int pix); | 1533 uint8* dst_u, uint8* dst_v, int pix); |
| 1526 void UYVYToUV422Row_AVX2(const uint8* src_uyvy, | 1534 void UYVYToUV422Row_AVX2(const uint8* src_uyvy, |
| 1527 uint8* dst_u, uint8* dst_v, int pix); | 1535 uint8* dst_u, uint8* dst_v, int pix); |
| 1528 void UYVYToYRow_SSE2(const uint8* src_uyvy, uint8* dst_y, int pix); | 1536 void UYVYToYRow_SSE2(const uint8* src_uyvy, uint8* dst_y, int pix); |
| 1529 void UYVYToUVRow_SSE2(const uint8* src_uyvy, int stride_uyvy, | 1537 void UYVYToUVRow_SSE2(const uint8* src_uyvy, int stride_uyvy, |
| 1530 uint8* dst_u, uint8* dst_v, int pix); | 1538 uint8* dst_u, uint8* dst_v, int pix); |
| 1531 void UYVYToUV422Row_SSE2(const uint8* src_uyvy, | 1539 void UYVYToUV422Row_SSE2(const uint8* src_uyvy, |
| 1532 uint8* dst_u, uint8* dst_v, int pix); | 1540 uint8* dst_u, uint8* dst_v, int pix); |
| 1533 void UYVYToYRow_Unaligned_SSE2(const uint8* src_uyvy, | |
| 1534 uint8* dst_y, int pix); | |
| 1535 void UYVYToUVRow_Unaligned_SSE2(const uint8* src_uyvy, int stride_uyvy, | |
| 1536 uint8* dst_u, uint8* dst_v, int pix); | |
| 1537 void UYVYToUV422Row_Unaligned_SSE2(const uint8* src_uyvy, | |
| 1538 uint8* dst_u, uint8* dst_v, int pix); | |
| 1539 void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int pix); | 1541 void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int pix); |
| 1540 void UYVYToUVRow_AVX2(const uint8* src_uyvy, int stride_uyvy, | 1542 void UYVYToUVRow_AVX2(const uint8* src_uyvy, int stride_uyvy, |
| 1541 uint8* dst_u, uint8* dst_v, int pix); | 1543 uint8* dst_u, uint8* dst_v, int pix); |
| 1542 void UYVYToUV422Row_AVX2(const uint8* src_uyvy, | 1544 void UYVYToUV422Row_AVX2(const uint8* src_uyvy, |
| 1543 uint8* dst_u, uint8* dst_v, int pix); | 1545 uint8* dst_u, uint8* dst_v, int pix); |
| 1544 void UYVYToYRow_NEON(const uint8* src_uyvy, uint8* dst_y, int pix); | 1546 void UYVYToYRow_NEON(const uint8* src_uyvy, uint8* dst_y, int pix); |
| 1545 void UYVYToUVRow_NEON(const uint8* src_uyvy, int stride_uyvy, | 1547 void UYVYToUVRow_NEON(const uint8* src_uyvy, int stride_uyvy, |
| 1546 uint8* dst_u, uint8* dst_v, int pix); | 1548 uint8* dst_u, uint8* dst_v, int pix); |
| 1547 void UYVYToUV422Row_NEON(const uint8* src_uyvy, | 1549 void UYVYToUV422Row_NEON(const uint8* src_uyvy, |
| 1548 uint8* dst_u, uint8* dst_v, int pix); | 1550 uint8* dst_u, uint8* dst_v, int pix); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1561 void UYVYToUVRow_Any_SSE2(const uint8* src_uyvy, int stride_uyvy, | 1563 void UYVYToUVRow_Any_SSE2(const uint8* src_uyvy, int stride_uyvy, |
| 1562 uint8* dst_u, uint8* dst_v, int pix); | 1564 uint8* dst_u, uint8* dst_v, int pix); |
| 1563 void UYVYToUV422Row_Any_SSE2(const uint8* src_uyvy, | 1565 void UYVYToUV422Row_Any_SSE2(const uint8* src_uyvy, |
| 1564 uint8* dst_u, uint8* dst_v, int pix); | 1566 uint8* dst_u, uint8* dst_v, int pix); |
| 1565 void UYVYToYRow_Any_NEON(const uint8* src_uyvy, uint8* dst_y, int pix); | 1567 void UYVYToYRow_Any_NEON(const uint8* src_uyvy, uint8* dst_y, int pix); |
| 1566 void UYVYToUVRow_Any_NEON(const uint8* src_uyvy, int stride_uyvy, | 1568 void UYVYToUVRow_Any_NEON(const uint8* src_uyvy, int stride_uyvy, |
| 1567 uint8* dst_u, uint8* dst_v, int pix); | 1569 uint8* dst_u, uint8* dst_v, int pix); |
| 1568 void UYVYToUV422Row_Any_NEON(const uint8* src_uyvy, | 1570 void UYVYToUV422Row_Any_NEON(const uint8* src_uyvy, |
| 1569 uint8* dst_u, uint8* dst_v, int pix); | 1571 uint8* dst_u, uint8* dst_v, int pix); |
| 1570 | 1572 |
| 1571 void HalfRow_C(const uint8* src_uv, int src_uv_stride, | |
| 1572 uint8* dst_uv, int pix); | |
| 1573 void HalfRow_SSE2(const uint8* src_uv, int src_uv_stride, | |
| 1574 uint8* dst_uv, int pix); | |
| 1575 void HalfRow_AVX2(const uint8* src_uv, int src_uv_stride, | |
| 1576 uint8* dst_uv, int pix); | |
| 1577 void HalfRow_NEON(const uint8* src_uv, int src_uv_stride, | |
| 1578 uint8* dst_uv, int pix); | |
| 1579 | |
| 1580 void HalfRow_16_C(const uint16* src_uv, int src_uv_stride, | |
| 1581 uint16* dst_uv, int pix); | |
| 1582 | |
| 1583 void ARGBToBayerRow_C(const uint8* src_argb, uint8* dst_bayer, | |
| 1584 uint32 selector, int pix); | |
| 1585 void ARGBToBayerRow_SSSE3(const uint8* src_argb, uint8* dst_bayer, | |
| 1586 uint32 selector, int pix); | |
| 1587 void ARGBToBayerRow_NEON(const uint8* src_argb, uint8* dst_bayer, | |
| 1588 uint32 selector, int pix); | |
| 1589 void ARGBToBayerRow_Any_SSSE3(const uint8* src_argb, uint8* dst_bayer, | |
| 1590 uint32 selector, int pix); | |
| 1591 void ARGBToBayerRow_Any_NEON(const uint8* src_argb, uint8* dst_bayer, | |
| 1592 uint32 selector, int pix); | |
| 1593 void ARGBToBayerGGRow_C(const uint8* src_argb, uint8* dst_bayer, | 1573 void ARGBToBayerGGRow_C(const uint8* src_argb, uint8* dst_bayer, |
| 1594 uint32 /* selector */, int pix); | 1574 uint32 /* selector */, int pix); |
| 1595 void ARGBToBayerGGRow_SSE2(const uint8* src_argb, uint8* dst_bayer, | 1575 void ARGBToBayerGGRow_SSE2(const uint8* src_argb, uint8* dst_bayer, |
| 1596 uint32 /* selector */, int pix); | 1576 uint32 /* selector */, int pix); |
| 1597 void ARGBToBayerGGRow_NEON(const uint8* src_argb, uint8* dst_bayer, | 1577 void ARGBToBayerGGRow_NEON(const uint8* src_argb, uint8* dst_bayer, |
| 1598 uint32 /* selector */, int pix); | 1578 uint32 /* selector */, int pix); |
| 1599 void ARGBToBayerGGRow_Any_SSE2(const uint8* src_argb, uint8* dst_bayer, | 1579 void ARGBToBayerGGRow_Any_SSE2(const uint8* src_argb, uint8* dst_bayer, |
| 1600 uint32 /* selector */, int pix); | 1580 uint32 /* selector */, int pix); |
| 1601 void ARGBToBayerGGRow_Any_NEON(const uint8* src_argb, uint8* dst_bayer, | 1581 void ARGBToBayerGGRow_Any_NEON(const uint8* src_argb, uint8* dst_bayer, |
| 1602 uint32 /* selector */, int pix); | 1582 uint32 /* selector */, int pix); |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1729 int source_y_fraction); | 1709 int source_y_fraction); |
| 1730 void InterpolateRow_SSSE3(uint8* dst_ptr, const uint8* src_ptr, | 1710 void InterpolateRow_SSSE3(uint8* dst_ptr, const uint8* src_ptr, |
| 1731 ptrdiff_t src_stride_ptr, int width, | 1711 ptrdiff_t src_stride_ptr, int width, |
| 1732 int source_y_fraction); | 1712 int source_y_fraction); |
| 1733 void InterpolateRow_AVX2(uint8* dst_ptr, const uint8* src_ptr, | 1713 void InterpolateRow_AVX2(uint8* dst_ptr, const uint8* src_ptr, |
| 1734 ptrdiff_t src_stride_ptr, int width, | 1714 ptrdiff_t src_stride_ptr, int width, |
| 1735 int source_y_fraction); | 1715 int source_y_fraction); |
| 1736 void InterpolateRow_NEON(uint8* dst_ptr, const uint8* src_ptr, | 1716 void InterpolateRow_NEON(uint8* dst_ptr, const uint8* src_ptr, |
| 1737 ptrdiff_t src_stride_ptr, int width, | 1717 ptrdiff_t src_stride_ptr, int width, |
| 1738 int source_y_fraction); | 1718 int source_y_fraction); |
| 1739 void InterpolateRows_MIPS_DSPR2(uint8* dst_ptr, const uint8* src_ptr, | 1719 void InterpolateRow_MIPS_DSPR2(uint8* dst_ptr, const uint8* src_ptr, |
| 1740 ptrdiff_t src_stride_ptr, int width, | 1720 ptrdiff_t src_stride_ptr, int width, |
| 1741 int source_y_fraction); | 1721 int source_y_fraction); |
| 1742 void InterpolateRow_Unaligned_SSE2(uint8* dst_ptr, const uint8* src_ptr, | |
| 1743 ptrdiff_t src_stride_ptr, int width, | |
| 1744 int source_y_fraction); | |
| 1745 void InterpolateRow_Unaligned_SSSE3(uint8* dst_ptr, const uint8* src_ptr, | |
| 1746 ptrdiff_t src_stride_ptr, int width, | |
| 1747 int source_y_fraction); | |
| 1748 void InterpolateRow_Any_NEON(uint8* dst_ptr, const uint8* src_ptr, | 1722 void InterpolateRow_Any_NEON(uint8* dst_ptr, const uint8* src_ptr, |
| 1749 ptrdiff_t src_stride_ptr, int width, | 1723 ptrdiff_t src_stride_ptr, int width, |
| 1750 int source_y_fraction); | 1724 int source_y_fraction); |
| 1751 void InterpolateRow_Any_SSE2(uint8* dst_ptr, const uint8* src_ptr, | 1725 void InterpolateRow_Any_SSE2(uint8* dst_ptr, const uint8* src_ptr, |
| 1752 ptrdiff_t src_stride_ptr, int width, | 1726 ptrdiff_t src_stride_ptr, int width, |
| 1753 int source_y_fraction); | 1727 int source_y_fraction); |
| 1754 void InterpolateRow_Any_SSSE3(uint8* dst_ptr, const uint8* src_ptr, | 1728 void InterpolateRow_Any_SSSE3(uint8* dst_ptr, const uint8* src_ptr, |
| 1755 ptrdiff_t src_stride_ptr, int width, | 1729 ptrdiff_t src_stride_ptr, int width, |
| 1756 int source_y_fraction); | 1730 int source_y_fraction); |
| 1757 void InterpolateRow_Any_AVX2(uint8* dst_ptr, const uint8* src_ptr, | 1731 void InterpolateRow_Any_AVX2(uint8* dst_ptr, const uint8* src_ptr, |
| 1758 ptrdiff_t src_stride_ptr, int width, | 1732 ptrdiff_t src_stride_ptr, int width, |
| 1759 int source_y_fraction); | 1733 int source_y_fraction); |
| 1760 void InterpolateRows_Any_MIPS_DSPR2(uint8* dst_ptr, const uint8* src_ptr, | 1734 void InterpolateRow_Any_MIPS_DSPR2(uint8* dst_ptr, const uint8* src_ptr, |
| 1761 ptrdiff_t src_stride_ptr, int width, | 1735 ptrdiff_t src_stride_ptr, int width, |
| 1762 int source_y_fraction); | 1736 int source_y_fraction); |
| 1763 | 1737 |
| 1764 void InterpolateRow_16_C(uint16* dst_ptr, const uint16* src_ptr, | 1738 void InterpolateRow_16_C(uint16* dst_ptr, const uint16* src_ptr, |
| 1765 ptrdiff_t src_stride_ptr, | 1739 ptrdiff_t src_stride_ptr, |
| 1766 int width, int source_y_fraction); | 1740 int width, int source_y_fraction); |
| 1767 | 1741 |
| 1768 // Sobel images. | 1742 // Sobel images. |
| 1769 void SobelXRow_C(const uint8* src_y0, const uint8* src_y1, const uint8* src_y2, | 1743 void SobelXRow_C(const uint8* src_y0, const uint8* src_y1, const uint8* src_y2, |
| 1770 uint8* dst_sobelx, int width); | 1744 uint8* dst_sobelx, int width); |
| 1771 void SobelXRow_SSE2(const uint8* src_y0, const uint8* src_y1, | 1745 void SobelXRow_SSE2(const uint8* src_y0, const uint8* src_y1, |
| 1772 const uint8* src_y2, uint8* dst_sobelx, int width); | 1746 const uint8* src_y2, uint8* dst_sobelx, int width); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1812 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, | 1786 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, |
| 1813 int width, | 1787 int width, |
| 1814 const uint8* luma, uint32 lumacoeff); | 1788 const uint8* luma, uint32 lumacoeff); |
| 1815 | 1789 |
| 1816 #ifdef __cplusplus | 1790 #ifdef __cplusplus |
| 1817 } // extern "C" | 1791 } // extern "C" |
| 1818 } // namespace libyuv | 1792 } // namespace libyuv |
| 1819 #endif | 1793 #endif |
| 1820 | 1794 |
| 1821 #endif // INCLUDE_LIBYUV_ROW_H_ NOLINT | 1795 #endif // INCLUDE_LIBYUV_ROW_H_ NOLINT |
| OLD | NEW |