<div dir="ltr"><div><div><div>Thanks, Satoshi.<br><br></div>Your patch was imported, but unfortunately conflicts with our extensive changes for 444 support that I have just pushed in (this series of patches has been waiting in the wings for a while).<br>
<br></div>I have temporarily backed out your patch. Will apply it again, after resolving conflicts with 444 support. Alternatively, you can also send a new patch based on the latest tip. <br><br></div>Thanks for all your effort,<br>
Deepthi <br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Feb 14, 2014 at 11:00 AM, Satoshi Nakagawa <span dir="ltr"><<a href="mailto:nakagawa424@oki.com" target="_blank">nakagawa424@oki.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"># HG changeset patch<br>
# User Satoshi Nakagawa <<a href="mailto:nakagawa424@oki.com">nakagawa424@oki.com</a>><br>
# Date 1392355617 -32400<br>
#      Fri Feb 14 14:26:57 2014 +0900<br>
# Node ID fe7afa6a2e1290817d3469505b856c55f8d46a1d<br>
# Parent  757b127f8ede6a4b5b7f74186fa06be20df2a0ea<br>
square transform only<br>
<br>
diff -r 757b127f8ede -r fe7afa6a2e12 source/Lib/TLibCommon/TComTrQuant.cpp<br>
--- a/source/Lib/TLibCommon/TComTrQuant.cpp     Thu Feb 13 21:29:08 2014 -0600<br>
+++ b/source/Lib/TLibCommon/TComTrQuant.cpp     Fri Feb 14 14:26:57 2014 +0900<br>
@@ -129,13 +129,13 @@<br>
 }<br>
<br>
 // To minimize the distortion only. No rate is considered.<br>
-void TComTrQuant::signBitHidingHDQ(TCoeff* qCoef, TCoeff* coef, uint32_t const *scan, int32_t* deltaU, int width, int height)<br>
+void TComTrQuant::signBitHidingHDQ(TCoeff* qCoef, TCoeff* coef, uint32_t const *scan, int32_t* deltaU, int trSize)<br>
 {<br>
     int lastCG = -1;<br>
     int absSum = 0;<br>
     int n;<br>
<br>
-    for (int subSet = (width * height - 1) >> LOG2_SCAN_SET_SIZE; subSet >= 0; subSet--)<br>
+    for (int subSet = (trSize * trSize - 1) >> LOG2_SCAN_SET_SIZE; subSet >= 0; subSet--)<br>
     {<br>
         int  subPos = subSet << LOG2_SCAN_SET_SIZE;<br>
         int  firstNZPosInCG = SCAN_SET_SIZE, lastNZPosInCG = -1;<br>
@@ -252,31 +252,29 @@<br>
     } // TU loop<br>
 }<br>
