On Tue, Mar 31, 2020 at 11:25 AM Aruna Matheswaran < ar...@multicorewareinc.com> wrote:
> # HG changeset patch > # User Aruna Matheswaran <ar...@multicorewareinc.com> > # Date 1582707110 -19800 > # Wed Feb 26 14:21:50 2020 +0530 > # Node ID 7ae7c9767f14b7d093c2023235066b370aecc4ce > # Parent 74170d9678e1a7f5f57b20c8404f8601814254d8 > analysis-save/load: Validate cu-tree info only at reuse-level 10 > > diff -r 74170d9678e1 -r 7ae7c9767f14 source/encoder/encoder.cpp > --- a/source/encoder/encoder.cpp Wed Feb 19 15:13:05 2020 +0530 > +++ b/source/encoder/encoder.cpp Wed Feb 26 14:21:50 2020 +0530 > @@ -3694,20 +3694,6 @@ > if (p->analysisLoad && !p->analysisLoadReuseLevel) > p->analysisLoadReuseLevel = 5; > > - if ((p->bAnalysisType == DEFAULT) && p->rc.cuTree) > - { > - if (p->analysisSaveReuseLevel && p->analysisSaveReuseLevel < 10) > - { > - x265_log(p, X265_LOG_WARNING, "cu-tree works only with > analysis-save-reuse-level 10, Disabling cu-tree\n"); > - p->rc.cuTree = 0; > - } > - if (p->analysisLoadReuseLevel && p->analysisLoadReuseLevel < 10) > - { > - x265_log(p, X265_LOG_WARNING, "cu-tree works only with > analysis-load-reuse-level 10, Disabling cu-tree\n"); > - p->rc.cuTree = 0; > - } > - } > - > [KS] If reuse level is <10 we no longer throw warning/disable cutree. We neither reuse cutree offsets. I don't think that is expected. [KS] As you are enabling cutree for other reuse levels, ensure to add this test case to our regression if ((p->analysisLoad || p->analysisSave) && > (p->bDistributeModeAnalysis || p->bDistributeMotionEstimation)) > { > x265_log(p, X265_LOG_WARNING, "Analysis load/save options > incompatible with pmode/pme, Disabling pmode/pme\n"); > @@ -5039,13 +5025,13 @@ > X265_PARAM_VALIDATE(saveParam->lookaheadDepth, sizeof(int), 1, > &m_param->lookaheadDepth, rc - lookahead); > X265_PARAM_VALIDATE(saveParam->chunkStart, sizeof(int), 1, > &m_param->chunkStart, chunk-start); > X265_PARAM_VALIDATE(saveParam->chunkEnd, sizeof(int), 1, > &m_param->chunkEnd, chunk-end); > - > X265_PARAM_VALIDATE(saveParam->cuTree,sizeof(int),1,&m_param->rc.cuTree, > cutree - offset); > X265_PARAM_VALIDATE(saveParam->ctuDistortionRefine, sizeof(int), 1, > &m_param->ctuDistortionRefine, ctu - distortion); > > int sourceHeight, sourceWidth; > if (writeFlag) > { > X265_PARAM_VALIDATE(saveParam->analysisReuseLevel, sizeof(int), > 1, &m_param->analysisSaveReuseLevel, analysis - save - reuse - level); > + X265_PARAM_VALIDATE(saveParam->cuTree, sizeof(int), 1, > &m_param->rc.cuTree, cutree-offset); > sourceHeight = m_param->sourceHeight - > m_conformanceWindow.bottomOffset; > sourceWidth = m_param->sourceWidth - > m_conformanceWindow.rightOffset; > X265_PARAM_VALIDATE(saveParam->sourceWidth, sizeof(int), 1, > &sourceWidth, res-width); > @@ -5080,6 +5066,15 @@ > return -1; > } > > + int bcutree; > + X265_FREAD(&bcutree, sizeof(int), 1, m_analysisFileIn, > &(saveParam->cuTree)); > + if (loadLevel == 10 && m_param->rc.cuTree && (!bcutree || > saveLevel < 2)) > + { > + x265_log(NULL, X265_LOG_ERROR, "Error reading cu-tree info. > Disabling cutree offsets. \n"); > + m_param->rc.cuTree = 0; > + return -1; > + } > + > [KS] Isn't this applicable to all reuse levels? As I see that we write and read cutree offsets for all levels > bool error = false; > int curSourceHeight = m_param->sourceHeight - > m_conformanceWindow.bottomOffset; > int curSourceWidth = m_param->sourceWidth - > m_conformanceWindow.rightOffset; > [KS] Have you tested this patch disabling lookahead? > _______________________________________________ > 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