feat(linux/vaapi): VAAPI encoder improvements#5388
Conversation
3afed13 to
fe4d3b2
Compare
|
I'm getting the following error during encoder probing (causing a fallback to vulkan) when enabling BLBRC while using fe4d3b2: |
fe4d3b2 to
9f99d14
Compare
|
The latest rebase should include the necessary fix. I can't test BLBRC on my AMD card, so let me know if it causes any other issues when enabled. |
|
Been running this for a few hours yesterday with all options (VBR, BLBRC, STRICT) flipped on and quality set to high. Subjectively I'm impressed with the quality I'm getting especially on red-heavy scenes with movement it's a lot less washed out compared to Vulkan encoding. Unsure where that comes from. Also host processing latency is just about .2 ms higher than current Vulkan default options which is negliable for me (1.9ms->2.1ms average). |
|
I added a full drop-down menu for rate control and included all possible modes. The default RC behaviour should now be exactly the same as before:
Unfortunately this added a lot of code, most of which is borrowed from the Windows AMF encoder logic and UI section, but I suppose I do prefer the UI category layout and named options now. |
06cd818 to
4111844
Compare
|
Can you fix the doxygen errors? |
f99f0fa to
c29a347
Compare
* Split rate control selection logic out from VBV bitrate enforcement. When VBV bitrate limits are enabled, the VBV constraint is now also possible to apply to CBR rate control. * Add opt-in option to allow VBR rate control. If selected, the existing RC logic detection will try to select VBR, then CBR, then fall back to CQP. If unselected, only CBR followed by CQP will be attempted. * Add encoder quality profile selection. As VAAPI doesn't mandate specific quality levels, we must probe the maximum level during initialization. If VAConfigAttribEncQualityRange returns a value, the maximum value will represent the fastest/lowest quality and value 1 sets highest quality. This value is then mapped onto the compression_level AVOption which sets the VAEncMiscParameterTypeQualityLevel via ffmpeg's vaapi_encode.c. * Add Block Level Bitrate Control (BLBRC) option that can be combined with VBR or CBR rate control on supported encoders.
f995d38 to
db21117
Compare
|



Description
Screenshot
Issues Fixed or Closed
Roadmap Issues
Type of Change
Checklist
AI Usage
See our AI usage policy.