<br>
-uint32_t TComTrQuant::xQuant(TComDataCU* cu, int32_t* coef, TCoeff* qCoef, int width, int height,<br>
+uint32_t TComTrQuant::xQuant(TComDataCU* cu, int32_t* coef, TCoeff* qCoef, int trSize,<br>
                              TextType ttype, uint32_t absPartIdx, int32_t *lastPos, bool curUseRDOQ)<br>
 {<br>
     uint32_t acSum = 0;<br>
     int add = 0;<br>
     bool useRDOQ = (cu->getTransformSkip(absPartIdx, ttype) ? m_useRDOQTS : m_useRDOQ) && curUseRDOQ;<br>
<br>
-    assert(width == height);<br>
-<br>
 #if _MSC_VER<br>
 #pragma warning(disable: 4127) // conditional expression is constant<br>
 #endif<br>
     if (useRDOQ && (ttype == TEXT_LUMA || RDOQ_CHROMA))<br>
     {<br>
-        acSum = xRateDistOptQuant(cu, coef, qCoef, width, height, ttype, absPartIdx, lastPos);<br>
+        acSum = xRateDistOptQuant(cu, coef, qCoef, trSize, ttype, absPartIdx, lastPos);<br>
     }<br>
     else<br>
     {<br>
-        const uint32_t log2BlockSize = g_convertToBit[width] + 2;<br>
-        uint32_t scanIdx = cu->getCoefScanIdx(absPartIdx, width, ttype == TEXT_LUMA, cu->isIntra(absPartIdx));<br>
+        const uint32_t log2TrSize = g_convertToBit[trSize] + 2;<br>
+        const uint32_t log2BlockSize = log2TrSize;<br>
+        uint32_t scanIdx = cu->getCoefScanIdx(absPartIdx, trSize, ttype == TEXT_LUMA, cu->isIntra(absPartIdx));<br>
         const uint32_t *scan = g_sigLastScan[scanIdx][log2BlockSize - 1];<br>
<br>
         int deltaU[32 * 32];<br>
<br>
-        uint32_t log2TrSize = g_convertToBit[width] + 2;<br>
         int scalingListType = (cu->isIntra(absPartIdx) ? 0 : 3) + ttype;<br>
         assert(scalingListType < 6);<br>
         int32_t *quantCoeff = 0;<br>
@@ -287,11 +285,11 @@<br>
         int qbits = QUANT_SHIFT + m_qpParam.m_per + transformShift;<br>
         add = (cu->getSlice()->getSliceType() == I_SLICE ? 171 : 85) << (qbits - 9);<br>
<br>
-        int numCoeff = width * height;<br>
+        int numCoeff = trSize * trSize;<br>
         acSum += primitives.quant(coef, quantCoeff, deltaU, qCoef, qbits, add, numCoeff, lastPos);<br>
<br>
         if (cu->getSlice()->getPPS()->getSignHideFlag() && acSum >= 2)<br>
-            signBitHidingHDQ(qCoef, coef, scan, deltaU, width, height);<br>
+            signBitHidingHDQ(qCoef, coef, scan, deltaU, trSize);<br>
     }<br>
<br>
     return acSum;<br>
@@ -309,8 +307,7 @@<br>
                                    int16_t*    residual,<br>
                                    uint32_t    stride,<br>
                                    TCoeff*     coeff,<br>
-                                   uint32_t    width,<br>
-                                   uint32_t    height,<br>
+                                   uint32_t    trSize,<br>
                                    TextType    ttype,<br>
                                    uint32_t    absPartIdx,<br>
                                    int32_t*    lastPos,<br>
@@ -320,11 +317,11 @@<br>
     if (cu->getCUTransquantBypass(absPartIdx))<br>
     {<br>
         uint32_t absSum = 0;<br>
-        for (uint32_t k = 0; k < height; k++)<br>
+        for (uint32_t k = 0; k < trSize; k++)<br>
         {<br>
-            for (uint32_t j = 0; j < width; j++)<br>
+            for (uint32_t j = 0; j < trSize; j++)<br>
             {<br>
-                coeff[k * width + j] = ((int16_t)residual[k * stride + j]);<br>
+                coeff[k * trSize + j] = ((int16_t)residual[k * stride + j]);<br>
                 absSum += abs(residual[k * stride + j]);<br>
             }<br>
         }<br>
@@ -342,29 +339,29 @@<br>
         mode = REG_DCT;<br>
     }<br>
<br>
-    assert((cu->getSlice()->getSPS()->getMaxTrSize() >= width));<br>
+    assert((cu->getSlice()->getSPS()->getMaxTrSize() >= trSize));<br>
     if (useTransformSkip)<br>
     {<br>
-        xTransformSkip(residual, stride, m_tmpCoeff, width, height);<br>
+        xTransformSkip(residual, stride, m_tmpCoeff, trSize);<br>
     }<br>
     else<br>
     {<br>
         // TODO: this may need larger data types for X265_DEPTH > 8<br>
-        const uint32_t log2BlockSize = g_convertToBit[width];<br>
-        primitives.dct[DCT_4x4 + log2BlockSize - ((width == 4) && (mode != REG_DCT))](residual, m_tmpCoeff, stride);<br>
+        const uint32_t log2BlockSize = g_convertToBit[trSize];<br>
+        primitives.dct[DCT_4x4 + log2BlockSize - ((trSize == 4) && (mode != REG_DCT))](residual, m_tmpCoeff, stride);<br>
     }<br>
-    return xQuant(cu, m_tmpCoeff, coeff, width, height, ttype, absPartIdx, lastPos, curUseRDOQ);<br>
+    return xQuant(cu, m_tmpCoeff, coeff, trSize, ttype, absPartIdx, lastPos, curUseRDOQ);<br>
 }<br>
<br>
-void TComTrQuant::invtransformNxN(bool transQuantBypass, uint32_t mode, int16_t* residual, uint32_t stride, TCoeff* coeff, uint32_t width, uint32_t height, int scalingListType, bool useTransformSkip, int lastPos)<br>
+void TComTrQuant::invtransformNxN(bool transQuantBypass, uint32_t mode, int16_t* residual, uint32_t stride, TCoeff* coeff, uint32_t trSize, int scalingListType, bool useTransformSkip, int lastPos)<br>
 {<br>
     if (transQuantBypass)<br>
     {<br>
-        for (uint32_t k = 0; k < height; k++)<br>
+        for (uint32_t k = 0; k < trSize; k++)<br>
         {<br>
-            for (uint32_t j = 0; j < width; j++)<br>
+            for (uint32_t j = 0; j < trSize; j++)<br>
             {<br>
-                residual[k * stride + j] = (int16_t)(coeff[k * width + j]);<br>
+                residual[k * stride + j] = (int16_t)(coeff[k * trSize + j]);<br>
             }<br>
         }<br>
<br>
@@ -375,7 +372,7 @@<br>
     int per = m_qpParam.m_per;<br>
     int rem = m_qpParam.m_rem;<br>
     bool useScalingList = getUseScalingList();<br>
-    uint32_t log2TrSize = g_convertToBit[width] + 2;<br>
+    const uint32_t log2TrSize = g_convertToBit[trSize] + 2;<br>
     int transformShift = MAX_TR_DYNAMIC_RANGE - X265_DEPTH - log2TrSize;<br>
     int shift = QUANT_IQUANT_SHIFT - QUANT_SHIFT - transformShift;<br>
     int32_t *dequantCoef = getDequantCoeff(scalingListType, m_qpParam.m_rem, log2TrSize - 2);<br>
@@ -384,30 +381,30 @@<br>
     {<br>
         static const int invQuantScales[6] = { 40, 45, 51, 57, 64, 72 };<br>
         int scale = invQuantScales[rem] << per;<br>
-        primitives.dequant_normal(coeff, m_tmpCoeff, width * height, scale, shift);<br>
+        primitives.dequant_normal(coeff, m_tmpCoeff, trSize * trSize, scale, shift);<br>
     }<br>
     else<br>
     {<br>
         // CHECK_ME: the code is not verify since this is DEAD path<br>
-        primitives.dequant_scaling(coeff, dequantCoef, m_tmpCoeff, width * height, per, shift);<br>
+        primitives.dequant_scaling(coeff, dequantCoef, m_tmpCoeff, trSize * trSize, per, shift);<br>
     }<br>
<br>
     if (useTransformSkip == true)<br>
     {<br>
-        xITransformSkip(m_tmpCoeff, residual, stride, width, height);<br>
+        xITransformSkip(m_tmpCoeff, residual, stride, trSize);<br>
     }<br>
     else<br>
     {<br>
         // CHECK_ME: we can't here when no any coeff<br>
         assert(lastPos >= 0);<br>
<br>
-        const uint32_t log2BlockSize = g_convertToBit[width];<br>
+        const uint32_t log2BlockSize = log2TrSize - 2;<br>
<br>
 #if HIGH_BIT_DEPTH<br>
         lastPos = !lastPos; // prevent warning<br>
 #else<br>
         // DC only<br>
-        if (lastPos == 0 && !((width == 4) && (mode != REG_DCT)))<br>
+        if (lastPos == 0 && !((trSize == 4) && (mode != REG_DCT)))<br>
         {<br>
             int dc_val = (((m_tmpCoeff[0] * 64 + 64) >> 7) * 64 + 2048) >> 12;<br>
             primitives.blockfill_s[log2BlockSize](residual, stride, dc_val);<br>
@@ -417,7 +414,7 @@<br>
 #endif<br>
<br>
         // TODO: this may need larger data types for X265_DEPTH > 8<br>
-        primitives.idct[IDCT_4x4 + log2BlockSize - ((width == 4) && (mode != REG_DCT))](m_tmpCoeff, residual, stride);<br>
+        primitives.idct[IDCT_4x4 + log2BlockSize - ((trSize == 4) && (mode != REG_DCT))](m_tmpCoeff, residual, stride);<br>
     }<br>
 }<br>
<br>
@@ -431,16 +428,15 @@<br>
  *  \param stride stride of input residual data<br>
  *  \param size transform size (size x size)<br>
  */<br>
-void TComTrQuant::xTransformSkip(int16_t* resiBlock, uint32_t stride, int32_t* coeff, int width, int height)<br>
+void TComTrQuant::xTransformSkip(int16_t* resiBlock, uint32_t stride, int32_t* coeff, int trSize)<br>
 {<br>
-    assert(width == height);<br>
-    uint32_t log2TrSize = g_convertToBit[width] + 2;<br>
+    uint32_t log2TrSize = g_convertToBit[trSize] + 2;<br>
     int  shift = MAX_TR_DYNAMIC_RANGE - X265_DEPTH - log2TrSize;<br>
     uint32_t transformSkipShift;<br>
     int  j, k;<br>
     if (shift >= 0)<br>
     {<br>
-        primitives.cvt16to32_shl(coeff, resiBlock, stride, shift, width);<br>
+        primitives.cvt16to32_shl(coeff, resiBlock, stride, shift, trSize);<br>
     }<br>
     else<br>
     {<br>
@@ -448,11 +444,11 @@<br>
         int offset;<br>
         transformSkipShift = -shift;<br>
         offset = (1 << (transformSkipShift - 1));<br>
-        for (j = 0; j < height; j++)<br>
+        for (j = 0; j < trSize; j++)<br>
         {<br>
-            for (k = 0; k < width; k++)<br>
+            for (k = 0; k < trSize; k++)<br>
             {<br>
-                coeff[j * height + k] = (resiBlock[j * stride + k] + offset) >> transformSkipShift;<br>
+                coeff[j * trSize + k] = (resiBlock[j * stride + k] + offset) >> transformSkipShift;<br>
             }<br>
         }<br>
     }<br>
@@ -464,26 +460,24 @@<br>
  *  \param stride stride of input residual data<br>
  *  \param size transform size (size x size)<br>
  */<br>
-void TComTrQuant::xITransformSkip(int32_t* coef, int16_t* residual, uint32_t stride, int width, int height)<br>
+void TComTrQuant::xITransformSkip(int32_t* coef, int16_t* residual, uint32_t stride, int trSize)<br>
 {<br>
-    assert(width == height);<br>
-    uint32_t log2TrSize = g_convertToBit[width] + 2;<br>
+    uint32_t log2TrSize = g_convertToBit[trSize] + 2;<br>
     int  shift = MAX_TR_DYNAMIC_RANGE - X265_DEPTH - log2TrSize;<br>
     int  j, k;<br>
     if (shift > 0)<br>
     {<br>
-        assert(width == height);<br>
-        primitives.cvt32to16_shr(residual, coef, stride, shift, width);<br>
+        primitives.cvt32to16_shr(residual, coef, stride, shift, trSize);<br>
     }<br>
     else<br>
     {<br>
         //The case when X265_DEPTH >= 13<br>
         uint32_t transformSkipShift = -shift;<br>
-        for (j = 0; j < height; j++)<br>
+        for (j = 0; j < trSize; j++)<br>
         {<br>
-            for (k = 0; k < width; k++)<br>
+            for (k = 0; k < trSize; k++)<br>
             {<br>
-                residual[j * stride + k] =  coef[j * width + k] << transformSkipShift;<br>
+                residual[j * stride + k] =  coef[j * trSize + k] << transformSkipShift;<br>
             }<br>
         }<br>
     }<br>
@@ -502,15 +496,15 @@<br>
  * Rate distortion optimized quantization for entropy<br>
  * coding engines using probability models like CABAC<br>
  */<br>
-uint32_t TComTrQuant::xRateDistOptQuant(TComDataCU* cu, int32_t* srcCoeff, TCoeff* dstCoeff, uint32_t width, uint32_t height,<br>
+uint32_t TComTrQuant::xRateDistOptQuant(TComDataCU* cu, int32_t* srcCoeff, TCoeff* dstCoeff, uint32_t trSize,<br>
                                         TextType ttype, uint32_t absPartIdx, int32_t *lastPos)<br>
 {<br>
-    uint32_t log2TrSize = g_convertToBit[width] + 2;<br>
+    const uint32_t log2TrSize = g_convertToBit[trSize] + 2;<br>
+    const uint32_t log2BlkSize = log2TrSize;<br>
     uint32_t absSum = 0;<br>
     int transformShift = MAX_TR_DYNAMIC_RANGE - X265_DEPTH - log2TrSize; // Represents scaling through forward transform<br>
     uint32_t       goRiceParam      = 0;<br>
     double     blockUncodedCost = 0;<br>
-    const uint32_t log2BlkSize      = g_convertToBit[width] + 2;<br>
     int scalingListType = (cu->isIntra(absPartIdx) ? 0 : 3) + ttype;<br>
<br>
     assert(scalingListType < 6);<br>
@@ -520,7 +514,7 @@<br>
     int32_t *qCoefOrg = getQuantCoeff(scalingListType, m_qpParam.m_rem, log2TrSize - 2);<br>
     int32_t *qCoef = qCoefOrg;<br>
     double *errScale = errScaleOrg;<br>
-    uint32_t scanIdx = cu->getCoefScanIdx(absPartIdx, width, ttype == TEXT_LUMA, cu->isIntra(absPartIdx));<br>
+    uint32_t scanIdx = cu->getCoefScanIdx(absPartIdx, trSize, ttype == TEXT_LUMA, cu->isIntra(absPartIdx));<br>
<br>
     double costCoeff[32 * 32];<br>
     double costSig[32 * 32];<br>
@@ -545,7 +539,7 @@<br>
     double costCoeffGroupSig[MLS_GRP_NUM];<br>
     uint32_t sigCoeffGroupFlag[MLS_GRP_NUM];<br>
<br>
-    uint32_t   numBlkSide  = width / MLS_CG_SIZE;<br>
+    uint32_t   numBlkSide  = trSize / MLS_CG_SIZE;<br>
     uint32_t   ctxSet      = 0;<br>
     int    c1          = 1;<br>
     int    c2          = 0;<br>
@@ -560,7 +554,7 @@<br>
<br>
     ::memset(sigCoeffGroupFlag, 0, sizeof(uint32_t) * MLS_GRP_NUM);<br>
<br>
-    uint32_t cgNum = width * height >> MLS_CG_SIZE;<br>
+    uint32_t cgNum = trSize * trSize >> MLS_CG_SIZE;<br>
     int scanPos;<br>
     coeffGroupRDStats rdStats;<br>
<br>
@@ -868,7 +862,7 @@<br>
         int tmpSum = 0;<br>
         int n;<br>
<br>
-        for (int subSet = (width * height - 1) >> LOG2_SCAN_SET_SIZE; subSet >= 0; subSet--)<br>
+        for (int subSet = (trSize * trSize - 1) >> LOG2_SCAN_SET_SIZE; subSet >= 0; subSet--)<br>
         {<br>
             int subPos = subSet << LOG2_SCAN_SET_SIZE;<br>
             int firstNZPosInCG = SCAN_SET_SIZE, lastNZPosInCG = -1;<br>
diff -r 757b127f8ede -r fe7afa6a2e12 source/Lib/TLibCommon/TComTrQuant.h<br>
--- a/source/Lib/TLibCommon/TComTrQuant.h       Thu Feb 13 21:29:08 2014 -0600<br>
+++ b/source/Lib/TLibCommon/TComTrQuant.h       Fri Feb 14 14:26:57 2014 +0900<br>
@@ -127,10 +127,10 @@<br>
     void init(uint32_t maxTrSize, int useRDOQ, int useRDOQTS, int useTransformSkipFast);<br>
<br>
     // transform & inverse transform functions<br>
-    uint32_t transformNxN(TComDataCU* cu, int16_t* residual, uint32_t stride, TCoeff* coeff, uint32_t width, uint32_t height,<br>
+    uint32_t transformNxN(TComDataCU* cu, int16_t* residual, uint32_t stride, TCoeff* coeff, uint32_t trSize,<br>
                           TextType ttype, uint32_t absPartIdx, int32_t* lastPos, bool useTransformSkip = false, bool curUseRDOQ = true);<br>
<br>
-    void invtransformNxN(bool transQuantBypass, uint32_t mode, int16_t* residual, uint32_t stride, TCoeff* coeff, uint32_t width, uint32_t height, int scalingListType, bool useTransformSkip = false, int lastPos = MAX_INT);<br>

+    void invtransformNxN(bool transQuantBypass, uint32_t mode, int16_t* residual, uint32_t stride, TCoeff* coeff, uint32_t trSize, int scalingListType, bool useTransformSkip = false, int lastPos = MAX_INT);<br>
<br>
     // Misc functions<br>
     void setQPforQuant(int qpy, TextType ttype, int qpBdOffset, int chromaQPOffset);<br>
@@ -190,14 +190,14 @@<br>
<br>
 private:<br>
<br>
-    void xTransformSkip(int16_t* resiBlock, uint32_t stride, int32_t* coeff, int width, int height);<br>
+    void xTransformSkip(int16_t* resiBlock, uint32_t stride, int32_t* coeff, int trSize);<br>
<br>
-    void signBitHidingHDQ(TCoeff* qcoeff, TCoeff* coeff, const uint32_t* scan, int32_t* deltaU, int width, int height);<br>
+    void signBitHidingHDQ(TCoeff* qcoeff, TCoeff* coeff, const uint32_t* scan, int32_t* deltaU, int trSize);<br>
<br>
-    uint32_t xQuant(TComDataCU* cu, int32_t* src, TCoeff* dst, int width, int height, TextType ttype, uint32_t absPartIdx, int32_t *lastPos, bool curUseRDOQ = true);<br>
+    uint32_t xQuant(TComDataCU* cu, int32_t* src, TCoeff* dst, int trSize, TextType ttype, uint32_t absPartIdx, int32_t *lastPos, bool curUseRDOQ = true);<br>
<br>
     // RDOQ functions<br>
-    uint32_t xRateDistOptQuant(TComDataCU* cu, int32_t* srcCoeff, TCoeff* dstCoeff, uint32_t width, uint32_t height, TextType ttype, uint32_t absPartIdx, int32_t *lastPos);<br>
+    uint32_t xRateDistOptQuant(TComDataCU* cu, int32_t* srcCoeff, TCoeff* dstCoeff, uint32_t trSize, TextType ttype, uint32_t absPartIdx, int32_t *lastPos);<br>
<br>
     inline uint32_t xGetCodedLevel(double& codedCost, double& codedCost0, double& codedCostSig, int levelDouble,<br>
                                    uint32_t maxAbsLevel, uint16_t ctxNumSig, uint16_t ctxNumOne, uint16_t ctxNumAbs, uint16_t absGoRice,<br>
@@ -217,7 +217,7 @@<br>
<br>
     inline uint32_t xGetIEPRate() const          { return 32768; }            ///< Get the cost of an equal probable bit<br>
<br>
-    void xITransformSkip(int32_t* coeff, int16_t* residual, uint32_t stride, int width, int height);<br>
+    void xITransformSkip(int32_t* coeff, int16_t* residual, uint32_t stride, int trSize);<br>
 };<br>
 }<br>
 //! \}<br>
diff -r 757b127f8ede -r fe7afa6a2e12 source/Lib/TLibEncoder/TEncSearch.cpp<br>
--- a/source/Lib/TLibEncoder/TEncSearch.cpp     Thu Feb 13 21:29:08 2014 -0600<br>
+++ b/source/Lib/TLibEncoder/TEncSearch.cpp     Fri Feb 14 14:26:57 2014 +0900<br>
@@ -466,7 +466,7 @@<br>
     m_trQuant->setQPforQuant(cu->getQP(0), TEXT_LUMA, cu->getSlice()->getSPS()->getQpBDOffsetY(), 0);<br>
     m_trQuant->selectLambda(TEXT_LUMA);<br>
<br>
-    absSum = m_trQuant->transformNxN(cu, residual, stride, coeff, width, height, TEXT_LUMA, absPartIdx, &lastPos, useTransformSkip);<br>
+    absSum = m_trQuant->transformNxN(cu, residual, stride, coeff, width, TEXT_LUMA, absPartIdx, &lastPos, useTransformSkip);<br>
<br>
     //--- set coded block flag ---<br>
     cu->setCbfSubParts((absSum ? 1 : 0) << trDepth, TEXT_LUMA, absPartIdx, fullDepth);<br>
@@ -477,7 +477,7 @@<br>
     {<br>
         int scalingListType = 0 + TEXT_LUMA;<br>
         assert(scalingListType < 6);<br>
-        m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), cu->getLumaIntraDir(absPartIdx), residual, stride, coeff, width, height, scalingListType, useTransformSkip, lastPos);<br>
+        m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), cu->getLumaIntraDir(absPartIdx), residual, stride, coeff, width, scalingListType, useTransformSkip, lastPos);<br>
     }<br>
     else<br>
     {<br>
@@ -602,7 +602,7 @@<br>
<br>
         m_trQuant->selectLambda(TEXT_CHROMA);<br>
<br>
-        absSum = m_trQuant->transformNxN(cu, residual, stride, coeff, width, height, ttype, absPartIdx, &lastPos, useTransformSkipChroma);<br>
+        absSum = m_trQuant->transformNxN(cu, residual, stride, coeff, width, ttype, absPartIdx, &lastPos, useTransformSkipChroma);<br>
<br>
         //--- set coded block flag ---<br>
         cu->setCbfSubParts((absSum ? 1 : 0) << origTrDepth, ttype, absPartIdx, cu->getDepth(0) + trDepth);<br>
@@ -612,7 +612,7 @@<br>
         {<br>
             int scalingListType = 0 + ttype;<br>
             assert(scalingListType < 6);<br>
-            m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, residual, stride, coeff, width, height, scalingListType, useTransformSkipChroma, lastPos);<br>
+            m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, residual, stride, coeff, width, scalingListType, useTransformSkipChroma, lastPos);<br>
         }<br>
         else<br>
         {<br>
@@ -1035,7 +1035,7 @@<br>
<br>
         m_trQuant->setQPforQuant(cu->getQP(0), TEXT_LUMA, cu->getSlice()->getSPS()->getQpBDOffsetY(), 0);<br>
         m_trQuant->selectLambda(TEXT_LUMA);<br>
-        absSum = m_trQuant->transformNxN(cu, residual, stride, coeff, width, height, TEXT_LUMA, absPartIdx, &lastPos, useTransformSkip);<br>
+        absSum = m_trQuant->transformNxN(cu, residual, stride, coeff, width, TEXT_LUMA, absPartIdx, &lastPos, useTransformSkip);<br>
<br>
         //--- set coded block flag ---<br>
         cu->setCbfSubParts((absSum ? 1 : 0) << trDepth, TEXT_LUMA, absPartIdx, fullDepth);<br>
@@ -1046,7 +1046,7 @@<br>
         {<br>
             int scalingListType = 0 + TEXT_LUMA;<br>
             assert(scalingListType < 6);<br>
-            m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), cu->getLumaIntraDir(absPartIdx), residual, stride, coeff, width, height, scalingListType, useTransformSkip, lastPos);<br>
+            m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), cu->getLumaIntraDir(absPartIdx), residual, stride, coeff, width, scalingListType, useTransformSkip, lastPos);<br>
         }<br>
         else<br>
         {<br>
@@ -1664,7 +1664,7 @@<br>
<br>
             m_trQuant->selectLambda(TEXT_CHROMA);<br>
<br>
-            absSum = m_trQuant->transformNxN(cu, residual, stride, coeff, width, height, ttype, absPartIdx, &lastPos, useTransformSkipChroma);<br>
+            absSum = m_trQuant->transformNxN(cu, residual, stride, coeff, width, ttype, absPartIdx, &lastPos, useTransformSkipChroma);<br>
<br>
             //--- set coded block flag ---<br>
             cu->setCbfSubParts((absSum ? 1 : 0) << trDepth, ttype, absPartIdx, cu->getDepth(0) + trDepth);<br>
@@ -1674,7 +1674,7 @@<br>
             {<br>
                 int scalingListType = 0 + ttype;<br>
                 assert(scalingListType < 6);<br>
-                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, residual, stride, coeff, width, height, scalingListType, useTransformSkipChroma, lastPos);<br>
+                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, residual, stride, coeff, width, scalingListType, useTransformSkipChroma, lastPos);<br>
             }<br>
             else<br>
             {<br>
@@ -3247,7 +3247,7 @@<br>
         m_trQuant->selectLambda(TEXT_LUMA);<br>
<br>
         absSumY = m_trQuant->transformNxN(cu, resiYuv->getLumaAddr(absTUPartIdx), resiYuv->m_width, coeffCurY,<br>
-                                          trWidth, trHeight, TEXT_LUMA, absPartIdx, &lastPosY, false, curuseRDOQ);<br>
+                                          trWidth, TEXT_LUMA, absPartIdx, &lastPosY, false, curuseRDOQ);<br>
<br>
         cu->setCbfSubParts(absSumY ? setCbf : 0, TEXT_LUMA, absPartIdx, depth);<br>
