>From ddf8d39d0efadb8e5612a3645e4385ba51f9825e Mon Sep 17 00:00:00 2001 From: Shanmathi Paramanandam <shanmathi.paramanan...@multicorewareinc.com> Date: Fri, 17 Jan 2025 15:21:37 +0530 Subject: [PATCH] fix to resolve issue when rd-refine and dynamic-refine are used together
This patch also disables rd refine when enabled with scc and dynamic refine/refine-inter --- source/common/param.cpp | 13 +++++++++++++ source/encoder/analysis.cpp | 17 ++++++++++++----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/source/common/param.cpp b/source/common/param.cpp index ead908013..b06db8a43 100755 --- a/source/common/param.cpp +++ b/source/common/param.cpp @@ -2025,6 +2025,19 @@ int x265_check_params(x265_param* param) if (checkValid) param->bEnableSCC = 0; } + if (!!param->bEnableSCC) + { + if (param->bEnableRdRefine && param->bDynamicRefine) + { + param->bEnableRdRefine = 0; + x265_log(param, X265_LOG_WARNING, "Disabling rd-refine as it can not be used with scc and dynamic-refine\n"); + } + if (param->bEnableRdRefine && param->interRefine > 0) + { + param->bEnableRdRefine = 0; + x265_log(param, X265_LOG_WARNING, "Disabling rd-refine as it can not be used with scc and inter-refine\n"); + } + } CHECK(!!param->bEnableSCC&& param->rdLevel != 6, "Enabling scc extension in x265 requires rdlevel of 6 "); #endif diff --git a/source/encoder/analysis.cpp b/source/encoder/analysis.cpp index da5aeca77..5475e4800 100644 --- a/source/encoder/analysis.cpp +++ b/source/encoder/analysis.cpp @@ -2960,12 +2960,19 @@ void Analysis::recodeCU(const CUData& parentCTU, const CUGeom& cuGeom, int32_t q if (m_refineLevel > 1 || (m_refineLevel && parentCTU.m_predMode[cuGeom.absPartIdx] == MODE_SKIP && !mode.cu.isSkipped(0))) { - if (parentCTU.m_cuDepth[cuGeom.absPartIdx] < 4 && mightNotSplit) - m_evaluateInter = 1; + if ((m_slice->m_origSliceType != I_SLICE)) + { + if (parentCTU.m_cuDepth[cuGeom.absPartIdx] < 4 && mightNotSplit) + m_evaluateInter = 1; + else + bDecidedDepth = true; + m_param->rdLevel > 4 ? compressInterCU_rd5_6(parentCTU, cuGeom, qp) : compressInterCU_rd0_4(parentCTU, cuGeom, qp); + m_evaluateInter = 0; + } else - bDecidedDepth = true; - m_param->rdLevel > 4 ? compressInterCU_rd5_6(parentCTU, cuGeom, qp) : compressInterCU_rd0_4(parentCTU, cuGeom, qp); - m_evaluateInter = 0; + { + compressIntraCU(parentCTU, cuGeom, qp); + } } } if (!bDecidedDepth || split) -- 2.47.0.windows.1
0001-fix-to-use-rd-refine-and-dynamic-refine.patch
Description: 0001-fix-to-use-rd-refine-and-dynamic-refine.patch
_______________________________________________ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel