[x265-commits] [x265] nits

Steve Borho steve at borho.org
Wed Oct 1 01:18:05 CEST 2014


details:   http://hg.videolan.org/x265/rev/32f50df7fa76
branches:  
changeset: 8154:32f50df7fa76
user:      Steve Borho <steve at borho.org>
date:      Fri Sep 26 17:33:09 2014 -0500
description:
nits
Subject: [x265] Changes for loadCTUData

details:   http://hg.videolan.org/x265/rev/0d0558b82a9c
branches:  
changeset: 8155:0d0558b82a9c
user:      David T Yuen <dtyx265 at gmail.com>
date:      Fri Sep 26 18:32:17 2014 -0700
description:
Changes for loadCTUData

Replaced getDepthScanIdx() with table g_depthScanIdx
Moved Analysis::loadCTUData to TComDataCU::loadCTUData since it only works with TComDataCU fields
Replaced CU.offsets[2] with local variables in loadCTUData since that is the only place it was set and used
minor changes to reduce the number of local variables in loadCTUData
Subject: [x265] search: give each Search instance an Entropy encoder (no output changes)

details:   http://hg.videolan.org/x265/rev/a4d27e19ed09
branches:  
changeset: 8156:a4d27e19ed09
user:      Steve Borho <steve at borho.org>
date:      Thu Sep 25 17:57:44 2014 -0500
description:
search: give each Search instance an Entropy encoder (no output changes)

This essentially relocates the "active" entropy coder used during all analysis
from CTURow to ThreadLocalData. This actually reduces the number of Entropy
instances in the encoder, and solves the problem of sharing the entropy coder
between worker threads cooperating on the same CTU.
Subject: [x265] search: white-space nits

details:   http://hg.videolan.org/x265/rev/991527f1a9c6
branches:  
changeset: 8157:991527f1a9c6
user:      Steve Borho <steve at borho.org>
date:      Thu Sep 25 17:57:59 2014 -0500
description:
search: white-space nits
Subject: [x265] quant: pass entropy instance through init function

details:   http://hg.videolan.org/x265/rev/a8fca9f05102
branches:  
changeset: 8158:a8fca9f05102
user:      Steve Borho <steve at borho.org>
date:      Thu Sep 25 18:04:14 2014 -0500
description:
quant: pass entropy instance through init function
Subject: [x265] search: reorder nits, no effect

details:   http://hg.videolan.org/x265/rev/0c4e39a2965b
branches:  
changeset: 8159:0c4e39a2965b
user:      Steve Borho <steve at borho.org>
date:      Thu Sep 25 18:12:56 2014 -0500
description:
search: reorder nits, no effect

do allocations after simple configurations
Subject: [x265] TComMvField: class to struct, white-space cleanups

details:   http://hg.videolan.org/x265/rev/5a6845566d14
branches:  
changeset: 8160:5a6845566d14
user:      Steve Borho <steve at borho.org>
date:      Mon Sep 29 17:37:47 2014 -0500
description:
TComMvField: class to struct, white-space cleanups
Subject: [x265] sao: remove frame-based SAO

details:   http://hg.videolan.org/x265/rev/28db2410d5de
branches:  
changeset: 8161:28db2410d5de
user:      Satoshi Nakagawa <nakagawa424 at oki.com>
date:      Tue Sep 30 09:48:12 2014 +0900
description:
sao: remove frame-based SAO
Subject: [x265] rd: move lambda and analysis qp init to rdcost.h

details:   http://hg.videolan.org/x265/rev/a40ff330a525
branches:  
changeset: 8162:a40ff330a525
user:      Steve Borho <steve at borho.org>
date:      Tue Sep 30 02:56:52 2014 -0500
description:
rd: move lambda and analysis qp init to rdcost.h

This will make it possible for Search instances to copy QP data between each
other
Subject: [x265] TComDataCU: replace getZorderIdxInCU() with encodeIdx of CU structure

details:   http://hg.videolan.org/x265/rev/73c6c9086577
branches:  
changeset: 8163:73c6c9086577
user:      Santhoshini Sekar <santhoshini at multicorewareinc.com>
date:      Tue Sep 30 08:52:56 2014 +0530
description:
TComDataCU: replace getZorderIdxInCU() with encodeIdx of CU structure
Subject: [x265] TComDataCU: replace getTotalNumPart() with CU structure details

