va: Add encoding tuning mode
This provides a hint to driver about the requested encode tuning in addition to quality level number. It can be used by hardware encoders that supports low latency encoding as a special mode instead of setting the lowest quality level.
The tuning modes matches Vulkan VkVideoEncodeTuningModeKHR, except lossless which I don't think makes sense here.
Motivation is AMD VCN encoder which has low latency mode that should be enabled for usecases like realtime game streaming, and it works with all presets (quality levels), not only with the fastest preset.
This provides a hint to driver about the requested encode tuning in addition to quality level number. It can be used by hardware encoders that supports low latency encoding as a special mode instead of setting the lowest quality level.
The tuning modes matches Vulkan VkVideoEncodeTuningModeKHR, except lossless which I don't think makes sense here.
So there are two specific cases I can think of:
- The encoding is happening in real-time, so the hardware must guarantee that it can keep up with the input stream.
- Lossless encoding is needed, perhaps because the file will later be decompressed and re-encoded offline to a quality level that would not be possible with real-time lossy encoding.
when we are talking about low latency, there are several perspectives, such as: mini gop structure , whether some frame need to be hold time consumption for one frame. and it is actually related with frequency logic.
looks it is not fully related with encoding tools
time consumption for one frame. and it is actually related with frequency logic.
Yes, latency here meaning the time it takes to encode one frame.
time consumption for one frame. and it is actually related with frequency logic.
Yes, latency here meaning the time it takes to encode one frame.
Yes, latency here meaning the time it takes to encode one frame.
it means that backend driver need communication with Pcode...
there are 3 quality/perf related control in vulkan, "usage" "content" "tuning" , I am wondering how to map them with quality level and tuning ... seems it is series new interface.