diff options
author | xufuji456 <839789740@qq.com> | 2023-04-13 14:46:43 +0800 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2023-04-13 15:17:04 +0300 |
commit | 30def6365d24eb2052d9072d15e024c498478c03 (patch) | |
tree | 79286d693833177a8da44315343de5205992188a /tests | |
parent | 1179bb703e35543e15401f05a4cc81cc389756ba (diff) | |
download | ffmpeg-30def6365d24eb2052d9072d15e024c498478c03.tar.gz |
checkasm/hevc: add transform_luma test
Signed-off-by: xufuji456 <839789740@qq.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/checkasm/hevc_idct.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/checkasm/hevc_idct.c b/tests/checkasm/hevc_idct.c index 338b8a23e4..446d69f931 100644 --- a/tests/checkasm/hevc_idct.c +++ b/tests/checkasm/hevc_idct.c @@ -84,6 +84,27 @@ static void check_idct_dc(HEVCDSPContext h, int bit_depth) } } +static void check_transform_luma(HEVCDSPContext *h, int bit_depth) +{ + LOCAL_ALIGNED(32, int16_t, coeffs0, [32 * 32]); + LOCAL_ALIGNED(32, int16_t, coeffs1, [32 * 32]); + + int block_size = 4; + int size = block_size * block_size; + declare_func_emms(AV_CPU_FLAG_MMXEXT, void, int16_t *coeffs); + + randomize_buffers(coeffs0, size); + memcpy(coeffs1, coeffs0, sizeof(*coeffs0) * size); + + if (check_func(h->transform_4x4_luma, "hevc_transform_luma_4x4_%d", bit_depth)) { + call_ref(coeffs0); + call_new(coeffs1); + if (memcmp(coeffs0, coeffs1, sizeof(*coeffs0) * size)) + fail(); + bench_new(coeffs1); + } +} + void checkasm_check_hevc_idct(void) { int bit_depth; @@ -103,4 +124,12 @@ void checkasm_check_hevc_idct(void) check_idct(h, bit_depth); } report("idct"); + + for (bit_depth = 8; bit_depth <= 12; bit_depth += 2) { + HEVCDSPContext h; + + ff_hevc_dsp_init(&h, bit_depth); + check_transform_luma(&h, bit_depth); + } + report("transform_luma"); } |