details:   http://hg.videolan.org/x265/rev/1706e30042ef
branches:  
changeset: 8164:1706e30042ef
user:      Santhoshini Sekar <santhoshini at multicorewareinc.com>
date:      Tue Sep 30 09:01:02 2014 +0530
description:
TComDataCU: replace getTotalNumPart() with CU structure details
Subject: [x265] rc: apply maxAU size restrictions while encoding each frame

details:   http://hg.videolan.org/x265/rev/8740d938dbb7
branches:  
changeset: 8165:8740d938dbb7
user:      Aarthi Thirumalai
date:      Mon Sep 29 16:13:22 2014 +0530
description:
rc: apply maxAU size restrictions while encoding each frame
Subject: [x265] blockfill_s_16x16 avx2 asm code: performance improved from 389.21 cycles to 204.38 cycles, over sse version of asm code

details:   http://hg.videolan.org/x265/rev/8be59e140210
branches:  
changeset: 8166:8be59e140210
user:      Praveen Tiwari
date:      Tue Sep 30 10:57:12 2014 +0530
description:
blockfill_s_16x16 avx2 asm code: performance improved from 389.21 cycles to 204.38 cycles, over sse version of asm code
Subject: [x265] blockfill_s_32x32 avx2 asm code: performance improved from 1354.05 cycles to 705.81 cycles, over sse version of asm code

details:   http://hg.videolan.org/x265/rev/154aa8bfe042
branches:  
changeset: 8167:154aa8bfe042
user:      Praveen Tiwari
date:      Tue Sep 30 11:10:14 2014 +0530
description:
blockfill_s_32x32 avx2 asm code: performance improved from 1354.05 cycles to 705.81 cycles, over sse version of asm code
Subject: [x265] asm: avx2 assembly code for idct4x4

details:   http://hg.videolan.org/x265/rev/49aaafeb707a
branches:  
changeset: 8168:49aaafeb707a
user:      Murugan Vairavel <murugan at multicorewareinc.com>
date:      Tue Sep 30 16:15:01 2014 +0530
description:
asm: avx2 assembly code for idct4x4
Subject: [x265] TComData: do not leave m_tqBypassOrigYuv uninitialized

details:   http://hg.videolan.org/x265/rev/a360de22f48b
branches:  
changeset: 8169:a360de22f48b
user:      Steve Borho <steve at borho.org>
date:      Tue Sep 30 16:05:28 2014 -0500
description:
TComData: do not leave m_tqBypassOrigYuv uninitialized
Subject: [x265] common: break into debugger when check fails in debug build

details:   http://hg.videolan.org/x265/rev/a5103ad3df8b
branches:  
changeset: 8170:a5103ad3df8b
user:      Steve Borho <steve at borho.org>
date:      Tue Sep 30 16:17:00 2014 -0500
description:
common: break into debugger when check fails in debug build
Subject: [x265] motioninfo: coding style rename of m_MVFieldMemPool

details:   http://hg.videolan.org/x265/rev/ec91821451f3
branches:  
changeset: 8171:ec91821451f3
user:      Steve Borho <steve at borho.org>
date:      Tue Sep 30 16:23:50 2014 -0500
description:
motioninfo: coding style rename of m_MVFieldMemPool
Subject: [x265] datacu: coding style rename of m_DataCUMemPool and m_CULocalData

details:   http://hg.videolan.org/x265/rev/832ad99093a0
branches:  
changeset: 8172:832ad99093a0
user:      Steve Borho <steve at borho.org>
date:      Tue Sep 30 16:25:47 2014 -0500
description:
datacu: coding style rename of m_DataCUMemPool and m_CULocalData
Subject: [x265] search: make bidir temp YUVs Search members

details:   http://hg.videolan.org/x265/rev/2486149ff9de
branches:  
changeset: 8173:2486149ff9de
user:      Steve Borho <steve at borho.org>
date:      Tue Sep 30 16:42:22 2014 -0500
description:
search: make bidir temp YUVs Search members

I can't believe we've been allocing them every predInterSearch() call for the
last 2 months.
Subject: [x265] api: rename --sao-lcu-bounds to --sao-non-deblock

details:   http://hg.videolan.org/x265/rev/5a06c0462363
branches:  
changeset: 8174:5a06c0462363
user:      Steve Borho <steve at borho.org>
date:      Tue Sep 30 17:48:40 2014 -0500
description:
api: rename --sao-lcu-bounds to --sao-non-deblock

