Re: [x265] [PATCH] scaling: allow refinement of inter/intra frames when scalefactor is zero
On Mon, Apr 30, 2018 at 5:06 PM, wrote: > # HG changeset patch > # User Kavitha Sampath > # Date 1524568273 -19800 > # Tue Apr 24 16:41:13 2018 +0530 > # Node ID 1982e4a9bbd06e89220f0c3917a640c1e482cdd6 > # Parent 07defe235cde1949c55464952ee1dbdc10baf5e4 > scaling: allow refinement of inter/intra frames when scalefactor is zero > > Also disable analysis of CU with min-cu size when scale factor is zero > Pushed to default and merged with stable; this fix will be a part of the imminent v3.0 release. Thanks. > > diff -r 07defe235cde -r 1982e4a9bbd0 source/encoder/analysis.cpp > --- a/source/encoder/analysis.cpp Thu Apr 12 16:57:19 2018 +0530 > +++ b/source/encoder/analysis.cpp Tue Apr 24 16:41:13 2018 +0530 > @@ -523,7 +523,7 @@ > int split = 0; > if (m_param->intraRefine && m_param->intraRefine != 4) > { > -split = ((cuGeom.log2CUSize == > (uint32_t)(g_log2Size[m_param->minCUSize] > + 1)) && bDecidedDepth); > +split = m_param->scaleFactor && ((cuGeom.log2CUSize == > (uint32_t)(g_log2Size[m_param->minCUSize] + 1)) && bDecidedDepth); > if (cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize]) > && !bDecidedDepth) > bAlreadyDecided = false; > } > @@ -2420,7 +2420,7 @@ > m_refineLevel = m_param->interRefine; > else > m_refineLevel = m_frame->m_classifyFrame ? 1 : 3; > -int split = (m_refineLevel && cuGeom.log2CUSize == > (uint32_t)(g_log2Size[m_param->minCUSize] + 1) && bDecidedDepth); > +int split = (m_param->scaleFactor && m_refineLevel && > cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1) && > bDecidedDepth); > td.split = split; > > if (bDecidedDepth) > @@ -2494,7 +2494,7 @@ > mode.cu.m_mvd[list][pu.puAbsPartIdx] = > mode.cu.m_mv[list][pu.puAbsPartIdx] - mode.amvpCand[list][ref][mode. > cu.m_mvpIdx[list][pu.puAbsPartIdx]]/*mvp*/; > } > } > -else if(m_param->scaleFactor) > +else > { > MVField candMvField[MRG_MAX_NUM_CANDS][2]; // > double length for mv of both lists > uint8_t candDir[MRG_MAX_NUM_CANDS]; > diff -r 07defe235cde -r 1982e4a9bbd0 source/encoder/encoder.cpp > --- a/source/encoder/encoder.cppThu Apr 12 16:57:19 2018 +0530 > +++ b/source/encoder/encoder.cppTue Apr 24 16:41:13 2018 +0530 > @@ -2694,27 +2694,27 @@ > > if (p->intraRefine) > { > -if (!p->analysisLoad || p->analysisReuseLevel < 10 || > !p->scaleFactor) > +if (!p->analysisLoad || p->analysisReuseLevel < 10) > { > -x265_log(p, X265_LOG_WARNING, "Intra refinement requires > analysis load, analysis-reuse-level 10, scale factor. Disabling intra > refine.\n"); > +x265_log(p, X265_LOG_WARNING, "Intra refinement requires > analysis load, analysis-reuse-level 10. Disabling intra refine.\n"); > p->intraRefine = 0; > } > } > > if (p->interRefine) > { > -if (!p->analysisLoad || p->analysisReuseLevel < 10 || > !p->scaleFactor) > +if (!p->analysisLoad || p->analysisReuseLevel < 10) > { > -x265_log(p, X265_LOG_WARNING, "Inter refinement requires > analysis load, analysis-reuse-level 10, scale factor. Disabling inter > refine.\n"); > +x265_log(p, X265_LOG_WARNING, "Inter refinement requires > analysis load, analysis-reuse-level 10. Disabling inter refine.\n"); > p->interRefine = 0; > } > } > > if (p->bDynamicRefine) > { > -if (!p->analysisLoad || p->analysisReuseLevel < 10 || > !p->scaleFactor) > +if (!p->analysisLoad || p->analysisReuseLevel < 10) > { > -x265_log(p, X265_LOG_WARNING, "Dynamic refinement requires > analysis load, analysis-reuse-level 10, scale factor. Disabling dynamic > refine.\n"); > +x265_log(p, X265_LOG_WARNING, "Dynamic refinement requires > analysis load, analysis-reuse-level 10. Disabling dynamic refine.\n"); > p->bDynamicRefine = 0; > } > if (p->interRefine) > @@ -2737,9 +2737,9 @@ > > if (p->mvRefine) > { > -if (!p->analysisLoad || p->analysisReuseLevel < 10 || > !p->scaleFactor) > +if (!p->analysisLoad || p->analysisReuseLevel < 10) > { > -x265_log(p, X265_LOG_WARNING, "MV refinement requires > analysis load, analysis-reuse-level 10, scale factor. Disabling MV > refine.\n"); > +x265_log(p, X265_LOG_WARNING, "MV refinement requires > analysis load, analysis-reuse-level 10. Disabling MV refine.\n"); > p->mvRefine = 0; > } > else if (p->interRefine >= 2) > > ___ > x265-devel mailing list > x265-devel@videolan.org > https://mailman.videolan.org/listinfo/x265-devel > >
[x265] [PATCH] scaling: allow refinement of inter/intra frames when scalefactor is zero
# HG changeset patch # User Kavitha Sampath # Date 1524568273 -19800 # Tue Apr 24 16:41:13 2018 +0530 # Node ID 1982e4a9bbd06e89220f0c3917a640c1e482cdd6 # Parent 07defe235cde1949c55464952ee1dbdc10baf5e4 scaling: allow refinement of inter/intra frames when scalefactor is zero Also disable analysis of CU with min-cu size when scale factor is zero diff -r 07defe235cde -r 1982e4a9bbd0 source/encoder/analysis.cpp --- a/source/encoder/analysis.cpp Thu Apr 12 16:57:19 2018 +0530 +++ b/source/encoder/analysis.cpp Tue Apr 24 16:41:13 2018 +0530 @@ -523,7 +523,7 @@ int split = 0; if (m_param->intraRefine && m_param->intraRefine != 4) { -split = ((cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1)) && bDecidedDepth); +split = m_param->scaleFactor && ((cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1)) && bDecidedDepth); if (cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize]) && !bDecidedDepth) bAlreadyDecided = false; } @@ -2420,7 +2420,7 @@ m_refineLevel = m_param->interRefine; else m_refineLevel = m_frame->m_classifyFrame ? 1 : 3; -int split = (m_refineLevel && cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1) && bDecidedDepth); +int split = (m_param->scaleFactor && m_refineLevel && cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1) && bDecidedDepth); td.split = split; if (bDecidedDepth) @@ -2494,7 +2494,7 @@ mode.cu.m_mvd[list][pu.puAbsPartIdx] = mode.cu.m_mv[list][pu.puAbsPartIdx] - mode.amvpCand[list][ref][mode.cu.m_mvpIdx[list][pu.puAbsPartIdx]]/*mvp*/; } } -else if(m_param->scaleFactor) +else { MVField candMvField[MRG_MAX_NUM_CANDS][2]; // double length for mv of both lists uint8_t candDir[MRG_MAX_NUM_CANDS]; diff -r 07defe235cde -r 1982e4a9bbd0 source/encoder/encoder.cpp --- a/source/encoder/encoder.cppThu Apr 12 16:57:19 2018 +0530 +++ b/source/encoder/encoder.cppTue Apr 24 16:41:13 2018 +0530 @@ -2694,27 +2694,27 @@ if (p->intraRefine) { -if (!p->analysisLoad || p->analysisReuseLevel < 10 || !p->scaleFactor) +if (!p->analysisLoad || p->analysisReuseLevel < 10) { -x265_log(p, X265_LOG_WARNING, "Intra refinement requires analysis load, analysis-reuse-level 10, scale factor. Disabling intra refine.\n"); +x265_log(p, X265_LOG_WARNING, "Intra refinement requires analysis load, analysis-reuse-level 10. Disabling intra refine.\n"); p->intraRefine = 0; } } if (p->interRefine) { -if (!p->analysisLoad || p->analysisReuseLevel < 10 || !p->scaleFactor) +if (!p->analysisLoad || p->analysisReuseLevel < 10) { -x265_log(p, X265_LOG_WARNING, "Inter refinement requires analysis load, analysis-reuse-level 10, scale factor. Disabling inter refine.\n"); +x265_log(p, X265_LOG_WARNING, "Inter refinement requires analysis load, analysis-reuse-level 10. Disabling inter refine.\n"); p->interRefine = 0; } } if (p->bDynamicRefine) { -if (!p->analysisLoad || p->analysisReuseLevel < 10 || !p->scaleFactor) +if (!p->analysisLoad || p->analysisReuseLevel < 10) { -x265_log(p, X265_LOG_WARNING, "Dynamic refinement requires analysis load, analysis-reuse-level 10, scale factor. Disabling dynamic refine.\n"); +x265_log(p, X265_LOG_WARNING, "Dynamic refinement requires analysis load, analysis-reuse-level 10. Disabling dynamic refine.\n"); p->bDynamicRefine = 0; } if (p->interRefine) @@ -2737,9 +2737,9 @@ if (p->mvRefine) { -if (!p->analysisLoad || p->analysisReuseLevel < 10 || !p->scaleFactor) +if (!p->analysisLoad || p->analysisReuseLevel < 10) { -x265_log(p, X265_LOG_WARNING, "MV refinement requires analysis load, analysis-reuse-level 10, scale factor. Disabling MV refine.\n"); +x265_log(p, X265_LOG_WARNING, "MV refinement requires analysis load, analysis-reuse-level 10. Disabling MV refine.\n"); p->mvRefine = 0; } else if (p->interRefine >= 2) # HG changeset patch # User Kavitha Sampath # Date 1524568273 -19800 # Tue Apr 24 16:41:13 2018 +0530 # Node ID 1982e4a9bbd06e89220f0c3917a640c1e482cdd6 # Parent 07defe235cde1949c55464952ee1dbdc10baf5e4 scaling: allow refinement of inter/intra frames when scalefactor is zero Also disable analysis of CU with min-cu size when scale factor is zero diff -r 07defe235cde -r 1982e4a9bbd0 source/encoder/analysis.cpp --- a/source/encoder/analysis.cpp Thu Apr 12 16:57:19 2018 +0530 +++ b/source/encoder/analysis.cpp Tue Apr 24 16:41:13 2
Re: [x265] [PATCH] scaling: allow refinement of inter/intra frames when scalefactor is zero
On Mon, Apr 30, 2018 at 11:30 AM, Pradeep Ramachandran < prad...@multicorewareinc.com> wrote: > > > On Mon, Apr 30, 2018 at 10:39 AM, Kavitha Sampath < > kavi...@multicorewareinc.com> wrote: > >> >> >> On Thu, Apr 26, 2018 at 2:38 PM, Bhavna Hariharan < >> bha...@multicorewareinc.com> wrote: >> >>> >>> >>> On Thu, Apr 26, 2018 at 12:41 PM, wrote: >>> # HG changeset patch # User Kavitha Sampath # Date 1524568273 -19800 # Tue Apr 24 16:41:13 2018 +0530 # Node ID 860c3b32f59e1883b77064b9948e8e17decd4641 # Parent 07defe235cde1949c55464952ee1dbdc10baf5e4 scaling: allow refinement of inter/intra frames when scalefactor is zero Also disable analysis of CU with min-cu size when scale factor is zero diff -r 07defe235cde -r 860c3b32f59e source/encoder/analysis.cpp --- a/source/encoder/analysis.cpp Thu Apr 12 16:57:19 2018 +0530 +++ b/source/encoder/analysis.cpp Tue Apr 24 16:41:13 2018 +0530 @@ -523,7 +523,7 @@ int split = 0; if (m_param->intraRefine && m_param->intraRefine != 4) { -split = ((cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1)) && bDecidedDepth); +split = m_param->scaleFactor && ((cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1)) && bDecidedDepth); if (cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize]) && !bDecidedDepth) bAlreadyDecided = false; } @@ -2420,7 +2420,7 @@ m_refineLevel = m_param->interRefine; else m_refineLevel = m_frame->m_classifyFrame ? 1 : 3; -int split = (m_refineLevel && cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1) && bDecidedDepth); +int split = (m_param->scaleFactor && m_refineLevel && cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1) && bDecidedDepth); td.split = split; if (bDecidedDepth) @@ -2494,7 +2494,7 @@ mode.cu.m_mvd[list][pu.puAbsPartIdx] = mode.cu.m_mv[list][pu.puAbsPartIdx] - mode.amvpCand[list][ref][mode. cu.m_mvpIdx[list][pu.puAbsPartIdx]]/*mvp*/; } } -else if(m_param->scaleFactor) +else { MVField candMvField[MRG_MAX_NUM_CANDS][2]; // double length for mv of both lists uint8_t candDir[MRG_MAX_NUM_CANDS]; diff -r 07defe235cde -r 860c3b32f59e source/encoder/encoder.cpp --- a/source/encoder/encoder.cppThu Apr 12 16:57:19 2018 +0530 +++ b/source/encoder/encoder.cppTue Apr 24 16:41:13 2018 +0530 @@ -2694,7 +2694,7 @@ if (p->intraRefine) { -if (!p->analysisLoad || p->analysisReuseLevel < 10 || !p->scaleFactor) +if (!p->analysisLoad || p->analysisReuseLevel < 10) { x265_log(p, X265_LOG_WARNING, "Intra refinement requires analysis load, analysis-reuse-level 10, scale factor. Disabling intra refine.\n"); >>> >>> All the warning messages still say that scale factor is required to >>> enable refinement methods, we can remove that. >>> >> > Can you please fix these warning messages and send an updated patch? > Sure. I will send an updated patch > > >> >>> I see that you've enabled inter-refine, intra-refine and refine-mv >>> without scale-factor, is there any reason for not enabling dynamic >>> refinement without scale factor? >>> >> >> Dynamic refinemement + scalefactor 0 requires some more testing. I >> thought of sending that as a separate patch. >> > > Sounds good. > > >> >> >>> >>> >>> p->intraRefine = 0; @@ -2703,7 +2703,7 @@ if (p->interRefine) { -if (!p->analysisLoad || p->analysisReuseLevel < 10 || !p->scaleFactor) +if (!p->analysisLoad || p->analysisReuseLevel < 10) { x265_log(p, X265_LOG_WARNING, "Inter refinement requires analysis load, analysis-reuse-level 10, scale factor. Disabling inter refine.\n"); p->interRefine = 0; @@ -2737,7 +2737,7 @@ if (p->mvRefine) { -if (!p->analysisLoad || p->analysisReuseLevel < 10 || !p->scaleFactor) +if (!p->analysisLoad || p->analysisReuseLevel < 10) { x265_log(p, X265_LOG_WARNING, "MV refinement requires analysis load, analysis-reuse-level 10, scale factor. Disabling MV refine.\n"); p->mvRefine = 0; ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel >>> >> >> >> -- >> R
Re: [x265] [PATCH] scaling: allow refinement of inter/intra frames when scalefactor is zero
On Mon, Apr 30, 2018 at 10:39 AM, Kavitha Sampath < kavi...@multicorewareinc.com> wrote: > > > On Thu, Apr 26, 2018 at 2:38 PM, Bhavna Hariharan < > bha...@multicorewareinc.com> wrote: > >> >> >> On Thu, Apr 26, 2018 at 12:41 PM, wrote: >> >>> # HG changeset patch >>> # User Kavitha Sampath >>> # Date 1524568273 -19800 >>> # Tue Apr 24 16:41:13 2018 +0530 >>> # Node ID 860c3b32f59e1883b77064b9948e8e17decd4641 >>> # Parent 07defe235cde1949c55464952ee1dbdc10baf5e4 >>> scaling: allow refinement of inter/intra frames when scalefactor is zero >>> >>> Also disable analysis of CU with min-cu size when scale factor is zero >>> >>> diff -r 07defe235cde -r 860c3b32f59e source/encoder/analysis.cpp >>> --- a/source/encoder/analysis.cpp Thu Apr 12 16:57:19 2018 +0530 >>> +++ b/source/encoder/analysis.cpp Tue Apr 24 16:41:13 2018 +0530 >>> @@ -523,7 +523,7 @@ >>> int split = 0; >>> if (m_param->intraRefine && m_param->intraRefine != 4) >>> { >>> -split = ((cuGeom.log2CUSize == >>> (uint32_t)(g_log2Size[m_param->minCUSize] >>> + 1)) && bDecidedDepth); >>> +split = m_param->scaleFactor && ((cuGeom.log2CUSize == >>> (uint32_t)(g_log2Size[m_param->minCUSize] + 1)) && bDecidedDepth); >>> if (cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize]) >>> && !bDecidedDepth) >>> bAlreadyDecided = false; >>> } >>> @@ -2420,7 +2420,7 @@ >>> m_refineLevel = m_param->interRefine; >>> else >>> m_refineLevel = m_frame->m_classifyFrame ? 1 : 3; >>> -int split = (m_refineLevel && cuGeom.log2CUSize == >>> (uint32_t)(g_log2Size[m_param->minCUSize] + 1) && bDecidedDepth); >>> +int split = (m_param->scaleFactor && m_refineLevel && >>> cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1) && >>> bDecidedDepth); >>> td.split = split; >>> >>> if (bDecidedDepth) >>> @@ -2494,7 +2494,7 @@ >>> mode.cu.m_mvd[list][pu.puAbsPartIdx] = >>> mode.cu.m_mv[list][pu.puAbsPartIdx] - mode.amvpCand[list][ref][mode. >>> cu.m_mvpIdx[list][pu.puAbsPartIdx]]/*mvp*/; >>> } >>> } >>> -else if(m_param->scaleFactor) >>> +else >>> { >>> MVField candMvField[MRG_MAX_NUM_CANDS][2]; // >>> double length for mv of both lists >>> uint8_t candDir[MRG_MAX_NUM_CANDS]; >>> diff -r 07defe235cde -r 860c3b32f59e source/encoder/encoder.cpp >>> --- a/source/encoder/encoder.cppThu Apr 12 16:57:19 2018 +0530 >>> +++ b/source/encoder/encoder.cppTue Apr 24 16:41:13 2018 +0530 >>> @@ -2694,7 +2694,7 @@ >>> >>> if (p->intraRefine) >>> { >>> -if (!p->analysisLoad || p->analysisReuseLevel < 10 || >>> !p->scaleFactor) >>> +if (!p->analysisLoad || p->analysisReuseLevel < 10) >>> { >>> x265_log(p, X265_LOG_WARNING, "Intra refinement requires >>> analysis load, analysis-reuse-level 10, scale factor. Disabling intra >>> refine.\n"); >>> >> >> All the warning messages still say that scale factor is required to >> enable refinement methods, we can remove that. >> > Can you please fix these warning messages and send an updated patch? > >> I see that you've enabled inter-refine, intra-refine and refine-mv >> without scale-factor, is there any reason for not enabling dynamic >> refinement without scale factor? >> > > Dynamic refinemement + scalefactor 0 requires some more testing. I thought > of sending that as a separate patch. > Sounds good. > > >> >> >> >>> p->intraRefine = 0; >>> @@ -2703,7 +2703,7 @@ >>> >>> if (p->interRefine) >>> { >>> -if (!p->analysisLoad || p->analysisReuseLevel < 10 || >>> !p->scaleFactor) >>> +if (!p->analysisLoad || p->analysisReuseLevel < 10) >>> { >>> x265_log(p, X265_LOG_WARNING, "Inter refinement requires >>> analysis load, analysis-reuse-level 10, scale factor. Disabling inter >>> refine.\n"); >>> p->interRefine = 0; >>> @@ -2737,7 +2737,7 @@ >>> >>> if (p->mvRefine) >>> { >>> -if (!p->analysisLoad || p->analysisReuseLevel < 10 || >>> !p->scaleFactor) >>> +if (!p->analysisLoad || p->analysisReuseLevel < 10) >>> { >>> x265_log(p, X265_LOG_WARNING, "MV refinement requires >>> analysis load, analysis-reuse-level 10, scale factor. Disabling MV >>> refine.\n"); >>> p->mvRefine = 0; >>> >>> ___ >>> x265-devel mailing list >>> x265-devel@videolan.org >>> https://mailman.videolan.org/listinfo/x265-devel >>> >>> >> > > > -- > Regards, > Kavitha > > ___ > x265-devel mailing list > x265-devel@videolan.org > https://mailman.videolan.org/listinfo/x265-devel > > ___ x265-devel mailing list x265-devel@videolan.org https://mailman
Re: [x265] [PATCH] scaling: allow refinement of inter/intra frames when scalefactor is zero
On Thu, Apr 26, 2018 at 2:38 PM, Bhavna Hariharan < bha...@multicorewareinc.com> wrote: > > > On Thu, Apr 26, 2018 at 12:41 PM, wrote: > >> # HG changeset patch >> # User Kavitha Sampath >> # Date 1524568273 -19800 >> # Tue Apr 24 16:41:13 2018 +0530 >> # Node ID 860c3b32f59e1883b77064b9948e8e17decd4641 >> # Parent 07defe235cde1949c55464952ee1dbdc10baf5e4 >> scaling: allow refinement of inter/intra frames when scalefactor is zero >> >> Also disable analysis of CU with min-cu size when scale factor is zero >> >> diff -r 07defe235cde -r 860c3b32f59e source/encoder/analysis.cpp >> --- a/source/encoder/analysis.cpp Thu Apr 12 16:57:19 2018 +0530 >> +++ b/source/encoder/analysis.cpp Tue Apr 24 16:41:13 2018 +0530 >> @@ -523,7 +523,7 @@ >> int split = 0; >> if (m_param->intraRefine && m_param->intraRefine != 4) >> { >> -split = ((cuGeom.log2CUSize == >> (uint32_t)(g_log2Size[m_param->minCUSize] >> + 1)) && bDecidedDepth); >> +split = m_param->scaleFactor && ((cuGeom.log2CUSize == >> (uint32_t)(g_log2Size[m_param->minCUSize] + 1)) && bDecidedDepth); >> if (cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize]) >> && !bDecidedDepth) >> bAlreadyDecided = false; >> } >> @@ -2420,7 +2420,7 @@ >> m_refineLevel = m_param->interRefine; >> else >> m_refineLevel = m_frame->m_classifyFrame ? 1 : 3; >> -int split = (m_refineLevel && cuGeom.log2CUSize == >> (uint32_t)(g_log2Size[m_param->minCUSize] + 1) && bDecidedDepth); >> +int split = (m_param->scaleFactor && m_refineLevel && >> cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1) && >> bDecidedDepth); >> td.split = split; >> >> if (bDecidedDepth) >> @@ -2494,7 +2494,7 @@ >> mode.cu.m_mvd[list][pu.puAbsPartIdx] = >> mode.cu.m_mv[list][pu.puAbsPartIdx] - mode.amvpCand[list][ref][mode. >> cu.m_mvpIdx[list][pu.puAbsPartIdx]]/*mvp*/; >> } >> } >> -else if(m_param->scaleFactor) >> +else >> { >> MVField candMvField[MRG_MAX_NUM_CANDS][2]; // >> double length for mv of both lists >> uint8_t candDir[MRG_MAX_NUM_CANDS]; >> diff -r 07defe235cde -r 860c3b32f59e source/encoder/encoder.cpp >> --- a/source/encoder/encoder.cppThu Apr 12 16:57:19 2018 +0530 >> +++ b/source/encoder/encoder.cppTue Apr 24 16:41:13 2018 +0530 >> @@ -2694,7 +2694,7 @@ >> >> if (p->intraRefine) >> { >> -if (!p->analysisLoad || p->analysisReuseLevel < 10 || >> !p->scaleFactor) >> +if (!p->analysisLoad || p->analysisReuseLevel < 10) >> { >> x265_log(p, X265_LOG_WARNING, "Intra refinement requires >> analysis load, analysis-reuse-level 10, scale factor. Disabling intra >> refine.\n"); >> > > All the warning messages still say that scale factor is required to enable > refinement methods, we can remove that. > > I see that you've enabled inter-refine, intra-refine and refine-mv without > scale-factor, is there any reason for not enabling dynamic refinement > without scale factor? > Dynamic refinemement + scalefactor 0 requires some more testing. I thought of sending that as a separate patch. > > > >> p->intraRefine = 0; >> @@ -2703,7 +2703,7 @@ >> >> if (p->interRefine) >> { >> -if (!p->analysisLoad || p->analysisReuseLevel < 10 || >> !p->scaleFactor) >> +if (!p->analysisLoad || p->analysisReuseLevel < 10) >> { >> x265_log(p, X265_LOG_WARNING, "Inter refinement requires >> analysis load, analysis-reuse-level 10, scale factor. Disabling inter >> refine.\n"); >> p->interRefine = 0; >> @@ -2737,7 +2737,7 @@ >> >> if (p->mvRefine) >> { >> -if (!p->analysisLoad || p->analysisReuseLevel < 10 || >> !p->scaleFactor) >> +if (!p->analysisLoad || p->analysisReuseLevel < 10) >> { >> x265_log(p, X265_LOG_WARNING, "MV refinement requires >> analysis load, analysis-reuse-level 10, scale factor. Disabling MV >> refine.\n"); >> p->mvRefine = 0; >> >> ___ >> x265-devel mailing list >> x265-devel@videolan.org >> https://mailman.videolan.org/listinfo/x265-devel >> >> > -- Regards, Kavitha ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
Re: [x265] [PATCH] scaling: allow refinement of inter/intra frames when scalefactor is zero
On Thu, Apr 26, 2018 at 12:41 PM, wrote: > # HG changeset patch > # User Kavitha Sampath > # Date 1524568273 -19800 > # Tue Apr 24 16:41:13 2018 +0530 > # Node ID 860c3b32f59e1883b77064b9948e8e17decd4641 > # Parent 07defe235cde1949c55464952ee1dbdc10baf5e4 > scaling: allow refinement of inter/intra frames when scalefactor is zero > > Also disable analysis of CU with min-cu size when scale factor is zero > > diff -r 07defe235cde -r 860c3b32f59e source/encoder/analysis.cpp > --- a/source/encoder/analysis.cpp Thu Apr 12 16:57:19 2018 +0530 > +++ b/source/encoder/analysis.cpp Tue Apr 24 16:41:13 2018 +0530 > @@ -523,7 +523,7 @@ > int split = 0; > if (m_param->intraRefine && m_param->intraRefine != 4) > { > -split = ((cuGeom.log2CUSize == > (uint32_t)(g_log2Size[m_param->minCUSize] > + 1)) && bDecidedDepth); > +split = m_param->scaleFactor && ((cuGeom.log2CUSize == > (uint32_t)(g_log2Size[m_param->minCUSize] + 1)) && bDecidedDepth); > if (cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize]) > && !bDecidedDepth) > bAlreadyDecided = false; > } > @@ -2420,7 +2420,7 @@ > m_refineLevel = m_param->interRefine; > else > m_refineLevel = m_frame->m_classifyFrame ? 1 : 3; > -int split = (m_refineLevel && cuGeom.log2CUSize == > (uint32_t)(g_log2Size[m_param->minCUSize] + 1) && bDecidedDepth); > +int split = (m_param->scaleFactor && m_refineLevel && > cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1) && > bDecidedDepth); > td.split = split; > > if (bDecidedDepth) > @@ -2494,7 +2494,7 @@ > mode.cu.m_mvd[list][pu.puAbsPartIdx] = > mode.cu.m_mv[list][pu.puAbsPartIdx] - mode.amvpCand[list][ref][mode. > cu.m_mvpIdx[list][pu.puAbsPartIdx]]/*mvp*/; > } > } > -else if(m_param->scaleFactor) > +else > { > MVField candMvField[MRG_MAX_NUM_CANDS][2]; // > double length for mv of both lists > uint8_t candDir[MRG_MAX_NUM_CANDS]; > diff -r 07defe235cde -r 860c3b32f59e source/encoder/encoder.cpp > --- a/source/encoder/encoder.cppThu Apr 12 16:57:19 2018 +0530 > +++ b/source/encoder/encoder.cppTue Apr 24 16:41:13 2018 +0530 > @@ -2694,7 +2694,7 @@ > > if (p->intraRefine) > { > -if (!p->analysisLoad || p->analysisReuseLevel < 10 || > !p->scaleFactor) > +if (!p->analysisLoad || p->analysisReuseLevel < 10) > { > x265_log(p, X265_LOG_WARNING, "Intra refinement requires > analysis load, analysis-reuse-level 10, scale factor. Disabling intra > refine.\n"); > All the warning messages still say that scale factor is required to enable refinement methods, we can remove that. I see that you've enabled inter-refine, intra-refine and refine-mv without scale-factor, is there any reason for not enabling dynamic refinement without scale factor? > p->intraRefine = 0; > @@ -2703,7 +2703,7 @@ > > if (p->interRefine) > { > -if (!p->analysisLoad || p->analysisReuseLevel < 10 || > !p->scaleFactor) > +if (!p->analysisLoad || p->analysisReuseLevel < 10) > { > x265_log(p, X265_LOG_WARNING, "Inter refinement requires > analysis load, analysis-reuse-level 10, scale factor. Disabling inter > refine.\n"); > p->interRefine = 0; > @@ -2737,7 +2737,7 @@ > > if (p->mvRefine) > { > -if (!p->analysisLoad || p->analysisReuseLevel < 10 || > !p->scaleFactor) > +if (!p->analysisLoad || p->analysisReuseLevel < 10) > { > x265_log(p, X265_LOG_WARNING, "MV refinement requires > analysis load, analysis-reuse-level 10, scale factor. Disabling MV > refine.\n"); > p->mvRefine = 0; > > ___ > x265-devel mailing list > x265-devel@videolan.org > https://mailman.videolan.org/listinfo/x265-devel > > ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
[x265] [PATCH] scaling: allow refinement of inter/intra frames when scalefactor is zero
# HG changeset patch # User Kavitha Sampath # Date 1524568273 -19800 # Tue Apr 24 16:41:13 2018 +0530 # Node ID 860c3b32f59e1883b77064b9948e8e17decd4641 # Parent 07defe235cde1949c55464952ee1dbdc10baf5e4 scaling: allow refinement of inter/intra frames when scalefactor is zero Also disable analysis of CU with min-cu size when scale factor is zero diff -r 07defe235cde -r 860c3b32f59e source/encoder/analysis.cpp --- a/source/encoder/analysis.cpp Thu Apr 12 16:57:19 2018 +0530 +++ b/source/encoder/analysis.cpp Tue Apr 24 16:41:13 2018 +0530 @@ -523,7 +523,7 @@ int split = 0; if (m_param->intraRefine && m_param->intraRefine != 4) { -split = ((cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1)) && bDecidedDepth); +split = m_param->scaleFactor && ((cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1)) && bDecidedDepth); if (cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize]) && !bDecidedDepth) bAlreadyDecided = false; } @@ -2420,7 +2420,7 @@ m_refineLevel = m_param->interRefine; else m_refineLevel = m_frame->m_classifyFrame ? 1 : 3; -int split = (m_refineLevel && cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1) && bDecidedDepth); +int split = (m_param->scaleFactor && m_refineLevel && cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1) && bDecidedDepth); td.split = split; if (bDecidedDepth) @@ -2494,7 +2494,7 @@ mode.cu.m_mvd[list][pu.puAbsPartIdx] = mode.cu.m_mv[list][pu.puAbsPartIdx] - mode.amvpCand[list][ref][mode.cu.m_mvpIdx[list][pu.puAbsPartIdx]]/*mvp*/; } } -else if(m_param->scaleFactor) +else { MVField candMvField[MRG_MAX_NUM_CANDS][2]; // double length for mv of both lists uint8_t candDir[MRG_MAX_NUM_CANDS]; diff -r 07defe235cde -r 860c3b32f59e source/encoder/encoder.cpp --- a/source/encoder/encoder.cppThu Apr 12 16:57:19 2018 +0530 +++ b/source/encoder/encoder.cppTue Apr 24 16:41:13 2018 +0530 @@ -2694,7 +2694,7 @@ if (p->intraRefine) { -if (!p->analysisLoad || p->analysisReuseLevel < 10 || !p->scaleFactor) +if (!p->analysisLoad || p->analysisReuseLevel < 10) { x265_log(p, X265_LOG_WARNING, "Intra refinement requires analysis load, analysis-reuse-level 10, scale factor. Disabling intra refine.\n"); p->intraRefine = 0; @@ -2703,7 +2703,7 @@ if (p->interRefine) { -if (!p->analysisLoad || p->analysisReuseLevel < 10 || !p->scaleFactor) +if (!p->analysisLoad || p->analysisReuseLevel < 10) { x265_log(p, X265_LOG_WARNING, "Inter refinement requires analysis load, analysis-reuse-level 10, scale factor. Disabling inter refine.\n"); p->interRefine = 0; @@ -2737,7 +2737,7 @@ if (p->mvRefine) { -if (!p->analysisLoad || p->analysisReuseLevel < 10 || !p->scaleFactor) +if (!p->analysisLoad || p->analysisReuseLevel < 10) { x265_log(p, X265_LOG_WARNING, "MV refinement requires analysis load, analysis-reuse-level 10, scale factor. Disabling MV refine.\n"); p->mvRefine = 0; # HG changeset patch # User Kavitha Sampath # Date 1524568273 -19800 # Tue Apr 24 16:41:13 2018 +0530 # Node ID 860c3b32f59e1883b77064b9948e8e17decd4641 # Parent 07defe235cde1949c55464952ee1dbdc10baf5e4 scaling: allow refinement of inter/intra frames when scalefactor is zero Also disable analysis of CU with min-cu size when scale factor is zero diff -r 07defe235cde -r 860c3b32f59e source/encoder/analysis.cpp --- a/source/encoder/analysis.cpp Thu Apr 12 16:57:19 2018 +0530 +++ b/source/encoder/analysis.cpp Tue Apr 24 16:41:13 2018 +0530 @@ -523,7 +523,7 @@ int split = 0; if (m_param->intraRefine && m_param->intraRefine != 4) { -split = ((cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1)) && bDecidedDepth); +split = m_param->scaleFactor && ((cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1)) && bDecidedDepth); if (cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize]) && !bDecidedDepth) bAlreadyDecided = false; } @@ -2420,7 +2420,7 @@ m_refineLevel = m_param->interRefine; else m_refineLevel = m_frame->m_classifyFrame ? 1 : 3; -int split = (m_refineLevel && cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1) && bDecidedDepth); +int split = (m_param->scaleFactor && m_refineLevel && cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1) && bDecidedDepth); td.split = split; if (bDecidedDepth) @@ -2494,7 +2494,7 @@ mode.cu.m_mvd[list][pu.puAbsPartIdx] = mode.cu