[x265] [PATCH] TshortYUV: Cleanup and Used Performance Primitives for copy the block
gopu at multicorewareinc.com
gopu at multicorewareinc.com
Wed Jul 17 11:31:54 CEST 2013
# HG changeset patch
# User ggopu
# Date 1374053501 -19800
# Node ID ad9f7a7307572f0769e8abd1af78f66541fa4de6
# Parent c6c045e9272798ce5268643436759db22fd1950b
TshortYUV: Cleanup and Used Performance Primitives for copy the block
diff -r c6c045e92727 -r ad9f7a730757 source/common/TShortYUV.cpp
--- a/source/common/TShortYUV.cpp Wed Jul 17 13:06:06 2013 +0530
+++ b/source/common/TShortYUV.cpp Wed Jul 17 15:01:41 2013 +0530
@@ -172,98 +172,78 @@
copyPartToPartChroma(pcYuvDst, uiPartIdx, iWidth >> 1, iHeight >> 1);
}
-Void TShortYUV::copyPartToPartLuma(TShortYUV* pcYuvDst, unsigned int uiPartIdx, unsigned int iWidth, unsigned int iHeight)
+Void TShortYUV::copyPartToPartLuma(TShortYUV* pcYuvDst, unsigned int partIdx, unsigned int widthl, unsigned int heightl)
{
- short* pSrc = getLumaAddr(uiPartIdx);
- short* pDst = pcYuvDst->getLumaAddr(uiPartIdx);
+ short* src = getLumaAddr(partIdx);
+ short* dst = pcYuvDst->getLumaAddr(partIdx);
- if (pSrc == pDst)
+ if (src == dst)
{
//th not a good idea
//th best would be to fix the caller
return;
}
- unsigned int iSrcStride = width;
- unsigned int iDstStride = pcYuvDst->width;
- for (unsigned int y = iHeight; y != 0; y--)
+ unsigned int srcStride = width;
+ unsigned int dstStride = pcYuvDst->width;
+ for (unsigned int y = heightl; y != 0; y--)
{
- ::memcpy(pDst, pSrc, iWidth * sizeof(short));
- pSrc += iSrcStride;
- pDst += iDstStride;
+ ::memcpy(dst, src, widthl * sizeof(short));
+ src += srcStride;
+ dst += dstStride;
}
}
-Void TShortYUV::copyPartToPartLuma(TComYuv* pcYuvDst, unsigned int uiPartIdx, unsigned int iWidth, unsigned int iHeight)
+Void TShortYUV::copyPartToPartLuma(TComYuv* pcYuvDst, unsigned int partIdx, unsigned int widthl, unsigned int heightl)
{
- short* pSrc = getLumaAddr(uiPartIdx);
- Pel* pDst = pcYuvDst->getLumaAddr(uiPartIdx);
+ short* src = getLumaAddr(partIdx);
+ Pel* dst = pcYuvDst->getLumaAddr(partIdx);
- unsigned int iSrcStride = width;
- unsigned int iDstStride = pcYuvDst->getStride();
+ unsigned int srcStride = width;
+ unsigned int dstStride = pcYuvDst->getStride();
- for (unsigned int y = iHeight; y != 0; y--)
- {
- for (unsigned int x = 0; x < iWidth; x++)
- {
- pDst[x] = (Pel)(pSrc[x]);
- }
-
- pSrc += iSrcStride;
- pDst += iDstStride;
- }
+ primitives.blockcpy_ps(widthl, heightl, dst, dstStride, src, srcStride);
}
-Void TShortYUV::copyPartToPartChroma(TShortYUV* pcYuvDst, unsigned int uiPartIdx, unsigned int iWidth, unsigned int iHeight)
+Void TShortYUV::copyPartToPartChroma(TShortYUV* pcYuvDst, unsigned int partIdx, unsigned int widthc, unsigned int heightc)
{
- short* pSrcU = getCbAddr(uiPartIdx);
- short* pSrcV = getCrAddr(uiPartIdx);
- short* pDstU = pcYuvDst->getCbAddr(uiPartIdx);
- short* pDstV = pcYuvDst->getCrAddr(uiPartIdx);
+ short* srcU = getCbAddr(partIdx);
+ short* srcV = getCrAddr(partIdx);
+ short* dstU = pcYuvDst->getCbAddr(partIdx);
+ short* dstV = pcYuvDst->getCrAddr(partIdx);
- if (pSrcU == pDstU && pSrcV == pDstV)
+ if (srcU == dstU && srcV == dstV)
{
//th not a good idea
//th best would be to fix the caller
return;
}
- unsigned int iSrcStride = Cwidth;
- unsigned int iDstStride = pcYuvDst->Cwidth;
- for (unsigned int y = iHeight; y != 0; y--)
+ unsigned int srcStride = Cwidth;
+ unsigned int dstStride = pcYuvDst->Cwidth;
+ for (unsigned int y = heightc; y != 0; y--)
{
- ::memcpy(pDstU, pSrcU, iWidth * sizeof(short));
- ::memcpy(pDstV, pSrcV, iWidth * sizeof(short));
- pSrcU += iSrcStride;
- pSrcV += iSrcStride;
- pDstU += iDstStride;
- pDstV += iDstStride;
+ ::memcpy(dstU, srcU, widthc * sizeof(short));
+ ::memcpy(dstV, srcV, widthc * sizeof(short));
+ srcU += srcStride;
+ srcV += srcStride;
+ dstU += dstStride;
+ dstV += dstStride;
}
}
-Void TShortYUV::copyPartToPartChroma(TComYuv* pcYuvDst, unsigned int uiPartIdx, unsigned int iWidth, unsigned int iHeight)
+Void TShortYUV::copyPartToPartChroma(TComYuv* pcYuvDst, unsigned int partIdx, unsigned int widthc, unsigned int heightc)
{
- short* pSrcU = getCbAddr(uiPartIdx);
- short* pSrcV = getCrAddr(uiPartIdx);
- Pel* pDstU = pcYuvDst->getCbAddr(uiPartIdx);
- Pel* pDstV = pcYuvDst->getCrAddr(uiPartIdx);
+ short* srcU = getCbAddr(partIdx);
+ short* srcV = getCrAddr(partIdx);
+ Pel* dstU = pcYuvDst->getCbAddr(partIdx);
+ Pel* dstV = pcYuvDst->getCrAddr(partIdx);
- unsigned int iSrcStride = Cwidth;
- unsigned int iDstStride = pcYuvDst->getCStride();
+ unsigned int srcStride = Cwidth;
+ unsigned int dstStride = pcYuvDst->getCStride();
- for (unsigned int y = iHeight; y != 0; y--)
- {
- for (unsigned int x = 0; x < iWidth; x++)
- {
- pDstU[x] = (Pel)(pSrcU[x]);
- pDstV[x] = (Pel)(pSrcV[x]);
- }
-
- pSrcU += iSrcStride;
- pSrcV += iSrcStride;
- pDstU += iDstStride;
- pDstV += iDstStride;
- }
+ primitives.blockcpy_ps(widthc, heightc, dstU, dstStride, srcU, srcStride);
+ primitives.blockcpy_ps(widthc, heightc, dstV, dstStride, srcV, srcStride);
}
Void TShortYUV::copyPartToPartChroma(TShortYUV* pcYuvDst, unsigned int uiPartIdx, unsigned int iWidth, unsigned int iHeight, unsigned int chromaId)
@@ -329,63 +309,34 @@
}
}
-Void TShortYUV::copyPartToPartChroma(TComYuv* pcYuvDst, unsigned int uiPartIdx, unsigned int iWidth, unsigned int iHeight, unsigned int chromaId)
+Void TShortYUV::copyPartToPartChroma(TComYuv* pcYuvDst, unsigned int partIdx, unsigned int widthc, unsigned int heightc, unsigned int chromaId)
{
if (chromaId == 0)
{
- short* pSrcU = getCbAddr(uiPartIdx);
- Pel* pDstU = pcYuvDst->getCbAddr(uiPartIdx);
- unsigned int iSrcStride = Cwidth;
- unsigned int iDstStride = pcYuvDst->getCStride();
- for (unsigned int y = iHeight; y != 0; y--)
- {
- for (unsigned int x = 0; x < iWidth; x++)
- {
- pDstU[x] = (Pel)(pSrcU[x]);
- }
-
- pSrcU += iSrcStride;
- pDstU += iDstStride;
- }
+ short* srcU = getCbAddr(partIdx);
+ Pel* dstU = pcYuvDst->getCbAddr(partIdx);
+ unsigned int srcStride = Cwidth;
+ unsigned int dstStride = pcYuvDst->getCStride();
+ primitives.blockcpy_ps(widthc, heightc, dstU, dstStride, srcU, srcStride);
}
else if (chromaId == 1)
{
- short* pSrcV = getCrAddr(uiPartIdx);
- Pel* pDstV = pcYuvDst->getCrAddr(uiPartIdx);
- unsigned int iSrcStride = Cwidth;
- unsigned int iDstStride = pcYuvDst->getCStride();
- for (unsigned int y = iHeight; y != 0; y--)
- {
- for (unsigned int x = 0; x < iWidth; x++)
- {
- pDstV[x] = (Pel)(pSrcV[x]);
- }
-
- pSrcV += iSrcStride;
- pDstV += iDstStride;
- }
+ short* srcV = getCrAddr(partIdx);
+ Pel* dstV = pcYuvDst->getCrAddr(partIdx);
+ unsigned int srcStride = Cwidth;
+ unsigned int dstStride = pcYuvDst->getCStride();
+ primitives.blockcpy_ps(widthc, heightc, dstV, dstStride, srcV, srcStride);
}
else
{
- short* pSrcU = getCbAddr(uiPartIdx);
- short* pSrcV = getCrAddr(uiPartIdx);
- Pel* pDstU = pcYuvDst->getCbAddr(uiPartIdx);
- Pel* pDstV = pcYuvDst->getCrAddr(uiPartIdx);
+ short* srcU = getCbAddr(partIdx);
+ short* srcV = getCrAddr(partIdx);
+ Pel* dstU = pcYuvDst->getCbAddr(partIdx);
+ Pel* dstV = pcYuvDst->getCrAddr(partIdx);
- unsigned int iSrcStride = Cwidth;
- unsigned int iDstStride = pcYuvDst->getCStride();
- for (unsigned int y = iHeight; y != 0; y--)
- {
- for (unsigned int x = 0; x < iWidth; x++)
- {
- pDstU[x] = (Pel)(pSrcU[x]);
- pDstV[x] = (Pel)(pSrcV[x]);
- }
-
- pSrcU += iSrcStride;
- pSrcV += iSrcStride;
- pDstU += iDstStride;
- pDstV += iDstStride;
- }
+ unsigned int srcStride = Cwidth;
+ unsigned int dstStride = pcYuvDst->getCStride();
+ primitives.blockcpy_ps(widthc, heightc, dstU, dstStride, srcU, srcStride);
+ primitives.blockcpy_ps(widthc, heightc, dstV, dstStride, srcV, srcStride);
}
}
More information about the x265-devel
mailing list