[x265] [PATCH] Cleaned up TComDataCU::getQuadtreeTULog2MinSizeInCU for clarity and a bit of performance
Steve Borho
steve at borho.org
Thu Sep 4 14:19:05 CEST 2014
On 09/03, dtyx265 at gmail.com wrote:
> # HG changeset patch
> # User David T Yuen <dtyx265 at gmail.com>
> # Date 1409785208 25200
> # Node ID 07aebf3f56a03c2514f0213bb3c17184da88d89f
> # Parent 62c4779fb0bb35d5d8a69678e9e8aa81272f0115
> Cleaned up TComDataCU::getQuadtreeTULog2MinSizeInCU for clarity and a bit of performance
thanks, queued
> diff -r 62c4779fb0bb -r 07aebf3f56a0 source/Lib/TLibCommon/TComDataCU.cpp
> --- a/source/Lib/TLibCommon/TComDataCU.cpp Thu Aug 28 13:14:34 2014 +0530
> +++ b/source/Lib/TLibCommon/TComDataCU.cpp Wed Sep 03 16:00:08 2014 -0700
> @@ -1197,13 +1197,26 @@
> {
> uint32_t log2CUSize = getLog2CUSize(absPartIdx);
> PartSize partSize = getPartitionSize(absPartIdx);
> - uint32_t quadtreeTUMaxDepth = getPredictionMode(absPartIdx) == MODE_INTRA ? m_slice->m_sps->quadtreeTUMaxDepthIntra : m_slice->m_sps->quadtreeTUMaxDepthInter;
> - int intraSplitFlag = (getPredictionMode(absPartIdx) == MODE_INTRA && partSize == SIZE_NxN) ? 1 : 0;
> - int interSplitFlag = ((quadtreeTUMaxDepth == 1) && (getPredictionMode(absPartIdx) == MODE_INTER) && (partSize != SIZE_2Nx2N));
> + uint32_t quadtreeTUDepth;
> +
> + if (getPredictionMode(absPartIdx) == MODE_INTRA)
> + {
> + quadtreeTUDepth = m_slice->m_sps->quadtreeTUMaxDepthIntra - 1;
> + // add 1 if split
> + if (partSize == SIZE_NxN)
> + quadtreeTUDepth++;
> + }
> + else
> + {
> + quadtreeTUDepth = m_slice->m_sps->quadtreeTUMaxDepthInter - 1;
> + // add 1 if split
> + if (quadtreeTUDepth == 1 && partSize != SIZE_2Nx2N)
> + quadtreeTUDepth++;
> + }
>
> uint32_t log2MinTUSizeInCU = 0;
>
> - if (log2CUSize < (m_slice->m_sps->quadtreeTULog2MinSize + quadtreeTUMaxDepth - 1 + interSplitFlag + intraSplitFlag))
> + if (log2CUSize < (m_slice->m_sps->quadtreeTULog2MinSize + quadtreeTUDepth))
> {
> // when fully making use of signaled TUMaxDepth + inter/intraSplitFlag, resulting luma TB size is < QuadtreeTULog2MinSize
> log2MinTUSizeInCU = m_slice->m_sps->quadtreeTULog2MinSize;
> @@ -1211,7 +1224,7 @@
> else
> {
> // when fully making use of signaled TUMaxDepth + inter/intraSplitFlag, resulting luma TB size is still >= QuadtreeTULog2MinSize
> - log2MinTUSizeInCU = log2CUSize - (quadtreeTUMaxDepth - 1 + interSplitFlag + intraSplitFlag); // stop when trafoDepth == hierarchy_depth = splitFlag
> + log2MinTUSizeInCU = log2CUSize - quadtreeTUDepth; // stop when trafoDepth == hierarchy_depth = splitFlag
> if (log2MinTUSizeInCU > m_slice->m_sps->quadtreeTULog2MaxSize)
> {
> // when fully making use of signaled TUMaxDepth + inter/intraSplitFlag, resulting luma TB size is still > QuadtreeTULog2MaxSize
> _______________________________________________
> 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