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

Sumalatha Polureddy sumalatha at multicorewareinc.com
Thu May 22 12:53:41 CEST 2014


psy-rd is enabled for full-rdo decision(rd>=5) and for rd= 4
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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20140522/d6ed1665/attachment.html>


More information about the x265-devel mailing list