Help! My animated images are utilizing too much of my CPU.

In general...

I'm looking for any tips and tricks for creating animated images—APNG, GIF, and (primarily) WebP.

Specifically...

I am looking to reduce the percentage of CPU utilized by animated images—while they run as my desktop wallpaper.  At the moment, I get the following behavior:

  • 2–3% total (on battery)
    • 44–50% of a single thread (1 efficiency core)¹
  • 1–2% total (plugged in)
    • 30–38% of a single thread (1 efficiency core)¹

I suspect that using layers—which are composed mostly of transparent backgrounds—is the key to reducing CPU utilization.  A still-image, base-layer background—with the (mostly) transparent layers as the only "animated" layers.

History...

Over the years, here are the workflows I've used to produce animated images (listed in chronological order):

  1. Using VLC Media Player's Scene Filter to export a movie, at 10 fps, to numbered png files →
    1. opening all of those images as layers in a Gnu Image Manipulation Program project →
      1. exporting those layers as an animated gif, webp, or apng
  2. Using ffmpeg to export a movie, at 10 fps, to numbered png files →
    1. repeat steps 1.a. and 1.a.A.
  3. Using ffmpeg to export a movie, at 10 fps, directly to an animated gif, webp, or apng
    1. PROS:
      1. hundreds (to thousands) of times faster than the previous 2 workflows
      2. no huge (4.5 GiB) project files
      3. no draining my laptop battery while the still images get imported or while the animated image gets exported
    2. CONS:
      1. far fewer granular controls (which I never really used, anyway)

Example...

Dark Souls—Knight Artorias The Abysswalker
The above image is an animated gif, at 10 fps (click to enlarge/zoom; 1920×1080 original).

Originally, I used ffmpeg to export an mp4 (movie) to an animated webp file, at 10 fps.  Unfortunately, webp files are not permitted on Lenovo's communities.  I used ImageMagick's convert command to convert the animated webp file to an animated gif.  Ironically, that appears to work better than using ffmpeg to export the movie directly to animated gif.

btw- The webp file is about ⅕ the size of the gif; i.e. 12.3 MiB, instead of 57.4 MiB.  And the webp version looks noticeably cleaner than the gif—fewer artifacts and truer color.  The gif, however, reduces (relative) CPU utilization by -10%; i.e. 39–45% of a single (efficiency) thread, instead of 44–50%.

(1) On a 24-thread laptop (8 p-core/16 performance threads and 8 e-core/8 efficiency threads).

  • I wish I could help, but this is beyond my experience level.  I am following because am interested in hearing responses from real experts!

  •  

    Me too! :-)

    What I've learned to do—with image manipulation and "digital art"—I've achieved, like a monkey pounding on a keyboard.  Almost all trial-and-error—with a modicum of IQ guiding it.

    A journey comprised of making 3 right turns—to make "a left turn"—every step of the way. ¯\_(ツ)_/¯