<br>
@@ -3259,12 +3259,12 @@<br>
             m_trQuant->selectLambda(TEXT_CHROMA);<br>
<br>
             absSumU = m_trQuant->transformNxN(cu, resiYuv->getCbAddr(absTUPartIdxC), resiYuv->m_cwidth, coeffCurU,<br>
-                                              trWidthC, trHeightC, TEXT_CHROMA_U, absPartIdx, &lastPosU, false, curuseRDOQ);<br>
+                                              trWidthC, TEXT_CHROMA_U, absPartIdx, &lastPosU, false, curuseRDOQ);<br>
<br>
             curChromaQpOffset = cu->getSlice()->getPPS()->getChromaCrQpOffset() + cu->getSlice()->getSliceQpDeltaCr();<br>
             m_trQuant->setQPforQuant(cu->getQP(0), TEXT_CHROMA, cu->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset);<br>
             absSumV = m_trQuant->transformNxN(cu, resiYuv->getCrAddr(absTUPartIdxC), resiYuv->m_cwidth, coeffCurV,<br>
-                                              trWidthC, trHeightC, TEXT_CHROMA_V, absPartIdx, &lastPosV, false, curuseRDOQ);<br>
+                                              trWidthC, TEXT_CHROMA_V, absPartIdx, &lastPosV, false, curuseRDOQ);<br>
<br>
             cu->setCbfSubParts(absSumU ? setCbf : 0, TEXT_CHROMA_U, absPartIdx, cu->getDepth(0) + trModeC);<br>
             cu->setCbfSubParts(absSumV ? setCbf : 0, TEXT_CHROMA_V, absPartIdx, cu->getDepth(0) + trModeC);<br>
