[x265] [PATCH] psyrd: use psyrdcost for intra for rdLevels > 5

Deepthi Nandakumar deepthi at multicorewareinc.com
Thu May 22 13:06:37 CEST 2014


On Thu, May 22, 2014 at 4:23 PM, Sumalatha Polureddy <
sumalatha at multicorewareinc.com> wrote:

> psy-rd is enabled for full-rdo decision(rd>=5) and for rd= 4
>

This is a bug - psy-rd should be enabled only for rd>=5. Fixing now.


> m_rdCost.setPsyRdScale(top->param->rdLevel >= 4 ? top->param->psyRd : 0);
> so this patch is required for rd=4 where inter uses psyrdcost and intra
> was using rdcost. For other lower rd levels < 4, m_psyRdScale = 0, so
> psycost will not have much effect on RDcost
>
>
> On Thu, May 22, 2014 at 3:45 PM, Deepthi Nandakumar <
> deepthi at multicorewareinc.com> wrote:
>
>> psy-rd is enabled only in full-rdo decisions (rdLevel >= 5). Your patch
>> calculates intra-psy rd cost for rd=4 and lower, which is where
>> xEncodeIntrainInter is called.
>>
>>
>> On Thu, May 22, 2014 at 3:31 PM, <sumalatha at multicorewareinc.com> wrote:
>>
>>> # HG changeset patch
>>> # User Sumalatha Polureddy<sumalatha at multicorewareinc.com>
>>> # Date 1400752845 -19800
>>> # Node ID fc400f71de9dcbaeda5c0669edabd27e288cdf2c
>>> # Parent  f39484bb3eecc8cfca0448c63f16fe8dacc54d7f
>>> psyrd: use psyrdcost for intra for rdLevels > 5
>>>
>>> diff -r f39484bb3eec -r fc400f71de9d source/encoder/compress.cpp
>>> --- a/source/encoder/compress.cpp       Tue May 20 22:02:00 2014 -0500
>>> +++ b/source/encoder/compress.cpp       Thu May 22 15:30:45 2014 +0530
>>> @@ -70,7 +70,18 @@
>>>      m_rdGoOnSbacCoder->store(m_rdSbacCoders[depth][CI_TEMP_BEST]);
>>>
>>>      cu->m_totalBits = m_entropyCoder->getNumberOfWrittenBits();
>>> -    cu->m_totalCost = m_rdCost->calcRdCost(cu->m_totalDistortion,
>>> cu->m_totalBits);
>>> +    if (m_rdCost->psyRdEnabled())
>>> +    {
>>> +        int part = g_convertToBit[cu->getCUSize(0)];
>>> +        uint32_t psyRdCost = m_rdCost->psyCost(part,
>>> m_origYuv[depth]->getLumaAddr(), m_origYuv[depth]->getStride(),
>>> +            m_tmpRecoYuv[depth]->getLumaAddr(),
>>> m_tmpRecoYuv[depth]->getStride());
>>> +        cu->m_totalCost =
>>> m_rdCost->calcPsyRdCost(cu->m_totalDistortion, cu->m_totalBits, psyRdCost);
>>> +
>>> +    }
>>> +    else
>>> +    {
>>> +        cu->m_totalCost = m_rdCost->calcRdCost(cu->m_totalDistortion,
>>> cu->m_totalBits);
>>> +    }
>>>  }
>>>
>>>  void TEncCu::xComputeCostIntraInInter(TComDataCU* cu, PartSize partSize)
>>> _______________________________________________
>>> x265-devel mailing list
>>> x265-devel at videolan.org
>>> https://mailman.videolan.org/listinfo/x265-devel
>>>
>>
>>
>> _______________________________________________
>> x265-devel mailing list
>> x265-devel at videolan.org
>> https://mailman.videolan.org/listinfo/x265-devel
>>
>>
>
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20140522/e7991981/attachment-0001.html>


More information about the x265-devel mailing list