News: 0001573546

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

FFmpeg swscale Rewrite Begins Landing With 2.6x Faster Overall, As Much As 254x

([Multimedia] 6 Hours Ago FFmpeg swscale rewrite)


Now that [1]FFmpeg 8.0 has shipped for this widely-used multimedia library, development is back on of major feature work toward the next major release. Landing on Monday was the initial code for a major rewrite to the swscale code in providing a new framework that is faster and more maintainable/extensible moving forward.

FFmpeg's swscale/libswscale code is used for image scaling, colorspace conversion, and related operations. FFmpeg developer Niklas Haas has spent the past few months working on a new framework around swscale. This swscale rewrite is less dependent upon compiler auto vectorization and introduced a new x86 SIMD back-end. This new code can be a major win for performance but the rewrite is also being done to help with maintainability, extensibility, and correctness of the code.

The performance results are very exciting with on the patch series during development, Niklas Haas reported that the single-threaded code was 2.1x faster overall and as much as 40.3x faster. For the multi-threaded usage it was 2.6x faster overall and as much as 254x faster! Some big wins too in the other results he shared from his AMD Ryzen 9 9950X3D system:

Merged yesterday was [2]introducing the new framework , [3]the x86 SIMD back-end , and other commits for this libswscale rewrite.

This code also [4]adds a new "--enable-unstable" build-time option for including "unstable" features for FFmpeg. This is initially used for allowing the disabling of the currently-experimental swscale but could also be expanded to cover experimental codecs and other features moving forward.



[1] https://www.phoronix.com/search/FFmpeg+8.0

[2] https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/16e191c8efbd799a392e7b04e6e3d48a2849ba12

[3] https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/982d3a98d0247e933783c14df5b3dfb4441769c6

[4] https://git.ffmpeg.org/gitweb/ffmpeg.git/blobdiff/cc42bc1f4bf228e19293e61d9ddf68ff42952599..4ec2bffe62b1caa6ed2104795e8a7ebc422997a4:/configure



botipua22

Danny3

Anux

RustIsWinning

isaacx123

schmidtbag

microchip8

JEBjames

geerge

Jargon Coiner (#4)

An irregular feature that aims to give you advance warning of new jargon
that we've just made up.

* FREE LECTURE: Attempting to explain the concepts of Linux, Open Source
software, free software, and gift cultures to someone who is not
familiar with them. Made extra difficult if the explainee has been
misled by superficial mainstream news articles about the subject.

Example: "Eric gave an hour-long free lecture to his mother-in-law after
she asked him about this Linux thingy she read about in USA Today."

* LEXICON LAZINESS: Filling a fortune file with a list of fake jargon
instead of publishing something more substantive (and funny) that would
take more effort to write.

* FOR(;;)TUNE LOOP: Repeatedly running fortune(6) for cheap entertainment.

Example: "During a coffee break, Bob became bored and started a
for(;;)tune loop. His boss had to issue a SIGTERM to get him to resume
working."