[x265-commits] [x265] search: use proper allocation size for m_rqt, fix --prese...
Steve Borho
steve at borho.org
Thu Oct 23 06:38:50 CEST 2014
details: http://hg.videolan.org/x265/rev/a09b45ead8e0
branches:
changeset: 8617:a09b45ead8e0
user: Steve Borho <steve at borho.org>
date: Wed Oct 22 21:34:01 2014 -0500
description:
search: use proper allocation size for m_rqt, fix --preset placebo
The entropy contexts need to be addressed from 0..4 (full depth) even if the
buffers are only allocated to CU depth 0..3
Subject: [x265] cudata: nits, use m_encData directly
details: http://hg.videolan.org/x265/rev/63cb0c68d0c0
branches:
changeset: 8618:63cb0c68d0c0
user: Steve Borho <steve at borho.org>
date: Wed Oct 22 21:34:26 2014 -0500
description:
cudata: nits, use m_encData directly
Subject: [x265] pull TComRom into common/constants. bring CommonDef and TypeDefs into various
details: http://hg.videolan.org/x265/rev/bddf8ccf4c94
branches:
changeset: 8619:bddf8ccf4c94
user: Steve Borho <steve at borho.org>
date: Wed Oct 22 22:20:59 2014 -0500
description:
pull TComRom into common/constants. bring CommonDef and TypeDefs into various
A number of enums were pulled into cudata.h, one went to slice.h. All the
defines went into common.h
Subject: [x265] cleanup enough of the context tables to bring them into common/
details: http://hg.videolan.org/x265/rev/fd03d43c1a97
branches:
changeset: 8620:fd03d43c1a97
user: Steve Borho <steve at borho.org>
date: Wed Oct 22 22:48:15 2014 -0500
description:
cleanup enough of the context tables to bring them into common/
This was the last file under Lib/ so the whole folder is now removed.
Subject: [x265] nr: move noise reduction arrays to Quant, simplify its upkeep
details: http://hg.videolan.org/x265/rev/ce304756a6e4
branches:
changeset: 8621:ce304756a6e4
user: Steve Borho <steve at borho.org>
date: Wed Oct 22 23:16:13 2014 -0500
description:
nr: move noise reduction arrays to Quant, simplify its upkeep
This cleans up a number of layering violations and makes the array management
more robust
diffstat:
source/CMakeLists.txt | 3 +-
source/Lib/COPYING.HM | 31 -
source/Lib/README.txt | 3 -
source/Lib/TLibCommon/CommonDef.h | 100 ------
source/Lib/TLibCommon/ContextTables.h | 363 -----------------------
source/Lib/TLibCommon/TComRom.cpp | 534 ----------------------------------
source/Lib/TLibCommon/TComRom.h | 143 ---------
source/Lib/TLibCommon/TypeDef.h | 93 -----
source/common/CMakeLists.txt | 31 +-
source/common/common.cpp | 1 -
source/common/common.h | 124 ++++++-
source/common/constants.cpp | 503 ++++++++++++++++++++++++++++++++
source/common/constants.h | 104 ++++++
source/common/contexts.h | 309 +++++++++++++++++++
source/common/cudata.cpp | 10 +-
source/common/cudata.h | 31 +-
source/common/dct.cpp | 1 -
source/common/deblock.h | 1 -
source/common/frame.cpp | 1 -
source/common/frame.h | 1 -
source/common/framedata.h | 1 +
source/common/intrapred.cpp | 2 +-
source/common/ipfilter.cpp | 2 +-
source/common/loopfilter.cpp | 2 +-
source/common/param.cpp | 5 +-
source/common/picyuv.h | 1 -
source/common/pixel.cpp | 2 +-
source/common/primitives.cpp | 3 +-
source/common/quant.cpp | 16 +-
source/common/quant.h | 5 +-
source/common/scalinglist.cpp | 1 -
source/common/shortyuv.h | 2 +-
source/common/slice.h | 7 +
source/common/vec/dct-sse3.cpp | 2 +-
source/common/vec/dct-sse41.cpp | 2 +-
source/common/vec/dct-ssse3.cpp | 2 +-
source/common/x86/asm-primitives.cpp | 2 +-
source/common/yuv.h | 1 -
source/encoder/analysis.cpp | 4 -
source/encoder/analysis.h | 7 +-
source/encoder/bitcost.cpp | 3 +-
source/encoder/encoder.cpp | 12 -
source/encoder/entropy.cpp | 12 +-
source/encoder/entropy.h | 3 +-
source/encoder/frameencoder.cpp | 12 +-
source/encoder/motion.cpp | 3 +-
source/encoder/search.cpp | 4 +-
source/encoder/search.h | 2 +-
source/encoder/slicetype.cpp | 2 -
source/test/ipfilterharness.cpp | 1 -
source/test/mbdstharness.cpp | 3 +-
51 files changed, 1119 insertions(+), 1394 deletions(-)
diffs (truncated from 3159 to 300 lines):
diff -r 372a8230110a -r ce304756a6e4 source/CMakeLists.txt
--- a/source/CMakeLists.txt Wed Oct 22 17:13:57 2014 -0500
+++ b/source/CMakeLists.txt Wed Oct 22 23:16:13 2014 -0500
@@ -187,7 +187,6 @@ if(WARNINGS_AS_ERRORS)
endif(WARNINGS_AS_ERRORS)
-
option(ENABLE_PPA "Enable PPA profiling instrumentation" OFF)
if(ENABLE_PPA)
add_definitions(-DENABLE_PPA)
@@ -216,7 +215,7 @@ if (WIN32)
endif()
include(version) # determine X265_VERSION and X265_LATEST_TAG
-include_directories(. Lib common encoder "${PROJECT_BINARY_DIR}")
+include_directories(. common encoder "${PROJECT_BINARY_DIR}")
add_subdirectory(encoder)
add_subdirectory(common)
diff -r 372a8230110a -r ce304756a6e4 source/Lib/COPYING.HM
--- a/source/Lib/COPYING.HM Wed Oct 22 17:13:57 2014 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-The copyright in this software is being made available under the BSD
-License, included below. This software may be subject to other third party
-and contributor rights, including patent rights, and no such rights are
-granted under this license.
-
-Copyright (c) 2010-2012, ITU/ISO/IEC
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the name of the ITU/ISO/IEC nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGE.
diff -r 372a8230110a -r ce304756a6e4 source/Lib/README.txt
--- a/source/Lib/README.txt Wed Oct 22 17:13:57 2014 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-All the code in this folder originated from the HEVC reference model (HM)
-
-https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/
diff -r 372a8230110a -r ce304756a6e4 source/Lib/TLibCommon/CommonDef.h
--- a/source/Lib/TLibCommon/CommonDef.h Wed Oct 22 17:13:57 2014 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/* The copyright in this software is being made available under the BSD
- * License, included below. This software may be subject to other third party
- * and contributor rights, including patent rights, and no such rights are
- * granted under this license.
- *
- * Copyright (c) 2010-2013, ITU/ISO/IEC
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * * Neither the name of the ITU/ISO/IEC nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef X265_COMMONDEF_H
-#define X265_COMMONDEF_H
-
-#include "TypeDef.h"
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-#define MAX_UINT 0xFFFFFFFFU // max. value of unsigned 32-bit integer
-#define MAX_INT 2147483647 // max. value of signed 32-bit integer
-#define MAX_INT64 0x7FFFFFFFFFFFFFFFLL // max. value of signed 64-bit integer
-#define MAX_DOUBLE 1.7e+308 // max. value of double-type value
-
-#define COEF_REMAIN_BIN_REDUCTION 3 // indicates the level at which the VLC
- // transitions from Golomb-Rice to TU+EG(k)
-
-#define SBH_THRESHOLD 4 // fixed sign bit hiding controlling threshold
-
-#define C1FLAG_NUMBER 8 // maximum number of largerThan1 flag coded in one chunk: 16 in HM5
-#define C2FLAG_NUMBER 1 // maximum number of largerThan2 flag coded in one chunk: 16 in HM5
-
-#define SAO_ENCODING_RATE 0.75
-#define SAO_ENCODING_RATE_CHROMA 0.5
-
-#define MLS_GRP_NUM 64 // Max number of coefficient groups, max(16, 64)
-#define MLS_CG_SIZE 4 // Coefficient group size of 4x4
-#define MLS_CG_LOG2_SIZE 2
-
-#define QUANT_IQUANT_SHIFT 20 // Q(QP%6) * IQ(QP%6) = 2^20
-#define QUANT_SHIFT 14 // Q(4) = 2^14
-#define SCALE_BITS 15 // Inherited from TMuC, presumably for fractional bit estimates in RDOQ
-#define MAX_TR_DYNAMIC_RANGE 15 // Maximum transform dynamic range (excluding sign bit)
-
-#define SHIFT_INV_1ST 7 // Shift after first inverse transform stage
-#define SHIFT_INV_2ND 12 // Shift after second inverse transform stage
-
-#define AMVP_DECIMATION_FACTOR 4
-
-#define SCAN_SET_SIZE 16
-#define LOG2_SCAN_SET_SIZE 4
-
-#define ALL_IDX -1
-#define PLANAR_IDX 0
-#define VER_IDX 26 // index for intra VERTICAL mode
-#define HOR_IDX 10 // index for intra HORIZONTAL mode
-#define DC_IDX 1 // index for intra DC mode
-#define NUM_CHROMA_MODE 5 // total number of chroma modes
-#define DM_CHROMA_IDX 36 // chroma mode index for derived from luma intra mode
-
-#define MDCS_ANGLE_LIMIT 4 // distance from true angle that horiz or vertical scan is allowed
-#define MDCS_LOG2_MAX_SIZE 3 // TUs with log2 of size greater than this can only use diagonal scan
-
-#define MAX_NUM_REF_PICS 16 // max. number of pictures used for reference
-#define MAX_NUM_REF 16 // max. number of entries in picture reference list
-
-#define REF_NOT_VALID -1
-
-#define AMVP_NUM_CANDS 2 // number of AMVP candidates
-#define MRG_MAX_NUM_CANDS 5 // max number of final merge candidates
-
-#define MAX_CHROMA_FORMAT_IDC 3 // TODO: Remove me
-
-#define CHROMA_H_SHIFT(x) (x == X265_CSP_I420 || x == X265_CSP_I422)
-#define CHROMA_V_SHIFT(x) (x == X265_CSP_I420)
-
-#endif // ifndef X265_COMMONDEF_H
diff -r 372a8230110a -r ce304756a6e4 source/Lib/TLibCommon/ContextTables.h
--- a/source/Lib/TLibCommon/ContextTables.h Wed Oct 22 17:13:57 2014 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,363 +0,0 @@
-/* The copyright in this software is being made available under the BSD
- * License, included below. This software may be subject to other third party
- * and contributor rights, including patent rights, and no such rights are
- * granted under this license.
- *
- * Copyright (c) 2010-2013, ITU/ISO/IEC
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * * Neither the name of the ITU/ISO/IEC nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/** \file ContextTables.h
- \brief Defines constants and tables for SBAC
- \todo number of context models is not matched to actual use, should be fixed
-*/
-
-#ifndef X265_CONTEXTTABLES_H
-#define X265_CONTEXTTABLES_H
-
-#include "common.h"
-
-//! \ingroup TLibCommon
-//! \{
-
-// ====================================================================================================================
-// Constants
-// ====================================================================================================================
-
-#define NUM_SPLIT_FLAG_CTX 3 ///< number of context models for split flag
-#define NUM_SKIP_FLAG_CTX 3 ///< number of context models for skip flag
-
-#define NUM_MERGE_FLAG_EXT_CTX 1 ///< number of context models for merge flag of merge extended
-#define NUM_MERGE_IDX_EXT_CTX 1 ///< number of context models for merge index of merge extended
-
-#define NUM_PART_SIZE_CTX 4 ///< number of context models for partition size
-#define NUM_PRED_MODE_CTX 1 ///< number of context models for prediction mode
-
-#define NUM_ADI_CTX 1 ///< number of context models for intra prediction
-
-#define NUM_CHROMA_PRED_CTX 2 ///< number of context models for intra prediction (chroma)
-#define NUM_INTER_DIR_CTX 5 ///< number of context models for inter prediction direction
-#define NUM_MV_RES_CTX 2 ///< number of context models for motion vector difference
-
-#define NUM_REF_NO_CTX 2 ///< number of context models for reference index
-#define NUM_TRANS_SUBDIV_FLAG_CTX 3 ///< number of context models for transform subdivision flags
-#define NUM_QT_CBF_CTX 7 ///< number of context models for QT CBF
-#define NUM_QT_ROOT_CBF_CTX 1 ///< number of context models for QT ROOT CBF
-#define NUM_DELTA_QP_CTX 3 ///< number of context models for dQP
-
-#define NUM_SIG_CG_FLAG_CTX 2 ///< number of context models for MULTI_LEVEL_SIGNIFICANCE
-
-#define NUM_SIG_FLAG_CTX 42 ///< number of context models for sig flag
-#define NUM_SIG_FLAG_CTX_LUMA 27 ///< number of context models for luma sig flag
-#define NUM_SIG_FLAG_CTX_CHROMA 15 ///< number of context models for chroma sig flag
-
-#define NUM_CTX_LAST_FLAG_XY 18 ///< number of context models for last coefficient position
-#define NUM_CTX_LAST_FLAG_XY_LUMA 15 ///< number of context models for last coefficient position of luma
-#define NUM_CTX_LAST_FLAG_XY_CHROMA 3 ///< number of context models for last coefficient position of chroma
-
-#define NUM_ONE_FLAG_CTX 24 ///< number of context models for greater than 1 flag
-#define NUM_ONE_FLAG_CTX_LUMA 16 ///< number of context models for greater than 1 flag of luma
-#define NUM_ONE_FLAG_CTX_CHROMA 8 ///< number of context models for greater than 1 flag of chroma
-#define NUM_ABS_FLAG_CTX 6 ///< number of context models for greater than 2 flag
-#define NUM_ABS_FLAG_CTX_LUMA 4 ///< number of context models for greater than 2 flag of luma
-#define NUM_ABS_FLAG_CTX_CHROMA 2 ///< number of context models for greater than 2 flag of chroma
-
-#define NUM_MVP_IDX_CTX 1 ///< number of context models for MVP index
-
-#define NUM_SAO_MERGE_FLAG_CTX 1 ///< number of context models for SAO merge flags
-#define NUM_SAO_TYPE_IDX_CTX 1 ///< number of context models for SAO type index
-
-#define NUM_TRANSFORMSKIP_FLAG_CTX 1 ///< number of context models for transform skipping
-#define NUM_CU_TRANSQUANT_BYPASS_FLAG_CTX 1
-#define CNU 154 ///< dummy initialization value for unused context models 'Context model Not Used'
-
-// Offset for context
-#define OFF_SPLIT_FLAG_CTX (0)
-#define OFF_SKIP_FLAG_CTX (OFF_SPLIT_FLAG_CTX + NUM_SPLIT_FLAG_CTX)
-#define OFF_MERGE_FLAG_EXT_CTX (OFF_SKIP_FLAG_CTX + NUM_SKIP_FLAG_CTX)
-#define OFF_MERGE_IDX_EXT_CTX (OFF_MERGE_FLAG_EXT_CTX + NUM_MERGE_FLAG_EXT_CTX)
-#define OFF_PART_SIZE_CTX (OFF_MERGE_IDX_EXT_CTX + NUM_MERGE_IDX_EXT_CTX)
-#define OFF_PRED_MODE_CTX (OFF_PART_SIZE_CTX + NUM_PART_SIZE_CTX)
-#define OFF_ADI_CTX (OFF_PRED_MODE_CTX + NUM_PRED_MODE_CTX)
-#define OFF_CHROMA_PRED_CTX (OFF_ADI_CTX + NUM_ADI_CTX)
-#define OFF_DELTA_QP_CTX (OFF_CHROMA_PRED_CTX + NUM_CHROMA_PRED_CTX)
-#define OFF_INTER_DIR_CTX (OFF_DELTA_QP_CTX + NUM_DELTA_QP_CTX)
-#define OFF_REF_NO_CTX (OFF_INTER_DIR_CTX + NUM_INTER_DIR_CTX)
-#define OFF_MV_RES_CTX (OFF_REF_NO_CTX + NUM_REF_NO_CTX)
-#define OFF_QT_CBF_CTX (OFF_MV_RES_CTX + NUM_MV_RES_CTX)
-#define OFF_TRANS_SUBDIV_FLAG_CTX (OFF_QT_CBF_CTX + NUM_QT_CBF_CTX)
-#define OFF_QT_ROOT_CBF_CTX (OFF_TRANS_SUBDIV_FLAG_CTX + NUM_TRANS_SUBDIV_FLAG_CTX)
-#define OFF_SIG_CG_FLAG_CTX (OFF_QT_ROOT_CBF_CTX + NUM_QT_ROOT_CBF_CTX)
-#define OFF_SIG_FLAG_CTX (OFF_SIG_CG_FLAG_CTX + 2 * NUM_SIG_CG_FLAG_CTX)
-#define OFF_CTX_LAST_FLAG_X (OFF_SIG_FLAG_CTX + NUM_SIG_FLAG_CTX)
-#define OFF_CTX_LAST_FLAG_Y (OFF_CTX_LAST_FLAG_X + NUM_CTX_LAST_FLAG_XY)
-#define OFF_ONE_FLAG_CTX (OFF_CTX_LAST_FLAG_Y + NUM_CTX_LAST_FLAG_XY)
-#define OFF_ABS_FLAG_CTX (OFF_ONE_FLAG_CTX + NUM_ONE_FLAG_CTX)
-#define OFF_MVP_IDX_CTX (OFF_ABS_FLAG_CTX + NUM_ABS_FLAG_CTX)
-#define OFF_SAO_MERGE_FLAG_CTX (OFF_MVP_IDX_CTX + NUM_MVP_IDX_CTX)
-#define OFF_SAO_TYPE_IDX_CTX (OFF_SAO_MERGE_FLAG_CTX + NUM_SAO_MERGE_FLAG_CTX)
-#define OFF_TRANSFORMSKIP_FLAG_CTX (OFF_SAO_TYPE_IDX_CTX + NUM_SAO_TYPE_IDX_CTX)
-#define OFF_CU_TRANSQUANT_BYPASS_FLAG_CTX (OFF_TRANSFORMSKIP_FLAG_CTX + 2 * NUM_TRANSFORMSKIP_FLAG_CTX)
-#define MAX_OFF_CTX_MOD (OFF_CU_TRANSQUANT_BYPASS_FLAG_CTX + NUM_CU_TRANSQUANT_BYPASS_FLAG_CTX)
-
-namespace x265 {
-// private namespace
-
-extern const uint32_t g_entropyBits[128];
More information about the x265-commits
mailing list