[x265] cleanup useless getMvPred*(): always zero mv

Steve Borho steve at borho.org
Tue Feb 25 02:30:46 CET 2014


On Sat, Feb 22, 2014 at 11:08 PM, Satoshi Nakagawa <nakagawa424 at oki.com> wrote:
>
> always zero mv, but numCandidates change affects search range of UMH
> case. workaround here.
>
>
> # HG changeset patch
> # User Satoshi Nakagawa <nakagawa424 at oki.com>
> # Date 1393131692 -32400
> #      Sun Feb 23 14:01:32 2014 +0900
> # Node ID bfa9c0fcc2e3952e1bdd101386485206a8b62c26
> # Parent  734f106295df911edb41b5c54e795decdcdb4f04
> cleanup useless getMvPred*(): always zero mv
>
> diff -r 734f106295df -r bfa9c0fcc2e3 source/Lib/TLibCommon/TComDataCU.h
> --- a/source/Lib/TLibCommon/TComDataCU.h        Sat Feb 22 15:59:39 2014 -0600
> +++ b/source/Lib/TLibCommon/TComDataCU.h        Sun Feb 23 14:01:32 2014 +0900
> @@ -135,9 +135,6 @@
>      TComDataCU*   m_cuAbove;         ///< pointer of above CU
>      TComDataCU*   m_cuLeft;          ///< pointer of left CU
>      TComDataCU*   m_cuColocated[2];  ///< pointer of temporally colocated CU's for both directions
> -    TComMvField   m_mvFieldA;        ///< motion vector of position A
> -    TComMvField   m_mvFieldB;        ///< motion vector of position B
> -    TComMvField   m_mvFieldC;        ///< motion vector of position C
>
>      // -------------------------------------------------------------------------------------------------------------------
>      // coding tool information
> @@ -388,12 +385,6 @@
>
>      void          clipMv(MV& outMV);
>
> -    void          getMvPredLeft(MV& mvPred)       { mvPred = m_mvFieldA.mv; }
> -
> -    void          getMvPredAbove(MV& mvPred)      { mvPred = m_mvFieldB.mv; }
> -
> -    void          getMvPredAboveRight(MV& mvPred) { mvPred = m_mvFieldC.mv; }

Indeed these m_mvFieldA|B|C fields were never being set, I looked all
the way back at the first version of the HM code that we started with
and these fields were unused; but that in itself is a serious problem.

We need to replace these methods with code in predInterSearch() that
builds a proper list of motion candidates for motion estimation.
We're giving up coding efficiency by not giving reasonable candidates
to ME.  Is that something you can work on?

--
Steve Borho


More information about the x265-devel mailing list