Opened 5 weeks ago

Last modified 5 weeks ago

#576 new defect

bCTUboundary condition for CCLM filtering incorrect

Reported by: bheng Owned by:
Priority: minor Milestone:
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 (1)

comment:1 Changed 5 weeks 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;

Note: See TracTickets for help on using tickets.