[x265] [PATCH] cli: add aq-strength to cli input options, add validations for aq mode
Aarthi Thirumalai
aarthi at multicorewareinc.com
Mon Nov 18 12:26:40 CET 2013
# HG changeset patch
# User Aarthi Thirumalai
# Date 1384773969 -19800
# Mon Nov 18 16:56:09 2013 +0530
# Node ID 78225cfaa696fad7f2870c4064c8f0f387e5ba8d
# Parent 2321ebe0bf64e5f3c0034076c7edb3ecbcd48039
cli: add aq-strength to cli input options, add validations for aq mode
diff -r 2321ebe0bf64 -r 78225cfaa696 source/common/common.cpp
--- a/source/common/common.cpp Mon Nov 18 11:32:06 2013 +0530
+++ b/source/common/common.cpp Mon Nov 18 16:56:09 2013 +0530
@@ -519,8 +519,10 @@
"max consecutive bframe count must be 16 or smaller");
CHECK(param->lookaheadDepth > X265_LOOKAHEAD_MAX,
"Lookahead depth must be less than 256");
- CHECK(param->rc.aqMode<X265_AQ_NONE || param->rc.aqMode> X265_AQ_VARIANCE,
+ CHECK(param->rc.aqMode < X265_AQ_NONE || param->rc.aqMode > X265_AQ_VARIANCE,
"Aq-Mode is out of range");
+ CHECK(param->rc.aqStrength < 0 || param->rc.aqStrength > 3,
+ "Aq-Strength is out of range");
// max CU size should be power of 2
uint32_t i = param->maxCUSize;
@@ -532,6 +534,16 @@
}
CHECK(param->bEnableWavefront < 0, "WaveFrontSynchro cannot be negative");
+ if(param->rc.rateControlMode == X265_RC_CQP )
+ {
+ param->rc.aqMode = X265_AQ_NONE;
+ param->rc.bitrate = 0;
+ }
+ if(param->rc.aqStrength == 0)
+ {
+ x265_log(param, X265_LOG_WARNING, "Aq mode specified, but Aq strength is 0, ignored\n" );
+ param->rc.aqMode = 0;
+ }
return check_failed;
}
@@ -652,7 +664,8 @@
}
TOOLOPT(param->bEnableWeightedPred, "weightp");
TOOLOPT(param->bEnableWeightedBiPred, "weightbp");
- TOOLOPT(param->rc.aqMode, "aq");
+ TOOLOPT(param->rc.aqMode, "aq-mode");
+ fprintf(stderr, "aq-strength=%.2f ", param->rc.aqStrength);
fprintf(stderr, "\n");
fflush(stderr);
}
@@ -729,6 +742,7 @@
OPT("psnr") p->bEnablePsnr = bvalue;
OPT("hash") p->decodedPictureHashSEI = atoi(value);
OPT("aq-mode") p->rc.aqMode = atoi(value);
+ OPT("aq-strength") p->rc.aqStrength = atof(value);
OPT("crf")
{
p->rc.rfConstant = atof(value);
@@ -794,6 +808,8 @@
BOOL(p->bEnableWeightedPred, "weightp");
s += sprintf(s, " bitrate=%d", p->rc.bitrate);
s += sprintf(s, " qp=%d", p->rc.qp);
+ s += sprintf(s, " aq-mode=%d", p->rc.aqMode);
+ s += sprintf(s, " aq-strength=%.2f", p->rc.aqStrength);
s += sprintf(s, " cbqpoffs=%d", p->cbQpOffset);
s += sprintf(s, " crqpoffs=%d", p->crQpOffset);
s += sprintf(s, " rd=%d", p->rdLevel);
diff -r 2321ebe0bf64 -r 78225cfaa696 source/x265.cpp
--- a/source/x265.cpp Mon Nov 18 11:32:06 2013 +0530
+++ b/source/x265.cpp Mon Nov 18 16:56:09 2013 +0530
@@ -123,6 +123,7 @@
{ "bitrate", required_argument, NULL, 0 },
{ "qp", required_argument, NULL, 'q' },
{ "aq-mode", required_argument, NULL, 0 },
+ { "aq-strength", required_argument, NULL, 0 },
{ "cbqpoffs", required_argument, NULL, 0 },
{ "crqpoffs", required_argument, NULL, 0 },
{ "rd", required_argument, NULL, 0 },
@@ -310,6 +311,7 @@
H0(" --crf Quality-based VBR (0-51). Default %f\n", param->rc.rfConstant);
H0("-q/--qp Base QP for CQP mode. Default %d\n", param->rc.qp);
H0(" --aq-mode Mode for Adaptive Quantization - 0:none 1:aqVariance Default %d\n", param->rc.aqMode);
+ H0(" --aq-strength Reduces blocking and blurring in flat and textured areas.(0 to 3.0)<double> . Default %f\n", param->rc.aqStrength);
H0(" --cbqpoffs Chroma Cb QP Offset. Default %d\n", param->cbQpOffset);
H0(" --crqpoffs Chroma Cr QP Offset. Default %d\n", param->crQpOffset);
H0(" --rd Level of RD in mode decision 0:least....2:full RDO. Default %d\n", param->rdLevel);
More information about the x265-devel
mailing list