Opened 4 years ago

Closed 4 years ago

#790 closed defect (fixed)

Log2 issue in subpicture signaling

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

Description

With the signaling of subpictures, we have
subpic_ctu_top_left_x[ i ] specifies horizontal position of top left CTU of i-th subpicture in unit of CtbSizeY. The length of the syntax element is Ceil( Log2( pic_width_max_in_luma_samples / CtbSizeY ) ) bits. When not present, the value of subpic_ctu_top_left_x[ i ] is inferred to be equal to 0.
subpic_ctu_top_left_y[ i ] specifies vertical position of top left CTU of i-th subpicture in unit of CtbSizeY. The length of the syntax element is Ceil( Log2( pic_height_max_in_luma_samples / CtbSizeY ) ) bits. When not present, the value of subpic_ctu_top_left_y[ i ] is inferred to be equal to 0.
subpic_width_minus1[ i ] plus 1 specifies the width of the i-th subpicture in units of CtbSizeY. The length of the syntax element is Ceil( Log2( pic_width_max_in_luma_samples / CtbSizeY ) ) bits. When not present, the value of subpic_width_minus1[ i ] is inferred to be equal to Ceil( pic_width_max_in_luma_samples / CtbSizeY ) − 1.
subpic_height_minus1[ i ] plus 1 specifies the height of the i-th subpicture in units of CtbSizeY. The length of the syntax element is Ceil( Log2( pic_height_max_in_luma_samples / CtbSizeY ) ) bits. When not present, the value of subpic_height_minus1[ i ] is inferred to be equal to Ceil( pic_height_max_in_luma_samples / CtbSizeY ) − 1.

pic_width_max_in_luma_samples / CtbSizeY is equal to zero if pic_width_max_in_luma_samples < CtbSizeY, which makes Log2() meaningless.

Log2( pic_width_max_in_luma_samples / CtbSizeY ) should be changed to Log2( (pic_width_max_in_luma_samples + CtbSizeY - 1)/ CtbSizeY )
Log2( pic_height_max_in_luma_samples / CtbSizeY ) should be changed to Log2( (pic_height_max_in_luma_samples + CtbSizeY - 1)/ CtbSizeY )

Change history (2)

comment:1 Changed 4 years ago by LIJINGYA

Yes I agree with the change. the code is also implemented in this way.
Just some add-on from Ticket #781, it would be more comprehensive to have:

Min(1, Log2( (pic_width_max_in_luma_samples + CtbSizeY - 1)/ CtbSizeY ))
Min(1, Log2( (pic_height_max_in_luma_samples + CtbSizeY - 1)/ CtbSizeY ))

to ensure that it covers cases of very small (<=128x128) frame sizes.

comment:2 Changed 4 years ago by vdrugeon

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

Solved by adoption of JVET-Q0787

Note: See TracTickets for help on using tickets.