ffmpeg | branch: master | James Almer <jamr...@gmail.com> | Tue Apr 4 15:26:18 2017 -0300| [6747fc436e05c4005d0612a275c996c72b7c2736] | committer: James Almer
Merge commit 'effc1430b2fe5997d9d55bf28dc507c27125eb27' * commit 'effc1430b2fe5997d9d55bf28dc507c27125eb27': Revert "checkasm: vp9dsp: Benchmark the dc-only version of idct_idct separately" Merged-by: James Almer <jamr...@gmail.com> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6747fc436e05c4005d0612a275c996c72b7c2736 --- tests/checkasm/vp9dsp.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/checkasm/vp9dsp.c b/tests/checkasm/vp9dsp.c index 337ab21..a91577b 100644 --- a/tests/checkasm/vp9dsp.c +++ b/tests/checkasm/vp9dsp.c @@ -368,12 +368,6 @@ static void check_itxfm(void) bench_new(dst, sz * SIZEOF_PIXEL, coef, eob); } } - if (txtp == 0 && tx != 4) { - if (check_func(dsp.itxfm_add[tx][txtp], "vp9_inv_%s_%dx%d_dc_add_%d", - txtp_types[txtp], sz, sz, bit_depth)) { - bench_new(dst, sz * SIZEOF_PIXEL, coef, 1); - } - } } } } ====================================================================== diff --cc tests/checkasm/vp9dsp.c index 337ab21,690e0cf..a91577b --- a/tests/checkasm/vp9dsp.c +++ b/tests/checkasm/vp9dsp.c @@@ -323,57 -262,40 +323,51 @@@ static void check_itxfm(void [ADST_DCT] = "dct_adst", [ADST_ADST] = "adst_adst" }; - ff_vp9dsp_init(&dsp); - - for (tx = TX_4X4; tx <= N_TXFM_SIZES /* 4 = lossless */; tx++) { - int sz = 4 << (tx & 3); - int n_txtps = tx < TX_32X32 ? N_TXFM_TYPES : 1; - - for (txtp = 0; txtp < n_txtps; txtp++) { - if (check_func(dsp.itxfm_add[tx][txtp], "vp9_inv_%s_%dx%d_add", - tx == 4 ? "wht_wht" : txtp_types[txtp], sz, sz)) { - randomize_buffers(); - ftx(coef, tx, txtp, sz, BIT_DEPTH); - - for (sub = (txtp == 0) ? 1 : 2; sub <= sz; sub <<= 1) { - int eob; + for (bit_depth = 8; bit_depth <= 12; bit_depth += 2) { + ff_vp9dsp_init(&dsp, bit_depth, 0); + + for (tx = TX_4X4; tx <= N_TXFM_SIZES /* 4 = lossless */; tx++) { + int sz = 4 << (tx & 3); + int n_txtps = tx < TX_32X32 ? N_TXFM_TYPES : 1; + + for (txtp = 0; txtp < n_txtps; txtp++) { + // skip testing sub-IDCTs for WHT or ADST since they don't + // implement it in any of the SIMD functions. If they do, + // consider changing this to ensure we have complete test + // coverage. Test sub=1 for dc-only, then 2, 4, 8, 12, etc, + // since the arm version can distinguish them at that level. + for (sub = (txtp == 0 && tx < 4) ? 1 : sz; sub <= sz; + sub < 4 ? (sub <<= 1) : (sub += 4)) { + if (check_func(dsp.itxfm_add[tx][txtp], + "vp9_inv_%s_%dx%d_sub%d_add_%d", + tx == 4 ? "wht_wht" : txtp_types[txtp], + sz, sz, sub, bit_depth)) { + int eob; + + randomize_buffers(); + ftx(coef, tx, txtp, sz, bit_depth); + + if (sub < sz) { + eob = copy_subcoefs(subcoef0, coef, tx, txtp, + sz, sub, bit_depth); + } else { + eob = sz * sz; + memcpy(subcoef0, coef, sz * sz * SIZEOF_COEF); + } - if (sub < sz) { - eob = copy_subcoefs(subcoef0, coef, tx, txtp, - sz, sub, BIT_DEPTH); - } else { - eob = sz * sz; - memcpy(subcoef0, coef, sz * sz * SIZEOF_COEF); + memcpy(dst0, dst, sz * sz * SIZEOF_PIXEL); + memcpy(dst1, dst, sz * sz * SIZEOF_PIXEL); + memcpy(subcoef1, subcoef0, sz * sz * SIZEOF_COEF); + call_ref(dst0, sz * SIZEOF_PIXEL, subcoef0, eob); + call_new(dst1, sz * SIZEOF_PIXEL, subcoef1, eob); + if (memcmp(dst0, dst1, sz * sz * SIZEOF_PIXEL) || + !iszero(subcoef0, sz * sz * SIZEOF_COEF) || + !iszero(subcoef1, sz * sz * SIZEOF_COEF)) + fail(); + + bench_new(dst, sz * SIZEOF_PIXEL, coef, eob); } - - memcpy(dst0, dst, sz * sz * SIZEOF_PIXEL); - memcpy(dst1, dst, sz * sz * SIZEOF_PIXEL); - memcpy(subcoef1, subcoef0, sz * sz * SIZEOF_COEF); - call_ref(dst0, sz * SIZEOF_PIXEL, subcoef0, eob); - call_new(dst1, sz * SIZEOF_PIXEL, subcoef1, eob); - if (memcmp(dst0, dst1, sz * sz * SIZEOF_PIXEL) || - !iszero(subcoef0, sz * sz * SIZEOF_COEF) || - !iszero(subcoef1, sz * sz * SIZEOF_COEF)) - fail(); } - if (txtp == 0 && tx != 4) { - if (check_func(dsp.itxfm_add[tx][txtp], "vp9_inv_%s_%dx%d_dc_add_%d", - txtp_types[txtp], sz, sz, bit_depth)) { - bench_new(dst, sz * SIZEOF_PIXEL, coef, 1); - } - } - bench_new(dst, sz * SIZEOF_PIXEL, coef, sz * sz); } } } _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog