To show what I mean, I'm converting a big 3000x3000 picture from jpg to avif using an AMD 5600X 6-core/12-thread processor.
Here are my conversion settings: Multi-threading is selected and set to use all 12 threads.
Here are the results: The whole affair took 1 minute and 5 seconds (sic!)
but during the entire time, the CPU never went above 9% load.
To confirm, I ran it one more time with multi-threading turned OFF: ...and it took the very same 1 minute and 5 seconds.
A friend of mine used AOM's libavif and was able to successfully multi-thread the encoding.
With his 4-core/4-thread Phenom processor he cut down the required time by almost 75% after adding the
Code: Select all
--jobs
Imagine that: five times as fast! For my example picture, encoding time would go down from 65 seconds to just 13 seconds!Speeding up the encoder
One parameter that may be good to change depending on how many cores you have on your machine is the --jobs parameter. This parameter sets how many threads avifenc will use to create AVIF images. Try running this at the command line. [...]
[Using] 8 threads when creating the AVIF image [...] speeds up AVIF encoding by roughly 5x.
If anything needs multi-threading, it's AVIF.