The talented FFmpeg developers continue to be quite innovative with their performance optimizations and other features for this widely-used, open-source multimedia library. The latest addition to FFmpeg this weekend is introducing Vulkan accelerated video decoding for Apple ProRes content.
ProRes is Apple’s high quality video codec for video editing and similar purposes. Following earlier code around Vulkan acceleration for Apple ProRes RAW, FFmpeg has merged Vulkan acceleration for ProRes video decoding with most features being supported. With Apple ProRes not being an official Vulkan Video feature and not to mention the lack of native GPU handling for the ProRes codec, this acceleration is implemented using Vulkan shaders. With being shader-based decoding, it should work across Vulkan drivers/hardware.
Developer Averne who landed thee support commented with the enablement patch:
“lavc: add a ProRes Vulkan hwaccel
Add a shader-based Apple ProRes decoder. It supports all codec features for profiles up to the 4444 XQ profile, ie.:
– 4:2:2 and 4:4:4 chroma subsampling
– 10- and 12-bit component depth
– Interlacing
– AlphaThe implementation consists in two shaders: the VLD kernel does entropy decoding for color/alpha, and the IDCT kernel performs the inverse transform on color components.
Benchmarks for a 4k yuv422p10 sample:
– AMD Radeon 6700XT: 178 fps
– Intel i7 Tiger Lake: 37 fps
– NVidia Orin Nano: 70 fps”
Nice work and FFmpeg continues pushing the boundaries of open-source multimedia innovations.