@@ -3278,7 +3278,7 @@<br>
<br>
             int scalingListType = 3 + TEXT_LUMA;<br>
             assert(scalingListType < 6);<br>
-            m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiY, resiYuv->m_width,  coeffCurY, trWidth, trHeight, scalingListType, false, lastPosY); //this is for inter mode only<br>

+            m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiY, resiYuv->m_width,  coeffCurY, trWidth, scalingListType, false, lastPosY); //this is for inter mode only<br>
         }<br>
         else<br>
         {<br>
@@ -3298,7 +3298,7 @@<br>
<br>
                 int scalingListType = 3 + TEXT_CHROMA_U;<br>
                 assert(scalingListType < 6);<br>
-                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, pcResiCurrU, resiYuv->m_cwidth, coeffCurU, trWidthC, trHeightC, scalingListType, false, lastPosU);<br>
+                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, pcResiCurrU, resiYuv->m_cwidth, coeffCurU, trWidthC, scalingListType, false, lastPosU);<br>
             }<br>
             else<br>
             {<br>
@@ -3314,7 +3314,7 @@<br>
<br>
                 int scalingListType = 3 + TEXT_CHROMA_V;<br>
                 assert(scalingListType < 6);<br>
-                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiV, resiYuv->m_cwidth, coeffCurV, trWidthC, trHeightC, scalingListType, false, lastPosV);<br>
+                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiV, resiYuv->m_cwidth, coeffCurV, trWidthC, scalingListType, false, lastPosV);<br>
             }<br>
             else<br>
             {<br>
@@ -3456,7 +3456,7 @@<br>
         m_trQuant->selectLambda(TEXT_LUMA);<br>
<br>
         absSumY = m_trQuant->transformNxN(cu, resiYuv->getLumaAddr(absTUPartIdx), resiYuv->m_width, coeffCurY,<br>
-                                          trWidth, trHeight, TEXT_LUMA, absPartIdx, &lastPosY, false, curuseRDOQ);<br>
+                                          trWidth, TEXT_LUMA, absPartIdx, &lastPosY, false, curuseRDOQ);<br>
<br>
         cu->setCbfSubParts(absSumY ? setCbf : 0, TEXT_LUMA, absPartIdx, depth);<br>
