Opened 6 years ago
Closed 5 years ago
#302 closed defect (fixed)
CBF flags syntax and semantics
Reported by: | chernyak | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | VVC D5 v8 |
Component: | spec | Version: | VVC D5 v7 |
Keywords: | Cc: | ksuehring, bbross, XiangLi, fbossen, jvet@… |
Description
CBF flags signalling in transform_unit has a typo in condition and doesn't cover implicit TU partitioning. Suggested modification:
if( ( IntraSubPartitionsSplitType == ISP_NO_SPLIT &&
!( cu_sbt_flag && ( ( subTuIndex = = 0 && cu_sbt_pos_flag ) | | ( subTuIndex = = 1 && !cu_sbt_pos_flag ) ) ) &&
((CuPredMode[ x0 ][ y0 ] == MODE_INTRA | | tu_cbf_cb[x0 ][ y0 ] | | tu_cbf_cr[ x0 ][ y0 ] ) | | (CbWidth[ x0 ][ y0 ] > MaxTbSizeY | | CbHeight[ x0 ][ y0 ] > MaxTbSizeY ) ) )
| |
((IntraSubPartitionsSplitType != ISP_NO_SPLIT) && ( subTuIndex < NumIntraSubPartitions − 1 | | InferTuCbfLuma ) ) )
Semantics part doesn't cover all possible cases of tu_cbf_luma deriving.
Suggested modification:
tu_cbf_luma[ x0 ][ y0 ] equal to 1 specifies that the luma transform block contains one or more transform coefficient levels not equal to 0. The array indices x0, y0 specify the location ( x0, y0 ) of the top-left luma sample of the considered transform block relative to the top-left luma sample of the picture.
When tu_cbf_luma[ x0 ][ y0 ] is not present in the current TU, its value is inferred as follows:
- If cu_sbt_flag is equal to 1 and any of the following conditions is true, tu_cbf_luma[ 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_cbf_luma[ x0 ][ y0 ] is inferred to be equal to 1.
The "current CU" to "current TU" change needs to be done also for the other TU cbfs as well.
Change history (2)
comment:1 Changed 5 years ago by bbross
- Milestone set to VVC D5 v8
comment:2 Changed 5 years ago by bbross
- Resolution set to fixed
- Status changed from new to closed
Fixed in D5 v8