[FFmpeg-cvslog] checkasm/vp9: benchmark all sub-IDCTs (but not WHT or ADST).

Ronald S. Bultje git at videolan.org
Tue Dec 27 17:03:58 EET 2016


ffmpeg | branch: master | Ronald S. Bultje <rsbultje at gmail.com> | Thu Nov 17 16:08:20 2016 -0500| [1c8fbd7b90469f69fe3a3f78ba7886195d97c34f] | committer: Ronald S. Bultje

checkasm/vp9: benchmark all sub-IDCTs (but not WHT or ADST).

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1c8fbd7b90469f69fe3a3f78ba7886195d97c34f
---

 tests/checkasm/vp9dsp.c | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/tests/checkasm/vp9dsp.c b/tests/checkasm/vp9dsp.c
index 441041c..f32b97c 100644
--- a/tests/checkasm/vp9dsp.c
+++ b/tests/checkasm/vp9dsp.c
@@ -331,15 +331,20 @@ static void check_itxfm(void)
             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_%d",
-                               tx == 4 ? "wht_wht" : txtp_types[txtp], sz, sz,
-                               bit_depth)) {
-                    randomize_buffers();
-                    ftx(coef, tx, txtp, sz, bit_depth);
-
-                    for (sub = (txtp == 0) ? 1 : 2; sub <= sz; sub <<= 1) {
+                // 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
+                for (sub = (txtp == 0 && tx < 4) ? 1 : sz; sub <= sz; sub <<= 1) {
+                    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);
@@ -357,8 +362,9 @@ static void check_itxfm(void)
                             !iszero(subcoef0, sz * sz * SIZEOF_COEF) ||
                             !iszero(subcoef1, sz * sz * SIZEOF_COEF))
                             fail();
+
+                        bench_new(dst, sz * SIZEOF_PIXEL, coef, eob);
                     }
-                    bench_new(dst, sz * SIZEOF_PIXEL, coef, sz * sz);
                 }
             }
         }



More information about the ffmpeg-cvslog mailing list