<br>
@@ -3473,12 +3473,12 @@<br>
             m_trQuant->selectLambda(TEXT_CHROMA);<br>
<br>
             absSumU = m_trQuant->transformNxN(cu, resiYuv->getCbAddr(absTUPartIdxC), resiYuv->m_cwidth, coeffCurU,<br>
-                                              trWidthC, trHeightC, TEXT_CHROMA_U, absPartIdx, &lastPosU, false, curuseRDOQ);<br>
+                                              trWidthC, TEXT_CHROMA_U, absPartIdx, &lastPosU, false, curuseRDOQ);<br>
<br>
             curChromaQpOffset = cu->getSlice()->getPPS()->getChromaCrQpOffset() + cu->getSlice()->getSliceQpDeltaCr();<br>
             m_trQuant->setQPforQuant(cu->getQP(0), TEXT_CHROMA, cu->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset);<br>
             absSumV = m_trQuant->transformNxN(cu, resiYuv->getCrAddr(absTUPartIdxC), resiYuv->m_cwidth, coeffCurV,<br>
-                                              trWidthC, trHeightC, TEXT_CHROMA_V, absPartIdx, &lastPosV, false, curuseRDOQ);<br>
+                                              trWidthC, TEXT_CHROMA_V, absPartIdx, &lastPosV, false, curuseRDOQ);<br>
<br>
             cu->setCbfSubParts(absSumU ? setCbf : 0, TEXT_CHROMA_U, absPartIdx, cu->getDepth(0) + trModeC);<br>
             cu->setCbfSubParts(absSumV ? setCbf : 0, TEXT_CHROMA_V, absPartIdx, cu->getDepth(0) + trModeC);<br>
