Opened 5 months ago

Closed 3 months ago

#576 closed defect (fixed)

bCTUboundary condition for CCLM filtering incorrect

Reported by: bheng Owned by:
Priority: minor Milestone: VTM-7.1
Component: VTM Version: VTM-6.2
Keywords: Cc: ksuehring, XiangLi, fbossen, jvet@…

Description

The isFirstRowOfCtu condition is calculated in xGetLumaRecPixels( ), as shown below:

isFirstRowOfCtu = ((pu.block(COMPONENT_Cb).y)&(((pu.cs->sps)->getMaxCUWidth() >> 1) - 1)) == 0;

Here it uses the vertical position of the PU rather than the vertical position of the TU. For implicitly split TUs within a PU (due to maxTrafoSize), this can give the wrong result.

I believe something like the following would fix the problem.

isFirstRowOfCtu = ((chromaArea.y)&(((pu.cs->sps)->getMaxCUWidth() >> 1) - 1)) == 0;

Change history (2)

comment:1 Changed 5 months ago by chiaming

It is also incorrect for always shifting CTU size by 1 without considering chroma color format. I suggest to fix the issue by:

isFirstRowOfCtu = ( lumaArea.y & ((pu.cs->sps)->getCTUSize() - 1) ) == 0;

comment:2 Changed 3 months ago by fbossen

  • Milestone set to VTM-7.1
  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.