[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