Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
14th June 2018, 18:35 | #161 | Link |
Moderator
Join Date: Jan 2006
Location: Portland, OR
Posts: 4,770
|
Adaptive quantization (psy-rd, aq-mode, aq-strength). Psychovisual tuning is just as important for still images (albeit a simpler subset).
With aq-mode 3, you’ll get a lower QP in smoother and darker areas, allowing for a higher CRF that will apply to parts of the image that are easier to compress. To get the same visual quality with QP would require a significantly lower QP to make sure the harder parts look good. But that results in that QP being used for the easier parts of frame as well, giving THEM a lower QP than using CRF would, thus increasing total bytes used. For real-world content, QP needs a higher bitrates to achieve the same quality. This is basically how “JPEG Optimizers” deliver better quality than just using the JPEG quality parameter. HEVC has WAY more awesome tools available for efficient image coding, though. Hoping for a good —tune stillimage someday. |
9th July 2019, 07:14 | #162 | Link | ||
Registered User
Join Date: Jul 2015
Posts: 708
|
Quote:
p->rc.aqMode = 3; p->rc.aqStrength = 1.0; p->deblockingFilterTCOffset = -6; p->deblockingFilterBetaOffset = 6; p->psyRd = 2.0; Is that enough? https://x265.readthedocs.io/en/default/presets.html PS What is wrong with aq-mode? For values three is always blocked. Quote:
Setting for libHEIF (x265) Code:
// BPG uses CQP. It does not seem to be better though. // param->rc.rateControlMode = X265_RC_CQP; // param->rc.qp = (100 - encoder->quality)/2; param->totalFrames = 1; param->internalCsp = X265_CSP_I420; api->param_parse(param, "info", "0"); api->param_parse(param, "limit-modes", "0"); api->param_parse(param, "limit-refs", "0"); api->param_parse(param, "wpp", "0"); api->param_parse(param, "rd", "6"); api->param_parse(param, "ctu", "64"); api->param_parse(param, "rskip", "0"); api->param_parse(param, "rect", "1"); api->param_parse(param, "amp", "1"); api->param_parse(param, "cu-lossless", "1"); api->param_parse(param, "aq-mode", "1"); api->param_parse(param, "rd-refine", "1"); api->param_parse(param, "psy-rd", "1.0"); api->param_parse(param, "psy-rdoq", "1.0"); Last edited by Jamaika; 9th July 2019 at 08:04. |
||
10th July 2019, 17:56 | #163 | Link | |
Moderator
Join Date: Jan 2006
Location: Portland, OR
Posts: 4,770
|
Quote:
I haven't poked at this since my last post a year ago, so I'm not sure if those would still be my recommendations as of 3.1.1, but it's probably in the ballpark. That said, I think the energy around PBG has really moved towards HEIF. Having a JS HEIF parser/decoder would be tremendous, though. Adding HEIF parsing would be so delightful. |
|
|
|