Skip to content

Add a drop_frame flag to Dav1dData

Michael Bradshaw requested to merge mjbshaw/dav1d:drop_frame into master

This is intended to speed up seeking. For 1-frame thread, this is only helpful if the video has film grain. For multiple frame threads, this helps regardless of whether or not film grain is present (though it should help even more if film grain is present).

Below is testing dav1d on Chimera-AV1-8bit-1280x720-3363kbps.ivf (which doesn't have film grain, I believe) on an iMac Pro (Intel Xeon W @ 2.3 GHz with 18 cores; obviously underutilized):

                     | Frame threads | Tile threads | Decode time
=====================+===============+==============+============
without --dropframes | 1             | 1            | 81.59
with    --dropframes | 1             | 1            | 80.79
---------------------+---------------+--------------+------------
without --dropframes | 1             | 2            | 39.82
with    --dropframes | 1             | 2            | 40.32
---------------------+---------------+--------------+------------
without --dropframes | 2             | 1            | 57.93
with    --dropframes | 2             | 1            | 48.97
---------------------+---------------+--------------+------------
without --dropframes | 2             | 2            | 35.52
with    --dropframes | 2             | 2            | 28.89

Command used:

/usr/bin/time -lp ./build/tools/dav1d --quiet --input ~/Downloads/Chimera-AV1-8bit-1280x720-3363kbps.ivf --output /tmp/z.null --framethreads F --tilethreads T

I ran the benchmark a few times and timings were fairly consistent (+/- 1 second).

Merge request reports