[x265] change index of m_buOffsetY[] from raster to zscan

Satoshi Nakagawa nakagawa424 at oki.com
Wed Sep 3 10:29:06 CEST 2014


# HG changeset patch
# User Satoshi Nakagawa <nakagawa424 at oki.com>
# Date 1409732761 -32400
#      Wed Sep 03 17:26:01 2014 +0900
# Node ID bccd2c7fa8aa0352f05ac9e4329d9ebf5c23899c
# Parent  62c4779fb0bb35d5d8a69678e9e8aa81272f0115
change index of m_buOffsetY[] from raster to zscan

diff -r 62c4779fb0bb -r bccd2c7fa8aa source/Lib/TLibCommon/TComPicYuv.cpp
--- a/source/Lib/TLibCommon/TComPicYuv.cpp	Thu Aug 28 13:14:34 2014 +0530
+++ b/source/Lib/TLibCommon/TComPicYuv.cpp	Wed Sep 03 17:26:01 2014 +0900
@@ -111,13 +111,12 @@
 
     CHECKED_MALLOC(m_buOffsetY, int, (size_t)numPartitions);
     CHECKED_MALLOC(m_buOffsetC, int, (size_t)numPartitions);
-    for (int buRow = 0; buRow < (1 << maxFullDepth); buRow++)
+    for (uint32_t idx = 0; idx < numPartitions; ++idx)
     {
-        for (int buCol = 0; buCol < (1 << maxFullDepth); buCol++)
-        {
-            m_buOffsetY[(buRow << maxFullDepth) + buCol] = getStride() * buRow * UNIT_SIZE + buCol * UNIT_SIZE;
-            m_buOffsetC[(buRow << maxFullDepth) + buCol] = getCStride() * buRow * (UNIT_SIZE >> m_vChromaShift) + buCol * (UNIT_SIZE >> m_hChromaShift);
-        }
+        int x = g_zscanToPelX[idx];
+        int y = g_zscanToPelY[idx];
+        m_buOffsetY[idx] = getStride() * y + x;
+        m_buOffsetC[idx] = getCStride() * (y >> m_vChromaShift) + (x >> m_hChromaShift);
     }
 
     return true;
diff -r 62c4779fb0bb -r bccd2c7fa8aa source/Lib/TLibCommon/TComPicYuv.h
--- a/source/Lib/TLibCommon/TComPicYuv.h	Thu Aug 28 13:14:34 2014 +0530
+++ b/source/Lib/TLibCommon/TComPicYuv.h	Wed Sep 03 17:26:01 2014 +0900
@@ -147,13 +147,13 @@
 
     pixel*  getChromaAddr(uint32_t chromaId, int cuAddr) { return m_picOrg[chromaId] + m_cuOffsetC[cuAddr]; }
 
-    pixel*  getLumaAddr(int cuAddr, int absZOrderIdx) { return m_picOrg[0] + m_cuOffsetY[cuAddr] + m_buOffsetY[g_zscanToRaster[absZOrderIdx]]; }
+    pixel*  getLumaAddr(int cuAddr, int absZOrderIdx) { return m_picOrg[0] + m_cuOffsetY[cuAddr] + m_buOffsetY[absZOrderIdx]; }
 
-    pixel*  getCbAddr(int cuAddr, int absZOrderIdx) { return m_picOrg[1] + m_cuOffsetC[cuAddr] + m_buOffsetC[g_zscanToRaster[absZOrderIdx]]; }
+    pixel*  getCbAddr(int cuAddr, int absZOrderIdx) { return m_picOrg[1] + m_cuOffsetC[cuAddr] + m_buOffsetC[absZOrderIdx]; }
 
-    pixel*  getCrAddr(int cuAddr, int absZOrderIdx) { return m_picOrg[2] + m_cuOffsetC[cuAddr] + m_buOffsetC[g_zscanToRaster[absZOrderIdx]]; }
+    pixel*  getCrAddr(int cuAddr, int absZOrderIdx) { return m_picOrg[2] + m_cuOffsetC[cuAddr] + m_buOffsetC[absZOrderIdx]; }
 
-    pixel*  getChromaAddr(uint32_t chromaId, int cuAddr, int absZOrderIdx) { return m_picOrg[chromaId] + m_cuOffsetC[cuAddr] + m_buOffsetC[g_zscanToRaster[absZOrderIdx]]; }
+    pixel*  getChromaAddr(uint32_t chromaId, int cuAddr, int absZOrderIdx) { return m_picOrg[chromaId] + m_cuOffsetC[cuAddr] + m_buOffsetC[absZOrderIdx]; }
 
     uint32_t getCUHeight(int rowNum);
 


More information about the x265-devel mailing list