[x265] [PATCH 3 of 4 x265] analysis-save/load: Validate cu-tree info only at reuse-level 10

Aruna Matheswaran aruna at multicorewareinc.com
Wed Apr 15 09:57:44 CEST 2020


On Wed, Apr 15, 2020 at 1:22 PM Kavitha Sampath <
kavitha at multicorewareinc.com> wrote:

>
>
> On Tue, Apr 14, 2020 at 9:02 PM Aruna Matheswaran <
> aruna at multicorewareinc.com> wrote:
>
>>
>>
>> On Tue, Apr 14, 2020 at 7:38 PM Kavitha Sampath <
>> kavitha at multicorewareinc.com> wrote:
>>
>>>
>>>
>>> On Tue, Mar 31, 2020 at 11:25 AM Aruna Matheswaran <
>>> aruna at multicorewareinc.com> wrote:
>>>
>>>> # HG changeset patch
>>>> # User Aruna Matheswaran <aruna at 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.
>>>
>> [AM] Will enable the flow to reuse cu-tree offsets at reuse-levels > 1
>>
>>> [KS] As you are enabling cutree for other reuse levels, ensure to add
>>> this test case to our regression
>>>
>> [AM] ok.
>>
>>>
>>>      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
>>>
>> [AM] Right now cu-tree reuse is allowed only at reuse-level 10, but
>> sharing is enabled at reuse-levels > 1.
>> I'll update this check while enabling the cu-tree reuse at reuse-levels >
>> 1.
>>
>>>
>>>
>>>>          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?
>>>
>> [AM] No, I didn't check as it is a param only option.
>> Disabling lookahead in load will restrict reuse-level 1 from enabling
>> cu-tree. Should we extent cu-tree sharing to reuse-level 1 given that
>> cu-tree is part of lookahead info?
>>
> [KS] If we are disabling lookahead and enabling cutree/vbv then we should
> be sharing cutree/vbv info IMO
>
[AM] ok. Will do the same.

> _______________________________________________
>>>> x265-devel mailing list
>>>> x265-devel at videolan.org
>>>> https://mailman.videolan.org/listinfo/x265-devel
>>>>
>>>
>>>
>>> --
>>> Regards,
>>> Kavitha
>>> _______________________________________________
>>> x265-devel mailing list
>>> x265-devel at videolan.org
>>> https://mailman.videolan.org/listinfo/x265-devel
>>>
>>
>>
>> --
>> Regards,
>> *Aruna Matheswaran,*
>> Video Codec Engineer,
>> Media & AI analytics BU,
>>
>>
>>
>> _______________________________________________
>> x265-devel mailing list
>> x265-devel at videolan.org
>> https://mailman.videolan.org/listinfo/x265-devel
>>
>
>
> --
> Regards,
> Kavitha
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>


-- 
Regards,
*Aruna Matheswaran,*
Video Codec Engineer,
Media & AI analytics BU,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20200415/891204e9/attachment-0001.html>


More information about the x265-devel mailing list