Opened 9 years ago Closed 9 years ago #1194 closed defect (fixed)Difference in neighbor calculation for SAO in HM-11.1 and HM-12.0
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)Change History (6)comment:1 Changed 9 years ago by DefaultCC Plugin
Changed 9 years ago by gregorycomment:2 Changed 9 years ago by fbossen
Presumably the change that you mention happened between versions 12.0 and 12.1. Changed 9 years ago by gregory
Stream that shows difference on frame with POC=2 CTB=157, right upper coner on Cb plane comment:3 Changed 9 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 9 years ago by fbossen
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
|
Fix for CTB availability calculation