The acronym LCU doesn't appear anywhere else in our param interface
Subject: [x265] sao: rename SaoLcuParam to SaoCtuParam

details:   http://hg.videolan.org/x265/rev/7692ab2a28d3
branches:  
changeset: 8175:7692ab2a28d3
user:      Steve Borho <steve at borho.org>
date:      Tue Sep 30 17:51:03 2014 -0500
description:
sao: rename SaoLcuParam to SaoCtuParam
Subject: [x265] sao: rename saoLcuParam to ctuParam

details:   http://hg.videolan.org/x265/rev/ca1e3afddc4f
branches:  
changeset: 8176:ca1e3afddc4f
user:      Steve Borho <steve at borho.org>
date:      Tue Sep 30 17:51:52 2014 -0500
description:
sao: rename saoLcuParam to ctuParam
Subject: [x265] sao: rename resetLcuPart to resetCtuPart

details:   http://hg.videolan.org/x265/rev/f2b5e4d8da59
branches:  
changeset: 8177:f2b5e4d8da59
user:      Steve Borho <steve at borho.org>
date:      Tue Sep 30 17:54:26 2014 -0500
description:
sao: rename resetLcuPart to resetCtuPart
Subject: [x265] sao: nits

details:   http://hg.videolan.org/x265/rev/8b89e74d848d
branches:  
changeset: 8178:8b89e74d848d
user:      Steve Borho <steve at borho.org>
date:      Tue Sep 30 17:54:29 2014 -0500
description:
sao: nits
Subject: [x265] replace LCU with CTU globally in comments

details:   http://hg.videolan.org/x265/rev/382384729d60
branches:  
changeset: 8179:382384729d60
user:      Steve Borho <steve at borho.org>
date:      Tue Sep 30 18:04:55 2014 -0500
description:
replace LCU with CTU globally in comments
Subject: [x265] replace lcu with ctu in variable names

details:   http://hg.videolan.org/x265/rev/ab92196f8b7b
branches:  
changeset: 8180:ab92196f8b7b
user:      Steve Borho <steve at borho.org>
date:      Tue Sep 30 18:05:38 2014 -0500
description:
replace lcu with ctu in variable names
Subject: [x265] analysis: nit

details:   http://hg.videolan.org/x265/rev/a4859c266a59
branches:  
changeset: 8181:a4859c266a59
user:      Steve Borho <steve at borho.org>
date:      Tue Sep 30 18:05:46 2014 -0500
description:
analysis: nit

diffstat:

 doc/reST/cli.rst                         |    18 +-
 doc/reST/threading.rst                   |     6 +-
 source/CMakeLists.txt                    |     2 +-
 source/Lib/TLibCommon/TComDataCU.cpp     |   557 +++++++------
 source/Lib/TLibCommon/TComDataCU.h       |    31 +-
 source/Lib/TLibCommon/TComMotionInfo.cpp |    24 +-
 source/Lib/TLibCommon/TComMotionInfo.h   |    48 +-
 source/Lib/TLibCommon/TComPattern.cpp    |     8 +-
 source/Lib/TLibCommon/TComPattern.h      |     5 +-
 source/Lib/TLibCommon/TComRom.cpp        |    13 +
 source/Lib/TLibCommon/TComRom.h          |     4 +-
 source/common/common.h                   |    56 +-
 source/common/deblock.cpp                |     6 +-
 source/common/loopfilter.cpp             |     4 +-
 source/common/param.cpp                  |    23 +-
 source/common/primitives.h               |     2 +-
 source/common/quant.cpp                  |     3 +-
 source/common/quant.h                    |    10 +-
 source/common/slice.h                    |    18 +-
 source/common/x86/asm-primitives.cpp     |     4 +
 source/common/x86/blockcopy8.asm         |   108 ++-
 source/common/x86/blockcopy8.h           |     3 +
 source/common/x86/dct8.asm               |    80 ++
 source/common/x86/dct8.h                 |     1 +
 source/encoder/analysis.cpp              |   406 ++++------
 source/encoder/analysis.h                |    17 +-
 source/encoder/encoder.cpp               |     7 +-
 source/encoder/entropy.cpp               |    12 +-
 source/encoder/entropy.h                 |     6 +-
 source/encoder/frameencoder.cpp          |    61 +-
 source/encoder/frameencoder.h            |     4 -
 source/encoder/framefilter.cpp           |    30 +-
 source/encoder/level.cpp                 |     3 +
 source/encoder/predict.cpp               |     4 +-
 source/encoder/predict.h                 |     2 +-
 source/encoder/ratecontrol.cpp           |    52 +-
 source/encoder/ratecontrol.h             |     3 +-
 source/encoder/rdcost.h                  |    19 +
 source/encoder/sao.cpp                   |  1134 +++++------------------------
 source/encoder/sao.h                     |    50 +-
 source/encoder/search.cpp                |   573 +++++++-------
 source/encoder/search.h                  |    49 +-
 source/x265.cpp                          |     7 +-
 source/x265.h                            |    14 +-
 44 files changed, 1422 insertions(+), 2065 deletions(-)

