Opened 12 years ago

Last modified 12 years ago

#929 closed defect

Deblocking filter boundary strength derivation bug (encoder) — at Version 2

Reported by: mcoban Owned by:
Priority: minor Milestone: HM-10.0
Component: HM Version: HM-9.1
Keywords: Cc: fbossen, ksuehring, davidf, jct-vc@…

Description (last modified by ksuehring)

Unitialized motion vector information is used during the boundary strength derivation on the encoder side leading to encoder/decoder mismatches. The xGetBoundaryStrengthSingle() function assumes the motion vectors of refIdx < 0 blocks have the value 0.

e.g.

xGetBoundaryStrengthSingle()
.....

        if ( ((piRefP0==piRefQ0)&&(piRefP1==piRefQ1)) || ((piRefP0==piRefQ1)&&(piRefP1==piRefQ0)) )
        {
          uiBs = 0;
          if ( piRefP0 != piRefP1 )   // Different L0 & L1
          {
            if ( piRefP0 == piRefQ0 )
            {
              pcMvP0 -= pcMvQ0;   pcMvP1 -= pcMvQ1;
              uiBs = (pcMvP0.getAbsHor() >= 4) | (pcMvP0.getAbsVer() >= 4) |
              (pcMvP1.getAbsHor() >= 4) | (pcMvP1.getAbsVer() >= 4);

.....

If piRefP1==piRefQ1==NULL and piRefP0 == piRefQ0 && piRefP0 != NULL, motion vector information of P1 partition is used in uiBs derivation.

following patch should address the issue

Change History (3)

comment:1 Changed 12 years ago by DefaultCC Plugin

  • Cc fbossen ksuehring davidf jct-vc@… added

Changed 12 years ago by mcoban

comment:2 Changed 12 years ago by ksuehring

  • Description modified (diff)
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)
  • Muhammed Coban(Reporter)