<div dir="ltr">Pushed to master.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Sep 1, 2020 at 11:01 PM Praveen Kumar Karadugattu <<a href="mailto:praveenkumar@multicorewareinc.com">praveenkumar@multicorewareinc.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>From 866e7d77aa113dcfd9596c27e7dda70d8da8220b Mon Sep 17 00:00:00 2001</div><div>From: Praveen Kumar Karadugattu <<a href="mailto:praveenkumar@multicorewareinc.com" target="_blank">praveenkumar@multicorewareinc.com</a>></div><div>Date: Tue, 1 Sep 2020 22:48:30 +0530</div><div>Subject: [PATCH] Corrected wrong cli in docs wrt --colormatrix & --videoformat</div><div><br></div><div>---</div><div> doc/reST/cli.rst        | 104 ++++++++++++++++++++++++------------------------</div><div> source/CMakeLists.txt   |   2 +-</div><div> source/common/param.cpp |  38 ++++++++++--------</div><div> source/x265cli.cpp      |  12 +++---</div><div> 4 files changed, 80 insertions(+), 76 deletions(-)</div><div> mode change 100644 => 100755 doc/reST/cli.rst</div><div> mode change 100644 => 100755 source/CMakeLists.txt</div><div> mode change 100644 => 100755 source/common/param.cpp</div><div> mode change 100644 => 100755 source/x265cli.cpp</div><div><br></div><div>diff --git a/doc/reST/cli.rst b/doc/reST/cli.rst</div><div>old mode 100644</div><div>new mode 100755</div><div>index 02828e3..e6c628c</div><div>--- a/doc/reST/cli.rst</div><div>+++ b/doc/reST/cli.rst</div><div>@@ -141,7 +141,7 @@ Logging/Statistic Options</div><div> <span style="white-space:pre-wrap">     </span>**Residual Energy** Average residual energy. SSE is calculated on fenc </div><div> <span style="white-space:pre-wrap">       </span>and pred(before quantization).</div><div> <span style="white-space:pre-wrap"> </span></div><div>-<span style="white-space:pre-wrap">        </span>**Luma/Chroma Values** minumum, maximum and average(averaged by area)</div><div>+<span style="white-space:pre-wrap">   </span>**Luma/Chroma Values** minimum, maximum and average(averaged by area)</div><div> <span style="white-space:pre-wrap">  </span>luma and chroma values of source for each frame.</div><div> <span style="white-space:pre-wrap">       </span></div><div> <span style="white-space:pre-wrap">       </span>**PU Statistics** percentage of PU modes at each depth.</div><div>@@ -246,7 +246,7 @@ Performance Options</div><div> </div><div> .. option:: --pools <string>, --numa-pools <string></div><div> </div><div>-<span style="white-space:pre-wrap"> </span>Comma seperated list of threads per NUMA node. If "none", then no worker</div><div>+<span style="white-space:pre-wrap">      </span>Comma separated list of threads per NUMA node. If "none", then no worker</div><div> <span style="white-space:pre-wrap">     </span>pools are created and only frame parallelism is possible. If NULL or ""</div><div> <span style="white-space:pre-wrap">      </span>(default) x265 will use all available threads on each NUMA node::</div><div> </div><div>@@ -284,7 +284,7 @@ Performance Options</div><div> <span style="white-space:pre-wrap">       </span>the last thread pool is spawned only if it has more than 32 threads for</div><div> <span style="white-space:pre-wrap">        </span>64-bit machines, or 16 for 32-bit machines. If the total number of threads</div><div> <span style="white-space:pre-wrap">     </span>in the system doesn't obey this constraint, we may spawn fewer threads</div><div>-<span style="white-space:pre-wrap">      </span>than cores which has been emperically shown to be better for performance. </div><div>+<span style="white-space:pre-wrap">     </span>than cores which has been empirically shown to be better for performance. </div><div> </div><div> <span style="white-space:pre-wrap">   </span>If the four pool features: :option:`--wpp`, :option:`--pmode`,</div><div> <span style="white-space:pre-wrap"> </span>:option:`--pme` and :option:`--lookahead-slices` are all disabled,</div><div>@@ -409,7 +409,7 @@ Performance Options</div><div> </div><div> <span style="white-space:pre-wrap">      </span>Allow encoder to copy input x265 pictures to internal frame buffers. When disabled,</div><div> <span style="white-space:pre-wrap">    </span>x265 will not make an internal copy of the input picture and will work with the</div><div>-<span style="white-space:pre-wrap"> </span>application's buffers. While this allows for deeper integration, it is the responsbility</div><div>+<span style="white-space:pre-wrap">    </span>application's buffers. While this allows for deeper integration, it is the responsibility</div><div> <span style="white-space:pre-wrap">  </span>of the application to (a) ensure that the allocated picture has extra space for padding</div><div> <span style="white-space:pre-wrap">        </span>that will be done by the library, and (b) the buffers aren't recycled until the library</div><div> <span style="white-space:pre-wrap">    </span>has completed encoding this frame (which can be figured out by tracking NALs output by x265)</div><div>@@ -554,7 +554,7 @@ frame counts) are only applicable to the CLI application.</div><div> </div><div> .. option:: --chunk-start <integer></div><div> </div><div>-<span style="white-space:pre-wrap">    </span>First frame of the chunk. Frames preceeding this in display order will</div><div>+<span style="white-space:pre-wrap">  </span>First frame of the chunk. Frames preceding this in display order will</div><div> <span style="white-space:pre-wrap">  </span>be encoded, however, they will be discarded in the bitstream. This</div><div> <span style="white-space:pre-wrap">     </span>feature can be enabled only in closed GOP structures.</div><div> <span style="white-space:pre-wrap">  </span>Default 0 (disabled).</div><div>@@ -562,7 +562,7 @@ frame counts) are only applicable to the CLI application.</div><div> .. option:: --chunk-end <integer></div><div> </div><div> <span style="white-space:pre-wrap">     </span>Last frame of the chunk. Frames following this in display order will be</div><div>-<span style="white-space:pre-wrap"> </span>used in taking lookahead decisions, but, they will not be encoded.</div><div>+<span style="white-space:pre-wrap">      </span>used in taking lookahead decisions, but they will not be encoded.</div><div> <span style="white-space:pre-wrap">      </span>This feature can be enabled only in closed GOP structures.</div><div> <span style="white-space:pre-wrap">     </span>Default 0 (disabled).</div><div> </div><div>@@ -638,7 +638,7 @@ Profile, Level, Tier</div><div> <span style="white-space:pre-wrap">  </span>If :option:`--level-idc` has been specified, --high-tier allows the</div><div> <span style="white-space:pre-wrap">    </span>support of high tier at that level. The encoder will first attempt to encode </div><div> <span style="white-space:pre-wrap"> </span>at the specified level, main tier first, turning on high tier only if </div><div>-<span style="white-space:pre-wrap"> </span>necessary and available at that level.If your requested level does not </div><div>+<span style="white-space:pre-wrap">        </span>necessary and available at that level. If your requested level does not </div><div> <span style="white-space:pre-wrap">      </span>support a High tier, high tier will not be supported. If --no-high-tier </div><div> <span style="white-space:pre-wrap">      </span>has been specified, then the encoder will attempt to encode only at the main tier.</div><div> </div><div>@@ -647,8 +647,8 @@ Profile, Level, Tier</div><div> .. option:: --ref <1..16></div><div> </div><div> <span style="white-space:pre-wrap">    </span>Max number of L0 references to be allowed. This number has a linear</div><div>-<span style="white-space:pre-wrap">     </span>multiplier effect on the amount of work performed in motion search,</div><div>-<span style="white-space:pre-wrap">     </span>but will generally have a beneficial affect on compression and</div><div>+<span style="white-space:pre-wrap">  </span>multiplier effect on the amount of work performed in motion search</div><div>+<span style="white-space:pre-wrap">      </span>but will generally have a beneficial effect on compression and</div><div> <span style="white-space:pre-wrap"> </span>distortion.</div><div> <span style="white-space:pre-wrap">    </span></div><div> <span style="white-space:pre-wrap">       </span>Note that x265 allows up to 16 L0 references but the HEVC</div><div>@@ -668,7 +668,7 @@ Profile, Level, Tier</div><div> .. option:: --allow-non-conformance, --no-allow-non-conformance</div><div> </div><div> <span style="white-space:pre-wrap">      </span>Allow libx265 to generate a bitstream with profile and level NONE.</div><div>-<span style="white-space:pre-wrap">      </span>By default it will abort any encode which does not meet strict level</div><div>+<span style="white-space:pre-wrap">    </span>By default, it will abort any encode which does not meet strict level</div><div> <span style="white-space:pre-wrap">  </span>compliance. The two most likely causes for non-conformance are</div><div> <span style="white-space:pre-wrap"> </span>:option:`--ctu` being too small, :option:`--ref` being too high,</div><div> <span style="white-space:pre-wrap">       </span>or the bitrate or resolution being out of specification.</div><div>@@ -727,7 +727,7 @@ Mode decision / Analysis</div><div> <span style="white-space:pre-wrap">    </span>used. The lower the value the faster the encode, the higher the</div><div> <span style="white-space:pre-wrap">        </span>value the smaller the bitstream (in general). Default 3</div><div> </div><div>-<span style="white-space:pre-wrap">        </span>Note that this table aims for accuracy, but is not necessarily our</div><div>+<span style="white-space:pre-wrap">      </span>Note that this table aims for accuracy but is not necessarily our</div><div> <span style="white-space:pre-wrap">      </span>final target behavior for each mode.</div><div> </div><div> <span style="white-space:pre-wrap">  </span>+-------+---------------------------------------------------------------+</div><div>@@ -758,7 +758,7 @@ the prediction quad-tree.</div><div> </div><div> <span style="white-space:pre-wrap"> </span>Maximum CU size (width and height). The larger the maximum CU size,</div><div> <span style="white-space:pre-wrap">    </span>the more efficiently x265 can encode flat areas of the picture,</div><div>-<span style="white-space:pre-wrap"> </span>giving large reductions in bitrate. However this comes at a loss of</div><div>+<span style="white-space:pre-wrap">     </span>giving large reductions in bitrate. However, this comes at a loss of</div><div> <span style="white-space:pre-wrap">   </span>parallelism with fewer rows of CUs that can be encoded in parallel,</div><div> <span style="white-space:pre-wrap">    </span>and less frame parallelism as well. Because of this the faster</div><div> <span style="white-space:pre-wrap"> </span>presets use a CU size of 32. Default: 64</div><div>@@ -799,7 +799,7 @@ the prediction quad-tree.</div><div> </div><div> <span style="white-space:pre-wrap">  </span>For all non-zero values of limit-refs, the current depth will evaluate</div><div> <span style="white-space:pre-wrap"> </span>intra mode (in inter slices), only if intra mode was chosen as the best</div><div>-<span style="white-space:pre-wrap"> </span>mode for atleast one of the 4 sub-blocks.</div><div>+<span style="white-space:pre-wrap">       </span>mode for at least one of the 4 sub-blocks.</div><div> </div><div> <span style="white-space:pre-wrap">    </span>You can often increase the number of references you are using</div><div> <span style="white-space:pre-wrap">  </span>(within your decoder level limits) if you enable one or</div><div>@@ -927,7 +927,7 @@ will not reuse analysis if slice type parameters do not match.</div><div> <span style="white-space:pre-wrap">       </span></div><div> .. option:: --analysis-load <filename></div><div> </div><div>-<span style="white-space:pre-wrap">  </span>Encoder reuses analysis information from the file specified. By reading the analysis data writen by</div><div>+<span style="white-space:pre-wrap">     </span>Encoder reuses analysis information from the file specified. By reading the analysis data written by</div><div> <span style="white-space:pre-wrap">   </span>an earlier encode of the same sequence, substantial redundant work may be avoided. Requires cutree, pmode</div><div> <span style="white-space:pre-wrap">      </span>to be off. Default disabled.</div><div> </div><div>@@ -1081,7 +1081,7 @@ as the residual quad-tree (RQT).</div><div> <span style="white-space:pre-wrap">     </span></div><div> <span style="white-space:pre-wrap">       </span>Note that when the CU intra prediction is NxN (only possible with</div><div> <span style="white-space:pre-wrap">      </span>8x8 CUs), a TU split is implied, and thus the residual quad-tree</div><div>-<span style="white-space:pre-wrap">        </span>begins at 4x4 and cannot split any futhrer.</div><div>+<span style="white-space:pre-wrap">     </span>begins at 4x4 and cannot split any further.</div><div> </div><div> .. option:: --tu-inter-depth <1..4></div><div> </div><div>@@ -1100,7 +1100,7 @@ as the residual quad-tree (RQT).</div><div> <span style="white-space:pre-wrap">   </span>Enables early exit from TU depth recursion, for inter coded blocks.</div><div> <span style="white-space:pre-wrap">    </span></div><div> <span style="white-space:pre-wrap">       </span>Level 1 - decides to recurse to next higher depth based on cost </div><div>-<span style="white-space:pre-wrap">       </span>comparison of full size TU and split TU.</div><div>+<span style="white-space:pre-wrap">        </span>comparison of full-size TU and split TU.</div><div> <span style="white-space:pre-wrap">       </span></div><div> <span style="white-space:pre-wrap">       </span>Level 2 - based on first split subTU's depth, limits recursion of</div><div> <span style="white-space:pre-wrap">  </span>other split subTUs.</div><div>@@ -1108,13 +1108,13 @@ as the residual quad-tree (RQT).</div><div> <span style="white-space:pre-wrap">     </span>Level 3 - based on the average depth of the co-located and the neighbor</div><div> <span style="white-space:pre-wrap">        </span>CUs' TU depth, limits recursion of the current CU.</div><div> <span style="white-space:pre-wrap"> </span></div><div>-<span style="white-space:pre-wrap">        </span>Level 4 - uses the depth of the neighbouring/ co-located CUs TU depth </div><div>+<span style="white-space:pre-wrap"> </span>Level 4 - uses the depth of the neighboring/ co-located CUs TU depth </div><div> <span style="white-space:pre-wrap"> </span>to limit the 1st subTU depth. The 1st subTU depth is taken as the </div><div> <span style="white-space:pre-wrap">    </span>limiting depth for the other subTUs.</div><div> <span style="white-space:pre-wrap">   </span></div><div> <span style="white-space:pre-wrap">       </span>Enabling levels 3 or 4 may cause a mismatch in the output bitstreams </div><div> <span style="white-space:pre-wrap"> </span>between :option:`--analysis-save` and :option:`--analysis-load`</div><div>-<span style="white-space:pre-wrap"> </span>as all neighbouring CUs TU depth may not be available in the </div><div>+<span style="white-space:pre-wrap">  </span>as all neighboring CUs TU depth may not be available in the </div><div> <span style="white-space:pre-wrap">  </span>:option:`--analysis-load` run as only the best mode's information is </div><div> <span style="white-space:pre-wrap">     </span>available to it.</div><div> <span style="white-space:pre-wrap">       </span></div><div>@@ -1215,14 +1215,14 @@ Temporal / motion search options</div><div> <span style="white-space:pre-wrap">        </span>Motion search method. Generally, the higher the number the harder</div><div> <span style="white-space:pre-wrap">      </span>the ME method will try to find an optimal match. Diamond search is</div><div> <span style="white-space:pre-wrap">     </span>the simplest. Hexagon search is a little better. Uneven</div><div>-<span style="white-space:pre-wrap"> </span>Multi-Hexegon is an adaption of the search method used by x264 for</div><div>-<span style="white-space:pre-wrap">      </span>slower presets. Star is a three step search adapted from the HM</div><div>+<span style="white-space:pre-wrap"> </span>Multi-Hexagon is an adaption of the search method used by x264 for</div><div>+<span style="white-space:pre-wrap">      </span>slower presets. Star is a three-step search adapted from the HM</div><div> <span style="white-space:pre-wrap">        </span>encoder: a star-pattern search followed by an optional radix scan</div><div> <span style="white-space:pre-wrap">      </span>followed by an optional star-search refinement. Full is an</div><div> <span style="white-space:pre-wrap">     </span>exhaustive search; an order of magnitude slower than all other</div><div> <span style="white-space:pre-wrap"> </span>searches but not much better than umh or star. SEA is similar to</div><div> <span style="white-space:pre-wrap">       </span>x264's ESA implementation and a speed optimization of full search.</div><div>-    It is a three step motion search where the DC calculation is</div><div>+    It is a three-step motion search where the DC calculation is</div><div>     followed by ADS calculation followed by SAD of the passed motion</div><div>     vector candidates.</div><div> </div><div>@@ -1261,7 +1261,7 @@ Temporal / motion search options</div><div> <span style="white-space:pre-wrap">       </span>At --subme values larger than 2, chroma residual cost is included</div><div> <span style="white-space:pre-wrap">      </span>in all subpel refinement steps and chroma residual is included in</div><div> <span style="white-space:pre-wrap">      </span>all motion estimation decisions (selecting the best reference</div><div>-<span style="white-space:pre-wrap">   </span>picture in each list, and chosing between merge, uni-directional</div><div>+<span style="white-space:pre-wrap">        </span>picture in each list, and choosing between merge, uni-directional</div><div> <span style="white-space:pre-wrap">      </span>motion and bi-directional motion). The 'slow' preset is the first</div><div> <span style="white-space:pre-wrap">      </span>preset to enable the use of chroma residual.</div><div> </div><div>@@ -1355,7 +1355,7 @@ the rate distortion algorithm.</div><div> do not match the visual energy of the source block. The higher the</div><div> strength of :option:`--psy-rd` the more strongly it will favor similar</div><div> energy over blur and the more aggressively it will ignore rate</div><div>-distortion. If it is too high, it will introduce visal artifacts and</div><div>+distortion. If it is too high, it will introduce visual artifacts and</div><div> increase bitrate enough for rate control to increase quantization</div><div> globally, reducing overall quality. psy-rd will tend to reduce the use</div><div> of blurred prediction modes, like DC and planar intra and bi-directional</div><div>@@ -1365,11 +1365,11 @@ inter prediction.</div><div> rate-distortion optimized quantization (RDO quant), enabled by</div><div> :option:`--rdoq-level` 1 or 2, favoring the preservation of energy in the</div><div> reconstructed image.  :option:`--psy-rdoq` prevents RDOQ from blurring</div><div>-all of the encoding options which psy-rd has to chose from.  At low</div><div>+all of the encoding options which psy-rd has to choose from.  At low</div><div> strength levels, psy-rdoq will influence the quantization level</div><div> decisions, favoring higher AC energy in the reconstructed image. As</div><div> psy-rdoq strength is increased, more non-zero coefficient levels are</div><div>-added and fewer coefficients are zeroed by RDOQ's rate distortion</div><div>+added, and fewer coefficients are zeroed by RDOQ's rate distortion</div><div> analysis. High levels of psy-rdoq can double the bitrate which can have</div><div> a drastic effect on rate control, forcing higher overall QP, and can</div><div> cause ringing artifacts. psy-rdoq is less accurate than psy-rd, it is</div><div>@@ -1393,16 +1393,16 @@ see temporal artifacts (motion judder). This is caused when the encoder</div><div> is forced to code skip blocks (no residual) in areas of difficult motion</div><div> because it is the best option psycho-visually (they have great amounts</div><div> of energy and no residual cost). One can lower psy-rd settings when</div><div>-judder is happening, and allow the encoder to use some blur in these</div><div>+judder is happening and allow the encoder to use some blur in these</div><div> areas of high motion.</div><div> </div><div> In 444, chroma gets twice as much resolution, so halve the quality when psy-rd is enabled.</div><div>-So when psy-rd is enabled for 444 videos, cbQpOffset and crQpOffset are set to value 6,</div><div>+So, when psy-rd is enabled for 444 videos, cbQpOffset and crQpOffset are set to value 6,</div><div> if they are not explicitly set.</div><div> </div><div> .. option:: --psy-rd <float></div><div> </div><div>-<span style="white-space:pre-wrap">    </span>Influence rate distortion optimizated mode decision to preserve the</div><div>+<span style="white-space:pre-wrap">     </span>Influence rate distortion optimized mode decision to preserve the</div><div> <span style="white-space:pre-wrap">      </span>energy of the source image in the encoded image at the expense of</div><div> <span style="white-space:pre-wrap">      </span>compression efficiency. It only has effect on presets which use</div><div> <span style="white-space:pre-wrap">        </span>RDO-based mode decisions (:option:`--rd` 3 and above). 1.0 is a</div><div>@@ -1504,7 +1504,7 @@ Slice decision options</div><div> <span style="white-space:pre-wrap">     </span>Number of frames for slice-type decision lookahead (a key</div><div> <span style="white-space:pre-wrap">      </span>determining factor for encoder latency). The longer the lookahead</div><div> <span style="white-space:pre-wrap">      </span>buffer the more accurate scenecut decisions will be, and the more</div><div>-<span style="white-space:pre-wrap">       </span>effective cuTree will be at improving adaptive quant. Having a</div><div>+<span style="white-space:pre-wrap">  </span>effective cutree will be at improving adaptive quant. Having a</div><div> <span style="white-space:pre-wrap"> </span>lookahead larger than the max keyframe interval is not helpful.</div><div> <span style="white-space:pre-wrap">        </span>Default 20</div><div> </div><div>@@ -1513,7 +1513,7 @@ Slice decision options</div><div> .. option:: --gop-lookahead <integer></div><div> </div><div> <span style="white-space:pre-wrap">    </span>Number of frames for GOP boundary decision lookahead. If a scenecut frame is found</div><div>-<span style="white-space:pre-wrap">      </span>within this from the gop boundary set by `--keyint`, the GOP will be extented until such a point,</div><div>+<span style="white-space:pre-wrap">       </span>within this from the gop boundary set by `--keyint`, the GOP will be extended until such a point,</div><div> <span style="white-space:pre-wrap">      </span>otherwise the GOP will be terminated as set by `--keyint`. Default 0.</div><div> </div><div> <span style="white-space:pre-wrap"> </span>**Range of values:** Between 0 and (`--rc-lookahead` - mini-GOP length)</div><div>@@ -1632,7 +1632,7 @@ Quality, rate control and rate distortion options</div><div> </div><div> .. option:: --crf-min <0..51.0></div><div> </div><div>-<span style="white-space:pre-wrap">   </span>Specify an lower limit to the rate factor which may be assigned to</div><div>+<span style="white-space:pre-wrap">      </span>Specify a lower limit to the rate factor which may be assigned to</div><div> <span style="white-space:pre-wrap">      </span>any given frame (ensuring a min compression factor).</div><div> </div><div> .. option:: --vbv-bufsize <integer></div><div>@@ -1659,7 +1659,7 @@ Quality, rate control and rate distortion options</div><div> <span style="white-space:pre-wrap">  </span>Initial buffer occupancy. The portion of the decode buffer which</div><div> <span style="white-space:pre-wrap">       </span>must be full before the decoder will begin decoding.  Determines</div><div> <span style="white-space:pre-wrap">      </span>absolute maximum frame size. May be specified as a fractional value</div><div>-<span style="white-space:pre-wrap">     </span>between 0 and 1, or in kbits. In other words these two option pairs</div><div>+<span style="white-space:pre-wrap">     </span>between 0 and 1, or in kbits. In other words, these two option pairs</div><div> <span style="white-space:pre-wrap">   </span>are equivalent::</div><div> </div><div> <span style="white-space:pre-wrap">      </span>--vbv-bufsize 1000 --vbv-init 900</div><div>@@ -1713,7 +1713,7 @@ Quality, rate control and rate distortion options</div><div> </div><div> <span style="white-space:pre-wrap">       </span>Adaptive Quantization operating mode. Raise or lower per-block</div><div> <span style="white-space:pre-wrap"> </span>quantization based on complexity analysis of the source image. The</div><div>-<span style="white-space:pre-wrap">      </span>more complex the block, the more quantization is used. This offsets</div><div>+<span style="white-space:pre-wrap">     </span>more complex the block, the more quantization is used. These offsets</div><div> <span style="white-space:pre-wrap">   </span>the tendency of the encoder to spend too many bits on complex areas</div><div> <span style="white-space:pre-wrap">    </span>and not enough in flat areas.</div><div> </div><div>@@ -1740,8 +1740,8 @@ Quality, rate control and rate distortion options</div><div> <span style="white-space:pre-wrap">   </span>Enable adaptive quantization</div><div> <span style="white-space:pre-wrap">   </span>It scales the quantization step size according to the spatial activity of one</div><div> <span style="white-space:pre-wrap">  </span>coding unit relative to frame average spatial activity. This AQ method utilizes</div><div>-<span style="white-space:pre-wrap"> </span>the minimum variance of sub-unit in each coding unit to represent the coding</div><div>-<span style="white-space:pre-wrap">    </span>unit’s spatial complexity.</div><div>+<span style="white-space:pre-wrap">    </span>the minimum variance of sub-unit in each coding unit to represent the spatial </div><div>+<span style="white-space:pre-wrap"> </span>complexity of the coding unit.</div><div> </div><div> .. option:: --qp-adaptation-range</div><div> </div><div>@@ -1941,7 +1941,7 @@ Quality, rate control and rate distortion options</div><div> </div><div> <span style="white-space:pre-wrap">      </span>The frame number indicates the beginning of a zone. The options </div><div> <span style="white-space:pre-wrap">      </span>following this is applied until another zone begins. The reconfigurable </div><div>-<span style="white-space:pre-wrap">       </span>options can be spcified as --<feature name> <feature value></div><div>+<span style="white-space:pre-wrap"> </span>options can be specified as --<feature name> <feature value></div><div> <span style="white-space:pre-wrap">       </span></div><div> <span style="white-space:pre-wrap">       </span>**CLI ONLY**</div><div> </div><div>@@ -2077,7 +2077,7 @@ Loop filters</div><div> </div><div> .. option:: --sao-non-deblock, --no-sao-non-deblock</div><div> </div><div>-<span style="white-space:pre-wrap">    </span>Specify how to handle depencency between SAO and deblocking filter.</div><div>+<span style="white-space:pre-wrap">     </span>Specify how to handle dependency between SAO and deblocking filter.</div><div> <span style="white-space:pre-wrap">    </span>When enabled, non-deblocked pixels are used for SAO analysis. When</div><div> <span style="white-space:pre-wrap">     </span>disabled, SAO analysis skips the right/bottom boundary areas.</div><div> <span style="white-space:pre-wrap">  </span>Default disabled</div><div>@@ -2167,7 +2167,7 @@ VUI fields must be manually specified.</div><div> <span style="white-space:pre-wrap">    </span>2. ntsc</div><div> <span style="white-space:pre-wrap">        </span>3. secam</div><div> <span style="white-space:pre-wrap">       </span>4. mac</div><div>-<span style="white-space:pre-wrap">  </span>5. undefined</div><div>+<span style="white-space:pre-wrap">    </span>5. unknown</div><div> </div><div> .. option:: --range <full|limited></div><div> </div><div>@@ -2220,15 +2220,15 @@ VUI fields must be manually specified.</div><div> <span style="white-space:pre-wrap">     </span>Specify color matrix setting i.e set the matrix coefficients used in</div><div> <span style="white-space:pre-wrap">   </span>deriving the luma and chroma. Default undefined (not signaled)</div><div> </div><div>-<span style="white-space:pre-wrap"> </span>0. GBR</div><div>+<span style="white-space:pre-wrap">  </span>0. gbr</div><div> <span style="white-space:pre-wrap"> </span>1. bt709</div><div>-<span style="white-space:pre-wrap">        </span>2. undef </div><div>+<span style="white-space:pre-wrap">      </span>2. unknown </div><div> <span style="white-space:pre-wrap">   </span>3. **reserved**</div><div> <span style="white-space:pre-wrap">        </span>4. fcc</div><div> <span style="white-space:pre-wrap"> </span>5. bt470bg</div><div> <span style="white-space:pre-wrap">     </span>6. smpte170m</div><div> <span style="white-space:pre-wrap">   </span>7. smpte240m</div><div>-<span style="white-space:pre-wrap">    </span>8. YCgCo</div><div>+<span style="white-space:pre-wrap">        </span>8. ycgco</div><div> <span style="white-space:pre-wrap">       </span>9. bt2020nc</div><div> <span style="white-space:pre-wrap">    </span>10. bt2020c</div><div> <span style="white-space:pre-wrap">    </span>11. smpte2085</div><div>@@ -2338,13 +2338,13 @@ VUI fields must be manually specified.</div><div> </div><div> <span style="white-space:pre-wrap">    </span>Emit the alternative transfer characteristics SEI message where the integer</div><div> <span style="white-space:pre-wrap">    </span>is the preferred transfer characteristics. Required for HLG (Hybrid Log Gamma)</div><div>-<span style="white-space:pre-wrap">  </span>signalling. Not signalled by default.</div><div>+<span style="white-space:pre-wrap">   </span>signaling. Not signaled by default.</div><div> </div><div> .. option:: --pic-struct <integer></div><div> </div><div> <span style="white-space:pre-wrap"> </span>Set the picture structure and emits it in the picture timing SEI message.</div><div> <span style="white-space:pre-wrap">      </span>Values in the range 0..12. See D.3.3 of the HEVC spec. for a detailed explanation.</div><div>-<span style="white-space:pre-wrap">      </span>Required for HLG (Hybrid Log Gamma) signalling. Not signalled by default.</div><div>+<span style="white-space:pre-wrap">       </span>Required for HLG (Hybrid Log Gamma) signaling. Not signaled by default.</div><div> </div><div> Bitstream options</div><div> =================</div><div>@@ -2375,7 +2375,7 @@ Bitstream options</div><div> </div><div> .. option:: --hrd, --no-hrd</div><div> </div><div>-<span style="white-space:pre-wrap">        </span>Enable the signalling of HRD parameters to the decoder. The HRD</div><div>+<span style="white-space:pre-wrap"> </span>Enable the signaling of HRD parameters to the decoder. The HRD</div><div> <span style="white-space:pre-wrap"> </span>parameters are carried by the Buffering Period SEI messages and</div><div> <span style="white-space:pre-wrap">        </span>Picture Timing SEI messages providing timing information to the</div><div> <span style="white-space:pre-wrap">        </span>decoder. Default disabled</div><div>@@ -2383,7 +2383,7 @@ Bitstream options</div><div>     <span style="white-space:pre-wrap">  </span></div><div> .. option:: --hrd-concat, --no-hrd-concat</div><div> </div><div>-    Set concantenation flag for the first keyframe in the HRD buffering period SEI. This</div><div>+    Set concatenation flag for the first keyframe in the HRD buffering period SEI. This</div><div>     is to signal the decoder if splicing is performed during bitstream generation. </div><div>     Recommended to enable this option during chunked encoding, except for the first chunk.</div><div>     Default disabled.</div><div>@@ -2432,7 +2432,7 @@ Bitstream options</div><div> </div><div> <span style="white-space:pre-wrap">      </span>Enable a temporal sub layer. All referenced I/P/B frames are in the</div><div> <span style="white-space:pre-wrap">    </span>base layer and all unreferenced B frames are placed in a temporal</div><div>-<span style="white-space:pre-wrap">       </span>enhancement layer. A decoder may chose to drop the enhancement layer </div><div>+<span style="white-space:pre-wrap">  </span>enhancement layer. A decoder may choose to drop the enhancement layer </div><div> <span style="white-space:pre-wrap">        </span>and only decode and display the base layer slices.</div><div> <span style="white-space:pre-wrap">     </span></div><div> <span style="white-space:pre-wrap">       </span>If used with a fixed GOP (:option:`--b-adapt` 0) and :option:`--bframes`</div><div>@@ -2470,7 +2470,7 @@ Bitstream options</div><div> .. option:: --opt-cu-delta-qp, --no-opt-cu-delta-qp</div><div> </div><div> <span style="white-space:pre-wrap">    </span>Optimize CU level QPs by pulling up lower QPs to value close to meanQP thereby</div><div>-<span style="white-space:pre-wrap">  </span>minimizing fluctuations in deltaQP signalling. Default disabled.</div><div>+<span style="white-space:pre-wrap">        </span>minimizing fluctuations in deltaQP signaling. Default disabled.</div><div> </div><div> <span style="white-space:pre-wrap">       </span>Only effective at RD levels 5 and 6</div><div> </div><div>@@ -2489,10 +2489,10 @@ DCT Approximations</div><div> .. option:: --lowpass-dct</div><div> </div><div> <span style="white-space:pre-wrap">       </span>If enabled, x265 will use low-pass subband dct approximation instead of the</div><div>-<span style="white-space:pre-wrap">     </span>standard dct for 16x16 and 32x32 blocks. This approximation is less computational </div><div>+<span style="white-space:pre-wrap">     </span>standard dct for 16x16 and 32x32 blocks. This approximation is less computationally </div><div> <span style="white-space:pre-wrap">  </span>intensive but it generates truncated coefficient matrixes for the transformed block. </div><div> <span style="white-space:pre-wrap"> </span>Empirical analysis shows marginal loss in compression and performance gains up to 10%,</div><div>-<span style="white-space:pre-wrap">  </span>paticularly at moderate bit-rates.</div><div>+<span style="white-space:pre-wrap">      </span>particularly at moderate bit-rates.</div><div> </div><div> <span style="white-space:pre-wrap">   </span>This approximation should be considered for platforms with performance and time </div><div> <span style="white-space:pre-wrap">      </span>constrains.</div><div>@@ -2594,8 +2594,8 @@ See section :ref:`svthevc <SvtHevc>` for more details.</div><div> .. option:: --svt-compressed-ten-bit-format, --no-svt-compressed-ten-bit-format</div><div> </div><div>     In order to reduce the size of input YUV and to increase channel density,</div><div>-    SVT-HEVC accetps inputs in compressed-ten-bit-format. The conversion between</div><div>-    yuv420p10le and compressed ten bit format is a lossless operation. For more</div><div>+    SVT-HEVC accepts inputs in compressed-ten-bit-format. The conversion between</div><div>+    yuv420p10le and compressed ten-bit format is a lossless operation. For more</div><div>     details about the conversion refer</div><div>     `here<<a href="https://github.com/intel/SVT-HEVC/blob/master/Docs/SVT-HEVC_Encoder_User_Guide.pdf" target="_blank">https://github.com/intel/SVT-HEVC/blob/master/Docs/SVT-HEVC_Encoder_User_Guide.pdf</a>>'_.</div><div> </div><div>@@ -2647,7 +2647,7 @@ See section :ref:`svthevc <SvtHevc>` for more details.</div><div>     supports Low delay(P/B) and random access prediction structure. In a low delay</div><div>     structure, pictures within a mini-gop can only refer to the previous pictures</div><div>     in display order. In other words, picture with display order N can only refer</div><div>-    to pictures of display order lower than N. In random acccess method, pictures</div><div>+    to pictures of display order lower than N. In random access method, pictures</div><div>     can be referenced from both the directions. It accepts values in the range</div><div>     [0-2]</div><div> </div><div>diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt</div><div>old mode 100644</div><div>new mode 100755</div><div>index 1d1f8ca..d9ed398</div><div>--- a/source/CMakeLists.txt</div><div>+++ b/source/CMakeLists.txt</div><div>@@ -29,7 +29,7 @@ option(NATIVE_BUILD "Target the build CPU" OFF)</div><div> option(STATIC_LINK_CRT "Statically link C runtime for release builds" OFF)</div><div> mark_as_advanced(FPROFILE_USE FPROFILE_GENERATE NATIVE_BUILD)</div><div> # X265_BUILD must be incremented each time the public API is changed</div><div>-set(X265_BUILD 195)</div><div>+set(X265_BUILD 196)</div><div> configure_file("${PROJECT_SOURCE_DIR}/<a href="http://x265.def.in" target="_blank">x265.def.in</a>"</div><div>                "${PROJECT_BINARY_DIR}/x265.def")</div><div> configure_file("${PROJECT_SOURCE_DIR}/<a href="http://x265_config.h.in" target="_blank">x265_config.h.in</a>"</div><div>diff --git a/source/common/param.cpp b/source/common/param.cpp</div><div>old mode 100644</div><div>new mode 100755</div><div>index 2405684..845c38b</div><div>--- a/source/common/param.cpp</div><div>+++ b/source/common/param.cpp</div><div>@@ -1123,7 +1123,7 @@ int x265_param_parse(x265_param* p, const char* name, const char* value)</div><div>             p->vui.bEnableOverscanInfoPresentFlag = 1;</div><div>             p->vui.bEnableOverscanAppropriateFlag = 1;</div><div>         }</div><div>-        else if (!strcmp(value, "undef"))</div><div>+        else if (!strcmp(value, "unknown"))</div><div>             p->vui.bEnableOverscanInfoPresentFlag = 0;</div><div>         else</div><div>             bError = true;</div><div>@@ -1645,23 +1645,23 @@ int x265_check_params(x265_param* param)</div><div>           "Sample Aspect Ratio height must be greater than 0");</div><div>     CHECK(param->vui.videoFormat < 0 || param->vui.videoFormat > 5,</div><div>           "Video Format must be component,"</div><div>-          " pal, ntsc, secam, mac or undef");</div><div>+          " pal, ntsc, secam, mac or unknown");</div><div>     CHECK(param->vui.colorPrimaries < 0</div><div>           || param->vui.colorPrimaries > 12</div><div>           || param->vui.colorPrimaries == 3,</div><div>-          "Color Primaries must be undef, bt709, bt470m,"</div><div>+          "Color Primaries must be unknown, bt709, bt470m,"</div><div>           " bt470bg, smpte170m, smpte240m, film, bt2020, smpte-st-428, smpte-rp-431 or smpte-eg-432");</div><div>     CHECK(param->vui.transferCharacteristics < 0</div><div>           || param->vui.transferCharacteristics > 18</div><div>           || param->vui.transferCharacteristics == 3,</div><div>-          "Transfer Characteristics must be undef, bt709, bt470m, bt470bg,"</div><div>+          "Transfer Characteristics must be unknown, bt709, bt470m, bt470bg,"</div><div>           " smpte170m, smpte240m, linear, log100, log316, iec61966-2-4, bt1361e,"</div><div>           " iec61966-2-1, bt2020-10, bt2020-12, smpte-st-2084, smpte-st-428 or arib-std-b67");</div><div>     CHECK(param->vui.matrixCoeffs < 0</div><div>           || param->vui.matrixCoeffs > 14</div><div>           || param->vui.matrixCoeffs == 3,</div><div>-          "Matrix Coefficients must be undef, bt709, fcc, bt470bg, smpte170m,"</div><div>-          " smpte240m, GBR, YCgCo, bt2020nc, bt2020c, smpte-st-2085, chroma-nc, chroma-c or ictcp");</div><div>+          "Matrix Coefficients must be unknown, bt709, fcc, bt470bg, smpte170m,"</div><div>+          " smpte240m, gbr, ycgco, bt2020nc, bt2020c, smpte-st-2085, chroma-nc, chroma-c or ictcp");</div><div>     CHECK(param->vui.chromaSampleLocTypeTopField < 0</div><div>           || param->vui.chromaSampleLocTypeTopField > 5,</div><div>           "Chroma Sample Location Type Top Field must be 0-5");</div><div>@@ -1758,11 +1758,9 @@ int x265_check_params(x265_param* param)</div><div>         CHECK((param->rc.vbvMaxBitrate <= 0 || param->rc.vbvBufferSize <= 0), "Dolby Vision requires VBV settings to enable HRD.\n");</div><div>         CHECK((param->internalBitDepth != 10), "Dolby Vision profile - 5, profile - 8.1 and profile - 8.2 is Main10 only\n");</div><div>         CHECK((param->internalCsp != X265_CSP_I420), "Dolby Vision profile - 5, profile - 8.1 and profile - 8.2 requires YCbCr 4:2:0 color space\n");</div><div>-</div><div>         if (param->dolbyProfile == 81)</div><div>             CHECK(!(param->masteringDisplayColorVolume), "Dolby Vision profile - 8.1 requires Mastering display color volume information\n");</div><div>     }</div><div>-</div><div>     if (param->bField && param->interlaceMode)</div><div>     {</div><div>         CHECK( (param->bFrameAdaptive==0), "Adaptive B-frame decision method should be closed for field feature.\n" );</div><div>@@ -1770,17 +1768,23 @@ int x265_check_params(x265_param* param)</div><div>     }</div><div>     CHECK(param->selectiveSAO < 0 || param->selectiveSAO > 4,</div><div>         "Invalid SAO tune level. Value must be between 0 and 4 (inclusive)");</div><div>-    if (param->bEnableSceneCutAwareQp && !param->rc.bStatRead)</div><div>+    if (param->bEnableSceneCutAwareQp)</div><div>     {</div><div>-        param->bEnableSceneCutAwareQp = 0;</div><div>-        x265_log(param, X265_LOG_WARNING, "Disabling Scenecut Aware Frame Quantizer Selection since it works only in pass 2\n");</div><div>+        if (!param->rc.bStatRead)</div><div>+        {</div><div>+            param->bEnableSceneCutAwareQp = 0;</div><div>+            x265_log(param, X265_LOG_WARNING, "Disabling Scenecut Aware Frame Quantizer Selection since it works only in pass 2\n");</div><div>+        }</div><div>+        else</div><div>+        {</div><div>+            CHECK(param->scenecutWindow < 0 || param->scenecutWindow > 1000,</div><div>+            "Invalid scenecut Window duration. Value must be between 0 and 1000(inclusive)");</div><div>+            CHECK(param->refQpDelta < 0 || param->refQpDelta > 10,</div><div>+            "Invalid refQpDelta value. Value must be between 0 and 10 (inclusive)");</div><div>+            CHECK(param->nonRefQpDelta < 0 || param->nonRefQpDelta > 10,</div><div>+            "Invalid nonRefQpDelta value. Value must be between 0 and 10 (inclusive)");</div><div>+        }</div><div>     }</div><div>-    CHECK(param->scenecutWindow < 0 || param->scenecutWindow > 1000,</div><div>-        "Invalid scenecut Window duration. Value must be between 0 and 1000(inclusive)");</div><div>-    CHECK(param->refQpDelta < 0 || param->refQpDelta > 10,</div><div>-        "Invalid refQpDelta value. Value must be between 0 and 10 (inclusive)");</div><div>-    CHECK(param->nonRefQpDelta < 0 || param->nonRefQpDelta > 10,</div><div>-        "Invalid nonRefQpDelta value. Value must be between 0 and 10 (inclusive)");</div><div>     if (param->bEnableHME)</div><div>     {</div><div>         for (int level = 0; level < 3; level++)</div><div>diff --git a/source/x265cli.cpp b/source/x265cli.cpp</div><div>old mode 100644</div><div>new mode 100755</div><div>index b198e55..6e8e0e6</div><div>--- a/source/x265cli.cpp</div><div>+++ b/source/x265cli.cpp</div><div>@@ -296,16 +296,16 @@ namespace X265_NS {</div><div>         H0("                                 5=40:33, 6=24:11, 7=20:11, 8=32:11, 9=80:33, 10=18:11, 11=15:11,\n");</div><div>         H0("                                 12=64:33, 13=160:99, 14=4:3, 15=3:2, 16=2:1 or custom ratio of <int:int>. Default %d\n", param->vui.aspectRatioIdc);</div><div>         H1("   --display-window <string>     Describe overscan cropping region as 'left,top,right,bottom' in pixels\n");</div><div>-        H1("   --overscan <string>           Specify whether it is appropriate for decoder to show cropped region: undef, show or crop. Default undef\n");</div><div>-        H0("   --videoformat <string>        Specify video format from undef, component, pal, ntsc, secam, mac. Default undef\n");</div><div>+        H1("   --overscan <string>           Specify whether it is appropriate for decoder to show cropped region: unknown, show or crop. Default unknown\n");</div><div>+        H0("   --videoformat <string>        Specify video format from unknown, component, pal, ntsc, secam, mac. Default unknown\n");</div><div>         H0("   --range <string>              Specify black level and range of luma and chroma signals as full or limited Default limited\n");</div><div>         H0("   --colorprim <string>          Specify color primaries from  bt709, unknown, reserved, bt470m, bt470bg, smpte170m,\n");</div><div>-        H0("                                 smpte240m, film, bt2020, smpte428, smpte431, smpte432. Default undef\n");</div><div>+        H0("                                 smpte240m, film, bt2020, smpte428, smpte431, smpte432. Default unknown\n");</div><div>         H0("   --transfer <string>           Specify transfer characteristics from bt709, unknown, reserved, bt470m, bt470bg, smpte170m,\n");</div><div>         H0("                                 smpte240m, linear, log100, log316, iec61966-2-4, bt1361e, iec61966-2-1,\n");</div><div>-        H0("                                 bt2020-10, bt2020-12, smpte2084, smpte428, arib-std-b67. Default undef\n");</div><div>-        H1("   --colormatrix <string>        Specify color matrix setting from undef, bt709, fcc, bt470bg, smpte170m,\n");</div><div>-        H1("                                 smpte240m, GBR, YCgCo, bt2020nc, bt2020c, smpte2085, chroma-derived-nc, chroma-derived-c, ictcp. Default undef\n");</div><div>+        H0("                                 bt2020-10, bt2020-12, smpte2084, smpte428, arib-std-b67. Default unknown\n");</div><div>+        H1("   --colormatrix <string>        Specify color matrix setting from unknown, bt709, fcc, bt470bg, smpte170m,\n");</div><div>+        H1("                                 smpte240m, gbr, ycgco, bt2020nc, bt2020c, smpte2085, chroma-derived-nc, chroma-derived-c, ictcp. Default unknown\n");</div><div>         H1("   --chromaloc <integer>         Specify chroma sample location (0 to 5). Default of %d\n", param->vui.chromaSampleLocTypeTopField);</div><div>         H0("   --master-display <string>     SMPTE ST 2086 master display color volume info SEI (HDR)\n");</div><div>         H0("                                    format: G(x,y)B(x,y)R(x,y)WP(x,y)L(max,min)\n");</div><div>-- </div><div>1.8.3.1</div><div><br></div></div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><font face="georgia, serif">Regards,</font><div><b><font face="georgia, serif">Aruna Matheswaran,</font></b></div><div><font face="georgia, serif">Video Codec Engineer,</font></div><div><font face="georgia, serif">Media & AI analytics BU,</font></div><div><span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span style="border:none;display:inline-block;overflow:hidden;width:153px;height:58px"><img src="https://lh5.googleusercontent.com/gjX5cPNIZgwUrhfqkTwQUZWztIKmmo0qs3kbwvkS5H-bDVE2ftte9pMTVnFLSjOcjYWLtfc6_OGpxW4vraLg2r5QAIf1Q3MpldFDgWtzK_gXi8ptw5B3joIbsGL6mxj-JRdjHzT5" width="96" height="36" style="margin-left: 0px; margin-top: 0px;"></span></span></span><font face="georgia, serif"><br></font></div><div><span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span style="border:none;display:inline-block;overflow:hidden;width:153px;height:58px"><img src="https://lh5.googleusercontent.com/gjX5cPNIZgwUrhfqkTwQUZWztIKmmo0qs3kbwvkS5H-bDVE2ftte9pMTVnFLSjOcjYWLtfc6_OGpxW4vraLg2r5QAIf1Q3MpldFDgWtzK_gXi8ptw5B3joIbsGL6mxj-JRdjHzT5" style="margin-left: 0px; margin-top: 0px;"></span></span></span><font face="georgia, serif"><br></font></div><div><font face="georgia, serif"><br></font></div></div></div></div></div></div></div></div></div>