12.04.2018, 05:15
The x265 command line you used:
(by applying the medium preset and adjusting a few settings)
Psy-RDO quantizer is grayed out an does nothing, which is correct since 'rdoq-level' is 0.
=> With '--rdoq-level 0', '--psy-rdoq 1' doesn't do anything. So it looks to me that Hybrid works correctly and you are making a mistake.
If you think I made a mistake in my assessment please let me know. In case there is a bug in Hybrid I'm happy to look into it. But atm. I see no reason problem.
Cu Selur
x265 --input - --output-depth 10 --y4m --profile main10 --me umh --merange 24 --limit-modes --max-merge 3 --bframes 2 --ref 2 --rc-lookahead 24 --crf 30.00 --qpfile GENERATED_QP_FILE --rd 4 --rdoq-level 2 --range limited --colormatrix bt709 --output "H:\TMP\USERTMP\test.265"
Psy-RDO quantizer is grayed out an does nothing, which is correct since 'rdoq-level' is 0.
Quote:Psy-RDO Quantization:Which is correct since you applied preset 'medium', which sets psy-rdoq to 0. see: http://x265.readthedocs.io/en/default/presets.html
PsyRDO quantization will adjust the distortion cost used in rate-distortion optimized quantization (RDO quant) favoring the preservation of energy in the reconstructed image. This generally improves perceived visual quality at the cost of lower quality metric scores.
At low strength levels, psy-rdoq will influence the quantization level decisions, favoring higher AC energy in the reconstructed image. As psy-rdoq strength is increased, more non-zero coefficient levels are added and fewer coefficients are zeroed by RDOQ’s rate distortion analysis. High levels of psy-rdoq can double the bitrate which can have a drastic effect on rate control, forcing higher overall QP, and can cause ringing artifacts. psy-rdoq is less accurate than psy-rd, it is biasing towards energy in general while psy-rd biases towards the energy of the source image. But very large psy-rdoq values can sometimes be beneficial, preserving film grain for instance.
Note:
It's get's enabled for --rdoq-level 1 and above.
(command line match: --psy-rdoq X, X from 0-50.0; default: --psy-rdoq 1.0
Quote:--rdoq-level <0|1|2>, --no-rdoq-levelsee: http://x265.readthedocs.io/en/default/cl...rdoq-level
Specify the amount of rate-distortion analysis to use within quantization:
At level 0 rate-distortion cost is not considered in quant
At level 1 rate-distortion cost is used to find optimal rounding values for each level (and allows psy-rdoq to be effective). It trades-off the signaling cost of the coefficient vs its post-inverse quant distortion from the pre-quant coefficient. When --psy-rdoq is enabled, this formula is biased in favor of more energy in the residual (larger coefficient absolute levels)
At level 2 rate-distortion cost is used to make decimate decisions on each 4x4 coding group, including the cost of signaling the group within the group bitmap. If the total distortion of not signaling the entire coding group is less than the rate cost, the block is decimated. Next, it applies rate-distortion cost analysis to the last non-zero coefficient, which can result in many (or all) of the coding groups being decimated. Psy-rdoq is less effective at preserving energy when RDOQ is at level 2, since it only has influence over the level distortion costs.
=> With '--rdoq-level 0', '--psy-rdoq 1' doesn't do anything. So it looks to me that Hybrid works correctly and you are making a mistake.
If you think I made a mistake in my assessment please let me know. In case there is a bug in Hybrid I'm happy to look into it. But atm. I see no reason problem.
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.