Commit 743dfafe authored by Karsten Suehring's avatar Karsten Suehring

Merge branch 'master' into 'master'

Inter AMT encoder fix

See merge request !100
parents ad6f5903 8c9a3e7f
Pipeline #86 passed with stage
......@@ -66,40 +66,21 @@ enum CodingStatisticsType
STATS__CABAC_BITS__REF_FRM_IDX,
STATS__CABAC_BITS__MVD,
STATS__CABAC_BITS__MVD_EP,
#if JEM_TOOLS || JVET_K_AFFINE
STATS__CABAC_BITS__AFFINE_FLAG,
#if JVET_K0337_AFFINE_6PARA
STATS__CABAC_BITS__AFFINE_TYPE,
#endif
#endif
STATS__CABAC_BITS__TRANSFORM_SUBDIV_FLAG,
STATS__CABAC_BITS__QT_ROOT_CBF,
STATS__CABAC_BITS__DELTA_QP_EP,
STATS__CABAC_BITS__CHROMA_QP_ADJUSTMENT,
#if JEM_TOOLS
STATS__CABAC_BITS__LIC_FLAG,
#endif
STATS__CABAC_BITS__QT_CBF,
STATS__CABAC_BITS__CROSS_COMPONENT_PREDICTION,
STATS__CABAC_BITS__TRANSFORM_SKIP_FLAGS,
STATS__CABAC_BITS__LAST_SIG_X_Y,
STATS__CABAC_BITS__SIG_COEFF_GROUP_FLAG,
STATS__CABAC_BITS__SIG_COEFF_MAP_FLAG,
#if JVET_K0072
STATS__CABAC_BITS__PAR_FLAG,
#endif
STATS__CABAC_BITS__GT1_FLAG,
STATS__CABAC_BITS__GT2_FLAG,
STATS__CABAC_BITS__SIGN_BIT,
STATS__CABAC_BITS__ESCAPE_BITS,
STATS__CABAC_BITS__SAO,
#if JVET_K0371_ALF
STATS__CABAC_BITS__ALF,
#endif
#if JEM_TOOLS
STATS__CABAC_BITS__NSST,
#endif
STATS__CABAC_TRM_BITS,
STATS__CABAC_FIXED_BITS,
STATS__CABAC_PCM_ALIGN_BITS,
......@@ -110,10 +91,23 @@ enum CodingStatisticsType
STATS__CABAC_EP_BIT_ALIGNMENT,
STATS__CABAC_BITS__ALIGNED_SIGN_BIT,
STATS__CABAC_BITS__ALIGNED_ESCAPE_BITS,
#if JEM_TOOLS
STATS__CABAC_BITS__OBMC_FLAG,
STATS__CABAC_BITS__OTHER,
STATS__CABAC_BITS__INVALID,
STATS__TOOL_TOTAL_FRAME,// This is a special case and is not included in the report.
#if JEM_TOOLS || JVET_K_AFFINE
STATS__CABAC_BITS__AFFINE_FLAG,
STATS__TOOL_AFF,
#if JVET_K0337_AFFINE_6PARA
STATS__CABAC_BITS__AFFINE_TYPE,
#endif
#if JVET_K0357_AMVR
#endif
#if JVET_K0072
STATS__CABAC_BITS__PAR_FLAG,
#endif
#if JVET_K0371_ALF
STATS__CABAC_BITS__ALF,
#endif
#if JEM_TOOLS || JVET_K0357_AMVR
STATS__CABAC_BITS__IMV_FLAG,
#endif
#if JEM_TOOLS || JVET_K1000_SIMPLIFIED_EMT
......@@ -123,13 +117,14 @@ enum CodingStatisticsType
#if JVET_K0248_GBI
STATS__CABAC_BITS__GBI_IDX,
#endif
STATS__CABAC_BITS__OTHER,
STATS__CABAC_BITS__INVALID,
STATS__TOOL_TOTAL_FRAME,// This is a special case and is not included in the report.
#if JEM_TOOLS || JVET_K1000_SIMPLIFIED_EMT
STATS__TOOL_EMT,
#endif
#if JEM_TOOLS
STATS__TOOL_AFF,
STATS__CABAC_BITS__NSST,
STATS__CABAC_BITS__LIC_FLAG,
STATS__CABAC_BITS__OBMC_FLAG,
STATS__TOOL_NSST,
STATS__TOOL_EMT,
#endif
STATS__TOOL_TOTAL,
STATS__NUM_STATS
......
......@@ -1068,6 +1068,13 @@ void TrQuant::xT( const TransformUnit &tu, const ComponentID &compID, const CPel
const unsigned ucMode = getEmtMode ( tu, compID );
const unsigned ucTrIdx = getEmtTrIdx( tu, compID );
if( ucTrIdx != DCT2 )
{
#if RExt__DECODER_DEBUG_TOOL_STATISTICS
CodingStatistics::IncrementStatisticTool( CodingStatisticsClassType{ STATS__TOOL_EMT, uint32_t( iWidth ), uint32_t( iHeight ), compID } );
#endif
}
#if INTRA67_3MPM
#if HEVC_USE_4x4_DSTVII
xTrMxN_EMT(channelBitDepth, resi.buf, resi.stride, dstCoeff.buf, iWidth, iHeight, useDST, maxLog2TrDynamicRange, ucMode, ucTrIdx
......
......@@ -181,13 +181,13 @@ namespace PU
#if JVET_K0357_AMVR
void applyImv ( PredictionUnit &pu, MergeCtx &mrgCtx, InterPrediction *interPred = NULL );
#endif
#if JEM_TOOLS
bool isAffineMrgFlagCoded (const PredictionUnit &pu );
#if JVET_K0248_GBI
void getAffineMergeCand (const PredictionUnit &pu, MvField (*mvFieldNeighbours)[3], unsigned char &interDirNeighbours, unsigned char &gbiIdx, int &numValidMergeCand);
#else
void getAffineMergeCand (const PredictionUnit &pu, MvField (*mvFieldNeighbours)[3], unsigned char &interDirNeighbours, int &numValidMergeCand );
#endif
#if JEM_TOOLS
bool isAffineMrgFlagCoded (const PredictionUnit &pu );
void setAllAffineMvField ( PredictionUnit &pu, MvField *mvField, RefPicList eRefList );
void setAllAffineMv ( PredictionUnit &pu, Mv affLT, Mv affRT, Mv affLB, RefPicList eRefList );
bool isBIOLDB (const PredictionUnit &pu);
......
......@@ -467,9 +467,11 @@ void DecCu::xDeriveCUMV( CodingUnit &cu )
MergeCtx mrgCtx;
#if RExt__DECODER_DEBUG_TOOL_STATISTICS
#if JEM_TOOLS
if (pu.cu->affine)
CodingStatistics::IncrementStatisticTool(CodingStatisticsClassType{ STATS__TOOL_AFF, pu.Y().width, pu.Y().height });
#if JEM_TOOLS || JVET_K_AFFINE
if( pu.cu->affine )
{
CodingStatistics::IncrementStatisticTool( CodingStatisticsClassType{ STATS__TOOL_AFF, pu.Y().width, pu.Y().height } );
}
#endif
#endif
#if JVET_K0248_GBI
......
This diff is collapsed.
......@@ -227,21 +227,19 @@ protected:
void xCheckRDCostMerge2Nx2NFRUC
( CodingStructure *&tempCS, CodingStructure *&bestCS, Partitioner &partitioner, const EncTestMode& encTestMode );
#endif
void xEncodeInterResidual ( CodingStructure *&tempCS, CodingStructure *&bestCS, Partitioner &partitioner, const EncTestMode& encTestMode, int residualPass = 0
#if JEM_TOOLS || JVET_K0357_AMVR
#if JVET_K0248_GBI
void xEncodeInterResidual ( CodingStructure *&tempCS, CodingStructure *&bestCS, Partitioner &partitioner, const EncTestMode& encTestMode, int residualPass = 0, CodingStructure* imvCS = NULL, int emtMode = 1, bool* bestHasNonResi = NULL, double* equGBiCost = NULL);
#else
void xEncodeInterResidual ( CodingStructure *&tempCS, CodingStructure *&bestCS, Partitioner &partitioner, const EncTestMode& encTestMode, int residualPass = 0, CodingStructure* imvCS = NULL, int emtMode = 1, bool* bestHasNonResi = NULL);
, CodingStructure* imvCS = NULL
#endif
#else
#if JVET_K0248_GBI
void xEncodeInterResidual ( CodingStructure *&tempCS, CodingStructure *&bestCS, Partitioner &partitioner, const EncTestMode& encTestMode, int residualPass, bool* bestHasNonResi, double* equGBiCost = NULL);
#else
void xEncodeInterResidual ( CodingStructure *&tempCS, CodingStructure *&bestCS, Partitioner &partitioner, const EncTestMode& encTestMode, int residualPass, bool* bestHasNonResi);
#if JEM_TOOLS || JVET_K1000_SIMPLIFIED_EMT
, int emtMode = 1
#endif
, bool* bestHasNonResi = NULL
#if JVET_K0248_GBI
, double* equGBiCost = NULL
#endif
);
#if REUSE_CU_RESULTS
void xReuseCachedResult ( CodingStructure *&tempCS, CodingStructure *&bestCS, Partitioner &Partitioner );
#endif
#if JVET_K0076_CPR
......
......@@ -5410,7 +5410,6 @@ void InterSearch::xEncodeInterResidualQT(CodingStructure &cs, Partitioner &parti
}
#endif
#if JEM_TOOLS && !HM_EMT_NSST_AS_IN_JEM
#if ENABLE_BMS
if( isLuma( compID ) && currDepth == 0 )
#else
......@@ -5943,7 +5942,7 @@ void InterSearch::xEstimateInterResidualQT(CodingStructure &cs, Partitioner &par
{
cs.useSubStructure( *csSplit, partitioner.chType, currArea, false, false, false, true );
cs.cost = csSplit->cost;
#if JEM_TOOLS
#if JEM_TOOLS || JVET_K1000_SIMPLIFIED_EMT
isSplit = true;
#endif
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment