Re: [x265] [PATCH] TComDataCU: remove redundant functions
On 07/18, as...@multicorewareinc.com wrote: # HG changeset patch # User Ashok Kumar Mishraas...@multicorewareinc.com # Date 1405676988 -19800 # Fri Jul 18 15:19:48 2014 +0530 # Node ID 75545e34cc09d8fb00342a500cbc1deb2928070c # Parent eef6867b9c53b4b9dad639ba9b68c81666abe37a TComDataCU: remove redundant functions queue, thanks -- Steve Borho ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
[x265] [PATCH] TComDataCU: remove redundant functions
# HG changeset patch # User Ashok Kumar Mishraas...@multicorewareinc.com # Date 1404283815 -19800 # Wed Jul 02 12:20:15 2014 +0530 # Node ID b546653344ca4f81845d44b2f0b86d56dcb853d3 # Parent e3f9acd4ff88eee82b7554baaab512bc1fd8e840 TComDataCU: remove redundant functions diff -r e3f9acd4ff88 -r b546653344ca source/Lib/TLibCommon/TComDataCU.cpp --- a/source/Lib/TLibCommon/TComDataCU.cpp Thu Jul 03 16:24:26 2014 +0530 +++ b/source/Lib/TLibCommon/TComDataCU.cpp Wed Jul 02 12:20:15 2014 +0530 @@ -1615,117 +1615,6 @@ outMvField.setMvField(cuMvField-getMv(absPartIdx), cuMvField-getRefIdx(absPartIdx)); } -void TComDataCU::deriveLeftRightTopIdxGeneral(uint32_t absPartIdx, uint32_t partIdx, uint32_t outPartIdxLT, uint32_t outPartIdxRT) -{ -outPartIdxLT = m_absIdxInLCU + absPartIdx; -uint32_t cuSize = m_cuSize[absPartIdx]; -uint32_t puWidth = 0; - -switch (m_partSizes[absPartIdx]) -{ -case SIZE_2Nx2N: puWidth = cuSize; -break; -case SIZE_2NxN: puWidth = cuSize; -break; -case SIZE_Nx2N: puWidth = cuSize 1; -break; -case SIZE_NxN: puWidth = cuSize 1; -break; -case SIZE_2NxnU: puWidth = cuSize; -break; -case SIZE_2NxnD: puWidth = cuSize; -break; -case SIZE_nLx2N: -if (partIdx == 0) -{ -puWidth = cuSize 2; -} -else if (partIdx == 1) -{ -puWidth = (cuSize 1) + (cuSize 2); -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -case SIZE_nRx2N: -if (partIdx == 0) -{ -puWidth = (cuSize 1) + (cuSize 2); -} -else if (partIdx == 1) -{ -puWidth = cuSize 2; -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -default: -X265_CHECK(0, unexpected part type\n); -break; -} - -outPartIdxRT = g_rasterToZscan[g_zscanToRaster[outPartIdxLT] + (puWidth m_pic-getLog2UnitSize()) - 1]; -} - -void TComDataCU::deriveLeftBottomIdxGeneral(uint32_t absPartIdx, uint32_t partIdx, uint32_t outPartIdxLB) -{ -uint32_t cuSize = m_cuSize[absPartIdx]; -uint32_t puHeight = 0; - -switch (m_partSizes[absPartIdx]) -{ -case SIZE_2Nx2N: puHeight = cuSize; -break; -case SIZE_2NxN: puHeight = cuSize 1; -break; -case SIZE_Nx2N: puHeight = cuSize; -break; -case SIZE_NxN: puHeight = cuSize 1; -break; -case SIZE_2NxnU: -if (partIdx == 0) -{ -puHeight = cuSize 2; -} -else if (partIdx == 1) -{ -puHeight = (cuSize 1) + (cuSize 2); -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -case SIZE_2NxnD: -if (partIdx == 0) -{ -puHeight = (cuSize 1) + (cuSize 2); -} -else if (partIdx == 1) -{ -puHeight = cuSize 2; -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -case SIZE_nLx2N: puHeight = cuSize; -break; -case SIZE_nRx2N: puHeight = cuSize; -break; -default: -X265_CHECK(0, unexpected part type\n); -break; -} - -outPartIdxLB = g_rasterToZscan[g_zscanToRaster[m_absIdxInLCU + absPartIdx] + ((puHeight m_pic-getLog2UnitSize()) - 1) * m_pic-getNumPartInCUSize()]; -} - void TComDataCU::deriveLeftRightTopIdx(uint32_t partIdx, uint32_t ruiPartIdxLT, uint32_t ruiPartIdxRT) { ruiPartIdxLT = m_absIdxInLCU; @@ -1890,8 +1779,6 @@ uint32_t absPartAddr = m_absIdxInLCU + absPartIdx; const bool isInterB = getSlice()-isInterB(); -maxNumMergeCand = getSlice()-getMaxNumMergeCand(); - for (uint32_t i = 0; i maxNumMergeCand; ++i) { mvFieldNeighbours[i][0].refIdx = NOT_VALID; @@ -1906,7 +1793,9 @@ uint32_t partIdxLT, partIdxRT, partIdxLB; PartSize curPS = getPartitionSize(absPartIdx); -deriveLeftBottomIdxGeneral(absPartIdx, puIdx, partIdxLB); + +//Left Bottom Idx +deriveLeftBottomIdx(puIdx, partIdxLB); //left uint32_t leftPartIdx = 0; @@ -1934,7 +1823,8 @@ } } -deriveLeftRightTopIdxGeneral(absPartIdx, puIdx, partIdxLT, partIdxRT); +//Left Right Top Idx +deriveLeftRightTopIdx(puIdx, partIdxLT, partIdxRT); // above uint32_t abovePartIdx = 0; @@ -1944,6 +1834,7 @@ cuAbove-isDiffMER(xP + nPSW - 1, yP - 1, xP, yP) !(puIdx == 1 (curPS == SIZE_2NxN || curPS == SIZE_2NxnU || curPS == SIZE_2NxnD)) !cuAbove-isIntra(abovePartIdx); + if (isAvailableB1 (!isAvailableA1 || !cuLeft-hasEqualMotion(leftPartIdx, cuAbove, abovePartIdx))) { // get Inter Dir @@ -2209,6 +2100,7 @@ { return true; } + return false;
Re: [x265] [PATCH] TComDataCU: remove redundant functions
On 7/3/2014 3:24 PM, as...@multicorewareinc.com wrote: # HG changeset patch # User Ashok Kumar Mishraas...@multicorewareinc.com # Date 1404283815 -19800 # Wed Jul 02 12:20:15 2014 +0530 # Node ID b546653344ca4f81845d44b2f0b86d56dcb853d3 # Parent e3f9acd4ff88eee82b7554baaab512bc1fd8e840 TComDataCU: remove redundant functions \o/ - Derek ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
Re: [x265] [PATCH] TComDataCU: remove redundant functions
On Thu, Jul 3, 2014 at 9:24 AM, as...@multicorewareinc.com wrote: # HG changeset patch # User Ashok Kumar Mishraas...@multicorewareinc.com # Date 1404283815 -19800 # Wed Jul 02 12:20:15 2014 +0530 # Node ID b546653344ca4f81845d44b2f0b86d56dcb853d3 # Parent e3f9acd4ff88eee82b7554baaab512bc1fd8e840 TComDataCU: remove redundant functions I had this queued for default but I found, entirely on accident, that this causes cross-thread memory corruption when debugged in Xcode. So I've un-queued it locally. diff -r e3f9acd4ff88 -r b546653344ca source/Lib/TLibCommon/TComDataCU.cpp --- a/source/Lib/TLibCommon/TComDataCU.cpp Thu Jul 03 16:24:26 2014 +0530 +++ b/source/Lib/TLibCommon/TComDataCU.cpp Wed Jul 02 12:20:15 2014 +0530 @@ -1615,117 +1615,6 @@ outMvField.setMvField(cuMvField-getMv(absPartIdx), cuMvField-getRefIdx(absPartIdx)); } -void TComDataCU::deriveLeftRightTopIdxGeneral(uint32_t absPartIdx, uint32_t partIdx, uint32_t outPartIdxLT, uint32_t outPartIdxRT) -{ -outPartIdxLT = m_absIdxInLCU + absPartIdx; -uint32_t cuSize = m_cuSize[absPartIdx]; -uint32_t puWidth = 0; - -switch (m_partSizes[absPartIdx]) -{ -case SIZE_2Nx2N: puWidth = cuSize; -break; -case SIZE_2NxN: puWidth = cuSize; -break; -case SIZE_Nx2N: puWidth = cuSize 1; -break; -case SIZE_NxN: puWidth = cuSize 1; -break; -case SIZE_2NxnU: puWidth = cuSize; -break; -case SIZE_2NxnD: puWidth = cuSize; -break; -case SIZE_nLx2N: -if (partIdx == 0) -{ -puWidth = cuSize 2; -} -else if (partIdx == 1) -{ -puWidth = (cuSize 1) + (cuSize 2); -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -case SIZE_nRx2N: -if (partIdx == 0) -{ -puWidth = (cuSize 1) + (cuSize 2); -} -else if (partIdx == 1) -{ -puWidth = cuSize 2; -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -default: -X265_CHECK(0, unexpected part type\n); -break; -} - -outPartIdxRT = g_rasterToZscan[g_zscanToRaster[outPartIdxLT] + (puWidth m_pic-getLog2UnitSize()) - 1]; -} - -void TComDataCU::deriveLeftBottomIdxGeneral(uint32_t absPartIdx, uint32_t partIdx, uint32_t outPartIdxLB) -{ -uint32_t cuSize = m_cuSize[absPartIdx]; -uint32_t puHeight = 0; - -switch (m_partSizes[absPartIdx]) -{ -case SIZE_2Nx2N: puHeight = cuSize; -break; -case SIZE_2NxN: puHeight = cuSize 1; -break; -case SIZE_Nx2N: puHeight = cuSize; -break; -case SIZE_NxN: puHeight = cuSize 1; -break; -case SIZE_2NxnU: -if (partIdx == 0) -{ -puHeight = cuSize 2; -} -else if (partIdx == 1) -{ -puHeight = (cuSize 1) + (cuSize 2); -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -case SIZE_2NxnD: -if (partIdx == 0) -{ -puHeight = (cuSize 1) + (cuSize 2); -} -else if (partIdx == 1) -{ -puHeight = cuSize 2; -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -case SIZE_nLx2N: puHeight = cuSize; -break; -case SIZE_nRx2N: puHeight = cuSize; -break; -default: -X265_CHECK(0, unexpected part type\n); -break; -} - -outPartIdxLB = g_rasterToZscan[g_zscanToRaster[m_absIdxInLCU + absPartIdx] + ((puHeight m_pic-getLog2UnitSize()) - 1) * m_pic-getNumPartInCUSize()]; -} - void TComDataCU::deriveLeftRightTopIdx(uint32_t partIdx, uint32_t ruiPartIdxLT, uint32_t ruiPartIdxRT) { ruiPartIdxLT = m_absIdxInLCU; @@ -1890,8 +1779,6 @@ uint32_t absPartAddr = m_absIdxInLCU + absPartIdx; const bool isInterB = getSlice()-isInterB(); -maxNumMergeCand = getSlice()-getMaxNumMergeCand(); - for (uint32_t i = 0; i maxNumMergeCand; ++i) { mvFieldNeighbours[i][0].refIdx = NOT_VALID; @@ -1906,7 +1793,9 @@ uint32_t partIdxLT, partIdxRT, partIdxLB; PartSize curPS = getPartitionSize(absPartIdx); -deriveLeftBottomIdxGeneral(absPartIdx, puIdx, partIdxLB); + +//Left Bottom Idx +deriveLeftBottomIdx(puIdx, partIdxLB); //left uint32_t leftPartIdx = 0; @@ -1934,7 +1823,8 @@ } } -deriveLeftRightTopIdxGeneral(absPartIdx, puIdx, partIdxLT, partIdxRT); +//Left Right Top Idx +deriveLeftRightTopIdx(puIdx, partIdxLT, partIdxRT); // above uint32_t abovePartIdx = 0; @@ -1944,6 +1834,7 @@
Re: [x265] [PATCH] TComDataCU: remove redundant functions
On Thu, Jul 3, 2014 at 9:24 AM, as...@multicorewareinc.com wrote: # HG changeset patch # User Ashok Kumar Mishraas...@multicorewareinc.com # Date 1404283815 -19800 # Wed Jul 02 12:20:15 2014 +0530 # Node ID b546653344ca4f81845d44b2f0b86d56dcb853d3 # Parent e3f9acd4ff88eee82b7554baaab512bc1fd8e840 TComDataCU: remove redundant functions diff -r e3f9acd4ff88 -r b546653344ca source/Lib/TLibCommon/TComDataCU.cpp --- a/source/Lib/TLibCommon/TComDataCU.cpp Thu Jul 03 16:24:26 2014 +0530 +++ b/source/Lib/TLibCommon/TComDataCU.cpp Wed Jul 02 12:20:15 2014 +0530 @@ -1615,117 +1615,6 @@ outMvField.setMvField(cuMvField-getMv(absPartIdx), cuMvField-getRefIdx(absPartIdx)); } -void TComDataCU::deriveLeftRightTopIdxGeneral(uint32_t absPartIdx, uint32_t partIdx, uint32_t outPartIdxLT, uint32_t outPartIdxRT) -{ -outPartIdxLT = m_absIdxInLCU + absPartIdx; -uint32_t cuSize = m_cuSize[absPartIdx]; -uint32_t puWidth = 0; - -switch (m_partSizes[absPartIdx]) -{ -case SIZE_2Nx2N: puWidth = cuSize; -break; -case SIZE_2NxN: puWidth = cuSize; -break; -case SIZE_Nx2N: puWidth = cuSize 1; -break; -case SIZE_NxN: puWidth = cuSize 1; -break; -case SIZE_2NxnU: puWidth = cuSize; -break; -case SIZE_2NxnD: puWidth = cuSize; -break; -case SIZE_nLx2N: -if (partIdx == 0) -{ -puWidth = cuSize 2; -} -else if (partIdx == 1) -{ -puWidth = (cuSize 1) + (cuSize 2); -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -case SIZE_nRx2N: -if (partIdx == 0) -{ -puWidth = (cuSize 1) + (cuSize 2); -} -else if (partIdx == 1) -{ -puWidth = cuSize 2; -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -default: -X265_CHECK(0, unexpected part type\n); -break; -} - -outPartIdxRT = g_rasterToZscan[g_zscanToRaster[outPartIdxLT] + (puWidth m_pic-getLog2UnitSize()) - 1]; -} - -void TComDataCU::deriveLeftBottomIdxGeneral(uint32_t absPartIdx, uint32_t partIdx, uint32_t outPartIdxLB) -{ -uint32_t cuSize = m_cuSize[absPartIdx]; -uint32_t puHeight = 0; - -switch (m_partSizes[absPartIdx]) -{ -case SIZE_2Nx2N: puHeight = cuSize; -break; -case SIZE_2NxN: puHeight = cuSize 1; -break; -case SIZE_Nx2N: puHeight = cuSize; -break; -case SIZE_NxN: puHeight = cuSize 1; -break; -case SIZE_2NxnU: -if (partIdx == 0) -{ -puHeight = cuSize 2; -} -else if (partIdx == 1) -{ -puHeight = (cuSize 1) + (cuSize 2); -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -case SIZE_2NxnD: -if (partIdx == 0) -{ -puHeight = (cuSize 1) + (cuSize 2); -} -else if (partIdx == 1) -{ -puHeight = cuSize 2; -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -case SIZE_nLx2N: puHeight = cuSize; -break; -case SIZE_nRx2N: puHeight = cuSize; -break; -default: -X265_CHECK(0, unexpected part type\n); -break; -} - -outPartIdxLB = g_rasterToZscan[g_zscanToRaster[m_absIdxInLCU + absPartIdx] + ((puHeight m_pic-getLog2UnitSize()) - 1) * m_pic-getNumPartInCUSize()]; -} - void TComDataCU::deriveLeftRightTopIdx(uint32_t partIdx, uint32_t ruiPartIdxLT, uint32_t ruiPartIdxRT) { ruiPartIdxLT = m_absIdxInLCU; @@ -1890,8 +1779,6 @@ uint32_t absPartAddr = m_absIdxInLCU + absPartIdx; const bool isInterB = getSlice()-isInterB(); -maxNumMergeCand = getSlice()-getMaxNumMergeCand(); - perhaps this line removal was the source of the corruption for (uint32_t i = 0; i maxNumMergeCand; ++i) { mvFieldNeighbours[i][0].refIdx = NOT_VALID; @@ -1906,7 +1793,9 @@ uint32_t partIdxLT, partIdxRT, partIdxLB; PartSize curPS = getPartitionSize(absPartIdx); -deriveLeftBottomIdxGeneral(absPartIdx, puIdx, partIdxLB); + +//Left Bottom Idx +deriveLeftBottomIdx(puIdx, partIdxLB); //left uint32_t leftPartIdx = 0; @@ -1934,7 +1823,8 @@ } } -deriveLeftRightTopIdxGeneral(absPartIdx, puIdx, partIdxLT, partIdxRT); +//Left Right Top Idx +deriveLeftRightTopIdx(puIdx, partIdxLT, partIdxRT); // above uint32_t abovePartIdx = 0; @@ -1944,6 +1834,7 @@ cuAbove-isDiffMER(xP + nPSW - 1, yP - 1, xP, yP) !(puIdx == 1 (curPS == SIZE_2NxN || curPS == SIZE_2NxnU ||
[x265] [PATCH] TComDataCU: remove redundant functions
# HG changeset patch # User Ashok Kumar Mishraas...@multicorewareinc.com # Date 1404283815 -19800 # Wed Jul 02 12:20:15 2014 +0530 # Node ID efa2f64a1565ae40dac666e81d268e7ac4432c3f # Parent a18972fd05b1d6242a881bef979b9e1ff17543d9 TComDataCU: remove redundant functions diff -r a18972fd05b1 -r efa2f64a1565 source/Lib/TLibCommon/TComDataCU.cpp --- a/source/Lib/TLibCommon/TComDataCU.cpp Tue Jul 01 14:58:35 2014 -0500 +++ b/source/Lib/TLibCommon/TComDataCU.cpp Wed Jul 02 12:20:15 2014 +0530 @@ -1615,117 +1615,6 @@ outMvField.setMvField(cuMvField-getMv(absPartIdx), cuMvField-getRefIdx(absPartIdx)); } -void TComDataCU::deriveLeftRightTopIdxGeneral(uint32_t absPartIdx, uint32_t partIdx, uint32_t outPartIdxLT, uint32_t outPartIdxRT) -{ -outPartIdxLT = m_absIdxInLCU + absPartIdx; -uint32_t cuSize = m_cuSize[absPartIdx]; -uint32_t puWidth = 0; - -switch (m_partSizes[absPartIdx]) -{ -case SIZE_2Nx2N: puWidth = cuSize; -break; -case SIZE_2NxN: puWidth = cuSize; -break; -case SIZE_Nx2N: puWidth = cuSize 1; -break; -case SIZE_NxN: puWidth = cuSize 1; -break; -case SIZE_2NxnU: puWidth = cuSize; -break; -case SIZE_2NxnD: puWidth = cuSize; -break; -case SIZE_nLx2N: -if (partIdx == 0) -{ -puWidth = cuSize 2; -} -else if (partIdx == 1) -{ -puWidth = (cuSize 1) + (cuSize 2); -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -case SIZE_nRx2N: -if (partIdx == 0) -{ -puWidth = (cuSize 1) + (cuSize 2); -} -else if (partIdx == 1) -{ -puWidth = cuSize 2; -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -default: -X265_CHECK(0, unexpected part type\n); -break; -} - -outPartIdxRT = g_rasterToZscan[g_zscanToRaster[outPartIdxLT] + (puWidth m_pic-getLog2UnitSize()) - 1]; -} - -void TComDataCU::deriveLeftBottomIdxGeneral(uint32_t absPartIdx, uint32_t partIdx, uint32_t outPartIdxLB) -{ -uint32_t cuSize = m_cuSize[absPartIdx]; -uint32_t puHeight = 0; - -switch (m_partSizes[absPartIdx]) -{ -case SIZE_2Nx2N: puHeight = cuSize; -break; -case SIZE_2NxN: puHeight = cuSize 1; -break; -case SIZE_Nx2N: puHeight = cuSize; -break; -case SIZE_NxN: puHeight = cuSize 1; -break; -case SIZE_2NxnU: -if (partIdx == 0) -{ -puHeight = cuSize 2; -} -else if (partIdx == 1) -{ -puHeight = (cuSize 1) + (cuSize 2); -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -case SIZE_2NxnD: -if (partIdx == 0) -{ -puHeight = (cuSize 1) + (cuSize 2); -} -else if (partIdx == 1) -{ -puHeight = cuSize 2; -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -case SIZE_nLx2N: puHeight = cuSize; -break; -case SIZE_nRx2N: puHeight = cuSize; -break; -default: -X265_CHECK(0, unexpected part type\n); -break; -} - -outPartIdxLB = g_rasterToZscan[g_zscanToRaster[m_absIdxInLCU + absPartIdx] + ((puHeight m_pic-getLog2UnitSize()) - 1) * m_pic-getNumPartInCUSize()]; -} - void TComDataCU::deriveLeftRightTopIdx(uint32_t partIdx, uint32_t ruiPartIdxLT, uint32_t ruiPartIdxRT) { ruiPartIdxLT = m_absIdxInLCU; @@ -1889,9 +1778,9 @@ { uint32_t absPartAddr = m_absIdxInLCU + absPartIdx; const bool isInterB = getSlice()-isInterB(); - +#if 0 maxNumMergeCand = getSlice()-getMaxNumMergeCand(); - +#endif for (uint32_t i = 0; i maxNumMergeCand; ++i) { mvFieldNeighbours[i][0].refIdx = NOT_VALID; @@ -1906,7 +1795,12 @@ uint32_t partIdxLT, partIdxRT, partIdxLB; PartSize curPS = getPartitionSize(absPartIdx); + +#if 0 deriveLeftBottomIdxGeneral(absPartIdx, puIdx, partIdxLB); +#endif +//Left Bottom Idx +deriveLeftBottomIdx(puIdx, partIdxLB); //left uint32_t leftPartIdx = 0; @@ -1934,7 +1828,11 @@ } } +//Left Right Top Idx +#if 0 deriveLeftRightTopIdxGeneral(absPartIdx, puIdx, partIdxLT, partIdxRT); +#endif +deriveLeftRightTopIdx(puIdx, partIdxLT, partIdxRT); // above uint32_t abovePartIdx = 0; @@ -1944,6 +1842,7 @@ cuAbove-isDiffMER(xP + nPSW - 1, yP - 1, xP, yP) !(puIdx == 1 (curPS == SIZE_2NxN || curPS == SIZE_2NxnU || curPS == SIZE_2NxnD)) !cuAbove-isIntra(abovePartIdx); + if (isAvailableB1 (!isAvailableA1 || !cuLeft-hasEqualMotion(leftPartIdx, cuAbove, abovePartIdx))) { // get Inter Dir @@ -2209,6 +2108,7 @@ {
Re: [x265] [PATCH] TComDataCU: remove redundant functions
On Wed, Jul 2, 2014 at 10:00 AM, as...@multicorewareinc.com wrote: # HG changeset patch # User Ashok Kumar Mishraas...@multicorewareinc.com # Date 1404283815 -19800 # Wed Jul 02 12:20:15 2014 +0530 # Node ID efa2f64a1565ae40dac666e81d268e7ac4432c3f # Parent a18972fd05b1d6242a881bef979b9e1ff17543d9 TComDataCU: remove redundant functions diff -r a18972fd05b1 -r efa2f64a1565 source/Lib/TLibCommon/TComDataCU.cpp --- a/source/Lib/TLibCommon/TComDataCU.cpp Tue Jul 01 14:58:35 2014 -0500 +++ b/source/Lib/TLibCommon/TComDataCU.cpp Wed Jul 02 12:20:15 2014 +0530 @@ -1615,117 +1615,6 @@ outMvField.setMvField(cuMvField-getMv(absPartIdx), cuMvField-getRefIdx(absPartIdx)); } -void TComDataCU::deriveLeftRightTopIdxGeneral(uint32_t absPartIdx, uint32_t partIdx, uint32_t outPartIdxLT, uint32_t outPartIdxRT) -{ -outPartIdxLT = m_absIdxInLCU + absPartIdx; -uint32_t cuSize = m_cuSize[absPartIdx]; -uint32_t puWidth = 0; - -switch (m_partSizes[absPartIdx]) -{ -case SIZE_2Nx2N: puWidth = cuSize; -break; -case SIZE_2NxN: puWidth = cuSize; -break; -case SIZE_Nx2N: puWidth = cuSize 1; -break; -case SIZE_NxN: puWidth = cuSize 1; -break; -case SIZE_2NxnU: puWidth = cuSize; -break; -case SIZE_2NxnD: puWidth = cuSize; -break; -case SIZE_nLx2N: -if (partIdx == 0) -{ -puWidth = cuSize 2; -} -else if (partIdx == 1) -{ -puWidth = (cuSize 1) + (cuSize 2); -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -case SIZE_nRx2N: -if (partIdx == 0) -{ -puWidth = (cuSize 1) + (cuSize 2); -} -else if (partIdx == 1) -{ -puWidth = cuSize 2; -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -default: -X265_CHECK(0, unexpected part type\n); -break; -} - -outPartIdxRT = g_rasterToZscan[g_zscanToRaster[outPartIdxLT] + (puWidth m_pic-getLog2UnitSize()) - 1]; -} - -void TComDataCU::deriveLeftBottomIdxGeneral(uint32_t absPartIdx, uint32_t partIdx, uint32_t outPartIdxLB) -{ -uint32_t cuSize = m_cuSize[absPartIdx]; -uint32_t puHeight = 0; - -switch (m_partSizes[absPartIdx]) -{ -case SIZE_2Nx2N: puHeight = cuSize; -break; -case SIZE_2NxN: puHeight = cuSize 1; -break; -case SIZE_Nx2N: puHeight = cuSize; -break; -case SIZE_NxN: puHeight = cuSize 1; -break; -case SIZE_2NxnU: -if (partIdx == 0) -{ -puHeight = cuSize 2; -} -else if (partIdx == 1) -{ -puHeight = (cuSize 1) + (cuSize 2); -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -case SIZE_2NxnD: -if (partIdx == 0) -{ -puHeight = (cuSize 1) + (cuSize 2); -} -else if (partIdx == 1) -{ -puHeight = cuSize 2; -} -else -{ -X265_CHECK(0, unexpected part index\n); -} -break; -case SIZE_nLx2N: puHeight = cuSize; -break; -case SIZE_nRx2N: puHeight = cuSize; -break; -default: -X265_CHECK(0, unexpected part type\n); -break; -} - -outPartIdxLB = g_rasterToZscan[g_zscanToRaster[m_absIdxInLCU + absPartIdx] + ((puHeight m_pic-getLog2UnitSize()) - 1) * m_pic-getNumPartInCUSize()]; -} - void TComDataCU::deriveLeftRightTopIdx(uint32_t partIdx, uint32_t ruiPartIdxLT, uint32_t ruiPartIdxRT) { ruiPartIdxLT = m_absIdxInLCU; @@ -1889,9 +1778,9 @@ { uint32_t absPartAddr = m_absIdxInLCU + absPartIdx; const bool isInterB = getSlice()-isInterB(); - +#if 0 maxNumMergeCand = getSlice()-getMaxNumMergeCand(); - +#endif we don't want to litter the code with #if 0; if the lines are no longer useful or valid, just remove them. If we want them back later we can find them in the revision history. for (uint32_t i = 0; i maxNumMergeCand; ++i) { mvFieldNeighbours[i][0].refIdx = NOT_VALID; @@ -1906,7 +1795,12 @@ uint32_t partIdxLT, partIdxRT, partIdxLB; PartSize curPS = getPartitionSize(absPartIdx); + +#if 0 deriveLeftBottomIdxGeneral(absPartIdx, puIdx, partIdxLB); +#endif +//Left Bottom Idx +deriveLeftBottomIdx(puIdx, partIdxLB); //left uint32_t leftPartIdx = 0; @@ -1934,7 +1828,11 @@ } } +//Left Right Top Idx +#if 0 deriveLeftRightTopIdxGeneral(absPartIdx, puIdx, partIdxLT, partIdxRT); +#endif +deriveLeftRightTopIdx(puIdx, partIdxLT, partIdxRT); // above