<p>Right, when this is made independent of TComDataCu, will change the entire struct to predict.cpp/.h. These function names will go then.</p>
<div class="gmail_quote">On Jul 23, 2014 8:31 AM, "Steve Borho" <<a href="mailto:steve@borho.org">steve@borho.org</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 07/23, <a href="mailto:deepthi@multicorewareinc.com">deepthi@multicorewareinc.com</a> wrote:<br>
> # HG changeset patch<br>
> # User Deepthi Nandakumar <<a href="mailto:deepthi@multicorewareinc.com">deepthi@multicorewareinc.com</a>><br>
> # Date 1405938991 -19800<br>
> #      Mon Jul 21 16:06:31 2014 +0530<br>
> # Node ID d8d26a695cf6734ad2180c4694360ef6e71ead81<br>
> # Parent  e3ad03b7c4854be40730645d4fe25e56a93f3f94<br>
> TComPrediction: remove TComDataCU as pointer to private functions<br>
><br>
> diff -r e3ad03b7c485 -r d8d26a695cf6 source/Lib/TLibCommon/TComPrediction.cpp<br>
> --- a/source/Lib/TLibCommon/TComPrediction.cpp        Tue Jul 22 13:28:54 2014 -0500<br>
> +++ b/source/Lib/TLibCommon/TComPrediction.cpp        Mon Jul 21 16:06:31 2014 +0530<br>
> @@ -85,6 +85,7 @@<br>
><br>
>  void TComPrediction::initTempBuff(int csp)<br>
>  {<br>
> +    m_csp = csp;<br>
>      m_hChromaShift = CHROMA_H_SHIFT(csp);<br>
>      m_vChromaShift = CHROMA_V_SHIFT(csp);<br>
><br>
> @@ -262,9 +263,11 @@<br>
>                  MV mv = cu->getCUMvField(list)->getMv(partAddr);<br>
>                  cu->clipMv(mv);<br>
>                  if (bLuma)<br>
> -                    xPredInterLumaBlk(cu, cu->m_slice->m_refPicList[list][refId]->getPicYuvRec(), partAddr, &mv, width, height, shortYuv);<br>
> +                    xPredInterLumaBlk(cu->m_slice->m_refPicList[list][refId]->getPicYuvRec(), cu->getAddr(), cu->getZorderIdxInCU(),<br>
> +                    partAddr, &mv, width, height, shortYuv);<br>
>                  if (bChroma)<br>
> -                    xPredInterChromaBlk(cu, cu->m_slice->m_refPicList[list][refId]->getPicYuvRec(), partAddr, &mv, width, height, shortYuv);<br>
> +                    xPredInterChromaBlk(cu->m_slice->m_refPicList[list][refId]->getPicYuvRec(), cu->getAddr(), cu->getZorderIdxInCU(),<br>
> +                    partAddr, &mv, width, height, shortYuv);<br>
<br>
We try to align the second row of arguments with the open paren(<br>
><br>
>                  xWeightedPredictionUni(cu, shortYuv, partAddr, width, height, list, predYuv, -1, bLuma, bChroma);<br>
>              }<br>
> @@ -291,10 +294,12 @@<br>
>      cu->clipMv(mv);<br>
><br>
>      if (bLuma)<br>
> -        xPredInterLumaBlk(cu, cu->m_slice->m_refPicList[list][refIdx]->getPicYuvRec(), partAddr, &mv, width, height, outPredYuv);<br>
> +        xPredInterLumaBlk(cu->m_slice->m_refPicList[list][refIdx]->getPicYuvRec(), cu->getAddr(), cu->getZorderIdxInCU(),<br>
> +        partAddr, &mv, width, height, outPredYuv);<br>
><br>
>      if (bChroma)<br>
> -        xPredInterChromaBlk(cu, cu->m_slice->m_refPicList[list][refIdx]->getPicYuvRec(), partAddr, &mv, width, height, outPredYuv);<br>
> +        xPredInterChromaBlk(cu->m_slice->m_refPicList[list][refIdx]->getPicYuvRec(), cu->getAddr(), cu->getZorderIdxInCU(),<br>
> +        partAddr, &mv, width, height, outPredYuv);<br>
>  }<br>
><br>
>  void TComPrediction::xPredInterUni(TComDataCU* cu, uint32_t partAddr, int width, int height, int list, ShortYuv* outPredYuv, bool bLuma, bool bChroma)<br>
> @@ -307,9 +312,11 @@<br>
>      cu->clipMv(mv);<br>
><br>
>      if (bLuma)<br>
> -        xPredInterLumaBlk(cu, cu->m_slice->m_refPicList[list][refIdx]->getPicYuvRec(), partAddr, &mv, width, height, outPredYuv);<br>
> +        xPredInterLumaBlk(cu->m_slice->m_refPicList[list][refIdx]->getPicYuvRec(), cu->getAddr(), cu->getZorderIdxInCU(),<br>
> +        partAddr, &mv, width, height, outPredYuv);<br>
>      if (bChroma)<br>
> -        xPredInterChromaBlk(cu, cu->m_slice->m_refPicList[list][refIdx]->getPicYuvRec(), partAddr, &mv, width, height, outPredYuv);<br>
> +        xPredInterChromaBlk(cu->m_slice->m_refPicList[list][refIdx]->getPicYuvRec(), cu->getAddr(), cu->getZorderIdxInCU(),<br>
> +        partAddr, &mv, width, height, outPredYuv);<br>
>  }<br>
><br>
>  void TComPrediction::xPredInterBi(TComDataCU* cu, uint32_t partAddr, int width, int height, TComYuv* outPredYuv, bool bLuma, bool bChroma)<br>
> @@ -378,7 +385,7 @@<br>
>   * \param height   Height of block<br>
>   * \param dstPic   Pointer to destination picture<br>
>   */<br>
> -void TComPrediction::xPredInterLumaBlk(TComDataCU *cu, TComPicYuv *refPic, uint32_t partAddr, MV *mv, int width, int height, TComYuv *dstPic)<br>
> +void TComPrediction::xPredInterLumaBlk(TComPicYuv *refPic, uint32_t cuAddr, uint32_t zOrderIdxinCU, uint32_t partAddr, MV *mv, int width, int height, TComYuv *dstPic)<br>
<br>
these `x' hungarian prefixes on the function names in this class really<br>
hurt my eyes (the HM used them for "internal" functions). I hope those<br>
can be removed in a future patch.<br>
<br>
>  {<br>
>      int dstStride = dstPic->getStride();<br>
>      pixel *dst    = dstPic->getLumaAddr(partAddr);<br>
> @@ -386,7 +393,7 @@<br>
>      int srcStride = refPic->getStride();<br>
>      int srcOffset = (mv->x >> 2) + (mv->y >> 2) * srcStride;<br>
>      int partEnum = partitionFromSizes(width, height);<br>
> -    pixel* src = refPic->getLumaAddr(cu->getAddr(), cu->getZorderIdxInCU() + partAddr) + srcOffset;<br>
> +    pixel* src = refPic->getLumaAddr(cuAddr, zOrderIdxinCU + partAddr) + srcOffset;<br>
><br>
>      int xFrac = mv->x & 0x3;<br>
>      int yFrac = mv->y & 0x3;<br>
> @@ -414,11 +421,11 @@<br>
>  }<br>
><br>
>  //Motion compensated block for biprediction<br>
> -void TComPrediction::xPredInterLumaBlk(TComDataCU *cu, TComPicYuv *refPic, uint32_t partAddr, MV *mv, int width, int height, ShortYuv *dstPic)<br>
> +void TComPrediction::xPredInterLumaBlk(TComPicYuv *refPic, uint32_t cuAddr, uint32_t zOrderIdxinCU, uint32_t partAddr, MV *mv, int width, int height, ShortYuv *dstPic)<br>
>  {<br>
>      int refStride = refPic->getStride();<br>
>      int refOffset = (mv->x >> 2) + (mv->y >> 2) * refStride;<br>
> -    pixel *ref    = refPic->getLumaAddr(cu->getAddr(), cu->getZorderIdxInCU() + partAddr) + refOffset;<br>
> +    pixel *ref    = refPic->getLumaAddr(cuAddr, zOrderIdxinCU + partAddr) + refOffset;<br>
><br>
>      int dstStride = dstPic->m_width;<br>
>      int16_t *dst  = dstPic->getLumaAddr(partAddr);<br>
> @@ -464,18 +471,18 @@<br>
>   * \param height   Height of block<br>
>   * \param dstPic   Pointer to destination picture<br>
>   */<br>
> -void TComPrediction::xPredInterChromaBlk(TComDataCU *cu, TComPicYuv *refPic, uint32_t partAddr, MV *mv, int width, int height, TComYuv *dstPic)<br>
> +void TComPrediction::xPredInterChromaBlk(TComPicYuv *refPic, uint32_t cuAddr, uint32_t zOrderIdxinCU, uint32_t partAddr, MV *mv, int width, int height, TComYuv *dstPic)<br>
>  {<br>
>      int refStride = refPic->getCStride();<br>
>      int dstStride = dstPic->getCStride();<br>
><br>
> -    int shiftHor = (2 + cu->getHorzChromaShift());<br>
> -    int shiftVer = (2 + cu->getVertChromaShift());<br>
> +    int shiftHor = (2 + m_hChromaShift);<br>
> +    int shiftVer = (2 + m_vChromaShift);<br>
><br>
>      int refOffset = (mv->x >> shiftHor) + (mv->y >> shiftVer) * refStride;<br>
><br>
> -    pixel* refCb = refPic->getCbAddr(cu->getAddr(), cu->getZorderIdxInCU() + partAddr) + refOffset;<br>
> -    pixel* refCr = refPic->getCrAddr(cu->getAddr(), cu->getZorderIdxInCU() + partAddr) + refOffset;<br>
> +    pixel* refCb = refPic->getCbAddr(cuAddr, zOrderIdxinCU + partAddr) + refOffset;<br>
> +    pixel* refCr = refPic->getCrAddr(cuAddr, zOrderIdxinCU + partAddr) + refOffset;<br>
><br>
>      pixel* dstCb = dstPic->getCbAddr(partAddr);<br>
>      pixel* dstCr = dstPic->getCrAddr(partAddr);<br>
> @@ -484,22 +491,21 @@<br>
>      int yFrac = mv->y & ((1 << shiftVer) - 1);<br>
><br>
>      int partEnum = partitionFromSizes(width, height);<br>
> -    int csp = cu->getChromaFormat();<br>
> -<br>
> +<br>
>      if ((yFrac | xFrac) == 0)<br>
>      {<br>
> -        primitives.chroma[csp].copy_pp[partEnum](dstCb, dstStride, refCb, refStride);<br>
> -        primitives.chroma[csp].copy_pp[partEnum](dstCr, dstStride, refCr, refStride);<br>
> +        primitives.chroma[m_csp].copy_pp[partEnum](dstCb, dstStride, refCb, refStride);<br>
> +        primitives.chroma[m_csp].copy_pp[partEnum](dstCr, dstStride, refCr, refStride);<br>
>      }<br>
>      else if (yFrac == 0)<br>
>      {<br>
> -        primitives.chroma[csp].filter_hpp[partEnum](refCb, refStride, dstCb, dstStride, xFrac << (1 - cu->getHorzChromaShift()));<br>
> -        primitives.chroma[csp].filter_hpp[partEnum](refCr, refStride, dstCr, dstStride, xFrac << (1 - cu->getHorzChromaShift()));<br>
> +        primitives.chroma[m_csp].filter_hpp[partEnum](refCb, refStride, dstCb, dstStride, xFrac << (1 - m_hChromaShift));<br>
> +        primitives.chroma[m_csp].filter_hpp[partEnum](refCr, refStride, dstCr, dstStride, xFrac << (1 - m_hChromaShift));<br>
>      }<br>
>      else if (xFrac == 0)<br>
>      {<br>
> -        primitives.chroma[csp].filter_vpp[partEnum](refCb, refStride, dstCb, dstStride, yFrac << (1 - cu->getVertChromaShift()));<br>
> -        primitives.chroma[csp].filter_vpp[partEnum](refCr, refStride, dstCr, dstStride, yFrac << (1 - cu->getVertChromaShift()));<br>
> +        primitives.chroma[m_csp].filter_vpp[partEnum](refCb, refStride, dstCb, dstStride, yFrac << (1 - m_vChromaShift));<br>
> +        primitives.chroma[m_csp].filter_vpp[partEnum](refCr, refStride, dstCr, dstStride, yFrac << (1 - m_vChromaShift));<br>
>      }<br>
>      else<br>
>      {<br>
> @@ -507,27 +513,27 @@<br>
>          int filterSize = NTAPS_CHROMA;<br>
>          int halfFilterSize = (filterSize >> 1);<br>
><br>
> -        primitives.chroma[csp].filter_hps[partEnum](refCb, refStride, m_immedVals, extStride, xFrac << (1 - cu->getHorzChromaShift()), 1);<br>
> -        primitives.chroma[csp].filter_vsp[partEnum](m_immedVals + (halfFilterSize - 1) * extStride, extStride, dstCb, dstStride, yFrac << (1 - cu->getVertChromaShift()));<br>
> +        primitives.chroma[m_csp].filter_hps[partEnum](refCb, refStride, m_immedVals, extStride, xFrac << (1 - m_hChromaShift), 1);<br>
> +        primitives.chroma[m_csp].filter_vsp[partEnum](m_immedVals + (halfFilterSize - 1) * extStride, extStride, dstCb, dstStride, yFrac << (1 - m_vChromaShift));<br>
><br>
> -        primitives.chroma[csp].filter_hps[partEnum](refCr, refStride, m_immedVals, extStride, xFrac << (1 - cu->getHorzChromaShift()), 1);<br>
> -        primitives.chroma[csp].filter_vsp[partEnum](m_immedVals + (halfFilterSize - 1) * extStride, extStride, dstCr, dstStride, yFrac << (1 - cu->getVertChromaShift()));<br>
> +        primitives.chroma[m_csp].filter_hps[partEnum](refCr, refStride, m_immedVals, extStride, xFrac << (1 - m_hChromaShift), 1);<br>
> +        primitives.chroma[m_csp].filter_vsp[partEnum](m_immedVals + (halfFilterSize - 1) * extStride, extStride, dstCr, dstStride, yFrac << (1 - m_vChromaShift));<br>
>      }<br>
>  }<br>
><br>
>  // Generate motion compensated block when biprediction<br>
> -void TComPrediction::xPredInterChromaBlk(TComDataCU *cu, TComPicYuv *refPic, uint32_t partAddr, MV *mv, int width, int height, ShortYuv *dstPic)<br>
> +void TComPrediction::xPredInterChromaBlk(TComPicYuv *refPic, uint32_t cuAddr, uint32_t zOrderIdxinCU, uint32_t partAddr, MV *mv, int width, int height, ShortYuv *dstPic)<br>
>  {<br>
>      int refStride = refPic->getCStride();<br>
>      int dstStride = dstPic->m_cwidth;<br>
><br>
> -    int shiftHor = (2 + cu->getHorzChromaShift());<br>
> -    int shiftVer = (2 + cu->getVertChromaShift());<br>
> +    int shiftHor = (2 + m_hChromaShift);<br>
> +    int shiftVer = (2 + m_vChromaShift);<br>
><br>
>      int refOffset = (mv->x >> shiftHor) + (mv->y >> shiftVer) * refStride;<br>
><br>
> -    pixel* refCb = refPic->getCbAddr(cu->getAddr(), cu->getZorderIdxInCU() + partAddr) + refOffset;<br>
> -    pixel* refCr = refPic->getCrAddr(cu->getAddr(), cu->getZorderIdxInCU() + partAddr) + refOffset;<br>
> +    pixel* refCb = refPic->getCbAddr(cuAddr, zOrderIdxinCU + partAddr) + refOffset;<br>
> +    pixel* refCr = refPic->getCrAddr(cuAddr, zOrderIdxinCU + partAddr) + refOffset;<br>
><br>
>      int16_t* dstCb = dstPic->getCbAddr(partAddr);<br>
>      int16_t* dstCr = dstPic->getCrAddr(partAddr);<br>
> @@ -536,8 +542,7 @@<br>
>      int yFrac = mv->y & ((1 << shiftVer) - 1);<br>
><br>
>      int partEnum = partitionFromSizes(width, height);<br>
> -    int csp = cu->getChromaFormat();<br>
> -<br>
> +<br>
>      uint32_t cxWidth = width   >> m_hChromaShift;<br>
>      uint32_t cxHeight = height >> m_vChromaShift;<br>
><br>
> @@ -545,28 +550,28 @@<br>
><br>
>      if ((yFrac | xFrac) == 0)<br>
>      {<br>
> -        primitives.chroma_p2s[csp](refCb, refStride, dstCb, cxWidth, cxHeight);<br>
> -        primitives.chroma_p2s[csp](refCr, refStride, dstCr, cxWidth, cxHeight);<br>
> +        primitives.chroma_p2s[m_csp](refCb, refStride, dstCb, cxWidth, cxHeight);<br>
> +        primitives.chroma_p2s[m_csp](refCr, refStride, dstCr, cxWidth, cxHeight);<br>
>      }<br>
>      else if (yFrac == 0)<br>
>      {<br>
> -        primitives.chroma[csp].filter_hps[partEnum](refCb, refStride, dstCb, dstStride, xFrac << (1 - cu->getHorzChromaShift()), 0);<br>
> -        primitives.chroma[csp].filter_hps[partEnum](refCr, refStride, dstCr, dstStride, xFrac << (1 - cu->getHorzChromaShift()), 0);<br>
> +        primitives.chroma[m_csp].filter_hps[partEnum](refCb, refStride, dstCb, dstStride, xFrac << (1 - m_hChromaShift), 0);<br>
> +        primitives.chroma[m_csp].filter_hps[partEnum](refCr, refStride, dstCr, dstStride, xFrac << (1 - m_hChromaShift), 0);<br>
>      }<br>
>      else if (xFrac == 0)<br>
>      {<br>
> -        primitives.chroma[csp].filter_vps[partEnum](refCb, refStride, dstCb, dstStride, yFrac << (1 - cu->getVertChromaShift()));<br>
> -        primitives.chroma[csp].filter_vps[partEnum](refCr, refStride, dstCr, dstStride, yFrac << (1 - cu->getVertChromaShift()));<br>
> +        primitives.chroma[m_csp].filter_vps[partEnum](refCb, refStride, dstCb, dstStride, yFrac << (1 - m_vChromaShift));<br>
> +        primitives.chroma[m_csp].filter_vps[partEnum](refCr, refStride, dstCr, dstStride, yFrac << (1 - m_vChromaShift));<br>
>      }<br>
>      else<br>
>      {<br>
>          int extStride = cxWidth;<br>
>          int filterSize = NTAPS_CHROMA;<br>
>          int halfFilterSize = (filterSize >> 1);<br>
> -        primitives.chroma[csp].filter_hps[partEnum](refCb, refStride, m_immedVals, extStride, xFrac << (1 - cu->getHorzChromaShift()), 1);<br>
> -        primitives.chroma[csp].filter_vss[partEnum](m_immedVals + (halfFilterSize - 1) * extStride, extStride, dstCb, dstStride, yFrac << (1 - cu->getVertChromaShift()));<br>
> -        primitives.chroma[csp].filter_hps[partEnum](refCr, refStride, m_immedVals, extStride, xFrac << (1 - cu->getHorzChromaShift()), 1);<br>
> -        primitives.chroma[csp].filter_vss[partEnum](m_immedVals + (halfFilterSize - 1) * extStride, extStride, dstCr, dstStride, yFrac << (1 - cu->getVertChromaShift()));<br>
> +        primitives.chroma[m_csp].filter_hps[partEnum](refCb, refStride, m_immedVals, extStride, xFrac << (1 - m_hChromaShift), 1);<br>
> +        primitives.chroma[m_csp].filter_vss[partEnum](m_immedVals + (halfFilterSize - 1) * extStride, extStride, dstCb, dstStride, yFrac << (1 - m_vChromaShift));<br>
> +        primitives.chroma[m_csp].filter_hps[partEnum](refCr, refStride, m_immedVals, extStride, xFrac << (1 - m_hChromaShift), 1);<br>
> +        primitives.chroma[m_csp].filter_vss[partEnum](m_immedVals + (halfFilterSize - 1) * extStride, extStride, dstCr, dstStride, yFrac << (1 - m_vChromaShift));<br>
>      }<br>
>  }<br>
><br>
> diff -r e3ad03b7c485 -r d8d26a695cf6 source/Lib/TLibCommon/TComPrediction.h<br>
> --- a/source/Lib/TLibCommon/TComPrediction.h  Tue Jul 22 13:28:54 2014 -0500<br>
> +++ b/source/Lib/TLibCommon/TComPrediction.h  Mon Jul 21 16:06:31 2014 +0530<br>
> @@ -71,14 +71,15 @@<br>
>      int16_t*  m_immedVals;<br>
>      int       m_hChromaShift;<br>
>      int       m_vChromaShift;<br>
> +    int       m_csp;<br>
><br>
>      // motion compensation functions<br>
>      void xPredInterUni(TComDataCU* cu, uint32_t partAddr, int width, int height, int picList, TComYuv* outPredYuv, bool bLuma, bool bChroma);<br>
>      void xPredInterUni(TComDataCU* cu, uint32_t partAddr, int width, int height, int picList, ShortYuv* outPredYuv, bool bLuma, bool bChroma);<br>
> -    void xPredInterLumaBlk(TComDataCU *cu, TComPicYuv *refPic, uint32_t partAddr, MV *mv, int width, int height, TComYuv *dstPic);<br>
> -    void xPredInterLumaBlk(TComDataCU *cu, TComPicYuv *refPic, uint32_t partAddr, MV *mv, int width, int height, ShortYuv *dstPic);<br>
> -    void xPredInterChromaBlk(TComDataCU *cu, TComPicYuv *refPic, uint32_t partAddr, MV *mv, int width, int height, TComYuv *dstPic);<br>
> -    void xPredInterChromaBlk(TComDataCU *cu, TComPicYuv *refPic, uint32_t partAddr, MV *mv, int width, int height, ShortYuv *dstPic);<br>
> +    void xPredInterLumaBlk(TComPicYuv *refPic, uint32_t cuAddr, uint32_t zOrderIdxinCU, uint32_t partAddr, MV *mv, int width, int height, TComYuv *dstPic);<br>
> +    void xPredInterLumaBlk(TComPicYuv *refPic, uint32_t cuAddr, uint32_t zOrderIdxinCU, uint32_t partAddr, MV *mv, int width, int height, ShortYuv *dstPic);<br>
> +    void xPredInterChromaBlk(TComPicYuv *refPic, uint32_t cuAddr, uint32_t zOrderIdxinCU, uint32_t partAddr, MV *mv, int width, int height, TComYuv *dstPic);<br>
> +    void xPredInterChromaBlk(TComPicYuv *refPic, uint32_t cuAddr, uint32_t zOrderIdxinCU, uint32_t partAddr, MV *mv, int width, int height, ShortYuv *dstPic);<br>
><br>
>      void xPredInterBi(TComDataCU* cu, uint32_t partAddr, int width, int height, TComYuv* outPredYuv, bool bLuma, bool bChroma);<br>
><br>
> diff -r e3ad03b7c485 -r d8d26a695cf6 source/Lib/TLibEncoder/TEncSearch.cpp<br>
> --- a/source/Lib/TLibEncoder/TEncSearch.cpp   Tue Jul 22 13:28:54 2014 -0500<br>
> +++ b/source/Lib/TLibEncoder/TEncSearch.cpp   Mon Jul 21 16:06:31 2014 +0530<br>
> @@ -1979,7 +1979,7 @@<br>
>                      // TODO: skip mvCand if Y is > merange and -FN>1<br>
>                      cu->clipMv(mvCand);<br>
><br>
> -                    xPredInterLumaBlk(cu, cu->m_slice->m_refPicList[l][ref]->getPicYuvRec(), partAddr, &mvCand, roiWidth, roiHeight, &m_predTempYuv);<br>
> +                    xPredInterLumaBlk(cu->m_slice->m_refPicList[l][ref]->getPicYuvRec(), cu->getAddr(), cu->getZorderIdxInCU(), partAddr, &mvCand, roiWidth, roiHeight, &m_predTempYuv);<br>
>                      uint32_t cost = m_me.bufSAD(m_predTempYuv.getLumaAddr(partAddr), m_predTempYuv.getStride());<br>
>                      cost = m_rdCost.calcRdSADCost(cost, MVP_IDX_BITS);<br>
><br>
> @@ -2026,8 +2026,8 @@<br>
>              // Generate reference subpels<br>
>              TComPicYuv *refPic0 = cu->m_slice->m_refPicList[0][list[0].ref]->getPicYuvRec();<br>
>              TComPicYuv *refPic1 = cu->m_slice->m_refPicList[1][list[1].ref]->getPicYuvRec();<br>
> -            xPredInterLumaBlk(cu, refPic0, partAddr, &list[0].mv, roiWidth, roiHeight, &m_predYuv[0]);<br>
> -            xPredInterLumaBlk(cu, refPic1, partAddr, &list[1].mv, roiWidth, roiHeight, &m_predYuv[1]);<br>
> +            xPredInterLumaBlk(refPic0, cu->getAddr(), cu->getZorderIdxInCU(), partAddr, &list[0].mv, roiWidth, roiHeight, &m_predYuv[0]);<br>
> +            xPredInterLumaBlk(refPic1, cu->getAddr(), cu->getZorderIdxInCU(), partAddr, &list[1].mv, roiWidth, roiHeight, &m_predYuv[1]);<br>
><br>
>              pixel *pred0 = m_predYuv[0].getLumaAddr(partAddr);<br>
>              pixel *pred1 = m_predYuv[1].getLumaAddr(partAddr);<br>
> _______________________________________________<br>
> x265-devel mailing list<br>
> <a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
> <a href="https://mailman.videolan.org/listinfo/x265-devel" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
<br>
--<br>
Steve Borho<br>
_______________________________________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
</blockquote></div>