Opened 4 years ago

Closed 4 years ago

#647 closed defect (fixed)

chroma LFNST index signalling

Reported by: ZhipinDeng Owned by:
Priority: minor Milestone:
Component: spec Version: VVC D7 vB
Keywords: Cc: ksuehring, XiangLi, fbossen, jvet@…

Description

In the section 7.3.9.5 Coding unit syntax, the signaling of LFNST index is dependent on the MIP flag. However, MIP is used only for luma component. Therefore, from the current text, the signaling of chroma LFNST index is dependent on the luma MIP flag.

In the software, the signaling of chroma LFNST index checks intra_mip_flag for a chroma block which is always set to 0. Thus there is a discrepancy between spec and software.

Suggest to align spec to software.

Current Spec:

if( Min( lfnstWidth, lfnstHeight ) >= 4 && sps_lfnst_enabled_flag = = 1 && CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_INTRA && ( !intra_mip_flag[ x0 ][ y0 ] | | Min( lfnstWidth, lfnstHeight ) >= 16 ) && Max( cbWidth, cbHeight ) <= MaxTbSizeY) {

if( ( IntraSubPartitionsSplitType != ISP_NO_SPLIT | | LfnstDcOnly = = 0 ) && LfnstZeroOutSigCoeffFlag = = 1 )

lfnst_idx

Suggested Spec:

if( Min( lfnstWidth, lfnstHeight ) >= 4 && sps_lfnst_enabled_flag = = 1 && CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_INTRA && ( treeType = = DUAL_TREE_CHROMA | | !intra_mip_flag[ x0 ][ y0 ] | | Min( lfnstWidth, lfnstHeight ) >= 16 ) && Max( cbWidth, cbHeight ) <= MaxTbSizeY) {

if( ( IntraSubPartitionsSplitType != ISP_NO_SPLIT | | LfnstDcOnly = = 0 ) && LfnstZeroOutSigCoeffFlag = = 1 )

lfnst_idx

Change history (4)

comment:1 Changed 4 years ago by bbross

I agree, and not gating the chroma lfnst idx on luma MIP flag in case of dual tree as done in VTM was intended.
In my reading of the spec, this would already be covered since in the chroma CU, mip_flag is not present in CU syntax and hence inferred to be equal to 0.
However, the suggested change makes it less ambiguous in the spec and it will be integrated in the next version.

comment:2 Changed 4 years ago by ZhipinDeng

Thanks Ben.

A typo is corrected as below (brackets deleted by mistake in previous version).

Suggested Spec:

if( Min( lfnstWidth, lfnstHeight ) >= 4 && sps_lfnst_enabled_flag = = 1 && CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_INTRA && ( treeType = = DUAL_TREE_CHROMA | | ( !intra_mip_flag[ x0 ][ y0 ] | | Min( lfnstWidth, lfnstHeight ) >= 16 ) ) && Max( cbWidth, cbHeight ) <= MaxTbSizeY) {

if( ( IntraSubPartitionsSplitType != ISP_NO_SPLIT | | LfnstDcOnly = = 0 ) && LfnstZeroOutSigCoeffFlag = = 1 )

lfnst_idx

comment:3 Changed 4 years ago by ksuehring

  • Component changed from VTM to spec

comment:4 Changed 4 years ago by bbross

  • Resolution set to fixed
  • Status changed from new to closed

Great, thanks! This will be fixed JVET-P2001-vC.

Note: See TracTickets for help on using tickets.