[x265] [PATCH] bug fix: allow split in frame boundary for scaled encodes
Ashok Kumar Mishra
ashok at multicorewareinc.com
Tue May 29 16:07:31 CEST 2018
On Tue, May 29, 2018 at 7:23 PM, <bhavna at multicorewareinc.com> wrote:
> # HG changeset patch
> # User Bhavna Hariharan <bhavna at multicorewareinc.com>
> # Date 1527578404 -19800
> # Tue May 29 12:50:04 2018 +0530
> # Node ID 9db5be89d74cc55cd6aff30c2a576119ca09d8a1
> # Parent 9389296cd844bf14850b98ee181772be94d209b9
> bug fix: allow split in frame boundary for scaled encodes.
>
> For cases where the entire CTU is not within the frame boundary, the CU
> must be
> allowed to split when the depth from the save encode is not applicable.
>
> diff -r 9389296cd844 -r 9db5be89d74c source/encoder/analysis.cpp
> --- a/source/encoder/analysis.cpp Mon May 28 14:55:57 2018 +0530
> +++ b/source/encoder/analysis.cpp Tue May 29 12:50:04 2018 +0530
> @@ -523,14 +523,15 @@
> int split = 0;
> if (m_param->intraRefine && m_param->intraRefine != 4)
> {
> - split = m_param->scaleFactor && ((cuGeom.log2CUSize ==
> (uint32_t)(g_log2Size[m_param->minCUSize] + 1)) && bDecidedDepth);
> + split = m_param->scaleFactor && bDecidedDepth && (!mightNotSplit
> ||
> + ((cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize]
> + 1))));
> if (cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize])
> && !bDecidedDepth)
> bAlreadyDecided = false;
> }
>
> if (bAlreadyDecided)
> {
> - if (bDecidedDepth)
> + if (bDecidedDepth && mightNotSplit)
> {
> Mode& mode = md.pred[0];
> md.bestMode = &mode;
> @@ -2420,10 +2421,11 @@
> m_refineLevel = m_param->interRefine;
> else
> m_refineLevel = m_frame->m_classifyFrame ? 1 : 3;
> - int split = (m_param->scaleFactor && m_refineLevel &&
> cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1) &&
> bDecidedDepth);
> + int split = (m_param->scaleFactor && bDecidedDepth && (!mightNotSplit
> ||
> + (m_refineLevel && cuGeom.log2CUSize ==
> (uint32_t)(g_log2Size[m_param->minCUSize] + 1))));
> td.split = split;
>
> - if (bDecidedDepth)
> + if (bDecidedDepth && mightNotSplit)
> {
> setLambdaFromQP(parentCTU, qp, lqp);
>
>
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
>
Pushed.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20180529/c2314fb0/attachment.html>
More information about the x265-devel
mailing list