Opened 12 years ago

Closed 12 years ago

#735 closed defect (fixed)

HM8.0 bug in DBLK + lossless

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 (last modified by ksuehring)

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 || (pcCUP->isLosslessCoded(uiPartPIdx) );
        bPartQNoFilter = bPartQNoFilter || (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) );

Attachments (1)

HM-8.0-ticket735-fix.patch (2.7 KB) - added by kchono 12 years ago.

Download all attachments as: .zip

Change History (4)

comment:1 Changed 12 years ago by DefaultCC Plugin

  • Cc fbossen ksuehring davidf jct-vc@… added

Changed 12 years ago by kchono

comment:2 Changed 12 years ago by kchono

The issue is true and the bug fix is correct. Attachment is an equivalent bug fix patch to HM-8.0.

comment:3 Changed 12 years ago by ksuehring

  • Description modified (diff)
  • Milestone set to HM-8.1
  • Resolution set to fixed
  • Status changed from new to closed

The patch has been applied in r2777

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)