| 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 |