Opened 4 months ago

Last modified 4 weeks ago

#1635 new defect

Incorrect inference for tu_y_coded_flag

Reported by: peterderivaz Owned by:
Priority: minor Milestone: H.266/VVC v4
Component: spec Version: H.266/VVC v3
Keywords: Cc: ksuehring, bbross, XiangLi, fbossen, jvet@…

Description

tu_y_coded_flag is used in clause 8.8.3.5 to choose the boundary filtering strength used in the deblocking filter.

When tu_y_coded_flag is not present, the inference rules in clause 7.4.12.10 say:

When tu_y_coded_flag[ x0 ][ y0 ] is not present and treeType is not equal to DUAL_TREE_CHROMA, its value is inferred as follows:
– If cu_sbt_flag is equal to 1 and one of the following conditions is true, tu_y_coded_flag[ x0 ][ y0 ] is inferred to be equal to 0:
  – subTuIndex is equal to 0 and cu_sbt_pos_flag is equal to 1;
  – subTuIndex is equal to 1 and cu_sbt_pos_flag is equal to 0.
– Otherwise, tu_y_coded_flag[ x0 ][ y0 ] is inferred to be equal to 1.

I think this is missing some cases that should infer 0.

For example, if cu_coded_flag is equal to 0, then no transform_tree structure will be present, and tu_y_coded_flag will be inferred equal to 1 according to the spec. However, I believe the deblocking in the VTM works as if tu_y_coded_flag was inferred equal to 0 in this case.

Change history (1)

comment:1 Changed 4 weeks ago by bbross

  • Milestone set to H.266/VVC v4
  • Version set to H.266/VVC v3

Thanks for bringing that up. This should be fixed in v4 but I would like to make sure that this is the only missing case when inferring tu_y_coded_flag to be equal to 0.

Note: See TracTickets for help on using tickets.