Opened 4 years ago

Closed 4 years ago

#1239 closed defect (fixed)

Sample value, sample, or sample location? (8.8.3.5)

Reported by: fbossen Owned by:
Priority: minor Milestone:
Component: spec Version: VVC D10 vE
Keywords: Cc: ksuehring, bbross, XiangLi, fbossen, jvet@…

Description

In 8.8.3.5, we have:

The sample values p0 and q0 are derived as follows:
– If edgeType is equal to EDGE_VER, p0 is set equal to recPicture[ xCb + xDi − 1 ][ yCb + yDj ] and q0 is set equal to recPicture[ xCb + xDi ][ yCb + yDj ].
– Otherwise (edgeType is equal to EDGE_HOR), p0 is set equal to recPicture[ xCb + xDi ][ yCb + yDj − 1 ] and q0 is set equal to recPicture[ xCb + xDi ][ yCb + yDj ].

Later there are checks such as:
– If cIdx is equal to 0 and both samples p0 and q0 are in a coding block with intra_bdpcm_luma_flag equal to 1, bS[ xDi ][ yDj ] is set equal to 0.
– Otherwise, if cIdx is greater than 0 and both samples p0 and q0 are in a coding block with intra_bdpcm_chroma_flag equal to 1, bS[ xDi ][ yDj ] is set equal to 0.

Are p0 and q0 samples or sample values? Or would it make more sense to use sample locations here, as for example below?

– If BdpcmFlag[ xp0 ][ yp0 ][ cIdx ] is equal to 1 and BdpcmFlag[ xq0 ][ yq0 ][ cIdx ] is equal to 1, bS[ xDi ][ yDj ] is set equal to 0.

where the following definitions would apply:

The luma sample locations ( xp0 , yp0 ) and ( xq0 , yq0 ) are derived as follows:
– ( xq0 , yq0 ) is set equal to ( ( xCb + xDi ) * scaleWidth , ( yCb + yDj ) * scaleHeight ).
– If edgeType is equal to EDGE_VER, ( xp0 , yp0 ) is set equal to ( xq0 − 1 , yq0 ).
– Otherwise (edgeType is equal to EDGE_HOR), ( xp0 , yp0 ) is set equal to ( xq0 , yq0 − 1 ).

Change history (4)

comment:1 Changed 4 years ago by jlchen

p0 and q0 are samples here. The suggestion is clearer for this aspect. However p0 and q0 are used many times in 8.8.3.5, quite a lot of modification would be need to handle all of them.

At this moment, I would preferred the solution as follows:

"The sample values p0 and q0 are derived as follows:" -> "The samples p0 and q0 are derived as follows:"

And the following changes can further done be top of that:

– If edgeType is equal to EDGE_VER, p0 is set as recPicture[ xCb + xDi − 1 ][ yCb + yDj ] and q0 is set as recPicture[ xCb + xDi ][ yCb + yDj ].
– Otherwise (edgeType is equal to EDGE_HOR), p0 is set as recPicture[ xCb + xDi ][ yCb + yDj − 1 ] and q0 is set as recPicture[ xCb + xDi ][ yCb + yDj ].

comment:2 Changed 4 years ago by fbossen

If you want to limit the changes, you could also say:

The samples p0 and q0 are defined as follows:

– If edgeType is equal to EDGE_VER, p0 is recPicture[ xCb + xDi − 1 ][ yCb + yDj ] and q0 is recPicture[ xCb + xDi ][ yCb + yDj ].
– Otherwise (edgeType is equal to EDGE_HOR), p0 is recPicture[ xCb + xDi ][ yCb + yDj − 1 ] and q0 is recPicture[ xCb + xDi ][ yCb + yDj ].

Essentially, we're just trying to say that p0 and q0 are shorthand notation for elements of recPicture.

comment:3 Changed 4 years ago by jlchen

Your suggestion looks good to me. I will integrate as it is, but still keep the ticket open. Maybe Ben can come out better words for the "shorthand notation"

comment:4 Changed 4 years ago by bbross

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

Looks sufficiently well to me and will be in vF as integrated by Jianle.

Note: See TracTickets for help on using tickets.