Opened 12 years ago

Last modified 12 years ago

#735 closed defect

HM8.0 bug in DBLK + lossless — at Initial Version

Reported by: madhukar Owned by:
Priority: minor Milestone: HM-8.1
Component: HM Version: HM-8.0
Keywords: Cc: fbossen, ksuehring, davidf, jct-vc@…

Description

Deblocking filter implmentation has a problem when both PCM and lossless is enabled at the same time.

In TComLoopFilter::xEdgeFilterLuma() (similar in TComLoopFilter::xEdgeFilterChroma()),

Bool bPCMFilter = (pcCU->getSlice()->getSPS()->getUsePCM() && pcCU->getSlice()->getSPS()->getPCMFilterDisableFlag())? true : false;
Bool bPartPNoFilter = false;
Bool bPartQNoFilter = false;
....
for ( UInt iIdx = 0; iIdx < uiNumParts; iIdx++ )
...

if (bPCMFilter)
{

Check if each of PUs is I_PCM
bPartPNoFilter = (pcCUP->getIPCMFlag(uiPartPIdx));
bPartQNoFilter = (pcCUQ->getIPCMFlag(uiPartQIdx));

}
check if each of PUs is lossless coded

bPartPNoFilter = bPartPNoFilter bPartQNoFilter = bPartQNoFilter
(pcCUP->isLosslessCoded(uiPartPIdx) );
(pcCUQ->isLosslessCoded(uiPartQIdx) );

...

When bPCMFilter = false (pcm_enabled_flag = 0 or pcm_loop_filter_disable_flag = 0), bPartPNoFilter (and bPartQNoFilter) is not reset in the for loop. Therefore, once it becomes true by a lossless-coded CU, it remains true for the rest of the loop. This disables the deblocking filter process for incorrect edges.

So, this part should be replaced with the following, for example (or equivalent code):

Check if each of PUs is I_PCM
bPartPNoFilter = bPCMFilter && (pcCUP->getIPCMFlag(uiPartPIdx));
Modified
bPartQNoFilter = bPCMFilter && (pcCUQ->getIPCMFlag(uiPartQIdx)); Modified
check if each of PUs is lossless coded

bPartPNoFilter = bPartPNoFilter bPartQNoFilter = bPartQNoFilter
(pcCUP->isLosslessCoded(uiPartPIdx) );
(pcCUQ->isLosslessCoded(uiPartQIdx) );

Change History (0)

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

  • David Flynn(Subscriber)
  • Frank Bossen(Subscriber)
  • jct-vc@…(Subscriber)
  • karl.sharman@…(Always)
  • Karsten Suehring(Subscriber, Participant, Always)
  • Keiichi Chono(Participant)
  • Madhukar Budagavi(Reporter)