Commit 649dd1d2 authored by Shelly Chiang's avatar Shelly Chiang

update the codebase

parents 859c574b 5c46b9be
......@@ -47,9 +47,13 @@ void roundMV( Mv & rMV, unsigned imvShift )
if (rMV.highPrec) imvShift += VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
#endif
int offset = 1 << ( imvShift - 1 );
#if JVET_L0377_AMVR_ROUNDING_ALIGN
rMV.setHor(rMV.getHor() >= 0 ? ((rMV.getHor() + offset) >> imvShift) << imvShift : -(((-rMV.getHor() + offset) >> imvShift)) << imvShift);
rMV.setVer(rMV.getVer() >= 0 ? ((rMV.getVer() + offset) >> imvShift) << imvShift : -(((-rMV.getVer() + offset) >> imvShift)) << imvShift);
#else
rMV.setHor( ( ( rMV.getHor() + offset ) >> imvShift ) << imvShift );
rMV.setVer( ( ( rMV.getVer() + offset ) >> imvShift ) << imvShift );
#endif
}
void roundAffineMv( int& mvx, int& mvy, int nShift )
......
......@@ -597,7 +597,11 @@ const int g_invQuantScales[SCALING_LIST_REM_NUM] =
//structures
//EMT transform sets
const int g_aiTrSubsetIntra[3][2] = { { DST7, DCT8 }, { DST7, DCT8 }, { DST7, DCT8 } };
#if JVET_L0118_ALIGN_MTS_INDEX
const int g_aiTrSubsetInter[2] = { DST7, DCT8 };
#else
const int g_aiTrSubsetInter[4] = { DCT8, DST7 };
#endif
const uint8_t g_aucTrSetVert[NUM_INTRA_MODE - 1] =
{//0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
......
......@@ -118,7 +118,11 @@ extern const TMatrixCoeff g_as_DST_MAT_4 [TRANSFORM_NUMBER_OF_DIRECTIONS][4][4];
#endif
extern const int g_aiTrSubsetIntra[3][2];
#if JVET_L0118_ALIGN_MTS_INDEX
extern const int g_aiTrSubsetInter[2];
#else
extern const int g_aiTrSubsetInter[4];
#endif
extern const uint8_t g_aucTrSetVert[NUM_INTRA_MODE - 1];
extern const uint8_t g_aucTrSetHorz[NUM_INTRA_MODE - 1];
......
......@@ -52,6 +52,10 @@
#define JVET_L0100_MULTI_HYPOTHESIS_INTRA 1 // Combine intra mode with an extra merge indexed prediction
#define JVET_L0118_ALIGN_MTS_INDEX 1 // Align mts_index on intra and inter
#define JVET_L0377_AMVR_ROUNDING_ALIGN 1 // Align AMVR rounding for AMVP candidate
#define JVET_L0285_8BIT_TRANSFORM_CORE 1 // Primary transform using 8-bit cores
#define JVET_L0081_VPDU_SPLIT_CONSTRAINTS 1 // VPDU constraints for binary and ternary partitions
......@@ -60,6 +64,7 @@
#define JVET_L0266_HMVP 1 //History-based MVP
#define JVET_L0553_FIX_INITQP 1
#define JVET_L0053_L0272_DM 1 // use center position of luma block to derive DM
#define JVET_L0147_ALF_SUBSAMPLED_LAPLACIAN 1 // Subsampled Laplacian calculation
......
......@@ -404,7 +404,13 @@ void PU::getIntraChromaCandModes( const PredictionUnit &pu, unsigned modeList[NU
modeList[5] = DM_CHROMA_IDX;
#endif
#if JVET_L0053_L0272_DM
Position topLeftPos = pu.blocks[pu.chType].lumaPos();
Position refPos = topLeftPos.offset( pu.blocks[pu.chType].lumaSize().width >> 1, pu.blocks[pu.chType].lumaSize().height >> 1 );
const PredictionUnit *lumaPU = CS::isDualITree( *pu.cs ) ? pu.cs->picture->cs->getPU( refPos, CHANNEL_TYPE_LUMA ) : &pu;
#else
const PredictionUnit *lumaPU = CS::isDualITree( *pu.cs ) ? pu.cs->picture->cs->getPU( pu.blocks[pu.chType].lumaPos(), CHANNEL_TYPE_LUMA ) : &pu;
#endif
const uint32_t lumaMode = lumaPU->intraDir[CHANNEL_TYPE_LUMA];
for( int i = 0; i < 4; i++ )
{
......@@ -657,7 +663,13 @@ uint32_t PU::getFinalIntraMode( const PredictionUnit &pu, const ChannelType &chT
if( uiIntraMode == DM_CHROMA_IDX && !isLuma( chType ) )
{
#if JVET_L0053_L0272_DM
Position topLeftPos = pu.blocks[pu.chType].lumaPos();
Position refPos = topLeftPos.offset( pu.blocks[pu.chType].lumaSize().width >> 1, pu.blocks[pu.chType].lumaSize().height >> 1 );
const PredictionUnit &lumaPU = CS::isDualITree( *pu.cs ) ? *pu.cs->picture->cs->getPU( refPos, CHANNEL_TYPE_LUMA ) : *pu.cs->getPU( topLeftPos, CHANNEL_TYPE_LUMA );
#else
const PredictionUnit &lumaPU = CS::isDualITree( *pu.cs ) ? *pu.cs->picture->cs->getPU( pu.blocks[chType].lumaPos(), CHANNEL_TYPE_LUMA ) : *pu.cs->getPU( pu.blocks[chType].lumaPos(), CHANNEL_TYPE_LUMA );
#endif
uiIntraMode = lumaPU.intraDir[0];
}
......
......@@ -287,7 +287,11 @@ void EncCu::destroy()
m_pImvTempCS = nullptr;
}
#if JVET_L0054_MMVD
for (unsigned ui = 0; ui < MMVD_MRG_MAX_RD_BUF_NUM; ui++)
#else
for( unsigned ui = 0; ui < MRG_MAX_NUM_CANDS; ui++ )
#endif
{
m_acMergeBuffer[ui].destroy();
#if JVET_L0100_MULTI_HYPOTHESIS_INTRA
......
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