[x265] [PATCH] fix: hash/binary mismatch for new CU structure holds CU-specific info

Deepthi Nandakumar deepthi at multicorewareinc.com
Thu Sep 4 02:29:37 CEST 2014


Thanks, Ashok. Queued.


On Wed, Sep 3, 2014 at 8:20 PM, <ashok at multicorewareinc.com> wrote:

> # HG changeset patch
> # User Ashok Kumar Mishra<ashok at multicorewareinc.com>
> # Date 1409753842 -19800
> #      Wed Sep 03 19:47:22 2014 +0530
> # Node ID 00c381bf615840180bb6ce924dc9be84c060938f
> # Parent  62c4779fb0bb35d5d8a69678e9e8aa81272f0115
> fix: hash/binary mismatch for new CU structure holds CU-specific info
>
> diff -r 62c4779fb0bb -r 00c381bf6158 source/encoder/analysis.cpp
> --- a/source/encoder/analysis.cpp       Thu Aug 28 13:14:34 2014 +0530
> +++ b/source/encoder/analysis.cpp       Wed Sep 03 19:47:22 2014 +0530
> @@ -420,13 +420,13 @@
>          checkIntra(outBestCU, outTempCU, SIZE_2Nx2N, cu);
>          if (depth == g_maxCUDepth)
>          {
> -                checkIntra(outBestCU, outTempCU, SIZE_NxN, cu);
> +            checkIntra(outBestCU, outTempCU, SIZE_NxN, cu);
>          }
>          else
>          {
> -        m_entropyCoder->resetBits();
> -        m_entropyCoder->codeSplitFlag(outBestCU, 0, depth);
> -        outBestCU->m_totalBits +=
> m_entropyCoder->getNumberOfWrittenBits(); // split bits
> +            m_entropyCoder->resetBits();
> +            m_entropyCoder->codeSplitFlag(outBestCU, 0, depth);
> +            outBestCU->m_totalBits +=
> m_entropyCoder->getNumberOfWrittenBits(); // split bits
>          }
>          if (m_rdCost.m_psyRd)
>              outBestCU->m_totalPsyCost =
> m_rdCost.calcPsyRdCost(outBestCU->m_totalDistortion,
> outBestCU->m_totalBits, outBestCU->m_psyEnergy);
> @@ -437,6 +437,7 @@
>      // copy original YUV samples in lossless mode
>      if (outBestCU->isLosslessCoded(0))
>          fillOrigYUVBuffer(outBestCU, m_origYuv[depth]);
> +
>      // further split
>      if (cu_split_flag)
>      {
> @@ -445,18 +446,17 @@
>          TComDataCU* subTempPartCU = m_tempCU[nextDepth];
>          for (uint32_t partUnitIdx = 0; partUnitIdx < 4; partUnitIdx++)
>          {
> -            int qp = outTempCU->getQP(0);
> -            subBestPartCU->initSubCU(outTempCU, partUnitIdx, nextDepth,
> qp); // clear sub partition datas or init.
> -            if (cu->flags & CU::PRESENT)
> +            CU *child_cu = cuPicsym->m_CULocalData + cu->childIdx +
> partUnitIdx;
> +
> +            if (child_cu->flags & CU::PRESENT)
>              {
> +                int qp = outTempCU->getQP(0);
> +                subBestPartCU->initSubCU(outTempCU, partUnitIdx,
> nextDepth, qp); // clear sub partition datas or init.
>                  subTempPartCU->initSubCU(outTempCU, partUnitIdx,
> nextDepth, qp); // clear sub partition datas or init.
>                  if (0 == partUnitIdx) //initialize RD with previous depth
> buffer
>
>  m_rdEntropyCoders[nextDepth][CI_CURR_BEST].load(m_rdEntropyCoders[depth][CI_CURR_BEST]);
>                  else
>
>  m_rdEntropyCoders[nextDepth][CI_CURR_BEST].load(m_rdEntropyCoders[nextDepth][CI_NEXT_BEST]);
> -                CU *child_cu = cuPicsym->m_CULocalData + cu->childIdx +
> partUnitIdx;
> -                if (!(child_cu->flags & CU::PRESENT))
> -                    continue;
>
>                  compressIntraCU(subBestPartCU, subTempPartCU, nextDepth,
> bInsidePicture, cuPicsym, child_cu);
>                  outTempCU->copyPartFrom(subBestPartCU, partUnitIdx,
> nextDepth); // Keep best part data to current temporary data.
> _______________________________________________
> 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/20140904/457e75cc/attachment-0001.html>


More information about the x265-devel mailing list