[x265-commits] [x265] threadpool: use a mutex to protect pool allocation

Steve Borho steve at borho.org
Mon Apr 21 22:08:11 CEST 2014


details:   http://hg.videolan.org/x265/rev/85c95672ccf0
branches:  
changeset: 6729:85c95672ccf0
user:      Steve Borho <steve at borho.org>
date:      Wed Apr 16 23:00:42 2014 -0500
description:
threadpool: use a mutex to protect pool allocation

We only want to allow one thread to create the singleton thread pool. Rename
the static instance variable to s_instance as per our coding style
Subject: [x265] rc: if --qp 0 is specified, use zero quant for all slice types

details:   http://hg.videolan.org/x265/rev/07156a0e74e5
branches:  
changeset: 6730:07156a0e74e5
user:      Steve Borho <steve at borho.org>
date:      Thu Apr 17 16:27:42 2014 -0500
description:
rc: if --qp 0 is specified, use zero quant for all slice types

This is not the same as lossless.  For true lossless we must enable transform
skip in the PPS and force all blocks to be coded with transform skip enabled.
Subject: [x265] rc: remove unused keyFrameInterval

details:   http://hg.videolan.org/x265/rev/78c1f43f12f5
branches:  
changeset: 6731:78c1f43f12f5
user:      Steve Borho <steve at borho.org>
date:      Thu Apr 17 16:32:16 2014 -0500
description:
rc: remove unused keyFrameInterval
Subject: [x265] TComDataCU: initCU was missing this initialisation, possible causing errors in row restarts.

details:   http://hg.videolan.org/x265/rev/e6e78f2fb192
branches:  
changeset: 6732:e6e78f2fb192
user:      Deepthi Nandakumar <deepthi at multicorewareinc.com>
date:      Mon Apr 21 14:27:25 2014 +0530
description:
TComDataCU: initCU was missing this initialisation, possible causing errors in row restarts.
Subject: [x265] fix asm cvt32to16_s wrong XMM register number

