Opened 10 years ago

Closed 10 years ago

#1194 closed defect (fixed)

Difference in neighbor calculation for SAO in HM-11.1 and HM-12.0

Reported by: gregory Owned by:
Priority: major Milestone: HM-13.0
Component: HM Version: HM-12.0
Keywords: sao Cc: fbossen, ksuehring, davidf, jct-vc@…

Description

Between HM-11.1 and HM-12.0 function setNDBFilterBlockBorderAvailability was renamed to deriveLoopFilterBoundaryAvailibility in a change set 3543. This change set is based on JCTVC-N0230 which is supposed to be an encoder-only enhancement and only a cleanup of decoder code. But the change also changes logic for determining neighbor CTB across slice boundaries for SAO filter in case of above-right and below-left neighborhood, and therefore affects how decoder applies SAO filter to a frame.

Previously value of flag slice_loop_filter_across_slices_enabled_flag was always taken from the later slice in the encoding order. But in HM-12.0 when slices for current and neighbor CTB are different, code compares slice start blocks in raster order. When tiles are enabled, CTB with bigger tile scan address may have a smaller raster scan address, and when values of slice_loop_filter_across_slices_enabled_flag are different, decoder may work differently than in HM-11.1 version.

Attached is a patch that fixes this behavior for decoder and uses tile scan.

If necessary I can attach streams that show that HM-12.x decoder behaves differently from previous versions.

Attachments (2)

sao.patch (2.2 KB) - added by gregory 10 years ago.
Fix for CTB availability calculation
saotest.h265 (229.5 KB) - added by gregory 10 years ago.
Stream that shows difference on frame with POC=2 CTB=157, right upper coner on Cb plane

Download all attachments as: .zip

Change History (6)

comment:1 Changed 10 years ago by DefaultCC Plugin

  • Cc fbossen ksuehring davidf jct-vc@… added

Changed 10 years ago by gregory

Fix for CTB availability calculation

comment:2 Changed 10 years ago by fbossen

Presumably the change that you mention happened between versions 12.0 and 12.1.
It would be very helpful to have the corresponding streams to verify the behavior. Could you please attach them to this ticket?

Changed 10 years ago by gregory

Stream that shows difference on frame with POC=2 CTB=157, right upper coner on Cb plane

comment:3 Changed 10 years ago by gregory

Yes change happened in revision 3543 by mediatek into branches/HM-12.0-dev/source. I attached a small reproducing stream. Bug may happen on any plane, not only in chroma.

comment:4 Changed 10 years ago by fbossen

  • Milestone changed from HM-12.1 to HM-13.0
  • Resolution set to fixed
  • Status changed from new to closed

Fixed in r3663

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