OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebM project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 #include <stdlib.h> | 10 #include <stdlib.h> |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 | 287 |
288 namespace vp8 { | 288 namespace vp8 { |
289 | 289 |
290 #if CONFIG_VP8_ENCODER | 290 #if CONFIG_VP8_ENCODER |
291 typedef VarianceTest<vp8_variance_fn_t> VP8VarianceTest; | 291 typedef VarianceTest<vp8_variance_fn_t> VP8VarianceTest; |
292 | 292 |
293 TEST_P(VP8VarianceTest, Zero) { ZeroTest(); } | 293 TEST_P(VP8VarianceTest, Zero) { ZeroTest(); } |
294 TEST_P(VP8VarianceTest, Ref) { RefTest(); } | 294 TEST_P(VP8VarianceTest, Ref) { RefTest(); } |
295 TEST_P(VP8VarianceTest, OneQuarter) { OneQuarterTest(); } | 295 TEST_P(VP8VarianceTest, OneQuarter) { OneQuarterTest(); } |
296 | 296 |
| 297 const vp8_variance_fn_t variance4x4_c = vp8_variance4x4_c; |
| 298 const vp8_variance_fn_t variance8x8_c = vp8_variance8x8_c; |
| 299 const vp8_variance_fn_t variance8x16_c = vp8_variance8x16_c; |
| 300 const vp8_variance_fn_t variance16x8_c = vp8_variance16x8_c; |
| 301 const vp8_variance_fn_t variance16x16_c = vp8_variance16x16_c; |
297 INSTANTIATE_TEST_CASE_P( | 302 INSTANTIATE_TEST_CASE_P( |
298 C, VP8VarianceTest, | 303 C, VP8VarianceTest, |
299 ::testing::Values(make_tuple(2, 2, vp8_variance4x4_c), | 304 ::testing::Values(make_tuple(2, 2, variance4x4_c), |
300 make_tuple(3, 3, vp8_variance8x8_c), | 305 make_tuple(3, 3, variance8x8_c), |
301 make_tuple(3, 4, vp8_variance8x16_c), | 306 make_tuple(3, 4, variance8x16_c), |
302 make_tuple(4, 3, vp8_variance16x8_c), | 307 make_tuple(4, 3, variance16x8_c), |
303 make_tuple(4, 4, vp8_variance16x16_c))); | 308 make_tuple(4, 4, variance16x16_c))); |
304 | 309 |
305 #if HAVE_NEON | 310 #if HAVE_NEON |
| 311 const vp8_variance_fn_t variance8x8_neon = vp8_variance8x8_neon; |
| 312 const vp8_variance_fn_t variance8x16_neon = vp8_variance8x16_neon; |
| 313 const vp8_variance_fn_t variance16x8_neon = vp8_variance16x8_neon; |
| 314 const vp8_variance_fn_t variance16x16_neon = vp8_variance16x16_neon; |
306 INSTANTIATE_TEST_CASE_P( | 315 INSTANTIATE_TEST_CASE_P( |
307 NEON, VP8VarianceTest, | 316 NEON, VP8VarianceTest, |
308 ::testing::Values(make_tuple(3, 3, vp8_variance8x8_neon), | 317 ::testing::Values(make_tuple(3, 3, variance8x8_neon), |
309 make_tuple(3, 4, vp8_variance8x16_neon), | 318 make_tuple(3, 4, variance8x16_neon), |
310 make_tuple(4, 3, vp8_variance16x8_neon), | 319 make_tuple(4, 3, variance16x8_neon), |
311 make_tuple(4, 4, vp8_variance16x16_neon))); | 320 make_tuple(4, 4, variance16x16_neon))); |
312 #endif | 321 #endif |
313 | 322 |
314 #if HAVE_MMX | 323 #if HAVE_MMX |
| 324 const vp8_variance_fn_t variance4x4_mmx = vp8_variance4x4_mmx; |
| 325 const vp8_variance_fn_t variance8x8_mmx = vp8_variance8x8_mmx; |
| 326 const vp8_variance_fn_t variance8x16_mmx = vp8_variance8x16_mmx; |
| 327 const vp8_variance_fn_t variance16x8_mmx = vp8_variance16x8_mmx; |
| 328 const vp8_variance_fn_t variance16x16_mmx = vp8_variance16x16_mmx; |
315 INSTANTIATE_TEST_CASE_P( | 329 INSTANTIATE_TEST_CASE_P( |
316 MMX, VP8VarianceTest, | 330 MMX, VP8VarianceTest, |
317 ::testing::Values(make_tuple(2, 2, vp8_variance4x4_mmx), | 331 ::testing::Values(make_tuple(2, 2, variance4x4_mmx), |
318 make_tuple(3, 3, vp8_variance8x8_mmx), | 332 make_tuple(3, 3, variance8x8_mmx), |
319 make_tuple(3, 4, vp8_variance8x16_mmx), | 333 make_tuple(3, 4, variance8x16_mmx), |
320 make_tuple(4, 3, vp8_variance16x8_mmx), | 334 make_tuple(4, 3, variance16x8_mmx), |
321 make_tuple(4, 4, vp8_variance16x16_mmx))); | 335 make_tuple(4, 4, variance16x16_mmx))); |
322 #endif | 336 #endif |
323 | 337 |
324 #if HAVE_SSE2 | 338 #if HAVE_SSE2 |
| 339 const vp8_variance_fn_t variance4x4_wmt = vp8_variance4x4_wmt; |
| 340 const vp8_variance_fn_t variance8x8_wmt = vp8_variance8x8_wmt; |
| 341 const vp8_variance_fn_t variance8x16_wmt = vp8_variance8x16_wmt; |
| 342 const vp8_variance_fn_t variance16x8_wmt = vp8_variance16x8_wmt; |
| 343 const vp8_variance_fn_t variance16x16_wmt = vp8_variance16x16_wmt; |
325 INSTANTIATE_TEST_CASE_P( | 344 INSTANTIATE_TEST_CASE_P( |
326 SSE2, VP8VarianceTest, | 345 SSE2, VP8VarianceTest, |
327 ::testing::Values(make_tuple(2, 2, vp8_variance4x4_wmt), | 346 ::testing::Values(make_tuple(2, 2, variance4x4_wmt), |
328 make_tuple(3, 3, vp8_variance8x8_wmt), | 347 make_tuple(3, 3, variance8x8_wmt), |
329 make_tuple(3, 4, vp8_variance8x16_wmt), | 348 make_tuple(3, 4, variance8x16_wmt), |
330 make_tuple(4, 3, vp8_variance16x8_wmt), | 349 make_tuple(4, 3, variance16x8_wmt), |
331 make_tuple(4, 4, vp8_variance16x16_wmt))); | 350 make_tuple(4, 4, variance16x16_wmt))); |
332 #endif | 351 #endif |
333 #endif // CONFIG_VP8_ENCODER | 352 #endif // CONFIG_VP8_ENCODER |
334 | 353 |
335 } // namespace vp8 | 354 } // namespace vp8 |
336 | 355 |
337 // ----------------------------------------------------------------------------- | 356 // ----------------------------------------------------------------------------- |
338 // VP9 test cases. | 357 // VP9 test cases. |
339 | 358 |
340 namespace vp9 { | 359 namespace vp9 { |
341 | 360 |
342 #if CONFIG_VP9_ENCODER | 361 #if CONFIG_VP9_ENCODER |
343 typedef VarianceTest<vp9_variance_fn_t> VP9VarianceTest; | 362 typedef VarianceTest<vp9_variance_fn_t> VP9VarianceTest; |
344 typedef SubpelVarianceTest<vp9_subpixvariance_fn_t> VP9SubpelVarianceTest; | 363 typedef SubpelVarianceTest<vp9_subpixvariance_fn_t> VP9SubpelVarianceTest; |
345 typedef SubpelVarianceTest<vp9_subp_avg_variance_fn_t> VP9SubpelAvgVarianceTest; | 364 typedef SubpelVarianceTest<vp9_subp_avg_variance_fn_t> VP9SubpelAvgVarianceTest; |
346 | 365 |
347 TEST_P(VP9VarianceTest, Zero) { ZeroTest(); } | 366 TEST_P(VP9VarianceTest, Zero) { ZeroTest(); } |
348 TEST_P(VP9VarianceTest, Ref) { RefTest(); } | 367 TEST_P(VP9VarianceTest, Ref) { RefTest(); } |
349 TEST_P(VP9SubpelVarianceTest, Ref) { RefTest(); } | 368 TEST_P(VP9SubpelVarianceTest, Ref) { RefTest(); } |
350 TEST_P(VP9SubpelAvgVarianceTest, Ref) { RefTest(); } | 369 TEST_P(VP9SubpelAvgVarianceTest, Ref) { RefTest(); } |
351 TEST_P(VP9VarianceTest, OneQuarter) { OneQuarterTest(); } | 370 TEST_P(VP9VarianceTest, OneQuarter) { OneQuarterTest(); } |
352 | 371 |
| 372 const vp9_variance_fn_t variance4x4_c = vp9_variance4x4_c; |
| 373 const vp9_variance_fn_t variance4x8_c = vp9_variance4x8_c; |
| 374 const vp9_variance_fn_t variance8x4_c = vp9_variance8x4_c; |
| 375 const vp9_variance_fn_t variance8x8_c = vp9_variance8x8_c; |
| 376 const vp9_variance_fn_t variance8x16_c = vp9_variance8x16_c; |
| 377 const vp9_variance_fn_t variance16x8_c = vp9_variance16x8_c; |
| 378 const vp9_variance_fn_t variance16x16_c = vp9_variance16x16_c; |
| 379 const vp9_variance_fn_t variance16x32_c = vp9_variance16x32_c; |
| 380 const vp9_variance_fn_t variance32x16_c = vp9_variance32x16_c; |
| 381 const vp9_variance_fn_t variance32x32_c = vp9_variance32x32_c; |
| 382 const vp9_variance_fn_t variance32x64_c = vp9_variance32x64_c; |
| 383 const vp9_variance_fn_t variance64x32_c = vp9_variance64x32_c; |
| 384 const vp9_variance_fn_t variance64x64_c = vp9_variance64x64_c; |
353 INSTANTIATE_TEST_CASE_P( | 385 INSTANTIATE_TEST_CASE_P( |
354 C, VP9VarianceTest, | 386 C, VP9VarianceTest, |
355 ::testing::Values(make_tuple(2, 2, vp9_variance4x4_c), | 387 ::testing::Values(make_tuple(2, 2, variance4x4_c), |
356 make_tuple(2, 3, vp9_variance4x8_c), | 388 make_tuple(2, 3, variance4x8_c), |
357 make_tuple(3, 2, vp9_variance8x4_c), | 389 make_tuple(3, 2, variance8x4_c), |
358 make_tuple(3, 3, vp9_variance8x8_c), | 390 make_tuple(3, 3, variance8x8_c), |
359 make_tuple(3, 4, vp9_variance8x16_c), | 391 make_tuple(3, 4, variance8x16_c), |
360 make_tuple(4, 3, vp9_variance16x8_c), | 392 make_tuple(4, 3, variance16x8_c), |
361 make_tuple(4, 4, vp9_variance16x16_c), | 393 make_tuple(4, 4, variance16x16_c), |
362 make_tuple(4, 5, vp9_variance16x32_c), | 394 make_tuple(4, 5, variance16x32_c), |
363 make_tuple(5, 4, vp9_variance32x16_c), | 395 make_tuple(5, 4, variance32x16_c), |
364 make_tuple(5, 5, vp9_variance32x32_c), | 396 make_tuple(5, 5, variance32x32_c), |
365 make_tuple(5, 6, vp9_variance32x64_c), | 397 make_tuple(5, 6, variance32x64_c), |
366 make_tuple(6, 5, vp9_variance64x32_c), | 398 make_tuple(6, 5, variance64x32_c), |
367 make_tuple(6, 6, vp9_variance64x64_c))); | 399 make_tuple(6, 6, variance64x64_c))); |
368 | 400 |
| 401 const vp9_subpixvariance_fn_t subpel_variance4x4_c = |
| 402 vp9_sub_pixel_variance4x4_c; |
| 403 const vp9_subpixvariance_fn_t subpel_variance4x8_c = |
| 404 vp9_sub_pixel_variance4x8_c; |
| 405 const vp9_subpixvariance_fn_t subpel_variance8x4_c = |
| 406 vp9_sub_pixel_variance8x4_c; |
| 407 const vp9_subpixvariance_fn_t subpel_variance8x8_c = |
| 408 vp9_sub_pixel_variance8x8_c; |
| 409 const vp9_subpixvariance_fn_t subpel_variance8x16_c = |
| 410 vp9_sub_pixel_variance8x16_c; |
| 411 const vp9_subpixvariance_fn_t subpel_variance16x8_c = |
| 412 vp9_sub_pixel_variance16x8_c; |
| 413 const vp9_subpixvariance_fn_t subpel_variance16x16_c = |
| 414 vp9_sub_pixel_variance16x16_c; |
| 415 const vp9_subpixvariance_fn_t subpel_variance16x32_c = |
| 416 vp9_sub_pixel_variance16x32_c; |
| 417 const vp9_subpixvariance_fn_t subpel_variance32x16_c = |
| 418 vp9_sub_pixel_variance32x16_c; |
| 419 const vp9_subpixvariance_fn_t subpel_variance32x32_c = |
| 420 vp9_sub_pixel_variance32x32_c; |
| 421 const vp9_subpixvariance_fn_t subpel_variance32x64_c = |
| 422 vp9_sub_pixel_variance32x64_c; |
| 423 const vp9_subpixvariance_fn_t subpel_variance64x32_c = |
| 424 vp9_sub_pixel_variance64x32_c; |
| 425 const vp9_subpixvariance_fn_t subpel_variance64x64_c = |
| 426 vp9_sub_pixel_variance64x64_c; |
369 INSTANTIATE_TEST_CASE_P( | 427 INSTANTIATE_TEST_CASE_P( |
370 C, VP9SubpelVarianceTest, | 428 C, VP9SubpelVarianceTest, |
371 ::testing::Values(make_tuple(2, 2, vp9_sub_pixel_variance4x4_c), | 429 ::testing::Values(make_tuple(2, 2, subpel_variance4x4_c), |
372 make_tuple(2, 3, vp9_sub_pixel_variance4x8_c), | 430 make_tuple(2, 3, subpel_variance4x8_c), |
373 make_tuple(3, 2, vp9_sub_pixel_variance8x4_c), | 431 make_tuple(3, 2, subpel_variance8x4_c), |
374 make_tuple(3, 3, vp9_sub_pixel_variance8x8_c), | 432 make_tuple(3, 3, subpel_variance8x8_c), |
375 make_tuple(3, 4, vp9_sub_pixel_variance8x16_c), | 433 make_tuple(3, 4, subpel_variance8x16_c), |
376 make_tuple(4, 3, vp9_sub_pixel_variance16x8_c), | 434 make_tuple(4, 3, subpel_variance16x8_c), |
377 make_tuple(4, 4, vp9_sub_pixel_variance16x16_c), | 435 make_tuple(4, 4, subpel_variance16x16_c), |
378 make_tuple(4, 5, vp9_sub_pixel_variance16x32_c), | 436 make_tuple(4, 5, subpel_variance16x32_c), |
379 make_tuple(5, 4, vp9_sub_pixel_variance32x16_c), | 437 make_tuple(5, 4, subpel_variance32x16_c), |
380 make_tuple(5, 5, vp9_sub_pixel_variance32x32_c), | 438 make_tuple(5, 5, subpel_variance32x32_c), |
381 make_tuple(5, 6, vp9_sub_pixel_variance32x64_c), | 439 make_tuple(5, 6, subpel_variance32x64_c), |
382 make_tuple(6, 5, vp9_sub_pixel_variance64x32_c), | 440 make_tuple(6, 5, subpel_variance64x32_c), |
383 make_tuple(6, 6, vp9_sub_pixel_variance64x64_c))); | 441 make_tuple(6, 6, subpel_variance64x64_c))); |
384 | 442 |
| 443 const vp9_subp_avg_variance_fn_t subpel_avg_variance4x4_c = |
| 444 vp9_sub_pixel_avg_variance4x4_c; |
| 445 const vp9_subp_avg_variance_fn_t subpel_avg_variance4x8_c = |
| 446 vp9_sub_pixel_avg_variance4x8_c; |
| 447 const vp9_subp_avg_variance_fn_t subpel_avg_variance8x4_c = |
| 448 vp9_sub_pixel_avg_variance8x4_c; |
| 449 const vp9_subp_avg_variance_fn_t subpel_avg_variance8x8_c = |
| 450 vp9_sub_pixel_avg_variance8x8_c; |
| 451 const vp9_subp_avg_variance_fn_t subpel_avg_variance8x16_c = |
| 452 vp9_sub_pixel_avg_variance8x16_c; |
| 453 const vp9_subp_avg_variance_fn_t subpel_avg_variance16x8_c = |
| 454 vp9_sub_pixel_avg_variance16x8_c; |
| 455 const vp9_subp_avg_variance_fn_t subpel_avg_variance16x16_c = |
| 456 vp9_sub_pixel_avg_variance16x16_c; |
| 457 const vp9_subp_avg_variance_fn_t subpel_avg_variance16x32_c = |
| 458 vp9_sub_pixel_avg_variance16x32_c; |
| 459 const vp9_subp_avg_variance_fn_t subpel_avg_variance32x16_c = |
| 460 vp9_sub_pixel_avg_variance32x16_c; |
| 461 const vp9_subp_avg_variance_fn_t subpel_avg_variance32x32_c = |
| 462 vp9_sub_pixel_avg_variance32x32_c; |
| 463 const vp9_subp_avg_variance_fn_t subpel_avg_variance32x64_c = |
| 464 vp9_sub_pixel_avg_variance32x64_c; |
| 465 const vp9_subp_avg_variance_fn_t subpel_avg_variance64x32_c = |
| 466 vp9_sub_pixel_avg_variance64x32_c; |
| 467 const vp9_subp_avg_variance_fn_t subpel_avg_variance64x64_c = |
| 468 vp9_sub_pixel_avg_variance64x64_c; |
385 INSTANTIATE_TEST_CASE_P( | 469 INSTANTIATE_TEST_CASE_P( |
386 C, VP9SubpelAvgVarianceTest, | 470 C, VP9SubpelAvgVarianceTest, |
387 ::testing::Values(make_tuple(2, 2, vp9_sub_pixel_avg_variance4x4_c), | 471 ::testing::Values(make_tuple(2, 2, subpel_avg_variance4x4_c), |
388 make_tuple(2, 3, vp9_sub_pixel_avg_variance4x8_c), | 472 make_tuple(2, 3, subpel_avg_variance4x8_c), |
389 make_tuple(3, 2, vp9_sub_pixel_avg_variance8x4_c), | 473 make_tuple(3, 2, subpel_avg_variance8x4_c), |
390 make_tuple(3, 3, vp9_sub_pixel_avg_variance8x8_c), | 474 make_tuple(3, 3, subpel_avg_variance8x8_c), |
391 make_tuple(3, 4, vp9_sub_pixel_avg_variance8x16_c), | 475 make_tuple(3, 4, subpel_avg_variance8x16_c), |
392 make_tuple(4, 3, vp9_sub_pixel_avg_variance16x8_c), | 476 make_tuple(4, 3, subpel_avg_variance16x8_c), |
393 make_tuple(4, 4, vp9_sub_pixel_avg_variance16x16_c), | 477 make_tuple(4, 4, subpel_avg_variance16x16_c), |
394 make_tuple(4, 5, vp9_sub_pixel_avg_variance16x32_c), | 478 make_tuple(4, 5, subpel_avg_variance16x32_c), |
395 make_tuple(5, 4, vp9_sub_pixel_avg_variance32x16_c), | 479 make_tuple(5, 4, subpel_avg_variance32x16_c), |
396 make_tuple(5, 5, vp9_sub_pixel_avg_variance32x32_c), | 480 make_tuple(5, 5, subpel_avg_variance32x32_c), |
397 make_tuple(5, 6, vp9_sub_pixel_avg_variance32x64_c), | 481 make_tuple(5, 6, subpel_avg_variance32x64_c), |
398 make_tuple(6, 5, vp9_sub_pixel_avg_variance64x32_c), | 482 make_tuple(6, 5, subpel_avg_variance64x32_c), |
399 make_tuple(6, 6, vp9_sub_pixel_avg_variance64x64_c))); | 483 make_tuple(6, 6, subpel_avg_variance64x64_c))); |
400 | 484 |
401 #if HAVE_MMX | 485 #if HAVE_MMX |
| 486 const vp9_variance_fn_t variance4x4_mmx = vp9_variance4x4_mmx; |
| 487 const vp9_variance_fn_t variance8x8_mmx = vp9_variance8x8_mmx; |
| 488 const vp9_variance_fn_t variance8x16_mmx = vp9_variance8x16_mmx; |
| 489 const vp9_variance_fn_t variance16x8_mmx = vp9_variance16x8_mmx; |
| 490 const vp9_variance_fn_t variance16x16_mmx = vp9_variance16x16_mmx; |
402 INSTANTIATE_TEST_CASE_P( | 491 INSTANTIATE_TEST_CASE_P( |
403 MMX, VP9VarianceTest, | 492 MMX, VP9VarianceTest, |
404 ::testing::Values(make_tuple(2, 2, vp9_variance4x4_mmx), | 493 ::testing::Values(make_tuple(2, 2, variance4x4_mmx), |
405 make_tuple(3, 3, vp9_variance8x8_mmx), | 494 make_tuple(3, 3, variance8x8_mmx), |
406 make_tuple(3, 4, vp9_variance8x16_mmx), | 495 make_tuple(3, 4, variance8x16_mmx), |
407 make_tuple(4, 3, vp9_variance16x8_mmx), | 496 make_tuple(4, 3, variance16x8_mmx), |
408 make_tuple(4, 4, vp9_variance16x16_mmx))); | 497 make_tuple(4, 4, variance16x16_mmx))); |
409 #endif | 498 #endif |
410 | 499 |
411 #if HAVE_SSE2 | 500 #if HAVE_SSE2 |
412 #if CONFIG_USE_X86INC | 501 #if CONFIG_USE_X86INC |
| 502 const vp9_variance_fn_t variance4x4_sse2 = vp9_variance4x4_sse2; |
| 503 const vp9_variance_fn_t variance4x8_sse2 = vp9_variance4x8_sse2; |
| 504 const vp9_variance_fn_t variance8x4_sse2 = vp9_variance8x4_sse2; |
| 505 const vp9_variance_fn_t variance8x8_sse2 = vp9_variance8x8_sse2; |
| 506 const vp9_variance_fn_t variance8x16_sse2 = vp9_variance8x16_sse2; |
| 507 const vp9_variance_fn_t variance16x8_sse2 = vp9_variance16x8_sse2; |
| 508 const vp9_variance_fn_t variance16x16_sse2 = vp9_variance16x16_sse2; |
| 509 const vp9_variance_fn_t variance16x32_sse2 = vp9_variance16x32_sse2; |
| 510 const vp9_variance_fn_t variance32x16_sse2 = vp9_variance32x16_sse2; |
| 511 const vp9_variance_fn_t variance32x32_sse2 = vp9_variance32x32_sse2; |
| 512 const vp9_variance_fn_t variance32x64_sse2 = vp9_variance32x64_sse2; |
| 513 const vp9_variance_fn_t variance64x32_sse2 = vp9_variance64x32_sse2; |
| 514 const vp9_variance_fn_t variance64x64_sse2 = vp9_variance64x64_sse2; |
413 INSTANTIATE_TEST_CASE_P( | 515 INSTANTIATE_TEST_CASE_P( |
414 SSE2, VP9VarianceTest, | 516 SSE2, VP9VarianceTest, |
415 ::testing::Values(make_tuple(2, 2, vp9_variance4x4_sse2), | 517 ::testing::Values(make_tuple(2, 2, variance4x4_sse2), |
416 make_tuple(2, 3, vp9_variance4x8_sse2), | 518 make_tuple(2, 3, variance4x8_sse2), |
417 make_tuple(3, 2, vp9_variance8x4_sse2), | 519 make_tuple(3, 2, variance8x4_sse2), |
418 make_tuple(3, 3, vp9_variance8x8_sse2), | 520 make_tuple(3, 3, variance8x8_sse2), |
419 make_tuple(3, 4, vp9_variance8x16_sse2), | 521 make_tuple(3, 4, variance8x16_sse2), |
420 make_tuple(4, 3, vp9_variance16x8_sse2), | 522 make_tuple(4, 3, variance16x8_sse2), |
421 make_tuple(4, 4, vp9_variance16x16_sse2), | 523 make_tuple(4, 4, variance16x16_sse2), |
422 make_tuple(4, 5, vp9_variance16x32_sse2), | 524 make_tuple(4, 5, variance16x32_sse2), |
423 make_tuple(5, 4, vp9_variance32x16_sse2), | 525 make_tuple(5, 4, variance32x16_sse2), |
424 make_tuple(5, 5, vp9_variance32x32_sse2), | 526 make_tuple(5, 5, variance32x32_sse2), |
425 make_tuple(5, 6, vp9_variance32x64_sse2), | 527 make_tuple(5, 6, variance32x64_sse2), |
426 make_tuple(6, 5, vp9_variance64x32_sse2), | 528 make_tuple(6, 5, variance64x32_sse2), |
427 make_tuple(6, 6, vp9_variance64x64_sse2))); | 529 make_tuple(6, 6, variance64x64_sse2))); |
428 | 530 |
| 531 const vp9_subpixvariance_fn_t subpel_variance4x4_sse = |
| 532 vp9_sub_pixel_variance4x4_sse; |
| 533 const vp9_subpixvariance_fn_t subpel_variance4x8_sse = |
| 534 vp9_sub_pixel_variance4x8_sse; |
| 535 const vp9_subpixvariance_fn_t subpel_variance8x4_sse2 = |
| 536 vp9_sub_pixel_variance8x4_sse2; |
| 537 const vp9_subpixvariance_fn_t subpel_variance8x8_sse2 = |
| 538 vp9_sub_pixel_variance8x8_sse2; |
| 539 const vp9_subpixvariance_fn_t subpel_variance8x16_sse2 = |
| 540 vp9_sub_pixel_variance8x16_sse2; |
| 541 const vp9_subpixvariance_fn_t subpel_variance16x8_sse2 = |
| 542 vp9_sub_pixel_variance16x8_sse2; |
| 543 const vp9_subpixvariance_fn_t subpel_variance16x16_sse2 = |
| 544 vp9_sub_pixel_variance16x16_sse2; |
| 545 const vp9_subpixvariance_fn_t subpel_variance16x32_sse2 = |
| 546 vp9_sub_pixel_variance16x32_sse2; |
| 547 const vp9_subpixvariance_fn_t subpel_variance32x16_sse2 = |
| 548 vp9_sub_pixel_variance32x16_sse2; |
| 549 const vp9_subpixvariance_fn_t subpel_variance32x32_sse2 = |
| 550 vp9_sub_pixel_variance32x32_sse2; |
| 551 const vp9_subpixvariance_fn_t subpel_variance32x64_sse2 = |
| 552 vp9_sub_pixel_variance32x64_sse2; |
| 553 const vp9_subpixvariance_fn_t subpel_variance64x32_sse2 = |
| 554 vp9_sub_pixel_variance64x32_sse2; |
| 555 const vp9_subpixvariance_fn_t subpel_variance64x64_sse2 = |
| 556 vp9_sub_pixel_variance64x64_sse2; |
429 INSTANTIATE_TEST_CASE_P( | 557 INSTANTIATE_TEST_CASE_P( |
430 SSE2, VP9SubpelVarianceTest, | 558 SSE2, VP9SubpelVarianceTest, |
431 ::testing::Values(make_tuple(2, 2, vp9_sub_pixel_variance4x4_sse), | 559 ::testing::Values(make_tuple(2, 2, subpel_variance4x4_sse), |
432 make_tuple(2, 3, vp9_sub_pixel_variance4x8_sse), | 560 make_tuple(2, 3, subpel_variance4x8_sse), |
433 make_tuple(3, 2, vp9_sub_pixel_variance8x4_sse2), | 561 make_tuple(3, 2, subpel_variance8x4_sse2), |
434 make_tuple(3, 3, vp9_sub_pixel_variance8x8_sse2), | 562 make_tuple(3, 3, subpel_variance8x8_sse2), |
435 make_tuple(3, 4, vp9_sub_pixel_variance8x16_sse2), | 563 make_tuple(3, 4, subpel_variance8x16_sse2), |
436 make_tuple(4, 3, vp9_sub_pixel_variance16x8_sse2), | 564 make_tuple(4, 3, subpel_variance16x8_sse2), |
437 make_tuple(4, 4, vp9_sub_pixel_variance16x16_sse2), | 565 make_tuple(4, 4, subpel_variance16x16_sse2), |
438 make_tuple(4, 5, vp9_sub_pixel_variance16x32_sse2), | 566 make_tuple(4, 5, subpel_variance16x32_sse2), |
439 make_tuple(5, 4, vp9_sub_pixel_variance32x16_sse2), | 567 make_tuple(5, 4, subpel_variance32x16_sse2), |
440 make_tuple(5, 5, vp9_sub_pixel_variance32x32_sse2), | 568 make_tuple(5, 5, subpel_variance32x32_sse2), |
441 make_tuple(5, 6, vp9_sub_pixel_variance32x64_sse2), | 569 make_tuple(5, 6, subpel_variance32x64_sse2), |
442 make_tuple(6, 5, vp9_sub_pixel_variance64x32_sse2), | 570 make_tuple(6, 5, subpel_variance64x32_sse2), |
443 make_tuple(6, 6, vp9_sub_pixel_variance64x64_sse2))); | 571 make_tuple(6, 6, subpel_variance64x64_sse2))); |
444 | 572 |
| 573 const vp9_subp_avg_variance_fn_t subpel_avg_variance4x4_sse = |
| 574 vp9_sub_pixel_avg_variance4x4_sse; |
| 575 const vp9_subp_avg_variance_fn_t subpel_avg_variance4x8_sse = |
| 576 vp9_sub_pixel_avg_variance4x8_sse; |
| 577 const vp9_subp_avg_variance_fn_t subpel_avg_variance8x4_sse2 = |
| 578 vp9_sub_pixel_avg_variance8x4_sse2; |
| 579 const vp9_subp_avg_variance_fn_t subpel_avg_variance8x8_sse2 = |
| 580 vp9_sub_pixel_avg_variance8x8_sse2; |
| 581 const vp9_subp_avg_variance_fn_t subpel_avg_variance8x16_sse2 = |
| 582 vp9_sub_pixel_avg_variance8x16_sse2; |
| 583 const vp9_subp_avg_variance_fn_t subpel_avg_variance16x8_sse2 = |
| 584 vp9_sub_pixel_avg_variance16x8_sse2; |
| 585 const vp9_subp_avg_variance_fn_t subpel_avg_variance16x16_sse2 = |
| 586 vp9_sub_pixel_avg_variance16x16_sse2; |
| 587 const vp9_subp_avg_variance_fn_t subpel_avg_variance16x32_sse2 = |
| 588 vp9_sub_pixel_avg_variance16x32_sse2; |
| 589 const vp9_subp_avg_variance_fn_t subpel_avg_variance32x16_sse2 = |
| 590 vp9_sub_pixel_avg_variance32x16_sse2; |
| 591 const vp9_subp_avg_variance_fn_t subpel_avg_variance32x32_sse2 = |
| 592 vp9_sub_pixel_avg_variance32x32_sse2; |
| 593 const vp9_subp_avg_variance_fn_t subpel_avg_variance32x64_sse2 = |
| 594 vp9_sub_pixel_avg_variance32x64_sse2; |
| 595 const vp9_subp_avg_variance_fn_t subpel_avg_variance64x32_sse2 = |
| 596 vp9_sub_pixel_avg_variance64x32_sse2; |
| 597 const vp9_subp_avg_variance_fn_t subpel_avg_variance64x64_sse2 = |
| 598 vp9_sub_pixel_avg_variance64x64_sse2; |
445 INSTANTIATE_TEST_CASE_P( | 599 INSTANTIATE_TEST_CASE_P( |
446 SSE2, VP9SubpelAvgVarianceTest, | 600 SSE2, VP9SubpelAvgVarianceTest, |
447 ::testing::Values(make_tuple(2, 2, vp9_sub_pixel_avg_variance4x4_sse), | 601 ::testing::Values(make_tuple(2, 2, subpel_avg_variance4x4_sse), |
448 make_tuple(2, 3, vp9_sub_pixel_avg_variance4x8_sse), | 602 make_tuple(2, 3, subpel_avg_variance4x8_sse), |
449 make_tuple(3, 2, vp9_sub_pixel_avg_variance8x4_sse2), | 603 make_tuple(3, 2, subpel_avg_variance8x4_sse2), |
450 make_tuple(3, 3, vp9_sub_pixel_avg_variance8x8_sse2), | 604 make_tuple(3, 3, subpel_avg_variance8x8_sse2), |
451 make_tuple(3, 4, vp9_sub_pixel_avg_variance8x16_sse2), | 605 make_tuple(3, 4, subpel_avg_variance8x16_sse2), |
452 make_tuple(4, 3, vp9_sub_pixel_avg_variance16x8_sse2), | 606 make_tuple(4, 3, subpel_avg_variance16x8_sse2), |
453 make_tuple(4, 4, vp9_sub_pixel_avg_variance16x16_sse2), | 607 make_tuple(4, 4, subpel_avg_variance16x16_sse2), |
454 make_tuple(4, 5, vp9_sub_pixel_avg_variance16x32_sse2), | 608 make_tuple(4, 5, subpel_avg_variance16x32_sse2), |
455 make_tuple(5, 4, vp9_sub_pixel_avg_variance32x16_sse2), | 609 make_tuple(5, 4, subpel_avg_variance32x16_sse2), |
456 make_tuple(5, 5, vp9_sub_pixel_avg_variance32x32_sse2), | 610 make_tuple(5, 5, subpel_avg_variance32x32_sse2), |
457 make_tuple(5, 6, vp9_sub_pixel_avg_variance32x64_sse2), | 611 make_tuple(5, 6, subpel_avg_variance32x64_sse2), |
458 make_tuple(6, 5, vp9_sub_pixel_avg_variance64x32_sse2), | 612 make_tuple(6, 5, subpel_avg_variance64x32_sse2), |
459 make_tuple(6, 6, vp9_sub_pixel_avg_variance64x64_sse2))); | 613 make_tuple(6, 6, subpel_avg_variance64x64_sse2))); |
460 #endif | 614 #endif |
461 #endif | 615 #endif |
462 | 616 |
463 #if HAVE_SSSE3 | 617 #if HAVE_SSSE3 |
464 #if CONFIG_USE_X86INC | 618 #if CONFIG_USE_X86INC |
465 | 619 |
| 620 const vp9_subpixvariance_fn_t subpel_variance4x4_ssse3 = |
| 621 vp9_sub_pixel_variance4x4_ssse3; |
| 622 const vp9_subpixvariance_fn_t subpel_variance4x8_ssse3 = |
| 623 vp9_sub_pixel_variance4x8_ssse3; |
| 624 const vp9_subpixvariance_fn_t subpel_variance8x4_ssse3 = |
| 625 vp9_sub_pixel_variance8x4_ssse3; |
| 626 const vp9_subpixvariance_fn_t subpel_variance8x8_ssse3 = |
| 627 vp9_sub_pixel_variance8x8_ssse3; |
| 628 const vp9_subpixvariance_fn_t subpel_variance8x16_ssse3 = |
| 629 vp9_sub_pixel_variance8x16_ssse3; |
| 630 const vp9_subpixvariance_fn_t subpel_variance16x8_ssse3 = |
| 631 vp9_sub_pixel_variance16x8_ssse3; |
| 632 const vp9_subpixvariance_fn_t subpel_variance16x16_ssse3 = |
| 633 vp9_sub_pixel_variance16x16_ssse3; |
| 634 const vp9_subpixvariance_fn_t subpel_variance16x32_ssse3 = |
| 635 vp9_sub_pixel_variance16x32_ssse3; |
| 636 const vp9_subpixvariance_fn_t subpel_variance32x16_ssse3 = |
| 637 vp9_sub_pixel_variance32x16_ssse3; |
| 638 const vp9_subpixvariance_fn_t subpel_variance32x32_ssse3 = |
| 639 vp9_sub_pixel_variance32x32_ssse3; |
| 640 const vp9_subpixvariance_fn_t subpel_variance32x64_ssse3 = |
| 641 vp9_sub_pixel_variance32x64_ssse3; |
| 642 const vp9_subpixvariance_fn_t subpel_variance64x32_ssse3 = |
| 643 vp9_sub_pixel_variance64x32_ssse3; |
| 644 const vp9_subpixvariance_fn_t subpel_variance64x64_ssse3 = |
| 645 vp9_sub_pixel_variance64x64_ssse3; |
466 INSTANTIATE_TEST_CASE_P( | 646 INSTANTIATE_TEST_CASE_P( |
467 SSSE3, VP9SubpelVarianceTest, | 647 SSSE3, VP9SubpelVarianceTest, |
468 ::testing::Values(make_tuple(2, 2, vp9_sub_pixel_variance4x4_ssse3), | 648 ::testing::Values(make_tuple(2, 2, subpel_variance4x4_ssse3), |
469 make_tuple(2, 3, vp9_sub_pixel_variance4x8_ssse3), | 649 make_tuple(2, 3, subpel_variance4x8_ssse3), |
470 make_tuple(3, 2, vp9_sub_pixel_variance8x4_ssse3), | 650 make_tuple(3, 2, subpel_variance8x4_ssse3), |
471 make_tuple(3, 3, vp9_sub_pixel_variance8x8_ssse3), | 651 make_tuple(3, 3, subpel_variance8x8_ssse3), |
472 make_tuple(3, 4, vp9_sub_pixel_variance8x16_ssse3), | 652 make_tuple(3, 4, subpel_variance8x16_ssse3), |
473 make_tuple(4, 3, vp9_sub_pixel_variance16x8_ssse3), | 653 make_tuple(4, 3, subpel_variance16x8_ssse3), |
474 make_tuple(4, 4, vp9_sub_pixel_variance16x16_ssse3), | 654 make_tuple(4, 4, subpel_variance16x16_ssse3), |
475 make_tuple(4, 5, vp9_sub_pixel_variance16x32_ssse3), | 655 make_tuple(4, 5, subpel_variance16x32_ssse3), |
476 make_tuple(5, 4, vp9_sub_pixel_variance32x16_ssse3), | 656 make_tuple(5, 4, subpel_variance32x16_ssse3), |
477 make_tuple(5, 5, vp9_sub_pixel_variance32x32_ssse3), | 657 make_tuple(5, 5, subpel_variance32x32_ssse3), |
478 make_tuple(5, 6, vp9_sub_pixel_variance32x64_ssse3), | 658 make_tuple(5, 6, subpel_variance32x64_ssse3), |
479 make_tuple(6, 5, vp9_sub_pixel_variance64x32_ssse3), | 659 make_tuple(6, 5, subpel_variance64x32_ssse3), |
480 make_tuple(6, 6, vp9_sub_pixel_variance64x64_ssse3))); | 660 make_tuple(6, 6, subpel_variance64x64_ssse3))); |
481 | 661 |
| 662 const vp9_subp_avg_variance_fn_t subpel_avg_variance4x4_ssse3 = |
| 663 vp9_sub_pixel_avg_variance4x4_ssse3; |
| 664 const vp9_subp_avg_variance_fn_t subpel_avg_variance4x8_ssse3 = |
| 665 vp9_sub_pixel_avg_variance4x8_ssse3; |
| 666 const vp9_subp_avg_variance_fn_t subpel_avg_variance8x4_ssse3 = |
| 667 vp9_sub_pixel_avg_variance8x4_ssse3; |
| 668 const vp9_subp_avg_variance_fn_t subpel_avg_variance8x8_ssse3 = |
| 669 vp9_sub_pixel_avg_variance8x8_ssse3; |
| 670 const vp9_subp_avg_variance_fn_t subpel_avg_variance8x16_ssse3 = |
| 671 vp9_sub_pixel_avg_variance8x16_ssse3; |
| 672 const vp9_subp_avg_variance_fn_t subpel_avg_variance16x8_ssse3 = |
| 673 vp9_sub_pixel_avg_variance16x8_ssse3; |
| 674 const vp9_subp_avg_variance_fn_t subpel_avg_variance16x16_ssse3 = |
| 675 vp9_sub_pixel_avg_variance16x16_ssse3; |
| 676 const vp9_subp_avg_variance_fn_t subpel_avg_variance16x32_ssse3 = |
| 677 vp9_sub_pixel_avg_variance16x32_ssse3; |
| 678 const vp9_subp_avg_variance_fn_t subpel_avg_variance32x16_ssse3 = |
| 679 vp9_sub_pixel_avg_variance32x16_ssse3; |
| 680 const vp9_subp_avg_variance_fn_t subpel_avg_variance32x32_ssse3 = |
| 681 vp9_sub_pixel_avg_variance32x32_ssse3; |
| 682 const vp9_subp_avg_variance_fn_t subpel_avg_variance32x64_ssse3 = |
| 683 vp9_sub_pixel_avg_variance32x64_ssse3; |
| 684 const vp9_subp_avg_variance_fn_t subpel_avg_variance64x32_ssse3 = |
| 685 vp9_sub_pixel_avg_variance64x32_ssse3; |
| 686 const vp9_subp_avg_variance_fn_t subpel_avg_variance64x64_ssse3 = |
| 687 vp9_sub_pixel_avg_variance64x64_ssse3; |
482 INSTANTIATE_TEST_CASE_P( | 688 INSTANTIATE_TEST_CASE_P( |
483 SSSE3, VP9SubpelAvgVarianceTest, | 689 SSSE3, VP9SubpelAvgVarianceTest, |
484 ::testing::Values(make_tuple(2, 2, vp9_sub_pixel_avg_variance4x4_ssse3), | 690 ::testing::Values(make_tuple(2, 2, subpel_avg_variance4x4_ssse3), |
485 make_tuple(2, 3, vp9_sub_pixel_avg_variance4x8_ssse3), | 691 make_tuple(2, 3, subpel_avg_variance4x8_ssse3), |
486 make_tuple(3, 2, vp9_sub_pixel_avg_variance8x4_ssse3), | 692 make_tuple(3, 2, subpel_avg_variance8x4_ssse3), |
487 make_tuple(3, 3, vp9_sub_pixel_avg_variance8x8_ssse3), | 693 make_tuple(3, 3, subpel_avg_variance8x8_ssse3), |
488 make_tuple(3, 4, vp9_sub_pixel_avg_variance8x16_ssse3), | 694 make_tuple(3, 4, subpel_avg_variance8x16_ssse3), |
489 make_tuple(4, 3, vp9_sub_pixel_avg_variance16x8_ssse3), | 695 make_tuple(4, 3, subpel_avg_variance16x8_ssse3), |
490 make_tuple(4, 4, vp9_sub_pixel_avg_variance16x16_ssse3), | 696 make_tuple(4, 4, subpel_avg_variance16x16_ssse3), |
491 make_tuple(4, 5, vp9_sub_pixel_avg_variance16x32_ssse3), | 697 make_tuple(4, 5, subpel_avg_variance16x32_ssse3), |
492 make_tuple(5, 4, vp9_sub_pixel_avg_variance32x16_ssse3), | 698 make_tuple(5, 4, subpel_avg_variance32x16_ssse3), |
493 make_tuple(5, 5, vp9_sub_pixel_avg_variance32x32_ssse3), | 699 make_tuple(5, 5, subpel_avg_variance32x32_ssse3), |
494 make_tuple(5, 6, vp9_sub_pixel_avg_variance32x64_ssse3), | 700 make_tuple(5, 6, subpel_avg_variance32x64_ssse3), |
495 make_tuple(6, 5, vp9_sub_pixel_avg_variance64x32_ssse3), | 701 make_tuple(6, 5, subpel_avg_variance64x32_ssse3), |
496 make_tuple(6, 6, vp9_sub_pixel_avg_variance64x64_ssse3))); | 702 make_tuple(6, 6, subpel_avg_variance64x64_ssse3))); |
497 #endif | 703 #endif |
498 #endif | 704 #endif |
499 #endif // CONFIG_VP9_ENCODER | 705 #endif // CONFIG_VP9_ENCODER |
500 | 706 |
501 } // namespace vp9 | 707 } // namespace vp9 |
502 | 708 |
503 } // namespace | 709 } // namespace |
OLD | NEW |