Opened 5 years ago
Closed 5 years ago
#799 closed defect (fixed)
uninitialized DC for predicted scaling list when scaling_list_pred_id_delta equal to 0
Reported by: | fbarbier | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | VTM | Version: | VTM-7.1 |
Keywords: | Cc: | ksuehring, XiangLi, fbossen, jvet@… |
Description
In function HLSyntaxReader::decodeScalingList:4626
In a context of predicted scaling list,
When scalingListId == PredListId, the correct scaling list address is used calling scalingList->getScalingListDefaultAddress(scalingListId),
however,
the default DC value is missing.
This leads to reading an uninitialized value line 4626 :
predCoef = (PredListId >= SCALING_LIST_1D_START_16x16) scalingList->getScalingListDC(PredListId) : srcPred[0];
A fix is provided here:
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/merge_requests/1211
Change history (3)
comment:1 Changed 5 years ago by delagrangep
comment:2 Changed 5 years ago by fbarbier
Thanks. I prefer keeping the setScalingListDC(PredListId, SCALING_LIST_DC) for safety.
Indeed, if i locally use a condition similar to xCodeScalingList when setting deltasrc[64], i have no guarantee of preventing another read to uninitialized value (calling getScalingListDC).
Moreover, it better reflects the inference rule described in specification.
comment:3 Changed 5 years ago by fbarbier
- Resolution set to fixed
- Status changed from new to closed
Good catch thanks.
The fix seems ok, though personnally I would rather add a condition in the predCoef line (similar to xCodeScalingList when setting deltasrc[64]) than call setScalingListDC(PredListId, SCALING_LIST_DC).