Closed kornelski closed 10 months ago
We have plans already to do that, if you have spare cycles to run https://github.com/lu-zero/speed-levels-rs we'd use that to decide if we have room to retune the speedlevels.
For encoding of AVIF images I use my own presets: https://github.com/kornelski/cavif-rs/blob/main/ravif/src/av1encoder.rs#L466
and I have my own (not public yet) tool for judging speed/quality trade-offs across multiple codecs.
I've checked rav1e on M3 with these tools. The speedup affects all levels linearly, but the speed difference between the individual levels is much greater (exponential) for the speedup to make a difference. For example, my slowest test encoding dropped from 33s to 22s, but the next faster level dropped from 10s to 7s, so there's still no shift across the levels despite the big change.
I also didn't observe change in ranking relative to libavif. I see sometimes rav1e winning, sometimes libavif, but it depends much more on image content than just the speed preset (either one codec wins at every comparable speed, or the other wins at every speed). So the speed boost is probably not enough to overcome differences in other factors (feature set or maybe precision?)
https://crates.io/crates/rav1e/0.7.0 - Happy New Year One late change to try to make speed 0 less of an outlier: https://docs.rs/rav1e/0.7.0/rav1e/prelude/config/enum.SegmentationLevel.html#variant.Complex
As usual, I ask you to make crates.io releases more often. The latest one was in May. The latest git has many important improvements, including a significant aarch64 perf boost.