Opened 6 years ago
Closed 6 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 6 years ago by nanhu
comment:2 Changed 6 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.
The fix looks correct.
To be specific, equation (7-65) could be fixed as
if(i == 0)
else
(7-74) could be fixed as
if(i == 0)
else
(7-78) could be fixed as
if(i == 0)
else
(7-82) could be fixed as
if(i == 0)
else