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/clear_system_state.h"
23 #include "test/md5_helper.h"
24 #include "aom/aom_integer.h"
25 #include "aom_ports/mem.h"
26 #include "aom_ports/aom_timer.h"
27 #include "av1/common/common_data.h"
29 // -----------------------------------------------------------------------------
36 // 0: Generate MD5 array as required
37 #define APPLY_UNIT_TESTS 1
39 typedef void (*AvxPredFunc
)(uint8_t *dst
, ptrdiff_t y_stride
,
40 const uint8_t *above
, const uint8_t *left
);
43 const int kTotalPixels
= kBPS
* kBPS
;
44 // 4 DC variants, V, H, PAETH, SMOOTH, SMOOTH_V, SMOOTH_H
45 const int kNumAv1IntraFuncs
= 10;
48 const char *kAv1IntraPredNames
[kNumAv1IntraFuncs
] = {
49 "DC_PRED", "DC_LEFT_PRED", "DC_TOP_PRED", "DC_128_PRED", "V_PRED",
50 "H_PRED", "PAETH_PRED", "SMOOTH_PRED", "SMOOTH_V_PRED", "SMOOTH_H_PRED",
52 #endif // APPLY_UNIT_TESTS
54 template <typename Pixel
>
55 struct IntraPredTestMem
{
56 void Init(int block_width
, int block_height
, int bd
) {
57 ASSERT_LE(block_width
, kBPS
);
58 ASSERT_LE(block_height
, kBPS
);
59 // Note: for blocks having width <= 32 and height <= 32, we generate 32x32
60 // random pixels as before to avoid having to recalculate all hashes again.
61 const int block_size_upto_32
= (block_width
<= 32) && (block_height
<= 32);
62 stride
= block_size_upto_32
? 32 : kBPS
;
63 num_pixels
= stride
* stride
;
64 libaom_test::ACMRandom
rnd(libaom_test::ACMRandom::DeterministicSeed());
65 above
= above_mem
+ 16;
66 const int mask
= (1 << bd
) - 1;
67 for (int i
= 0; i
< num_pixels
; ++i
) ref_src
[i
] = rnd
.Rand16() & mask
;
68 for (int i
= 0; i
< stride
; ++i
) left
[i
] = rnd
.Rand16() & mask
;
69 for (int i
= -1; i
< stride
; ++i
) above
[i
] = rnd
.Rand16() & mask
;
71 for (int i
= stride
; i
< 2 * stride
; ++i
) {
72 left
[i
] = rnd
.Rand16() & mask
;
73 above
[i
] = rnd
.Rand16() & mask
;
77 DECLARE_ALIGNED(16, Pixel
, src
[kTotalPixels
]);
78 DECLARE_ALIGNED(16, Pixel
, ref_src
[kTotalPixels
]);
79 DECLARE_ALIGNED(16, Pixel
, left
[2 * kBPS
]);
85 DECLARE_ALIGNED(16, Pixel
, above_mem
[2 * kBPS
+ 16]);
88 // -----------------------------------------------------------------------------
91 typedef IntraPredTestMem
<uint8_t> Av1IntraPredTestMem
;
93 static const char *const kTxSizeStrings
[TX_SIZES_ALL
] = {
94 "4X4", "8X8", "16X16", "32X32", "64X64", "4X8", "8X4",
95 "8X16", "16X8", "16X32", "32X16", "32X64", "64X32", "4X16",
96 "16X4", "8X32", "32X8", "16X64", "64X16",
99 void CheckMd5Signature(TX_SIZE tx_size
, bool is_hbd
,
100 const char *const signatures
[], const void *data
,
101 size_t data_size
, int elapsed_time
, int idx
) {
102 const std::string hbd_str
= is_hbd
? "Hbd " : "";
103 const std::string name_str
= hbd_str
+ "Intra" + kTxSizeStrings
[tx_size
];
104 libaom_test::MD5 md5
;
105 md5
.Add(reinterpret_cast<const uint8_t *>(data
), data_size
);
107 printf("Mode %s[%13s]: %5d ms MD5: %s\n", name_str
.c_str(),
108 kAv1IntraPredNames
[idx
], elapsed_time
, md5
.Get());
109 EXPECT_STREQ(signatures
[idx
], md5
.Get());
114 printf("\"%s\",\n", md5
.Get());
118 void TestIntraPred(TX_SIZE tx_size
, AvxPredFunc
const *pred_funcs
,
119 const char *const signatures
[]) {
120 const int block_width
= tx_size_wide
[tx_size
];
121 const int block_height
= tx_size_high
[tx_size
];
122 const int num_pixels_per_test
=
123 block_width
* block_height
* kNumAv1IntraFuncs
;
124 const int kNumTests
= static_cast<int>(2.e10
/ num_pixels_per_test
);
125 Av1IntraPredTestMem intra_pred_test_mem
;
126 intra_pred_test_mem
.Init(block_width
, block_height
, 8);
128 for (int k
= 0; k
< kNumAv1IntraFuncs
; ++k
) {
129 if (pred_funcs
[k
] == NULL
) continue;
130 memcpy(intra_pred_test_mem
.src
, intra_pred_test_mem
.ref_src
,
131 sizeof(intra_pred_test_mem
.src
));
132 aom_usec_timer timer
;
133 aom_usec_timer_start(&timer
);
134 for (int num_tests
= 0; num_tests
< kNumTests
; ++num_tests
) {
135 pred_funcs
[k
](intra_pred_test_mem
.src
, intra_pred_test_mem
.stride
,
136 intra_pred_test_mem
.above
, intra_pred_test_mem
.left
);
138 libaom_test::ClearSystemState();
139 aom_usec_timer_mark(&timer
);
140 const int elapsed_time
=
141 static_cast<int>(aom_usec_timer_elapsed(&timer
) / 1000);
143 tx_size
, false, signatures
, intra_pred_test_mem
.src
,
144 intra_pred_test_mem
.num_pixels
* sizeof(*intra_pred_test_mem
.src
),
149 static const char *const kSignatures
[TX_SIZES_ALL
][kNumAv1IntraFuncs
] = {
152 "e7ed7353c3383fff942e500e9bfe82fe",
153 "2a4a26fcc6ce005eadc08354d196c8a9",
154 "269d92eff86f315d9c38fe7640d85b15",
155 "ae2960eea9f71ee3dabe08b282ec1773",
156 "6c1abcc44e90148998b51acd11144e9c",
157 "f7bb3186e1ef8a2b326037ff898cad8e",
158 "59fc0e923a08cfac0a493fb38988e2bb",
159 "9ff8bb37d9c830e6ab8ecb0c435d3c91",
160 "de6937fca02354f2874dbc5dbec5d5b3",
161 "723cf948137f7d8c7860d814e55ae67d",
165 "d8bbae5d6547cfc17e4f5f44c8730e88",
166 "373bab6d931868d41a601d9d88ce9ac3",
167 "6fdd5ff4ff79656c14747598ca9e3706",
168 "d9661c2811d6a73674f40ffb2b841847",
169 "7c722d10b19ccff0b8c171868e747385",
170 "f81dd986eb2b50f750d3a7da716b7e27",
171 "064404361748dd111a890a1470d7f0ea",
172 "dc29b7e1f78cc8e7525d5ea4c0ab9b78",
173 "97111eb1bc26bade6272015df829f1ae",
174 "d19a8a73cc46b807f2c5e817576cc1e1",
178 "50971c07ce26977d30298538fffec619",
179 "527a6b9e0dc5b21b98cf276305432bef",
180 "7eff2868f80ebc2c43a4f367281d80f7",
181 "67cd60512b54964ef6aff1bd4816d922",
182 "48371c87dc95c08a33b2048f89cf6468",
183 "b0acf2872ee411d7530af6d2625a7084",
184 "93d6b5352b571805ab16a55e1bbed86a",
185 "03764e4c0aebbc180e4e2c68fb06df2b",
186 "bb6c74c9076c9f266ab11fb57060d8e6",
187 "0c5162bc28489756ddb847b5678e6f07",
191 "a0a618c900e65ae521ccc8af789729f2",
192 "985aaa7c72b4a6c2fb431d32100cf13a",
193 "10662d09febc3ca13ee4e700120daeb5",
194 "b3b01379ba08916ef6b1b35f7d9ad51c",
195 "9f4261755795af97e34679c333ec7004",
196 "bc2c9da91ad97ef0d1610fb0a9041657",
197 "ef1653982b69e1f64bee3759f3e1ec45",
198 "1a51a675deba2c83282142eb48d3dc3d",
199 "866c224746dc260cda861a7b1b383fb3",
200 "cea23799fc3526e1b6a6ff02b42b82af",
204 "6e1094fa7b50bc813aa2ba29f5df8755",
205 "afe020786b83b793c2bbd9468097ff6e",
206 "be91585259bc37bf4dc1651936e90b3e",
207 "a1650dbcd56e10288c3e269eca37967d",
208 "9e5c34f3797e0cdd3cd9d4c05b0d8950",
209 "bc87be7ac899cc6a28f399d7516c49fe",
210 "9811fd0d2dd515f06122f5d1bd18b784",
211 "3c140e466f2c2c0d9cb7d2157ab8dc27",
212 "9543de76c925a8f6adc884cc7f98dc91",
213 "df1df0376cc944afe7e74e94f53e575a",
217 "d9fbebdc85f71ab1e18461b2db4a2adc",
218 "5ccb2a68284bc9714d94b8a06ccadbb2",
219 "735d059abc2744f3ff3f9590f7191b37",
220 "d9fbebdc85f71ab1e18461b2db4a2adc",
221 "6819497c44cd0ace120add83672996ee",
222 "7e3244f5a2d3edf81c7e962a842b97f9",
223 "809350f164cd4d1650850bb0f59c3260",
224 "1b60a394331eeab6927a6f8aaff57040",
225 "5307de1bd7329ba6b281d2c1b0b457f9",
226 "24c58a8138339846d95568efb91751db",
230 "23f9fc11344426c9bee2e06d57dfd628",
231 "2d71a26d1bae1fb34734de7b42fc5eb7",
232 "5af9c1b2fd9d5721fad67b67b3f7c816",
233 "00d71b17be662753813d515f197d145e",
234 "bef10ec984427e28f4390f43809d10af",
235 "77773cdfb7ed6bc882ab202a64b0a470",
236 "2cc48bd66d6b0121b5221d52ccd732af",
237 "b302155e1c9eeeafe2ba2bf68e807a46",
238 "561bc8d0e76d5041ebd5168fc6a115e1",
239 "81d0113fb1d0a9a24ffd6f1987b77948",
243 "c849de88b24f773dfcdd1d48d1209796",
244 "6cb807c1897b94866a0f3d3c56ed8695",
245 "d56db05a8ac7981762f5b877f486c4ef",
246 "b4bc01eb6e59a40922ad17715cafb04b",
247 "09d178439534f4062ae687c351f66d64",
248 "644501399cf73080ac606e5cef7ca09b",
249 "278076495180e17c065a95ab7278539a",
250 "9dd7f324816f242be408ffeb0c673732",
251 "f520c4a20acfa0bea1d253c6f0f040fd",
252 "85f38df809df2c2d7c8b4a157a65cd44",
256 "b4cbdbdf10ce13300b4063a3daf99e04",
257 "3731e1e6202064a9d0604d7c293ecee4",
258 "6c856188c4256a06452f0d5d70cac436",
259 "1f2192b4c8c497589484ea7bf9c944e8",
260 "84011bd4b7f565119d06787840e333a0",
261 "0e48949f7a6aa36f0d76b5d01f91124a",
262 "60eff8064634b6c73b10681356baeee9",
263 "1559aeb081a9c0c71111d6093c2ff9fd",
264 "c15479b739713773e5cabb748451987b",
265 "72e33ec12c9b67aea26d8d005fb82de2",
269 "abe5233d189cdbf79424721571bbaa7b",
270 "282759f81e3cfb2e2d396fe406b72a8b",
271 "e2224926c264f6f174cbc3167a233168",
272 "6814e85c2b33f8c9415d62e80394b47b",
273 "99cbbb60459c08a3061d72c4e4f6276a",
274 "1d1567d40b8e816f8c1f71e576fe0f87",
275 "36fdd371b624a075814d497c4832ec85",
276 "8ab8da61b727442b6ff692b40d0df018",
277 "e35a10ad7fdf2327e821504a90f6a6eb",
278 "1f7211e727dc1de7d6a55d082fbdd821",
282 "d1aeb8d5fdcfd3307922af01a798a4dc",
283 "b0bcb514ebfbee065faea9d34c12ae75",
284 "d6a18c63b4e909871c0137ca652fad23",
285 "fd047f2fc1b8ffb95d0eeef3e8796a45",
286 "645ab60779ea348fd93c81561c31bab9",
287 "4409633c9db8dff41ade4292a3a56e7f",
288 "5e36a11e069b31c2a739f3a9c7b37c24",
289 "e83b9483d702cfae496991c3c7fa92c0",
290 "12f6ddf98c7f30a277307f1ea935b030",
291 "354321d6c32bbdb0739e4fa2acbf41e1",
295 "0ce332b343934b34cd4417725faa85cb",
296 "4e2a2cfd8f56f15939bdfc753145b303",
297 "0f46d124ba9f48cdd5d5290acf786d6d",
298 "e1e8ed803236367821981500a3d9eebe",
299 "1d2f8e48e3adb7c448be05d9f66f4954",
300 "9fb2e176636a5689b26f73ca73fcc512",
301 "e720ebccae7e25e36f23da53ae5b5d6a",
302 "86fe4364734169aaa4520d799890d530",
303 "b1870290764bb1b100d1974e2bd70f1d",
304 "ce5b238e19d85ef69d85badfab4e63ae",
308 "a6c5aeb722615089efbca80b02951ceb",
309 "538424b24bd0830f21788e7238ca762f",
310 "80c15b303235f9bc2259027bb92dfdc4",
311 "e48e1ac15e97191a8fda08d62fff343e",
312 "12604b37875533665078405ef4582e35",
313 "0048afa17bd3e1632d68b96048836530",
314 "07a0cfcb56a5eed50c4bd6c26814336b",
315 "529d8a070de5bc6531fa3ee8f450c233",
316 "33c50a11c7d78f72434064f634305e95",
317 "e0ef7f0559c1a50ec5a8c12011b962f7",
321 "750491056568eb8fe15387b86bdf06b8",
322 "3a52dae9f599f08cfb3bd1b910dc0e11",
323 "af79f71e3e03dbeca44e2e13561f70c7",
324 "ca7dfd7624afc0c06fb5552f44398535",
325 "b591af115444bf43140c29c269f68fb2",
326 "483d942ae36e69e62f31eb215331416f",
327 "f14b58525e81870bc5d95c7ac71a347f",
328 "371208bb4027d9badb04095d1590bbc4",
329 "c7049c21b2924d70c7c12784d6b6b796",
330 "7d87233f4b5b0f12086045e5d7b2d4c2",
334 "7c6e325a65e77e732b3adbe237e045e4",
335 "24478f93ffcec47852e004d0fe948464",
336 "258d042c67d4ba3ecfa667f0adc9aebf",
337 "b2cd21d06959f159a1f3c4d9768ee7fb",
338 "b4e1f38157bf8410e7c3da02f687a343",
339 "869e703729eb0fc0711c254944ff5d5a",
340 "9638dd77105a640b146a8201ea7a0801",
341 "919d932c6af8a1cc7486e8ce996dd487",
342 "e1c9be493b6714c7ae48f30044c43140",
343 "bf0fe3889d654b2f6eb98c8fc751f9e4",
347 "8dfac4319fe0bd40013ffb3102da8c72",
348 "feb46b6dc4e2ca0a09533bfc51d4dcb0",
349 "850837ec714c37262216527aaf4cbbe9",
350 "4603c7800fb08361f163daca876e8bda",
351 "1ff95e7d2debc27b05806fb25abfd624",
352 "d81b9a51a062b23ca7823804cb7bec22",
353 "f1d8978158766f46335203608cb807e7",
354 "f3527096256258c0878d644a9d7d53ca",
355 "cbde98ac8b009953eb112807ad2ea29e",
356 "654fb1153415747feae599f538122af5",
360 "3d4ee16fab374357474f60b845327bc7",
361 "bc17c5059473a476df4e85f56395ad55",
362 "3d4ee16fab374357474f60b845327bc7",
363 "c14b8db34dc2355b84e3735c9ba16c7f",
364 "a71d25b5d47a92a8b9223c98f18458ee",
365 "6c1cfe2b1893f4576a80675687cb6426",
366 "92d11bbef8b85bb48d799bb055de3514",
367 "bcf81d1db8ae5cc03360467f44f498ec",
368 "79f8c564163555592e808e145eaf5c60",
369 "46fff139cef2ef773938bcc8b0e5abb8",
373 "3b2a053ee8b05a8ac35ad23b0422a151",
374 "12b0c69595328c465e0b25e0c9e3e9fc",
375 "f77c544ac8035e01920deae40cee7b07",
376 "727797ef15ccd8d325476fe8f12006a3",
377 "f3be77c0fe67eb5d9d515e92bec21eb7",
378 "f1ece6409e01e9dd98b800d49628247d",
379 "efd2ec9bfbbd4fd1f6604ea369df1894",
380 "ec703de918422b9e03197ba0ed60a199",
381 "739418efb89c07f700895deaa5d0b3e3",
382 "9943ae1bbeeebfe1d3a92dc39e049d63",
386 "821b76b1494d4f84d20817840f719a1a",
387 "69e462c3338a9aaf993c3f7cfbc15649",
388 "516d8f6eb054d74d150e7b444185b6b9",
389 "de1b736e9d99129609d6ef3a491507a0",
390 "fd9b4276e7affe1e0e4ce4f428058994",
391 "cd82fd361a4767ac29a9f406b480b8f3",
392 "2792c2f810157a4a6cb13c28529ff779",
393 "1220442d90c4255ba0969d28b91e93a6",
394 "c7253e10b45f7f67dfee3256c9b94825",
395 "879792198071c7e0b50b9b5010d8c18f",
401 // Defines a test case for |arch| (e.g., C, SSE2, ...) passing the predictors
402 // to TestIntraPred. The test name is 'arch.TestIntraPred_tx_size', e.g.,
404 #define INTRA_PRED_TEST(arch, tx_size, dc, dc_left, dc_top, dc_128, v, h, \
405 paeth, smooth, smooth_v, smooth_h) \
406 TEST(arch, DISABLED_##TestIntraPred_##tx_size) { \
407 static const AvxPredFunc aom_intra_pred[] = { \
408 dc, dc_left, dc_top, dc_128, v, h, paeth, smooth, smooth_v, smooth_h \
410 TestIntraPred(tx_size, aom_intra_pred, kSignatures[tx_size]); \
413 // -----------------------------------------------------------------------------
416 INTRA_PRED_TEST(C_1
, TX_4X4
, aom_dc_predictor_4x4_c
,
417 aom_dc_left_predictor_4x4_c
, aom_dc_top_predictor_4x4_c
,
418 aom_dc_128_predictor_4x4_c
, aom_v_predictor_4x4_c
,
419 aom_h_predictor_4x4_c
, aom_paeth_predictor_4x4_c
,
420 aom_smooth_predictor_4x4_c
, aom_smooth_v_predictor_4x4_c
,
421 aom_smooth_h_predictor_4x4_c
)
423 INTRA_PRED_TEST(C_2
, TX_4X8
, aom_dc_predictor_4x8_c
,
424 aom_dc_left_predictor_4x8_c
, aom_dc_top_predictor_4x8_c
,
425 aom_dc_128_predictor_4x8_c
, aom_v_predictor_4x8_c
,
426 aom_h_predictor_4x8_c
, aom_paeth_predictor_4x8_c
,
427 aom_smooth_predictor_4x8_c
, aom_smooth_v_predictor_4x8_c
,
428 aom_smooth_h_predictor_4x8_c
)
430 INTRA_PRED_TEST(C_3
, TX_4X16
, aom_dc_predictor_4x16_c
,
431 aom_dc_left_predictor_4x16_c
, aom_dc_top_predictor_4x16_c
,
432 aom_dc_128_predictor_4x16_c
, aom_v_predictor_4x16_c
,
433 aom_h_predictor_4x16_c
, aom_paeth_predictor_4x16_c
,
434 aom_smooth_predictor_4x16_c
, aom_smooth_v_predictor_4x16_c
,
435 aom_smooth_h_predictor_4x16_c
)
438 INTRA_PRED_TEST(SSE2_1
, TX_4X4
, aom_dc_predictor_4x4_sse2
,
439 aom_dc_left_predictor_4x4_sse2
, aom_dc_top_predictor_4x4_sse2
,
440 aom_dc_128_predictor_4x4_sse2
, aom_v_predictor_4x4_sse2
,
441 aom_h_predictor_4x4_sse2
, NULL
, NULL
, NULL
, NULL
)
442 INTRA_PRED_TEST(SSE2_2
, TX_4X8
, aom_dc_predictor_4x8_sse2
,
443 aom_dc_left_predictor_4x8_sse2
, aom_dc_top_predictor_4x8_sse2
,
444 aom_dc_128_predictor_4x8_sse2
, aom_v_predictor_4x8_sse2
,
445 aom_h_predictor_4x8_sse2
, NULL
, NULL
, NULL
, NULL
)
446 INTRA_PRED_TEST(SSE2_3
, TX_4X16
, aom_dc_predictor_4x16_sse2
,
447 aom_dc_left_predictor_4x16_sse2
, aom_dc_top_predictor_4x16_sse2
,
448 aom_dc_128_predictor_4x16_sse2
, aom_v_predictor_4x16_sse2
,
449 aom_h_predictor_4x16_sse2
, NULL
, NULL
, NULL
, NULL
)
453 INTRA_PRED_TEST(SSSE3_1
, TX_4X4
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
454 aom_paeth_predictor_4x4_ssse3
, aom_smooth_predictor_4x4_ssse3
,
455 aom_smooth_v_predictor_4x4_ssse3
,
456 aom_smooth_h_predictor_4x4_ssse3
)
457 INTRA_PRED_TEST(SSSE3_2
, TX_4X8
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
458 aom_paeth_predictor_4x8_ssse3
, aom_smooth_predictor_4x8_ssse3
,
459 aom_smooth_v_predictor_4x8_ssse3
,
460 aom_smooth_h_predictor_4x8_ssse3
)
461 INTRA_PRED_TEST(SSSE3_3
, TX_4X16
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
462 aom_paeth_predictor_4x16_ssse3
, aom_smooth_predictor_4x16_ssse3
,
463 aom_smooth_v_predictor_4x16_ssse3
,
464 aom_smooth_h_predictor_4x16_ssse3
)
468 INTRA_PRED_TEST(DSPR2
, TX_4X4
, aom_dc_predictor_4x4_dspr2
, NULL
, NULL
, NULL
,
469 NULL
, aom_h_predictor_4x4_dspr2
, NULL
, NULL
, NULL
, NULL
)
473 INTRA_PRED_TEST(NEON
, TX_4X4
, aom_dc_predictor_4x4_neon
,
474 aom_dc_left_predictor_4x4_neon
, aom_dc_top_predictor_4x4_neon
,
475 aom_dc_128_predictor_4x4_neon
, aom_v_predictor_4x4_neon
,
476 aom_h_predictor_4x4_neon
, NULL
, NULL
, NULL
, NULL
)
480 INTRA_PRED_TEST(MSA
, TX_4X4
, aom_dc_predictor_4x4_msa
,
481 aom_dc_left_predictor_4x4_msa
, aom_dc_top_predictor_4x4_msa
,
482 aom_dc_128_predictor_4x4_msa
, aom_v_predictor_4x4_msa
,
483 aom_h_predictor_4x4_msa
, NULL
, NULL
, NULL
, NULL
)
486 // -----------------------------------------------------------------------------
487 // 8x8, 8x4, 8x16, 8x32
489 INTRA_PRED_TEST(C_1
, TX_8X8
, aom_dc_predictor_8x8_c
,
490 aom_dc_left_predictor_8x8_c
, aom_dc_top_predictor_8x8_c
,
491 aom_dc_128_predictor_8x8_c
, aom_v_predictor_8x8_c
,
492 aom_h_predictor_8x8_c
, aom_paeth_predictor_8x8_c
,
493 aom_smooth_predictor_8x8_c
, aom_smooth_v_predictor_8x8_c
,
494 aom_smooth_h_predictor_8x8_c
)
496 INTRA_PRED_TEST(C_2
, TX_8X4
, aom_dc_predictor_8x4_c
,
497 aom_dc_left_predictor_8x4_c
, aom_dc_top_predictor_8x4_c
,
498 aom_dc_128_predictor_8x4_c
, aom_v_predictor_8x4_c
,
499 aom_h_predictor_8x4_c
, aom_paeth_predictor_8x4_c
,
500 aom_smooth_predictor_8x4_c
, aom_smooth_v_predictor_8x4_c
,
501 aom_smooth_h_predictor_8x4_c
)
503 INTRA_PRED_TEST(C_3
, TX_8X16
, aom_dc_predictor_8x16_c
,
504 aom_dc_left_predictor_8x16_c
, aom_dc_top_predictor_8x16_c
,
505 aom_dc_128_predictor_8x16_c
, aom_v_predictor_8x16_c
,
506 aom_h_predictor_8x16_c
, aom_paeth_predictor_8x16_c
,
507 aom_smooth_predictor_8x16_c
, aom_smooth_v_predictor_8x16_c
,
508 aom_smooth_h_predictor_8x16_c
)
510 INTRA_PRED_TEST(C_4
, TX_8X32
, aom_dc_predictor_8x32_c
,
511 aom_dc_left_predictor_8x32_c
, aom_dc_top_predictor_8x32_c
,
512 aom_dc_128_predictor_8x32_c
, aom_v_predictor_8x32_c
,
513 aom_h_predictor_8x32_c
, aom_paeth_predictor_8x32_c
,
514 aom_smooth_predictor_8x32_c
, aom_smooth_v_predictor_8x32_c
,
515 aom_smooth_h_predictor_8x32_c
)
518 INTRA_PRED_TEST(SSE2_1
, TX_8X8
, aom_dc_predictor_8x8_sse2
,
519 aom_dc_left_predictor_8x8_sse2
, aom_dc_top_predictor_8x8_sse2
,
520 aom_dc_128_predictor_8x8_sse2
, aom_v_predictor_8x8_sse2
,
521 aom_h_predictor_8x8_sse2
, NULL
, NULL
, NULL
, NULL
)
522 INTRA_PRED_TEST(SSE2_2
, TX_8X4
, aom_dc_predictor_8x4_sse2
,
523 aom_dc_left_predictor_8x4_sse2
, aom_dc_top_predictor_8x4_sse2
,
524 aom_dc_128_predictor_8x4_sse2
, aom_v_predictor_8x4_sse2
,
525 aom_h_predictor_8x4_sse2
, NULL
, NULL
, NULL
, NULL
)
526 INTRA_PRED_TEST(SSE2_3
, TX_8X16
, aom_dc_predictor_8x16_sse2
,
527 aom_dc_left_predictor_8x16_sse2
, aom_dc_top_predictor_8x16_sse2
,
528 aom_dc_128_predictor_8x16_sse2
, aom_v_predictor_8x16_sse2
,
529 aom_h_predictor_8x16_sse2
, NULL
, NULL
, NULL
, NULL
)
530 INTRA_PRED_TEST(SSE2_4
, TX_8X32
, aom_dc_predictor_8x32_sse2
,
531 aom_dc_left_predictor_8x32_sse2
, aom_dc_top_predictor_8x32_sse2
,
532 aom_dc_128_predictor_8x32_sse2
, aom_v_predictor_8x32_sse2
,
533 aom_h_predictor_8x32_sse2
, NULL
, NULL
, NULL
, NULL
)
537 INTRA_PRED_TEST(SSSE3_1
, TX_8X8
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
538 aom_paeth_predictor_8x8_ssse3
, aom_smooth_predictor_8x8_ssse3
,
539 aom_smooth_v_predictor_8x8_ssse3
,
540 aom_smooth_h_predictor_8x8_ssse3
)
541 INTRA_PRED_TEST(SSSE3_2
, TX_8X4
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
542 aom_paeth_predictor_8x4_ssse3
, aom_smooth_predictor_8x4_ssse3
,
543 aom_smooth_v_predictor_8x4_ssse3
,
544 aom_smooth_h_predictor_8x4_ssse3
)
545 INTRA_PRED_TEST(SSSE3_3
, TX_8X16
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
546 aom_paeth_predictor_8x16_ssse3
, aom_smooth_predictor_8x16_ssse3
,
547 aom_smooth_v_predictor_8x16_ssse3
,
548 aom_smooth_h_predictor_8x16_ssse3
)
549 INTRA_PRED_TEST(SSSE3_4
, TX_8X32
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
550 aom_paeth_predictor_8x32_ssse3
, aom_smooth_predictor_8x32_ssse3
,
551 aom_smooth_v_predictor_8x32_ssse3
,
552 aom_smooth_h_predictor_8x32_ssse3
)
556 INTRA_PRED_TEST(DSPR2
, TX_8X8
, aom_dc_predictor_8x8_dspr2
, NULL
, NULL
, NULL
,
557 NULL
, aom_h_predictor_8x8_dspr2
, NULL
, NULL
, NULL
, NULL
)
561 INTRA_PRED_TEST(NEON
, TX_8X8
, aom_dc_predictor_8x8_neon
,
562 aom_dc_left_predictor_8x8_neon
, aom_dc_top_predictor_8x8_neon
,
563 aom_dc_128_predictor_8x8_neon
, aom_v_predictor_8x8_neon
,
564 aom_h_predictor_8x8_neon
, NULL
, NULL
, NULL
, NULL
)
568 INTRA_PRED_TEST(MSA
, TX_8X8
, aom_dc_predictor_8x8_msa
,
569 aom_dc_left_predictor_8x8_msa
, aom_dc_top_predictor_8x8_msa
,
570 aom_dc_128_predictor_8x8_msa
, aom_v_predictor_8x8_msa
,
571 aom_h_predictor_8x8_msa
, NULL
, NULL
, NULL
, NULL
)
574 // -----------------------------------------------------------------------------
575 // 16x16, 16x8, 16x32, 16x4, 16x64
577 INTRA_PRED_TEST(C_1
, TX_16X16
, aom_dc_predictor_16x16_c
,
578 aom_dc_left_predictor_16x16_c
, aom_dc_top_predictor_16x16_c
,
579 aom_dc_128_predictor_16x16_c
, aom_v_predictor_16x16_c
,
580 aom_h_predictor_16x16_c
, aom_paeth_predictor_16x16_c
,
581 aom_smooth_predictor_16x16_c
, aom_smooth_v_predictor_16x16_c
,
582 aom_smooth_h_predictor_16x16_c
)
584 INTRA_PRED_TEST(C_2
, TX_16X8
, aom_dc_predictor_16x8_c
,
585 aom_dc_left_predictor_16x8_c
, aom_dc_top_predictor_16x8_c
,
586 aom_dc_128_predictor_16x8_c
, aom_v_predictor_16x8_c
,
587 aom_h_predictor_16x8_c
, aom_paeth_predictor_16x8_c
,
588 aom_smooth_predictor_16x8_c
, aom_smooth_v_predictor_16x8_c
,
589 aom_smooth_h_predictor_16x8_c
)
591 INTRA_PRED_TEST(C_3
, TX_16X32
, aom_dc_predictor_16x32_c
,
592 aom_dc_left_predictor_16x32_c
, aom_dc_top_predictor_16x32_c
,
593 aom_dc_128_predictor_16x32_c
, aom_v_predictor_16x32_c
,
594 aom_h_predictor_16x32_c
, aom_paeth_predictor_16x32_c
,
595 aom_smooth_predictor_16x32_c
, aom_smooth_v_predictor_16x32_c
,
596 aom_smooth_h_predictor_16x32_c
)
598 INTRA_PRED_TEST(C_4
, TX_16X4
, aom_dc_predictor_16x4_c
,
599 aom_dc_left_predictor_16x4_c
, aom_dc_top_predictor_16x4_c
,
600 aom_dc_128_predictor_16x4_c
, aom_v_predictor_16x4_c
,
601 aom_h_predictor_16x4_c
, aom_paeth_predictor_16x4_c
,
602 aom_smooth_predictor_16x4_c
, aom_smooth_v_predictor_16x4_c
,
603 aom_smooth_h_predictor_16x4_c
)
605 INTRA_PRED_TEST(C_5
, TX_16X64
, aom_dc_predictor_16x64_c
,
606 aom_dc_left_predictor_16x64_c
, aom_dc_top_predictor_16x64_c
,
607 aom_dc_128_predictor_16x64_c
, aom_v_predictor_16x64_c
,
608 aom_h_predictor_16x64_c
, aom_paeth_predictor_16x64_c
,
609 aom_smooth_predictor_16x64_c
, aom_smooth_v_predictor_16x64_c
,
610 aom_smooth_h_predictor_16x64_c
)
613 INTRA_PRED_TEST(SSE2_1
, TX_16X16
, aom_dc_predictor_16x16_sse2
,
614 aom_dc_left_predictor_16x16_sse2
,
615 aom_dc_top_predictor_16x16_sse2
,
616 aom_dc_128_predictor_16x16_sse2
, aom_v_predictor_16x16_sse2
,
617 aom_h_predictor_16x16_sse2
, NULL
, NULL
, NULL
, NULL
)
618 INTRA_PRED_TEST(SSE2_2
, TX_16X8
, aom_dc_predictor_16x8_sse2
,
619 aom_dc_left_predictor_16x8_sse2
, aom_dc_top_predictor_16x8_sse2
,
620 aom_dc_128_predictor_16x8_sse2
, aom_v_predictor_16x8_sse2
,
621 aom_h_predictor_16x8_sse2
, NULL
, NULL
, NULL
, NULL
)
622 INTRA_PRED_TEST(SSE2_3
, TX_16X32
, aom_dc_predictor_16x32_sse2
,
623 aom_dc_left_predictor_16x32_sse2
,
624 aom_dc_top_predictor_16x32_sse2
,
625 aom_dc_128_predictor_16x32_sse2
, aom_v_predictor_16x32_sse2
,
626 aom_h_predictor_16x32_sse2
, NULL
, NULL
, NULL
, NULL
)
627 INTRA_PRED_TEST(SSE2_4
, TX_16X64
, aom_dc_predictor_16x64_sse2
,
628 aom_dc_left_predictor_16x64_sse2
,
629 aom_dc_top_predictor_16x64_sse2
,
630 aom_dc_128_predictor_16x64_sse2
, aom_v_predictor_16x64_sse2
,
631 aom_h_predictor_16x64_sse2
, NULL
, NULL
, NULL
, NULL
)
632 INTRA_PRED_TEST(SSE2_5
, TX_16X4
, aom_dc_predictor_16x4_sse2
,
633 aom_dc_left_predictor_16x4_sse2
, aom_dc_top_predictor_16x4_sse2
,
634 aom_dc_128_predictor_16x4_sse2
, aom_v_predictor_16x4_sse2
,
635 aom_h_predictor_16x4_sse2
, NULL
, NULL
, NULL
, NULL
)
639 INTRA_PRED_TEST(SSSE3_1
, TX_16X16
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
640 aom_paeth_predictor_16x16_ssse3
,
641 aom_smooth_predictor_16x16_ssse3
,
642 aom_smooth_v_predictor_16x16_ssse3
,
643 aom_smooth_h_predictor_16x16_ssse3
)
644 INTRA_PRED_TEST(SSSE3_2
, TX_16X8
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
645 aom_paeth_predictor_16x8_ssse3
, aom_smooth_predictor_16x8_ssse3
,
646 aom_smooth_v_predictor_16x8_ssse3
,
647 aom_smooth_h_predictor_16x8_ssse3
)
648 INTRA_PRED_TEST(SSSE3_3
, TX_16X32
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
649 aom_paeth_predictor_16x32_ssse3
,
650 aom_smooth_predictor_16x32_ssse3
,
651 aom_smooth_v_predictor_16x32_ssse3
,
652 aom_smooth_h_predictor_16x32_ssse3
)
653 INTRA_PRED_TEST(SSSE3_4
, TX_16X64
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
654 aom_paeth_predictor_16x64_ssse3
,
655 aom_smooth_predictor_16x64_ssse3
,
656 aom_smooth_v_predictor_16x64_ssse3
,
657 aom_smooth_h_predictor_16x64_ssse3
)
658 INTRA_PRED_TEST(SSSE3_5
, TX_16X4
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
659 aom_paeth_predictor_16x4_ssse3
, aom_smooth_predictor_16x4_ssse3
,
660 aom_smooth_v_predictor_16x4_ssse3
,
661 aom_smooth_h_predictor_16x4_ssse3
)
665 INTRA_PRED_TEST(AVX2_1
, TX_16X16
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
666 aom_paeth_predictor_16x16_avx2
, NULL
, NULL
, NULL
)
667 INTRA_PRED_TEST(AVX2_2
, TX_16X8
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
668 aom_paeth_predictor_16x8_avx2
, NULL
, NULL
, NULL
)
669 INTRA_PRED_TEST(AVX2_3
, TX_16X32
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
670 aom_paeth_predictor_16x32_avx2
, NULL
, NULL
, NULL
)
671 INTRA_PRED_TEST(AVX2_4
, TX_16X64
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
672 aom_paeth_predictor_16x64_avx2
, NULL
, NULL
, NULL
)
676 INTRA_PRED_TEST(DSPR2
, TX_16X16
, aom_dc_predictor_16x16_dspr2
, NULL
, NULL
, NULL
,
677 NULL
, aom_h_predictor_16x16_dspr2
, NULL
, NULL
, NULL
, NULL
)
681 INTRA_PRED_TEST(NEON
, TX_16X16
, aom_dc_predictor_16x16_neon
,
682 aom_dc_left_predictor_16x16_neon
,
683 aom_dc_top_predictor_16x16_neon
,
684 aom_dc_128_predictor_16x16_neon
, aom_v_predictor_16x16_neon
,
685 aom_h_predictor_16x16_neon
, NULL
, NULL
, NULL
, NULL
)
689 INTRA_PRED_TEST(MSA
, TX_16X16
, aom_dc_predictor_16x16_msa
,
690 aom_dc_left_predictor_16x16_msa
, aom_dc_top_predictor_16x16_msa
,
691 aom_dc_128_predictor_16x16_msa
, aom_v_predictor_16x16_msa
,
692 aom_h_predictor_16x16_msa
, NULL
, NULL
, NULL
, NULL
)
695 // -----------------------------------------------------------------------------
696 // 32x32, 32x16, 32x64, 32x8
698 INTRA_PRED_TEST(C_1
, TX_32X32
, aom_dc_predictor_32x32_c
,
699 aom_dc_left_predictor_32x32_c
, aom_dc_top_predictor_32x32_c
,
700 aom_dc_128_predictor_32x32_c
, aom_v_predictor_32x32_c
,
701 aom_h_predictor_32x32_c
, aom_paeth_predictor_32x32_c
,
702 aom_smooth_predictor_32x32_c
, aom_smooth_v_predictor_32x32_c
,
703 aom_smooth_h_predictor_32x32_c
)
705 INTRA_PRED_TEST(C_2
, TX_32X16
, aom_dc_predictor_32x16_c
,
706 aom_dc_left_predictor_32x16_c
, aom_dc_top_predictor_32x16_c
,
707 aom_dc_128_predictor_32x16_c
, aom_v_predictor_32x16_c
,
708 aom_h_predictor_32x16_c
, aom_paeth_predictor_32x16_c
,
709 aom_smooth_predictor_32x16_c
, aom_smooth_v_predictor_32x16_c
,
710 aom_smooth_h_predictor_32x16_c
)
712 INTRA_PRED_TEST(C_3
, TX_32X64
, aom_dc_predictor_32x64_c
,
713 aom_dc_left_predictor_32x64_c
, aom_dc_top_predictor_32x64_c
,
714 aom_dc_128_predictor_32x64_c
, aom_v_predictor_32x64_c
,
715 aom_h_predictor_32x64_c
, aom_paeth_predictor_32x64_c
,
716 aom_smooth_predictor_32x64_c
, aom_smooth_v_predictor_32x64_c
,
717 aom_smooth_h_predictor_32x64_c
)
719 INTRA_PRED_TEST(C_4
, TX_32X8
, aom_dc_predictor_32x8_c
,
720 aom_dc_left_predictor_32x8_c
, aom_dc_top_predictor_32x8_c
,
721 aom_dc_128_predictor_32x8_c
, aom_v_predictor_32x8_c
,
722 aom_h_predictor_32x8_c
, aom_paeth_predictor_32x8_c
,
723 aom_smooth_predictor_32x8_c
, aom_smooth_v_predictor_32x8_c
,
724 aom_smooth_h_predictor_32x8_c
)
727 INTRA_PRED_TEST(SSE2_1
, TX_32X32
, aom_dc_predictor_32x32_sse2
,
728 aom_dc_left_predictor_32x32_sse2
,
729 aom_dc_top_predictor_32x32_sse2
,
730 aom_dc_128_predictor_32x32_sse2
, aom_v_predictor_32x32_sse2
,
731 aom_h_predictor_32x32_sse2
, NULL
, NULL
, NULL
, NULL
)
732 INTRA_PRED_TEST(SSE2_2
, TX_32X16
, aom_dc_predictor_32x16_sse2
,
733 aom_dc_left_predictor_32x16_sse2
,
734 aom_dc_top_predictor_32x16_sse2
,
735 aom_dc_128_predictor_32x16_sse2
, aom_v_predictor_32x16_sse2
,
736 aom_h_predictor_32x16_sse2
, NULL
, NULL
, NULL
, NULL
)
737 INTRA_PRED_TEST(SSE2_3
, TX_32X64
, aom_dc_predictor_32x64_sse2
,
738 aom_dc_left_predictor_32x64_sse2
,
739 aom_dc_top_predictor_32x64_sse2
,
740 aom_dc_128_predictor_32x64_sse2
, aom_v_predictor_32x64_sse2
,
741 aom_h_predictor_32x64_sse2
, NULL
, NULL
, NULL
, NULL
)
742 INTRA_PRED_TEST(SSE2_4
, TX_32X8
, aom_dc_predictor_32x8_sse2
,
743 aom_dc_left_predictor_32x8_sse2
, aom_dc_top_predictor_32x8_sse2
,
744 aom_dc_128_predictor_32x8_sse2
, aom_v_predictor_32x8_sse2
,
745 aom_h_predictor_32x8_sse2
, NULL
, NULL
, NULL
, NULL
)
749 INTRA_PRED_TEST(SSSE3_1
, TX_32X32
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
750 aom_paeth_predictor_32x32_ssse3
,
751 aom_smooth_predictor_32x32_ssse3
,
752 aom_smooth_v_predictor_32x32_ssse3
,
753 aom_smooth_h_predictor_32x32_ssse3
)
754 INTRA_PRED_TEST(SSSE3_2
, TX_32X16
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
755 aom_paeth_predictor_32x16_ssse3
,
756 aom_smooth_predictor_32x16_ssse3
,
757 aom_smooth_v_predictor_32x16_ssse3
,
758 aom_smooth_h_predictor_32x16_ssse3
)
759 INTRA_PRED_TEST(SSSE3_3
, TX_32X64
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
760 aom_paeth_predictor_32x64_ssse3
,
761 aom_smooth_predictor_32x64_ssse3
,
762 aom_smooth_v_predictor_32x64_ssse3
,
763 aom_smooth_h_predictor_32x64_ssse3
)
764 INTRA_PRED_TEST(SSSE3_4
, TX_32X8
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
765 aom_paeth_predictor_32x8_ssse3
, aom_smooth_predictor_32x8_ssse3
,
766 aom_smooth_v_predictor_32x8_ssse3
,
767 aom_smooth_h_predictor_32x8_ssse3
)
771 INTRA_PRED_TEST(AVX2_1
, TX_32X32
, aom_dc_predictor_32x32_avx2
,
772 aom_dc_left_predictor_32x32_avx2
,
773 aom_dc_top_predictor_32x32_avx2
,
774 aom_dc_128_predictor_32x32_avx2
, aom_v_predictor_32x32_avx2
,
775 aom_h_predictor_32x32_avx2
, aom_paeth_predictor_32x32_avx2
,
777 INTRA_PRED_TEST(AVX2_2
, TX_32X16
, aom_dc_predictor_32x16_avx2
,
778 aom_dc_left_predictor_32x16_avx2
,
779 aom_dc_top_predictor_32x16_avx2
,
780 aom_dc_128_predictor_32x16_avx2
, aom_v_predictor_32x16_avx2
,
781 NULL
, aom_paeth_predictor_32x16_avx2
, NULL
, NULL
, NULL
)
782 INTRA_PRED_TEST(AVX2_3
, TX_32X64
, aom_dc_predictor_32x64_avx2
,
783 aom_dc_left_predictor_32x64_avx2
,
784 aom_dc_top_predictor_32x64_avx2
,
785 aom_dc_128_predictor_32x64_avx2
, aom_v_predictor_32x64_avx2
,
786 NULL
, aom_paeth_predictor_32x64_avx2
, NULL
, NULL
, NULL
)
790 INTRA_PRED_TEST(NEON
, TX_32X32
, aom_dc_predictor_32x32_neon
,
791 aom_dc_left_predictor_32x32_neon
,
792 aom_dc_top_predictor_32x32_neon
,
793 aom_dc_128_predictor_32x32_neon
, aom_v_predictor_32x32_neon
,
794 aom_h_predictor_32x32_neon
, NULL
, NULL
, NULL
, NULL
)
798 INTRA_PRED_TEST(MSA
, TX_32X32
, aom_dc_predictor_32x32_msa
,
799 aom_dc_left_predictor_32x32_msa
, aom_dc_top_predictor_32x32_msa
,
800 aom_dc_128_predictor_32x32_msa
, aom_v_predictor_32x32_msa
,
801 aom_h_predictor_32x32_msa
, NULL
, NULL
, NULL
, NULL
)
804 // -----------------------------------------------------------------------------
805 // 64x64, 64x32, 64x16
807 INTRA_PRED_TEST(C_1
, TX_64X64
, aom_dc_predictor_64x64_c
,
808 aom_dc_left_predictor_64x64_c
, aom_dc_top_predictor_64x64_c
,
809 aom_dc_128_predictor_64x64_c
, aom_v_predictor_64x64_c
,
810 aom_h_predictor_64x64_c
, aom_paeth_predictor_64x64_c
,
811 aom_smooth_predictor_64x64_c
, aom_smooth_v_predictor_64x64_c
,
812 aom_smooth_h_predictor_64x64_c
)
814 INTRA_PRED_TEST(C_2
, TX_64X32
, aom_dc_predictor_64x32_c
,
815 aom_dc_left_predictor_64x32_c
, aom_dc_top_predictor_64x32_c
,
816 aom_dc_128_predictor_64x32_c
, aom_v_predictor_64x32_c
,
817 aom_h_predictor_64x32_c
, aom_paeth_predictor_64x32_c
,
818 aom_smooth_predictor_64x32_c
, aom_smooth_v_predictor_64x32_c
,
819 aom_smooth_h_predictor_64x32_c
)
821 INTRA_PRED_TEST(C_3
, TX_64X16
, aom_dc_predictor_64x16_c
,
822 aom_dc_left_predictor_64x16_c
, aom_dc_top_predictor_64x16_c
,
823 aom_dc_128_predictor_64x16_c
, aom_v_predictor_64x16_c
,
824 aom_h_predictor_64x16_c
, aom_paeth_predictor_64x16_c
,
825 aom_smooth_predictor_64x16_c
, aom_smooth_v_predictor_64x16_c
,
826 aom_smooth_h_predictor_64x16_c
)
829 INTRA_PRED_TEST(SSE2_4
, TX_64X64
, aom_dc_predictor_64x64_sse2
,
830 aom_dc_left_predictor_64x64_sse2
,
831 aom_dc_top_predictor_64x64_sse2
,
832 aom_dc_128_predictor_64x64_sse2
, aom_v_predictor_64x64_sse2
,
833 aom_h_predictor_64x64_sse2
, NULL
, NULL
, NULL
, NULL
)
834 INTRA_PRED_TEST(SSE2_5
, TX_64X32
, aom_dc_predictor_64x32_sse2
,
835 aom_dc_left_predictor_64x32_sse2
,
836 aom_dc_top_predictor_64x32_sse2
,
837 aom_dc_128_predictor_64x32_sse2
, aom_v_predictor_64x32_sse2
,
838 aom_h_predictor_64x32_sse2
, NULL
, NULL
, NULL
, NULL
)
839 INTRA_PRED_TEST(SSE2_6
, TX_64X16
, aom_dc_predictor_64x16_sse2
,
840 aom_dc_left_predictor_64x16_sse2
,
841 aom_dc_top_predictor_64x16_sse2
,
842 aom_dc_128_predictor_64x16_sse2
, aom_v_predictor_64x16_sse2
,
843 aom_h_predictor_64x16_sse2
, NULL
, NULL
, NULL
, NULL
)
847 INTRA_PRED_TEST(SSSE3_4
, TX_64X64
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
848 aom_paeth_predictor_64x64_ssse3
,
849 aom_smooth_predictor_64x64_ssse3
,
850 aom_smooth_v_predictor_64x64_ssse3
,
851 aom_smooth_h_predictor_64x64_ssse3
)
852 INTRA_PRED_TEST(SSSE3_5
, TX_64X32
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
853 aom_paeth_predictor_64x32_ssse3
,
854 aom_smooth_predictor_64x32_ssse3
,
855 aom_smooth_v_predictor_64x32_ssse3
,
856 aom_smooth_h_predictor_64x32_ssse3
)
857 INTRA_PRED_TEST(SSSE3_6
, TX_64X16
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
858 aom_paeth_predictor_64x16_ssse3
,
859 aom_smooth_predictor_64x16_ssse3
,
860 aom_smooth_v_predictor_64x16_ssse3
,
861 aom_smooth_h_predictor_64x16_ssse3
)
865 INTRA_PRED_TEST(AVX2_4
, TX_64X64
, aom_dc_predictor_64x64_avx2
,
866 aom_dc_left_predictor_64x64_avx2
,
867 aom_dc_top_predictor_64x64_avx2
,
868 aom_dc_128_predictor_64x64_avx2
, aom_v_predictor_64x64_avx2
,
869 NULL
, aom_paeth_predictor_64x64_avx2
, NULL
, NULL
, NULL
)
870 INTRA_PRED_TEST(AVX2_5
, TX_64X32
, aom_dc_predictor_64x32_avx2
,
871 aom_dc_left_predictor_64x32_avx2
,
872 aom_dc_top_predictor_64x32_avx2
,
873 aom_dc_128_predictor_64x32_avx2
, aom_v_predictor_64x32_avx2
,
874 NULL
, aom_paeth_predictor_64x32_avx2
, NULL
, NULL
, NULL
)
875 INTRA_PRED_TEST(AVX2_6
, TX_64X16
, aom_dc_predictor_64x16_avx2
,
876 aom_dc_left_predictor_64x16_avx2
,
877 aom_dc_top_predictor_64x16_avx2
,
878 aom_dc_128_predictor_64x16_avx2
, aom_v_predictor_64x16_avx2
,
879 NULL
, aom_paeth_predictor_64x16_avx2
, NULL
, NULL
, NULL
)
881 // -----------------------------------------------------------------------------
885 typedef void (*AvxHighbdPredFunc
)(uint16_t *dst
, ptrdiff_t y_stride
,
886 const uint16_t *above
, const uint16_t *left
,
889 typedef IntraPredTestMem
<uint16_t> Av1HighbdIntraPredTestMem
;
891 void TestHighbdIntraPred(TX_SIZE tx_size
, AvxHighbdPredFunc
const *pred_funcs
,
892 const char *const signatures
[]) {
893 const int block_width
= tx_size_wide
[tx_size
];
894 const int block_height
= tx_size_high
[tx_size
];
895 const int num_pixels_per_test
=
896 block_width
* block_height
* kNumAv1IntraFuncs
;
897 const int kNumTests
= static_cast<int>(2.e10
/ num_pixels_per_test
);
898 Av1HighbdIntraPredTestMem intra_pred_test_mem
;
900 intra_pred_test_mem
.Init(block_width
, block_height
, bd
);
902 for (int k
= 0; k
< kNumAv1IntraFuncs
; ++k
) {
903 if (pred_funcs
[k
] == NULL
) continue;
904 memcpy(intra_pred_test_mem
.src
, intra_pred_test_mem
.ref_src
,
905 sizeof(intra_pred_test_mem
.src
));
906 aom_usec_timer timer
;
907 aom_usec_timer_start(&timer
);
908 for (int num_tests
= 0; num_tests
< kNumTests
; ++num_tests
) {
909 pred_funcs
[k
](intra_pred_test_mem
.src
, intra_pred_test_mem
.stride
,
910 intra_pred_test_mem
.above
, intra_pred_test_mem
.left
, bd
);
912 libaom_test::ClearSystemState();
913 aom_usec_timer_mark(&timer
);
914 const int elapsed_time
=
915 static_cast<int>(aom_usec_timer_elapsed(&timer
) / 1000);
917 tx_size
, true, signatures
, intra_pred_test_mem
.src
,
918 intra_pred_test_mem
.num_pixels
* sizeof(*intra_pred_test_mem
.src
),
923 static const char *const kHighbdSignatures
[TX_SIZES_ALL
][kNumAv1IntraFuncs
] = {
926 "11f74af6c5737df472f3275cbde062fa",
927 "51bea056b6447c93f6eb8f6b7e8f6f71",
928 "27e97f946766331795886f4de04c5594",
929 "53ab15974b049111fb596c5168ec7e3f",
930 "f0b640bb176fbe4584cf3d32a9b0320a",
931 "729783ca909e03afd4b47111c80d967b",
932 "6e30009c45474a22032678b1bd579c8f",
933 "e57cba016d808aa8a35619df2a65f049",
934 "55a6c37f39afcbbf5abca4a985b96459",
935 "a623d45b37dafec1f8a75c4c5218913d",
939 "03da8829fe94663047fd108c5fcaa71d",
940 "ecdb37b8120a2d3a4c706b016bd1bfd7",
941 "1d4543ed8d2b9368cb96898095fe8a75",
942 "f791c9a67b913cbd82d9da8ecede30e2",
943 "065c70646f4dbaff913282f55a45a441",
944 "51f87123616662ef7c35691497dfd0ba",
945 "85c01ba03df68f9ece7bd3fa0f8980e6",
946 "ad19b7dac092f56df6d054e1f67f21e7",
947 "0edc415b5dd7299f7a34fb9f71d31d78",
948 "2bc8ec19e9f4b77a64b8a0a1f6aec7e7",
952 "e33cb3f56a878e2fddb1b2fc51cdd275",
953 "c7bff6f04b6052c8ab335d726dbbd52d",
954 "d0b0b47b654a9bcc5c6008110a44589b",
955 "78f5da7b10b2b9ab39f114a33b6254e9",
956 "c78e31d23831abb40d6271a318fdd6f3",
957 "90d1347f4ec9198a0320daecb6ff90b8",
958 "e63ded54ab3d0e8728b6f24d4f01e53f",
959 "35ce21fbe0ea114c089fc3489a78155d",
960 "f277f6ef8e4d717f1f0dfe2706ac197d",
961 "e8014d3f41256976c02e0f1e622ba2b9",
965 "a3e8056ba7e36628cce4917cd956fedd",
966 "cc7d3024fe8748b512407edee045377e",
967 "2aab0a0f330a1d3e19b8ecb8f06387a3",
968 "a547bc3fb7b06910bf3973122a426661",
969 "26f712514da95042f93d6e8dc8e431dc",
970 "bb08c6e16177081daa3d936538dbc2e3",
971 "84bf83f94a51b33654ca940c6f8bc057",
972 "7168b03fc31bf29596a344d6a35d007c",
973 "b073a70d3672f1282236994f5d12e94b",
974 "c51607aebad5dcb3c1e3b58ef9e5b84e",
978 "a6baa0d4bfb2269a94c7a38f86a4bccf",
979 "3f1ef5f473a49eba743f17a3324adf9d",
980 "12ac11889ae5f55b7781454efd706a6a",
981 "d9a906c0e692b22e1b4414e71a704b7e",
982 "47d4cadd56f70c11ff8f3e5d8df81161",
983 "de997744cf24c16c5ac2a36b02b351cc",
984 "23781211ae178ddeb6c4bb97a6bd7d83",
985 "a79d2e28340ca34b9e37daabbf030f63",
986 "0372bd3ddfc258750a6ac106b70587f4",
987 "228ef625d9460cbf6fa253a16a730976",
991 "22d519b796d59644043466320e4ccd14",
992 "09513a738c49b3f9542d27f34abbe1d5",
993 "807ae5e8813443ff01e71be6efacfb69",
994 "cbfa18d0293430b6e9708b0be1fd2394",
995 "346c354c34ec7fa780b576db355dab88",
996 "f97dae85c35359632380b09ca98d611e",
997 "698ae351d8896d89ed9e4e67b6e53eda",
998 "dcc197034a9c45a3d8238bf085835f4e",
999 "7a35e2c42ffdc2efc2d6d1d75a100fc7",
1000 "41ab6cebd4516c87a91b2a593e2c2506",
1004 "d58cd4c4bf3b7bbaa5db5e1a5622ec78",
1005 "6e572c35aa782d00cafcb99e9ea047ea",
1006 "e8c22a3702b416dc9ab974505afbed09",
1007 "aaa4e4762a795aad7ad74de0c662c4e4",
1008 "a19f9101967383c3dcbd516dc317a291",
1009 "9ab8cb91f1a595b9ebe3fe8de58031aa",
1010 "2cf9021d5f1169268699807ee118b65f",
1011 "ee9605fcbd6fb871f1c5cd81a6989327",
1012 "b4871af8316089e3e23522175df7e93f",
1013 "d33301e1c2cb173be46792a22d19881a",
1017 "4562de1d0336610880fdd5685498a9ec",
1018 "16310fa7076394f16fc85c4b149d89c9",
1019 "0e94af88e1dc573b6f0f499cddd1f530",
1020 "dfd245ee20d091c67809160340365aa9",
1021 "d3562504327f70c096c5be23fd8a3747",
1022 "601b853558502acbb5135eadd2da117a",
1023 "3c624345a723a1b2b1bea05a6a08bc99",
1024 "2a9c781de609e0184cc7ab442050f4e5",
1025 "0ddc5035c22252747126b61fc238c74d",
1026 "e43f5d83bab759af69c7b6773fc8f9b2",
1030 "a57d6b5a9bfd30c29591d8717ace9c51",
1031 "f5907ba97ee6c53e339e953fc8d845ee",
1032 "ea3aa727913ce45af06f89dd1808db5f",
1033 "408af4f23e48d14b48ee35ae094fcd18",
1034 "85c41cbcb5d744f7961e8950026fbffe",
1035 "8a4e588a837638887ba671f8d4910485",
1036 "b792d8826b67a21757ea7097cff9e05b",
1037 "f94ce7101bb87fd3bb9312112527dbf4",
1038 "688c6660a6dc6fa61fa1aa38e708c209",
1039 "0cdf641b4f81d69509c92ae0b93ef5ff",
1043 "aee4b3b0e3cc02d48e2c40d77f807927",
1044 "8baef2b2e789f79c8df9d90ad10f34a4",
1045 "038c38ee3c4f090bb8d736eab136aafc",
1046 "1a3de2aaeaffd68a9fd6c7f6557b83f3",
1047 "385c6e0ea29421dd81011a2934641e26",
1048 "6cf96c285d1a2d4787f955dad715b08c",
1049 "2d7f75dcd73b9528c8396279ff09ff3a",
1050 "5a63cd1841e4ed470e4ca5ef845f2281",
1051 "610d899ca945fbead33287d4335a8b32",
1052 "6bafaad81fce37be46730187e78d8b11",
1056 "290b23c9f5a1de7905bfa71a942da29b",
1057 "701e7b82593c66da5052fc4b6afd79ce",
1058 "4da828c5455cd246735a663fbb204989",
1059 "e3fbeaf234efece8dbd752b77226200c",
1060 "4d1d8c969f05155a7e7e84cf7aad021b",
1061 "c22e4877c2c946d5bdc0d542e29e70cf",
1062 "8ac1ce815e7780500f842b0beb0bb980",
1063 "9fee2e2502b507f25bfad30a55b0b610",
1064 "4ced9c212ec6f9956e27f68a91b59fef",
1065 "4a7a0b93f138bb0863e4e465b01ec0b1",
1069 "ad9cfc395a5c5644a21d958c7274ac14",
1070 "f29d6d03c143ddf96fef04c19f2c8333",
1071 "a8bdc852ef704dd4975c61893e8fbc3f",
1072 "7d0bd7dea26226741dbca9a97f27fa74",
1073 "45c27c5cca9a91b6ae8379feb0881c9f",
1074 "8a0b78df1e001b85c874d686eac4aa1b",
1075 "ce9fa75fac54a3f6c0cc3f2083b938f1",
1076 "c0dca10d88762c954af18dc9e3791a39",
1077 "61df229eddfccab913b8fda4bb02f9ac",
1078 "4f4df6bc8d50a5600b573f0e44d70e66",
1082 "db9d82921fd88b24fdff6f849f2f9c87",
1083 "5ecc7fdc52d2f575ad4f2d0e9e6b1e11",
1084 "b4581311a0a73d95dfac7f8f44591032",
1085 "68bd283cfd1a125f6b2ee47cee874d36",
1086 "804179f05c032908a5e36077bb87c994",
1087 "fc5fd041a8ee779015394d0c066ee43c",
1088 "68f5579ccadfe9a1baafb158334a3db2",
1089 "fe237e45e215ab06d79046da9ad71e84",
1090 "9a8a938a6824551bf7d21b8fd1d70ea1",
1091 "eb7332f2017cd96882c76e7136aeaf53",
1095 "7bafa307d507747b8132e7735b7f1c73",
1096 "e58bc2d8213a97d1fea9cfb73d7a9633",
1097 "435f8a8e8bbf14dbf2fe16b2be9e97aa",
1098 "1d0e767b68d84acbfb50b7a04e633836",
1099 "5f713bd7b324fe73bb7063e35ee14e5e",
1100 "0dac4e1fa3d59814202715468c01ed56",
1101 "47709d1db4a330c7a8900f450e6fddd1",
1102 "258e0b930bb27db28f05da9cf7d1ee7c",
1103 "36cf030fbae767912593efea045bfff5",
1104 "248d7aceabb7499febae663fae41a920",
1108 "04dde98e632670e393704742c89f9067",
1109 "8c72543f1664651ae1fa08e2ac0adb9b",
1110 "2354a2cdc2773aa2df8ab4010db1be39",
1111 "6300ad3221c26da39b10e0e6d87ee3be",
1112 "8ea30b661c6ba60b28d3167f19e449b8",
1113 "fb6c1e4ff101a371cede63c2955cdb7e",
1114 "a517c06433d6d7927b16a72184a23e92",
1115 "393828be5d62ab6c48668bea5e2f801a",
1116 "b1e510c542013eb9d6fb188dea2ce90a",
1117 "569a8f2fe01679ca216535ecbcdccb62",
1121 "9d541865c185ca7607852852613ac1fc",
1122 "b96be67f08c6b5fa5ebd3411299c2f7c",
1123 "75a2dcf50004b9d188849b048239767e",
1124 "429492ff415c9fd9b050d73b2ad500f8",
1125 "64b3606c1ccd036bd766bd5711392cf4",
1126 "cb59844a0f01660ac955bae3511f1100",
1127 "3e076155b7a70e8828618e3f33b51e3d",
1128 "ed2d1f597ab7c50beff690f737cf9726",
1129 "7909c6a26aaf20c59d996d3e5b5f9c29",
1130 "965798807240c98c6f7cc9b457ed0773",
1134 "36f391aa31619eec1f4d9ee95ea454cc",
1135 "b82648f14eeba2527357cb50bc3223cb",
1136 "7a7b2adf429125e8bee9d1d00a66e13f",
1137 "4198e4d6ba503b7cc2d7e96bb845f661",
1138 "96c160d2ec1be9fe0cdea9682f14d257",
1139 "19a450bcebaa75afb4fc6bd1fd6434af",
1140 "2bd2e35967d43d0ec1c6587a36f204d5",
1141 "49799a99aa4ccfbd989bee92a99422f1",
1142 "955530e99813812a74659edeac3f5475",
1143 "f0316b84e378a19cd11b19a6e40b2914",
1147 "8cba1b70a0bde29e8ef235cedc5faa7d",
1148 "96d00ddc7537bf7f196006591b733b4e",
1149 "cbf69d5d157c9f3355a4757b1d6e3414",
1150 "3ac1f642019493dec1b737d7a3a1b4e5",
1151 "35f9ee300d7fa3c97338e81a6f21dcd4",
1152 "aae335442e77c8ebc280f16ea50ba9c7",
1153 "a6140fdac2278644328be094d88731db",
1154 "2df93621b6ff100f7008432d509f4161",
1155 "c77bf5aee39e7ed4a3dd715f816f452a",
1156 "02109bd63557d90225c32a8f1338258e",
1160 "a5e2f9fb685d5f4a048e9a96affd25a4",
1161 "1348f249690d9eefe09d9ad7ead2c801",
1162 "525da4b187acd81b1ff1116b60461141",
1163 "e99d072de858094c98b01bd4a6772634",
1164 "873bfa9dc24693f19721f7c8d527f7d3",
1165 "0acfc6507bd3468e9679efc127d6e4b9",
1166 "57d03f8d079c7264854e22ac1157cfae",
1167 "6c2c4036f70c7d957a9399b5436c0774",
1168 "42b8e4a97b7f8416c72a5148c031c0b1",
1169 "a38a2c5f79993dfae8530e9e25800893",
1175 #define HIGHBD_INTRA_PRED_TEST(arch, tx_size, dc, dc_left, dc_top, dc_128, v, \
1176 h, paeth, smooth, smooth_v, smooth_h) \
1177 TEST(arch, DISABLED_##TestHighbdIntraPred_##tx_size) { \
1178 static const AvxHighbdPredFunc aom_intra_pred[] = { \
1179 dc, dc_left, dc_top, dc_128, v, h, paeth, smooth, smooth_v, smooth_h \
1181 TestHighbdIntraPred(tx_size, aom_intra_pred, kHighbdSignatures[tx_size]); \
1184 // -----------------------------------------------------------------------------
1187 HIGHBD_INTRA_PRED_TEST(
1188 C_1
, TX_4X4
, aom_highbd_dc_predictor_4x4_c
,
1189 aom_highbd_dc_left_predictor_4x4_c
, aom_highbd_dc_top_predictor_4x4_c
,
1190 aom_highbd_dc_128_predictor_4x4_c
, aom_highbd_v_predictor_4x4_c
,
1191 aom_highbd_h_predictor_4x4_c
, aom_highbd_paeth_predictor_4x4_c
,
1192 aom_highbd_smooth_predictor_4x4_c
, aom_highbd_smooth_v_predictor_4x4_c
,
1193 aom_highbd_smooth_h_predictor_4x4_c
)
1195 HIGHBD_INTRA_PRED_TEST(
1196 C_2
, TX_4X8
, aom_highbd_dc_predictor_4x8_c
,
1197 aom_highbd_dc_left_predictor_4x8_c
, aom_highbd_dc_top_predictor_4x8_c
,
1198 aom_highbd_dc_128_predictor_4x8_c
, aom_highbd_v_predictor_4x8_c
,
1199 aom_highbd_h_predictor_4x8_c
, aom_highbd_paeth_predictor_4x8_c
,
1200 aom_highbd_smooth_predictor_4x8_c
, aom_highbd_smooth_v_predictor_4x8_c
,
1201 aom_highbd_smooth_h_predictor_4x8_c
)
1203 HIGHBD_INTRA_PRED_TEST(
1204 C_3
, TX_4X16
, aom_highbd_dc_predictor_4x16_c
,
1205 aom_highbd_dc_left_predictor_4x16_c
, aom_highbd_dc_top_predictor_4x16_c
,
1206 aom_highbd_dc_128_predictor_4x16_c
, aom_highbd_v_predictor_4x16_c
,
1207 aom_highbd_h_predictor_4x16_c
, aom_highbd_paeth_predictor_4x16_c
,
1208 aom_highbd_smooth_predictor_4x16_c
, aom_highbd_smooth_v_predictor_4x16_c
,
1209 aom_highbd_smooth_h_predictor_4x16_c
)
1212 HIGHBD_INTRA_PRED_TEST(SSE2_1
, TX_4X4
, aom_highbd_dc_predictor_4x4_sse2
,
1213 aom_highbd_dc_left_predictor_4x4_sse2
,
1214 aom_highbd_dc_top_predictor_4x4_sse2
,
1215 aom_highbd_dc_128_predictor_4x4_sse2
,
1216 aom_highbd_v_predictor_4x4_sse2
,
1217 aom_highbd_h_predictor_4x4_sse2
, NULL
, NULL
, NULL
, NULL
)
1219 HIGHBD_INTRA_PRED_TEST(SSE2_2
, TX_4X8
, aom_highbd_dc_predictor_4x8_sse2
,
1220 aom_highbd_dc_left_predictor_4x8_sse2
,
1221 aom_highbd_dc_top_predictor_4x8_sse2
,
1222 aom_highbd_dc_128_predictor_4x8_sse2
,
1223 aom_highbd_v_predictor_4x8_sse2
,
1224 aom_highbd_h_predictor_4x8_sse2
, NULL
, NULL
, NULL
, NULL
)
1227 // -----------------------------------------------------------------------------
1228 // 8x8, 8x4, 8x16, 8x32
1230 HIGHBD_INTRA_PRED_TEST(
1231 C_1
, TX_8X8
, aom_highbd_dc_predictor_8x8_c
,
1232 aom_highbd_dc_left_predictor_8x8_c
, aom_highbd_dc_top_predictor_8x8_c
,
1233 aom_highbd_dc_128_predictor_8x8_c
, aom_highbd_v_predictor_8x8_c
,
1234 aom_highbd_h_predictor_8x8_c
, aom_highbd_paeth_predictor_8x8_c
,
1235 aom_highbd_smooth_predictor_8x8_c
, aom_highbd_smooth_v_predictor_8x8_c
,
1236 aom_highbd_smooth_h_predictor_8x8_c
)
1238 HIGHBD_INTRA_PRED_TEST(
1239 C_2
, TX_8X4
, aom_highbd_dc_predictor_8x4_c
,
1240 aom_highbd_dc_left_predictor_8x4_c
, aom_highbd_dc_top_predictor_8x4_c
,
1241 aom_highbd_dc_128_predictor_8x4_c
, aom_highbd_v_predictor_8x4_c
,
1242 aom_highbd_h_predictor_8x4_c
, aom_highbd_paeth_predictor_8x4_c
,
1243 aom_highbd_smooth_predictor_8x4_c
, aom_highbd_smooth_v_predictor_8x4_c
,
1244 aom_highbd_smooth_h_predictor_8x4_c
)
1246 HIGHBD_INTRA_PRED_TEST(
1247 C_3
, TX_8X16
, aom_highbd_dc_predictor_8x16_c
,
1248 aom_highbd_dc_left_predictor_8x16_c
, aom_highbd_dc_top_predictor_8x16_c
,
1249 aom_highbd_dc_128_predictor_8x16_c
, aom_highbd_v_predictor_8x16_c
,
1250 aom_highbd_h_predictor_8x16_c
, aom_highbd_paeth_predictor_8x16_c
,
1251 aom_highbd_smooth_predictor_8x16_c
, aom_highbd_smooth_v_predictor_8x16_c
,
1252 aom_highbd_smooth_h_predictor_8x16_c
)
1254 HIGHBD_INTRA_PRED_TEST(
1255 C_4
, TX_8X32
, aom_highbd_dc_predictor_8x32_c
,
1256 aom_highbd_dc_left_predictor_8x32_c
, aom_highbd_dc_top_predictor_8x32_c
,
1257 aom_highbd_dc_128_predictor_8x32_c
, aom_highbd_v_predictor_8x32_c
,
1258 aom_highbd_h_predictor_8x32_c
, aom_highbd_paeth_predictor_8x32_c
,
1259 aom_highbd_smooth_predictor_8x32_c
, aom_highbd_smooth_v_predictor_8x32_c
,
1260 aom_highbd_smooth_h_predictor_8x32_c
)
1263 HIGHBD_INTRA_PRED_TEST(SSE2_1
, TX_8X8
, aom_highbd_dc_predictor_8x8_sse2
,
1264 aom_highbd_dc_left_predictor_8x8_sse2
,
1265 aom_highbd_dc_top_predictor_8x8_sse2
,
1266 aom_highbd_dc_128_predictor_8x8_sse2
,
1267 aom_highbd_v_predictor_8x8_sse2
,
1268 aom_highbd_h_predictor_8x8_sse2
, NULL
, NULL
, NULL
, NULL
)
1269 HIGHBD_INTRA_PRED_TEST(SSE2_2
, TX_8X4
, aom_highbd_dc_predictor_8x4_sse2
,
1270 aom_highbd_dc_left_predictor_8x4_sse2
,
1271 aom_highbd_dc_top_predictor_8x4_sse2
,
1272 aom_highbd_dc_128_predictor_8x4_sse2
,
1273 aom_highbd_v_predictor_8x4_sse2
,
1274 aom_highbd_h_predictor_8x4_sse2
, NULL
, NULL
, NULL
, NULL
)
1275 HIGHBD_INTRA_PRED_TEST(SSE2_3
, TX_8X16
, aom_highbd_dc_predictor_8x16_sse2
,
1276 aom_highbd_dc_left_predictor_8x16_sse2
,
1277 aom_highbd_dc_top_predictor_8x16_sse2
,
1278 aom_highbd_dc_128_predictor_8x16_sse2
,
1279 aom_highbd_v_predictor_8x16_sse2
,
1280 aom_highbd_h_predictor_8x16_sse2
, NULL
, NULL
, NULL
, NULL
)
1284 HIGHBD_INTRA_PRED_TEST(SSSE3
, TX_8X8
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
1288 // -----------------------------------------------------------------------------
1289 // 16x16, 16x8, 16x32, 16x4, 16x64
1291 HIGHBD_INTRA_PRED_TEST(
1292 C_1
, TX_16X16
, aom_highbd_dc_predictor_16x16_c
,
1293 aom_highbd_dc_left_predictor_16x16_c
, aom_highbd_dc_top_predictor_16x16_c
,
1294 aom_highbd_dc_128_predictor_16x16_c
, aom_highbd_v_predictor_16x16_c
,
1295 aom_highbd_h_predictor_16x16_c
, aom_highbd_paeth_predictor_16x16_c
,
1296 aom_highbd_smooth_predictor_16x16_c
, aom_highbd_smooth_v_predictor_16x16_c
,
1297 aom_highbd_smooth_h_predictor_16x16_c
)
1299 HIGHBD_INTRA_PRED_TEST(
1300 C_2
, TX_16X8
, aom_highbd_dc_predictor_16x8_c
,
1301 aom_highbd_dc_left_predictor_16x8_c
, aom_highbd_dc_top_predictor_16x8_c
,
1302 aom_highbd_dc_128_predictor_16x8_c
, aom_highbd_v_predictor_16x8_c
,
1303 aom_highbd_h_predictor_16x8_c
, aom_highbd_paeth_predictor_16x8_c
,
1304 aom_highbd_smooth_predictor_16x8_c
, aom_highbd_smooth_v_predictor_16x8_c
,
1305 aom_highbd_smooth_h_predictor_16x8_c
)
1307 HIGHBD_INTRA_PRED_TEST(
1308 C_3
, TX_16X32
, aom_highbd_dc_predictor_16x32_c
,
1309 aom_highbd_dc_left_predictor_16x32_c
, aom_highbd_dc_top_predictor_16x32_c
,
1310 aom_highbd_dc_128_predictor_16x32_c
, aom_highbd_v_predictor_16x32_c
,
1311 aom_highbd_h_predictor_16x32_c
, aom_highbd_paeth_predictor_16x32_c
,
1312 aom_highbd_smooth_predictor_16x32_c
, aom_highbd_smooth_v_predictor_16x32_c
,
1313 aom_highbd_smooth_h_predictor_16x32_c
)
1315 HIGHBD_INTRA_PRED_TEST(
1316 C_4
, TX_16X4
, aom_highbd_dc_predictor_16x4_c
,
1317 aom_highbd_dc_left_predictor_16x4_c
, aom_highbd_dc_top_predictor_16x4_c
,
1318 aom_highbd_dc_128_predictor_16x4_c
, aom_highbd_v_predictor_16x4_c
,
1319 aom_highbd_h_predictor_16x4_c
, aom_highbd_paeth_predictor_16x4_c
,
1320 aom_highbd_smooth_predictor_16x4_c
, aom_highbd_smooth_v_predictor_16x4_c
,
1321 aom_highbd_smooth_h_predictor_16x4_c
)
1323 HIGHBD_INTRA_PRED_TEST(
1324 C_5
, TX_16X64
, aom_highbd_dc_predictor_16x64_c
,
1325 aom_highbd_dc_left_predictor_16x64_c
, aom_highbd_dc_top_predictor_16x64_c
,
1326 aom_highbd_dc_128_predictor_16x64_c
, aom_highbd_v_predictor_16x64_c
,
1327 aom_highbd_h_predictor_16x64_c
, aom_highbd_paeth_predictor_16x64_c
,
1328 aom_highbd_smooth_predictor_16x64_c
, aom_highbd_smooth_v_predictor_16x64_c
,
1329 aom_highbd_smooth_h_predictor_16x64_c
)
1332 HIGHBD_INTRA_PRED_TEST(SSE2_1
, TX_16X16
, aom_highbd_dc_predictor_16x16_sse2
,
1333 aom_highbd_dc_left_predictor_16x16_sse2
,
1334 aom_highbd_dc_top_predictor_16x16_sse2
,
1335 aom_highbd_dc_128_predictor_16x16_sse2
,
1336 aom_highbd_v_predictor_16x16_sse2
,
1337 aom_highbd_h_predictor_16x16_sse2
, NULL
, NULL
, NULL
,
1339 HIGHBD_INTRA_PRED_TEST(SSE2_2
, TX_16X8
, aom_highbd_dc_predictor_16x8_sse2
,
1340 aom_highbd_dc_left_predictor_16x8_sse2
,
1341 aom_highbd_dc_top_predictor_16x8_sse2
,
1342 aom_highbd_dc_128_predictor_16x8_sse2
,
1343 aom_highbd_v_predictor_16x8_sse2
,
1344 aom_highbd_h_predictor_16x8_sse2
, NULL
, NULL
, NULL
, NULL
)
1345 HIGHBD_INTRA_PRED_TEST(SSE2_3
, TX_16X32
, aom_highbd_dc_predictor_16x32_sse2
,
1346 aom_highbd_dc_left_predictor_16x32_sse2
,
1347 aom_highbd_dc_top_predictor_16x32_sse2
,
1348 aom_highbd_dc_128_predictor_16x32_sse2
,
1349 aom_highbd_v_predictor_16x32_sse2
,
1350 aom_highbd_h_predictor_16x32_sse2
, NULL
, NULL
, NULL
,
1355 HIGHBD_INTRA_PRED_TEST(SSSE3_1
, TX_16X16
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
1356 NULL
, NULL
, NULL
, NULL
)
1360 HIGHBD_INTRA_PRED_TEST(AVX2_1
, TX_16X16
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
1361 NULL
, NULL
, NULL
, NULL
)
1363 HIGHBD_INTRA_PRED_TEST(AVX2_2
, TX_16X8
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
1364 NULL
, NULL
, NULL
, NULL
)
1366 HIGHBD_INTRA_PRED_TEST(AVX2_3
, TX_16X32
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
1367 NULL
, NULL
, NULL
, NULL
)
1370 // -----------------------------------------------------------------------------
1371 // 32x32, 32x16, 32x64, 32x8
1373 HIGHBD_INTRA_PRED_TEST(
1374 C_1
, TX_32X32
, aom_highbd_dc_predictor_32x32_c
,
1375 aom_highbd_dc_left_predictor_32x32_c
, aom_highbd_dc_top_predictor_32x32_c
,
1376 aom_highbd_dc_128_predictor_32x32_c
, aom_highbd_v_predictor_32x32_c
,
1377 aom_highbd_h_predictor_32x32_c
, aom_highbd_paeth_predictor_32x32_c
,
1378 aom_highbd_smooth_predictor_32x32_c
, aom_highbd_smooth_v_predictor_32x32_c
,
1379 aom_highbd_smooth_h_predictor_32x32_c
)
1381 HIGHBD_INTRA_PRED_TEST(
1382 C_2
, TX_32X16
, aom_highbd_dc_predictor_32x16_c
,
1383 aom_highbd_dc_left_predictor_32x16_c
, aom_highbd_dc_top_predictor_32x16_c
,
1384 aom_highbd_dc_128_predictor_32x16_c
, aom_highbd_v_predictor_32x16_c
,
1385 aom_highbd_h_predictor_32x16_c
, aom_highbd_paeth_predictor_32x16_c
,
1386 aom_highbd_smooth_predictor_32x16_c
, aom_highbd_smooth_v_predictor_32x16_c
,
1387 aom_highbd_smooth_h_predictor_32x16_c
)
1389 HIGHBD_INTRA_PRED_TEST(
1390 C_3
, TX_32X64
, aom_highbd_dc_predictor_32x64_c
,
1391 aom_highbd_dc_left_predictor_32x64_c
, aom_highbd_dc_top_predictor_32x64_c
,
1392 aom_highbd_dc_128_predictor_32x64_c
, aom_highbd_v_predictor_32x64_c
,
1393 aom_highbd_h_predictor_32x64_c
, aom_highbd_paeth_predictor_32x64_c
,
1394 aom_highbd_smooth_predictor_32x64_c
, aom_highbd_smooth_v_predictor_32x64_c
,
1395 aom_highbd_smooth_h_predictor_32x64_c
)
1397 HIGHBD_INTRA_PRED_TEST(
1398 C_4
, TX_32X8
, aom_highbd_dc_predictor_32x8_c
,
1399 aom_highbd_dc_left_predictor_32x8_c
, aom_highbd_dc_top_predictor_32x8_c
,
1400 aom_highbd_dc_128_predictor_32x8_c
, aom_highbd_v_predictor_32x8_c
,
1401 aom_highbd_h_predictor_32x8_c
, aom_highbd_paeth_predictor_32x8_c
,
1402 aom_highbd_smooth_predictor_32x8_c
, aom_highbd_smooth_v_predictor_32x8_c
,
1403 aom_highbd_smooth_h_predictor_32x8_c
)
1406 HIGHBD_INTRA_PRED_TEST(SSE2_1
, TX_32X32
, aom_highbd_dc_predictor_32x32_sse2
,
1407 aom_highbd_dc_left_predictor_32x32_sse2
,
1408 aom_highbd_dc_top_predictor_32x32_sse2
,
1409 aom_highbd_dc_128_predictor_32x32_sse2
,
1410 aom_highbd_v_predictor_32x32_sse2
,
1411 aom_highbd_h_predictor_32x32_sse2
, NULL
, NULL
, NULL
,
1413 HIGHBD_INTRA_PRED_TEST(SSE2_2
, TX_32X16
, aom_highbd_dc_predictor_32x16_sse2
,
1414 aom_highbd_dc_left_predictor_32x16_sse2
,
1415 aom_highbd_dc_top_predictor_32x16_sse2
,
1416 aom_highbd_dc_128_predictor_32x16_sse2
,
1417 aom_highbd_v_predictor_32x16_sse2
,
1418 aom_highbd_h_predictor_32x16_sse2
, NULL
, NULL
, NULL
,
1423 HIGHBD_INTRA_PRED_TEST(SSSE3_1
, TX_32X32
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
1424 NULL
, NULL
, NULL
, NULL
)
1428 HIGHBD_INTRA_PRED_TEST(AVX2_1
, TX_32X32
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
1429 NULL
, NULL
, NULL
, NULL
)
1431 HIGHBD_INTRA_PRED_TEST(AVX2_2
, TX_32X16
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
1432 NULL
, NULL
, NULL
, NULL
)
1435 // -----------------------------------------------------------------------------
1436 // 64x64, 64x32, 64x16
1438 HIGHBD_INTRA_PRED_TEST(
1439 C_1
, TX_64X64
, aom_highbd_dc_predictor_64x64_c
,
1440 aom_highbd_dc_left_predictor_64x64_c
, aom_highbd_dc_top_predictor_64x64_c
,
1441 aom_highbd_dc_128_predictor_64x64_c
, aom_highbd_v_predictor_64x64_c
,
1442 aom_highbd_h_predictor_64x64_c
, aom_highbd_paeth_predictor_64x64_c
,
1443 aom_highbd_smooth_predictor_64x64_c
, aom_highbd_smooth_v_predictor_64x64_c
,
1444 aom_highbd_smooth_h_predictor_64x64_c
)
1446 HIGHBD_INTRA_PRED_TEST(
1447 C_2
, TX_64X32
, aom_highbd_dc_predictor_64x32_c
,
1448 aom_highbd_dc_left_predictor_64x32_c
, aom_highbd_dc_top_predictor_64x32_c
,
1449 aom_highbd_dc_128_predictor_64x32_c
, aom_highbd_v_predictor_64x32_c
,
1450 aom_highbd_h_predictor_64x32_c
, aom_highbd_paeth_predictor_64x32_c
,
1451 aom_highbd_smooth_predictor_64x32_c
, aom_highbd_smooth_v_predictor_64x32_c
,
1452 aom_highbd_smooth_h_predictor_64x32_c
)
1454 HIGHBD_INTRA_PRED_TEST(
1455 C_3
, TX_64X16
, aom_highbd_dc_predictor_64x16_c
,
1456 aom_highbd_dc_left_predictor_64x16_c
, aom_highbd_dc_top_predictor_64x16_c
,
1457 aom_highbd_dc_128_predictor_64x16_c
, aom_highbd_v_predictor_64x16_c
,
1458 aom_highbd_h_predictor_64x16_c
, aom_highbd_paeth_predictor_64x16_c
,
1459 aom_highbd_smooth_predictor_64x16_c
, aom_highbd_smooth_v_predictor_64x16_c
,
1460 aom_highbd_smooth_h_predictor_64x16_c
)
1462 // -----------------------------------------------------------------------------
1464 #include "test/test_libaom.cc"