Opened 4 weeks ago
#1648 new defect
[misalignment] on use of sps_chroma_horizontal/vertical_collocated_flag
Reported by: | hmjang | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | VTM | Version: | |
Keywords: | Cc: | ksuehring, XiangLi, fbossen, jvet@… |
Description
SPEC subclause 8.5.6.3.1
sps level chroma phase information is used to derive pixel position inside of reference picture for motion compensation.
during this process, it is written that information is from SPS which current picture refer to.
addX = sps_chroma_horizontal_collocated_flag ? 0 : 8 * ( scalingRatio[ 0 ] − ( 1 << 14 ) ) (903)
addY = sps_chroma_vertical_collocated_flag ? 0 : 8 * ( scalingRatio[ 1 ] − ( 1 << 14 ) ) (904)
but in the VTM, those information is from SPS which reference picture is refer to.
int addX = isLuma(compID) ? 0 : int(1 - refPic->cs->sps->getHorCollocatedChromaFlag()) * 8 * (scalingRatio.x - SCALE_1X.x);
int addY = isLuma(compID) ? 0 : int(1 - refPic->cs->sps->getVerCollocatedChromaFlag()) * 8 * (scalingRatio.y - SCALE_1X.y);
in case of single layer, SPS information is same between reference picture and current picture but in the multilayer case, each CLVS can refer own SPS. it means those information can be different between reference picture and current picture.
so VTM should be fixed to use it from current picture's SPS.