Opened 5 years ago

Closed 5 years ago

#280 closed defect (fixed)

MIsmatch on expGoOrderY and expGoOrderC derivation between VTM and spec

Reported by: forayr Owned by:
Priority: minor Milestone:
Component: spec Version: VVC D5 v6
Keywords: Cc: ksuehring, bbross, XiangLi, fbossen, jvet@…

Description

In specification:

expGoOrderY[ i ] = alf_luma_min_eg_order_minus1 + 1 + alf_luma_eg_order_increase_flag[ i ]

In Vtm (kMinTab derivation):

  READ_UVLC( code, isChroma ? "alf_chroma_min_eg_order_minus1" : "alf_luma_min_eg_order_minus1" );

  int kMin = code + 1;
  static int kMinTab[MAX_NUM_ALF_COEFF];
  const int numFilters = isChroma ? 1 : alfSliceParam.numLumaFilters;
  short* coeff = isChroma ? alfSliceParam.chromaCoeff : alfSliceParam.lumaCoeff;
#if JVET_N0242_NON_LINEAR_ALF
  short* clipp = isChroma ? alfSliceParam.chromaClipp : alfSliceParam.lumaClipp;
#endif
  for( int idx = 0; idx < maxGolombIdx; idx++ )
  {
    READ_FLAG( code, isChroma ? "alf_chroma_eg_order_increase_flag"  : "alf_luma_eg_order_increase_flag" );
    CHECK( code > 1, "Wrong golomb_order_increase_flag" );
    kMinTab[idx] = kMin + code;
    kMin = kMinTab[idx];
  }

which corresponds in pseudo-code to:

if(i == 0)
  expGoOrderY[i] = alf_luma_min_eg_order_minus1 + 1 + alf_luma_eg_order_increase_flag;
else
  expGoOrderY[i] = expGoOrderY[ i-1 ] + alf_luma_eg_order_increase_flag;

Same issue for expGoOrderC

Change history (2)

comment:1 Changed 5 years ago by nanhu

The fix looks correct.
To be specific, equation (7-65) could be fixed as
if(i == 0)

expGoOrderY[i] = alf_luma_min_eg_order_minus1 + 1 + alf_luma_eg_order_increase_flag[ i ]

else

expGoOrderY[i] = expGoOrderY[ i-1 ] + alf_luma_eg_order_increase_flag[ i ]

(7-74) could be fixed as
if(i == 0)

kClipY[i] = alf_luma_clip_min_eg_order_minus1 + 1 + alf_luma_clip_eg_order_increase_flag[ i ]

else

kClipY[i] = kClipY[ i-1 ] + alf_luma_clip_eg_order_increase_flag[ i ]

(7-78) could be fixed as
if(i == 0)

expGoOrderC[i] = alf_chroma_min_eg_order_minus1 + 1 + alf_chroma_eg_order_increase_flag[ i ]

else

expGoOrderC[i] = expGoOrderC[ i-1 ] + alf_chroma_eg_order_increase_flag[ i ]

(7-82) could be fixed as
if(i == 0)

kClipC[i] = alf_chroma_clip_min_eg_order_minus1 + 1 + alf_chroma_clip_eg_order_increase_flag[ i ]

else

kClipC[i] = kClipC[ i-1 ] + alf_chroma_clip_eg_order_increase_flag[ i ]

comment:2 Changed 5 years ago by bbross

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

Fixed in D5 v7

Note: See TracTickets for help on using tickets.