@@ -3523,7 +3523,7 @@<br>
             int scalingListType = 3 + TEXT_LUMA;<br>
             assert(scalingListType < 6);<br>
             assert(m_qtTempTComYuv[qtlayer].m_width == MAX_CU_SIZE);<br>
-            m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiY, MAX_CU_SIZE,  coeffCurY, trWidth, trHeight, scalingListType, false, lastPosY); //this is for inter mode only<br>
+            m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiY, MAX_CU_SIZE,  coeffCurY, trWidth, scalingListType, false, lastPosY); //this is for inter mode only<br>
<br>
             const uint32_t nonZeroDistY = primitives.sse_ss[partSize](resiYuv->getLumaAddr(absTUPartIdx), resiYuv->m_width, m_qtTempTComYuv[qtlayer].getLumaAddr(absTUPartIdx), MAX_CU_SIZE);<br>
             if (cu->isLosslessCoded(0))<br>
@@ -3595,7 +3595,7 @@<br>
                 int scalingListType = 3 + TEXT_CHROMA_U;<br>
                 assert(scalingListType < 6);<br>
                 assert(m_qtTempTComYuv[qtlayer].m_cwidth == MAX_CU_SIZE / 2);<br>
-                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, pcResiCurrU, MAX_CU_SIZE / 2, coeffCurU, trWidthC, trHeightC, scalingListType, false, lastPosU);<br>
+                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, pcResiCurrU, MAX_CU_SIZE / 2, coeffCurU, trWidthC, scalingListType, false, lastPosU);<br>
<br>
                 uint32_t dist = primitives.sse_ss[partSizeC](resiYuv->getCbAddr(absTUPartIdxC), resiYuv->m_cwidth,<br>
                                                              m_qtTempTComYuv[qtlayer].getCbAddr(absTUPartIdxC),<br>
@@ -3662,7 +3662,7 @@<br>
                 int scalingListType = 3 + TEXT_CHROMA_V;<br>
                 assert(scalingListType < 6);<br>
                 assert(m_qtTempTComYuv[qtlayer].m_cwidth == MAX_CU_SIZE / 2);<br>
-                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiV, MAX_CU_SIZE / 2, coeffCurV, trWidthC, trHeightC, scalingListType, false, lastPosV);<br>
+                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiV, MAX_CU_SIZE / 2, coeffCurV, trWidthC, scalingListType, false, lastPosV);<br>
<br>
                 uint32_t dist = primitives.sse_ss[partSizeC](resiYuv->getCrAddr(absTUPartIdxC), resiYuv->m_cwidth,<br>
                                                              m_qtTempTComYuv[qtlayer].getCrAddr(absTUPartIdxC),<br>
@@ -3753,7 +3753,7 @@<br>
<br>
             m_trQuant->selectLambda(TEXT_LUMA);<br>
             absSumTransformSkipY = m_trQuant->transformNxN(cu, resiYuv->getLumaAddr(absTUPartIdx), resiYuv->m_width, coeffCurY,<br>
-                                                           trWidth, trHeight, TEXT_LUMA, absPartIdx, &lastPosTransformSkipY, true, curuseRDOQ);<br>
+                                                           trWidth, TEXT_LUMA, absPartIdx, &lastPosTransformSkipY, true, curuseRDOQ);<br>
             cu->setCbfSubParts(absSumTransformSkipY ? setCbf : 0, TEXT_LUMA, absPartIdx, depth);<br>
