[x265] [PATCH] remove redundant memset
Steve Borho
steve at borho.org
Wed Jul 2 02:15:02 CEST 2014
On Tue, Jul 1, 2014 at 10:18 AM, <ashok at multicorewareinc.com> wrote:
> # HG changeset patch
> # User Ashok Kumar Mishra<ashok at multicorewareinc.com>
> # Date 1404205727 -19800
> # Tue Jul 01 14:38:47 2014 +0530
> # Node ID 58bfb044b36a37e1a7c754f20f86998a351cbe6f
> # Parent 38da32f28481f6acd17a9ab4f2e73ad057c54972
> remove redundant memset
>
> diff -r 38da32f28481 -r 58bfb044b36a source/Lib/TLibCommon/TComDataCU.cpp
> --- a/source/Lib/TLibCommon/TComDataCU.cpp Mon Jun 30 12:42:51 2014 -0500
> +++ b/source/Lib/TLibCommon/TComDataCU.cpp Tue Jul 01 14:38:47 2014 +0530
> @@ -405,14 +405,8 @@
> }
> }
>
> -/** initialize prediction data with enabling sub-LCU-level delta QP
> -*\param depth depth of the current CU
> -*\param qp qp for the current CU
> -*- set CU width and CU height according to depth
> -*- set qp value according to input qp
> -*- set last-coded qp value according to input last-coded qp
> -*/
> -void TComDataCU::initEstData(uint32_t depth, int qp)
> +// initialize prediction data
> +void TComDataCU::initEstData()
> {
> m_psyEnergy = 0;
> m_totalPsyCost = MAX_INT64;
> @@ -423,68 +417,6 @@
> m_mvBits = 0;
> m_coeffBits = 0;
>
> - uint8_t cuSize = g_maxCUSize >> depth;
> -
> - for (uint32_t i = 0; i < m_numPartitions; i++)
> - {
> - m_depth[i] = depth;
> - m_cuSize[i] = cuSize;
> - m_trIdx[i] = 0;
> - m_transformSkip[0][i] = 0;
> - m_transformSkip[1][i] = 0;
> - m_transformSkip[2][i] = 0;
> - m_skipFlag[i] = false;
> - m_partSizes[i] = SIZE_NONE;
> - m_predModes[i] = MODE_NONE;
> - m_cuTransquantBypass[i] = false;
> - m_qp[i] = qp;
> - m_bMergeFlags[i] = 0;
> - m_lumaIntraDir[i] = DC_IDX;
> - m_chromaIntraDir[i] = 0;
> - m_interDir[i] = 0;
> - m_cbf[0][i] = 0;
> - m_cbf[1][i] = 0;
> - m_cbf[2][i] = 0;
> - }
> -
> - m_cuMvField[0].clearMvField();
> - m_cuMvField[1].clearMvField();
> -}
> -
> -void TComDataCU::initEstData(uint32_t depth)
> -{
> - m_psyEnergy = 0;
> - m_totalPsyCost = MAX_INT64;
> - m_totalRDCost = MAX_INT64;
> - m_sa8dCost = MAX_INT64;
> - m_totalDistortion = 0;
> - m_totalBits = 0;
> - m_mvBits = 0;
> - m_coeffBits = 0;
> -
> - uint8_t cuSize = g_maxCUSize >> depth;
> -
> - for (uint32_t i = 0; i < m_numPartitions; i++)
> - {
> - m_depth[i] = depth;
> - m_cuSize[i] = cuSize;
> - m_trIdx[i] = 0;
> - m_transformSkip[0][i] = 0;
> - m_transformSkip[1][i] = 0;
> - m_transformSkip[2][i] = 0;
> - m_skipFlag[i] = false;
> - m_partSizes[i] = SIZE_NONE;
> - m_predModes[i] = MODE_NONE;
> - m_cuTransquantBypass[i] = false;
> - m_bMergeFlags[i] = 0;
> - m_lumaIntraDir[i] = DC_IDX;
> - m_chromaIntraDir[i] = 0;
> - m_interDir[i] = 0;
> - m_cbf[0][i] = 0;
> - m_cbf[1][i] = 0;
> - m_cbf[2][i] = 0;
> - }
> -
> m_cuMvField[0].clearMvField();
> m_cuMvField[1].clearMvField();
> }
> @@ -493,7 +425,7 @@
> void TComDataCU::initSubCU(TComDataCU* cu, uint32_t partUnitIdx, uint32_t depth, int qp)
> {
> X265_CHECK(partUnitIdx < 4, "part unit should be less than 4\n");
> -
> + uint8_t cuSize = g_maxCUSize >> depth;
> uint32_t partOffset = (cu->getTotalNumPart() >> 2) * partUnitIdx;
>
> m_pic = cu->getPic();
> @@ -501,8 +433,8 @@
> m_cuAddr = cu->getAddr();
> m_absIdxInLCU = cu->getZorderIdxInCU() + partOffset;
>
> - m_cuPelX = cu->getCUPelX() + (g_maxCUSize >> depth) * (partUnitIdx & 1);
> - m_cuPelY = cu->getCUPelY() + (g_maxCUSize >> depth) * (partUnitIdx >> 1);
> + m_cuPelX = cu->getCUPelX() + cuSize * (partUnitIdx & 1);
> + m_cuPelY = cu->getCUPelY() + cuSize * (partUnitIdx >> 1);
>
> m_psyEnergy = 0;
> m_totalPsyCost = MAX_INT64;
> @@ -523,102 +455,33 @@
>
> int sizeInBool = sizeof(bool) * m_numPartitions;
> int sizeInChar = sizeof(char) * m_numPartitions;
> - memset(m_qp, qp, sizeInChar);
>
> - memset(m_bMergeFlags, 0, sizeInBool);
> - memset(m_lumaIntraDir, DC_IDX, sizeInChar);
> - memset(m_chromaIntraDir, 0, sizeInChar);
> - memset(m_interDir, 0, sizeInChar);
> - memset(m_trIdx, 0, sizeInChar);
> - memset(m_transformSkip[0], 0, sizeInChar);
> - memset(m_transformSkip[1], 0, sizeInChar);
> - memset(m_transformSkip[2], 0, sizeInChar);
> - memset(m_cbf[0], 0, sizeInChar);
> - memset(m_cbf[1], 0, sizeInChar);
> - memset(m_cbf[2], 0, sizeInChar);
> - memset(m_depth, depth, sizeInChar);
> + memset(m_qp, qp, sizeInChar);
> + memset(m_lumaIntraDir, DC_IDX, sizeInChar);
> + memset(m_chromaIntraDir, 0, sizeInChar);
> + memset(m_trIdx, 0, sizeInChar);
> + memset(m_transformSkip[0], 0, sizeInChar);
> + memset(m_transformSkip[1], 0, sizeInChar);
> + memset(m_transformSkip[2], 0, sizeInChar);
> + memset(m_cbf[0], 0, sizeInChar);
> + memset(m_cbf[1], 0, sizeInChar);
> + memset(m_cbf[2], 0, sizeInChar);
it seems like these six memsets should be able to be further combined
into two, and perhaps more of the above if we knew they were
contiguous
> + memset(m_depth, depth, sizeInChar);
> + memset(m_cuSize, cuSize, sizeInChar);
> + memset(m_partSizes, SIZE_NONE, sizeInChar);
> + memset(m_predModes, MODE_NONE, sizeInChar);
> + memset(m_skipFlag, false, sizeInBool);
> + memset(m_cuTransquantBypass, false, sizeInBool);
>
> - uint8_t cuSize = g_maxCUSize >> depth;
> - memset(m_cuSize, cuSize, sizeInChar);
> - for (uint32_t i = 0; i < m_numPartitions; i++)
> + if (getSlice()->getSliceType() != I_SLICE)
> {
> - m_skipFlag[i] = false;
> - m_partSizes[i] = SIZE_NONE;
> - m_predModes[i] = MODE_NONE;
> - m_cuTransquantBypass[i] = false;
> + memset(m_bMergeFlags, 0, sizeInBool);
> + memset(m_interDir, 0, sizeInChar);
> +
> + m_cuMvField[0].clearMvField();
> + m_cuMvField[1].clearMvField();
> }
>
> - m_cuMvField[0].clearMvField();
> - m_cuMvField[1].clearMvField();
> -
> - m_cuLeft = cu->getCULeft();
> - m_cuAbove = cu->getCUAbove();
> - m_cuAboveLeft = cu->getCUAboveLeft();
> - m_cuAboveRight = cu->getCUAboveRight();
> -}
> -
> -// initialize Sub partition
> -void TComDataCU::initSubCU(TComDataCU* cu, uint32_t partUnitIdx, uint32_t depth)
> -{
> - X265_CHECK(partUnitIdx < 4, "part unit should be less than 4\n");
> -
> - uint32_t partOffset = (cu->getTotalNumPart() >> 2) * partUnitIdx;
> -
> - m_pic = cu->getPic();
> - m_slice = m_pic->getSlice();
> - m_cuAddr = cu->getAddr();
> - m_absIdxInLCU = cu->getZorderIdxInCU() + partOffset;
> -
> - m_cuPelX = cu->getCUPelX() + (g_maxCUSize >> depth) * (partUnitIdx & 1);
> - m_cuPelY = cu->getCUPelY() + (g_maxCUSize >> depth) * (partUnitIdx >> 1);
> -
> - m_psyEnergy = 0;
> - m_totalPsyCost = MAX_INT64;
> - m_totalRDCost = MAX_INT64;
> - m_sa8dCost = MAX_INT64;
> - m_totalDistortion = 0;
> - m_totalBits = 0;
> - m_mvBits = 0;
> - m_coeffBits = 0;
> - m_numPartitions = cu->getTotalNumPart() >> 2;
> -
> - for (int i = 0; i < 4; i++)
> - {
> - m_avgCost[i] = cu->m_avgCost[i];
> - m_count[i] = cu->m_count[i];
> - }
> -
> - int sizeInBool = sizeof(bool) * m_numPartitions;
> - int sizeInChar = sizeof(char) * m_numPartitions;
> -
> - memcpy(m_qp, cu->getQP() + partOffset, sizeInChar);
> - memset(m_bMergeFlags, 0, sizeInBool);
> - memset(m_lumaIntraDir, DC_IDX, sizeInChar);
> - memset(m_chromaIntraDir, 0, sizeInChar);
> - memset(m_interDir, 0, sizeInChar);
> - memset(m_trIdx, 0, sizeInChar);
> - memset(m_transformSkip[0], 0, sizeInChar);
> - memset(m_transformSkip[1], 0, sizeInChar);
> - memset(m_transformSkip[2], 0, sizeInChar);
> - memset(m_cbf[0], 0, sizeInChar);
> - memset(m_cbf[1], 0, sizeInChar);
> - memset(m_cbf[2], 0, sizeInChar);
> - memset(m_depth, depth, sizeInChar);
> -
> - uint8_t cuSize = g_maxCUSize >> depth;
> - memset(m_cuSize, cuSize, sizeInChar);
> -
> - for (uint32_t i = 0; i < m_numPartitions; i++)
> - {
> - m_skipFlag[i] = false;
> - m_partSizes[i] = SIZE_NONE;
> - m_predModes[i] = MODE_NONE;
> - m_cuTransquantBypass[i] = false;
> - }
> -
> - m_cuMvField[0].clearMvField();
> - m_cuMvField[1].clearMvField();
> -
> m_cuLeft = cu->getCULeft();
> m_cuAbove = cu->getCUAbove();
> m_cuAboveLeft = cu->getCUAboveLeft();
> @@ -1457,24 +1320,24 @@
> void TComDataCU::setPartSizeSubParts(PartSize mode, uint32_t absPartIdx, uint32_t depth)
> {
> X265_CHECK(sizeof(*m_partSizes) == 1, "size check failure\n");
> - memset(m_partSizes + absPartIdx, mode, m_pic->getNumPartInCU() >> (2 * depth));
> + memset(m_partSizes + absPartIdx, mode, m_pic->getNumPartInCU() >> (depth << 1));
> }
>
> void TComDataCU::setCUTransquantBypassSubParts(bool flag, uint32_t absPartIdx, uint32_t depth)
> {
> - memset(m_cuTransquantBypass + absPartIdx, flag, m_pic->getNumPartInCU() >> (2 * depth));
> + memset(m_cuTransquantBypass + absPartIdx, flag, m_pic->getNumPartInCU() >> (depth << 1));
> }
>
> void TComDataCU::setSkipFlagSubParts(bool skip, uint32_t absPartIdx, uint32_t depth)
> {
> X265_CHECK(sizeof(*m_skipFlag) == 1, "size check failure\n");
> - memset(m_skipFlag + absPartIdx, skip, m_pic->getNumPartInCU() >> (2 * depth));
> + memset(m_skipFlag + absPartIdx, skip, m_pic->getNumPartInCU() >> (depth << 1));
> }
>
> void TComDataCU::setPredModeSubParts(PredMode eMode, uint32_t absPartIdx, uint32_t depth)
> {
> X265_CHECK(sizeof(*m_predModes) == 1, "size check failure\n");
> - memset(m_predModes + absPartIdx, eMode, m_pic->getNumPartInCU() >> (2 * depth));
> + memset(m_predModes + absPartIdx, eMode, m_pic->getNumPartInCU() >> (depth << 1));
> }
>
> void TComDataCU::setQPSubCUs(int qp, TComDataCU* cu, uint32_t absPartIdx, uint32_t depth, bool &foundNonZeroCbf)
> diff -r 38da32f28481 -r 58bfb044b36a source/Lib/TLibCommon/TComDataCU.h
> --- a/source/Lib/TLibCommon/TComDataCU.h Mon Jun 30 12:42:51 2014 -0500
> +++ b/source/Lib/TLibCommon/TComDataCU.h Tue Jul 01 14:38:47 2014 +0530
> @@ -210,9 +210,7 @@
> void destroy();
>
> void initCU(Frame* pic, uint32_t cuAddr);
> - void initEstData(uint32_t depth);
> - void initEstData(uint32_t depth, int qp);
> - void initSubCU(TComDataCU* cu, uint32_t partUnitIdx, uint32_t depth);
> + void initEstData();
> void initSubCU(TComDataCU* cu, uint32_t partUnitIdx, uint32_t depth, int qp);
>
> void copyToSubCU(TComDataCU* lcu, uint32_t partUnitIdx, uint32_t depth);
> diff -r 38da32f28481 -r 58bfb044b36a source/Lib/TLibEncoder/TEncCu.cpp
> --- a/source/Lib/TLibEncoder/TEncCu.cpp Mon Jun 30 12:42:51 2014 -0500
> +++ b/source/Lib/TLibEncoder/TEncCu.cpp Tue Jul 01 14:38:47 2014 +0530
> @@ -539,10 +539,7 @@
> // We need to split, so don't try these modes.
> if (bInsidePicture)
> {
> - outTempCU->initEstData(depth);
> -
> xCheckRDCostIntra(outBestCU, outTempCU, SIZE_2Nx2N);
> - outTempCU->initEstData(depth);
>
> if (depth == g_maxCUDepth - g_addCUDepth)
> {
> @@ -572,8 +569,6 @@
> xFillOrigYUVBuffer(outBestCU, m_origYuv[depth]);
> }
>
> - outTempCU->initEstData(depth);
> -
> // further split
> if (depth < g_maxCUDepth - g_addCUDepth)
> {
> @@ -583,13 +578,14 @@
> uint32_t partUnitIdx = 0;
> for (; partUnitIdx < 4; partUnitIdx++)
> {
> - subBestPartCU->initSubCU(outTempCU, partUnitIdx, nextDepth); // clear sub partition datas or init.
> + int qp = outTempCU->getQP(0);
> + subBestPartCU->initSubCU(outTempCU, partUnitIdx, nextDepth, qp); // clear sub partition datas or init.
>
> if (bInsidePicture ||
> ((subBestPartCU->getCUPelX() < slice->getSPS()->getPicWidthInLumaSamples()) &&
> (subBestPartCU->getCUPelY() < slice->getSPS()->getPicHeightInLumaSamples())))
> {
> - subTempPartCU->initSubCU(outTempCU, partUnitIdx, nextDepth); // 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_rdSbacCoders[nextDepth][CI_CURR_BEST]->load(m_rdSbacCoders[depth][CI_CURR_BEST]);
> @@ -714,8 +710,6 @@
> // We need to split, so don't try these modes.
> if (bInsidePicture)
> {
> - outTempCU->initEstData(depth);
> -
> // do inter modes, SKIP and 2Nx2N
> if (slice->getSliceType() != I_SLICE)
> {
> @@ -723,18 +717,18 @@
> if (m_param->bEnableEarlySkip)
> {
> xCheckRDCostInter(outBestCU, outTempCU, SIZE_2Nx2N);
> - outTempCU->initEstData(depth); // by competition for inter_2Nx2N
> + outTempCU->initEstData(); // by competition for inter_2Nx2N
> }
> // by Merge for inter_2Nx2N
> xCheckRDCostMerge2Nx2N(outBestCU, outTempCU, &earlyDetectionSkipMode, m_bestPredYuv[depth], m_bestRecoYuv[depth]);
>
> - outTempCU->initEstData(depth);
> + outTempCU->initEstData();
>
> if (!m_param->bEnableEarlySkip)
> {
> // 2Nx2N, NxN
> xCheckRDCostInter(outBestCU, outTempCU, SIZE_2Nx2N);
> - outTempCU->initEstData(depth);
> + outTempCU->initEstData();
> if (m_param->bEnableCbfFastMode)
> {
> doNotBlockPu = outBestCU->getQtRootCbf(0) != 0;
> @@ -744,7 +738,7 @@
>
> if (!earlyDetectionSkipMode)
> {
> - outTempCU->initEstData(depth);
> + outTempCU->initEstData();
>
> // do inter modes, NxN, 2NxN, and Nx2N
> if (slice->getSliceType() != I_SLICE)
> @@ -755,7 +749,7 @@
> if (depth == g_maxCUDepth - g_addCUDepth && doNotBlockPu)
> {
> xCheckRDCostInter(outBestCU, outTempCU, SIZE_NxN);
> - outTempCU->initEstData(depth);
> + outTempCU->initEstData();
> }
> }
>
> @@ -765,7 +759,7 @@
> if (doNotBlockPu)
> {
> xCheckRDCostInter(outBestCU, outTempCU, SIZE_Nx2N);
> - outTempCU->initEstData(depth);
> + outTempCU->initEstData();
> if (m_param->bEnableCbfFastMode && outBestCU->getPartitionSize(0) == SIZE_Nx2N)
> {
> doNotBlockPu = outBestCU->getQtRootCbf(0) != 0;
> @@ -774,7 +768,7 @@
> if (doNotBlockPu)
> {
> xCheckRDCostInter(outBestCU, outTempCU, SIZE_2NxN);
> - outTempCU->initEstData(depth);
> + outTempCU->initEstData();
> if (m_param->bEnableCbfFastMode && outBestCU->getPartitionSize(0) == SIZE_2NxN)
> {
> doNotBlockPu = outBestCU->getQtRootCbf(0) != 0;
> @@ -796,7 +790,7 @@
> if (doNotBlockPu)
> {
> xCheckRDCostInter(outBestCU, outTempCU, SIZE_2NxnU);
> - outTempCU->initEstData(depth);
> + outTempCU->initEstData();
> if (m_param->bEnableCbfFastMode && outBestCU->getPartitionSize(0) == SIZE_2NxnU)
> {
> doNotBlockPu = outBestCU->getQtRootCbf(0) != 0;
> @@ -805,7 +799,7 @@
> if (doNotBlockPu)
> {
> xCheckRDCostInter(outBestCU, outTempCU, SIZE_2NxnD);
> - outTempCU->initEstData(depth);
> + outTempCU->initEstData();
> if (m_param->bEnableCbfFastMode && outBestCU->getPartitionSize(0) == SIZE_2NxnD)
> {
> doNotBlockPu = outBestCU->getQtRootCbf(0) != 0;
> @@ -817,7 +811,7 @@
> if (doNotBlockPu)
> {
> xCheckRDCostInter(outBestCU, outTempCU, SIZE_2NxnU, true);
> - outTempCU->initEstData(depth);
> + outTempCU->initEstData();
> if (m_param->bEnableCbfFastMode && outBestCU->getPartitionSize(0) == SIZE_2NxnU)
> {
> doNotBlockPu = outBestCU->getQtRootCbf(0) != 0;
> @@ -826,7 +820,7 @@
> if (doNotBlockPu)
> {
> xCheckRDCostInter(outBestCU, outTempCU, SIZE_2NxnD, true);
> - outTempCU->initEstData(depth);
> + outTempCU->initEstData();
> if (m_param->bEnableCbfFastMode && outBestCU->getPartitionSize(0) == SIZE_2NxnD)
> {
> doNotBlockPu = outBestCU->getQtRootCbf(0) != 0;
> @@ -840,7 +834,7 @@
> if (doNotBlockPu)
> {
> xCheckRDCostInter(outBestCU, outTempCU, SIZE_nLx2N);
> - outTempCU->initEstData(depth);
> + outTempCU->initEstData();
> if (m_param->bEnableCbfFastMode && outBestCU->getPartitionSize(0) == SIZE_nLx2N)
> {
> doNotBlockPu = outBestCU->getQtRootCbf(0) != 0;
> @@ -849,7 +843,7 @@
> if (doNotBlockPu)
> {
> xCheckRDCostInter(outBestCU, outTempCU, SIZE_nRx2N);
> - outTempCU->initEstData(depth);
> + outTempCU->initEstData();
> }
> }
> else if (bTestMergeAMP_Ver)
> @@ -857,7 +851,7 @@
> if (doNotBlockPu)
> {
> xCheckRDCostInter(outBestCU, outTempCU, SIZE_nLx2N, true);
> - outTempCU->initEstData(depth);
> + outTempCU->initEstData();
> if (m_param->bEnableCbfFastMode && outBestCU->getPartitionSize(0) == SIZE_nLx2N)
> {
> doNotBlockPu = outBestCU->getQtRootCbf(0) != 0;
> @@ -866,7 +860,7 @@
> if (doNotBlockPu)
> {
> xCheckRDCostInter(outBestCU, outTempCU, SIZE_nRx2N, true);
> - outTempCU->initEstData(depth);
> + outTempCU->initEstData();
> }
> }
> }
> @@ -879,14 +873,14 @@
> outBestCU->getCbf(0, TEXT_CHROMA_V) != 0) && doIntra)
> {
> xCheckRDCostIntraInInter(outBestCU, outTempCU, SIZE_2Nx2N);
> - outTempCU->initEstData(depth);
> + outTempCU->initEstData();
>
> if (depth == g_maxCUDepth - g_addCUDepth)
> {
> if (cuSize > (1 << slice->getSPS()->getQuadtreeTULog2MinSize()))
> {
> xCheckRDCostIntraInInter(outBestCU, outTempCU, SIZE_NxN);
> - outTempCU->initEstData(depth);
> + outTempCU->initEstData();
> }
> }
> }
> @@ -918,8 +912,6 @@
> xFillOrigYUVBuffer(outBestCU, m_origYuv[depth]);
> }
>
> - outTempCU->initEstData(depth);
> -
> // further split
> if (bSubBranch && depth < g_maxCUDepth - g_addCUDepth)
> {
> @@ -929,13 +921,14 @@
> uint32_t partUnitIdx = 0;
> for (; partUnitIdx < 4; partUnitIdx++)
> {
> - subBestPartCU->initSubCU(outTempCU, partUnitIdx, nextDepth); // clear sub partition datas or init.
> + int qp = outTempCU->getQP(0);
> + subBestPartCU->initSubCU(outTempCU, partUnitIdx, nextDepth, qp); // clear sub partition datas or init.
>
> if (bInsidePicture ||
> ((subBestPartCU->getCUPelX() < slice->getSPS()->getPicWidthInLumaSamples()) &&
> (subBestPartCU->getCUPelY() < slice->getSPS()->getPicHeightInLumaSamples())))
> {
> - subTempPartCU->initSubCU(outTempCU, partUnitIdx, nextDepth); // 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_rdSbacCoders[nextDepth][CI_CURR_BEST]->load(m_rdSbacCoders[depth][CI_CURR_BEST]);
> @@ -1212,15 +1205,7 @@
>
> bool bestIsSkip = false;
>
> - uint32_t iteration;
> - if (outTempCU->isLosslessCoded(0))
> - {
> - iteration = 1;
> - }
> - else
> - {
> - iteration = 2;
> - }
> + uint32_t iteration = outTempCU->isLosslessCoded(0) ? 1 : 2;
>
> for (uint32_t noResidual = 0; noResidual < iteration; ++noResidual)
> {
> @@ -1283,7 +1268,8 @@
> rpcYuvReconBest = m_tmpRecoYuv[depth];
> m_tmpRecoYuv[depth] = yuv;
> }
> - outTempCU->initEstData(depth, origQP);
> + outTempCU->setQPSubParts(origQP, 0, depth);
> + outTempCU->setSkipFlagSubParts(false, 0, depth);
> if (!bestIsSkip)
> {
> bestIsSkip = !outBestCU->getQtRootCbf(0);
> @@ -1328,7 +1314,6 @@
> {
> uint8_t depth = outTempCU->getDepth(0);
>
> - outTempCU->setDepthSubParts(depth);
> outTempCU->setSkipFlagSubParts(false, 0, depth);
> outTempCU->setPartSizeSubParts(partSize, 0, depth);
> outTempCU->setPredModeSubParts(MODE_INTER, 0, depth);
> diff -r 38da32f28481 -r 58bfb044b36a source/encoder/compress.cpp
> --- a/source/encoder/compress.cpp Mon Jun 30 12:42:51 2014 -0500
> +++ b/source/encoder/compress.cpp Tue Jul 01 14:38:47 2014 +0530
> @@ -291,7 +291,7 @@
> if (bestMergeCand < 0)
> {
> outBestCU->setMergeFlag(0, false);
> - outBestCU->initEstData(depth, outBestCU->getQP(0));
> + outBestCU->setQPSubParts(outBestCU->getQP(0), 0, depth);
> }
> else
> {
> @@ -732,7 +732,7 @@
> }
> }
> #endif // if EARLY_EXIT
> - outTempCU->initEstData(depth, qp);
> + outTempCU->setQPSubParts(qp, 0, depth);
> uint8_t nextDepth = (uint8_t)(depth + 1);
> TComDataCU* subBestPartCU;
> TComDataCU* subTempPartCU = m_tempCU[nextDepth];
> _______________________________________________
> 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