Opened 10 years ago Closed 10 years ago #70 closed defect (fixed)offsets not applied in TComDataCU::getBaseColCU()
Description
Function TComDataCU::getBaseColCU() is called by TComPic::copyUpsampledMvField() to scale motion vectors from a base layer to an enhancement layer. It contains the following lines of code to translate base layer locations to the higher layer. #if O0098_SCALED_REF_LAYER_ID Int leftStartL = baseColPic->getSlice(0)->getPPS()->getScaledRefLayerWindowForLayer(baseColPic->getSlice(0)->getVPS()->getRefLayerId(getSlice()->getLayerId(), refLayerIdc)).getWindowLeftOffset(); Int topStartL = baseColPic->getSlice(0)->getPPS()->getScaledRefLayerWindowForLayer(baseColPic->getSlice(0)->getVPS()->getRefLayerId(getSlice()->getLayerId(), refLayerIdc)).getWindowTopOffset(); .... #if REF_REGION_OFFSET const Window &windowRL = baseColPic->getSlice(0)->getPPS()->getRefLayerWindow(refLayerIdc); Int iBX = (((uiPelX - leftStartL)*g_posScalingFactor[refLayerIdc][0] + (1<<15)) >> 16) + windowRL.getWindowLeftOffset(); Int iBY = (((uiPelY - topStartL )*g_posScalingFactor[refLayerIdc][1] + (1<<15)) >> 16) + windowRL.getWindowTopOffset();
The four window offsets in these calculations are always valued zero, even when nonzero offsets are signaled in the appropriate PPS.
This affects conformance bitstream RESPHASE_SAMSUNG_0. This bitstream appears to have been encoded with all the offsets set to zero, since the SHM currently decodes the bitstream without visible errors. Unfortunately, this is not compliant with the spec (H.8.1.4.2). Attachments (1)Change history (4)comment:1 Changed 10 years ago by DefaultCC Plugin
Changed 10 years ago by tyamamotocomment:2 Changed 10 years ago by tyamamotocomment:3 Changed 10 years ago by Vadim
fixed with rev 1030 Note: See TracTickets for help on using tickets. | This list contains all users that will be notified about changes made to this ticket. These roles will be notified: Reporter, Owner, Subscriber, Participant
|
We need to fix to use "PPS of current picture" instead of "PPS of baseColPic". Attached patch seems to fix the problem.
It seems to me, we can't access current picture PPS from this function since it is called as a method of scaled-ref layer picture which does not have an associated PPS.