Commit 84ed4213 authored by Fangdong Chen's avatar Fangdong Chen
Browse files

replace JCCR by Joint CbCr

parent 34e34208
......@@ -114,7 +114,7 @@ LMCSEnable : 1 # LMCS: 0: disable, 1:enable
LMCSSignalType : 0 # Input signal type: 0:SDR, 1:HDR-PQ, 2:HDR-HLG
LMCSUpdateCtrl : 1 # LMCS model update control: 0:RA, 1:AI, 2:LDB/LDP
MIP : 1
JCCR : 1 # JCCR: 0: disable, 1: enable
JointCbCr : 1 # JointCbCr: 0: disable, 1: enable
# Fast tools
PBIntraFast : 1
ISPFast : 1
......
......@@ -130,7 +130,7 @@ LMCSEnable : 1 # LMCS: 0: disable, 1:enable
LMCSSignalType : 0 # Input signal type: 0:SDR, 1:HDR-PQ, 2:HDR-HLG
LMCSUpdateCtrl : 2 # LMCS model update control: 0:RA, 1:AI, 2:LDB/LDP
MIP : 1
JCCR : 1 # JCCR: 0: disable, 1: enable
JointCbCr : 1 # JointCbCr: 0: disable, 1: enable
# Fast tools
PBIntraFast : 1
ISPFast : 1
......
......@@ -134,7 +134,7 @@ LMCSEnable : 1 # LMCS: 0: disable, 1:enable
LMCSSignalType : 0 # Input signal type: 0:SDR, 1:HDR-PQ, 2:HDR-HLG
LMCSUpdateCtrl : 2 # LMCS model update control: 0:RA, 1:AI, 2:LDB/LDP
MIP : 1
JCCR : 1 # JCCR: 0: disable, 1: enable
JointCbCr : 1 # JointCbCr: 0: disable, 1: enable
# Fast tools
PBIntraFast : 1
ISPFast : 1
......
......@@ -152,7 +152,7 @@ LMCSUpdateCtrl : 0 # LMCS model update control: 0:RA, 1:AI, 2
MIP : 1
DMVR : 1
SMVD : 1
JCCR : 1 # JCCR: 0: disable, 1: enable
JointCbCr : 1 # JointCbCr: 0: disable, 1: enable
# Fast tools
PBIntraFast : 1
ISPFast : 1
......
......@@ -290,8 +290,8 @@ void EncApp::xInitLibCfg()
m_cEncLib.setMMVD ( m_MMVD );
m_cEncLib.setMmvdDisNum (m_MmvdDisNum);
m_cEncLib.setRDPCM ( m_RdpcmMode );
#if JVET_O0376_SPS_JCCR_FLAG
m_cEncLib.setJCCR ( m_JccrMode );
#if JVET_O0376_SPS_JOINTCBCR_FLAG
m_cEncLib.setJointCbCr ( m_JointCbCrMode );
#endif
m_cEncLib.setIBCMode ( m_IBCMode );
m_cEncLib.setIBCLocalSearchRangeX ( m_IBCLocalSearchRangeX );
......
......@@ -901,8 +901,8 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
("DMVR", m_DMVR, false, "Decoder-side Motion Vector Refinement")
("MmvdDisNum", m_MmvdDisNum, 8, "Number of MMVD Distance Entries")
( "RDPCM", m_RdpcmMode, false, "RDPCM")
#if JVET_O0376_SPS_JCCR_FLAG
("JCCR", m_JccrMode, false, "Enable joint coding of chroma residuals (JCCR, 0:off, 1:on)")
#if JVET_O0376_SPS_JOINTCBCR_FLAG
("JointCbCr", m_JointCbCrMode, false, "Enable joint coding of chroma residuals (JointCbCr, 0:off, 1:on)")
#endif
( "IBC", m_IBCMode, 0u, "IBCMode (0x1:enabled, 0x0:disabled) [default: disabled]")
( "IBCLocalSearchRangeX", m_IBCLocalSearchRangeX, 128u, "Search range of IBC local search in x direction")
......@@ -2209,8 +2209,8 @@ bool EncAppCfg::xCheckParameter()
xConfirmPara(m_DMVR, "DMVR only allowed with NEXT profile");
xConfirmPara(m_MmvdDisNum, "Number of distance MMVD entry setting only allowed with NEXT profile");
xConfirmPara(m_RdpcmMode, "RDPCM only allowed with NEXT profile");
#if JVET_O0376_SPS_JCCR_FLAG
xConfirmPara(m_JccrMode, "JCCR only allowed with NEXT profile");
#if JVET_O0376_SPS_JOINTCBCR_FLAG
xConfirmPara(m_JointCbCrMode, "JointCbCr only allowed with NEXT profile");
#endif
// ADD_NEW_TOOL : (parameter check) add a check for next tools here
}
......@@ -2501,15 +2501,15 @@ bool EncAppCfg::xCheckParameter()
xConfirmPara( m_cbQpOffsetDualTree > 12, "Max. Chroma Cb QP Offset for dual tree is 12" );
xConfirmPara( m_crQpOffsetDualTree < -12, "Min. Chroma Cr QP Offset for dual tree is -12" );
xConfirmPara( m_crQpOffsetDualTree > 12, "Max. Chroma Cr QP Offset for dual tree is 12" );
#if JVET_O0376_SPS_JCCR_FLAG
if (m_JccrMode && (m_chromaFormatIDC == CHROMA_400))
#if JVET_O0376_SPS_JOINTCBCR_FLAG
if (m_JointCbCrMode && (m_chromaFormatIDC == CHROMA_400))
{
msg( WARNING, "****************************************************************************\n");
msg( WARNING, "** WARNING: --JCCR has been disabled due to the chromaFormat is 400 **\n");
msg( WARNING, "** WARNING: --JointCbCr has been disabled due to the chromaFormat is 400 **\n");
msg( WARNING, "****************************************************************************\n");
m_JccrMode = false;
m_JointCbCrMode = false;
}
if (m_JccrMode)
if (m_JointCbCrMode)
{
xConfirmPara( m_cbCrQpOffset < -12, "Min. Joint Cb-Cr QP Offset is -12");
xConfirmPara( m_cbCrQpOffset > 12, "Max. Joint Cb-Cr QP Offset is 12");
......@@ -3399,8 +3399,8 @@ void EncAppCfg::xPrintParameter()
msg(VERBOSE, "DMVR:%d ", m_DMVR);
msg(VERBOSE, "MmvdDisNum:%d ", m_MmvdDisNum);
msg(VERBOSE, "RDPCM:%d ", m_RdpcmMode );
#if JVET_O0376_SPS_JCCR_FLAG
msg(VERBOSE, "JCCR:%d ", m_JccrMode);
#if JVET_O0376_SPS_JOINTCBCR_FLAG
msg(VERBOSE, "JointCbCr:%d ", m_JointCbCrMode);
#endif
}
msg(VERBOSE, "IBC:%d ", m_IBCMode);
......
......@@ -283,8 +283,8 @@ protected:
bool m_MMVD;
int m_MmvdDisNum;
bool m_RdpcmMode;
#if JVET_O0376_SPS_JCCR_FLAG
bool m_JccrMode;
#if JVET_O0376_SPS_JOINTCBCR_FLAG
bool m_JointCbCrMode;
#endif
unsigned m_IBCMode;
unsigned m_IBCLocalSearchRangeX;
......
......@@ -185,8 +185,8 @@ class ConstraintInfo
bool m_noPartitionConstraintsOverrideConstraintFlag;
bool m_noSaoConstraintFlag;
bool m_noAlfConstraintFlag;
#if JVET_O0376_SPS_JCCR_FLAG
bool m_noJccrConstraintFlag;
#if JVET_O0376_SPS_JOINTCBCR_FLAG
bool m_noJointCbCrConstraintFlag;
#endif
bool m_noPcmConstraintFlag;
bool m_noRefWraparoundConstraintFlag;
......@@ -287,9 +287,9 @@ public:
void setNoSaoConstraintFlag(bool bVal) { m_noSaoConstraintFlag = bVal; }
bool getNoAlfConstraintFlag() const { return m_noAlfConstraintFlag; }
void setNoAlfConstraintFlag(bool bVal) { m_noAlfConstraintFlag = bVal; }
#if JVET_O0376_SPS_JCCR_FLAG
bool getNoJccrConstraintFlag() const { return m_noJccrConstraintFlag; }
void setNoJccrConstraintFlag(bool bVal) { m_noJccrConstraintFlag = bVal; }
#if JVET_O0376_SPS_JOINTCBCR_FLAG
bool getNoJointCbCrConstraintFlag() const { return m_noJointCbCrConstraintFlag; }
void setNoJointCbCrConstraintFlag(bool bVal) { m_noJointCbCrConstraintFlag = bVal; }
#endif
bool getNoPcmConstraintFlag() const { return m_noPcmConstraintFlag; }
void setNoPcmConstraintFlag(bool bVal) { m_noPcmConstraintFlag = bVal; }
......@@ -760,8 +760,8 @@ private:
#endif
bool m_saoEnabledFlag;
#if JVET_O0376_SPS_JCCR_FLAG
bool m_jccrEnabledFlag;
#if JVET_O0376_SPS_JOINTCBCR_FLAG
bool m_JointCbCrEnabledFlag;
#endif
bool m_bTemporalIdNestingFlag; // temporal_id_nesting_flag
......@@ -944,9 +944,9 @@ public:
bool getALFEnabledFlag() const { return m_alfEnabledFlag; }
void setALFEnabledFlag( bool b ) { m_alfEnabledFlag = b; }
#if JVET_O0376_SPS_JCCR_FLAG
void setJCCREnabledFlag(bool bVal) { m_jccrEnabledFlag = bVal; }
bool getJCCREnabledFlag() const { return m_jccrEnabledFlag; }
#if JVET_O0376_SPS_JOINTCBCR_FLAG
void setJointCbCrEnabledFlag(bool bVal) { m_JointCbCrEnabledFlag = bVal; }
bool getJointCbCrEnabledFlag() const { return m_JointCbCrEnabledFlag; }
#endif
bool getSBTMVPEnabledFlag() const { return m_sbtmvpEnabledFlag; }
void setSBTMVPEnabledFlag(bool b) { m_sbtmvpEnabledFlag = b; }
......
......@@ -183,7 +183,7 @@
#define JVET_O0594_BDOF_REF_SAMPLE_PADDING 1 // JVET-O0594/O0252/O0506/O0615/O0624: BDOF reference sample padding using the nearest integer sample position
#define JVET_O0376_SPS_JCCR_FLAG 1 // JVET-O0376: add the JCCR control flag in SPS
#define JVET_O0376_SPS_JOINTCBCR_FLAG 1 // JVET-O0376: add the JointCbCr control flag in SPS
#define JVET_O0472_LFNST_SIGNALLING_LAST_SCAN_POS 1 // JVET-O0472: LFNST index signalling depends on the position of last significant coefficient
#define FIX_DB_MAX_TRANSFORM_SIZE 1
......
......@@ -2641,8 +2641,8 @@ void CABACReader::cu_chroma_qp_offset( CodingUnit& cu )
#if JVET_O0105_ICT
void CABACReader::joint_cb_cr( TransformUnit& tu, const int cbfMask )
{
#if JVET_O0376_SPS_JCCR_FLAG
if ( !tu.cu->slice->getSPS()->getJCCREnabledFlag() )
#if JVET_O0376_SPS_JOINTCBCR_FLAG
if ( !tu.cu->slice->getSPS()->getJointCbCrEnabledFlag() )
{
return;
}
......
......@@ -1238,8 +1238,8 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS)
READ_FLAG(uiCode, "sps_bdpcm_enabled_flag"); pcSPS->setBDPCMEnabledFlag(uiCode ? true : false);
}
#endif
#if JVET_O0376_SPS_JCCR_FLAG
READ_FLAG( uiCode, "sps_joint_cbcr_enabled_flag"); pcSPS->setJCCREnabledFlag (uiCode ? true : false);
#if JVET_O0376_SPS_JOINTCBCR_FLAG
READ_FLAG( uiCode, "sps_joint_cbcr_enabled_flag"); pcSPS->setJointCbCrEnabledFlag (uiCode ? true : false);
#endif
if( pcSPS->getCTUSize() + 2*(1 << pcSPS->getLog2MinCodingBlockSize()) <= pcSPS->getPicWidthInLumaSamples() )
{
......@@ -2078,8 +2078,8 @@ void HLSyntaxReader::parseSliceHeader (Slice* pcSlice, ParameterSetManager *para
}
}
#if JVET_O0105_ICT
#if JVET_O0376_SPS_JCCR_FLAG
if (sps->getJCCREnabledFlag())
#if JVET_O0376_SPS_JOINTCBCR_FLAG
if (sps->getJointCbCrEnabledFlag())
{
READ_FLAG( uiCode, "slice_joint_cbcr_sign_flag" ); pcSlice->setJointCbCrSignFlag(uiCode != 0);
}
......@@ -2122,8 +2122,8 @@ void HLSyntaxReader::parseSliceHeader (Slice* pcSlice, ParameterSetManager *para
CHECK( pcSlice->getSliceChromaQpDelta(COMPONENT_Cr) > 12, "Invalid chroma QP offset" );
CHECK( (pps->getQpOffset(COMPONENT_Cr) + pcSlice->getSliceChromaQpDelta(COMPONENT_Cr)) < -12, "Invalid chroma QP offset" );
CHECK( (pps->getQpOffset(COMPONENT_Cr) + pcSlice->getSliceChromaQpDelta(COMPONENT_Cr)) > 12, "Invalid chroma QP offset" );
#if JVET_O0376_SPS_JCCR_FLAG
if (sps->getJCCREnabledFlag())
#if JVET_O0376_SPS_JOINTCBCR_FLAG
if (sps->getJointCbCrEnabledFlag())
{
READ_SVLC(iCode, "slice_joint_cbcr_qp_offset" );
pcSlice->setSliceChromaQpDelta(JOINT_CbCr, iCode);
......@@ -2332,8 +2332,8 @@ void HLSyntaxReader::parseConstraintInfo(ConstraintInfo *cinfo)
READ_FLAG(symbol, "no_partition_constraints_override_constraint_flag"); cinfo->setNoPartitionConstraintsOverrideConstraintFlag(symbol > 0 ? true : false);
READ_FLAG(symbol, "no_sao_constraint_flag"); cinfo->setNoSaoConstraintFlag(symbol > 0 ? true : false);
READ_FLAG(symbol, "no_alf_constraint_flag"); cinfo->setNoAlfConstraintFlag(symbol > 0 ? true : false);
#if JVET_O0376_SPS_JCCR_FLAG
READ_FLAG(symbol, "no_joint_cbcr_constraint_flag"); cinfo->setNoJccrConstraintFlag(symbol > 0 ? true : false);
#if JVET_O0376_SPS_JOINTCBCR_FLAG
READ_FLAG(symbol, "no_joint_cbcr_constraint_flag"); cinfo->setNoJointCbCrConstraintFlag(symbol > 0 ? true : false);
#endif
READ_FLAG(symbol, "no_pcm_constraint_flag"); cinfo->setNoPcmConstraintFlag(symbol > 0 ? true : false);
......
......@@ -2514,8 +2514,8 @@ void CABACWriter::cu_chroma_qp_offset( const CodingUnit& cu )
#if JVET_O0105_ICT
void CABACWriter::joint_cb_cr( const TransformUnit& tu, const int cbfMask )
{
#if JVET_O0376_SPS_JCCR_FLAG
if ( !tu.cu->slice->getSPS()->getJCCREnabledFlag() )
#if JVET_O0376_SPS_JOINTCBCR_FLAG
if ( !tu.cu->slice->getSPS()->getJointCbCrEnabledFlag() )
{
return;
}
......
......@@ -299,8 +299,8 @@ protected:
bool m_MMVD;
int m_MmvdDisNum;
bool m_RdpcmMode;
#if JVET_O0376_SPS_JCCR_FLAG
bool m_JccrMode;
#if JVET_O0376_SPS_JOINTCBCR_FLAG
bool m_JointCbCrMode;
#endif
unsigned m_IBCMode;
unsigned m_IBCLocalSearchRangeX;
......@@ -876,9 +876,9 @@ public:
int getMmvdDisNum () const { return m_MmvdDisNum; }
void setRDPCM ( bool b ) { m_RdpcmMode = b; }
bool getRDPCM () const { return m_RdpcmMode; }
#if JVET_O0376_SPS_JCCR_FLAG
void setJCCR (bool b) { m_JccrMode = b; }
bool getJCCR () const { return m_JccrMode; }
#if JVET_O0376_SPS_JOINTCBCR_FLAG
void setJointCbCr ( bool b ) { m_JointCbCrMode = b; }
bool getJointCbCr() const { return m_JointCbCrMode; }
#endif
void setIBCMode (unsigned n) { m_IBCMode = n; }
unsigned getIBCMode () const { return m_IBCMode; }
......
......@@ -2092,8 +2092,8 @@ void EncGOP::compressGOP( int iPOCLast, int iNumPicRcvd, PicList& rcListPic,
// overwrite chroma qp offset for dual tree
pcSlice->setSliceChromaQpDelta(COMPONENT_Cb, m_pcCfg->getChromaCbQpOffsetDualTree());
pcSlice->setSliceChromaQpDelta(COMPONENT_Cr, m_pcCfg->getChromaCrQpOffsetDualTree());
#if JVET_O0376_SPS_JCCR_FLAG
if (pcSlice->getSPS()->getJCCREnabledFlag())
#if JVET_O0376_SPS_JOINTCBCR_FLAG
if (pcSlice->getSPS()->getJointCbCrEnabledFlag())
{
pcSlice->setSliceChromaQpDelta(JOINT_CbCr, m_pcCfg->getChromaCbCrQpOffsetDualTree());
}
......
......@@ -980,8 +980,8 @@ void EncLib::xInitSPS(SPS &sps)
}
sps.setSAOEnabledFlag( m_bUseSAO );
#if JVET_O0376_SPS_JCCR_FLAG
sps.setJCCREnabledFlag( m_JccrMode );
#if JVET_O0376_SPS_JOINTCBCR_FLAG
sps.setJointCbCrEnabledFlag( m_JointCbCrMode );
#endif
sps.setMaxTLayers( m_maxTempLayer );
sps.setTemporalIdNestingFlag( ( m_maxTempLayer == 1 ) ? true : false );
......
......@@ -1554,8 +1554,8 @@ void EncSlice::encodeCtus( Picture* pcPic, const bool bCompressEntireSlice, cons
checkDisFracMmvd( pcPic, startCtuTsAddr, boundingCtuTsAddr );
#if JVET_O0105_ICT
#if JVET_O0376_SPS_JCCR_FLAG
if (pcSlice->getSPS()->getJCCREnabledFlag())
#if JVET_O0376_SPS_JOINTCBCR_FLAG
if (pcSlice->getSPS()->getJointCbCrEnabledFlag())
{
setJointCbCrModes(cs, Position(0, 0), cs.area.lumaSize());
}
......
......@@ -6725,8 +6725,8 @@ void InterSearch::xEstimateInterResidualQT(CodingStructure &cs, Partitioner &par
m_pcTrQuant->setLambda(m_pcTrQuant->getLambda() / (cRescale*cRescale));
}
#if JVET_O0105_ICT
#if JVET_O0376_SPS_JCCR_FLAG
if ( sps.getJCCREnabledFlag() && isChroma( compID ) && ( tu.cu->cs->slice->getSliceQp() > 18 ) )
#if JVET_O0376_SPS_JOINTCBCR_FLAG
if ( sps.getJointCbCrEnabledFlag() && isChroma( compID ) && ( tu.cu->cs->slice->getSliceQp() > 18 ) )
{
m_pcTrQuant->setLambda( 1.05 * m_pcTrQuant->getLambda() );
}
......@@ -6937,8 +6937,8 @@ void InterSearch::xEstimateInterResidualQT(CodingStructure &cs, Partitioner &par
{
const CompArea& cbArea = tu.blocks[COMPONENT_Cb];
const CompArea& crArea = tu.blocks[COMPONENT_Cr];
#if JVET_O0376_SPS_JCCR_FLAG
bool checkJointCbCr = (sps.getJCCREnabledFlag()) && (!tu.noResidual) && (TU::getCbf(tu, COMPONENT_Cb) || TU::getCbf(tu, COMPONENT_Cr));
#if JVET_O0376_SPS_JOINTCBCR_FLAG
bool checkJointCbCr = (sps.getJointCbCrEnabledFlag()) && (!tu.noResidual) && (TU::getCbf(tu, COMPONENT_Cb) || TU::getCbf(tu, COMPONENT_Cr));
#else
bool checkJointCbCr = !tu.noResidual && (TU::getCbf(tu, COMPONENT_Cb) || TU::getCbf(tu, COMPONENT_Cr));
#endif
......@@ -6999,7 +6999,7 @@ void InterSearch::xEstimateInterResidualQT(CodingStructure &cs, Partitioner &par
const int absIct = abs( TU::getICTMode(tu) );
const double lfact = ( absIct == 1 || absIct == 3 ? 0.8 : 0.5 );
m_pcTrQuant->setLambda( lfact * m_pcTrQuant->getLambda() );
#if JVET_O0376_SPS_JCCR_FLAG
#if JVET_O0376_SPS_JOINTCBCR_FLAG
if ( checkJointCbCr && (tu.cu->cs->slice->getSliceQp() > 18))
{
m_pcTrQuant->setLambda( 1.05 * m_pcTrQuant->getLambda() );
......
......@@ -1985,8 +1985,8 @@ void IntraSearch::xIntraCodingTUBlock(TransformUnit &tu, const ComponentID &comp
#endif
}
#if JVET_O0105_ICT
#if JVET_O0376_SPS_JCCR_FLAG
if ( sps.getJCCREnabledFlag() && isChroma(compID) && (tu.cu->cs->slice->getSliceQp() > 18) )
#if JVET_O0376_SPS_JOINTCBCR_FLAG
if ( sps.getJointCbCrEnabledFlag() && isChroma(compID) && (tu.cu->cs->slice->getSliceQp() > 18) )
{
m_pcTrQuant->setLambda( 1.3 * m_pcTrQuant->getLambda() );
}
......@@ -1997,8 +1997,8 @@ void IntraSearch::xIntraCodingTUBlock(TransformUnit &tu, const ComponentID &comp
}
#endif
#else
#if JVET_O0376_SPS_JCCR_FLAG
else if ( sps.getJCCREnabledFlag() && isChroma(compID) && (tu.cu->cs->slice->getSliceQp() > 18) )
#if JVET_O0376_SPS_JOINTCBCR_FLAG
else if ( sps.getJointCbCrEnabledFlag() && isChroma(compID) && (tu.cu->cs->slice->getSliceQp() > 18) )
#else
else if ( isChroma(compID) && tu.cu->cs->slice->getSliceQp() > 18 )
#endif
......@@ -2977,8 +2977,8 @@ ChromaCbfs IntraSearch::xRecurIntraChromaCodingQT( CodingStructure &cs, Partitio
#if JVET_O0105_ICT
bool lastIsBest = false;
std::vector<int> jointCbfMasksToTest;
#if JVET_O0376_SPS_JCCR_FLAG
if ( cs.sps->getJCCREnabledFlag() && (TU::getCbf(tmpTU, COMPONENT_Cb) || TU::getCbf(tmpTU, COMPONENT_Cr)))
#if JVET_O0376_SPS_JOINTCBCR_FLAG
if ( cs.sps->getJointCbCrEnabledFlag() && (TU::getCbf(tmpTU, COMPONENT_Cb) || TU::getCbf(tmpTU, COMPONENT_Cr)))
{
jointCbfMasksToTest = m_pcTrQuant->selectICTCandidates(currTU, orgResiCb, orgResiCr);
}
......
......@@ -831,8 +831,8 @@ void HLSWriter::codeSPS( const SPS* pcSPS )
WRITE_FLAG(pcSPS->getBDPCMEnabledFlag() ? 1 : 0, "sps_bdpcm_enabled_flag");
}
#endif
#if JVET_O0376_SPS_JCCR_FLAG
WRITE_FLAG( pcSPS->getJCCREnabledFlag(), "sps_joint_cbcr_enabled_flag");
#if JVET_O0376_SPS_JOINTCBCR_FLAG
WRITE_FLAG( pcSPS->getJointCbCrEnabledFlag(), "sps_joint_cbcr_enabled_flag");
#endif
if( pcSPS->getCTUSize() + 2*(1 << pcSPS->getLog2MinCodingBlockSize()) <= pcSPS->getPicWidthInLumaSamples() )
{
......@@ -1439,8 +1439,8 @@ void HLSWriter::codeSliceHeader ( Slice* pcSlice )
}
}
#if JVET_O0105_ICT
#if JVET_O0376_SPS_JCCR_FLAG
if (pcSlice->getSPS()->getJCCREnabledFlag())
#if JVET_O0376_SPS_JOINTCBCR_FLAG
if (pcSlice->getSPS()->getJointCbCrEnabledFlag())
{
WRITE_FLAG( pcSlice->getJointCbCrSignFlag() ? 1 : 0, "slice_joint_cbcr_sign_flag");
}
......@@ -1463,8 +1463,8 @@ void HLSWriter::codeSliceHeader ( Slice* pcSlice )
if (numberValidComponents > COMPONENT_Cr)
{
WRITE_SVLC( pcSlice->getSliceChromaQpDelta(COMPONENT_Cr), "slice_cr_qp_offset" );
#if JVET_O0376_SPS_JCCR_FLAG
if (pcSlice->getSPS()->getJCCREnabledFlag())
#if JVET_O0376_SPS_JOINTCBCR_FLAG
if (pcSlice->getSPS()->getJointCbCrEnabledFlag())
{
WRITE_SVLC( pcSlice->getSliceChromaQpDelta(JOINT_CbCr), "slice_joint_cbcr_qp_offset");
}
......@@ -1551,8 +1551,8 @@ void HLSWriter::codeConstraintInfo ( const ConstraintInfo* cinfo )
WRITE_FLAG(cinfo->getNoPartitionConstraintsOverrideConstraintFlag() ? 1 : 0, "no_partition_constraints_override_constraint_flag");
WRITE_FLAG(cinfo->getNoSaoConstraintFlag() ? 1 : 0, "no_sao_constraint_flag");
WRITE_FLAG(cinfo->getNoAlfConstraintFlag() ? 1 : 0, "no_alf_constraint_flag");
#if JVET_O0376_SPS_JCCR_FLAG
WRITE_FLAG(cinfo->getNoJccrConstraintFlag() ? 1 : 0, "no_joint_cbcr_constraint_flag");
#if JVET_O0376_SPS_JOINTCBCR_FLAG
WRITE_FLAG(cinfo->getNoJointCbCrConstraintFlag() ? 1 : 0, "no_joint_cbcr_constraint_flag");
#endif
WRITE_FLAG(cinfo->getNoPcmConstraintFlag() ? 1 : 0, "no_pcm_constraint_flag");
WRITE_FLAG(cinfo->getNoRefWraparoundConstraintFlag() ? 1 : 0, "no_ref_wraparound_constraint_flag");
......
Supports Markdown
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