details:   http://hg.videolan.org/x265/rev/ccfd0819b5c3
branches:  
changeset: 6733:ccfd0819b5c3
user:      Min Chen <chenm003 at 163.com>
date:      Mon Apr 21 18:33:32 2014 +0800
description:
fix asm cvt32to16_s wrong XMM register number
Subject: [x265] me: build a larger list of motion candidates for ME (closes #14)

details:   http://hg.videolan.org/x265/rev/fdccd5524ff7
branches:  
changeset: 6734:fdccd5524ff7
user:      Steve Borho <steve at borho.org>
date:      Thu Apr 17 20:09:24 2014 -0500
description:
me: build a larger list of motion candidates for ME (closes #14)
Subject: [x265] TComDataCU: nits, assume sizeof(char) == sizeof(uint8_t)

details:   http://hg.videolan.org/x265/rev/e45e5ca4608e
branches:  
changeset: 6735:e45e5ca4608e
user:      Steve Borho <steve at borho.org>
date:      Thu Apr 17 21:38:50 2014 -0500
description:
TComDataCU: nits, assume sizeof(char) == sizeof(uint8_t)

cleanup white-space and hungarian prefixes
Subject: [x265] adapt x264 style lambda tables [CHANGES OUTPUTS]

details:   http://hg.videolan.org/x265/rev/a4ae35d04777
branches:  
changeset: 6736:a4ae35d04777
user:      Steve Borho <steve at borho.org>
date:      Thu Mar 27 00:45:36 2014 -0500
description:
adapt x264 style lambda tables [CHANGES OUTPUTS]

initLambda() in TComRom.cpp is passed the scale factor that is used to adjust
lambda2 values. It uses 0.85 right now, which is similar to x264's value (0.9),
and seems to be optimal for HEVC based on our tests.

These lambda tables seem to help most at low QPs, allowing the encoder to get
nearly lossless quality at high bitrates.
Subject: [x265] slicetype: use a worker thread for slicetypeDecide when it may help (closes #17)

details:   http://hg.videolan.org/x265/rev/c7f3b7487f60
branches:  
changeset: 6737:c7f3b7487f60
user:      Steve Borho <steve at borho.org>
date:      Sat Apr 12 20:37:13 2014 -0500
description:
slicetype: use a worker thread for slicetypeDecide when it may help (closes #17)

If slicetype/scenecut analysis is enabled and the user has a thread pool of at
least 4 threads, use a worker thread to run slicetypeDecide.

Improves performance in presets that were bottlenecked by b-adapt 2 style
lookahead complexity.
Subject: [x265] fix preset placebo option crash for 444 color format

details:   http://hg.videolan.org/x265/rev/a30c81796c22
branches:  
changeset: 6738:a30c81796c22
user:      Ashok Kumar Mishra<ashok at multicorewareinc.com>
date:      Mon Apr 21 17:28:22 2014 +0530
description:
fix preset placebo option crash for 444 color format
Subject: [x265] rest: update --qp docs to mention behavior of --qp 0

details:   http://hg.videolan.org/x265/rev/cbdce05c6959
branches:  
changeset: 6739:cbdce05c6959
user:      Steve Borho <steve at borho.org>
date:      Mon Apr 21 14:47:05 2014 -0500
description:
rest: update --qp docs to mention behavior of --qp 0
Subject: [x265] rest: improve description of constrained intra

details:   http://hg.videolan.org/x265/rev/c1b4a55fbb10
branches:  
changeset: 6740:c1b4a55fbb10
user:      Steve Borho <steve at borho.org>
date:      Mon Apr 21 15:07:55 2014 -0500
description:
rest: improve description of constrained intra

diffstat:

 doc/reST/cli.rst                      |   15 +-
 source/Lib/TLibCommon/TComDataCU.cpp  |  459 +++++++++++++++------------------
 source/Lib/TLibCommon/TComDataCU.h    |   12 +-
 source/Lib/TLibCommon/TComRdCost.h    |   14 +-
 source/Lib/TLibCommon/TComRom.cpp     |   42 +-
 source/Lib/TLibCommon/TComRom.h       |    7 +-
 source/Lib/TLibCommon/TComYuv.cpp     |    2 -
 source/Lib/TLibEncoder/TEncSearch.cpp |   36 +-
 source/Lib/TLibEncoder/TEncSearch.h   |    2 +-
 source/common/threadpool.cpp          |   29 +-
 source/common/x86/blockcopy8.asm      |    6 +-
 source/encoder/bitcost.cpp            |    2 +-
 source/encoder/encoder.cpp            |    9 +-
 source/encoder/frameencoder.cpp       |   37 +--
 source/encoder/ratecontrol.cpp        |   13 +-
 source/encoder/ratecontrol.h          |    1 -
 source/encoder/slicetype.cpp          |  190 +++++++++++--
 source/encoder/slicetype.h            |   15 +-
 source/encoder/weightPrediction.cpp   |    2 +-
 19 files changed, 491 insertions(+), 402 deletions(-)

diffs (truncated from 1795 to 300 lines):

diff -r 2fc309678785 -r c1b4a55fbb10 doc/reST/cli.rst
--- a/doc/reST/cli.rst	Wed Apr 16 21:17:54 2014 -0500
+++ b/doc/reST/cli.rst	Mon Apr 21 15:07:55 2014 -0500
@@ -396,8 +396,12 @@ Spatial/intra options
 
 .. option:: --constrained-intra, --no-constrained-intra
 
-	Constrained intra prediction (use only intra coded reference pixels)
-	Default disabled
+	Constrained intra prediction. When generating intra predictions in
+	for blocks in inter slices, only intra-coded reference pixels are
+	used.  Inter-coded reference pixels are replaced with intra-coded
+	neighbor pixels or default values. The general idea is to block the
+	propagation of reference errors that may have resulted from lossy
+	signals. Default disabled
 
 
 Slice decision options
@@ -512,8 +516,11 @@ Quality, rate control and rate distortio
 	Specify base quantization parameter for Constant QP rate control.
 	Using this option enables Constant QP rate control. The specified QP
 	is assigned to P slices. I and B slices are given QPs relative to P
-	slices using param->rc.ipFactor and param->rc.pbFactor.  Default 0
-	(CRF)
+	slices using param->rc.ipFactor and param->rc.pbFactor unless QP 0
+	is specified, in which case QP 0 is used for all slice types.  Note
+	that QP 0 does not cause lossless encoding, it only disables
+	quantization. A truly lossless option may be added in a later
+	release. Default disabled (CRF)
 
 	**Range of values:** an integer from 0 to 51
 
diff -r 2fc309678785 -r c1b4a55fbb10 source/Lib/TLibCommon/TComDataCU.cpp
--- a/source/Lib/TLibCommon/TComDataCU.cpp	Wed Apr 16 21:17:54 2014 -0500
+++ b/source/Lib/TLibCommon/TComDataCU.cpp	Mon Apr 21 15:07:55 2014 -0500
@@ -209,7 +209,7 @@ void TComDataCU::destroy()
  - set values before encoding a CU
  .
  \param  pic     picture (TComPic) class pointer
- \param  iCUAddr   CU address
+ \param  cuAddr  CU address
  */
 void TComDataCU::initCU(TComPic* pic, uint32_t cuAddr)
 {
@@ -239,6 +239,7 @@ void TComDataCU::initCU(TComPic* pic, ui
     {
         memset(m_skipFlag,           false,         numElements * sizeof(*m_skipFlag));
         memset(m_predModes,          MODE_NONE,     numElements * sizeof(*m_predModes));
+        memset(m_partSizes,          SIZE_NONE,     numElements * sizeof(*m_partSizes));
         memset(m_cuTransquantBypass, false,         numElements * sizeof(*m_cuTransquantBypass));
         memset(m_depth,              0,             numElements * sizeof(*m_depth));
         memset(m_trIdx,              0,             numElements * sizeof(*m_trIdx));
@@ -405,28 +406,26 @@ void TComDataCU::initSubCU(TComDataCU* c
         m_count[i] = cu->m_count[i];
     }
 
-    int iSizeInUchar = sizeof(uint8_t) * m_numPartitions;
-    int iSizeInBool  = sizeof(bool) * m_numPartitions;
-
+    int sizeInBool = sizeof(bool) * m_numPartitions;
     int sizeInChar = sizeof(char) * m_numPartitions;
     memset(m_qp, qp, sizeInChar);
 
-    memset(m_bMergeFlags,     0, iSizeInBool);
-    memset(m_lumaIntraDir,    DC_IDX, iSizeInUchar);
-    memset(m_chromaIntraDir,  0, iSizeInUchar);
-    memset(m_interDir,        0, iSizeInUchar);
-    memset(m_trIdx,           0, iSizeInUchar);
-    memset(m_transformSkip[0], 0, iSizeInUchar);
-    memset(m_transformSkip[1], 0, iSizeInUchar);
-    memset(m_transformSkip[2], 0, iSizeInUchar);
-    memset(m_cbf[0],          0, iSizeInUchar);
-    memset(m_cbf[1],          0, iSizeInUchar);
-    memset(m_cbf[2],          0, iSizeInUchar);
-    memset(m_depth, depth, iSizeInUchar);
+    memset(m_bMergeFlags,     0, sizeInBool);
+    memset(m_lumaIntraDir,    DC_IDX, sizeInChar);
+    memset(m_chromaIntraDir,  0, sizeInChar);
+    memset(m_interDir,        0, sizeInChar);
+    memset(m_trIdx,           0, sizeInChar);
+    memset(m_transformSkip[0], 0, sizeInChar);
+    memset(m_transformSkip[1], 0, sizeInChar);
+    memset(m_transformSkip[2], 0, sizeInChar);
+    memset(m_cbf[0],          0, sizeInChar);
+    memset(m_cbf[1],          0, sizeInChar);
+    memset(m_cbf[2],          0, sizeInChar);
+    memset(m_depth, depth, sizeInChar);
 
     uint8_t cuSize = g_maxCUSize >> depth;
-    memset(m_cuSize,    cuSize,  iSizeInUchar);
-    memset(m_iPCMFlags, 0, iSizeInBool);
+    memset(m_cuSize,    cuSize,  sizeInChar);
+    memset(m_iPCMFlags, 0, sizeInBool);
     for (uint32_t i = 0; i < m_numPartitions; i++)
     {
         m_skipFlag[i]   = false;
@@ -471,28 +470,26 @@ void TComDataCU::initSubCU(TComDataCU* c
         m_count[i] = cu->m_count[i];
     }
 
-    int iSizeInUchar = sizeof(uint8_t) * m_numPartitions;
-    int iSizeInBool  = sizeof(bool) * m_numPartitions;
-
+    int sizeInBool = sizeof(bool) * m_numPartitions;
     int sizeInChar = sizeof(char) * m_numPartitions;
 
     memcpy(m_qp, cu->getQP() + partOffset, sizeInChar);
-    memset(m_bMergeFlags,     0, iSizeInBool);
-    memset(m_lumaIntraDir,    DC_IDX, iSizeInUchar);
-    memset(m_chromaIntraDir,  0, iSizeInUchar);
-    memset(m_interDir,        0, iSizeInUchar);
-    memset(m_trIdx,           0, iSizeInUchar);
-    memset(m_transformSkip[0], 0, iSizeInUchar);
-    memset(m_transformSkip[1], 0, iSizeInUchar);
-    memset(m_transformSkip[2], 0, iSizeInUchar);
-    memset(m_cbf[0],          0, iSizeInUchar);
-    memset(m_cbf[1],          0, iSizeInUchar);
-    memset(m_cbf[2],          0, iSizeInUchar);
-    memset(m_depth, depth, iSizeInUchar);
+    memset(m_bMergeFlags,     0, sizeInBool);
+    memset(m_lumaIntraDir,    DC_IDX, sizeInChar);
+    memset(m_chromaIntraDir,  0, sizeInChar);
+    memset(m_interDir,        0, sizeInChar);
+    memset(m_trIdx,           0, sizeInChar);
+    memset(m_transformSkip[0], 0, sizeInChar);
+    memset(m_transformSkip[1], 0, sizeInChar);
+    memset(m_transformSkip[2], 0, sizeInChar);
+    memset(m_cbf[0],          0, sizeInChar);
+    memset(m_cbf[1],          0, sizeInChar);
+    memset(m_cbf[2],          0, sizeInChar);
+    memset(m_depth, depth, sizeInChar);
 
     uint8_t cuSize = g_maxCUSize >> depth;
-    memset(m_cuSize,    cuSize,  iSizeInUchar);
-    memset(m_iPCMFlags, 0, iSizeInBool);
+    memset(m_cuSize, cuSize, sizeInChar);
+    memset(m_iPCMFlags, 0, sizeInBool);
     for (uint32_t i = 0; i < m_numPartitions; i++)
     {
         m_skipFlag[i]   = false;
@@ -531,7 +528,6 @@ void TComDataCU::copyToSubCU(TComDataCU*
     m_numPartitions    = cu->getTotalNumPart() >> 2;
 
     TComDataCU* rpcCU = m_pic->getCU(m_cuAddr);
-    int iSizeInUchar  = sizeof(uint8_t) * m_numPartitions;
     int sizeInChar  = sizeof(char) * m_numPartitions;
 
     memcpy(m_skipFlag, rpcCU->getSkipFlag() + m_absIdxInLCU, sizeof(*m_skipFlag) * m_numPartitions);
@@ -540,9 +536,9 @@ void TComDataCU::copyToSubCU(TComDataCU*
     memcpy(m_partSizes, rpcCU->getPartitionSize() + m_absIdxInLCU, sizeof(*m_partSizes) * m_numPartitions);
     memcpy(m_predModes, rpcCU->getPredictionMode() + m_absIdxInLCU, sizeof(*m_predModes) * m_numPartitions);
 
-    memcpy(m_lumaIntraDir, rpcCU->getLumaIntraDir() + m_absIdxInLCU, iSizeInUchar);
-    memcpy(m_depth, rpcCU->getDepth() + m_absIdxInLCU, iSizeInUchar);
-    memcpy(m_cuSize, rpcCU->getCUSize() + m_absIdxInLCU, iSizeInUchar);
+    memcpy(m_lumaIntraDir, rpcCU->getLumaIntraDir() + m_absIdxInLCU, sizeInChar);
+    memcpy(m_depth, rpcCU->getDepth() + m_absIdxInLCU, sizeInChar);
+    memcpy(m_cuSize, rpcCU->getCUSize() + m_absIdxInLCU, sizeInChar);
 }
 
 // --------------------------------------------------------------------------------------------------------------------
@@ -560,38 +556,35 @@ void TComDataCU::copyPartFrom(TComDataCU
     m_totalDistortion  += cu->m_totalDistortion;
     m_totalBits        += cu->m_totalBits;
 
-    uint32_t offset         = cu->getTotalNumPart() * partUnitIdx;
-
+    uint32_t offset       = cu->getTotalNumPart() * partUnitIdx;
     uint32_t numPartition = cu->getTotalNumPart();
-    int iSizeInUchar  = sizeof(uint8_t) * numPartition;
-    int iSizeInBool   = sizeof(bool) * numPartition;
-
+    int sizeInBool  = sizeof(bool) * numPartition;
     int sizeInChar  = sizeof(char) * numPartition;
     memcpy(m_skipFlag  + offset, cu->getSkipFlag(),       sizeof(*m_skipFlag)   * numPartition);
     memcpy(m_qp        + offset, cu->getQP(),             sizeInChar);
     memcpy(m_partSizes + offset, cu->getPartitionSize(),  sizeof(*m_partSizes) * numPartition);
     memcpy(m_predModes + offset, cu->getPredictionMode(), sizeof(*m_predModes) * numPartition);
     memcpy(m_cuTransquantBypass + offset, cu->getCUTransquantBypass(), sizeof(*m_cuTransquantBypass) * numPartition);
-    memcpy(m_bMergeFlags      + offset, cu->getMergeFlag(),         iSizeInBool);
-    memcpy(m_lumaIntraDir     + offset, cu->getLumaIntraDir(),      iSizeInUchar);
-    memcpy(m_chromaIntraDir   + offset, cu->getChromaIntraDir(),    iSizeInUchar);
-    memcpy(m_interDir         + offset, cu->getInterDir(),          iSizeInUchar);
-    memcpy(m_trIdx            + offset, cu->getTransformIdx(),      iSizeInUchar);
-    memcpy(m_transformSkip[0] + offset, cu->getTransformSkip(TEXT_LUMA),     iSizeInUchar);
-    memcpy(m_transformSkip[1] + offset, cu->getTransformSkip(TEXT_CHROMA_U), iSizeInUchar);
-    memcpy(m_transformSkip[2] + offset, cu->getTransformSkip(TEXT_CHROMA_V), iSizeInUchar);
+    memcpy(m_bMergeFlags      + offset, cu->getMergeFlag(),         sizeInBool);
+    memcpy(m_lumaIntraDir     + offset, cu->getLumaIntraDir(),      sizeInChar);
+    memcpy(m_chromaIntraDir   + offset, cu->getChromaIntraDir(),    sizeInChar);
+    memcpy(m_interDir         + offset, cu->getInterDir(),          sizeInChar);
+    memcpy(m_trIdx            + offset, cu->getTransformIdx(),      sizeInChar);
+    memcpy(m_transformSkip[0] + offset, cu->getTransformSkip(TEXT_LUMA),     sizeInChar);
+    memcpy(m_transformSkip[1] + offset, cu->getTransformSkip(TEXT_CHROMA_U), sizeInChar);
+    memcpy(m_transformSkip[2] + offset, cu->getTransformSkip(TEXT_CHROMA_V), sizeInChar);
 
-    memcpy(m_cbf[0] + offset, cu->getCbf(TEXT_LUMA), iSizeInUchar);
-    memcpy(m_cbf[1] + offset, cu->getCbf(TEXT_CHROMA_U), iSizeInUchar);
-    memcpy(m_cbf[2] + offset, cu->getCbf(TEXT_CHROMA_V), iSizeInUchar);
+    memcpy(m_cbf[0] + offset, cu->getCbf(TEXT_LUMA), sizeInChar);
+    memcpy(m_cbf[1] + offset, cu->getCbf(TEXT_CHROMA_U), sizeInChar);
+    memcpy(m_cbf[2] + offset, cu->getCbf(TEXT_CHROMA_V), sizeInChar);
 
-    memcpy(m_depth  + offset, cu->getDepth(),  iSizeInUchar);
-    memcpy(m_cuSize + offset, cu->getCUSize(), iSizeInUchar);
+    memcpy(m_depth  + offset, cu->getDepth(),  sizeInChar);
+    memcpy(m_cuSize + offset, cu->getCUSize(), sizeInChar);
 
-    memcpy(m_mvpIdx[0] + offset, cu->getMVPIdx(REF_PIC_LIST_0), iSizeInUchar);
-    memcpy(m_mvpIdx[1] + offset, cu->getMVPIdx(REF_PIC_LIST_1), iSizeInUchar);
+    memcpy(m_mvpIdx[0] + offset, cu->getMVPIdx(REF_PIC_LIST_0), sizeInChar);
+    memcpy(m_mvpIdx[1] + offset, cu->getMVPIdx(REF_PIC_LIST_1), sizeInChar);
 
-    memcpy(m_iPCMFlags + offset, cu->getIPCMFlag(), iSizeInBool);
+    memcpy(m_iPCMFlags + offset, cu->getIPCMFlag(), sizeInBool);
 
     m_cuAboveLeft      = cu->getCUAboveLeft();
     m_cuAboveRight     = cu->getCUAboveRight();
@@ -616,7 +609,7 @@ void TComDataCU::copyPartFrom(TComDataCU
 
 // Copy current predicted part to a CU in picture.
 // It is used to predict for next part
-void TComDataCU::copyToPic(uint8_t uhDepth)
+void TComDataCU::copyToPic(uint8_t depth)
 {
     TComDataCU* rpcCU = m_pic->getCU(m_cuAddr);
 
@@ -624,9 +617,7 @@ void TComDataCU::copyToPic(uint8_t uhDep
     rpcCU->m_totalDistortion = m_totalDistortion;
     rpcCU->m_totalBits       = m_totalBits;
 
-    int iSizeInUchar  = sizeof(uint8_t) * m_numPartitions;
-    int iSizeInBool   = sizeof(bool) * m_numPartitions;
-
+    int sizeInBool  = sizeof(bool) * m_numPartitions;
     int sizeInChar  = sizeof(char) * m_numPartitions;
 
     memcpy(rpcCU->getSkipFlag() + m_absIdxInLCU, m_skipFlag, sizeof(*m_skipFlag) * m_numPartitions);
@@ -636,31 +627,31 @@ void TComDataCU::copyToPic(uint8_t uhDep
     memcpy(rpcCU->getPartitionSize()  + m_absIdxInLCU, m_partSizes, sizeof(*m_partSizes) * m_numPartitions);
     memcpy(rpcCU->getPredictionMode() + m_absIdxInLCU, m_predModes, sizeof(*m_predModes) * m_numPartitions);
     memcpy(rpcCU->getCUTransquantBypass() + m_absIdxInLCU, m_cuTransquantBypass, sizeof(*m_cuTransquantBypass) * m_numPartitions);
-    memcpy(rpcCU->getMergeFlag()         + m_absIdxInLCU, m_bMergeFlags,         iSizeInBool);
-    memcpy(rpcCU->getLumaIntraDir()      + m_absIdxInLCU, m_lumaIntraDir,     iSizeInUchar);
-    memcpy(rpcCU->getChromaIntraDir()    + m_absIdxInLCU, m_chromaIntraDir,   iSizeInUchar);
-    memcpy(rpcCU->getInterDir()          + m_absIdxInLCU, m_interDir,         iSizeInUchar);
-    memcpy(rpcCU->getTransformIdx()      + m_absIdxInLCU, m_trIdx,            iSizeInUchar);
-    memcpy(rpcCU->getTransformSkip(TEXT_LUMA)     + m_absIdxInLCU, m_transformSkip[0], iSizeInUchar);
-    memcpy(rpcCU->getTransformSkip(TEXT_CHROMA_U) + m_absIdxInLCU, m_transformSkip[1], iSizeInUchar);
-    memcpy(rpcCU->getTransformSkip(TEXT_CHROMA_V) + m_absIdxInLCU, m_transformSkip[2], iSizeInUchar);
+    memcpy(rpcCU->getMergeFlag()         + m_absIdxInLCU, m_bMergeFlags,      sizeInBool);
+    memcpy(rpcCU->getLumaIntraDir()      + m_absIdxInLCU, m_lumaIntraDir,     sizeInChar);
+    memcpy(rpcCU->getChromaIntraDir()    + m_absIdxInLCU, m_chromaIntraDir,   sizeInChar);
+    memcpy(rpcCU->getInterDir()          + m_absIdxInLCU, m_interDir,         sizeInChar);
+    memcpy(rpcCU->getTransformIdx()      + m_absIdxInLCU, m_trIdx,            sizeInChar);
+    memcpy(rpcCU->getTransformSkip(TEXT_LUMA)     + m_absIdxInLCU, m_transformSkip[0], sizeInChar);
+    memcpy(rpcCU->getTransformSkip(TEXT_CHROMA_U) + m_absIdxInLCU, m_transformSkip[1], sizeInChar);
+    memcpy(rpcCU->getTransformSkip(TEXT_CHROMA_V) + m_absIdxInLCU, m_transformSkip[2], sizeInChar);
 
-    memcpy(rpcCU->getCbf(TEXT_LUMA)     + m_absIdxInLCU, m_cbf[0], iSizeInUchar);
-    memcpy(rpcCU->getCbf(TEXT_CHROMA_U) + m_absIdxInLCU, m_cbf[1], iSizeInUchar);
-    memcpy(rpcCU->getCbf(TEXT_CHROMA_V) + m_absIdxInLCU, m_cbf[2], iSizeInUchar);
+    memcpy(rpcCU->getCbf(TEXT_LUMA)     + m_absIdxInLCU, m_cbf[0], sizeInChar);
+    memcpy(rpcCU->getCbf(TEXT_CHROMA_U) + m_absIdxInLCU, m_cbf[1], sizeInChar);
+    memcpy(rpcCU->getCbf(TEXT_CHROMA_V) + m_absIdxInLCU, m_cbf[2], sizeInChar);
 
-    memcpy(rpcCU->getDepth()  + m_absIdxInLCU, m_depth,  iSizeInUchar);
-    memcpy(rpcCU->getCUSize() + m_absIdxInLCU, m_cuSize, iSizeInUchar);
+    memcpy(rpcCU->getDepth()  + m_absIdxInLCU, m_depth,  sizeInChar);
+    memcpy(rpcCU->getCUSize() + m_absIdxInLCU, m_cuSize, sizeInChar);
 
-    memcpy(rpcCU->getMVPIdx(REF_PIC_LIST_0) + m_absIdxInLCU, m_mvpIdx[0], iSizeInUchar);
-    memcpy(rpcCU->getMVPIdx(REF_PIC_LIST_1) + m_absIdxInLCU, m_mvpIdx[1], iSizeInUchar);
+    memcpy(rpcCU->getMVPIdx(REF_PIC_LIST_0) + m_absIdxInLCU, m_mvpIdx[0], sizeInChar);
+    memcpy(rpcCU->getMVPIdx(REF_PIC_LIST_1) + m_absIdxInLCU, m_mvpIdx[1], sizeInChar);
 
     m_cuMvField[0].copyTo(rpcCU->getCUMvField(REF_PIC_LIST_0), m_absIdxInLCU);
     m_cuMvField[1].copyTo(rpcCU->getCUMvField(REF_PIC_LIST_1), m_absIdxInLCU);
 
-    memcpy(rpcCU->getIPCMFlag() + m_absIdxInLCU, m_iPCMFlags,         iSizeInBool);
+    memcpy(rpcCU->getIPCMFlag() + m_absIdxInLCU, m_iPCMFlags, sizeInBool);
 
-    uint32_t tmp  = (g_maxCUSize * g_maxCUSize) >> (uhDepth << 1);
+    uint32_t tmp  = (g_maxCUSize * g_maxCUSize) >> (depth << 1);
     uint32_t tmp2 = m_absIdxInLCU << m_pic->getLog2UnitSize() * 2;
     memcpy(rpcCU->getCoeffY()     + tmp2, m_trCoeffY,    sizeof(coeff_t) * tmp);
     memcpy(rpcCU->getPCMSampleY() + tmp2, m_iPCMSampleY, sizeof(pixel) * tmp);
@@ -676,19 +667,19 @@ void TComDataCU::copyCodedToPic(uint8_t 
 {
     TComDataCU* rpcCU = m_pic->getCU(m_cuAddr);
 
-    int iSizeInUchar  = sizeof(uint8_t) * m_numPartitions;
+    int sizeInChar  = sizeof(uint8_t) * m_numPartitions;
 
     memcpy(rpcCU->getSkipFlag() + m_absIdxInLCU, m_skipFlag, sizeof(*m_skipFlag) * m_numPartitions);
-    memcpy(rpcCU->getTransformIdx() + m_absIdxInLCU, m_trIdx, iSizeInUchar);
-    memcpy(rpcCU->getTransformSkip(TEXT_LUMA) + m_absIdxInLCU, m_transformSkip[0], iSizeInUchar);
-    memcpy(rpcCU->getTransformSkip(TEXT_CHROMA_U) + m_absIdxInLCU, m_transformSkip[1], iSizeInUchar);
-    memcpy(rpcCU->getTransformSkip(TEXT_CHROMA_V) + m_absIdxInLCU, m_transformSkip[2], iSizeInUchar);
-    memcpy(rpcCU->getChromaIntraDir() + m_absIdxInLCU, m_chromaIntraDir, iSizeInUchar);


More information about the x265-commits mailing list