diff --git a/source/Lib/DecoderLib/CABACReader.cpp b/source/Lib/DecoderLib/CABACReader.cpp index cf13edaa88ef1ea952bbb240c7d368505b841a20..537a520bf2def6c65b73b35137910e6f71a9110e 100644 --- a/source/Lib/DecoderLib/CABACReader.cpp +++ b/source/Lib/DecoderLib/CABACReader.cpp @@ -1169,7 +1169,11 @@ PartSplit CABACReader::split_cu_mode( CodingStructure& cs, Partitioner &partitio bool disableBTV = false; bool disableBTH = false; +#if JVET_AI0136_ADAPTIVE_DUAL_TREE if (CABACReader::isLumaNonBoundaryCu(partitioner, cs.picture->lwidth(), cs.picture->lheight()) && (!(cs.slice->getProcessingIntraRegion() && cs.slice->getProcessingSeparateTrees()) || cs.slice->isIntra()) ) +#else + if (CABACReader::isLumaNonBoundaryCu(partitioner, cs.picture->lwidth(), cs.picture->lheight()) ) +#endif { if ((partitioner.currBtDepth == 0) && (partitioner.currArea().lwidth() == partitioner.currArea().lheight())) { @@ -1418,7 +1422,10 @@ PartSplit CABACReader::split_cu_mode( CodingStructure& cs, Partitioner &partitio #if JVET_AI0087_BTCUS_RESTRICTION if (CABACReader::isLumaNonBoundaryCu(partitioner, cs.picture->lwidth(), cs.picture->lheight()) - && (!(cs.slice->getProcessingIntraRegion() && cs.slice->getProcessingSeparateTrees()) || cs.slice->isIntra())) +#if JVET_AI0136_ADAPTIVE_DUAL_TREE + && (!(cs.slice->getProcessingIntraRegion() && cs.slice->getProcessingSeparateTrees()) || cs.slice->isIntra()) +#endif + ) { if ((partitioner.currBtDepth == 1) && (partitioner.currPartIdx() == 0)) { diff --git a/source/Lib/EncoderLib/CABACWriter.cpp b/source/Lib/EncoderLib/CABACWriter.cpp index 9052734e8de62b6bf543355c248039a9ebcf3417..d9ea28143cf9c92579490e8f4b102b3ca5422478 100644 --- a/source/Lib/EncoderLib/CABACWriter.cpp +++ b/source/Lib/EncoderLib/CABACWriter.cpp @@ -885,7 +885,11 @@ void CABACWriter::split_cu_mode( const PartSplit split, const CodingStructure& c bool disableBTV = false; bool disableBTH = false; - if (CABACWriter::isLumaNonBoundaryCu(partitioner, cs.picture->lwidth(), cs.picture->lheight()) && (!(cs.slice->getProcessingIntraRegion() && cs.slice->getProcessingSeparateTrees()) || cs.slice->isIntra()) ) + if (CABACWriter::isLumaNonBoundaryCu(partitioner, cs.picture->lwidth(), cs.picture->lheight()) +#if JVET_AI0136_ADAPTIVE_DUAL_TREE + && (!(cs.slice->getProcessingIntraRegion() && cs.slice->getProcessingSeparateTrees()) || cs.slice->isIntra()) +#endif + ) { if ((partitioner.currBtDepth == 0) && (partitioner.currArea().lwidth() == partitioner.currArea().lheight())) { @@ -1145,7 +1149,10 @@ void CABACWriter::split_cu_mode( const PartSplit split, const CodingStructure& c #if JVET_AI0087_BTCUS_RESTRICTION if (CABACWriter::isLumaNonBoundaryCu(partitioner, cs.picture->lwidth(), cs.picture->lheight()) - && (!(cs.slice->getProcessingIntraRegion() && cs.slice->getProcessingSeparateTrees()) || cs.slice->isIntra())) +#if JVET_AI0136_ADAPTIVE_DUAL_TREE + && (!(cs.slice->getProcessingIntraRegion() && cs.slice->getProcessingSeparateTrees()) || cs.slice->isIntra()) +#endif + ) { if (updatePartInfo && (partitioner.currBtDepth == 1) && (partitioner.currPartIdx() == 0)) { diff --git a/source/Lib/EncoderLib/EncCu.cpp b/source/Lib/EncoderLib/EncCu.cpp index a34dd5a8265cdaf5c3a2c19a77879dd0bade18a7..e9fa55e4456d21cedc0122697a4147d249e2eeef 100644 --- a/source/Lib/EncoderLib/EncCu.cpp +++ b/source/Lib/EncoderLib/EncCu.cpp @@ -896,8 +896,11 @@ bool EncCu::isLumaNonBoundaryCu(const Partitioner &partitioner, SizeType picWidt bool EncCu::xStoreRDcostandPredMode(CodingStructure *&tempCS, CodingStructure *&bestCS, Partitioner &partitioner, const EncTestMode &encTestMode, double lastModeBestCost) { if (EncCu::isLumaNonBoundaryCu(partitioner, bestCS->picture->lwidth(), bestCS->picture->lheight()) +#if JVET_AI0136_ADAPTIVE_DUAL_TREE && (!(bestCS->slice->getProcessingIntraRegion() && bestCS->slice->getProcessingSeparateTrees()) - || bestCS->slice->isIntra())) + || bestCS->slice->isIntra()) +#endif + ) { bool PrevbestCostisChangedtoNewBestCost = (lastModeBestCost != bestCS->cost); if ((partitioner.currBtDepth == 1) && (partitioner.currPartIdx() == 0) && PrevbestCostisChangedtoNewBestCost) @@ -2600,8 +2603,11 @@ void EncCu::xCheckModeSplit(CodingStructure *&tempCS, CodingStructure *&bestCS, #endif #if JVET_AI0087_BTCUS_RESTRICTION if (EncCu::isLumaNonBoundaryCu(partitioner, bestCS->picture->lwidth(), bestCS->picture->lheight()) +#if JVET_AI0136_ADAPTIVE_DUAL_TREE && (!(bestCS->slice->getProcessingIntraRegion() && bestCS->slice->getProcessingSeparateTrees()) - || bestCS->slice->isIntra())) + || bestCS->slice->isIntra()) +#endif + ) { if (partitioner.currPartLevel().split == CU_HORZ_SPLIT || partitioner.currPartLevel().split == CU_VERT_SPLIT) // BTH or BTV Case diff --git a/source/Lib/EncoderLib/EncModeCtrl.cpp b/source/Lib/EncoderLib/EncModeCtrl.cpp index d9ffc6e843dd11b5ff679a4f3771fa433b703594..0328a69b8e0fc213129b5ead2fc425216e19a169 100644 --- a/source/Lib/EncoderLib/EncModeCtrl.cpp +++ b/source/Lib/EncoderLib/EncModeCtrl.cpp @@ -1727,7 +1727,12 @@ void EncModeCtrlMTnoRQT::initCULevel( Partitioner &partitioner, const CodingStru #if JVET_AI0087_BTCUS_RESTRICTION bool disableBTV = false; bool disableBTH = false; + +#if JVET_AI0136_ADAPTIVE_DUAL_TREE if (EncModeCtrl::isLumaNonBoundaryCu(partitioner, cs.picture->lwidth(), cs.picture->lheight()) && (!(cs.slice->getProcessingIntraRegion() && cs.slice->getProcessingSeparateTrees()) || cs.slice->isIntra()) ) +#else + if (EncModeCtrl::isLumaNonBoundaryCu(partitioner, cs.picture->lwidth(), cs.picture->lheight()) ) +#endif { if ((partitioner.currBtDepth == 1) && (partitioner.currPartIdx() == 1)) {