# HG changeset patch
# User Steve Borho <[email protected]>
# Date 1425065607 21600
# Fri Feb 27 13:33:27 2015 -0600
# Node ID 184bb358472e8fc5e904dff5965aba7ecdfe7680
# Parent 4c25a661122b0df50bcf6fb3996bf0cc0bc213b9
predict: move 4:4:4 chroma sample filtering into initAdiPatternChroma()
diff -r 4c25a661122b -r 184bb358472e source/common/predict.cpp
--- a/source/common/predict.cpp Fri Feb 27 13:27:40 2015 -0600
+++ b/source/common/predict.cpp Fri Feb 27 13:33:27 2015 -0600
@@ -582,11 +582,11 @@
void Predict::predIntraLumaAng(uint32_t dirMode, pixel* dst, intptr_t stride,
uint32_t log2TrSize)
{
+ int tuSize = 1 << log2TrSize;
int sizeIdx = log2TrSize - 2;
- int tuSize = 1 << log2TrSize;
- int filter = !!(g_intraFilterFlags[dirMode] & tuSize);
X265_CHECK(sizeIdx >= 0 && sizeIdx < 4, "intra block size is out of
range\n");
+ int filter = !!(g_intraFilterFlags[dirMode] & tuSize);
bool bFilter = log2TrSize <= 4;
primitives.cu[sizeIdx].intra_pred[dirMode](dst, stride,
intraNeighbourBuf[filter], dirMode, bFilter);
}
@@ -597,15 +597,8 @@
int sizeIdx = log2TrSizeC - 2;
X265_CHECK(sizeIdx >= 0 && sizeIdx < 4, "intra block size is out of
range\n");
- pixel* srcBuf = intraNeighbourBuf[0];
-
- if (chFmt == X265_CSP_I444 && (g_intraFilterFlags[dirMode] & tuSize))
- {
- primitives.cu[sizeIdx].intra_filter(intraNeighbourBuf[0],
intraNeighbourBuf[1]);
- srcBuf = intraNeighbourBuf[1];
- }
-
- primitives.cu[sizeIdx].intra_pred[dirMode](dst, stride, srcBuf, dirMode,
0);
+ int filter = !!(chFmt == X265_CSP_I444 && (g_intraFilterFlags[dirMode] &
tuSize));
+ primitives.cu[sizeIdx].intra_pred[dirMode](dst, stride,
intraNeighbourBuf[filter], dirMode, 0);
}
void Predict::initAdiPattern(const CUData& cu, const CUGeom& cuGeom, uint32_t
puAbsPartIdx, const IntraNeighbors& intraNeighbors, int dirMode)
@@ -665,6 +658,9 @@
intptr_t picStride = cu.m_encData->m_reconPic->m_strideC;
fillReferenceSamples(adiOrigin, picStride, intraNeighbors,
intraNeighbourBuf[0]);
+
+ if (m_csp == X265_CSP_I444)
+ primitives.cu[intraNeighbors.log2TrSize -
2].intra_filter(intraNeighbourBuf[0], intraNeighbourBuf[1]);
}
void Predict::initIntraNeighbors(const CUData& cu, uint32_t absPartIdx,
uint32_t tuDepth, bool isLuma, IntraNeighbors *intraNeighbors)
_______________________________________________
x265-devel mailing list
[email protected]
https://mailman.videolan.org/listinfo/x265-devel