Introduction
Hello everyone, my name is Dustin. Today I'd like to talk about my last stage of spo600 project.
In my previous blog, I had a little discussion about ffmpeg
and how it is important to us. So for this stage, I'm going to give some suggestions on how ffmpeg
should be extended to support Scalable Vector Extensions v2(SVE2)
About SVE2
Speaking about SVE2, it is a superset of SVE and Neon. SVE2 gives more function domains, because it inherits its previous concepts including vector registers, and operation principles. So people are able to opt for hardware with a maximum of 2048 bits. Refer here
Recommendation
Because ffmpeg focuses much on process multimedia content such as audio, video, subtitles and related metadata, which are considered to be quite heavy as it involves a lot of decoding, encoding,... So SVE2 would bring a huge benefit in terms of options, flexibility. The good old SIMD instructions to do some color conversions or scaling routines can be improved by a library which is called libswscale
. This library will tremendously bring ffmpeg
to a whole new level as it help improve the process time. Apart from that, ffmpeg
is using Neon in order to do some vector thing which can be improved by switching to SVE2 in order to utilize its benefits as it allows vector code to adapt to a wide range of vector lengths during execution time.
Wrap up
SVE2 has 32 scalable vector registers which ranges from Z0 to Z31 and it can be implemented from 128 bits up to 2045 bits with 128 increment which is amazing so by taking advantage of SVE2, people can actually maximize the usage of ffmpeg
. This is a powerful tool but when given an add-on, it will offer more strength that facilitates users.
Top comments (0)