diffs (truncated from 7442 to 300 lines):

diff -r 4b18a27b52ac -r a4859c266a59 doc/reST/cli.rst
--- a/doc/reST/cli.rst	Fri Sep 26 10:48:07 2014 +0530
+++ b/doc/reST/cli.rst	Tue Sep 30 18:05:46 2014 -0500
@@ -947,20 +947,12 @@ Loop filters
 
 	Toggle Sample Adaptive Offset loop filter, default enabled
 
-.. option:: --sao-lcu-bounds <0|1>
+.. option:: --sao-non-deblock, --no-sao-non-deblock
 
-	How to handle depencency with deblocking filter
-
-	0. right/bottom boundary areas skipped **(default)**
-	1. non-deblocked pixels are used
-
-.. option:: --sao-lcu-opt <0|1>
-
-	Frame level or block level optimization
-
-	0. SAO picture-based optimization (prevents frame parallelism,
-	   effectively causes :option:`--frame-threads` 1)
-	1. SAO LCU-based optimization **(default)**
+	Specify how to handle depencency between SAO and deblocking filter.
+	When enabled, non-deblocked pixels are used for SAO analysis. When
+	disabled, SAO analysis skips the right/bottom boundary areas.
+	Default disabled
 
 VUI (Video Usability Information) options
 =========================================
diff -r 4b18a27b52ac -r a4859c266a59 doc/reST/threading.rst
--- a/doc/reST/threading.rst	Fri Sep 26 10:48:07 2014 +0530
+++ b/doc/reST/threading.rst	Tue Sep 30 18:05:46 2014 -0500
@@ -120,11 +120,7 @@ parallelism is in use.
 
 :option:`--merange` can have a negative impact on frame parallelism. If
 the range is too large, more rows of CTU lag must be added to ensure
-those pixels are available in the reference frames.  Similarly
-:option:`--sao-lcu-opt` 0 will cause SAO to be performed over the
-entire picture at once (rather than being CTU based), which prevents any
-motion reference pixels from being available until the entire frame has
-been encoded, which prevents any real frame parallelism at all.
+those pixels are available in the reference frames.
 
 .. note::
 
diff -r 4b18a27b52ac -r a4859c266a59 source/CMakeLists.txt
--- a/source/CMakeLists.txt	Fri Sep 26 10:48:07 2014 +0530
+++ b/source/CMakeLists.txt	Tue Sep 30 18:05:46 2014 -0500
@@ -21,7 +21,7 @@ include(CheckSymbolExists)
 include(CheckCXXCompilerFlag)
 
 # X265_BUILD must be incremented each time the public API is changed
-set(X265_BUILD 32)
+set(X265_BUILD 33)
 configure_file("${PROJECT_SOURCE_DIR}/x265.def.in"
                "${PROJECT_BINARY_DIR}/x265.def")
 configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in"
diff -r 4b18a27b52ac -r a4859c266a59 source/Lib/TLibCommon/TComDataCU.cpp
--- a/source/Lib/TLibCommon/TComDataCU.cpp	Fri Sep 26 10:48:07 2014 +0530
+++ b/source/Lib/TLibCommon/TComDataCU.cpp	Tue Sep 30 18:05:46 2014 -0500
@@ -69,23 +69,23 @@ TComDataCU::TComDataCU()
     m_cuLeft  = NULL;
     m_chromaFormat = 0;
     m_baseQp       = 0;
