Opened 12 years ago Closed 12 years ago #914 closed defect (fixed)The behavior of transform_skip_flag as 0 is not specified.
Description
In the latest HEVC spec, there is no specified behavior when transform_skip_flag is 0. We suggest the following semantics change.
Before:
transform_skip_enabled_flag equal to 1 specifies that transform_skip_flag may be present in the residual coding syntax. transform_skip_enabled_flag equal to 0 specifies that transform_skip_flag is not present in the residual coding syntax.
transform_skip_flag[ x0 ][ y0 ][ cIdx ] specifies whether a transform is applied to the associated transform block or not: 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. The array index cIdx specifies an indicator for the colour component; it is equal to 0 for luma, equal to 1 for Cb, and equal to 2 for Cr. transform_skip_flag[ x0 ][ y0 ][ cIdx ] equal to 1 specifies that no transform will be applied to the current transform block. When transform_skip_flag[ x0 ][ y0 ][ cIdx ] is not present, it is inferred to be equal to 0.
After:
transform_skip_flag[ x0 ][ y0 ][ cIdx ] specifies whether a transform is applied to the associated transform block or not: 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. The array index cIdx specifies an indicator for the colour component; it is equal to 0 for luma, equal to 1 for Cb, and equal to 2 for Cr. transform_skip_flag[ x0 ][ y0 ][ cIdx ] equal to 1 specifies that no transform will be applied to the current transform block. transform_skip_flag[ x0 ][ y0 ][ cIdx ] equal to 0 specifies that transform will be applied to the current transform block. When transform_skip_flag[ x0 ][ y0 ][ cIdx ] is not present, it is inferred to be equal to 0. Change History (6)comment:1 Changed 12 years ago by DefaultCC Plugin
comment:2 Changed 12 years ago by bbross
comment:3 Changed 12 years ago by bbross
comment:4 Changed 12 years ago by bbross
comment:5 Changed 12 years ago by bbrosscomment:6 Changed 12 years ago by bbross
Note: See
TracTickets for help on using
tickets. | This list contains all users that will be notified about changes made to this ticket. These roles will be notified: Reporter, Owner, Subscriber, Participant
|
"transform_skip_flag[ x0 ][ y0 ][ cIdx ] equal to 0 specifies that transform will be applied to the current transform block."
Thats not true because when one or more of the following conditions are true
transform_skip_flag is not present and therefore inferred to be equal to 0 but transform will not be applied because
I suggest the following to define the behavior when transform_skip_flag is equal to 0:
"transform_skip_flag[ x0 ][ y0 ][ cIdx ] equal to 0 specifies that the decision whether transform is applied to the current transform block or not depends on other syntax elements. "