<div dir="ltr">From 78c8921a5f48615dc7184cc4030c4e400e55ff76 Mon Sep 17 00:00:00 2001<br>From: Niranjan Kumar <<a href="mailto:niranjan@multicorewareinc.com">niranjan@multicorewareinc.com</a>><br>Date: Mon, 31 Oct 2022 00:48:22 +0530<br>Subject: [PATCH] Add BBAQ to CRF and fix qgSize 0 issue<br><br>---<br> source/common/lowres.cpp       |  2 +-<br> source/encoder/ratecontrol.cpp | 10 ++++++++++<br> 2 files changed, 11 insertions(+), 1 deletion(-)<br><br>diff --git a/source/common/lowres.cpp b/source/common/lowres.cpp<br>index 16ff02509..97ed7b0cd 100644<br>--- a/source/common/lowres.cpp<br>+++ b/source/common/lowres.cpp<br>@@ -95,7 +95,7 @@ bool Lowres::create(x265_param* param, PicYuv *origPic, uint32_t qgSize)<br> <br>     size_t planesize = lumaStride * (lines + 2 * origPic->m_lumaMarginY);<br>     size_t padoffset = lumaStride * origPic->m_lumaMarginY + origPic->m_lumaMarginX;<br>-    if (!!param->rc.aqMode || !!param->rc.hevcAq || !!param->bAQMotion)<br>+    if (!!param->rc.aqMode || !!param->rc.hevcAq || !!param->bAQMotion || !!param->bEnableWeightedPred || !!param->bEnableWeightedBiPred)<br>     {<br>         CHECKED_MALLOC_ZERO(qpAqOffset, double, cuCountFullRes);<br>         CHECKED_MALLOC_ZERO(invQscaleFactor, int, cuCountFullRes);<br>diff --git a/source/encoder/ratecontrol.cpp b/source/encoder/ratecontrol.cpp<br>index 7e0dfe054..3defaf8bf 100644<br>--- a/source/encoder/ratecontrol.cpp<br>+++ b/source/encoder/ratecontrol.cpp<br>@@ -1475,6 +1475,16 @@ int RateControl::rateControlStart(Frame* curFrame, RateControlEntry* rce, Encode<br>         if (!m_param->rc.bEncFocusedFramesOnly)<br>         {<br>             rce->qpPrev = x265_qScale2qp(rce->qScale);<br>+            if (m_param->bEnableSceneCutAwareQp)<br>+            {<br>+                double lqmin = m_lmin[m_sliceType];<br>+                double lqmax = m_lmax[m_sliceType];<br>+                if (m_param->bEnableSceneCutAwareQp & FORWARD)<br>+                    rce->newQScale = forwardMasking(curFrame, rce->newQScale);<br>+                if (m_param->bEnableSceneCutAwareQp & BACKWARD)<br>+                    rce->newQScale = backwardMasking(curFrame, rce->newQScale);<br>+                rce->newQScale = x265_clip3(lqmin, lqmax, rce->newQScale);<br>+            }<br>             rce->qScale = rce->newQScale;<br>             rce->qpaRc = curEncData.m_avgQpRc = curEncData.m_avgQpAq = x265_qScale2qp(rce->newQScale);<br>             m_qp = int(rce->qpaRc + 0.5);<br>-- <br>2.18.0.windows.1<br><br><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><font color="#0c343d" face="verdana, sans-serif"><br></font></div><div dir="ltr"><font color="#0c343d" face="verdana, sans-serif">Thanks & Regards</font><div><font color="#0c343d" face="verdana, sans-serif"><b>Niranjan Kumar B</b></font></div><div><font size="1" color="#0c343d" face="verdana, sans-serif">Video Codec Engineer </font></div><div><font size="1" color="#0c343d" face="verdana, sans-serif">Media & AI Analytics</font></div><div><font face="trebuchet ms, sans-serif" color="#0c343d">+91 958 511 1449</font></div><div><a href="https://multicorewareinc.com/" style="color:rgb(17,85,204)" target="_blank"><img src="https://docs.google.com/uc?export=download&id=1kc3RJu9M8bnIf6Xa5rUw2d-eEVUsPBE5&revid=0B7tw9XJBmynaemR1VUpQUi9DVytRVW5SVkRwVTFjb1hBMUcwPQ"></a></div></div></div></div></div></div></div></div>