Opened 12 years ago

Closed 11 years ago

#743 closed technical change (wontfix)

Deblocking filter : neighboring information

Reported by: Jing-Jing Chung Owned by: bbross
Priority: major Milestone:
Component: Text Version: D8 (J1003) d7
Keywords: Cc: bbross, wjhan, jct-vc@…


In chapter : "derivation process of boundary filtering strength" of JCTVC-J1003_d7, we need to keep some prediction block informations to determine the bS of the current prediction block boundary : for example : prediction mode (inter/intra) , PartMode, motion vectors and reference pictures.

Let's consider the case where the current boundary is a prediction block boundary, and q0 and p0 are both coded with inter prediction.

For horizontal edge, if p0 and q0 do not belong to the same coding tree block (CTB), we may use another p0, not necessarily the top neighbor of q0
(See attached schematics):

"– When edgeType is equal to EDGE_HOR and yC + yDj − 1 is less than (( yC >> Log2CtbSizeY ) << Log2CtbSizeY), sample p0 = recPictureL[ xL ][ yC + yDj – 1 ] where xL is equal to ((( xC + xDi ) >> 3) << 3) + ((( xC + xDi ) >> 3) & 1) * 7"

My understanding is that, if we consider a deblocking process that works on picture CTB row basis, we only need to have from the top CTB row, at most 2 prediction block information per 16 pixel of horizontal boundary (instead of 4 at most). This is done to reduce bandwidth.

The current deblocking function has been optimized, in terms of bandwidth, for a CTB process in picture raster scan. This scan order is not the order used in the other functions of chapter 8.

The intention of our proposal is to reduce bandwidth when we are doing the deblocking filter in tile scan order (i.e. the same order as the other functions). The proposed idea is the same as the one used for horizontal edge.

Our proposal (to be done after the previous point on horizontal edge):

  • When edgeType is equal to EDGE_VER and TileId[ctbAddrTS_p0] is different from TileId[ctbAddrTS_q0], sample p0 = recPictureL[ xC + xDi - 1 ][ yL ]

where :
yL = ((( yC + yDj ) >> 3) << 3) + ((( yC + yDj ) >> 3) & 1) * 7
ctbAddrTS_p0 = ctbAddrRStoTS[ ctbAddrRS_p0 ]
ctbAddrRS_p0 = ((xC + xDi -1) >> Log2CtbSize) + ((yC + yDj) >> Log2CtbSize) * PicWidthInCtbsY
ctbAddrTS_q0 = ctbAddrRStoTS[ ctbAddrRS_q0 ]
ctbAddrRS_q0 = ((xC + xDi) >> Log2CtbSize) + ((yC + yDj) >> Log2CtbSize) * PicWidthInCtbsY

Note : this could also be done for slice vertical boundaries. Note that a slice vertical boundary that does not coincide with a tile boundary is only 1 CTB high.

Note 2 : In this proposal we do not take into account the potential quality loss on tile boundaries.

Attachments (1)

dbk_pb_info.jpg (47.3 KB) - added by Jing-Jing Chung 12 years ago.

Download all attachments as: .zip

Change History (5)

comment:1 Changed 12 years ago by DefaultCC Plugin

  • Cc bbross wjhan jct-vc@… added

Changed 12 years ago by Jing-Jing Chung

comment:2 Changed 11 years ago by bbross

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

comment:3 Changed 11 years ago by bbross

  • Resolution fixed deleted
  • Status changed from closed to new

comment:4 Changed 11 years ago by bbross

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

Since this is a technical change I close this ticket and defer the change to the next meeting.

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

  • Benjamin Bross(Owner, Subscriber, Participant)
  • jct-vc@…(Subscriber)
  • karl.sharman@…(Always)
  • Karsten Suehring(Always)
  • Woo-Jin Han(Subscriber)