<br>
             if (absSumTransformSkipY != 0)<br>
@@ -3769,7 +3769,7 @@<br>
                 assert(scalingListType < 6);<br>
                 assert(m_qtTempTComYuv[qtlayer].m_width == MAX_CU_SIZE);<br>
<br>
-                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiY, MAX_CU_SIZE,  coeffCurY, trWidth, trHeight, scalingListType, true, lastPosTransformSkipY);<br>
+                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiY, MAX_CU_SIZE,  coeffCurY, trWidth, scalingListType, true, lastPosTransformSkipY);<br>
<br>
                 nonZeroDistY = primitives.sse_ss[partSize](resiYuv->getLumaAddr(absTUPartIdx), resiYuv->m_width,<br>
                                                            m_qtTempTComYuv[qtlayer].getLumaAddr(absTUPartIdx),<br>
@@ -3834,11 +3834,11 @@<br>
             m_trQuant->selectLambda(TEXT_CHROMA);<br>
<br>
             absSumTransformSkipU = m_trQuant->transformNxN(cu, resiYuv->getCbAddr(absTUPartIdxC), resiYuv->m_cwidth, coeffCurU,<br>
-                                                           trWidthC, trHeightC, TEXT_CHROMA_U, absPartIdx, &lastPosTransformSkipU, true, curuseRDOQ);<br>
+                                                           trWidthC, TEXT_CHROMA_U, absPartIdx, &lastPosTransformSkipU, true, curuseRDOQ);<br>
             curChromaQpOffset = cu->getSlice()->getPPS()->getChromaCrQpOffset() + cu->getSlice()->getSliceQpDeltaCr();<br>
             m_trQuant->setQPforQuant(cu->getQP(0), TEXT_CHROMA, cu->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset);<br>
             absSumTransformSkipV = m_trQuant->transformNxN(cu, resiYuv->getCrAddr(absTUPartIdxC), resiYuv->m_cwidth, coeffCurV,<br>
-                                                           trWidthC, trHeightC, TEXT_CHROMA_V, absPartIdx, &lastPosTransformSkipV, true, curuseRDOQ);<br>
+                                                           trWidthC, TEXT_CHROMA_V, absPartIdx, &lastPosTransformSkipV, true, curuseRDOQ);<br>
<br>
             cu->setCbfSubParts(absSumTransformSkipU ? setCbf : 0, TEXT_CHROMA_U, absPartIdx, cu->getDepth(0) + trModeC);<br>
             cu->setCbfSubParts(absSumTransformSkipV ? setCbf : 0, TEXT_CHROMA_V, absPartIdx, cu->getDepth(0) + trModeC);<br>
