Opened 5 months ago
Closed 3 months ago
#1638 closed defect (fixed)
Incorrect sps_qtbtt_dual_tree_intra_flag value in TREE_C_HHI
Reported by: | adamjw | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | Conformance | Version: | |
Keywords: | Cc: | ksuehring, fbossen, jvet@… |
Description
The spec states: "sps_log2_diff_max_bt_min_qt_intra_slice_luma... The value of sps_log2_diff_max_bt_min_qt_intra_slice_luma shall be in the range of 0 to CtbLog2SizeY − MinQtLog2SizeIntraY, inclusive. When sps_log2_diff_max_bt_min_qt_intra_slice_luma is not present, the value of sps_log2_diff_max_bt_min_qt_intra_slice_luma is inferred to be equal to 0."
In TREE_C, CTU of 128 is always used. For that specific segment of the sequence minQtSize of 16 is used for intra, and maximum BT size of 128. This implies no dual I tree is used, because for CTU size 128 and dual I tree, an implicit QT split is used, making maximum BT size of 128 obsolete. Still, dual I tree is still used.
Proposed fix is to transcode the sequence and clip sps_log2_diff_max_bt_min_qt_intra_slice_luma to a maximal value that will not break the restriction. Since the too large value is otherwise ignored because of the implicit dual I tree split, all the remaining bitstream as well as the reconstruction hashes should be valid. Will try to provide an updated bitstream soon.
Change history (8)
comment:1 follow-up: ↓ 2 Changed 5 months ago by iole_moccagatta
comment:2 in reply to: ↑ 1 Changed 5 months ago by adamjw
Replying to iole_moccagatta:
The second one for sure. It is to be confirmed if the problem also occurs in any other SPS(s).
comment:3 follow-up: ↓ 4 Changed 5 months ago by iole_moccagatta
The value of the second SPS's sps_log2_diff_max_bt_min_qt_intra_slice_luma is 3. Which value are you proposing ?
comment:4 in reply to: ↑ 3 Changed 5 months ago by adamjw
I propose using 2. I hope this would not change the syntax or semantics of any other syntax element of this segment. Using any other value would change the syntax and or semantics of the split signaling, requiring full reencoding.
comment:5 follow-up: ↓ 6 Changed 5 months ago by iole_moccagatta
Thanks for the clarifications.
To make sure I understand: the rationale for this change is that under these conditions:
1) CTU=128
2) minQtSize = 16 for intra
3) dual Intra tree
an implicit QT split is done because of dual Intra tree.
Maximum BT after implicit QT split is 64, not 128.
Therefore
sps_log2_diff_max_bt_min_qt_intra_slice_luma = 3 (maximum BT = 128)
should be replaced by
sps_log2_diff_max_bt_min_qt_intra_slice_luma = 2 (maximum BT = 64)
Please confirm or correct.
comment:6 in reply to: ↑ 5 Changed 5 months ago by adamjw
I confirm that your understanding is correct. I will try and prepare an appropriate bitstream this week. I will than also be able to check if the rest of the bitstream is correct or possibly another SPS needs a similar fix.
comment:7 Changed 3 months ago by iole_moccagatta
The bitstream has been re-generated and uploaded to https://www.itu.int/wftp3/av-arch/jvet-site/bitstream_exchange/VVC2ndEd_regenerated/.
comment:8 Changed 3 months ago by iole_moccagatta
- Resolution set to fixed
- Status changed from new to closed
TREE_C consists of multiple streams which update the SPS coding tree settings, so the SPSs have different values of sps_log2_diff_max_bt_min_qt_intra_slice_luma. Which SPS(s) are you proposing to modify ?