-    m_DataCUMemPool.qpMemBlock             = NULL;
-    m_DataCUMemPool.depthMemBlock          = NULL;
-    m_DataCUMemPool.log2CUSizeMemBlock     = NULL;
-    m_DataCUMemPool.skipFlagMemBlock       = NULL;
-    m_DataCUMemPool.partSizeMemBlock       = NULL;
-    m_DataCUMemPool.predModeMemBlock       = NULL;
-    m_DataCUMemPool.cuTQBypassMemBlock     = NULL;
-    m_DataCUMemPool.mergeFlagMemBlock      = NULL;
-    m_DataCUMemPool.lumaIntraDirMemBlock   = NULL;
-    m_DataCUMemPool.chromaIntraDirMemBlock = NULL;
-    m_DataCUMemPool.interDirMemBlock       = NULL;
-    m_DataCUMemPool.trIdxMemBlock          = NULL;
-    m_DataCUMemPool.transformSkipMemBlock  = NULL;
-    m_DataCUMemPool.cbfMemBlock            = NULL;
-    m_DataCUMemPool.mvpIdxMemBlock         = NULL;
-    m_DataCUMemPool.trCoeffMemBlock        = NULL;
-    m_DataCUMemPool.m_tqBypassYuvMemBlock  = NULL;
+    m_dataCUMemPool.qpMemBlock             = NULL;
+    m_dataCUMemPool.depthMemBlock          = NULL;
+    m_dataCUMemPool.log2CUSizeMemBlock     = NULL;
+    m_dataCUMemPool.skipFlagMemBlock       = NULL;
+    m_dataCUMemPool.partSizeMemBlock       = NULL;
+    m_dataCUMemPool.predModeMemBlock       = NULL;
+    m_dataCUMemPool.cuTQBypassMemBlock     = NULL;
+    m_dataCUMemPool.mergeFlagMemBlock      = NULL;
+    m_dataCUMemPool.lumaIntraDirMemBlock   = NULL;
+    m_dataCUMemPool.chromaIntraDirMemBlock = NULL;
+    m_dataCUMemPool.interDirMemBlock       = NULL;
+    m_dataCUMemPool.trIdxMemBlock          = NULL;
+    m_dataCUMemPool.transformSkipMemBlock  = NULL;
+    m_dataCUMemPool.cbfMemBlock            = NULL;
+    m_dataCUMemPool.mvpIdxMemBlock         = NULL;
+    m_dataCUMemPool.trCoeffMemBlock        = NULL;
+    m_dataCUMemPool.m_tqBypassYuvMemBlock  = NULL;
 }
 
 
