[x265] [PATCH] fix to use rd-refine and dynamic-refine together
Shanmathi Paramanandam
shanmathi.paramanandam at multicorewareinc.com
Wed Jan 29 04:01:14 UTC 2025
>From ddf8d39d0efadb8e5612a3645e4385ba51f9825e Mon Sep 17 00:00:00 2001
From: Shanmathi Paramanandam <shanmathi.paramanandam at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20250129/aae74939/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-fix-to-use-rd-refine-and-dynamic-refine.patch
Type: application/octet-stream
Size: 2838 bytes
Desc: 0001-fix-to-use-rd-refine-and-dynamic-refine.patch
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20250129/aae74939/attachment-0001.obj>
More information about the x265-devel
mailing list