[x265] [PATCH RFC] psyrd: remove usage of psyrdcost for merge candidates

Steve Borho steve at borho.org
Wed May 21 14:11:55 CEST 2014


On Wed, May 21, 2014 at 6:10 AM,  <sumalatha at multicorewareinc.com> wrote:
> # HG changeset patch
> # User Sumalatha Polureddy<sumalatha at multicorewareinc.com>
> # Date 1400670594 -19800
> # Node ID 876eb641b9640cf2821b2302c2a979b8a3330247
> # Parent  f39484bb3eecc8cfca0448c63f16fe8dacc54d7f
> psyrd: remove usage of psyrdcost for merge candidates
>
> diff -r f39484bb3eec -r 876eb641b964 source/Lib/TLibEncoder/TEncSearch.cpp
> --- a/source/Lib/TLibEncoder/TEncSearch.cpp     Tue May 20 22:02:00 2014 -0500
> +++ b/source/Lib/TLibEncoder/TEncSearch.cpp     Wed May 21 16:39:54 2014 +0530
> @@ -2693,7 +2693,7 @@
>
>          cu->m_totalBits       = bits;
>          cu->m_totalDistortion = distortion;
> -        if (m_rdCost->psyRdEnabled())
> +        if (m_rdCost->psyRdEnabled() && cu->getMergeFlag(0) == false)
>          {
>              int size = g_convertToBit[cu->getCUSize(0)];
>              uint32_t psyRdCost = m_rdCost->psyCost(size, fencYuv->getLumaAddr(), fencYuv->getStride(),
> @@ -2788,7 +2788,7 @@
>      part = partitionFromSizes(width >> cu->getHorzChromaShift(), height >> cu->getVertChromaShift());
>      bdist += m_rdCost->scaleChromaDistCb(primitives.sse_pp[part](fencYuv->getCbAddr(), fencYuv->getCStride(), outReconYuv->getCbAddr(), outReconYuv->getCStride()));
>      bdist += m_rdCost->scaleChromaDistCr(primitives.sse_pp[part](fencYuv->getCrAddr(), fencYuv->getCStride(), outReconYuv->getCrAddr(), outReconYuv->getCStride()));
> -    if (m_rdCost->psyRdEnabled())
> +    if (m_rdCost->psyRdEnabled() && cu->getMergeFlag(0) == false)
>      {
>          int size = g_convertToBit[cu->getCUSize(0)];
>          uint32_t psyRdCost = m_rdCost->psyCost(size, fencYuv->getLumaAddr(), fencYuv->getStride(),

We can't measure inter and intra with psy-rd cost and merge without
psy-rd cost.  That's apples and oranges.

-- 
Steve Borho


More information about the x265-devel mailing list