Opened 4 years ago
Closed 4 years ago
#1298 closed enhancement (invalid)
Last rectangular slice in frame is not always locate in bottom right corner
Reported by: | kerzhy | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | VTM | Version: | VTM-9.3 |
Keywords: | slice partition | Cc: | ksuehring, XiangLi, fbossen, jvet@…, jvet@… |
Description
Due to spec, the last slice is not signalled, assuming it is located in the bottom right corner.
It is supposed to be located in bottom right corner due to this condition from spec:
tileX = tileIdx % NumTileColumns tileY = tileIdx / NumTileColumns if( i < pps_num_slices_in_pic_minus1 ) { sliceWidthInTiles[ i ] = pps_slice_width_in_tiles_minus1[ i ] + 1 sliceHeightInTiles[ i ] = pps_slice_height_in_tiles_minus1[ i ] + 1 } else { sliceWidthInTiles[ i ] = NumTileColumns − tileX sliceHeightInTiles[ i ] = NumTileRows − tileY NumSlicesInTile[ i ] = 1 }
However, if we use tile_delta_idx values and multiple slices in tile we can get situation where last slice will not be located in the bottom right corner.
Example:
- Red lines – slice boundaries
- Green lines – tile boundaries
Here we can see, that num_slices_in_pic_minus1 = 3, and current slice (slice with purple square) has index = 3 (so it is the last).
And bottom right slice has index 1:
So is it a bug or a feature that last slice supposed to be in the right bottom corner (by spec) but this condition can be violated and overcome in some cases?
P.S. Stream is in attachments.
Attachments (1)
Change history (4)
Changed 4 years ago by kerzhy
comment:1 Changed 4 years ago by kerzhy
- Keywords partition added; patrtition removed
comment:2 Changed 4 years ago by bheng
I believe such a stream is illegal based on the following requirement from Section 7.4.8 - Slice header semantics:
"The shapes of the slices of a picture shall be such that each CTU, when decoded, shall have its entire left boundary and entire top boundary consisting of a picture boundary or consisting of boundaries of previously decoded CTU(s)."
The syntax is not designed to prevent every possible illegal configuration, but the statement above should make such streams invalid.
comment:3 Changed 4 years ago by ksuehring
- Resolution set to invalid
- Status changed from new to closed
The images don't load anymore, so I can't follow all details.
But I tend to I agree to Biran's understanding. I think the constraint should prohibit cases where the last slice is not bottom right.
I'm closing as "invalid". Please re-open if there is still an issue.
Stream from the example