Hello,
I have been experimenting with various versions of libvpx, for VP9 encoding, and have come across an interesting behavior that I am attempting to fully understand.
The setup is pretty minimalist, with a 1-minute video being encoded at 1280x720. This is done via two-pass, with the following flags set: "-threads 8 -cpu-used 2 -tile-columns 3 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25", and running ffmpeg 5.1 on an 8-core i9 (16 HT) laptop.
The resulting encode time across versions is a bit surprising. When using libvpx v.1.7.0 it is roughly 0.7X, but if using libvpx v1.8.2 (or above, all the way to v1.12.0), that drops down to 0.35X (2x the encode time). Addition of the "row-mt" flag bumps libvpx v1.7.0 to near real-time (~0.95X), and sees a slight decrease in encode time for libvpx v1.8.2+ as well (but still well under the 0.7X of v1.7.0 without the flag).
Would there have been a change between libvpx v1.7.0 and v1.8.2 which explains the significant increase in encode time?