[x265] [PATCH 1 of 3] TComPrediction: remove TComDataCU as pointer to private functions

Deepthi Nandakumar deepthi at multicorewareinc.com
Wed Jul 23 05:55:37 CEST 2014


Right, when this is made independent of TComDataCu, will change the entire
struct to predict.cpp/.h. These function names will go then.
On Jul 23, 2014 8:31 AM, "Steve Borho" <steve at borho.org> wrote:

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


More information about the x265-devel mailing list