mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-09 16:57:30 +09:00
Update aom to v1.0.0
Update aom to commit id d14c5bb4f336ef1842046089849dee4a301fbbf0.
This commit is contained in:
parent
bb61121b44
commit
48f6d2e034
1087 changed files with 154333 additions and 265310 deletions
164
third_party/aom/test/intrapred_test.cc
vendored
164
third_party/aom/test/intrapred_test.cc
vendored
|
|
@ -7,19 +7,21 @@
|
|||
* obtain it at www.aomedia.org/license/software. If the Alliance for Open
|
||||
* Media Patent License 1.0 was not distributed with this source code in the
|
||||
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
|
||||
*/
|
||||
*/
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "third_party/googletest/src/googletest/include/gtest/gtest.h"
|
||||
|
||||
#include "./aom_config.h"
|
||||
#include "./aom_dsp_rtcd.h"
|
||||
#include "config/aom_config.h"
|
||||
#include "config/aom_dsp_rtcd.h"
|
||||
|
||||
#include "test/acm_random.h"
|
||||
#include "test/clear_system_state.h"
|
||||
#include "test/register_state_check.h"
|
||||
#include "test/util.h"
|
||||
#include "av1/common/blockd.h"
|
||||
#include "av1/common/common.h"
|
||||
#include "av1/common/pred_common.h"
|
||||
#include "aom_mem/aom_mem.h"
|
||||
|
||||
|
|
@ -139,33 +141,42 @@ class LowbdIntraPredTest : public AV1IntraPredTest<IntraPred, uint8_t> {
|
|||
}
|
||||
};
|
||||
|
||||
// Suppress an unitialized warning. Once there are implementations to test then
|
||||
// this can be restored.
|
||||
TEST_P(HighbdIntraPredTest, Bitexact) {
|
||||
// max block size is 32
|
||||
DECLARE_ALIGNED(16, uint16_t, left_col[2 * 32]);
|
||||
DECLARE_ALIGNED(16, uint16_t, above_data[2 * 32 + 32]);
|
||||
DECLARE_ALIGNED(16, uint16_t, dst[3 * 32 * 32]);
|
||||
DECLARE_ALIGNED(16, uint16_t, ref_dst[3 * 32 * 32]);
|
||||
// max block size is 64
|
||||
DECLARE_ALIGNED(16, uint16_t, left_col[2 * 64]);
|
||||
DECLARE_ALIGNED(16, uint16_t, above_data[2 * 64 + 64]);
|
||||
DECLARE_ALIGNED(16, uint16_t, dst[3 * 64 * 64]);
|
||||
DECLARE_ALIGNED(16, uint16_t, ref_dst[3 * 64 * 64]);
|
||||
av1_zero(left_col);
|
||||
av1_zero(above_data);
|
||||
RunTest(left_col, above_data, dst, ref_dst);
|
||||
}
|
||||
|
||||
// Same issue as above but for arm.
|
||||
#if !HAVE_NEON
|
||||
TEST_P(LowbdIntraPredTest, Bitexact) {
|
||||
// max block size is 32
|
||||
DECLARE_ALIGNED(16, uint8_t, left_col[2 * 32]);
|
||||
DECLARE_ALIGNED(16, uint8_t, above_data[2 * 32 + 32]);
|
||||
DECLARE_ALIGNED(16, uint8_t, dst[3 * 32 * 32]);
|
||||
DECLARE_ALIGNED(16, uint8_t, ref_dst[3 * 32 * 32]);
|
||||
av1_zero(left_col);
|
||||
av1_zero(above_data);
|
||||
RunTest(left_col, above_data, dst, ref_dst);
|
||||
}
|
||||
#endif // !HAVE_NEON
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// High Bit Depth Tests
|
||||
|
||||
#define highbd_entry(type, width, height, opt, bd) \
|
||||
IntraPredFunc<HighbdIntraPred>( \
|
||||
&aom_highbd_##type##_predictor_##width##x##height##_##opt, \
|
||||
&aom_highbd_##type##_predictor_##width##x##height##_c, width, height, \
|
||||
bd)
|
||||
|
||||
#if 0
|
||||
#define highbd_intrapred(type, opt, bd) \
|
||||
highbd_entry(type, 4, 4, opt, bd), highbd_entry(type, 4, 8, opt, bd), \
|
||||
highbd_entry(type, 8, 4, opt, bd), highbd_entry(type, 8, 8, opt, bd), \
|
||||
|
|
@ -173,111 +184,10 @@ TEST_P(LowbdIntraPredTest, Bitexact) {
|
|||
highbd_entry(type, 16, 16, opt, bd), \
|
||||
highbd_entry(type, 16, 32, opt, bd), \
|
||||
highbd_entry(type, 32, 16, opt, bd), highbd_entry(type, 32, 32, opt, bd)
|
||||
#endif
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
#if HAVE_SSE2
|
||||
const IntraPredFunc<HighbdIntraPred> IntraPredTestVector8[] = {
|
||||
highbd_intrapred(dc, sse2, 8), highbd_intrapred(dc_left, sse2, 8),
|
||||
highbd_intrapred(dc_top, sse2, 8), highbd_intrapred(dc_128, sse2, 8),
|
||||
highbd_intrapred(h, sse2, 8), highbd_intrapred(v, sse2, 8),
|
||||
highbd_entry(d117, 4, 4, sse2, 8), highbd_entry(d135, 4, 4, sse2, 8),
|
||||
highbd_entry(d153, 4, 4, sse2, 8), highbd_entry(d45e, 4, 4, sse2, 8),
|
||||
highbd_entry(d45e, 4, 8, sse2, 8), highbd_entry(d45e, 8, 4, sse2, 8),
|
||||
highbd_entry(d45e, 8, 8, sse2, 8), highbd_entry(d45e, 8, 16, sse2, 8),
|
||||
};
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(SSE2_TO_C_8, HighbdIntraPredTest,
|
||||
::testing::ValuesIn(IntraPredTestVector8));
|
||||
|
||||
const IntraPredFunc<HighbdIntraPred> IntraPredTestVector10[] = {
|
||||
highbd_intrapred(dc, sse2, 10), highbd_intrapred(dc_left, sse2, 10),
|
||||
highbd_intrapred(dc_top, sse2, 10), highbd_intrapred(dc_128, sse2, 10),
|
||||
highbd_intrapred(h, sse2, 10), highbd_intrapred(v, sse2, 10),
|
||||
highbd_entry(d117, 4, 4, sse2, 10), highbd_entry(d135, 4, 4, sse2, 10),
|
||||
highbd_entry(d153, 4, 4, sse2, 10), highbd_entry(d45e, 4, 4, sse2, 10),
|
||||
highbd_entry(d45e, 4, 8, sse2, 10), highbd_entry(d45e, 8, 4, sse2, 10),
|
||||
highbd_entry(d45e, 8, 8, sse2, 10), highbd_entry(d45e, 8, 16, sse2, 10),
|
||||
};
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(SSE2_TO_C_10, HighbdIntraPredTest,
|
||||
::testing::ValuesIn(IntraPredTestVector10));
|
||||
|
||||
const IntraPredFunc<HighbdIntraPred> IntraPredTestVector12[] = {
|
||||
highbd_intrapred(dc, sse2, 12), highbd_intrapred(dc_left, sse2, 12),
|
||||
highbd_intrapred(dc_top, sse2, 12), highbd_intrapred(dc_128, sse2, 12),
|
||||
highbd_intrapred(h, sse2, 12), highbd_intrapred(v, sse2, 12),
|
||||
highbd_entry(d117, 4, 4, sse2, 12), highbd_entry(d135, 4, 4, sse2, 12),
|
||||
highbd_entry(d153, 4, 4, sse2, 12), highbd_entry(d45e, 4, 4, sse2, 12),
|
||||
highbd_entry(d45e, 4, 8, sse2, 12), highbd_entry(d45e, 8, 4, sse2, 12),
|
||||
highbd_entry(d45e, 8, 8, sse2, 12), highbd_entry(d45e, 8, 16, sse2, 12),
|
||||
};
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(SSE2_TO_C_12, HighbdIntraPredTest,
|
||||
::testing::ValuesIn(IntraPredTestVector12));
|
||||
|
||||
#endif // HAVE_SSE2
|
||||
|
||||
#if HAVE_SSSE3
|
||||
const IntraPredFunc<HighbdIntraPred> IntraPredTestVectorSsse3_8[] = {
|
||||
highbd_entry(d117, 8, 8, ssse3, 8), highbd_entry(d117, 16, 16, ssse3, 8),
|
||||
highbd_entry(d117, 32, 32, ssse3, 8), highbd_entry(d135, 8, 8, ssse3, 8),
|
||||
highbd_entry(d135, 16, 16, ssse3, 8), highbd_entry(d135, 32, 32, ssse3, 8),
|
||||
highbd_entry(d153, 8, 8, ssse3, 8), highbd_entry(d153, 16, 16, ssse3, 8),
|
||||
highbd_entry(d153, 32, 32, ssse3, 8),
|
||||
};
|
||||
INSTANTIATE_TEST_CASE_P(SSSE3_TO_C_8, HighbdIntraPredTest,
|
||||
::testing::ValuesIn(IntraPredTestVectorSsse3_8));
|
||||
|
||||
const IntraPredFunc<HighbdIntraPred> IntraPredTestVectorSsse3_10[] = {
|
||||
highbd_entry(d117, 8, 8, ssse3, 10), highbd_entry(d117, 16, 16, ssse3, 10),
|
||||
highbd_entry(d117, 32, 32, ssse3, 10), highbd_entry(d135, 8, 8, ssse3, 10),
|
||||
highbd_entry(d135, 16, 16, ssse3, 10), highbd_entry(d135, 32, 32, ssse3, 10),
|
||||
highbd_entry(d153, 8, 8, ssse3, 10), highbd_entry(d153, 16, 16, ssse3, 10),
|
||||
highbd_entry(d153, 32, 32, ssse3, 10),
|
||||
};
|
||||
INSTANTIATE_TEST_CASE_P(SSSE3_TO_C_10, HighbdIntraPredTest,
|
||||
::testing::ValuesIn(IntraPredTestVectorSsse3_10));
|
||||
|
||||
const IntraPredFunc<HighbdIntraPred> IntraPredTestVectorSsse3_12[] = {
|
||||
highbd_entry(d117, 8, 8, ssse3, 12), highbd_entry(d117, 16, 16, ssse3, 12),
|
||||
highbd_entry(d117, 32, 32, ssse3, 12), highbd_entry(d135, 8, 8, ssse3, 12),
|
||||
highbd_entry(d135, 16, 16, ssse3, 12), highbd_entry(d135, 32, 32, ssse3, 12),
|
||||
highbd_entry(d153, 8, 8, ssse3, 12), highbd_entry(d153, 16, 16, ssse3, 12),
|
||||
highbd_entry(d153, 32, 32, ssse3, 12),
|
||||
};
|
||||
INSTANTIATE_TEST_CASE_P(SSSE3_TO_C_12, HighbdIntraPredTest,
|
||||
::testing::ValuesIn(IntraPredTestVectorSsse3_12));
|
||||
#endif // HAVE_SSSE3
|
||||
|
||||
#if HAVE_AVX2
|
||||
const IntraPredFunc<HighbdIntraPred> IntraPredTestVectorAvx2_8[] = {
|
||||
highbd_entry(d45e, 16, 8, avx2, 8), highbd_entry(d45e, 16, 16, avx2, 8),
|
||||
highbd_entry(d45e, 16, 32, avx2, 8), highbd_entry(d45e, 32, 16, avx2, 8),
|
||||
highbd_entry(d45e, 32, 32, avx2, 8),
|
||||
};
|
||||
INSTANTIATE_TEST_CASE_P(AVX2_TO_C_8, HighbdIntraPredTest,
|
||||
::testing::ValuesIn(IntraPredTestVectorAvx2_8));
|
||||
|
||||
const IntraPredFunc<HighbdIntraPred> IntraPredTestVectorAvx2_10[] = {
|
||||
highbd_entry(d45e, 16, 8, avx2, 10), highbd_entry(d45e, 16, 16, avx2, 10),
|
||||
highbd_entry(d45e, 16, 32, avx2, 10), highbd_entry(d45e, 32, 16, avx2, 10),
|
||||
highbd_entry(d45e, 32, 32, avx2, 10),
|
||||
};
|
||||
INSTANTIATE_TEST_CASE_P(AVX2_TO_C_10, HighbdIntraPredTest,
|
||||
::testing::ValuesIn(IntraPredTestVectorAvx2_10));
|
||||
|
||||
const IntraPredFunc<HighbdIntraPred> IntraPredTestVectorAvx2_12[] = {
|
||||
highbd_entry(d45e, 16, 8, avx2, 12), highbd_entry(d45e, 16, 16, avx2, 12),
|
||||
highbd_entry(d45e, 16, 32, avx2, 12), highbd_entry(d45e, 32, 16, avx2, 12),
|
||||
highbd_entry(d45e, 32, 32, avx2, 12),
|
||||
};
|
||||
INSTANTIATE_TEST_CASE_P(AVX2_TO_C_12, HighbdIntraPredTest,
|
||||
::testing::ValuesIn(IntraPredTestVectorAvx2_12));
|
||||
#endif // HAVE_AVX2
|
||||
#endif // CONFIG_HIGHBITDEPTH
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Low Bit Depth Tests
|
||||
// ---------------------------------------------------------------------------
|
||||
// Low Bit Depth Tests
|
||||
|
||||
#define lowbd_entry(type, width, height, opt) \
|
||||
IntraPredFunc<IntraPred>(&aom_##type##_predictor_##width##x##height##_##opt, \
|
||||
|
|
@ -303,6 +213,17 @@ INSTANTIATE_TEST_CASE_P(SSE2, LowbdIntraPredTest,
|
|||
|
||||
#endif // HAVE_SSE2
|
||||
|
||||
#if HAVE_SSSE3
|
||||
const IntraPredFunc<IntraPred> LowbdIntraPredTestVectorSsse3[] = {
|
||||
lowbd_intrapred(paeth, ssse3),
|
||||
lowbd_intrapred(smooth, ssse3),
|
||||
};
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(SSSE3, LowbdIntraPredTest,
|
||||
::testing::ValuesIn(LowbdIntraPredTestVectorSsse3));
|
||||
|
||||
#endif // HAVE_SSSE3
|
||||
|
||||
#if HAVE_AVX2
|
||||
const IntraPredFunc<IntraPred> LowbdIntraPredTestVectorAvx2[] = {
|
||||
lowbd_entry(dc, 32, 32, avx2), lowbd_entry(dc_top, 32, 32, avx2),
|
||||
|
|
@ -318,16 +239,17 @@ const IntraPredFunc<IntraPred> LowbdIntraPredTestVectorAvx2[] = {
|
|||
INSTANTIATE_TEST_CASE_P(AVX2, LowbdIntraPredTest,
|
||||
::testing::ValuesIn(LowbdIntraPredTestVectorAvx2));
|
||||
|
||||
#endif // HAVE_SSE2
|
||||
#endif // HAVE_AVX2
|
||||
|
||||
#if HAVE_SSSE3
|
||||
const IntraPredFunc<IntraPred> LowbdIntraPredTestVectorSsse3[] = {
|
||||
lowbd_intrapred(paeth, ssse3), lowbd_intrapred(smooth, ssse3),
|
||||
#if HAVE_NEON
|
||||
const IntraPredFunc<HighbdIntraPred> HighbdIntraPredTestVectorNeon[] = {
|
||||
highbd_entry(dc, 4, 4, neon, 8), highbd_entry(dc, 8, 8, neon, 8),
|
||||
highbd_entry(dc, 16, 16, neon, 8), highbd_entry(dc, 32, 32, neon, 8),
|
||||
highbd_entry(dc, 64, 64, neon, 8),
|
||||
};
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(SSSE3, LowbdIntraPredTest,
|
||||
::testing::ValuesIn(LowbdIntraPredTestVectorSsse3));
|
||||
|
||||
#endif // HAVE_SSSE3
|
||||
INSTANTIATE_TEST_CASE_P(NEON, HighbdIntraPredTest,
|
||||
::testing::ValuesIn(HighbdIntraPredTestVectorNeon));
|
||||
|
||||
#endif // HAVE_NEON
|
||||
} // namespace
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue