2 * Copyright (c) 2016, Alliance for Open Media. All rights reserved
4 * This source code is subject to the terms of the BSD 2 Clause License and
5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6 * was not distributed with this source code in the LICENSE file, you can
7 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
8 * Media Patent License 1.0 was not distributed with this source code in the
9 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
12 // Test and time AOM intra-predictor functions
17 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
19 #include "config/aom_dsp_rtcd.h"
21 #include "test/acm_random.h"
22 #include "test/md5_helper.h"
23 #include "aom/aom_integer.h"
24 #include "aom_ports/mem.h"
25 #include "aom_ports/aom_timer.h"
26 #include "av1/common/common_data.h"
28 // -----------------------------------------------------------------------------
35 // 0: Generate MD5 array as required
36 #define APPLY_UNIT_TESTS 1
38 typedef void (*AvxPredFunc
)(uint8_t *dst
, ptrdiff_t y_stride
,
39 const uint8_t *above
, const uint8_t *left
);
42 const int kTotalPixels
= kBPS
* kBPS
;
43 // 4 DC variants, V, H, PAETH, SMOOTH, SMOOTH_V, SMOOTH_H
44 const int kNumAv1IntraFuncs
= 10;
47 const char *kAv1IntraPredNames
[kNumAv1IntraFuncs
] = {
48 "DC_PRED", "DC_LEFT_PRED", "DC_TOP_PRED", "DC_128_PRED", "V_PRED",
49 "H_PRED", "PAETH_PRED", "SMOOTH_PRED", "SMOOTH_V_PRED", "SMOOTH_H_PRED",
51 #endif // APPLY_UNIT_TESTS
53 template <typename Pixel
>
54 struct IntraPredTestMem
{
55 void Init(int block_width
, int block_height
, int bd
) {
56 ASSERT_LE(block_width
, kBPS
);
57 ASSERT_LE(block_height
, kBPS
);
58 // Note: for blocks having width <= 32 and height <= 32, we generate 32x32
59 // random pixels as before to avoid having to recalculate all hashes again.
60 const int block_size_upto_32
= (block_width
<= 32) && (block_height
<= 32);
61 stride
= block_size_upto_32
? 32 : kBPS
;
62 num_pixels
= stride
* stride
;
63 libaom_test::ACMRandom
rnd(libaom_test::ACMRandom::DeterministicSeed());
64 above
= above_mem
+ 16;
65 const int mask
= (1 << bd
) - 1;
66 for (int i
= 0; i
< num_pixels
; ++i
) ref_src
[i
] = rnd
.Rand16() & mask
;
67 for (int i
= 0; i
< stride
; ++i
) left
[i
] = rnd
.Rand16() & mask
;
68 for (int i
= -1; i
< stride
; ++i
) above
[i
] = rnd
.Rand16() & mask
;
70 for (int i
= stride
; i
< 2 * stride
; ++i
) {
71 left
[i
] = rnd
.Rand16() & mask
;
72 above
[i
] = rnd
.Rand16() & mask
;
76 DECLARE_ALIGNED(16, Pixel
, src
[kTotalPixels
]);
77 DECLARE_ALIGNED(16, Pixel
, ref_src
[kTotalPixels
]);
78 DECLARE_ALIGNED(16, Pixel
, left
[2 * kBPS
]);
84 DECLARE_ALIGNED(16, Pixel
, above_mem
[2 * kBPS
+ 16]);
87 // -----------------------------------------------------------------------------
90 typedef IntraPredTestMem
<uint8_t> Av1IntraPredTestMem
;
92 static const char *const kTxSizeStrings
[TX_SIZES_ALL
] = {
93 "4X4", "8X8", "16X16", "32X32", "64X64", "4X8", "8X4",
94 "8X16", "16X8", "16X32", "32X16", "32X64", "64X32", "4X16",
95 "16X4", "8X32", "32X8", "16X64", "64X16",
98 void CheckMd5Signature(TX_SIZE tx_size
, bool is_hbd
,
99 const char *const signatures
[], const void *data
,
100 size_t data_size
, int elapsed_time
, int idx
) {
101 const std::string hbd_str
= is_hbd
? "Hbd " : "";
102 const std::string name_str
= hbd_str
+ "Intra" + kTxSizeStrings
[tx_size
];
103 libaom_test::MD5 md5
;
104 md5
.Add(reinterpret_cast<const uint8_t *>(data
), data_size
);
106 printf("Mode %s[%13s]: %5d ms MD5: %s\n", name_str
.c_str(),
107 kAv1IntraPredNames
[idx
], elapsed_time
, md5
.Get());
108 EXPECT_STREQ(signatures
[idx
], md5
.Get());
113 printf("\"%s\",\n", md5
.Get());
117 void TestIntraPred(TX_SIZE tx_size
, AvxPredFunc
const *pred_funcs
,
118 const char *const signatures
[]) {
119 const int block_width
= tx_size_wide
[tx_size
];
120 const int block_height
= tx_size_high
[tx_size
];
121 const int num_pixels_per_test
=
122 block_width
* block_height
* kNumAv1IntraFuncs
;
123 const int kNumTests
= static_cast<int>(2.e10
/ num_pixels_per_test
);
124 Av1IntraPredTestMem intra_pred_test_mem
;
125 intra_pred_test_mem
.Init(block_width
, block_height
, 8);
127 for (int k
= 0; k
< kNumAv1IntraFuncs
; ++k
) {
128 if (pred_funcs
[k
] == nullptr) continue;
129 memcpy(intra_pred_test_mem
.src
, intra_pred_test_mem
.ref_src
,
130 sizeof(intra_pred_test_mem
.src
));
131 aom_usec_timer timer
;
132 aom_usec_timer_start(&timer
);
133 for (int num_tests
= 0; num_tests
< kNumTests
; ++num_tests
) {
134 pred_funcs
[k
](intra_pred_test_mem
.src
, intra_pred_test_mem
.stride
,
135 intra_pred_test_mem
.above
, intra_pred_test_mem
.left
);
137 aom_usec_timer_mark(&timer
);
138 const int elapsed_time
=
139 static_cast<int>(aom_usec_timer_elapsed(&timer
) / 1000);
141 tx_size
, false, signatures
, intra_pred_test_mem
.src
,
142 intra_pred_test_mem
.num_pixels
* sizeof(*intra_pred_test_mem
.src
),
147 static const char *const kSignatures
[TX_SIZES_ALL
][kNumAv1IntraFuncs
] = {
150 "e7ed7353c3383fff942e500e9bfe82fe",
151 "2a4a26fcc6ce005eadc08354d196c8a9",
152 "269d92eff86f315d9c38fe7640d85b15",
153 "ae2960eea9f71ee3dabe08b282ec1773",
154 "6c1abcc44e90148998b51acd11144e9c",
155 "f7bb3186e1ef8a2b326037ff898cad8e",
156 "59fc0e923a08cfac0a493fb38988e2bb",
157 "9ff8bb37d9c830e6ab8ecb0c435d3c91",
158 "de6937fca02354f2874dbc5dbec5d5b3",
159 "723cf948137f7d8c7860d814e55ae67d",
163 "d8bbae5d6547cfc17e4f5f44c8730e88",
164 "373bab6d931868d41a601d9d88ce9ac3",
165 "6fdd5ff4ff79656c14747598ca9e3706",
166 "d9661c2811d6a73674f40ffb2b841847",
167 "7c722d10b19ccff0b8c171868e747385",
168 "f81dd986eb2b50f750d3a7da716b7e27",
169 "064404361748dd111a890a1470d7f0ea",
170 "dc29b7e1f78cc8e7525d5ea4c0ab9b78",
171 "97111eb1bc26bade6272015df829f1ae",
172 "d19a8a73cc46b807f2c5e817576cc1e1",
176 "50971c07ce26977d30298538fffec619",
177 "527a6b9e0dc5b21b98cf276305432bef",
178 "7eff2868f80ebc2c43a4f367281d80f7",
179 "67cd60512b54964ef6aff1bd4816d922",
180 "48371c87dc95c08a33b2048f89cf6468",
181 "b0acf2872ee411d7530af6d2625a7084",
182 "93d6b5352b571805ab16a55e1bbed86a",
183 "03764e4c0aebbc180e4e2c68fb06df2b",
184 "bb6c74c9076c9f266ab11fb57060d8e6",
185 "0c5162bc28489756ddb847b5678e6f07",
189 "a0a618c900e65ae521ccc8af789729f2",
190 "985aaa7c72b4a6c2fb431d32100cf13a",
191 "10662d09febc3ca13ee4e700120daeb5",
192 "b3b01379ba08916ef6b1b35f7d9ad51c",
193 "9f4261755795af97e34679c333ec7004",
194 "bc2c9da91ad97ef0d1610fb0a9041657",
195 "ef1653982b69e1f64bee3759f3e1ec45",
196 "1a51a675deba2c83282142eb48d3dc3d",
197 "866c224746dc260cda861a7b1b383fb3",
198 "cea23799fc3526e1b6a6ff02b42b82af",
202 "6e1094fa7b50bc813aa2ba29f5df8755",
203 "afe020786b83b793c2bbd9468097ff6e",
204 "be91585259bc37bf4dc1651936e90b3e",
205 "a1650dbcd56e10288c3e269eca37967d",
206 "9e5c34f3797e0cdd3cd9d4c05b0d8950",
207 "bc87be7ac899cc6a28f399d7516c49fe",
208 "9811fd0d2dd515f06122f5d1bd18b784",
209 "3c140e466f2c2c0d9cb7d2157ab8dc27",
210 "9543de76c925a8f6adc884cc7f98dc91",
211 "df1df0376cc944afe7e74e94f53e575a",
215 "d9fbebdc85f71ab1e18461b2db4a2adc",
216 "5ccb2a68284bc9714d94b8a06ccadbb2",
217 "735d059abc2744f3ff3f9590f7191b37",
218 "d9fbebdc85f71ab1e18461b2db4a2adc",
219 "6819497c44cd0ace120add83672996ee",
220 "7e3244f5a2d3edf81c7e962a842b97f9",
221 "809350f164cd4d1650850bb0f59c3260",
222 "1b60a394331eeab6927a6f8aaff57040",
223 "5307de1bd7329ba6b281d2c1b0b457f9",
224 "24c58a8138339846d95568efb91751db",
228 "23f9fc11344426c9bee2e06d57dfd628",
229 "2d71a26d1bae1fb34734de7b42fc5eb7",
230 "5af9c1b2fd9d5721fad67b67b3f7c816",
231 "00d71b17be662753813d515f197d145e",
232 "bef10ec984427e28f4390f43809d10af",
233 "77773cdfb7ed6bc882ab202a64b0a470",
234 "2cc48bd66d6b0121b5221d52ccd732af",
235 "b302155e1c9eeeafe2ba2bf68e807a46",
236 "561bc8d0e76d5041ebd5168fc6a115e1",
237 "81d0113fb1d0a9a24ffd6f1987b77948",
241 "c849de88b24f773dfcdd1d48d1209796",
242 "6cb807c1897b94866a0f3d3c56ed8695",
243 "d56db05a8ac7981762f5b877f486c4ef",
244 "b4bc01eb6e59a40922ad17715cafb04b",
245 "09d178439534f4062ae687c351f66d64",
246 "644501399cf73080ac606e5cef7ca09b",
247 "278076495180e17c065a95ab7278539a",
248 "9dd7f324816f242be408ffeb0c673732",
249 "f520c4a20acfa0bea1d253c6f0f040fd",
250 "85f38df809df2c2d7c8b4a157a65cd44",
254 "b4cbdbdf10ce13300b4063a3daf99e04",
255 "3731e1e6202064a9d0604d7c293ecee4",
256 "6c856188c4256a06452f0d5d70cac436",
257 "1f2192b4c8c497589484ea7bf9c944e8",
258 "84011bd4b7f565119d06787840e333a0",
259 "0e48949f7a6aa36f0d76b5d01f91124a",
260 "60eff8064634b6c73b10681356baeee9",
261 "1559aeb081a9c0c71111d6093c2ff9fd",
262 "c15479b739713773e5cabb748451987b",
263 "72e33ec12c9b67aea26d8d005fb82de2",
267 "abe5233d189cdbf79424721571bbaa7b",
268 "282759f81e3cfb2e2d396fe406b72a8b",
269 "e2224926c264f6f174cbc3167a233168",
270 "6814e85c2b33f8c9415d62e80394b47b",
271 "99cbbb60459c08a3061d72c4e4f6276a",
272 "1d1567d40b8e816f8c1f71e576fe0f87",
273 "36fdd371b624a075814d497c4832ec85",
274 "8ab8da61b727442b6ff692b40d0df018",
275 "e35a10ad7fdf2327e821504a90f6a6eb",
276 "1f7211e727dc1de7d6a55d082fbdd821",
280 "d1aeb8d5fdcfd3307922af01a798a4dc",
281 "b0bcb514ebfbee065faea9d34c12ae75",
282 "d6a18c63b4e909871c0137ca652fad23",
283 "fd047f2fc1b8ffb95d0eeef3e8796a45",
284 "645ab60779ea348fd93c81561c31bab9",
285 "4409633c9db8dff41ade4292a3a56e7f",
286 "5e36a11e069b31c2a739f3a9c7b37c24",
287 "e83b9483d702cfae496991c3c7fa92c0",
288 "12f6ddf98c7f30a277307f1ea935b030",
289 "354321d6c32bbdb0739e4fa2acbf41e1",
293 "0ce332b343934b34cd4417725faa85cb",
294 "4e2a2cfd8f56f15939bdfc753145b303",
295 "0f46d124ba9f48cdd5d5290acf786d6d",
296 "e1e8ed803236367821981500a3d9eebe",
297 "1d2f8e48e3adb7c448be05d9f66f4954",
298 "9fb2e176636a5689b26f73ca73fcc512",
299 "e720ebccae7e25e36f23da53ae5b5d6a",
300 "86fe4364734169aaa4520d799890d530",
301 "b1870290764bb1b100d1974e2bd70f1d",
302 "ce5b238e19d85ef69d85badfab4e63ae",
306 "a6c5aeb722615089efbca80b02951ceb",
307 "538424b24bd0830f21788e7238ca762f",
308 "80c15b303235f9bc2259027bb92dfdc4",
309 "e48e1ac15e97191a8fda08d62fff343e",
310 "12604b37875533665078405ef4582e35",
311 "0048afa17bd3e1632d68b96048836530",
312 "07a0cfcb56a5eed50c4bd6c26814336b",
313 "529d8a070de5bc6531fa3ee8f450c233",
314 "33c50a11c7d78f72434064f634305e95",
315 "e0ef7f0559c1a50ec5a8c12011b962f7",
319 "750491056568eb8fe15387b86bdf06b8",
320 "3a52dae9f599f08cfb3bd1b910dc0e11",
321 "af79f71e3e03dbeca44e2e13561f70c7",
322 "ca7dfd7624afc0c06fb5552f44398535",
323 "b591af115444bf43140c29c269f68fb2",
324 "483d942ae36e69e62f31eb215331416f",
325 "f14b58525e81870bc5d95c7ac71a347f",
326 "371208bb4027d9badb04095d1590bbc4",
327 "c7049c21b2924d70c7c12784d6b6b796",
328 "7d87233f4b5b0f12086045e5d7b2d4c2",
332 "7c6e325a65e77e732b3adbe237e045e4",
333 "24478f93ffcec47852e004d0fe948464",
334 "258d042c67d4ba3ecfa667f0adc9aebf",
335 "b2cd21d06959f159a1f3c4d9768ee7fb",
336 "b4e1f38157bf8410e7c3da02f687a343",
337 "869e703729eb0fc0711c254944ff5d5a",
338 "9638dd77105a640b146a8201ea7a0801",
339 "919d932c6af8a1cc7486e8ce996dd487",
340 "e1c9be493b6714c7ae48f30044c43140",
341 "bf0fe3889d654b2f6eb98c8fc751f9e4",
345 "8dfac4319fe0bd40013ffb3102da8c72",
346 "feb46b6dc4e2ca0a09533bfc51d4dcb0",
347 "850837ec714c37262216527aaf4cbbe9",
348 "4603c7800fb08361f163daca876e8bda",
349 "1ff95e7d2debc27b05806fb25abfd624",
350 "d81b9a51a062b23ca7823804cb7bec22",
351 "f1d8978158766f46335203608cb807e7",
352 "f3527096256258c0878d644a9d7d53ca",
353 "cbde98ac8b009953eb112807ad2ea29e",
354 "654fb1153415747feae599f538122af5",
358 "3d4ee16fab374357474f60b845327bc7",
359 "bc17c5059473a476df4e85f56395ad55",
360 "3d4ee16fab374357474f60b845327bc7",
361 "c14b8db34dc2355b84e3735c9ba16c7f",
362 "a71d25b5d47a92a8b9223c98f18458ee",
363 "6c1cfe2b1893f4576a80675687cb6426",
364 "92d11bbef8b85bb48d799bb055de3514",
365 "bcf81d1db8ae5cc03360467f44f498ec",
366 "79f8c564163555592e808e145eaf5c60",
367 "46fff139cef2ef773938bcc8b0e5abb8",
371 "3b2a053ee8b05a8ac35ad23b0422a151",
372 "12b0c69595328c465e0b25e0c9e3e9fc",
373 "f77c544ac8035e01920deae40cee7b07",
374 "727797ef15ccd8d325476fe8f12006a3",
375 "f3be77c0fe67eb5d9d515e92bec21eb7",
376 "f1ece6409e01e9dd98b800d49628247d",
377 "efd2ec9bfbbd4fd1f6604ea369df1894",
378 "ec703de918422b9e03197ba0ed60a199",
379 "739418efb89c07f700895deaa5d0b3e3",
380 "9943ae1bbeeebfe1d3a92dc39e049d63",
384 "821b76b1494d4f84d20817840f719a1a",
385 "69e462c3338a9aaf993c3f7cfbc15649",
386 "516d8f6eb054d74d150e7b444185b6b9",
387 "de1b736e9d99129609d6ef3a491507a0",
388 "fd9b4276e7affe1e0e4ce4f428058994",
389 "cd82fd361a4767ac29a9f406b480b8f3",
390 "2792c2f810157a4a6cb13c28529ff779",
391 "1220442d90c4255ba0969d28b91e93a6",
392 "c7253e10b45f7f67dfee3256c9b94825",
393 "879792198071c7e0b50b9b5010d8c18f",
399 // Defines a test case for |arch| (e.g., C, SSE2, ...) passing the predictors
400 // to TestIntraPred. The test name is 'arch.TestIntraPred_tx_size', e.g.,
402 #define INTRA_PRED_TEST(arch, tx_size, dc, dc_left, dc_top, dc_128, v, h, \
403 paeth, smooth, smooth_v, smooth_h) \
404 TEST(arch, DISABLED_##TestIntraPred_##tx_size) { \
405 static const AvxPredFunc aom_intra_pred[] = { \
406 dc, dc_left, dc_top, dc_128, v, h, paeth, smooth, smooth_v, smooth_h \
408 TestIntraPred(tx_size, aom_intra_pred, kSignatures[tx_size]); \
411 // -----------------------------------------------------------------------------
414 INTRA_PRED_TEST(C
, TX_4X4
, aom_dc_predictor_4x4_c
, aom_dc_left_predictor_4x4_c
,
415 aom_dc_top_predictor_4x4_c
, aom_dc_128_predictor_4x4_c
,
416 aom_v_predictor_4x4_c
, aom_h_predictor_4x4_c
,
417 aom_paeth_predictor_4x4_c
, aom_smooth_predictor_4x4_c
,
418 aom_smooth_v_predictor_4x4_c
, aom_smooth_h_predictor_4x4_c
)
419 INTRA_PRED_TEST(C
, TX_4X8
, aom_dc_predictor_4x8_c
, aom_dc_left_predictor_4x8_c
,
420 aom_dc_top_predictor_4x8_c
, aom_dc_128_predictor_4x8_c
,
421 aom_v_predictor_4x8_c
, aom_h_predictor_4x8_c
,
422 aom_paeth_predictor_4x8_c
, aom_smooth_predictor_4x8_c
,
423 aom_smooth_v_predictor_4x8_c
, aom_smooth_h_predictor_4x8_c
)
424 INTRA_PRED_TEST(C
, TX_4X16
, aom_dc_predictor_4x16_c
,
425 aom_dc_left_predictor_4x16_c
, aom_dc_top_predictor_4x16_c
,
426 aom_dc_128_predictor_4x16_c
, aom_v_predictor_4x16_c
,
427 aom_h_predictor_4x16_c
, aom_paeth_predictor_4x16_c
,
428 aom_smooth_predictor_4x16_c
, aom_smooth_v_predictor_4x16_c
,
429 aom_smooth_h_predictor_4x16_c
)
432 INTRA_PRED_TEST(SSE2
, TX_4X4
, aom_dc_predictor_4x4_sse2
,
433 aom_dc_left_predictor_4x4_sse2
, aom_dc_top_predictor_4x4_sse2
,
434 aom_dc_128_predictor_4x4_sse2
, aom_v_predictor_4x4_sse2
,
435 aom_h_predictor_4x4_sse2
, nullptr, nullptr, nullptr, nullptr)
436 INTRA_PRED_TEST(SSE2
, TX_4X8
, aom_dc_predictor_4x8_sse2
,
437 aom_dc_left_predictor_4x8_sse2
, aom_dc_top_predictor_4x8_sse2
,
438 aom_dc_128_predictor_4x8_sse2
, aom_v_predictor_4x8_sse2
,
439 aom_h_predictor_4x8_sse2
, nullptr, nullptr, nullptr, nullptr)
440 INTRA_PRED_TEST(SSE2
, TX_4X16
, aom_dc_predictor_4x16_sse2
,
441 aom_dc_left_predictor_4x16_sse2
, aom_dc_top_predictor_4x16_sse2
,
442 aom_dc_128_predictor_4x16_sse2
, aom_v_predictor_4x16_sse2
,
443 aom_h_predictor_4x16_sse2
, nullptr, nullptr, nullptr, nullptr)
447 INTRA_PRED_TEST(SSSE3
, TX_4X4
, nullptr, nullptr, nullptr, nullptr, nullptr,
448 nullptr, aom_paeth_predictor_4x4_ssse3
,
449 aom_smooth_predictor_4x4_ssse3
,
450 aom_smooth_v_predictor_4x4_ssse3
,
451 aom_smooth_h_predictor_4x4_ssse3
)
452 INTRA_PRED_TEST(SSSE3
, TX_4X8
, nullptr, nullptr, nullptr, nullptr, nullptr,
453 nullptr, aom_paeth_predictor_4x8_ssse3
,
454 aom_smooth_predictor_4x8_ssse3
,
455 aom_smooth_v_predictor_4x8_ssse3
,
456 aom_smooth_h_predictor_4x8_ssse3
)
457 INTRA_PRED_TEST(SSSE3
, TX_4X16
, nullptr, nullptr, nullptr, nullptr, nullptr,
458 nullptr, aom_paeth_predictor_4x16_ssse3
,
459 aom_smooth_predictor_4x16_ssse3
,
460 aom_smooth_v_predictor_4x16_ssse3
,
461 aom_smooth_h_predictor_4x16_ssse3
)
465 INTRA_PRED_TEST(NEON
, TX_4X4
, aom_dc_predictor_4x4_neon
,
466 aom_dc_left_predictor_4x4_neon
, aom_dc_top_predictor_4x4_neon
,
467 aom_dc_128_predictor_4x4_neon
, aom_v_predictor_4x4_neon
,
468 aom_h_predictor_4x4_neon
, aom_paeth_predictor_4x4_neon
,
469 aom_smooth_predictor_4x4_neon
, aom_smooth_v_predictor_4x4_neon
,
470 aom_smooth_h_predictor_4x4_neon
)
471 INTRA_PRED_TEST(NEON
, TX_4X8
, aom_dc_predictor_4x8_neon
,
472 aom_dc_left_predictor_4x8_neon
, aom_dc_top_predictor_4x8_neon
,
473 aom_dc_128_predictor_4x8_neon
, aom_v_predictor_4x8_neon
,
474 aom_h_predictor_4x8_neon
, aom_paeth_predictor_4x8_neon
,
475 aom_smooth_predictor_4x8_neon
, aom_smooth_v_predictor_4x8_neon
,
476 aom_smooth_h_predictor_4x8_neon
)
477 INTRA_PRED_TEST(NEON
, TX_4X16
, aom_dc_predictor_4x16_neon
,
478 aom_dc_left_predictor_4x16_neon
, aom_dc_top_predictor_4x16_neon
,
479 aom_dc_128_predictor_4x16_neon
, aom_v_predictor_4x16_neon
,
480 aom_h_predictor_4x16_neon
, aom_paeth_predictor_4x16_neon
,
481 aom_smooth_predictor_4x16_neon
,
482 aom_smooth_v_predictor_4x16_neon
,
483 aom_smooth_h_predictor_4x16_neon
)
486 // -----------------------------------------------------------------------------
487 // 8x8, 8x4, 8x16, 8x32
489 INTRA_PRED_TEST(C
, TX_8X8
, aom_dc_predictor_8x8_c
, aom_dc_left_predictor_8x8_c
,
490 aom_dc_top_predictor_8x8_c
, aom_dc_128_predictor_8x8_c
,
491 aom_v_predictor_8x8_c
, aom_h_predictor_8x8_c
,
492 aom_paeth_predictor_8x8_c
, aom_smooth_predictor_8x8_c
,
493 aom_smooth_v_predictor_8x8_c
, aom_smooth_h_predictor_8x8_c
)
495 INTRA_PRED_TEST(C
, TX_8X4
, aom_dc_predictor_8x4_c
, aom_dc_left_predictor_8x4_c
,
496 aom_dc_top_predictor_8x4_c
, aom_dc_128_predictor_8x4_c
,
497 aom_v_predictor_8x4_c
, aom_h_predictor_8x4_c
,
498 aom_paeth_predictor_8x4_c
, aom_smooth_predictor_8x4_c
,
499 aom_smooth_v_predictor_8x4_c
, aom_smooth_h_predictor_8x4_c
)
500 INTRA_PRED_TEST(C
, TX_8X16
, aom_dc_predictor_8x16_c
,
501 aom_dc_left_predictor_8x16_c
, aom_dc_top_predictor_8x16_c
,
502 aom_dc_128_predictor_8x16_c
, aom_v_predictor_8x16_c
,
503 aom_h_predictor_8x16_c
, aom_paeth_predictor_8x16_c
,
504 aom_smooth_predictor_8x16_c
, aom_smooth_v_predictor_8x16_c
,
505 aom_smooth_h_predictor_8x16_c
)
506 INTRA_PRED_TEST(C
, TX_8X32
, aom_dc_predictor_8x32_c
,
507 aom_dc_left_predictor_8x32_c
, aom_dc_top_predictor_8x32_c
,
508 aom_dc_128_predictor_8x32_c
, aom_v_predictor_8x32_c
,
509 aom_h_predictor_8x32_c
, aom_paeth_predictor_8x32_c
,
510 aom_smooth_predictor_8x32_c
, aom_smooth_v_predictor_8x32_c
,
511 aom_smooth_h_predictor_8x32_c
)
514 INTRA_PRED_TEST(SSE2
, TX_8X8
, aom_dc_predictor_8x8_sse2
,
515 aom_dc_left_predictor_8x8_sse2
, aom_dc_top_predictor_8x8_sse2
,
516 aom_dc_128_predictor_8x8_sse2
, aom_v_predictor_8x8_sse2
,
517 aom_h_predictor_8x8_sse2
, nullptr, nullptr, nullptr, nullptr)
518 INTRA_PRED_TEST(SSE2
, TX_8X4
, aom_dc_predictor_8x4_sse2
,
519 aom_dc_left_predictor_8x4_sse2
, aom_dc_top_predictor_8x4_sse2
,
520 aom_dc_128_predictor_8x4_sse2
, aom_v_predictor_8x4_sse2
,
521 aom_h_predictor_8x4_sse2
, nullptr, nullptr, nullptr, nullptr)
522 INTRA_PRED_TEST(SSE2
, TX_8X16
, aom_dc_predictor_8x16_sse2
,
523 aom_dc_left_predictor_8x16_sse2
, aom_dc_top_predictor_8x16_sse2
,
524 aom_dc_128_predictor_8x16_sse2
, aom_v_predictor_8x16_sse2
,
525 aom_h_predictor_8x16_sse2
, nullptr, nullptr, nullptr, nullptr)
526 INTRA_PRED_TEST(SSE2
, TX_8X32
, aom_dc_predictor_8x32_sse2
,
527 aom_dc_left_predictor_8x32_sse2
, aom_dc_top_predictor_8x32_sse2
,
528 aom_dc_128_predictor_8x32_sse2
, aom_v_predictor_8x32_sse2
,
529 aom_h_predictor_8x32_sse2
, nullptr, nullptr, nullptr, nullptr)
533 INTRA_PRED_TEST(SSSE3
, TX_8X8
, nullptr, nullptr, nullptr, nullptr, nullptr,
534 nullptr, aom_paeth_predictor_8x8_ssse3
,
535 aom_smooth_predictor_8x8_ssse3
,
536 aom_smooth_v_predictor_8x8_ssse3
,
537 aom_smooth_h_predictor_8x8_ssse3
)
538 INTRA_PRED_TEST(SSSE3
, TX_8X4
, nullptr, nullptr, nullptr, nullptr, nullptr,
539 nullptr, aom_paeth_predictor_8x4_ssse3
,
540 aom_smooth_predictor_8x4_ssse3
,
541 aom_smooth_v_predictor_8x4_ssse3
,
542 aom_smooth_h_predictor_8x4_ssse3
)
543 INTRA_PRED_TEST(SSSE3
, TX_8X16
, nullptr, nullptr, nullptr, nullptr, nullptr,
544 nullptr, aom_paeth_predictor_8x16_ssse3
,
545 aom_smooth_predictor_8x16_ssse3
,
546 aom_smooth_v_predictor_8x16_ssse3
,
547 aom_smooth_h_predictor_8x16_ssse3
)
548 INTRA_PRED_TEST(SSSE3
, TX_8X32
, nullptr, nullptr, nullptr, nullptr, nullptr,
549 nullptr, aom_paeth_predictor_8x32_ssse3
,
550 aom_smooth_predictor_8x32_ssse3
,
551 aom_smooth_v_predictor_8x32_ssse3
,
552 aom_smooth_h_predictor_8x32_ssse3
)
556 INTRA_PRED_TEST(NEON
, TX_8X8
, aom_dc_predictor_8x8_neon
,
557 aom_dc_left_predictor_8x8_neon
, aom_dc_top_predictor_8x8_neon
,
558 aom_dc_128_predictor_8x8_neon
, aom_v_predictor_8x8_neon
,
559 aom_h_predictor_8x8_neon
, aom_paeth_predictor_8x8_neon
,
560 aom_smooth_predictor_8x8_neon
, aom_smooth_v_predictor_8x8_neon
,
561 aom_smooth_h_predictor_8x8_neon
)
562 INTRA_PRED_TEST(NEON
, TX_8X4
, aom_dc_predictor_8x4_neon
,
563 aom_dc_left_predictor_8x4_neon
, aom_dc_top_predictor_8x4_neon
,
564 aom_dc_128_predictor_8x4_neon
, aom_v_predictor_8x4_neon
,
565 aom_h_predictor_8x4_neon
, aom_paeth_predictor_8x4_neon
,
566 aom_smooth_predictor_8x4_neon
, aom_smooth_v_predictor_8x4_neon
,
567 aom_smooth_h_predictor_8x4_neon
)
568 INTRA_PRED_TEST(NEON
, TX_8X16
, aom_dc_predictor_8x16_neon
,
569 aom_dc_left_predictor_8x16_neon
, aom_dc_top_predictor_8x16_neon
,
570 aom_dc_128_predictor_8x16_neon
, aom_v_predictor_8x16_neon
,
571 aom_h_predictor_8x16_neon
, aom_paeth_predictor_8x16_neon
,
572 aom_smooth_predictor_8x16_neon
,
573 aom_smooth_v_predictor_8x16_neon
,
574 aom_smooth_h_predictor_8x16_neon
)
575 INTRA_PRED_TEST(NEON
, TX_8X32
, aom_dc_predictor_8x32_neon
,
576 aom_dc_left_predictor_8x32_neon
, aom_dc_top_predictor_8x32_neon
,
577 aom_dc_128_predictor_8x32_neon
, aom_v_predictor_8x32_neon
,
578 aom_h_predictor_8x32_neon
, aom_paeth_predictor_8x32_neon
,
579 aom_smooth_predictor_8x32_neon
,
580 aom_smooth_v_predictor_8x32_neon
,
581 aom_smooth_h_predictor_8x32_neon
)
584 // -----------------------------------------------------------------------------
585 // 16x16, 16x8, 16x32, 16x4, 16x64
587 INTRA_PRED_TEST(C
, TX_16X16
, aom_dc_predictor_16x16_c
,
588 aom_dc_left_predictor_16x16_c
, aom_dc_top_predictor_16x16_c
,
589 aom_dc_128_predictor_16x16_c
, aom_v_predictor_16x16_c
,
590 aom_h_predictor_16x16_c
, aom_paeth_predictor_16x16_c
,
591 aom_smooth_predictor_16x16_c
, aom_smooth_v_predictor_16x16_c
,
592 aom_smooth_h_predictor_16x16_c
)
593 INTRA_PRED_TEST(C
, TX_16X8
, aom_dc_predictor_16x8_c
,
594 aom_dc_left_predictor_16x8_c
, aom_dc_top_predictor_16x8_c
,
595 aom_dc_128_predictor_16x8_c
, aom_v_predictor_16x8_c
,
596 aom_h_predictor_16x8_c
, aom_paeth_predictor_16x8_c
,
597 aom_smooth_predictor_16x8_c
, aom_smooth_v_predictor_16x8_c
,
598 aom_smooth_h_predictor_16x8_c
)
599 INTRA_PRED_TEST(C
, TX_16X32
, aom_dc_predictor_16x32_c
,
600 aom_dc_left_predictor_16x32_c
, aom_dc_top_predictor_16x32_c
,
601 aom_dc_128_predictor_16x32_c
, aom_v_predictor_16x32_c
,
602 aom_h_predictor_16x32_c
, aom_paeth_predictor_16x32_c
,
603 aom_smooth_predictor_16x32_c
, aom_smooth_v_predictor_16x32_c
,
604 aom_smooth_h_predictor_16x32_c
)
605 INTRA_PRED_TEST(C
, TX_16X4
, aom_dc_predictor_16x4_c
,
606 aom_dc_left_predictor_16x4_c
, aom_dc_top_predictor_16x4_c
,
607 aom_dc_128_predictor_16x4_c
, aom_v_predictor_16x4_c
,
608 aom_h_predictor_16x4_c
, aom_paeth_predictor_16x4_c
,
609 aom_smooth_predictor_16x4_c
, aom_smooth_v_predictor_16x4_c
,
610 aom_smooth_h_predictor_16x4_c
)
611 INTRA_PRED_TEST(C
, TX_16X64
, aom_dc_predictor_16x64_c
,
612 aom_dc_left_predictor_16x64_c
, aom_dc_top_predictor_16x64_c
,
613 aom_dc_128_predictor_16x64_c
, aom_v_predictor_16x64_c
,
614 aom_h_predictor_16x64_c
, aom_paeth_predictor_16x64_c
,
615 aom_smooth_predictor_16x64_c
, aom_smooth_v_predictor_16x64_c
,
616 aom_smooth_h_predictor_16x64_c
)
619 INTRA_PRED_TEST(SSE2
, TX_16X16
, aom_dc_predictor_16x16_sse2
,
620 aom_dc_left_predictor_16x16_sse2
,
621 aom_dc_top_predictor_16x16_sse2
,
622 aom_dc_128_predictor_16x16_sse2
, aom_v_predictor_16x16_sse2
,
623 aom_h_predictor_16x16_sse2
, nullptr, nullptr, nullptr, nullptr)
624 INTRA_PRED_TEST(SSE2
, TX_16X8
, aom_dc_predictor_16x8_sse2
,
625 aom_dc_left_predictor_16x8_sse2
, aom_dc_top_predictor_16x8_sse2
,
626 aom_dc_128_predictor_16x8_sse2
, aom_v_predictor_16x8_sse2
,
627 aom_h_predictor_16x8_sse2
, nullptr, nullptr, nullptr, nullptr)
628 INTRA_PRED_TEST(SSE2
, TX_16X32
, aom_dc_predictor_16x32_sse2
,
629 aom_dc_left_predictor_16x32_sse2
,
630 aom_dc_top_predictor_16x32_sse2
,
631 aom_dc_128_predictor_16x32_sse2
, aom_v_predictor_16x32_sse2
,
632 aom_h_predictor_16x32_sse2
, nullptr, nullptr, nullptr, nullptr)
633 INTRA_PRED_TEST(SSE2
, TX_16X64
, aom_dc_predictor_16x64_sse2
,
634 aom_dc_left_predictor_16x64_sse2
,
635 aom_dc_top_predictor_16x64_sse2
,
636 aom_dc_128_predictor_16x64_sse2
, aom_v_predictor_16x64_sse2
,
637 aom_h_predictor_16x64_sse2
, nullptr, nullptr, nullptr, nullptr)
638 INTRA_PRED_TEST(SSE2
, TX_16X4
, aom_dc_predictor_16x4_sse2
,
639 aom_dc_left_predictor_16x4_sse2
, aom_dc_top_predictor_16x4_sse2
,
640 aom_dc_128_predictor_16x4_sse2
, aom_v_predictor_16x4_sse2
,
641 aom_h_predictor_16x4_sse2
, nullptr, nullptr, nullptr, nullptr)
645 INTRA_PRED_TEST(SSSE3
, TX_16X16
, nullptr, nullptr, nullptr, nullptr, nullptr,
646 nullptr, aom_paeth_predictor_16x16_ssse3
,
647 aom_smooth_predictor_16x16_ssse3
,
648 aom_smooth_v_predictor_16x16_ssse3
,
649 aom_smooth_h_predictor_16x16_ssse3
)
650 INTRA_PRED_TEST(SSSE3
, TX_16X8
, nullptr, nullptr, nullptr, nullptr, nullptr,
651 nullptr, aom_paeth_predictor_16x8_ssse3
,
652 aom_smooth_predictor_16x8_ssse3
,
653 aom_smooth_v_predictor_16x8_ssse3
,
654 aom_smooth_h_predictor_16x8_ssse3
)
655 INTRA_PRED_TEST(SSSE3
, TX_16X32
, nullptr, nullptr, nullptr, nullptr, nullptr,
656 nullptr, aom_paeth_predictor_16x32_ssse3
,
657 aom_smooth_predictor_16x32_ssse3
,
658 aom_smooth_v_predictor_16x32_ssse3
,
659 aom_smooth_h_predictor_16x32_ssse3
)
660 INTRA_PRED_TEST(SSSE3
, TX_16X64
, nullptr, nullptr, nullptr, nullptr, nullptr,
661 nullptr, aom_paeth_predictor_16x64_ssse3
,
662 aom_smooth_predictor_16x64_ssse3
,
663 aom_smooth_v_predictor_16x64_ssse3
,
664 aom_smooth_h_predictor_16x64_ssse3
)
665 INTRA_PRED_TEST(SSSE3
, TX_16X4
, nullptr, nullptr, nullptr, nullptr, nullptr,
666 nullptr, aom_paeth_predictor_16x4_ssse3
,
667 aom_smooth_predictor_16x4_ssse3
,
668 aom_smooth_v_predictor_16x4_ssse3
,
669 aom_smooth_h_predictor_16x4_ssse3
)
673 INTRA_PRED_TEST(AVX2
, TX_16X16
, nullptr, nullptr, nullptr, nullptr, nullptr,
674 nullptr, aom_paeth_predictor_16x16_avx2
, nullptr, nullptr,
676 INTRA_PRED_TEST(AVX2
, TX_16X8
, nullptr, nullptr, nullptr, nullptr, nullptr,
677 nullptr, aom_paeth_predictor_16x8_avx2
, nullptr, nullptr,
679 INTRA_PRED_TEST(AVX2
, TX_16X32
, nullptr, nullptr, nullptr, nullptr, nullptr,
680 nullptr, aom_paeth_predictor_16x32_avx2
, nullptr, nullptr,
682 INTRA_PRED_TEST(AVX2
, TX_16X64
, nullptr, nullptr, nullptr, nullptr, nullptr,
683 nullptr, aom_paeth_predictor_16x64_avx2
, nullptr, nullptr,
688 INTRA_PRED_TEST(NEON
, TX_16X16
, aom_dc_predictor_16x16_neon
,
689 aom_dc_left_predictor_16x16_neon
,
690 aom_dc_top_predictor_16x16_neon
,
691 aom_dc_128_predictor_16x16_neon
, aom_v_predictor_16x16_neon
,
692 aom_h_predictor_16x16_neon
, aom_paeth_predictor_16x16_neon
,
693 aom_smooth_predictor_16x16_neon
,
694 aom_smooth_v_predictor_16x16_neon
,
695 aom_smooth_h_predictor_16x16_neon
)
696 INTRA_PRED_TEST(NEON
, TX_16X8
, aom_dc_predictor_16x8_neon
,
697 aom_dc_left_predictor_16x8_neon
, aom_dc_top_predictor_16x8_neon
,
698 aom_dc_128_predictor_16x8_neon
, aom_v_predictor_16x8_neon
,
699 aom_h_predictor_16x8_neon
, aom_paeth_predictor_16x8_neon
,
700 aom_smooth_predictor_16x8_neon
,
701 aom_smooth_v_predictor_16x8_neon
,
702 aom_smooth_h_predictor_16x8_neon
)
703 INTRA_PRED_TEST(NEON
, TX_16X32
, aom_dc_predictor_16x32_neon
,
704 aom_dc_left_predictor_16x32_neon
,
705 aom_dc_top_predictor_16x32_neon
,
706 aom_dc_128_predictor_16x32_neon
, aom_v_predictor_16x32_neon
,
707 aom_h_predictor_16x32_neon
, aom_paeth_predictor_16x32_neon
,
708 aom_smooth_predictor_16x32_neon
,
709 aom_smooth_v_predictor_16x32_neon
,
710 aom_smooth_h_predictor_16x32_neon
)
711 INTRA_PRED_TEST(NEON
, TX_16X4
, aom_dc_predictor_16x4_neon
,
712 aom_dc_left_predictor_16x4_neon
, aom_dc_top_predictor_16x4_neon
,
713 aom_dc_128_predictor_16x4_neon
, aom_v_predictor_16x4_neon
,
714 aom_h_predictor_16x4_neon
, aom_paeth_predictor_16x4_neon
,
715 aom_smooth_predictor_16x4_neon
,
716 aom_smooth_v_predictor_16x4_neon
,
717 aom_smooth_h_predictor_16x4_neon
)
718 INTRA_PRED_TEST(NEON
, TX_16X64
, aom_dc_predictor_16x64_neon
,
719 aom_dc_left_predictor_16x64_neon
,
720 aom_dc_top_predictor_16x64_neon
,
721 aom_dc_128_predictor_16x64_neon
, aom_v_predictor_16x64_neon
,
722 aom_h_predictor_16x64_neon
, aom_paeth_predictor_16x64_neon
,
723 aom_smooth_predictor_16x64_neon
,
724 aom_smooth_v_predictor_16x64_neon
,
725 aom_smooth_h_predictor_16x64_neon
)
728 // -----------------------------------------------------------------------------
729 // 32x32, 32x16, 32x64, 32x8
731 INTRA_PRED_TEST(C
, TX_32X32
, aom_dc_predictor_32x32_c
,
732 aom_dc_left_predictor_32x32_c
, aom_dc_top_predictor_32x32_c
,
733 aom_dc_128_predictor_32x32_c
, aom_v_predictor_32x32_c
,
734 aom_h_predictor_32x32_c
, aom_paeth_predictor_32x32_c
,
735 aom_smooth_predictor_32x32_c
, aom_smooth_v_predictor_32x32_c
,
736 aom_smooth_h_predictor_32x32_c
)
737 INTRA_PRED_TEST(C
, TX_32X16
, aom_dc_predictor_32x16_c
,
738 aom_dc_left_predictor_32x16_c
, aom_dc_top_predictor_32x16_c
,
739 aom_dc_128_predictor_32x16_c
, aom_v_predictor_32x16_c
,
740 aom_h_predictor_32x16_c
, aom_paeth_predictor_32x16_c
,
741 aom_smooth_predictor_32x16_c
, aom_smooth_v_predictor_32x16_c
,
742 aom_smooth_h_predictor_32x16_c
)
743 INTRA_PRED_TEST(C
, TX_32X64
, aom_dc_predictor_32x64_c
,
744 aom_dc_left_predictor_32x64_c
, aom_dc_top_predictor_32x64_c
,
745 aom_dc_128_predictor_32x64_c
, aom_v_predictor_32x64_c
,
746 aom_h_predictor_32x64_c
, aom_paeth_predictor_32x64_c
,
747 aom_smooth_predictor_32x64_c
, aom_smooth_v_predictor_32x64_c
,
748 aom_smooth_h_predictor_32x64_c
)
749 INTRA_PRED_TEST(C
, TX_32X8
, aom_dc_predictor_32x8_c
,
750 aom_dc_left_predictor_32x8_c
, aom_dc_top_predictor_32x8_c
,
751 aom_dc_128_predictor_32x8_c
, aom_v_predictor_32x8_c
,
752 aom_h_predictor_32x8_c
, aom_paeth_predictor_32x8_c
,
753 aom_smooth_predictor_32x8_c
, aom_smooth_v_predictor_32x8_c
,
754 aom_smooth_h_predictor_32x8_c
)
757 INTRA_PRED_TEST(SSE2
, TX_32X32
, aom_dc_predictor_32x32_sse2
,
758 aom_dc_left_predictor_32x32_sse2
,
759 aom_dc_top_predictor_32x32_sse2
,
760 aom_dc_128_predictor_32x32_sse2
, aom_v_predictor_32x32_sse2
,
761 aom_h_predictor_32x32_sse2
, nullptr, nullptr, nullptr, nullptr)
762 INTRA_PRED_TEST(SSE2
, TX_32X16
, aom_dc_predictor_32x16_sse2
,
763 aom_dc_left_predictor_32x16_sse2
,
764 aom_dc_top_predictor_32x16_sse2
,
765 aom_dc_128_predictor_32x16_sse2
, aom_v_predictor_32x16_sse2
,
766 aom_h_predictor_32x16_sse2
, nullptr, nullptr, nullptr, nullptr)
767 INTRA_PRED_TEST(SSE2
, TX_32X64
, aom_dc_predictor_32x64_sse2
,
768 aom_dc_left_predictor_32x64_sse2
,
769 aom_dc_top_predictor_32x64_sse2
,
770 aom_dc_128_predictor_32x64_sse2
, aom_v_predictor_32x64_sse2
,
771 aom_h_predictor_32x64_sse2
, nullptr, nullptr, nullptr, nullptr)
772 INTRA_PRED_TEST(SSE2
, TX_32X8
, aom_dc_predictor_32x8_sse2
,
773 aom_dc_left_predictor_32x8_sse2
, aom_dc_top_predictor_32x8_sse2
,
774 aom_dc_128_predictor_32x8_sse2
, aom_v_predictor_32x8_sse2
,
775 aom_h_predictor_32x8_sse2
, nullptr, nullptr, nullptr, nullptr)
779 INTRA_PRED_TEST(SSSE3
, TX_32X32
, nullptr, nullptr, nullptr, nullptr, nullptr,
780 nullptr, aom_paeth_predictor_32x32_ssse3
,
781 aom_smooth_predictor_32x32_ssse3
,
782 aom_smooth_v_predictor_32x32_ssse3
,
783 aom_smooth_h_predictor_32x32_ssse3
)
784 INTRA_PRED_TEST(SSSE3
, TX_32X16
, nullptr, nullptr, nullptr, nullptr, nullptr,
785 nullptr, aom_paeth_predictor_32x16_ssse3
,
786 aom_smooth_predictor_32x16_ssse3
,
787 aom_smooth_v_predictor_32x16_ssse3
,
788 aom_smooth_h_predictor_32x16_ssse3
)
789 INTRA_PRED_TEST(SSSE3
, TX_32X64
, nullptr, nullptr, nullptr, nullptr, nullptr,
790 nullptr, aom_paeth_predictor_32x64_ssse3
,
791 aom_smooth_predictor_32x64_ssse3
,
792 aom_smooth_v_predictor_32x64_ssse3
,
793 aom_smooth_h_predictor_32x64_ssse3
)
794 INTRA_PRED_TEST(SSSE3
, TX_32X8
, nullptr, nullptr, nullptr, nullptr, nullptr,
795 nullptr, aom_paeth_predictor_32x8_ssse3
,
796 aom_smooth_predictor_32x8_ssse3
,
797 aom_smooth_v_predictor_32x8_ssse3
,
798 aom_smooth_h_predictor_32x8_ssse3
)
802 INTRA_PRED_TEST(AVX2
, TX_32X32
, aom_dc_predictor_32x32_avx2
,
803 aom_dc_left_predictor_32x32_avx2
,
804 aom_dc_top_predictor_32x32_avx2
,
805 aom_dc_128_predictor_32x32_avx2
, aom_v_predictor_32x32_avx2
,
806 aom_h_predictor_32x32_avx2
, aom_paeth_predictor_32x32_avx2
,
807 nullptr, nullptr, nullptr)
808 INTRA_PRED_TEST(AVX2
, TX_32X16
, aom_dc_predictor_32x16_avx2
,
809 aom_dc_left_predictor_32x16_avx2
,
810 aom_dc_top_predictor_32x16_avx2
,
811 aom_dc_128_predictor_32x16_avx2
, aom_v_predictor_32x16_avx2
,
812 nullptr, aom_paeth_predictor_32x16_avx2
, nullptr, nullptr,
814 INTRA_PRED_TEST(AVX2
, TX_32X64
, aom_dc_predictor_32x64_avx2
,
815 aom_dc_left_predictor_32x64_avx2
,
816 aom_dc_top_predictor_32x64_avx2
,
817 aom_dc_128_predictor_32x64_avx2
, aom_v_predictor_32x64_avx2
,
818 nullptr, aom_paeth_predictor_32x64_avx2
, nullptr, nullptr,
823 INTRA_PRED_TEST(NEON
, TX_32X32
, aom_dc_predictor_32x32_neon
,
824 aom_dc_left_predictor_32x32_neon
,
825 aom_dc_top_predictor_32x32_neon
,
826 aom_dc_128_predictor_32x32_neon
, aom_v_predictor_32x32_neon
,
827 aom_h_predictor_32x32_neon
, aom_paeth_predictor_32x32_neon
,
828 aom_smooth_predictor_32x32_neon
,
829 aom_smooth_v_predictor_32x32_neon
,
830 aom_smooth_h_predictor_32x32_neon
)
831 INTRA_PRED_TEST(NEON
, TX_32X16
, aom_dc_predictor_32x16_neon
,
832 aom_dc_left_predictor_32x16_neon
,
833 aom_dc_top_predictor_32x16_neon
,
834 aom_dc_128_predictor_32x16_neon
, aom_v_predictor_32x16_neon
,
835 aom_h_predictor_32x16_neon
, aom_paeth_predictor_32x16_neon
,
836 aom_smooth_predictor_32x16_neon
,
837 aom_smooth_v_predictor_32x16_neon
,
838 aom_smooth_h_predictor_32x16_neon
)
839 INTRA_PRED_TEST(NEON
, TX_32X64
, aom_dc_predictor_32x64_neon
,
840 aom_dc_left_predictor_32x64_neon
,
841 aom_dc_top_predictor_32x64_neon
,
842 aom_dc_128_predictor_32x64_neon
, aom_v_predictor_32x64_neon
,
843 aom_h_predictor_32x64_neon
, aom_paeth_predictor_32x64_neon
,
844 aom_smooth_predictor_32x64_neon
,
845 aom_smooth_v_predictor_32x64_neon
,
846 aom_smooth_h_predictor_32x64_neon
)
847 INTRA_PRED_TEST(NEON
, TX_32X8
, aom_dc_predictor_32x8_neon
,
848 aom_dc_left_predictor_32x8_neon
, aom_dc_top_predictor_32x8_neon
,
849 aom_dc_128_predictor_32x8_neon
, aom_v_predictor_32x8_neon
,
850 aom_h_predictor_32x8_neon
, aom_paeth_predictor_32x8_neon
,
851 aom_smooth_predictor_32x8_neon
,
852 aom_smooth_v_predictor_32x8_neon
,
853 aom_smooth_h_predictor_32x8_neon
)
856 // -----------------------------------------------------------------------------
857 // 64x64, 64x32, 64x16
859 INTRA_PRED_TEST(C
, TX_64X64
, aom_dc_predictor_64x64_c
,
860 aom_dc_left_predictor_64x64_c
, aom_dc_top_predictor_64x64_c
,
861 aom_dc_128_predictor_64x64_c
, aom_v_predictor_64x64_c
,
862 aom_h_predictor_64x64_c
, aom_paeth_predictor_64x64_c
,
863 aom_smooth_predictor_64x64_c
, aom_smooth_v_predictor_64x64_c
,
864 aom_smooth_h_predictor_64x64_c
)
865 INTRA_PRED_TEST(C
, TX_64X32
, aom_dc_predictor_64x32_c
,
866 aom_dc_left_predictor_64x32_c
, aom_dc_top_predictor_64x32_c
,
867 aom_dc_128_predictor_64x32_c
, aom_v_predictor_64x32_c
,
868 aom_h_predictor_64x32_c
, aom_paeth_predictor_64x32_c
,
869 aom_smooth_predictor_64x32_c
, aom_smooth_v_predictor_64x32_c
,
870 aom_smooth_h_predictor_64x32_c
)
871 INTRA_PRED_TEST(C
, TX_64X16
, aom_dc_predictor_64x16_c
,
872 aom_dc_left_predictor_64x16_c
, aom_dc_top_predictor_64x16_c
,
873 aom_dc_128_predictor_64x16_c
, aom_v_predictor_64x16_c
,
874 aom_h_predictor_64x16_c
, aom_paeth_predictor_64x16_c
,
875 aom_smooth_predictor_64x16_c
, aom_smooth_v_predictor_64x16_c
,
876 aom_smooth_h_predictor_64x16_c
)
879 INTRA_PRED_TEST(SSE2
, TX_64X64
, aom_dc_predictor_64x64_sse2
,
880 aom_dc_left_predictor_64x64_sse2
,
881 aom_dc_top_predictor_64x64_sse2
,
882 aom_dc_128_predictor_64x64_sse2
, aom_v_predictor_64x64_sse2
,
883 aom_h_predictor_64x64_sse2
, nullptr, nullptr, nullptr, nullptr)
884 INTRA_PRED_TEST(SSE2
, TX_64X32
, aom_dc_predictor_64x32_sse2
,
885 aom_dc_left_predictor_64x32_sse2
,
886 aom_dc_top_predictor_64x32_sse2
,
887 aom_dc_128_predictor_64x32_sse2
, aom_v_predictor_64x32_sse2
,
888 aom_h_predictor_64x32_sse2
, nullptr, nullptr, nullptr, nullptr)
889 INTRA_PRED_TEST(SSE2
, TX_64X16
, aom_dc_predictor_64x16_sse2
,
890 aom_dc_left_predictor_64x16_sse2
,
891 aom_dc_top_predictor_64x16_sse2
,
892 aom_dc_128_predictor_64x16_sse2
, aom_v_predictor_64x16_sse2
,
893 aom_h_predictor_64x16_sse2
, nullptr, nullptr, nullptr, nullptr)
897 INTRA_PRED_TEST(SSSE3
, TX_64X64
, nullptr, nullptr, nullptr, nullptr, nullptr,
898 nullptr, aom_paeth_predictor_64x64_ssse3
,
899 aom_smooth_predictor_64x64_ssse3
,
900 aom_smooth_v_predictor_64x64_ssse3
,
901 aom_smooth_h_predictor_64x64_ssse3
)
902 INTRA_PRED_TEST(SSSE3
, TX_64X32
, nullptr, nullptr, nullptr, nullptr, nullptr,
903 nullptr, aom_paeth_predictor_64x32_ssse3
,
904 aom_smooth_predictor_64x32_ssse3
,
905 aom_smooth_v_predictor_64x32_ssse3
,
906 aom_smooth_h_predictor_64x32_ssse3
)
907 INTRA_PRED_TEST(SSSE3
, TX_64X16
, nullptr, nullptr, nullptr, nullptr, nullptr,
908 nullptr, aom_paeth_predictor_64x16_ssse3
,
909 aom_smooth_predictor_64x16_ssse3
,
910 aom_smooth_v_predictor_64x16_ssse3
,
911 aom_smooth_h_predictor_64x16_ssse3
)
915 INTRA_PRED_TEST(AVX2
, TX_64X64
, aom_dc_predictor_64x64_avx2
,
916 aom_dc_left_predictor_64x64_avx2
,
917 aom_dc_top_predictor_64x64_avx2
,
918 aom_dc_128_predictor_64x64_avx2
, aom_v_predictor_64x64_avx2
,
919 nullptr, aom_paeth_predictor_64x64_avx2
, nullptr, nullptr,
921 INTRA_PRED_TEST(AVX2
, TX_64X32
, aom_dc_predictor_64x32_avx2
,
922 aom_dc_left_predictor_64x32_avx2
,
923 aom_dc_top_predictor_64x32_avx2
,
924 aom_dc_128_predictor_64x32_avx2
, aom_v_predictor_64x32_avx2
,
925 nullptr, aom_paeth_predictor_64x32_avx2
, nullptr, nullptr,
927 INTRA_PRED_TEST(AVX2
, TX_64X16
, aom_dc_predictor_64x16_avx2
,
928 aom_dc_left_predictor_64x16_avx2
,
929 aom_dc_top_predictor_64x16_avx2
,
930 aom_dc_128_predictor_64x16_avx2
, aom_v_predictor_64x16_avx2
,
931 nullptr, aom_paeth_predictor_64x16_avx2
, nullptr, nullptr,
936 INTRA_PRED_TEST(NEON
, TX_64X64
, aom_dc_predictor_64x64_neon
,
937 aom_dc_left_predictor_64x64_neon
,
938 aom_dc_top_predictor_64x64_neon
,
939 aom_dc_128_predictor_64x64_neon
, aom_v_predictor_64x64_neon
,
940 aom_h_predictor_64x64_neon
, aom_paeth_predictor_64x64_neon
,
941 aom_smooth_predictor_64x64_neon
,
942 aom_smooth_v_predictor_64x64_neon
,
943 aom_smooth_h_predictor_64x64_neon
)
944 INTRA_PRED_TEST(NEON
, TX_64X32
, aom_dc_predictor_64x32_neon
,
945 aom_dc_left_predictor_64x32_neon
,
946 aom_dc_top_predictor_64x32_neon
,
947 aom_dc_128_predictor_64x32_neon
, aom_v_predictor_64x32_neon
,
948 aom_h_predictor_64x32_neon
, aom_paeth_predictor_64x32_neon
,
949 aom_smooth_predictor_64x32_neon
,
950 aom_smooth_v_predictor_64x32_neon
,
951 aom_smooth_h_predictor_64x32_neon
)
952 INTRA_PRED_TEST(NEON
, TX_64X16
, aom_dc_predictor_64x16_neon
,
953 aom_dc_left_predictor_64x16_neon
,
954 aom_dc_top_predictor_64x16_neon
,
955 aom_dc_128_predictor_64x16_neon
, aom_v_predictor_64x16_neon
,
956 aom_h_predictor_64x16_neon
, aom_paeth_predictor_64x16_neon
,
957 aom_smooth_predictor_64x16_neon
,
958 aom_smooth_v_predictor_64x16_neon
,
959 aom_smooth_h_predictor_64x16_neon
)
962 #if CONFIG_AV1_HIGHBITDEPTH
963 // -----------------------------------------------------------------------------
967 typedef void (*AvxHighbdPredFunc
)(uint16_t *dst
, ptrdiff_t y_stride
,
968 const uint16_t *above
, const uint16_t *left
,
971 typedef IntraPredTestMem
<uint16_t> Av1HighbdIntraPredTestMem
;
973 void TestHighbdIntraPred(TX_SIZE tx_size
, AvxHighbdPredFunc
const *pred_funcs
,
974 const char *const signatures
[]) {
975 const int block_width
= tx_size_wide
[tx_size
];
976 const int block_height
= tx_size_high
[tx_size
];
977 const int num_pixels_per_test
=
978 block_width
* block_height
* kNumAv1IntraFuncs
;
979 const int kNumTests
= static_cast<int>(2.e10
/ num_pixels_per_test
);
980 Av1HighbdIntraPredTestMem intra_pred_test_mem
;
982 intra_pred_test_mem
.Init(block_width
, block_height
, bd
);
984 for (int k
= 0; k
< kNumAv1IntraFuncs
; ++k
) {
985 if (pred_funcs
[k
] == nullptr) continue;
986 memcpy(intra_pred_test_mem
.src
, intra_pred_test_mem
.ref_src
,
987 sizeof(intra_pred_test_mem
.src
));
988 aom_usec_timer timer
;
989 aom_usec_timer_start(&timer
);
990 for (int num_tests
= 0; num_tests
< kNumTests
; ++num_tests
) {
991 pred_funcs
[k
](intra_pred_test_mem
.src
, intra_pred_test_mem
.stride
,
992 intra_pred_test_mem
.above
, intra_pred_test_mem
.left
, bd
);
994 aom_usec_timer_mark(&timer
);
995 const int elapsed_time
=
996 static_cast<int>(aom_usec_timer_elapsed(&timer
) / 1000);
998 tx_size
, true, signatures
, intra_pred_test_mem
.src
,
999 intra_pred_test_mem
.num_pixels
* sizeof(*intra_pred_test_mem
.src
),
1004 static const char *const kHighbdSignatures
[TX_SIZES_ALL
][kNumAv1IntraFuncs
] = {
1007 "11f74af6c5737df472f3275cbde062fa",
1008 "51bea056b6447c93f6eb8f6b7e8f6f71",
1009 "27e97f946766331795886f4de04c5594",
1010 "53ab15974b049111fb596c5168ec7e3f",
1011 "f0b640bb176fbe4584cf3d32a9b0320a",
1012 "729783ca909e03afd4b47111c80d967b",
1013 "6e30009c45474a22032678b1bd579c8f",
1014 "e57cba016d808aa8a35619df2a65f049",
1015 "55a6c37f39afcbbf5abca4a985b96459",
1016 "a623d45b37dafec1f8a75c4c5218913d",
1020 "03da8829fe94663047fd108c5fcaa71d",
1021 "ecdb37b8120a2d3a4c706b016bd1bfd7",
1022 "1d4543ed8d2b9368cb96898095fe8a75",
1023 "f791c9a67b913cbd82d9da8ecede30e2",
1024 "065c70646f4dbaff913282f55a45a441",
1025 "51f87123616662ef7c35691497dfd0ba",
1026 "85c01ba03df68f9ece7bd3fa0f8980e6",
1027 "ad19b7dac092f56df6d054e1f67f21e7",
1028 "0edc415b5dd7299f7a34fb9f71d31d78",
1029 "2bc8ec19e9f4b77a64b8a0a1f6aec7e7",
1033 "e33cb3f56a878e2fddb1b2fc51cdd275",
1034 "c7bff6f04b6052c8ab335d726dbbd52d",
1035 "d0b0b47b654a9bcc5c6008110a44589b",
1036 "78f5da7b10b2b9ab39f114a33b6254e9",
1037 "c78e31d23831abb40d6271a318fdd6f3",
1038 "90d1347f4ec9198a0320daecb6ff90b8",
1039 "e63ded54ab3d0e8728b6f24d4f01e53f",
1040 "35ce21fbe0ea114c089fc3489a78155d",
1041 "f277f6ef8e4d717f1f0dfe2706ac197d",
1042 "e8014d3f41256976c02e0f1e622ba2b9",
1046 "a3e8056ba7e36628cce4917cd956fedd",
1047 "cc7d3024fe8748b512407edee045377e",
1048 "2aab0a0f330a1d3e19b8ecb8f06387a3",
1049 "a547bc3fb7b06910bf3973122a426661",
1050 "26f712514da95042f93d6e8dc8e431dc",
1051 "bb08c6e16177081daa3d936538dbc2e3",
1052 "84bf83f94a51b33654ca940c6f8bc057",
1053 "7168b03fc31bf29596a344d6a35d007c",
1054 "b073a70d3672f1282236994f5d12e94b",
1055 "c51607aebad5dcb3c1e3b58ef9e5b84e",
1059 "a6baa0d4bfb2269a94c7a38f86a4bccf",
1060 "3f1ef5f473a49eba743f17a3324adf9d",
1061 "12ac11889ae5f55b7781454efd706a6a",
1062 "d9a906c0e692b22e1b4414e71a704b7e",
1063 "47d4cadd56f70c11ff8f3e5d8df81161",
1064 "de997744cf24c16c5ac2a36b02b351cc",
1065 "23781211ae178ddeb6c4bb97a6bd7d83",
1066 "a79d2e28340ca34b9e37daabbf030f63",
1067 "0372bd3ddfc258750a6ac106b70587f4",
1068 "228ef625d9460cbf6fa253a16a730976",
1072 "22d519b796d59644043466320e4ccd14",
1073 "09513a738c49b3f9542d27f34abbe1d5",
1074 "807ae5e8813443ff01e71be6efacfb69",
1075 "cbfa18d0293430b6e9708b0be1fd2394",
1076 "346c354c34ec7fa780b576db355dab88",
1077 "f97dae85c35359632380b09ca98d611e",
1078 "698ae351d8896d89ed9e4e67b6e53eda",
1079 "dcc197034a9c45a3d8238bf085835f4e",
1080 "7a35e2c42ffdc2efc2d6d1d75a100fc7",
1081 "41ab6cebd4516c87a91b2a593e2c2506",
1085 "d58cd4c4bf3b7bbaa5db5e1a5622ec78",
1086 "6e572c35aa782d00cafcb99e9ea047ea",
1087 "e8c22a3702b416dc9ab974505afbed09",
1088 "aaa4e4762a795aad7ad74de0c662c4e4",
1089 "a19f9101967383c3dcbd516dc317a291",
1090 "9ab8cb91f1a595b9ebe3fe8de58031aa",
1091 "2cf9021d5f1169268699807ee118b65f",
1092 "ee9605fcbd6fb871f1c5cd81a6989327",
1093 "b4871af8316089e3e23522175df7e93f",
1094 "d33301e1c2cb173be46792a22d19881a",
1098 "4562de1d0336610880fdd5685498a9ec",
1099 "16310fa7076394f16fc85c4b149d89c9",
1100 "0e94af88e1dc573b6f0f499cddd1f530",
1101 "dfd245ee20d091c67809160340365aa9",
1102 "d3562504327f70c096c5be23fd8a3747",
1103 "601b853558502acbb5135eadd2da117a",
1104 "3c624345a723a1b2b1bea05a6a08bc99",
1105 "2a9c781de609e0184cc7ab442050f4e5",
1106 "0ddc5035c22252747126b61fc238c74d",
1107 "e43f5d83bab759af69c7b6773fc8f9b2",
1111 "a57d6b5a9bfd30c29591d8717ace9c51",
1112 "f5907ba97ee6c53e339e953fc8d845ee",
1113 "ea3aa727913ce45af06f89dd1808db5f",
1114 "408af4f23e48d14b48ee35ae094fcd18",
1115 "85c41cbcb5d744f7961e8950026fbffe",
1116 "8a4e588a837638887ba671f8d4910485",
1117 "b792d8826b67a21757ea7097cff9e05b",
1118 "f94ce7101bb87fd3bb9312112527dbf4",
1119 "688c6660a6dc6fa61fa1aa38e708c209",
1120 "0cdf641b4f81d69509c92ae0b93ef5ff",
1124 "aee4b3b0e3cc02d48e2c40d77f807927",
1125 "8baef2b2e789f79c8df9d90ad10f34a4",
1126 "038c38ee3c4f090bb8d736eab136aafc",
1127 "1a3de2aaeaffd68a9fd6c7f6557b83f3",
1128 "385c6e0ea29421dd81011a2934641e26",
1129 "6cf96c285d1a2d4787f955dad715b08c",
1130 "2d7f75dcd73b9528c8396279ff09ff3a",
1131 "5a63cd1841e4ed470e4ca5ef845f2281",
1132 "610d899ca945fbead33287d4335a8b32",
1133 "6bafaad81fce37be46730187e78d8b11",
1137 "290b23c9f5a1de7905bfa71a942da29b",
1138 "701e7b82593c66da5052fc4b6afd79ce",
1139 "4da828c5455cd246735a663fbb204989",
1140 "e3fbeaf234efece8dbd752b77226200c",
1141 "4d1d8c969f05155a7e7e84cf7aad021b",
1142 "c22e4877c2c946d5bdc0d542e29e70cf",
1143 "8ac1ce815e7780500f842b0beb0bb980",
1144 "9fee2e2502b507f25bfad30a55b0b610",
1145 "4ced9c212ec6f9956e27f68a91b59fef",
1146 "4a7a0b93f138bb0863e4e465b01ec0b1",
1150 "ad9cfc395a5c5644a21d958c7274ac14",
1151 "f29d6d03c143ddf96fef04c19f2c8333",
1152 "a8bdc852ef704dd4975c61893e8fbc3f",
1153 "7d0bd7dea26226741dbca9a97f27fa74",
1154 "45c27c5cca9a91b6ae8379feb0881c9f",
1155 "8a0b78df1e001b85c874d686eac4aa1b",
1156 "ce9fa75fac54a3f6c0cc3f2083b938f1",
1157 "c0dca10d88762c954af18dc9e3791a39",
1158 "61df229eddfccab913b8fda4bb02f9ac",
1159 "4f4df6bc8d50a5600b573f0e44d70e66",
1163 "db9d82921fd88b24fdff6f849f2f9c87",
1164 "5ecc7fdc52d2f575ad4f2d0e9e6b1e11",
1165 "b4581311a0a73d95dfac7f8f44591032",
1166 "68bd283cfd1a125f6b2ee47cee874d36",
1167 "804179f05c032908a5e36077bb87c994",
1168 "fc5fd041a8ee779015394d0c066ee43c",
1169 "68f5579ccadfe9a1baafb158334a3db2",
1170 "fe237e45e215ab06d79046da9ad71e84",
1171 "9a8a938a6824551bf7d21b8fd1d70ea1",
1172 "eb7332f2017cd96882c76e7136aeaf53",
1176 "7bafa307d507747b8132e7735b7f1c73",
1177 "e58bc2d8213a97d1fea9cfb73d7a9633",
1178 "435f8a8e8bbf14dbf2fe16b2be9e97aa",
1179 "1d0e767b68d84acbfb50b7a04e633836",
1180 "5f713bd7b324fe73bb7063e35ee14e5e",
1181 "0dac4e1fa3d59814202715468c01ed56",
1182 "47709d1db4a330c7a8900f450e6fddd1",
1183 "258e0b930bb27db28f05da9cf7d1ee7c",
1184 "36cf030fbae767912593efea045bfff5",
1185 "248d7aceabb7499febae663fae41a920",
1189 "04dde98e632670e393704742c89f9067",
1190 "8c72543f1664651ae1fa08e2ac0adb9b",
1191 "2354a2cdc2773aa2df8ab4010db1be39",
1192 "6300ad3221c26da39b10e0e6d87ee3be",
1193 "8ea30b661c6ba60b28d3167f19e449b8",
1194 "fb6c1e4ff101a371cede63c2955cdb7e",
1195 "a517c06433d6d7927b16a72184a23e92",
1196 "393828be5d62ab6c48668bea5e2f801a",
1197 "b1e510c542013eb9d6fb188dea2ce90a",
1198 "569a8f2fe01679ca216535ecbcdccb62",
1202 "9d541865c185ca7607852852613ac1fc",
1203 "b96be67f08c6b5fa5ebd3411299c2f7c",
1204 "75a2dcf50004b9d188849b048239767e",
1205 "429492ff415c9fd9b050d73b2ad500f8",
1206 "64b3606c1ccd036bd766bd5711392cf4",
1207 "cb59844a0f01660ac955bae3511f1100",
1208 "3e076155b7a70e8828618e3f33b51e3d",
1209 "ed2d1f597ab7c50beff690f737cf9726",
1210 "7909c6a26aaf20c59d996d3e5b5f9c29",
1211 "965798807240c98c6f7cc9b457ed0773",
1215 "36f391aa31619eec1f4d9ee95ea454cc",
1216 "b82648f14eeba2527357cb50bc3223cb",
1217 "7a7b2adf429125e8bee9d1d00a66e13f",
1218 "4198e4d6ba503b7cc2d7e96bb845f661",
1219 "96c160d2ec1be9fe0cdea9682f14d257",
1220 "19a450bcebaa75afb4fc6bd1fd6434af",
1221 "2bd2e35967d43d0ec1c6587a36f204d5",
1222 "49799a99aa4ccfbd989bee92a99422f1",
1223 "955530e99813812a74659edeac3f5475",
1224 "f0316b84e378a19cd11b19a6e40b2914",
1228 "8cba1b70a0bde29e8ef235cedc5faa7d",
1229 "96d00ddc7537bf7f196006591b733b4e",
1230 "cbf69d5d157c9f3355a4757b1d6e3414",
1231 "3ac1f642019493dec1b737d7a3a1b4e5",
1232 "35f9ee300d7fa3c97338e81a6f21dcd4",
1233 "aae335442e77c8ebc280f16ea50ba9c7",
1234 "a6140fdac2278644328be094d88731db",
1235 "2df93621b6ff100f7008432d509f4161",
1236 "c77bf5aee39e7ed4a3dd715f816f452a",
1237 "02109bd63557d90225c32a8f1338258e",
1241 "a5e2f9fb685d5f4a048e9a96affd25a4",
1242 "1348f249690d9eefe09d9ad7ead2c801",
1243 "525da4b187acd81b1ff1116b60461141",
1244 "e99d072de858094c98b01bd4a6772634",
1245 "873bfa9dc24693f19721f7c8d527f7d3",
1246 "0acfc6507bd3468e9679efc127d6e4b9",
1247 "57d03f8d079c7264854e22ac1157cfae",
1248 "6c2c4036f70c7d957a9399b5436c0774",
1249 "42b8e4a97b7f8416c72a5148c031c0b1",
1250 "a38a2c5f79993dfae8530e9e25800893",
1256 #define HIGHBD_INTRA_PRED_TEST(arch, tx_size, dc, dc_left, dc_top, dc_128, v, \
1257 h, paeth, smooth, smooth_v, smooth_h) \
1258 TEST(arch, DISABLED_##TestHighbdIntraPred_##tx_size) { \
1259 static const AvxHighbdPredFunc aom_intra_pred[] = { \
1260 dc, dc_left, dc_top, dc_128, v, h, paeth, smooth, smooth_v, smooth_h \
1262 TestHighbdIntraPred(tx_size, aom_intra_pred, kHighbdSignatures[tx_size]); \
1265 // -----------------------------------------------------------------------------
1268 HIGHBD_INTRA_PRED_TEST(
1269 C
, TX_4X4
, aom_highbd_dc_predictor_4x4_c
,
1270 aom_highbd_dc_left_predictor_4x4_c
, aom_highbd_dc_top_predictor_4x4_c
,
1271 aom_highbd_dc_128_predictor_4x4_c
, aom_highbd_v_predictor_4x4_c
,
1272 aom_highbd_h_predictor_4x4_c
, aom_highbd_paeth_predictor_4x4_c
,
1273 aom_highbd_smooth_predictor_4x4_c
, aom_highbd_smooth_v_predictor_4x4_c
,
1274 aom_highbd_smooth_h_predictor_4x4_c
)
1276 HIGHBD_INTRA_PRED_TEST(
1277 C
, TX_4X8
, aom_highbd_dc_predictor_4x8_c
,
1278 aom_highbd_dc_left_predictor_4x8_c
, aom_highbd_dc_top_predictor_4x8_c
,
1279 aom_highbd_dc_128_predictor_4x8_c
, aom_highbd_v_predictor_4x8_c
,
1280 aom_highbd_h_predictor_4x8_c
, aom_highbd_paeth_predictor_4x8_c
,
1281 aom_highbd_smooth_predictor_4x8_c
, aom_highbd_smooth_v_predictor_4x8_c
,
1282 aom_highbd_smooth_h_predictor_4x8_c
)
1283 HIGHBD_INTRA_PRED_TEST(
1284 C
, TX_4X16
, aom_highbd_dc_predictor_4x16_c
,
1285 aom_highbd_dc_left_predictor_4x16_c
, aom_highbd_dc_top_predictor_4x16_c
,
1286 aom_highbd_dc_128_predictor_4x16_c
, aom_highbd_v_predictor_4x16_c
,
1287 aom_highbd_h_predictor_4x16_c
, aom_highbd_paeth_predictor_4x16_c
,
1288 aom_highbd_smooth_predictor_4x16_c
, aom_highbd_smooth_v_predictor_4x16_c
,
1289 aom_highbd_smooth_h_predictor_4x16_c
)
1291 HIGHBD_INTRA_PRED_TEST(SSE2
, TX_4X4
, aom_highbd_dc_predictor_4x4_sse2
,
1292 aom_highbd_dc_left_predictor_4x4_sse2
,
1293 aom_highbd_dc_top_predictor_4x4_sse2
,
1294 aom_highbd_dc_128_predictor_4x4_sse2
,
1295 aom_highbd_v_predictor_4x4_sse2
,
1296 aom_highbd_h_predictor_4x4_sse2
, nullptr, nullptr,
1299 HIGHBD_INTRA_PRED_TEST(SSE2
, TX_4X8
, aom_highbd_dc_predictor_4x8_sse2
,
1300 aom_highbd_dc_left_predictor_4x8_sse2
,
1301 aom_highbd_dc_top_predictor_4x8_sse2
,
1302 aom_highbd_dc_128_predictor_4x8_sse2
,
1303 aom_highbd_v_predictor_4x8_sse2
,
1304 aom_highbd_h_predictor_4x8_sse2
, nullptr, nullptr,
1308 HIGHBD_INTRA_PRED_TEST(NEON
, TX_4X4
, aom_highbd_dc_predictor_4x4_neon
,
1309 aom_highbd_dc_left_predictor_4x4_neon
,
1310 aom_highbd_dc_top_predictor_4x4_neon
,
1311 aom_highbd_dc_128_predictor_4x4_neon
,
1312 aom_highbd_v_predictor_4x4_neon
,
1313 aom_highbd_h_predictor_4x4_neon
,
1314 aom_highbd_paeth_predictor_4x4_neon
,
1315 aom_highbd_smooth_predictor_4x4_neon
,
1316 aom_highbd_smooth_v_predictor_4x4_neon
,
1317 aom_highbd_smooth_h_predictor_4x4_neon
)
1318 HIGHBD_INTRA_PRED_TEST(NEON
, TX_4X8
, aom_highbd_dc_predictor_4x8_neon
,
1319 aom_highbd_dc_left_predictor_4x8_neon
,
1320 aom_highbd_dc_top_predictor_4x8_neon
,
1321 aom_highbd_dc_128_predictor_4x8_neon
,
1322 aom_highbd_v_predictor_4x8_neon
,
1323 aom_highbd_h_predictor_4x8_neon
,
1324 aom_highbd_paeth_predictor_4x8_neon
,
1325 aom_highbd_smooth_predictor_4x8_neon
,
1326 aom_highbd_smooth_v_predictor_4x8_neon
,
1327 aom_highbd_smooth_h_predictor_4x8_neon
)
1328 HIGHBD_INTRA_PRED_TEST(NEON
, TX_4X16
, aom_highbd_dc_predictor_4x16_neon
,
1329 aom_highbd_dc_left_predictor_4x16_neon
,
1330 aom_highbd_dc_top_predictor_4x16_neon
,
1331 aom_highbd_dc_128_predictor_4x16_neon
,
1332 aom_highbd_v_predictor_4x16_neon
,
1333 aom_highbd_h_predictor_4x16_neon
,
1334 aom_highbd_paeth_predictor_4x16_neon
,
1335 aom_highbd_smooth_predictor_4x16_neon
,
1336 aom_highbd_smooth_v_predictor_4x16_neon
,
1337 aom_highbd_smooth_h_predictor_4x16_neon
)
1340 // -----------------------------------------------------------------------------
1341 // 8x8, 8x4, 8x16, 8x32
1343 HIGHBD_INTRA_PRED_TEST(
1344 C
, TX_8X8
, aom_highbd_dc_predictor_8x8_c
,
1345 aom_highbd_dc_left_predictor_8x8_c
, aom_highbd_dc_top_predictor_8x8_c
,
1346 aom_highbd_dc_128_predictor_8x8_c
, aom_highbd_v_predictor_8x8_c
,
1347 aom_highbd_h_predictor_8x8_c
, aom_highbd_paeth_predictor_8x8_c
,
1348 aom_highbd_smooth_predictor_8x8_c
, aom_highbd_smooth_v_predictor_8x8_c
,
1349 aom_highbd_smooth_h_predictor_8x8_c
)
1350 HIGHBD_INTRA_PRED_TEST(
1351 C
, TX_8X4
, aom_highbd_dc_predictor_8x4_c
,
1352 aom_highbd_dc_left_predictor_8x4_c
, aom_highbd_dc_top_predictor_8x4_c
,
1353 aom_highbd_dc_128_predictor_8x4_c
, aom_highbd_v_predictor_8x4_c
,
1354 aom_highbd_h_predictor_8x4_c
, aom_highbd_paeth_predictor_8x4_c
,
1355 aom_highbd_smooth_predictor_8x4_c
, aom_highbd_smooth_v_predictor_8x4_c
,
1356 aom_highbd_smooth_h_predictor_8x4_c
)
1357 HIGHBD_INTRA_PRED_TEST(
1358 C
, TX_8X16
, aom_highbd_dc_predictor_8x16_c
,
1359 aom_highbd_dc_left_predictor_8x16_c
, aom_highbd_dc_top_predictor_8x16_c
,
1360 aom_highbd_dc_128_predictor_8x16_c
, aom_highbd_v_predictor_8x16_c
,
1361 aom_highbd_h_predictor_8x16_c
, aom_highbd_paeth_predictor_8x16_c
,
1362 aom_highbd_smooth_predictor_8x16_c
, aom_highbd_smooth_v_predictor_8x16_c
,
1363 aom_highbd_smooth_h_predictor_8x16_c
)
1364 HIGHBD_INTRA_PRED_TEST(
1365 C
, TX_8X32
, aom_highbd_dc_predictor_8x32_c
,
1366 aom_highbd_dc_left_predictor_8x32_c
, aom_highbd_dc_top_predictor_8x32_c
,
1367 aom_highbd_dc_128_predictor_8x32_c
, aom_highbd_v_predictor_8x32_c
,
1368 aom_highbd_h_predictor_8x32_c
, aom_highbd_paeth_predictor_8x32_c
,
1369 aom_highbd_smooth_predictor_8x32_c
, aom_highbd_smooth_v_predictor_8x32_c
,
1370 aom_highbd_smooth_h_predictor_8x32_c
)
1373 HIGHBD_INTRA_PRED_TEST(SSE2
, TX_8X8
, aom_highbd_dc_predictor_8x8_sse2
,
1374 aom_highbd_dc_left_predictor_8x8_sse2
,
1375 aom_highbd_dc_top_predictor_8x8_sse2
,
1376 aom_highbd_dc_128_predictor_8x8_sse2
,
1377 aom_highbd_v_predictor_8x8_sse2
,
1378 aom_highbd_h_predictor_8x8_sse2
, nullptr, nullptr,
1380 HIGHBD_INTRA_PRED_TEST(SSE2
, TX_8X4
, aom_highbd_dc_predictor_8x4_sse2
,
1381 aom_highbd_dc_left_predictor_8x4_sse2
,
1382 aom_highbd_dc_top_predictor_8x4_sse2
,
1383 aom_highbd_dc_128_predictor_8x4_sse2
,
1384 aom_highbd_v_predictor_8x4_sse2
,
1385 aom_highbd_h_predictor_8x4_sse2
, nullptr, nullptr,
1387 HIGHBD_INTRA_PRED_TEST(SSE2
, TX_8X16
, aom_highbd_dc_predictor_8x16_sse2
,
1388 aom_highbd_dc_left_predictor_8x16_sse2
,
1389 aom_highbd_dc_top_predictor_8x16_sse2
,
1390 aom_highbd_dc_128_predictor_8x16_sse2
,
1391 aom_highbd_v_predictor_8x16_sse2
,
1392 aom_highbd_h_predictor_8x16_sse2
, nullptr, nullptr,
1397 HIGHBD_INTRA_PRED_TEST(SSSE3
, TX_8X8
, nullptr, nullptr, nullptr, nullptr,
1398 nullptr, nullptr, nullptr, nullptr, nullptr, nullptr)
1402 HIGHBD_INTRA_PRED_TEST(NEON
, TX_8X8
, aom_highbd_dc_predictor_8x8_neon
,
1403 aom_highbd_dc_left_predictor_8x8_neon
,
1404 aom_highbd_dc_top_predictor_8x8_neon
,
1405 aom_highbd_dc_128_predictor_8x8_neon
,
1406 aom_highbd_v_predictor_8x8_neon
,
1407 aom_highbd_h_predictor_8x8_neon
,
1408 aom_highbd_paeth_predictor_8x8_neon
,
1409 aom_highbd_smooth_predictor_8x8_neon
,
1410 aom_highbd_smooth_v_predictor_8x8_neon
,
1411 aom_highbd_smooth_h_predictor_8x8_neon
)
1412 HIGHBD_INTRA_PRED_TEST(NEON
, TX_8X4
, aom_highbd_dc_predictor_8x4_neon
,
1413 aom_highbd_dc_left_predictor_8x4_neon
,
1414 aom_highbd_dc_top_predictor_8x4_neon
,
1415 aom_highbd_dc_128_predictor_8x4_neon
,
1416 aom_highbd_v_predictor_8x4_neon
,
1417 aom_highbd_h_predictor_8x4_neon
,
1418 aom_highbd_paeth_predictor_8x4_neon
,
1419 aom_highbd_smooth_predictor_8x4_neon
,
1420 aom_highbd_smooth_v_predictor_8x4_neon
,
1421 aom_highbd_smooth_h_predictor_8x4_neon
)
1422 HIGHBD_INTRA_PRED_TEST(NEON
, TX_8X16
, aom_highbd_dc_predictor_8x16_neon
,
1423 aom_highbd_dc_left_predictor_8x16_neon
,
1424 aom_highbd_dc_top_predictor_8x16_neon
,
1425 aom_highbd_dc_128_predictor_8x16_neon
,
1426 aom_highbd_v_predictor_8x16_neon
,
1427 aom_highbd_h_predictor_8x16_neon
,
1428 aom_highbd_paeth_predictor_8x16_neon
,
1429 aom_highbd_smooth_predictor_8x16_neon
,
1430 aom_highbd_smooth_v_predictor_8x16_neon
,
1431 aom_highbd_smooth_h_predictor_8x16_neon
)
1432 HIGHBD_INTRA_PRED_TEST(NEON
, TX_8X32
, aom_highbd_dc_predictor_8x32_neon
,
1433 aom_highbd_dc_left_predictor_8x32_neon
,
1434 aom_highbd_dc_top_predictor_8x32_neon
,
1435 aom_highbd_dc_128_predictor_8x32_neon
,
1436 aom_highbd_v_predictor_8x32_neon
,
1437 aom_highbd_h_predictor_8x32_neon
,
1438 aom_highbd_paeth_predictor_8x32_neon
,
1439 aom_highbd_smooth_predictor_8x32_neon
,
1440 aom_highbd_smooth_v_predictor_8x32_neon
,
1441 aom_highbd_smooth_h_predictor_8x32_neon
)
1444 // -----------------------------------------------------------------------------
1445 // 16x16, 16x8, 16x32, 16x4, 16x64
1447 HIGHBD_INTRA_PRED_TEST(
1448 C
, TX_16X16
, aom_highbd_dc_predictor_16x16_c
,
1449 aom_highbd_dc_left_predictor_16x16_c
, aom_highbd_dc_top_predictor_16x16_c
,
1450 aom_highbd_dc_128_predictor_16x16_c
, aom_highbd_v_predictor_16x16_c
,
1451 aom_highbd_h_predictor_16x16_c
, aom_highbd_paeth_predictor_16x16_c
,
1452 aom_highbd_smooth_predictor_16x16_c
, aom_highbd_smooth_v_predictor_16x16_c
,
1453 aom_highbd_smooth_h_predictor_16x16_c
)
1454 HIGHBD_INTRA_PRED_TEST(
1455 C
, TX_16X8
, aom_highbd_dc_predictor_16x8_c
,
1456 aom_highbd_dc_left_predictor_16x8_c
, aom_highbd_dc_top_predictor_16x8_c
,
1457 aom_highbd_dc_128_predictor_16x8_c
, aom_highbd_v_predictor_16x8_c
,
1458 aom_highbd_h_predictor_16x8_c
, aom_highbd_paeth_predictor_16x8_c
,
1459 aom_highbd_smooth_predictor_16x8_c
, aom_highbd_smooth_v_predictor_16x8_c
,
1460 aom_highbd_smooth_h_predictor_16x8_c
)
1461 HIGHBD_INTRA_PRED_TEST(
1462 C
, TX_16X32
, aom_highbd_dc_predictor_16x32_c
,
1463 aom_highbd_dc_left_predictor_16x32_c
, aom_highbd_dc_top_predictor_16x32_c
,
1464 aom_highbd_dc_128_predictor_16x32_c
, aom_highbd_v_predictor_16x32_c
,
1465 aom_highbd_h_predictor_16x32_c
, aom_highbd_paeth_predictor_16x32_c
,
1466 aom_highbd_smooth_predictor_16x32_c
, aom_highbd_smooth_v_predictor_16x32_c
,
1467 aom_highbd_smooth_h_predictor_16x32_c
)
1468 HIGHBD_INTRA_PRED_TEST(
1469 C
, TX_16X4
, aom_highbd_dc_predictor_16x4_c
,
1470 aom_highbd_dc_left_predictor_16x4_c
, aom_highbd_dc_top_predictor_16x4_c
,
1471 aom_highbd_dc_128_predictor_16x4_c
, aom_highbd_v_predictor_16x4_c
,
1472 aom_highbd_h_predictor_16x4_c
, aom_highbd_paeth_predictor_16x4_c
,
1473 aom_highbd_smooth_predictor_16x4_c
, aom_highbd_smooth_v_predictor_16x4_c
,
1474 aom_highbd_smooth_h_predictor_16x4_c
)
1475 HIGHBD_INTRA_PRED_TEST(
1476 C
, TX_16X64
, aom_highbd_dc_predictor_16x64_c
,
1477 aom_highbd_dc_left_predictor_16x64_c
, aom_highbd_dc_top_predictor_16x64_c
,
1478 aom_highbd_dc_128_predictor_16x64_c
, aom_highbd_v_predictor_16x64_c
,
1479 aom_highbd_h_predictor_16x64_c
, aom_highbd_paeth_predictor_16x64_c
,
1480 aom_highbd_smooth_predictor_16x64_c
, aom_highbd_smooth_v_predictor_16x64_c
,
1481 aom_highbd_smooth_h_predictor_16x64_c
)
1484 HIGHBD_INTRA_PRED_TEST(SSE2
, TX_16X16
, aom_highbd_dc_predictor_16x16_sse2
,
1485 aom_highbd_dc_left_predictor_16x16_sse2
,
1486 aom_highbd_dc_top_predictor_16x16_sse2
,
1487 aom_highbd_dc_128_predictor_16x16_sse2
,
1488 aom_highbd_v_predictor_16x16_sse2
,
1489 aom_highbd_h_predictor_16x16_sse2
, nullptr, nullptr,
1491 HIGHBD_INTRA_PRED_TEST(SSE2
, TX_16X8
, aom_highbd_dc_predictor_16x8_sse2
,
1492 aom_highbd_dc_left_predictor_16x8_sse2
,
1493 aom_highbd_dc_top_predictor_16x8_sse2
,
1494 aom_highbd_dc_128_predictor_16x8_sse2
,
1495 aom_highbd_v_predictor_16x8_sse2
,
1496 aom_highbd_h_predictor_16x8_sse2
, nullptr, nullptr,
1498 HIGHBD_INTRA_PRED_TEST(SSE2
, TX_16X32
, aom_highbd_dc_predictor_16x32_sse2
,
1499 aom_highbd_dc_left_predictor_16x32_sse2
,
1500 aom_highbd_dc_top_predictor_16x32_sse2
,
1501 aom_highbd_dc_128_predictor_16x32_sse2
,
1502 aom_highbd_v_predictor_16x32_sse2
,
1503 aom_highbd_h_predictor_16x32_sse2
, nullptr, nullptr,
1508 HIGHBD_INTRA_PRED_TEST(SSSE3
, TX_16X16
, nullptr, nullptr, nullptr, nullptr,
1509 nullptr, nullptr, nullptr, nullptr, nullptr, nullptr)
1513 HIGHBD_INTRA_PRED_TEST(AVX2
, TX_16X16
, nullptr, nullptr, nullptr, nullptr,
1514 nullptr, nullptr, nullptr, nullptr, nullptr, nullptr)
1516 HIGHBD_INTRA_PRED_TEST(AVX2
, TX_16X8
, nullptr, nullptr, nullptr, nullptr,
1517 nullptr, nullptr, nullptr, nullptr, nullptr, nullptr)
1519 HIGHBD_INTRA_PRED_TEST(AVX2
, TX_16X32
, nullptr, nullptr, nullptr, nullptr,
1520 nullptr, nullptr, nullptr, nullptr, nullptr, nullptr)
1524 HIGHBD_INTRA_PRED_TEST(NEON
, TX_16X16
, aom_highbd_dc_predictor_16x16_neon
,
1525 aom_highbd_dc_left_predictor_16x16_neon
,
1526 aom_highbd_dc_top_predictor_16x16_neon
,
1527 aom_highbd_dc_128_predictor_16x16_neon
,
1528 aom_highbd_v_predictor_16x16_neon
,
1529 aom_highbd_h_predictor_16x16_neon
,
1530 aom_highbd_paeth_predictor_16x16_neon
,
1531 aom_highbd_smooth_predictor_16x16_neon
,
1532 aom_highbd_smooth_v_predictor_16x16_neon
,
1533 aom_highbd_smooth_h_predictor_16x16_neon
)
1534 HIGHBD_INTRA_PRED_TEST(NEON
, TX_16X8
, aom_highbd_dc_predictor_16x8_neon
,
1535 aom_highbd_dc_left_predictor_16x8_neon
,
1536 aom_highbd_dc_top_predictor_16x8_neon
,
1537 aom_highbd_dc_128_predictor_16x8_neon
,
1538 aom_highbd_v_predictor_16x8_neon
,
1539 aom_highbd_h_predictor_16x8_neon
,
1540 aom_highbd_paeth_predictor_16x8_neon
,
1541 aom_highbd_smooth_predictor_16x8_neon
,
1542 aom_highbd_smooth_v_predictor_16x8_neon
,
1543 aom_highbd_smooth_h_predictor_16x8_neon
)
1544 HIGHBD_INTRA_PRED_TEST(NEON
, TX_16X32
, aom_highbd_dc_predictor_16x32_neon
,
1545 aom_highbd_dc_left_predictor_16x32_neon
,
1546 aom_highbd_dc_top_predictor_16x32_neon
,
1547 aom_highbd_dc_128_predictor_16x32_neon
,
1548 aom_highbd_v_predictor_16x32_neon
,
1549 aom_highbd_h_predictor_16x32_neon
,
1550 aom_highbd_paeth_predictor_16x32_neon
,
1551 aom_highbd_smooth_predictor_16x32_neon
,
1552 aom_highbd_smooth_v_predictor_16x32_neon
,
1553 aom_highbd_smooth_h_predictor_16x32_neon
)
1554 HIGHBD_INTRA_PRED_TEST(NEON
, TX_16X4
, aom_highbd_dc_predictor_16x4_neon
,
1555 aom_highbd_dc_left_predictor_16x4_neon
,
1556 aom_highbd_dc_top_predictor_16x4_neon
,
1557 aom_highbd_dc_128_predictor_16x4_neon
,
1558 aom_highbd_v_predictor_16x4_neon
,
1559 aom_highbd_h_predictor_16x4_neon
,
1560 aom_highbd_paeth_predictor_16x4_neon
,
1561 aom_highbd_smooth_predictor_16x4_neon
,
1562 aom_highbd_smooth_v_predictor_16x4_neon
,
1563 aom_highbd_smooth_h_predictor_16x4_neon
)
1564 HIGHBD_INTRA_PRED_TEST(NEON
, TX_16X64
, aom_highbd_dc_predictor_16x64_neon
,
1565 aom_highbd_dc_left_predictor_16x64_neon
,
1566 aom_highbd_dc_top_predictor_16x64_neon
,
1567 aom_highbd_dc_128_predictor_16x64_neon
,
1568 aom_highbd_v_predictor_16x64_neon
,
1569 aom_highbd_h_predictor_16x64_neon
,
1570 aom_highbd_paeth_predictor_16x64_neon
,
1571 aom_highbd_smooth_predictor_16x64_neon
,
1572 aom_highbd_smooth_v_predictor_16x64_neon
,
1573 aom_highbd_smooth_h_predictor_16x64_neon
)
1576 // -----------------------------------------------------------------------------
1577 // 32x32, 32x16, 32x64, 32x8
1579 HIGHBD_INTRA_PRED_TEST(
1580 C
, TX_32X32
, aom_highbd_dc_predictor_32x32_c
,
1581 aom_highbd_dc_left_predictor_32x32_c
, aom_highbd_dc_top_predictor_32x32_c
,
1582 aom_highbd_dc_128_predictor_32x32_c
, aom_highbd_v_predictor_32x32_c
,
1583 aom_highbd_h_predictor_32x32_c
, aom_highbd_paeth_predictor_32x32_c
,
1584 aom_highbd_smooth_predictor_32x32_c
, aom_highbd_smooth_v_predictor_32x32_c
,
1585 aom_highbd_smooth_h_predictor_32x32_c
)
1586 HIGHBD_INTRA_PRED_TEST(
1587 C
, TX_32X16
, aom_highbd_dc_predictor_32x16_c
,
1588 aom_highbd_dc_left_predictor_32x16_c
, aom_highbd_dc_top_predictor_32x16_c
,
1589 aom_highbd_dc_128_predictor_32x16_c
, aom_highbd_v_predictor_32x16_c
,
1590 aom_highbd_h_predictor_32x16_c
, aom_highbd_paeth_predictor_32x16_c
,
1591 aom_highbd_smooth_predictor_32x16_c
, aom_highbd_smooth_v_predictor_32x16_c
,
1592 aom_highbd_smooth_h_predictor_32x16_c
)
1593 HIGHBD_INTRA_PRED_TEST(
1594 C
, TX_32X64
, aom_highbd_dc_predictor_32x64_c
,
1595 aom_highbd_dc_left_predictor_32x64_c
, aom_highbd_dc_top_predictor_32x64_c
,
1596 aom_highbd_dc_128_predictor_32x64_c
, aom_highbd_v_predictor_32x64_c
,
1597 aom_highbd_h_predictor_32x64_c
, aom_highbd_paeth_predictor_32x64_c
,
1598 aom_highbd_smooth_predictor_32x64_c
, aom_highbd_smooth_v_predictor_32x64_c
,
1599 aom_highbd_smooth_h_predictor_32x64_c
)
1600 HIGHBD_INTRA_PRED_TEST(
1601 C
, TX_32X8
, aom_highbd_dc_predictor_32x8_c
,
1602 aom_highbd_dc_left_predictor_32x8_c
, aom_highbd_dc_top_predictor_32x8_c
,
1603 aom_highbd_dc_128_predictor_32x8_c
, aom_highbd_v_predictor_32x8_c
,
1604 aom_highbd_h_predictor_32x8_c
, aom_highbd_paeth_predictor_32x8_c
,
1605 aom_highbd_smooth_predictor_32x8_c
, aom_highbd_smooth_v_predictor_32x8_c
,
1606 aom_highbd_smooth_h_predictor_32x8_c
)
1609 HIGHBD_INTRA_PRED_TEST(SSE2
, TX_32X32
, aom_highbd_dc_predictor_32x32_sse2
,
1610 aom_highbd_dc_left_predictor_32x32_sse2
,
1611 aom_highbd_dc_top_predictor_32x32_sse2
,
1612 aom_highbd_dc_128_predictor_32x32_sse2
,
1613 aom_highbd_v_predictor_32x32_sse2
,
1614 aom_highbd_h_predictor_32x32_sse2
, nullptr, nullptr,
1616 HIGHBD_INTRA_PRED_TEST(SSE2
, TX_32X16
, aom_highbd_dc_predictor_32x16_sse2
,
1617 aom_highbd_dc_left_predictor_32x16_sse2
,
1618 aom_highbd_dc_top_predictor_32x16_sse2
,
1619 aom_highbd_dc_128_predictor_32x16_sse2
,
1620 aom_highbd_v_predictor_32x16_sse2
,
1621 aom_highbd_h_predictor_32x16_sse2
, nullptr, nullptr,
1626 HIGHBD_INTRA_PRED_TEST(SSSE3
, TX_32X32
, nullptr, nullptr, nullptr, nullptr,
1627 nullptr, nullptr, nullptr, nullptr, nullptr, nullptr)
1631 HIGHBD_INTRA_PRED_TEST(AVX2
, TX_32X32
, nullptr, nullptr, nullptr, nullptr,
1632 nullptr, nullptr, nullptr, nullptr, nullptr, nullptr)
1634 HIGHBD_INTRA_PRED_TEST(AVX2
, TX_32X16
, nullptr, nullptr, nullptr, nullptr,
1635 nullptr, nullptr, nullptr, nullptr, nullptr, nullptr)
1639 HIGHBD_INTRA_PRED_TEST(NEON
, TX_32X32
, aom_highbd_dc_predictor_32x32_neon
,
1640 aom_highbd_dc_left_predictor_32x32_neon
,
1641 aom_highbd_dc_top_predictor_32x32_neon
,
1642 aom_highbd_dc_128_predictor_32x32_neon
,
1643 aom_highbd_v_predictor_32x32_neon
,
1644 aom_highbd_h_predictor_32x32_neon
,
1645 aom_highbd_paeth_predictor_32x32_neon
,
1646 aom_highbd_smooth_predictor_32x32_neon
,
1647 aom_highbd_smooth_v_predictor_32x32_neon
,
1648 aom_highbd_smooth_h_predictor_32x32_neon
)
1649 HIGHBD_INTRA_PRED_TEST(NEON
, TX_32X16
, aom_highbd_dc_predictor_32x16_neon
,
1650 aom_highbd_dc_left_predictor_32x16_neon
,
1651 aom_highbd_dc_top_predictor_32x16_neon
,
1652 aom_highbd_dc_128_predictor_32x16_neon
,
1653 aom_highbd_v_predictor_32x16_neon
,
1654 aom_highbd_h_predictor_32x16_neon
,
1655 aom_highbd_paeth_predictor_32x16_neon
,
1656 aom_highbd_smooth_predictor_32x16_neon
,
1657 aom_highbd_smooth_v_predictor_32x16_neon
,
1658 aom_highbd_smooth_h_predictor_32x16_neon
)
1659 HIGHBD_INTRA_PRED_TEST(NEON
, TX_32X64
, aom_highbd_dc_predictor_32x64_neon
,
1660 aom_highbd_dc_left_predictor_32x64_neon
,
1661 aom_highbd_dc_top_predictor_32x64_neon
,
1662 aom_highbd_dc_128_predictor_32x64_neon
,
1663 aom_highbd_v_predictor_32x64_neon
,
1664 aom_highbd_h_predictor_32x64_neon
,
1665 aom_highbd_paeth_predictor_32x64_neon
,
1666 aom_highbd_smooth_predictor_32x64_neon
,
1667 aom_highbd_smooth_v_predictor_32x64_neon
,
1668 aom_highbd_smooth_h_predictor_32x64_neon
)
1669 HIGHBD_INTRA_PRED_TEST(NEON
, TX_32X8
, aom_highbd_dc_predictor_32x8_neon
,
1670 aom_highbd_dc_left_predictor_32x8_neon
,
1671 aom_highbd_dc_top_predictor_32x8_neon
,
1672 aom_highbd_dc_128_predictor_32x8_neon
,
1673 aom_highbd_v_predictor_32x8_neon
,
1674 aom_highbd_h_predictor_32x8_neon
,
1675 aom_highbd_paeth_predictor_32x8_neon
,
1676 aom_highbd_smooth_predictor_32x8_neon
,
1677 aom_highbd_smooth_v_predictor_32x8_neon
,
1678 aom_highbd_smooth_h_predictor_32x8_neon
)
1681 // -----------------------------------------------------------------------------
1682 // 64x64, 64x32, 64x16
1684 HIGHBD_INTRA_PRED_TEST(
1685 C
, TX_64X64
, aom_highbd_dc_predictor_64x64_c
,
1686 aom_highbd_dc_left_predictor_64x64_c
, aom_highbd_dc_top_predictor_64x64_c
,
1687 aom_highbd_dc_128_predictor_64x64_c
, aom_highbd_v_predictor_64x64_c
,
1688 aom_highbd_h_predictor_64x64_c
, aom_highbd_paeth_predictor_64x64_c
,
1689 aom_highbd_smooth_predictor_64x64_c
, aom_highbd_smooth_v_predictor_64x64_c
,
1690 aom_highbd_smooth_h_predictor_64x64_c
)
1691 HIGHBD_INTRA_PRED_TEST(
1692 C
, TX_64X32
, aom_highbd_dc_predictor_64x32_c
,
1693 aom_highbd_dc_left_predictor_64x32_c
, aom_highbd_dc_top_predictor_64x32_c
,
1694 aom_highbd_dc_128_predictor_64x32_c
, aom_highbd_v_predictor_64x32_c
,
1695 aom_highbd_h_predictor_64x32_c
, aom_highbd_paeth_predictor_64x32_c
,
1696 aom_highbd_smooth_predictor_64x32_c
, aom_highbd_smooth_v_predictor_64x32_c
,
1697 aom_highbd_smooth_h_predictor_64x32_c
)
1698 HIGHBD_INTRA_PRED_TEST(
1699 C
, TX_64X16
, aom_highbd_dc_predictor_64x16_c
,
1700 aom_highbd_dc_left_predictor_64x16_c
, aom_highbd_dc_top_predictor_64x16_c
,
1701 aom_highbd_dc_128_predictor_64x16_c
, aom_highbd_v_predictor_64x16_c
,
1702 aom_highbd_h_predictor_64x16_c
, aom_highbd_paeth_predictor_64x16_c
,
1703 aom_highbd_smooth_predictor_64x16_c
, aom_highbd_smooth_v_predictor_64x16_c
,
1704 aom_highbd_smooth_h_predictor_64x16_c
)
1707 HIGHBD_INTRA_PRED_TEST(NEON
, TX_64X64
, aom_highbd_dc_predictor_64x64_neon
,
1708 aom_highbd_dc_left_predictor_64x64_neon
,
1709 aom_highbd_dc_top_predictor_64x64_neon
,
1710 aom_highbd_dc_128_predictor_64x64_neon
,
1711 aom_highbd_v_predictor_64x64_neon
,
1712 aom_highbd_h_predictor_64x64_neon
,
1713 aom_highbd_paeth_predictor_64x64_neon
,
1714 aom_highbd_smooth_predictor_64x64_neon
,
1715 aom_highbd_smooth_v_predictor_64x64_neon
,
1716 aom_highbd_smooth_h_predictor_64x64_neon
)
1717 HIGHBD_INTRA_PRED_TEST(NEON
, TX_64X32
, aom_highbd_dc_predictor_64x32_neon
,
1718 aom_highbd_dc_left_predictor_64x32_neon
,
1719 aom_highbd_dc_top_predictor_64x32_neon
,
1720 aom_highbd_dc_128_predictor_64x32_neon
,
1721 aom_highbd_v_predictor_64x32_neon
,
1722 aom_highbd_h_predictor_64x32_neon
,
1723 aom_highbd_paeth_predictor_64x32_neon
,
1724 aom_highbd_smooth_predictor_64x32_neon
,
1725 aom_highbd_smooth_v_predictor_64x32_neon
,
1726 aom_highbd_smooth_h_predictor_64x32_neon
)
1727 HIGHBD_INTRA_PRED_TEST(NEON
, TX_64X16
, aom_highbd_dc_predictor_64x16_neon
,
1728 aom_highbd_dc_left_predictor_64x16_neon
,
1729 aom_highbd_dc_top_predictor_64x16_neon
,
1730 aom_highbd_dc_128_predictor_64x16_neon
,
1731 aom_highbd_v_predictor_64x16_neon
,
1732 aom_highbd_h_predictor_64x16_neon
,
1733 aom_highbd_paeth_predictor_64x16_neon
,
1734 aom_highbd_smooth_predictor_64x16_neon
,
1735 aom_highbd_smooth_v_predictor_64x16_neon
,
1736 aom_highbd_smooth_h_predictor_64x16_neon
)
1739 // -----------------------------------------------------------------------------
1740 #endif // CONFIG_AV1_HIGHBITDEPTH
1742 #include "test/test_libaom.cc"