[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