[x265] [PATCH] TComYuv::addClipChroma, integrated pixel_add_ps function
praveen at multicorewareinc.com
praveen at multicorewareinc.com
Fri Nov 22 14:25:46 CET 2013
# HG changeset patch
# User Praveen Tiwari
# Date 1385126737 -19800
# Node ID 373dd184e43f42e3c6a3a95a2081c6d7f56bc81b
# Parent 623acddc1aa08b82bf7fc9678c28d3ffa6a13e09
TComYuv::addClipChroma, integrated pixel_add_ps function
diff -r 623acddc1aa0 -r 373dd184e43f source/Lib/TLibCommon/TComYuv.cpp
--- a/source/Lib/TLibCommon/TComYuv.cpp Fri Nov 22 18:22:51 2013 +0530
+++ b/source/Lib/TLibCommon/TComYuv.cpp Fri Nov 22 18:55:37 2013 +0530
@@ -398,7 +398,7 @@
int part = partitionFromSizes(partSize, partSize);
addClipLuma(srcYuv0, srcYuv1, trUnitIdx, partSize, part);
- addClipChroma(srcYuv0, srcYuv1, trUnitIdx, partSize >> m_hChromaShift);
+ addClipChroma(srcYuv0, srcYuv1, trUnitIdx, partSize >> m_hChromaShift, part);
}
void TComYuv::addClipLuma(TComYuv* srcYuv0, TShortYUV* srcYuv1, uint32_t trUnitIdx, uint32_t partSize, uint32_t part)
@@ -414,10 +414,8 @@
primitives.luma_add_ps[part](dst, dststride, src0, src1, src0Stride, src1Stride);
}
-void TComYuv::addClipChroma(TComYuv* srcYuv0, TShortYUV* srcYuv1, uint32_t trUnitIdx, uint32_t partSize)
+void TComYuv::addClipChroma(TComYuv* srcYuv0, TShortYUV* srcYuv1, uint32_t trUnitIdx, uint32_t partSize, uint32_t part)
{
- int x, y;
-
Pel* srcU0 = srcYuv0->getCbAddr(trUnitIdx, partSize);
int16_t* srcU1 = srcYuv1->getCbAddr(trUnitIdx, partSize);
Pel* srcV0 = srcYuv0->getCrAddr(trUnitIdx, partSize);
@@ -429,21 +427,8 @@
uint32_t src1Stride = srcYuv1->m_cwidth;
uint32_t dststride = getCStride();
- for (y = partSize - 1; y >= 0; y--)
- {
- for (x = partSize - 1; x >= 0; x--)
- {
- dstU[x] = ClipC(static_cast<int16_t>(srcU0[x]) + srcU1[x]);
- dstV[x] = ClipC(static_cast<int16_t>(srcV0[x]) + srcV1[x]);
- }
-
- srcU0 += src0Stride;
- srcU1 += src1Stride;
- srcV0 += src0Stride;
- srcV1 += src1Stride;
- dstU += dststride;
- dstV += dststride;
- }
+ primitives.chroma[m_csp].add_ps[part](dstU, dststride, srcU0, srcU1, src0Stride, src1Stride);
+ primitives.chroma[m_csp].add_ps[part](dstV, dststride, srcV0, srcV1, src0Stride, src1Stride);
}
void TComYuv::subtract(TComYuv* srcYuv0, TComYuv* srcYuv1, uint32_t trUnitIdx, uint32_t partSize)
diff -r 623acddc1aa0 -r 373dd184e43f source/Lib/TLibCommon/TComYuv.h
--- a/source/Lib/TLibCommon/TComYuv.h Fri Nov 22 18:22:51 2013 +0530
+++ b/source/Lib/TLibCommon/TComYuv.h Fri Nov 22 18:55:37 2013 +0530
@@ -154,7 +154,7 @@
// Clip(srcYuv0 + srcYuv1) -> m_apiBuf
void addClip(TComYuv* srcYuv0, TShortYUV* srcYuv1, uint32_t trUnitIdx, uint32_t partSize);
void addClipLuma(TComYuv* srcYuv0, TShortYUV* srcYuv1, uint32_t trUnitIdx, uint32_t partSize, uint32_t part);
- void addClipChroma(TComYuv* srcYuv0, TShortYUV* srcYuv1, uint32_t trUnitIdx, uint32_t partSize);
+ void addClipChroma(TComYuv* srcYuv0, TShortYUV* srcYuv1, uint32_t trUnitIdx, uint32_t partSize, uint32_t part);
// srcYuv0 - srcYuv1 -> m_apiBuf
void subtract(TComYuv* srcYuv0, TComYuv* srcYuv1, uint32_t trUnitIdx, uint32_t partSize);
More information about the x265-devel
mailing list