Opened 9 years ago

Closed 8 years ago

#1210 closed defect (invalid)

Mismatch between HM and Spec on clipping interpolated BiDir samples

Reported by: stevew Owned by:
Priority: minor Milestone: HM-13.0
Component: HM Version: HM-12.1
Keywords: mismatch, interpolation, bidir Cc: fbossen, ksuehring, davidf, jct-vc@…

Description

In TComInterpolationFilter::filter(), when isLast is true, the interpolated samples are clipped with the following code:

if ( isLast )
{

val = ( val < 0 ) ? 0 : val;
val = ( val > maxVal ) ? maxVal : val;

}

This clipping operation is not in "8.5.3.3.3 Fractional sample interpolation process". In rare cases, an interpolated sample can be negative prior to the above clipping, due to negative filter coefficients.

In the case of uni-directional prediction, the above clipping is innocuous, because there is equivalent clipping specified during uni-directional weighting.

In the case of bi-directional prediction, 2 interpolated samples are added and the result is clipped; see "8.5.3.3.4 Weighted sample prediction process", expressions 8-239 and 8-252. If either interpolated sample is negative, there can be a different result depending on if the interpolated sample was clipped in filter() or not. If an encoder "pre-clips" and a decoder does not, there can be drift.

Change History (2)

comment:1 Changed 9 years ago by DefaultCC Plugin

  • Cc fbossen ksuehring davidf jct-vc@… added

comment:2 Changed 8 years ago by fbossen

  • Resolution set to invalid
  • Status changed from new to closed

In the bi-directional case isLast is always be false (no clipping).

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, Participant)
  • jct-vc@…(Subscriber)
  • karl.sharman@…(Always)
  • Karsten Suehring(Subscriber, Always)
  • Stephen Wood(Reporter)