diff --git a/source/Lib/CommonLib/LoopFilter.cpp b/source/Lib/CommonLib/LoopFilter.cpp index d961f9146c5e50b3c3cd0e058295f28a2c234696..46d300d50d7be5c6d3ec34f9926d54ce9ecbe185 100644 --- a/source/Lib/CommonLib/LoopFilter.cpp +++ b/source/Lib/CommonLib/LoopFilter.cpp @@ -804,6 +804,16 @@ unsigned LoopFilter::xGetBoundaryStrengthSingle ( const CodingUnit& cu, const De // and now the pred if ( m_aapucBS[edgeDir][rasterIdx] != 0 && m_aapucBS[edgeDir][rasterIdx] != 3 ) return tmpBs; +#if JVET_R0437_BS_DERIVATION + if( chType == CHANNEL_TYPE_CHROMA ) + { + return tmpBs; + } + if( cuP.predMode != cuQ.predMode && chType == CHANNEL_TYPE_LUMA ) + { + return BsSet(1, COMPONENT_Y); + } +#endif const Position& lumaPosQ = Position{ localPos.x, localPos.y }; const Position lumaPosP = ( edgeDir == EDGE_VER ) ? lumaPosQ.offset( -1, 0 ) : lumaPosQ.offset( 0, -1 ); const MotionInfo& miQ = cuQ.cs->getMotionInfo( lumaPosQ ); diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index 4aceeb7a079025b2c6d2f4fe4da6c8adf11d4e4e..79d2f5367591a492b937d8494b1ca607e8c8b552 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -70,6 +70,8 @@ #define JVET_R0094_DPB_TID_OFFSET 1 // JVET-R0094: DPB output temporal ID offsets +#define JVET_R0437_BS_DERIVATION 1 // JVET-R0437: fix the bS derivation for palette mode + #define JVET_R0330_CRS_CLIP_REM 1 // JVET-R0330: Remove redundant clipping in chroma residual scaling factor derivation #define JVET_R0059_RPL_CLEANUP 1 // JVET-R0059 aspect 2: Condition the signalling of ltrp_in_header_flag[ listIdx ][ rplsIdx ].