Opened 4 years ago
Closed 4 years ago
#954 closed defect (invalid)
Issue on lmcsCW value range
Reported by: | abe.kiyo | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | spec | Version: | |
Keywords: | Cc: | ksuehring, bbross, XiangLi, fbossen, jvet@… |
Description
In 7.4.3.20 Luma mapping with chroma scaling data semantics, there is the following description.
lmcs_delta_sign_cw_flag[ i ] specifies the sign of the variable lmcsDeltaCW[ i ] as follows:
...
The variable lmcsCW[ i ] is derived as follows:
– For i = 0.. lmcs_min_bin_idx − 1, lmcsCW[ i ] is set equal 0.
– For i = lmcs_min_bin_idx..LmcsMaxBinIdx, the following applies:
lmcsCW[ i ] = OrgCW + lmcsDeltaCW[ i ]
The value of lmcsCW[ i ] shall be in the range of OrgCW >> 3 to ( OrgCW << 3 ) − 1, inclusive.
– For i = LmcsMaxBinIdx + 1..15, lmcsCW[ i ] is set equal 0.
...
However, lmcsCW[ i ] can be equal to 0 when LmcsPivot[ i ] is a multiple of 1 << ( BitDepth − 5 ).
So the red sentence should be modify as follows (align to the description of lmcs_delta_sign_crs_flag);
It is a requirement of bitstream conformance that, when lmcsCW[ i ] is not equal to 0, lmcsCW[ i ] shall be in the range of ( OrgCW >> 3 ) to ( ( OrgCW << 3 ) − 1 ), inclusive.
Change history (6)
comment:1 Changed 4 years ago by taoranlu
comment:2 Changed 4 years ago by fbossen
This doesn't look editorial to me.
comment:3 Changed 4 years ago by abe.kiyo
There is the following constraint in the semantics of lmcs_delta_sign_cw_flag as well.
It is a requirement of bitstream conformance that, for i = lmcs_min_bin_idx..LmcsMaxBinIdx, when the value of LmcsPivot[ i ] is not a multiple of 1 << ( BitDepth − 5 ), the value of ( LmcsPivot[ i ] >> ( BitDepth − 5 ) ) shall not be equal to the value of ( LmcsPivot[ i + 1 ] >> ( BitDepth − 5 ) ).
lmcsCW[ i ] is defined as follows;
LmcsPivot[ i + 1 ] = LmcsPivot[ i ] + lmcsCW[ i ]
This constraint says that lmcsCW[ i ] can be equal to 0 when LmcsPivot[ i ] is a multiple of 1 << ( BitDepth − 5 ). Therefore, lmcsCW[ i ] can be in the range of ( OrgCW >> 3 ) to ( ( OrgCW << 3 ) − 1 ), and also it can be equal to 0. I believe it is a simple editorial error that just overlooked this condition.
comment:4 Changed 4 years ago by fbossen
@abe.kiyo I believe your logic is flawed. The constraint expresses a restriction. It invalidates certain combinations of LmcsPivot[i] values, not the other way around.
If I apply your logic, I could reason as follows:
The constraint says that lmcsCW[ i ] can be equal to any value k if LmcsPivot[i-1] is equal to a multiple of (1 << (BitDepth - 5)) minus k. Therefore lmcsCW[i] can be equal to any value in the range 0 to 8*OrgCW-1.
That doesn't seem right.
If this an editorial error, can you point to the meeting decision that says that lmcsCW[i] may take value 0 for any i, not just for i < lmcs_min_bin_idx and i > LmcsMaxBinIdx? Thanks.
comment:5 Changed 4 years ago by abe.kiyo
Thanks for detail explanation.
I have checked VVC text and VTM code again. As the result, I have noticed that I was misunderstanding this specification. Now, I agree with you. I'd like to withdraw this ticket.
Thanks.
comment:6 Changed 4 years ago by yk
- Resolution set to invalid
- Status changed from new to closed
OK, it seems that this ticket can be closed.
it seems like a reasonable editorial improvement.