@@ -95,29 +95,29 @@ bool TComDataCU::initialize(uint32_t num
 
     ok &= m_cuMvFieldMemPool.initialize(numPartition, numBlocks);
 
-    CHECKED_MALLOC(m_DataCUMemPool.qpMemBlock, char,  numPartition * numBlocks);
+    CHECKED_MALLOC(m_dataCUMemPool.qpMemBlock, char,  numPartition * numBlocks);
 
-    CHECKED_MALLOC(m_DataCUMemPool.depthMemBlock, uint8_t, numPartition * numBlocks);
-    CHECKED_MALLOC(m_DataCUMemPool.log2CUSizeMemBlock, uint8_t, numPartition * numBlocks);
-    CHECKED_MALLOC(m_DataCUMemPool.skipFlagMemBlock, bool, numPartition * numBlocks);
-    CHECKED_MALLOC(m_DataCUMemPool.partSizeMemBlock, char, numPartition * numBlocks);
-    CHECKED_MALLOC(m_DataCUMemPool.predModeMemBlock, char, numPartition * numBlocks);
-    CHECKED_MALLOC(m_DataCUMemPool.cuTQBypassMemBlock, bool, numPartition * numBlocks);
+    CHECKED_MALLOC(m_dataCUMemPool.depthMemBlock, uint8_t, numPartition * numBlocks);
+    CHECKED_MALLOC(m_dataCUMemPool.log2CUSizeMemBlock, uint8_t, numPartition * numBlocks);
+    CHECKED_MALLOC(m_dataCUMemPool.skipFlagMemBlock, bool, numPartition * numBlocks);
+    CHECKED_MALLOC(m_dataCUMemPool.partSizeMemBlock, char, numPartition * numBlocks);
+    CHECKED_MALLOC(m_dataCUMemPool.predModeMemBlock, char, numPartition * numBlocks);
+    CHECKED_MALLOC(m_dataCUMemPool.cuTQBypassMemBlock, bool, numPartition * numBlocks);
 
-    CHECKED_MALLOC(m_DataCUMemPool.mergeFlagMemBlock, bool,  numPartition * numBlocks);
-    CHECKED_MALLOC(m_DataCUMemPool.lumaIntraDirMemBlock, uint8_t, numPartition * numBlocks);
-    CHECKED_MALLOC(m_DataCUMemPool.chromaIntraDirMemBlock, uint8_t, numPartition * numBlocks);
-    CHECKED_MALLOC(m_DataCUMemPool.interDirMemBlock, uint8_t, numPartition * numBlocks);
+    CHECKED_MALLOC(m_dataCUMemPool.mergeFlagMemBlock, bool,  numPartition * numBlocks);
+    CHECKED_MALLOC(m_dataCUMemPool.lumaIntraDirMemBlock, uint8_t, numPartition * numBlocks);
+    CHECKED_MALLOC(m_dataCUMemPool.chromaIntraDirMemBlock, uint8_t, numPartition * numBlocks);
+    CHECKED_MALLOC(m_dataCUMemPool.interDirMemBlock, uint8_t, numPartition * numBlocks);
 
-    CHECKED_MALLOC(m_DataCUMemPool.trIdxMemBlock, uint8_t, numPartition * numBlocks);
-    CHECKED_MALLOC(m_DataCUMemPool.transformSkipMemBlock, uint8_t, numPartition * 3 * numBlocks);
+    CHECKED_MALLOC(m_dataCUMemPool.trIdxMemBlock, uint8_t, numPartition * numBlocks);
+    CHECKED_MALLOC(m_dataCUMemPool.transformSkipMemBlock, uint8_t, numPartition * 3 * numBlocks);
 
-    CHECKED_MALLOC(m_DataCUMemPool.cbfMemBlock, uint8_t, numPartition * 3 * numBlocks);
-    CHECKED_MALLOC(m_DataCUMemPool.mvpIdxMemBlock, uint8_t, numPartition * 2 * numBlocks);
-    CHECKED_MALLOC(m_DataCUMemPool.trCoeffMemBlock, coeff_t, (sizeL + sizeC * 2) * numBlocks);
+    CHECKED_MALLOC(m_dataCUMemPool.cbfMemBlock, uint8_t, numPartition * 3 * numBlocks);
+    CHECKED_MALLOC(m_dataCUMemPool.mvpIdxMemBlock, uint8_t, numPartition * 2 * numBlocks);
+    CHECKED_MALLOC(m_dataCUMemPool.trCoeffMemBlock, coeff_t, (sizeL + sizeC * 2) * numBlocks);
 
     if (isLossless)
-        CHECKED_MALLOC(m_DataCUMemPool.m_tqBypassYuvMemBlock, pixel, (sizeL + sizeC * 2) * numBlocks);
+        CHECKED_MALLOC(m_dataCUMemPool.m_tqBypassYuvMemBlock, pixel, (sizeL + sizeC * 2) * numBlocks);
 
     return ok;
 
@@ -142,147 +142,149 @@ void TComDataCU::create(TComDataCU *cu, 
     m_cuMvField[0].create(&cu->m_cuMvFieldMemPool, numPartition, index, 0);
     m_cuMvField[1].create(&cu->m_cuMvFieldMemPool, numPartition, index, 1);
 
-    m_qp                 = cu->m_DataCUMemPool.qpMemBlock             + index * numPartition;
-    m_depth              = cu->m_DataCUMemPool.depthMemBlock          + index * numPartition;
-    m_log2CUSize         = cu->m_DataCUMemPool.log2CUSizeMemBlock     + index * numPartition;
-    m_skipFlag           = cu->m_DataCUMemPool.skipFlagMemBlock       + index * numPartition;
-    m_partSizes          = cu->m_DataCUMemPool.partSizeMemBlock       + index * numPartition;
-    m_predModes          = cu->m_DataCUMemPool.predModeMemBlock       + index * numPartition;
-    m_cuTransquantBypass = cu->m_DataCUMemPool.cuTQBypassMemBlock     + index * numPartition;
+    m_qp                 = cu->m_dataCUMemPool.qpMemBlock             + index * numPartition;
+    m_depth              = cu->m_dataCUMemPool.depthMemBlock          + index * numPartition;
+    m_log2CUSize         = cu->m_dataCUMemPool.log2CUSizeMemBlock     + index * numPartition;
+    m_skipFlag           = cu->m_dataCUMemPool.skipFlagMemBlock       + index * numPartition;
+    m_partSizes          = cu->m_dataCUMemPool.partSizeMemBlock       + index * numPartition;
+    m_predModes          = cu->m_dataCUMemPool.predModeMemBlock       + index * numPartition;
+    m_cuTransquantBypass = cu->m_dataCUMemPool.cuTQBypassMemBlock     + index * numPartition;
 
-    m_bMergeFlags        = cu->m_DataCUMemPool.mergeFlagMemBlock      + index * numPartition;
-    m_lumaIntraDir       = cu->m_DataCUMemPool.lumaIntraDirMemBlock   + index * numPartition;
-    m_chromaIntraDir     = cu->m_DataCUMemPool.chromaIntraDirMemBlock + index * numPartition;
-    m_interDir           = cu->m_DataCUMemPool.interDirMemBlock       + index * numPartition;
+    m_bMergeFlags        = cu->m_dataCUMemPool.mergeFlagMemBlock      + index * numPartition;
+    m_lumaIntraDir       = cu->m_dataCUMemPool.lumaIntraDirMemBlock   + index * numPartition;
+    m_chromaIntraDir     = cu->m_dataCUMemPool.chromaIntraDirMemBlock + index * numPartition;
+    m_interDir           = cu->m_dataCUMemPool.interDirMemBlock       + index * numPartition;
 
-    m_trIdx              = cu->m_DataCUMemPool.trIdxMemBlock          + index * numPartition;
-    m_transformSkip[0]   = cu->m_DataCUMemPool.transformSkipMemBlock  + index * numPartition * 3;
+    m_trIdx              = cu->m_dataCUMemPool.trIdxMemBlock          + index * numPartition;
+    m_transformSkip[0]   = cu->m_dataCUMemPool.transformSkipMemBlock  + index * numPartition * 3;
     m_transformSkip[1]   = m_transformSkip[0]                         + numPartition;
     m_transformSkip[2]   = m_transformSkip[0]                         + numPartition * 2;
 
-    m_cbf[0]             = cu->m_DataCUMemPool.cbfMemBlock            + index * numPartition * 3;
+    m_cbf[0]             = cu->m_dataCUMemPool.cbfMemBlock            + index * numPartition * 3;
     m_cbf[1]             = m_cbf[0]                                   + numPartition;
     m_cbf[2]             = m_cbf[0]                                   + numPartition * 2;
 
-    m_mvpIdx[0]          = cu->m_DataCUMemPool.mvpIdxMemBlock         + index * numPartition * 2;
+    m_mvpIdx[0]          = cu->m_dataCUMemPool.mvpIdxMemBlock         + index * numPartition * 2;
     m_mvpIdx[1]          = m_mvpIdx[0]                                + numPartition;
 
-    m_trCoeff[0]         = cu->m_DataCUMemPool.trCoeffMemBlock        + index * (sizeL + sizeC * 2);
+    m_trCoeff[0]         = cu->m_dataCUMemPool.trCoeffMemBlock        + index * (sizeL + sizeC * 2);
     m_trCoeff[1]         = m_trCoeff[0]                               + sizeL;
     m_trCoeff[2]         = m_trCoeff[0]                               + sizeL + sizeC;
 
     if (isLossless)
     {
-        m_tqBypassOrigYuv[0] = cu->m_DataCUMemPool.m_tqBypassYuvMemBlock  + index * (sizeL + sizeC * 2);
+        m_tqBypassOrigYuv[0] = cu->m_dataCUMemPool.m_tqBypassYuvMemBlock  + index * (sizeL + sizeC * 2);
         m_tqBypassOrigYuv[1] = m_tqBypassOrigYuv[0]                       + sizeL;
         m_tqBypassOrigYuv[2] = m_tqBypassOrigYuv[0]                       + sizeL + sizeC;
     }
+    else
+        m_tqBypassOrigYuv[0] = m_tqBypassOrigYuv[1] = m_tqBypassOrigYuv[2] = NULL;
 
     memset(m_partSizes, SIZE_NONE, numPartition * sizeof(*m_partSizes));
 }
 
 void TComDataCU::destroy()
 {
-    if (m_DataCUMemPool.qpMemBlock)
+    if (m_dataCUMemPool.qpMemBlock)
     {
-        X265_FREE(m_DataCUMemPool.qpMemBlock);
-        m_DataCUMemPool.qpMemBlock = NULL;
+        X265_FREE(m_dataCUMemPool.qpMemBlock);
+        m_dataCUMemPool.qpMemBlock = NULL;
     }
 
-    if (m_DataCUMemPool.depthMemBlock)
+    if (m_dataCUMemPool.depthMemBlock)
     {
-        X265_FREE(m_DataCUMemPool.depthMemBlock);
-        m_DataCUMemPool.depthMemBlock = NULL;
+        X265_FREE(m_dataCUMemPool.depthMemBlock);
+        m_dataCUMemPool.depthMemBlock = NULL;
     }
 
-    if (m_DataCUMemPool.log2CUSizeMemBlock)
+    if (m_dataCUMemPool.log2CUSizeMemBlock)
     {
-        X265_FREE(m_DataCUMemPool.log2CUSizeMemBlock);
-        m_DataCUMemPool.log2CUSizeMemBlock = NULL;
+        X265_FREE(m_dataCUMemPool.log2CUSizeMemBlock);
+        m_dataCUMemPool.log2CUSizeMemBlock = NULL;
     }
 
-    if (m_DataCUMemPool.cbfMemBlock)
+    if (m_dataCUMemPool.cbfMemBlock)
     {
-        X265_FREE(m_DataCUMemPool.cbfMemBlock);
-        m_DataCUMemPool.cbfMemBlock = NULL;
+        X265_FREE(m_dataCUMemPool.cbfMemBlock);
+        m_dataCUMemPool.cbfMemBlock = NULL;
     }
 
-    if (m_DataCUMemPool.interDirMemBlock)
+    if (m_dataCUMemPool.interDirMemBlock)
     {
-        X265_FREE(m_DataCUMemPool.interDirMemBlock);
-        m_DataCUMemPool.interDirMemBlock = NULL;
+        X265_FREE(m_dataCUMemPool.interDirMemBlock);
+        m_dataCUMemPool.interDirMemBlock = NULL;
     }
 
-    if (m_DataCUMemPool.mergeFlagMemBlock)
+    if (m_dataCUMemPool.mergeFlagMemBlock)
     {
-        X265_FREE(m_DataCUMemPool.mergeFlagMemBlock);
-        m_DataCUMemPool.mergeFlagMemBlock = NULL;
+        X265_FREE(m_dataCUMemPool.mergeFlagMemBlock);
+        m_dataCUMemPool.mergeFlagMemBlock = NULL;
     }
 
-    if (m_DataCUMemPool.lumaIntraDirMemBlock)
+    if (m_dataCUMemPool.lumaIntraDirMemBlock)
     {
-        X265_FREE(m_DataCUMemPool.lumaIntraDirMemBlock);
-        m_DataCUMemPool.lumaIntraDirMemBlock = NULL;
+        X265_FREE(m_dataCUMemPool.lumaIntraDirMemBlock);
+        m_dataCUMemPool.lumaIntraDirMemBlock = NULL;
     }
 
-    if(m_DataCUMemPool.chromaIntraDirMemBlock)
+    if(m_dataCUMemPool.chromaIntraDirMemBlock)
     {
-        X265_FREE(m_DataCUMemPool.chromaIntraDirMemBlock);
-        m_DataCUMemPool.chromaIntraDirMemBlock = NULL;
+        X265_FREE(m_dataCUMemPool.chromaIntraDirMemBlock);
+        m_dataCUMemPool.chromaIntraDirMemBlock = NULL;
     }
 
-    if (m_DataCUMemPool.trIdxMemBlock)
+    if (m_dataCUMemPool.trIdxMemBlock)
     {
-        X265_FREE(m_DataCUMemPool.trIdxMemBlock);
-        m_DataCUMemPool.trIdxMemBlock = NULL;
+        X265_FREE(m_dataCUMemPool.trIdxMemBlock);
+        m_dataCUMemPool.trIdxMemBlock = NULL;
     }
 
-    if (m_DataCUMemPool.transformSkipMemBlock)
+    if (m_dataCUMemPool.transformSkipMemBlock)
     {
-        X265_FREE(m_DataCUMemPool.transformSkipMemBlock);
-        m_DataCUMemPool.transformSkipMemBlock = NULL;
+        X265_FREE(m_dataCUMemPool.transformSkipMemBlock);
+        m_dataCUMemPool.transformSkipMemBlock = NULL;


More information about the x265-commits mailing list