[x265] [PATCH] cleanup: move m_predYuv and m_predTempYuv from predict to TEncSearch

Steve Borho steve at borho.org
Fri Aug 1 17:50:17 CEST 2014


On 08/01, santhoshini at multicorewareinc.com wrote:
> # HG changeset patch
> # User Santhoshini Sekar <santhoshini at multicorewareinc.com>
> # Date 1406885676 -19800
> #      Fri Aug 01 15:04:36 2014 +0530
> # Node ID ddcc46309023d8e577b25325370503660a0d1c87
> # Parent  e85b0aaa64e4aaccdfd37de92e14d91a53a789ea
> cleanup:  move m_predYuv and m_predTempYuv from predict to TEncSearch

queued

> diff -r e85b0aaa64e4 -r ddcc46309023 source/Lib/TLibEncoder/TEncSearch.cpp
> --- a/source/Lib/TLibEncoder/TEncSearch.cpp	Thu Jul 31 11:08:02 2014 +0530
> +++ b/source/Lib/TLibEncoder/TEncSearch.cpp	Fri Aug 01 15:04:36 2014 +0530
> @@ -77,6 +77,7 @@
>      X265_FREE(m_qtTempTrIdx);
>      X265_FREE(m_qtTempCbf[0]);
>      X265_FREE(m_qtTempTransformSkipFlag[0]);
> +    m_predTempYuv.destroy();
>  
>      delete[] m_qtTempShortYuv;
>  }
> @@ -92,6 +93,7 @@
>      m_numLayers = top.m_quadtreeTULog2MaxSize - 2 + 1;
>  
>      initTempBuff(m_param->internalCsp);
> +    m_predTempYuv.create(MAX_CU_SIZE, MAX_CU_SIZE, m_param->internalCsp);
>      m_me.setSearchMethod(m_param->searchMethod);
>      m_me.setSubpelRefine(m_param->subpelRefine);
>  
> @@ -1894,6 +1896,7 @@
>      int      numPredDir = cu->m_slice->isInterP() ? 1 : 2;
>      uint32_t lastMode = 0;
>      int      totalmebits = 0;
> +    TComYuv   m_predYuv[2];
>  
>      const int* numRefIdx = cu->m_slice->m_numRefIdx;
>  
> @@ -1901,6 +1904,9 @@
>  
>      memset(&merge, 0, sizeof(merge));
>  
> +    m_predYuv[0].create(MAX_CU_SIZE, MAX_CU_SIZE, m_param->internalCsp);
> +    m_predYuv[1].create(MAX_CU_SIZE, MAX_CU_SIZE, m_param->internalCsp);
> +
>      for (int partIdx = 0; partIdx < numPart; partIdx++)
>      {
>          uint32_t partAddr;
> @@ -1936,7 +1942,7 @@
>                  cu->getCUMvField(REF_PIC_LIST_1)->setAllMvField(merge.mvField[1], partSize, partAddr, 0, partIdx);
>                  totalmebits += merge.bits;
>  
> -                prepMotionCompensation(cu, partIdx);     
> +                prepMotionCompensation(cu, partIdx);
>                  motionCompensation(cu, predYuv, REF_PIC_LIST_X, true, bChroma);
>                  continue;
>              }
> @@ -2159,6 +2165,9 @@
>          motionCompensation(cu, predYuv, REF_PIC_LIST_X, true, bChroma);
>      }
>  
> +    m_predYuv[0].destroy();
> +    m_predYuv[1].destroy();
> +
>      x265_emms();
>      cu->m_totalBits = totalmebits;
>      return true;
> diff -r e85b0aaa64e4 -r ddcc46309023 source/Lib/TLibEncoder/TEncSearch.h
> --- a/source/Lib/TLibEncoder/TEncSearch.h	Thu Jul 31 11:08:02 2014 +0530
> +++ b/source/Lib/TLibEncoder/TEncSearch.h	Fri Aug 01 15:04:36 2014 +0530
> @@ -106,6 +106,7 @@
>      MotionReference (*m_mref)[MAX_NUM_REF + 1];
>  
>      ShortYuv*       m_qtTempShortYuv;
> +    TComYuv         m_predTempYuv;
>  
>      coeff_t*        m_qtTempCoeff[3][NUM_LAYERS];
>      uint8_t*        m_qtTempTrIdx;
> diff -r e85b0aaa64e4 -r ddcc46309023 source/encoder/predict.cpp
> --- a/source/encoder/predict.cpp	Thu Jul 31 11:08:02 2014 +0530
> +++ b/source/encoder/predict.cpp	Fri Aug 01 15:04:36 2014 +0530
> @@ -55,11 +55,8 @@
>      X265_FREE(m_refLeftFlt);
>      X265_FREE(m_immedVals);
>  
> -    m_predYuv[0].destroy();
> -    m_predYuv[1].destroy();
>      m_predShortYuv[0].destroy();
>      m_predShortYuv[1].destroy();
> -    m_predTempYuv.destroy();
>  }
>  
>  void Predict::initTempBuff(int csp)
> @@ -77,11 +74,8 @@
>          m_refLeft = X265_MALLOC(pixel, 3 * MAX_CU_SIZE);
>          m_refLeftFlt = X265_MALLOC(pixel, 3 * MAX_CU_SIZE);
>  
> -        m_predYuv[0].create(MAX_CU_SIZE, MAX_CU_SIZE, csp);
> -        m_predYuv[1].create(MAX_CU_SIZE, MAX_CU_SIZE, csp);
>          m_predShortYuv[0].create(MAX_CU_SIZE, MAX_CU_SIZE, csp);
>          m_predShortYuv[1].create(MAX_CU_SIZE, MAX_CU_SIZE, csp);
> -        m_predTempYuv.create(MAX_CU_SIZE, MAX_CU_SIZE, csp);
>  
>          m_immedVals = X265_MALLOC(int16_t, 64 * (64 + NTAPS_LUMA - 1));
>      }
> diff -r e85b0aaa64e4 -r ddcc46309023 source/encoder/predict.h
> --- a/source/encoder/predict.h	Thu Jul 31 11:08:02 2014 +0530
> +++ b/source/encoder/predict.h	Fri Aug 01 15:04:36 2014 +0530
> @@ -39,17 +39,13 @@
>  {
>  protected:
>  
> -    /* TODO: remove m_predYuv, m_predTempYuv, these should just be temporary structs inside predInterSearch */
> -    TComYuv   m_predYuv[2];
> -    TComYuv   m_predTempYuv;
> -
>      ShortYuv  m_predShortYuv[2]; //temporary storage for weighted prediction
>      int16_t*  m_immedVals;
>  
>      /* Slice information */
>      Slice*    m_slice;
>      int       m_csp;
> -    
> +
>      /* CU information for prediction */
>      int       m_width;
>      int       m_height; 
> @@ -75,7 +71,7 @@
>      void getLLSPrediction(TComPattern* pcPattern, int* src0, int srcstride, pixel* dst0, int dststride, uint32_t width, uint32_t height, uint32_t ext0);
>  
>      bool checkIdenticalMotion();
> -    
> +
>  public:
>  
>      // Intra prediction buffers
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel

-- 
Steve Borho


More information about the x265-devel mailing list