diff --git a/cfg/encoder_intra_vtm.cfg b/cfg/encoder_intra_vtm.cfg index fb8fdd7d157e01960768fffd140a2eef64b079a1..9fe357d1596f37aeba8ab80ed6d11d684720bbc9 100644 --- a/cfg/encoder_intra_vtm.cfg +++ b/cfg/encoder_intra_vtm.cfg @@ -110,14 +110,15 @@ LMChroma : 1 # use CCLM only DepQuant : 1 IMV : 1 ALF : 1 -IBC : 0 # turned off in CTC +IBC : 0 # turned off in CTC AllowDisFracMMVD : 1 AffineAmvr : 0 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 -JointCbCr : 1 # JointCbCr: 0: disable, 1: enable +JointCbCr : 1 # joint coding of chroma residuals (if available): 0: disable, 1: enable + # Fast tools PBIntraFast : 1 ISPFast : 1 diff --git a/cfg/encoder_lowdelay_P_vtm.cfg b/cfg/encoder_lowdelay_P_vtm.cfg index 3fb15fda80aa4cda87b11573ce79a3b7bea4562c..9f5e3eeb2d02580acd71fc8bf67eecedb54a859f 100644 --- a/cfg/encoder_lowdelay_P_vtm.cfg +++ b/cfg/encoder_lowdelay_P_vtm.cfg @@ -132,7 +132,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 -JointCbCr : 1 # JointCbCr: 0: disable, 1: enable +JointCbCr : 1 # joint coding of chroma residuals (if available): 0: disable, 1: enable PROF : 1 # Fast tools diff --git a/cfg/encoder_lowdelay_vtm.cfg b/cfg/encoder_lowdelay_vtm.cfg index 518d2506f162ea6c05c48614ea15f841ec85749c..9cb4f366ce7d53ca0347049ead1ee031bf747cd2 100644 --- a/cfg/encoder_lowdelay_vtm.cfg +++ b/cfg/encoder_lowdelay_vtm.cfg @@ -125,8 +125,8 @@ LMChroma : 1 # use CCLM only DepQuant : 1 IMV : 1 ALF : 1 -GBi : 1 -GBiFast : 1 +GBi : 1 +GBiFast : 1 MHIntra : 1 Triangle : 1 IBC : 0 # turned off in CTC @@ -136,7 +136,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 -JointCbCr : 1 # JointCbCr: 0: disable, 1: enable +JointCbCr : 1 # joint coding of chroma residuals (if available): 0: disable, 1: enable PROF : 1 # Fast tools diff --git a/cfg/encoder_randomaccess_vtm.cfg b/cfg/encoder_randomaccess_vtm.cfg index f651f78b32351bcf8c4c350a03a3b4f9f303f7c5..c882cf980d698a6e1583a4a39addd437a7233b04 100644 --- a/cfg/encoder_randomaccess_vtm.cfg +++ b/cfg/encoder_randomaccess_vtm.cfg @@ -140,9 +140,9 @@ LMChroma : 1 # use CCLM only DepQuant : 1 IMV : 1 ALF : 1 -GBi : 1 +GBi : 1 GBiFast : 1 -BIO : 1 +BIO : 1 MHIntra : 1 Triangle : 1 IBC : 0 # turned off in CTC @@ -154,7 +154,7 @@ LMCSUpdateCtrl : 0 # LMCS model update control: 0:RA, 1:AI, 2 MIP : 1 DMVR : 1 SMVD : 1 -JointCbCr : 1 # JointCbCr: 0: disable, 1: enable +JointCbCr : 1 # joint coding of chroma residuals (if available): 0: disable, 1: enable PROF : 1 # Fast tools diff --git a/doc/software-manual.tex b/doc/software-manual.tex index 0e0a2124c6a844c27dbd152817e01c3f133268e8..a4510fbe7aa4f3db41a8e18137e4f0bcaa9ed60c 100644 --- a/doc/software-manual.tex +++ b/doc/software-manual.tex @@ -1882,7 +1882,7 @@ This option has no effect if either ISP or MTS are disabled. \Option{JointCbCr} & %\ShortOption{\None} & \Default{false} & -Enables or disables the joint coding of chroma residuals. +Enables or disables the joint coding of chroma residuals (if available, disabled if not). \\ \Option{SAO} & @@ -3417,6 +3417,11 @@ Specifies the colour space conversion to apply to 444 video. Permitted values ar If no value is specified, no colour space conversion is applied. The list may eventually also include RGB to YCbCr or YCgCo conversions.\\ \\ +\Option{PYUV} & +\Default{false} & +When true, output 10-bit and 12-bit YUV data as 5-byte and 3-byte (respectively) packed YUV data. See doc/pyuv_format.pdf for details. Ignored for interlaced output. +\\ + \Option{SEINoDisplay} & \Default{false} & When true, do not output frames for which there is an SEI NoDisplay message. diff --git a/source/App/EncoderApp/EncAppCfg.cpp b/source/App/EncoderApp/EncAppCfg.cpp index 044ef7517d1fa9770c46e2e7e2828c03a86103bb..397ee5cd633394e668c291c39ede7be09709efb3 100644 --- a/source/App/EncoderApp/EncAppCfg.cpp +++ b/source/App/EncoderApp/EncAppCfg.cpp @@ -1943,7 +1943,7 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) CHECK(cfg_qpInValCb.values.size() != cfg_qpOutValCb.values.size(), "Chroma QP table for Cb is incomplete."); CHECK(cfg_qpInValCr.values.size() != cfg_qpOutValCr.values.size(), "Chroma QP table for Cr is incomplete."); CHECK(cfg_qpInValCbCr.values.size() != cfg_qpOutValCbCr.values.size(), "Chroma QP table for CbCr is incomplete."); - if (m_useIdentityTableForNon420Chroma && m_chromaFormatIDC != CHROMA_420) + if (m_useIdentityTableForNon420Chroma && m_chromaFormatIDC != CHROMA_420) { m_chromaQpMappingTableParams.m_sameCQPTableForAllChromaFlag = true; cfg_qpInValCb.values = { 0 }; @@ -2589,7 +2589,7 @@ bool EncAppCfg::xCheckParameter() if (m_JointCbCrMode && (m_chromaFormatIDC == CHROMA_400)) { msg( WARNING, "****************************************************************************\n"); - msg( WARNING, "** WARNING: --JointCbCr has been disabled due to the chromaFormat is 400 **\n"); + msg( WARNING, "** WARNING: --JointCbCr has been disabled because the chromaFormat is 400 **\n"); msg( WARNING, "****************************************************************************\n"); m_JointCbCrMode = false; } @@ -2658,7 +2658,7 @@ bool EncAppCfg::xCheckParameter() #if JVET_O0455_IBC_MAX_MERGE_NUM xConfirmPara( m_maxNumIBCMergeCand < 1, "MaxNumIBCMergeCand must be 1 or greater." ); xConfirmPara( m_maxNumIBCMergeCand > IBC_MRG_MAX_NUM_CANDS, "MaxNumIBCMergeCand must be no more than IBC_MRG_MAX_NUM_CANDS." ); -#endif +#endif xConfirmPara( m_maxNumAffineMergeCand < 1, "MaxNumAffineMergeCand must be 1 or greater." ); xConfirmPara( m_maxNumAffineMergeCand > AFFINE_MRG_MAX_NUM_CANDS, "MaxNumAffineMergeCand must be no more than AFFINE_MRG_MAX_NUM_CANDS." ); if ( m_Affine == 0 ) diff --git a/source/Lib/EncoderLib/InterSearch.cpp b/source/Lib/EncoderLib/InterSearch.cpp index 89f15581bc13e0801824209a5e1f2edb645efe19..9a92d1c86b4fe830c53c22ee227f0756050ef4dd 100644 --- a/source/Lib/EncoderLib/InterSearch.cpp +++ b/source/Lib/EncoderLib/InterSearch.cpp @@ -2882,7 +2882,7 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) CHECK(iRefIdxBi[0]<0, "Invalid picture reference index"); CHECK(iRefIdxBi[1]<0, "Invalid picture reference index"); cu.cs->slice->getWpScaling(REF_PIC_LIST_0, iRefIdxBi[0], wp0); - cu.cs->slice->getWpScaling(REF_PIC_LIST_1, iRefIdxBi[1], wp1); + cu.cs->slice->getWpScaling(REF_PIC_LIST_1, iRefIdxBi[1], wp1); if ((wp0[COMPONENT_Y].bPresentFlag || wp0[COMPONENT_Cb].bPresentFlag || wp0[COMPONENT_Cr].bPresentFlag || wp1[COMPONENT_Y].bPresentFlag || wp1[COMPONENT_Cb].bPresentFlag || wp1[COMPONENT_Cr].bPresentFlag)) { @@ -3302,7 +3302,7 @@ Distortion InterSearch::xGetTemplateCost( const PredictionUnit& pu, const Picture* picRef = pu.cu->slice->getRefPic( eRefPicList, iRefIdx ); clipMv( cMvCand, pu.cu->lumaPos(), pu.cu->lumaSize(), *pu.cs->sps ); - + // prediction pattern const bool bi = pu.cu->slice->testWeightPred() && pu.cu->slice->getSliceType()==P_SLICE; @@ -7166,7 +7166,7 @@ void InterSearch::xEstimateInterResidualQT(CodingStructure &cs, Partitioner &par #if JVET_O0376_SPS_JOINTCBCR_FLAG if ( checkJointCbCr && (tu.cu->cs->slice->getSliceQp() > 18)) { - m_pcTrQuant->setLambda( 1.05 * m_pcTrQuant->getLambda() ); + m_pcTrQuant->setLambda( 1.05 * m_pcTrQuant->getLambda() ); } #else if ( tu.cu->cs->slice->getSliceQp() > 18 ) diff --git a/source/Lib/EncoderLib/IntraSearch.cpp b/source/Lib/EncoderLib/IntraSearch.cpp index d2ef38fb988cd2af308dc86298efe1295b8da969..ef347737a9590b836f559c0b5d1ec0846a115bdf 100644 --- a/source/Lib/EncoderLib/IntraSearch.cpp +++ b/source/Lib/EncoderLib/IntraSearch.cpp @@ -2738,7 +2738,7 @@ void IntraSearch::xIntraCodingTUBlock(TransformUnit &tu, const ComponentID &comp #if JVET_O0105_ICT if (isLuma(compID)) { -#endif +#else if (flag && slice.getLmcsChromaResidualScaleFlag() && isChroma(compID)) { const Area area = tu.Y().valid() ? tu.Y() : Area(recalcPosition(tu.chromaFormat, tu.chType, CHANNEL_TYPE_LUMA, tu.blocks[tu.chType].pos()), recalcSize(tu.chromaFormat, tu.chType, CHANNEL_TYPE_LUMA, tu.blocks[tu.chType].size())); @@ -2753,6 +2753,7 @@ void IntraSearch::xIntraCodingTUBlock(TransformUnit &tu, const ComponentID &comp #endif tu.setChromaAdj(adj); } +#endif //===== get residual signal ===== piResi.copyFrom( piOrg ); if (slice.getLmcsEnabledFlag() && m_pcReshape->getCTUFlag() && compID == COMPONENT_Y) @@ -2850,7 +2851,7 @@ void IntraSearch::xIntraCodingTUBlock(TransformUnit &tu, const ComponentID &comp { m_pcTrQuant->setLambda( 1.3 * m_pcTrQuant->getLambda() ); } - #endif +#endif #else #if JVET_O0376_SPS_JOINTCBCR_FLAG else if ( sps.getJointCbCrEnabledFlag() && isChroma(compID) && (tu.cu->cs->slice->getSliceQp() > 18) ) @@ -4234,7 +4235,7 @@ void IntraSearch::reduceHadCandList(static_vector<T, N>& candModeList, static_ve static_vector<double, FAST_UDI_MAX_RDMODE_NUM> tempCandCostList; const double minCost = candCostList[0]; bool keepOneMip = candModeList.size() > numModesForFullRD; - + int numConv = 0; int numMip = 0; for (int idx = 0; idx < candModeList.size() - (keepOneMip?0:1); idx++)