Tile level filtering in video coding
A video coding mechanism is disclosed. The mechanism includes receiving a bitstream comprising a flag and a picture including a tile with a tile boundary. The tile is decoded. Filtering operations are performed across the tile boundary when the flag is set to a first value. The filtering operations across the tile boundary are omitted when the flag is set to a second value. The tile is forwarded for display as part of a decoded video sequence.
1. A method implemented by a decoder, the method comprising:
receiving a bitstream comprising a first flag, a second flag, and a picture including a tile with a tile boundary and a sub-picture with a sub-picture boundary;
deriving a motion vector predictor candidate list for a current block by excluding a collocated motion vector from the motion vector predictor candidate list when the collocated motion vector points outside of the sub-picture and when a flag is set to indicate the sub-picture is treated as a picture, wherein the collocated motion vector is included in a collocated block from a collocated picture;
decoding the tile and the sub-picture based on the motion vector predictor candidate list;
enabling filtering operations across the tile boundary when the first flag is set to a first value;
disabling the filtering operations across the tile boundary when the first flag is set to a second value;
enabling filtering operations across the sub-picture boundary when the second flag is set to a third value; and
disabling the filtering operations across the sub-picture boundary when the second flag is set to a fourth value,
wherein the first flag is denoted as a loop_filter_across_tiles_enabled_flag, and wherein the loop_filter_across_tiles_enabled_flag is obtained from a picture parameter set (PPS) in the bitstream.
2. The method of claim 1 , wherein the second flag is denoted as loop_filter_across_subpic_enabled_flag.
3. The method of claim 1 , wherein the loop_filter_across_tiles_enabled_flag is set to one when specifying the filtering operations are enabled across tile boundaries in pictures referring to the PPS, and wherein the loop_filter_across_tiles_enabled_flag is set to zero when specifying the filtering operations are disabled across tile boundaries in pictures referring to the PPS.
4. The method of claim 1 , wherein the filtering operations include an adaptive loop filter (ALF).
5. The method of claim 1 , wherein the filtering operations include a sample adaptive offset (SAO) filter.
6. The method of claim 1 , wherein the filtering operations include a deblocking filter.
7. The method of claim 1 , wherein the tile boundary includes one or more edges of the tile.
8. A method implemented in an encoder, the method comprising:
partitioning a picture into a tile with a tile boundary and a sub-picture with a sub-picture boundary;
setting a first flag in a bitstream to indicate whether filtering operations are performed across the tile boundary;
deriving a motion vector predictor candidate list for a current block by excluding a collocated motion vector from the motion vector predictor candidate list when the collocated motion vector points outside of the sub-picture and when a flag is set to indicate the sub-picture is treated as a picture, wherein the collocated motion vector is included in a collocated block from a collocated picture;
encoding the tile and the sub-picture in the bitstream based on the motion vector predictor candidate list;
setting a second flag in the bitstream to indicate whether filtering operations are performed across the sub-picture boundary; and
storing the bitstream for communication toward a decoder,
wherein the first flag is denoted as a loop_filter_across_tiles_enabled_flag, and wherein the loop_filter_across_tiles_enabled_flag is set in a picture parameter set (PPS) in the bitstream.
9. The method of claim 8 , further comprising:
decoding the tile and the sub-picture for use in a reference picture;
performing the filtering operations across the tile boundary when the first flag is set to a first value;
omitting the filtering operations across the tile boundary when the first flag is set to a second value;
performing the filtering operations across the sub-picture boundary when the second flag is set to a third value; and
omitting the filtering operations across the sub-picture boundary when the second flag is set to a fourth value.
10. The method of claim 9 , wherein the second flag is denoted as loop_filter_across_subpic_enabled_flag.
11. The method of claim 8 , wherein the loop_filter_across_tiles_enabled_flag is set to one when specifying the filtering operations can be performed across tile boundaries in pictures referring to the PPS, and wherein the loop_filter_across_tiles_enabled_flag is set to zero when specifying the filtering operations are not performed across tile boundaries in pictures referring to the PPS.
12. The method of claim 8 , wherein the filtering operations include application of an adaptive loop filter (ALF), a sample adaptive offset (SAO) filter, a deblocking filter, or combinations thereof.
13. A decoder comprising:
a receiver configured to receive a bitstream comprising a first flag, a second flag, and a picture including a tile with a tile boundary and a sub-picture with a sub-picture boundary; and
a processor coupled to the receiver and configured to:
derive a motion vector predictor candidate list for a current block by excluding a collocated motion vector from the motion vector predictor candidate list when the collocated motion vector points outside of the sub-picture and when a flag is set to indicate the sub-picture is treated as a picture, wherein the collocated motion vector is included in a collocated block from a collocated picture;
decode the tile and the sub-picture based on the motion vector predictor candidate list;
enable filtering operations across the tile boundary when the first flag is set to a first value;
disable the filtering operations across the tile boundary when the first flag is set to a second value;
enable filtering operations across the sub-picture boundary when the second flag is set to a third value; and
disable the filtering operations across the sub-picture boundary when the second flag is set to a fourth value,
wherein the first flag is denoted as a loop_filter_across_tiles_enabled_flag, and wherein the loop_filter_across_tiles_enabled_flag is obtained from a picture parameter set (PPS) in the bitstream.
14. The decoder of claim 13 , wherein the second flag is denoted as loop_filter_across_subpic_enabled_flag.
15. The decoder of claim 13 , wherein the loop_filter_across_tiles_enabled_flag is set to one when specifying the filtering operations are enabled across tile boundaries in pictures referring to the PPS, and wherein the loop_filter_across_tiles_enabled_flag is set to zero when specifying the filtering operations are disabled across tile boundaries in pictures referring to the PPS.
16. The decoder of claim 13 , wherein the filtering operations include an adaptive loop filter (ALF).
17. The decoder of claim 13 , wherein the filtering operations include a sample adaptive offset (SAO) filter.
18. The decoder of claim 13 , wherein the filtering operations include a deblocking filter.
19. The decoder of claim 13 , wherein the tile boundary includes one or more edges of the tile.