[x265] [PATCH] TComYuv::copyFromPicYuv, now using asm blockcopy_pp
praveen at multicorewareinc.com
praveen at multicorewareinc.com
Wed Nov 13 14:35:02 CET 2013
# HG changeset patch
# User Praveen Tiwari
# Date 1384349667 -19800
# Node ID 3d802ec2fbcc83eb7f65010d135a62a608d74142
# Parent 6de9a634a13ec674a73e657666d5a8d909e6e68f
TComYuv::copyFromPicYuv, now using asm blockcopy_pp
diff -r 6de9a634a13e -r 3d802ec2fbcc source/Lib/TLibCommon/TComYuv.cpp
--- a/source/Lib/TLibCommon/TComYuv.cpp Wed Nov 13 18:29:27 2013 +0530
+++ b/source/Lib/TLibCommon/TComYuv.cpp Wed Nov 13 19:04:27 2013 +0530
@@ -145,11 +145,13 @@
void TComYuv::copyFromPicYuv(TComPicYuv* srcPicYuv, uint32_t cuAddr, uint32_t absZOrderIdx)
{
- copyFromPicLuma(srcPicYuv, cuAddr, absZOrderIdx);
- copyFromPicChroma(srcPicYuv, cuAddr, absZOrderIdx);
+ int part = partitionFromSizes(m_width, m_height);
+
+ copyFromPicLuma(srcPicYuv, cuAddr, absZOrderIdx, part);
+ copyFromPicChroma(srcPicYuv, cuAddr, absZOrderIdx, part);
}
-void TComYuv::copyFromPicLuma(TComPicYuv* srcPicYuv, uint32_t cuAddr, uint32_t absZOrderIdx)
+void TComYuv::copyFromPicLuma(TComPicYuv* srcPicYuv, uint32_t cuAddr, uint32_t absZOrderIdx, uint32_t part)
{
Pel* dst = m_bufY;
Pel* src = srcPicYuv->getLumaAddr(cuAddr, absZOrderIdx);
@@ -157,11 +159,10 @@
uint32_t dststride = getStride();
uint32_t srcstride = srcPicYuv->getStride();
- int part = partitionFromSizes(m_width, m_height);
primitives.luma_copy_pp[part](dst, dststride, src, srcstride);
}
-void TComYuv::copyFromPicChroma(TComPicYuv* srcPicYuv, uint32_t cuAddr, uint32_t absZOrderIdx)
+void TComYuv::copyFromPicChroma(TComPicYuv* srcPicYuv, uint32_t cuAddr, uint32_t absZOrderIdx, uint32_t part)
{
Pel* dstU = m_bufU;
Pel* dstV = m_bufV;
@@ -171,8 +172,8 @@
uint32_t dststride = getCStride();
uint32_t srcstride = srcPicYuv->getCStride();
- primitives.blockcpy_pp(m_cwidth, m_cheight, dstU, dststride, srcU, srcstride);
- primitives.blockcpy_pp(m_cwidth, m_cheight, dstV, dststride, srcV, srcstride);
+ primitives.chroma_copy_pp[part](dstU, dststride, srcU, srcstride);
+ primitives.chroma_copy_pp[part](dstV, dststride, srcV, srcstride);
}
void TComYuv::copyToPartYuv(TComYuv* dstPicYuv, uint32_t uiDstPartIdx)
diff -r 6de9a634a13e -r 3d802ec2fbcc source/Lib/TLibCommon/TComYuv.h
--- a/source/Lib/TLibCommon/TComYuv.h Wed Nov 13 18:29:27 2013 +0530
+++ b/source/Lib/TLibCommon/TComYuv.h Wed Nov 13 19:04:27 2013 +0530
@@ -120,8 +120,8 @@
// Copy YUV buffer from picture buffer
void copyFromPicYuv(TComPicYuv* srcPicYuv, uint32_t cuAddr, uint32_t absZOrderIdx);
- void copyFromPicLuma(TComPicYuv* srcPicYuv, uint32_t cuAddr, uint32_t absZOrderIdx);
- void copyFromPicChroma(TComPicYuv* srcPicYuv, uint32_t cuAddr, uint32_t absZOrderIdx);
+ void copyFromPicLuma(TComPicYuv* srcPicYuv, uint32_t cuAddr, uint32_t absZOrderIdx, uint32_t part);
+ void copyFromPicChroma(TComPicYuv* srcPicYuv, uint32_t cuAddr, uint32_t absZOrderIdx, uint32_t part);
// Copy Small YUV buffer to the part of other Big YUV buffer
void copyToPartYuv(TComYuv* dstPicYuv, uint32_t uiDstPartIdx);
More information about the x265-devel
mailing list