FFmpeg Has Seen Some AVX2 Optimizations For VP9 Decoding
Another GSoC 2017 project worth highlighting now that Google's annual Summer of Code has finished is the AVX2 optimizations being done to the VP9 decoder within FFmpeg.
Student developer Ilia Valiakhmetov set out to speed-up the VP9 decoder in FFmpeg this summer by writing some hand-tuned Assembly instructions around AVX2. Advanced Vector Extensions 2 instructions have been supported since Intel Haswell CPUs and on the AMD side are present with the Excavator and Zen cores.
Among the work done by Ilia Valiakhmetov this summer on FFMpeg includes various patches to avcodec/vp9 that generally are 30~40% faster now thanks to the hand-tuned AVX2 code.
The big feature is tile threading support. Ilia commented, "Tile threading is ~35% faster at 2 threads vs 1. Frame threading is ~41% faster at 2 threads vs 1."
Hopefully we will find this work merged for the next big release of the FFmpeg multimedia library.
Student developer Ilia Valiakhmetov set out to speed-up the VP9 decoder in FFmpeg this summer by writing some hand-tuned Assembly instructions around AVX2. Advanced Vector Extensions 2 instructions have been supported since Intel Haswell CPUs and on the AMD side are present with the Excavator and Zen cores.
Among the work done by Ilia Valiakhmetov this summer on FFMpeg includes various patches to avcodec/vp9 that generally are 30~40% faster now thanks to the hand-tuned AVX2 code.
The big feature is tile threading support. Ilia commented, "Tile threading is ~35% faster at 2 threads vs 1. Frame threading is ~41% faster at 2 threads vs 1."
Hopefully we will find this work merged for the next big release of the FFmpeg multimedia library.
21 Comments