<div dir="ltr"><br><div class="gmail_extra"><br>Answers are inline</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Regards</div><div class="gmail_extra">
Sumalatha/Aarthi</div><div class="gmail_extra"><br><div class="gmail_quote">
On Fri, Jun 28, 2013 at 12:06 AM, Steve Borho <span dir="ltr"><<a href="mailto:steve@borho.org" target="_blank">steve@borho.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">
<div>On Thu, Jun 27, 2013 at 7:09 AM, <span dir="ltr"><<a href="mailto:sumalatha@multicorewareinc.com" target="_blank">sumalatha@multicorewareinc.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"># HG changeset patch<br>
# User sumalatha<br>
# Date 1372334962 -19800<br>
# Node ID 8c818d8d27e4786cd20efe4122ece249701d679a<br>
# Parent 3b93256a844bbbe5584ec1ae7b95e618bf955d69<br>
cleaning up CLI options, and their params<br></blockquote><div><br></div></div><div>Thanks for taking on this task. This work will need to happen one or two parameters at a time.</div><div><br></div><div>In a single patch you will need to remove a parameter from x265.h, remove its CLI option from</div>
<div>x265opts.h, fixup the configure() function in encoder.cpp so that a sane default is used in</div><div>place of the former parameter, and also remove validation checks for that parameter from common.cpp.</div>
<div><br></div><div>Even better is if you determine that a parameter is truly not used anymore, it should be removed</div><div>from TEncCfg (including its access functions).</div><div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
diff -r 3b93256a844b -r 8c818d8d27e4 source/x265opts.h<br>
--- a/source/x265opts.h Thu Jun 27 16:14:14 2013 +0530<br>
+++ b/source/x265opts.h Thu Jun 27 17:39:22 2013 +0530<br>
@@ -27,12 +27,7 @@<br>
HELP("Quad-Tree analysis:")<br>
OPT("wpp", param->bEnableWavefront, no_argument, 0, "Enable Wavefront Parallel Processing")<br>
OPT("no-wpp", param->bEnableWavefront, no_argument, 0, "Disable Wavefront Parallel Processing")<br>
-OPT("ctu", param->maxCUSize, required_argument, 's', "Maximum CU size (default: 64x64)")<br>
-OPT("cu-depth", param->maxCUDepth, required_argument, 'd', "Maximum CU recursion depth (default: 4)")<br>
-OPT("tu-maxlog2", param->tuQTMaxLog2Size, required_argument, 0, "Maximum TU size in logarithm base 2")<br>
-OPT("tu-minlog2", param->tuQTMinLog2Size, required_argument, 0, "Minimum TU size in logarithm base 2")<br>
-OPT("tu-intra-depth", param->tuQTMaxIntraDepth, required_argument, 0, "Max TU recursive depth for intra CUs")<br>
-OPT("tu-inter-depth", param->tuQTMaxInterDepth, required_argument, 0, "Max TU recursive depth for inter CUs")<br></blockquote><div><br></div></div><div>maxCUSize is a param we need to keep, but maxCUDepth is not (it should be calculated based on maxCUSize).</div>
<div>tuQTMaxLog2Size and tuQTMinLog2Size can both be calculated as well, I think. tuQTMaxIntraDepth and tuQTMaxInterDepth must stay, they are key tuning parameters.<br></div></div></div></div></blockquote><div><br></div>
<div> <span><font color="#ff0000">1. Done the removal of maxCUDepth , tuQTMaxLog2Size and tuQTMinLog2Size</font></span></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
HELP("Temporal / motion search options:")<br>
OPT("me", param->searchMethod, required_argument, 0, "Motion search method 0:dia 1:hex 2:umh 3:star(default) 4:hm-orig 5:full")<br>
@@ -44,13 +39,12 @@<br>
OPT("no-amp", param->bEnableAMP, no_argument, 0, "Disable asymmetric motion partitions")<br>
OPT("rdo", param->bEnableRDO, no_argument, 0, "Enable rate distortion-based mode decision")<br>
OPT("no-rdo", param->bEnableRDO, no_argument, 0, "Enable mode decision without rate distortion optimization")<br>
-OPT("max-merge", param->maxNumMergeCand, required_argument, 0, "Maximum number of merge candidates (default: 5)")<br></blockquote><div><br></div></div><div>maxNumMergeCand must stay, it is a perf tuning parameter<br>
</div><div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
+<br>
OPT("fdm", param->bEnableFastMergeDecision, no_argument, 0, "Enable fast decision for Merge RD Cost")<br>
OPT("no-fdm", param->bEnableFastMergeDecision, no_argument, 0, "Disable fast decision for Merge RD Cost")<br>
OPT("early-skip", param->bEnableEarlySkip, no_argument, 0, "Enable early SKIP detection")<br>
OPT("no-early-skip", param->bEnableEarlySkip, no_argument, 0, "Disable early SKIP detection")<br>
OPT("merge-level", param->log2ParallelMergeLevel, required_argument, 0, "Parallel merge estimation region")<br>
-OPT("tmvp", param->TMVPModeId, required_argument, 0, "TMVP mode 0:disabled 1:enabled(default) 2:auto")<br>
OPT("fast-cbf", param->bEnableCbfFastMode, no_argument, 0, "Enable Cbf fast mode")<br>
OPT("no-fast-cbf", param->bEnableCbfFastMode, no_argument, 0, "Disable Cbf fast mode")<br></blockquote><div><br></div></div><div>All of these flags need to be tested to see if they still have any effect after all our mode-decision changes.</div>
<div>I suspect log2ParallelMergeLevel and TMVPModeId can be hidden from the user - either fixed or auto-configured based on other inputs.</div><div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
@@ -60,8 +54,7 @@<br>
OPT("no-tskip", param->bEnableTransformSkip, no_argument, 0, "Disable intra transform skipping")<br>
OPT("tskip-fast", param->bEnableTSkipFast, no_argument, 0, "Enable fast intra transform skipping")<br>
OPT("no-tskip-fast", param->bEnableTSkipFast, no_argument, 0, "Disable fast intra transform skipping")<br>
-OPT("strong-intra-smoothing", param->bEnableStrongIntraSmoothing, no_argument, 0, "Enable strong intra smoothing for 32x32 blocks")<br>
-OPT("no-strong-intra-smoothing", param->bEnableStrongIntraSmoothing, no_argument, 0, "Disable strong intra smoothing for 32x32 blocks")<br>
+<br></blockquote><div><br></div></div><div>Does bEnableStrongIntraSmoothing not do anything?</div></div></div></div></blockquote><div> <font color="#ff0000">bEnableStrongIntraSmoothing is required . It is used in initAdiPattern(), it does some different filtering when it is disabled and enabled</font></div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">
<div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
OPT("constrained-intra", param->bEnableConstrainedIntra, no_argument, 0, "Constrained intra prediction (use only intra coded reference pixels)")<br>
OPT("no-constrained-intra", param->bEnableConstrainedIntra, no_argument, 0, "Disable constrained intra prediction (use only intra coded reference pixels)")<br>
<br>
@@ -74,7 +67,7 @@<br>
<br>
HELP("QP and rate distortion options:")<br>
OPT("qp", param->qp, required_argument, 'q', "Base QP for CQP mode (default: 30)")<br>
-OPT("cbqpoffs", param->cbQpOffset, required_argument, 0, "Chroma Cb QP Offset")<br>
+<br></blockquote><div><br></div></div><div>Why remove the Cb offset and not the Cr offset?</div></div></div></div></blockquote><div><font color="#ff0000">I doubt whether cb and cr offset is required. <br>At present it is set as zero </font></div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">
<div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
OPT("crqpoffs", param->crQpOffset, required_argument, 0, "Chroma Cr QP Offset")<br>
OPT("aqselect", param->bEnableAdaptQpSelect, no_argument, 0, "Adaptive QP selection")<br>
OPT("aq", param->bEnableAdaptiveQP, no_argument, 0, "Enable QP adaptation based on a psycho-visual model")<br></blockquote><div><br></div></div><div>I suspect all of AQ is broken, and needs to be hidden from the user interface until it is re-imlemented based on the x264 design. But I don't know if the Cb and Cr offsets work without AQ.</div>
<div><br></div><div>--</div><div>Steve</div></div></div></div>
<br>_______________________________________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org" target="_blank">x265-devel@videolan.org</a><br>
<a href="http://mailman.videolan.org/listinfo/x265-devel" target="_blank">http://mailman.videolan.org/listinfo/x265-devel</a><br>
<br></blockquote></div><br></div></div>