[x265] [PATCH] asm integration for TComYuv::copyPartToPartChroma, TComYuv::copyPartToPartChroma functions
praveen at multicorewareinc.com
praveen at multicorewareinc.com
Wed Nov 13 16:17:53 CET 2013
# HG changeset patch
# User Praveen Tiwari
# Date 1384355865 -19800
# Node ID 889ebed2ab37d5cb9e5901ecf4407881fb554f7d
# Parent db6eaffb8754fcc033d1493afba3a4ee1d03e25f
asm integration for TComYuv::copyPartToPartChroma, TComYuv::copyPartToPartChroma functions
diff -r db6eaffb8754 -r 889ebed2ab37 source/Lib/TLibCommon/TComYuv.cpp
--- a/source/Lib/TLibCommon/TComYuv.cpp Wed Nov 13 19:24:42 2013 +0530
+++ b/source/Lib/TLibCommon/TComYuv.cpp Wed Nov 13 20:47:45 2013 +0530
@@ -321,6 +321,8 @@
void TComYuv::copyPartToPartChroma(TComYuv* dstPicYuv, uint32_t partIdx, uint32_t width, uint32_t height, uint32_t chromaId)
{
+ int part = partitionFromSizes(width, height);
+
if (chromaId == 0)
{
Pel* srcU = getCbAddr(partIdx);
@@ -328,7 +330,7 @@
if (srcU == dstU) return;
uint32_t srcstride = getCStride();
uint32_t dststride = dstPicYuv->getCStride();
- primitives.blockcpy_pp(width, height, dstU, dststride, srcU, srcstride);
+ primitives.chroma_copy_pp[part](dstU, dststride, srcU, srcstride);
}
else if (chromaId == 1)
{
@@ -337,7 +339,7 @@
if (srcV == dstV) return;
uint32_t srcstride = getCStride();
uint32_t dststride = dstPicYuv->getCStride();
- primitives.blockcpy_pp(width, height, dstV, dststride, srcV, srcstride);
+ primitives.chroma_copy_pp[part](dstV, dststride, srcV, srcstride);
}
else
{
@@ -348,13 +350,15 @@
if (srcU == dstU && srcV == dstV) return;
uint32_t srcstride = getCStride();
uint32_t dststride = dstPicYuv->getCStride();
- primitives.blockcpy_pp(width, height, dstU, dststride, srcU, srcstride);
- primitives.blockcpy_pp(width, height, dstV, dststride, srcV, srcstride);
+ primitives.chroma_copy_pp[part](dstU, dststride, srcU, srcstride);
+ primitives.chroma_copy_pp[part](dstV, dststride, srcV, srcstride);
}
}
void TComYuv::copyPartToPartChroma(TShortYUV* dstPicYuv, uint32_t partIdx, uint32_t width, uint32_t height, uint32_t chromaId)
{
+ int part = partitionFromSizes(width, height);
+
if (chromaId == 0)
{
Pel* srcU = getCbAddr(partIdx);
@@ -363,7 +367,7 @@
uint32_t srcstride = getCStride();
uint32_t dststride = dstPicYuv->m_cwidth;
- primitives.blockcpy_sp(width, height, dstU, dststride, srcU, srcstride);
+ primitives.chroma_copy_ps[part](dstU, dststride, srcU, srcstride);
}
else if (chromaId == 1)
{
@@ -373,7 +377,7 @@
uint32_t srcstride = getCStride();
uint32_t dststride = dstPicYuv->m_cwidth;
- primitives.blockcpy_sp(width, height, dstV, dststride, srcV, srcstride);
+ primitives.chroma_copy_ps[part](dstV, dststride, srcV, srcstride);
}
else
{
@@ -385,8 +389,8 @@
uint32_t srcstride = getCStride();
uint32_t dststride = dstPicYuv->m_cwidth;
- primitives.blockcpy_sp(width, height, dstU, dststride, srcU, srcstride);
- primitives.blockcpy_sp(width, height, dstV, dststride, srcV, srcstride);
+ primitives.chroma_copy_ps[part](dstU, dststride, srcU, srcstride);
+ primitives.chroma_copy_ps[part](dstV, dststride, srcV, srcstride);
}
}
More information about the x265-devel
mailing list