@@ -3859,7 +3859,7 @@<br>
                 assert(scalingListType < 6);<br>
                 assert(m_qtTempTComYuv[qtlayer].m_cwidth == MAX_CU_SIZE / 2);<br>
<br>
-                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiU, MAX_CU_SIZE / 2, coeffCurU, trWidthC, trHeightC, scalingListType, true, lastPosTransformSkipU);<br>
+                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiU, MAX_CU_SIZE / 2, coeffCurU, trWidthC, scalingListType, true, lastPosTransformSkipU);<br>
<br>
                 uint32_t dist = primitives.sse_ss[partSizeC](resiYuv->getCbAddr(absTUPartIdxC), resiYuv->m_cwidth,<br>
                                                              m_qtTempTComYuv[qtlayer].getCbAddr(absTUPartIdxC),<br>
@@ -3898,7 +3898,7 @@<br>
                 assert(scalingListType < 6);<br>
                 assert(m_qtTempTComYuv[qtlayer].m_cwidth == MAX_CU_SIZE / 2);<br>
<br>
-                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiV, MAX_CU_SIZE / 2, coeffCurV, trWidthC, trHeightC, scalingListType, true, lastPosTransformSkipV);<br>
+                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiV, MAX_CU_SIZE / 2, coeffCurV, trWidthC, scalingListType, true, lastPosTransformSkipV);<br>
<br>
                 uint32_t dist = primitives.sse_ss[partSizeC](resiYuv->getCrAddr(absTUPartIdxC), resiYuv->m_cwidth,<br>
                                                              m_qtTempTComYuv[qtlayer].getCrAddr(absTUPartIdxC),<br>
_______________________________________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
</blockquote></div><br></div>