On Wed, Jul 11, 2018 at 7:54 PM, <ar...@multicorewareinc.com> wrote:
> # HG changeset patch > # User Aruna Matheswaran <ar...@multicorewareinc.com> > # Date 1530254734 -19800 > # Fri Jun 29 12:15:34 2018 +0530 > # Node ID be4894f073613c44279e0972f0fca7f7b996895e > # Parent 0106f9f2f867ee20893a317e98c60e9ca626e7d2 > multi-pass-opt-distortion: Apply QP offsets even when aq-mode is disabled > > Currently, QP offsets from multi-pass-opt-distortion will not get applied > on > baseQP when aq-mode is disabled. This patch enables distortion QP offsets > to be > applied even when aq-mode is set to 0 and hence this will be an output > changing > commit. > > diff -r 0106f9f2f867 -r be4894f07361 source/encoder/encoder.cpp > --- a/source/encoder/encoder.cpp Mon Apr 23 14:16:54 2018 +0530 > +++ b/source/encoder/encoder.cpp Fri Jun 29 12:15:34 2018 +0530 > @@ -2522,6 +2522,7 @@ > void Encoder::initPPS(PPS *pps) > { > bool bIsVbv = m_param->rc.vbvBufferSize > 0 && > m_param->rc.vbvMaxBitrate > 0; > + bool bEnableDistOffset = m_param->analysisMultiPassDistortion && > m_param->rc.bStatRead; > > if (!m_param->bLossless && (m_param->rc.aqMode || bIsVbv || > m_param->bAQMotion)) > { > @@ -2529,6 +2530,11 @@ > pps->maxCuDQPDepth = g_log2Size[m_param->maxCUSize] - > g_log2Size[m_param->rc.qgSize]; > X265_CHECK(pps->maxCuDQPDepth <= 3, "max CU DQP depth cannot be > greater than 3\n"); > } > + else if (!m_param->bLossless && bEnableDistOffset) > + { > + pps->bUseDQP = true; > + pps->maxCuDQPDepth = 0; > + } > else > { > pps->bUseDQP = false; > diff -r 0106f9f2f867 -r be4894f07361 source/encoder/ratecontrol.cpp > --- a/source/encoder/ratecontrol.cpp Mon Apr 23 14:16:54 2018 +0530 > +++ b/source/encoder/ratecontrol.cpp Fri Jun 29 12:15:34 2018 +0530 > @@ -2640,8 +2640,9 @@ > FrameData& curEncData = *curFrame->m_encData; > int64_t actualBits = bits; > Slice *slice = curEncData.m_slice; > + bool bEnableDistOffset = m_param->analysisMultiPassDistortion && > m_param->rc.bStatRead; > > - if (m_param->rc.aqMode || m_isVbv || m_param->bAQMotion) > + if (m_param->rc.aqMode || m_isVbv || m_param->bAQMotion || > bEnableDistOffset) > { > if (m_isVbv && !(m_2pass && m_param->rc.rateControlMode == > X265_RC_CRF)) > { > @@ -2655,10 +2656,10 @@ > rce->qpaRc = curEncData.m_avgQpRc; > } > > - if (m_param->rc.aqMode || m_param->bAQMotion) > + if (m_param->rc.aqMode || m_param->bAQMotion || bEnableDistOffset) > { > double avgQpAq = 0; > - /* determine actual avg encoded QP, after AQ/cutree > adjustments */ > + /* determine actual avg encoded QP, after > AQ/cutree/distortion adjustments */ > for (uint32_t i = 0; i < slice->m_sps->numCuInHeight; i++) > avgQpAq += curEncData.m_rowStat[i].sumQpAq; > > > _______________________________________________ > x265-devel mailing list > x265-devel@videolan.org > https://mailman.videolan.org/listinfo/x265-devel > > Pushed.
_______________________________________________ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel