[x265] copy m_origYuv[depth] from m_origYuv[0]
Satoshi Nakagawa
nakagawa424 at oki.com
Sat Mar 1 09:38:25 CET 2014
From: Steve Borho <steve at borho.org>
Subject: Re: [x265] copy m_origYuv[depth] from m_origYuv[0]
Date: Fri, 28 Feb 2014 14:15:53 -0600
> On Fri, Feb 28, 2014 at 3:39 AM, Satoshi Nakagawa <nakagawa424 at oki.com> wrote:
>> # HG changeset patch
>> # User Satoshi Nakagawa <nakagawa424 at oki.com>
>> # Date 1393580194 -32400
>> # Fri Feb 28 18:36:34 2014 +0900
>> # Node ID 2eb519cd23e532bc8e311da80ca25de8f98f9156
>> # Parent 5e9559d366b3c9c76f309a875cf18de69501bd39
>> copy m_origYuv[depth] from m_origYuv[0]
>
> Hi Satoshi,
>
> It's not obvious from a glance why this is beneficial. Can you
> elaborate on this?
just expecting cache hit.
>> diff -r 5e9559d366b3 -r 2eb519cd23e5 source/Lib/TLibCommon/TComYuv.cpp
>> --- a/source/Lib/TLibCommon/TComYuv.cpp Fri Feb 28 01:41:43 2014 -0600
>> +++ b/source/Lib/TLibCommon/TComYuv.cpp Fri Feb 28 18:36:34 2014 +0900
>> @@ -145,9 +145,7 @@
>>
>> void TComYuv::copyPartToYuv(TComYuv* dstPicYuv, uint32_t partIdx)
>> {
>> - uint32_t height = dstPicYuv->getHeight();
>> - uint32_t width = dstPicYuv->getWidth();
>> - int part = partitionFromSizes(width, height);
>> + int part = dstPicYuv->getPartEnum();
>>
>> Pel* srcY = getLumaAddr(partIdx);
>> Pel* dstY = dstPicYuv->getLumaAddr(0);
>> diff -r 5e9559d366b3 -r 2eb519cd23e5 source/Lib/TLibCommon/TComYuv.h
>> --- a/source/Lib/TLibCommon/TComYuv.h Fri Feb 28 01:41:43 2014 -0600
>> +++ b/source/Lib/TLibCommon/TComYuv.h Fri Feb 28 18:36:34 2014 +0900
>> @@ -189,6 +189,8 @@
>> uint32_t getCHeight() { return m_cheight; }
>>
>> uint32_t getCWidth() { return m_cwidth; }
>> +
>> + int getPartEnum() const { return m_part; }
>> }; // END CLASS DEFINITION TComYuv
>> }
>> //! \}
>> diff -r 5e9559d366b3 -r 2eb519cd23e5 source/Lib/TLibEncoder/TEncCu.cpp
>> --- a/source/Lib/TLibEncoder/TEncCu.cpp Fri Feb 28 01:41:43 2014 -0600
>> +++ b/source/Lib/TLibEncoder/TEncCu.cpp Fri Feb 28 18:36:34 2014 +0900
>> @@ -532,7 +532,14 @@
>> TComPic* pic = outBestCU->getPic();
>>
>> // get Original YUV data from picture
>> - m_origYuv[depth]->copyFromPicYuv(pic->getPicYuvOrg(), outBestCU->getAddr(), outBestCU->getZorderIdxInCU());
>> + if (depth == 0)
>> + {
>> + m_origYuv[depth]->copyFromPicYuv(pic->getPicYuvOrg(), outBestCU->getAddr(), outBestCU->getZorderIdxInCU());
>> + }
>> + else
>> + {
>> + m_origYuv[0]->copyPartToYuv(m_origYuv[depth], outBestCU->getZorderIdxInCU());
>> + }
>>
>> // variable for Early CU determination
>> bool bSubBranch = true;
>> @@ -684,7 +691,14 @@
>> TComPic* pic = outBestCU->getPic();
>>
>> // get Original YUV data from picture
>> - m_origYuv[depth]->copyFromPicYuv(pic->getPicYuvOrg(), outBestCU->getAddr(), outBestCU->getZorderIdxInCU());
>> + if (depth == 0)
>> + {
>> + m_origYuv[depth]->copyFromPicYuv(pic->getPicYuvOrg(), outBestCU->getAddr(), outBestCU->getZorderIdxInCU());
>> + }
>> + else
>> + {
>> + m_origYuv[0]->copyPartToYuv(m_origYuv[depth], outBestCU->getZorderIdxInCU());
>> + }
>>
>> // variable for Early CU determination
>> bool bSubBranch = true;
>> diff -r 5e9559d366b3 -r 2eb519cd23e5 source/encoder/compress.cpp
>> --- a/source/encoder/compress.cpp Fri Feb 28 01:41:43 2014 -0600
>> +++ b/source/encoder/compress.cpp Fri Feb 28 18:36:34 2014 +0900
>> @@ -332,7 +332,14 @@
>> TComPic* pic = outTempCU->getPic();
>>
>> // get Original YUV data from picture
>> - m_origYuv[depth]->copyFromPicYuv(pic->getPicYuvOrg(), outTempCU->getAddr(), outTempCU->getZorderIdxInCU());
>> + if (depth == 0)
>> + {
>> + m_origYuv[depth]->copyFromPicYuv(pic->getPicYuvOrg(), outTempCU->getAddr(), outTempCU->getZorderIdxInCU());
>> + }
>> + else
>> + {
>> + m_origYuv[0]->copyPartToYuv(m_origYuv[depth], outTempCU->getZorderIdxInCU());
>> + }
>>
>> // variables for fast encoder decision
>> bool bSubBranch = true;
>> _______________________________________________
>> x265-devel mailing list
>> x265-devel at videolan.org
>> https://mailman.videolan.org/listinfo/x265-devel
>
>
>
> --
> Steve Borho
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
More information about the x265-devel
mailing list