Quote:
Originally Posted by benwaggoner
What's the command line you're using now? By default the higher presets do a lot of adaptive quantization that can help this use case. The --aq-motion experimental mode might help (or hurt).
|
I am using handbrake and it doesn't list what options are available to input in the 'extra options' box for the various codecs.
It also doesn't list how to syntax them so the chosen encoder can understand them.
However, your mention of 'higher presets' and '--aq-motion' helped me along with both handbrake and google
I found this web-page:
https://x265.readthedocs.io/en/default/cli.html where there appears to be a list of all the available options (for x265 at least) and a description of what they do.
And in handbrake I discovered, by selecting a 'higher preset' (I hadn't really tried the presets before, but only been using the manual options), that some of them actually fills in information into the 'extra options' box. So that at least gives a hint on how handbrake expects the syntax in that box to be.
So with that I can begin some experimentation
Thanks a lot
Quote:
Originally Posted by benwaggoner
What you are really asking for ROI-specific adaptive quantization based on face detection and tracking, which is very common in videoconferencing.
|
No doubt face-detection, or perhaps skin-tone detection as a more simplistic method, would be a great option to have.
Quote:
Originally Posted by benwaggoner
If you have a way to define the ROI at least, blurring and applying noise reduction to the background area would reduce bits required there and thus increase quality in the face region, without having to patch x265. Bumping up --psy-rd in that case could also help.
|
Currently the codec (when using the manual options in handbrake, such as speed and bitrate) seems to give more weight to 'background' than 'foreground'.
When I lower the bitrate, the first thing that get 'ugly' is the faces and then the background.
I can use a lower bitrate with the background than the foreground and since I only have one bitrate setting this means I end up with more bitrate used on the background than necessary (per my own subjective quality needs of course
)
So the ROI is more or less already defined by the codec. I just need to find a way to have the codec use less of the bits on the background and spend them on the foreground instead.
Background being large flat areas (such as walls and relatively static content), and foreground being all the moving things (such as facial expressions and people moving around)
A frequency separated weighting perhaps (Which I assume is what the codec already uses in some form. I just want to modify the weights given to low vs high frequencies, such that the single bitrate I end up using makes both foreground and background 'ugly' at the same setting, so to speak
)
I will experiment a bit with this now that I have some info to go on, and see if anything comes off it
Thanks again for the help.
/////////////////////////
EDIT:
First few tests done.
Turning "--aq-mode" OFF (entering "aq-mode=0" in handbrake's 'extra options' box) appears to shift weight slightly more from static objects to moving objects.
I get a sharper face and more artifacts on walls. It's a beginning