Video coding including rectangular tile group signaling
By decoding the partition structure and derived partition size and position from the position flow, the problem of low -level consistency of the existing technology and the low efficiency of the layout of the layout of the block group is solved, and the more efficient bonus coding is achieved.
Patent Information
- Application Number
- CN202080020463.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-03-11
- Filing Date
- 2020-03-05
- Publication Date
- 2025-01-28
- Estimated Expiration
- 2040-03-05
AI Technical Summary
When the existing video encoding technology deals with tile partition structure, there are problems such as bitstream consistency and low signaling efficiency in tile group layout.
By decoding the partition structure from the bit flow, the number of blocks is determined, and the size and location of the partition are derived, and the method of deriveing the position of the current block group based on the position of the block group based on the previous derivation is used to improve the coding efficiency of the position.
This method is more efficient in terms of replacement, simplifying the processing process of the codeware, and automatically ensuring the consistency of the bit group flow.
Smart Images

Figure CN113678461B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to High Efficiency Video Coding (HEVC) and Versatile Video Coding (VVC). Background Art
[0002] HEVC and Next Generation Video Coding
[0003] High Efficiency Video Coding (HEVC), also known as H.265, is a block-based video codec standardized by ITU-T and MPEG that utilizes both temporal and spatial prediction. Spatial prediction is achieved using intra (I) prediction from within the current picture. Temporal prediction is achieved using inter (P) or bidirectional inter (B) prediction at the block level using previously decoded reference pictures. The difference between the original sample or pixel data and the predicted sample or pixel data, called the residual, is transformed into the frequency domain, quantized, and then entropy-coded before being transmitted along with the necessary prediction parameters such as prediction mode and motion vectors, which are also entropy-coded. By quantizing the transformed residual, the trade-off between the quality and bit rate of the video can be controlled. The level of quantization is determined by the quantization parameter (QP). The decoder performs entropy decoding, inverse quantization, and inverse transform to obtain the residual, and then adds the residual to the intra or inter prediction to reconstruct the picture.
[0004] MPEG and ITU-T are working on the successor to HEVC within the Joint Video Exploration Team (JVET). The name of this video codec under development is Versatile Video Coding (VCC).
[0005] Quantity
[0006] A video sequence consists of a series of pictures, where each picture consists of one or more components. Each component can be described as a two-dimensional rectangular array of sample values. It is common for pictures in a video sequence to consist of three components; a luma component, Y, where the sample values are luma values; and two chroma components, Cb and Cr, where the sample values are chroma values. It is common for the dimensions of the chroma components to be 1 / 2 of those of the luma components in each dimension. For example, the luma component of an HD picture will be 1920×1080 in size, and the chroma components will each have dimensions of 960×540. Components are sometimes referred to as color components.
[0007] piece
[0008] A block is a two-dimensional array of samples. In video coding, each component is split into blocks, and the encoded video bitstream consists of a series of blocks. It is common in video coding to split a picture into units covering a specific area of the picture. Each unit consists of all blocks from all components that make up that specific area, and each block belongs entirely to one unit. Macroblocks in H.264 and Coding Units (CUs) in HEVC are examples of units.
[0009] Coding Tree Unit
[0010] In HEVC, each picture is partitioned into coding tree units (CTUs). A CTU consists of an N×N block of luma samples and two M×M corresponding chroma blocks. A CTU in HEVC is like a macroblock in H.264 and earlier standards, but the CTU size is configurable compared to macroblocks. However, most commonly, the CTU size in HEVC is set to 64×64 luma samples. Each CTU can be recursively quadtree-split. The root of the quadtree is then associated with the CTU. The quadtree is split until a leaf is reached, which is called a coding unit (CU). A CU in HEVC always consists of luma blocks of equal height and width. How each CTU is split is communicated in the bitstream.
[0011] NAL units
[0012] Both HEVC and VVC define a Network Abstraction Layer (NAL). All data, i.e., both video data and non-video data for HEVC and VVC, are encapsulated in NAL units. NAL units can be viewed as packets suitable for transport and storage. NAL units begin with a NAL unit header, which contains, among other things, a NAL unit type that identifies what type of data is carried in the NAL unit. The NAL unit type is transmitted in the nal_unit_type codeword in the NAL unit header, and the type indicates and defines how the NAL unit should be parsed and decoded. The bitstream consists of a series of concatenated NAL units.
[0013] Parameter Set
[0014] HEVC specifies three types of parameter sets, picture parameter set (PPS), sequence parameter set (SPS), and video parameter set (VPS). PPS contains data common to the entire picture, SPS contains data common to a coded video sequence (CVS), and VPS contains data common to multiple CVSs.
[0015] Tile
[0016] The HEVC video coding standard includes a tool called tiles that divide a picture into rectangular spatially independent regions. Using tiles, a picture in HEVC can be partitioned into rows and columns of samples, where a tile is the intersection of a row and a column. Tiles in HEVC are always aligned with CTU boundaries.
[0017] Slices in HEVC
[0018] The concept of slices in HEVC divides a picture into independently coded slices, where each slice is read in raster scan order in units of CTUs. Each slice is encapsulated in its own NAL unit. Different coding types can be used for slices of the same picture, i.e., a slice can be an I-slice, a P-slice, or a B-slice. The main purpose of slicing is to enable resynchronization in case of data loss.
[0019] Tile groups in VVC
[0020] The VVC draft specification does not include slices, but includes a similar concept called tile groups. In HEVC, a tile can contain one or more slices, or a slice can contain one or more tiles, but not both. In VVC, the concept is more straightforward; a tile group can contain one or more complete tiles. Tile groups are used to group multiple tiles to reduce the overhead of each tile. Each tile group is encapsulated in its own NAL unit. For pictures, a tile group can be rectangular in shape, or include one or more tiles in raster scan order. A rectangular tile group consists of V×H tiles, where V is the number of tiles in the vertical direction of the tile group, and H is the number of tiles in the horizontal direction of the tile group.
[0021] Block Grouping in JVET-M0853
[0022] At the recent JVET meeting, rectangular tile grouping was adopted according to the JVET-M0853 proposal. The text as proposed in JVET-M0853 is shown below. The changes to Universal Video Coding (Draft 3) specified in JVET-L1001-v7, Macau, China, December 2018 are shown below. Specifically, the added parts are underlined and the removed parts are crossed out.
[0023]
[0024]
[0025] The semantics of the new / modified elements indicated above are shown below.
[0026] single_tile_per_tile_group equal to 1 specifies that each tile group referencing this PPS includes one tile. single_tile_per_tile_group equal to 0 specifies that the tile group referencing this PPS may include more than one tile.
[0027] rect_tile_group_flag equal to 0 specifies that the tiles in each tile group are in raster scan order and tile group information is not signaled in the PPS. rect_tile_group_flag equal to 1 specifies that the tiles in each tile group cover a rectangular area of the picture and tile group information is signaled in the PPS. rect_tile_group_flag is inferred to be equal to 1 when single_tile_per_tile_group_flag is equal to 1.
[0028] num_tile_groups_in_pic_minus1 plus 1 specifies the number of tile groups in each picture referencing the PPS. The value of num_tile_groups_in_pic_minus1 shall be in the range of 0 to (NumTilesInPic-1), inclusive. When not present and single_tile_per_tile_group_fla is equal to 1, the value of num_tile_groups_in_pic_minus1 is inferred to be equal to (NumTilesInPic-1).
[0029] top_left_tile_idx[i] specifies the tile index of the tile located at the top-left corner of the i-th tile group. For any i not equal to j, the value of top_left_tile_idx[i] shall not be equal to the value of top_left_tile_idx[j]. When not present, top_left_tile_idx[i] is inferred to be equal to i. The length of the top_left_tile_idx[i] syntax element is Ceil(Log2(NumTilesInPic) bits.
[0030] bottom_right_tile_idx[i] specifies the tile index of the tile located at the bottom right corner of the i-th tile group. When single_tile_per_tile_group_flag is equal to 1, bottom_right_tile_idx[i] is inferred to be equal to top_left_tile_idx[i]. The length of the bottom_right_tile_idx[i] syntax element is Ceil(Log2(NumTilesInPic)) bits.
[0031] A requirement for bitstream consistency is that any particular tile should only be included in one tile group.
[0032] The variable NumTilesInTileGroup[i], which specifies the number of tiles in a tile group, and related variables are derived as follows:
[0033]
[0034] signalled_tile_group_id_flag equal to 1 specifies that the tile group ID of each tile group is signaled. signalled_tile_group_index_flag equal to 0 specifies that the tile group ID is not signaled. When rect_tile_group_flag is equal to 0, the value of signalled_tile_group_index_flag is inferred to be equal to 0.
[0035] signalled_tile_group_id_length_minus1 plus 1 specifies the number of bits used to represent the syntax element tile_group_id[i] (when present) and the syntax element tile_group_address in the tile group header. The value of signalled_tile_group_index_length_minus1 shall be in the range 0 to 15, inclusive. When not present, the value of signalled_tile_group_index_length_minus1 is inferred to be equal to Ceil(Log2 (num_tile_groups_in_pic_minus1 + 1))-1.
[0036] tile_group_id[i] specifies the tile group ID of the i-th tile group. The length of the tile_group_id[i] syntax element is tile_set_id_length_minus1 + 1 bits. When not present, tile_group_id[i] is inferred to be equal to i for each i in the range 0 to num_tile_groups_in_pic_minus1, inclusive. Summary of the invention
[0037] In one aspect, there is provided a method for decoding a picture from a bitstream. The method includes decoding a tile partition structure from one or more syntax elements in a bitstream. The method includes determining the number of tiles N in a picture. The method includes decoding a plurality of partitions in a picture, wherein each partition includes an integer number of tiles. The method includes deriving the size and / or position of a current partition, wherein deriving the size and / or position of the current partition includes: decoding one or more position syntax elements of the current partition from the bitstream; deriving the upper left position of the current partition as the position of the first tile that is not included in one or more previously derived partitions in a raster scan order; and deriving the size and / or position of the current partition from the value of one or more position syntax elements together with the size and / or position of one or more previously derived partitions. The method includes decoding a picture using the derived size and / or position.
[0038] In some embodiments, the current partition is a tile group.
[0039] In some embodiments, the tile partition structure includes at least three rectangular partitions, wherein at least one boundary of at least one rectangular partition has a portion in common with at least two other rectangular partitions.
[0040] In some embodiments, one or more previously derived partitions are derived in a raster scan order.
[0041] In some embodiments, a partition structure, when decoded, has each of its entire left boundary and its entire top boundary at a picture boundary or adjacent to one or more previously decoded partitions.
[0042] In some embodiments, the one or more position syntax elements include a syntax element representing a tile index, where the tile index is a number in the range of 0 to N-1, inclusive, and where N indicates the number of tiles in the picture, and the tile index indicates the position of a lower right tile of the current partition.
[0043] In some embodiments, the one or more position syntax elements include a syntax element representing the y-coordinate of the position of the lower right tile of the current partition and a syntax element representing the x-coordinate of the position of the lower right tile of the current partition. In some embodiments, deriving the size and / or position of the current partition includes deriving the lower right position of the current partition based on the coordinate values.
[0044] In some embodiments, the one or more position syntax elements include a syntax element representing a width of the current partition in a number of tiles and a syntax element representing a height of the current partition in a number of tiles. In some embodiments, deriving a size and / or position of the current partition includes deriving a lower right position of the current partition, wherein deriving the lower right position of the current partition includes adding the values of the width syntax element and the height syntax element to the derived upper left position of the current partition.
[0045] In some embodiments, if the current partition is the last rectangular partition in raster scan order, the syntax element is not decoded.
[0046] In some embodiments, the one or more position syntax elements include one or more syntax elements that specify a distance between a lower right corner of the current partition and point B, where point B is determined by a previously signaled rectangular partition.
[0047] In some embodiments, a stack data structure is used to determine the locations of rectangular partitions in a picture.
[0048] In some embodiments, an array data structure is used to determine the locations of rectangular partitions in a picture.
[0049] In some embodiments, a recursive method is used to partition the picture into rectangular partitions.
[0050] In some embodiments, the method includes: initializing a list L of size N, wherein the list L includes N entries, wherein each entry in the list L corresponds to a tile in the picture, and one or more entries are arranged in a raster scan order so that the nth entry in L corresponds to the nth tile in the picture in a raster scan order, and wherein each of the N entries in the list L is initialized to a value indicating that the corresponding tile does not belong to a partition; deriving the upper left position of the current partition, wherein deriving the upper left position of the current partition includes executing a for loop on the elements in the list L until an entry with a value indicating that the corresponding tile does not belong to the partition is found; using the derived upper left position and lower right position to identify the tiles included in the current partition; and updating the list L so that the entries in the list L corresponding to the tiles belonging to the current partition are set to values indicating that the corresponding tiles do belong to the partition.
[0051] In some embodiments, the position of the lower right corner of a rectangular partition i in the picture is restricted to the rectangular area defined by other rectangular partitions j in the scanning order, where j <i。
[0052] In some embodiments, the width and height of a rectangular partition i in a picture are restricted to the rectangular area defined by other rectangular partitions j in scan order, where j <i。
[0053] In some embodiments, the address or position of the lower right corner of a rectangular partition i in the picture is restricted to a subset of the addresses defined by other rectangular partitions j in scan order, where j <i。
[0054] In some embodiments, for each rectangular partition, the spatial partition structure is signaled by one or more syntax elements that specify the distance of the lower right corner to point B, where point B is fixed.
[0055] In some embodiments, deriving the size and / or position of the current partition includes deriving which tiles in the picture belong to the current partition.
[0056] In some embodiments, there is provided a computer program comprising instructions which, when executed by a processing circuit, cause the processing circuit to perform any of the methods described above.
[0057] In some embodiments, there is provided a decoder adapted to perform any of the methods described above.
[0058] In some embodiments, deriving the top-left position of the current partition is done without decoding any syntax elements specifically used to indicate the top-left position.
[0059] In another aspect, there is provided a method for encoding a picture into a bitstream. The method includes encoding a tile partition structure as one or more syntax elements in a bitstream. The method includes determining the number of tiles N in the picture. The method includes encoding a plurality of partitions in the picture, wherein each partition includes an integer number of tiles. The method includes deriving the size and / or position of the current partition, wherein deriving the size and / or position of the current partition includes: encoding one or more position syntax elements of the current partition into the bitstream; deriving the upper left position of the current partition as the position of the first tile that is not included in one or more previously derived partitions in a raster scan order; and deriving the size and / or position of the current partition from the values of the one or more position syntax elements together with the size and / or position of one or more previously derived partitions. The method includes encoding the picture using the derived size and / or position.
[0060] In some embodiments, the rectangular partitions include tile groups.
[0061] In some embodiments, the tile partition structure includes at least three rectangular partitions, wherein at least one boundary of at least one rectangular partition has a portion in common with at least two other rectangular partitions.
[0062] In some embodiments, one or more previously derived partitions have been derived in a raster scan order.
[0063] In some embodiments, the one or more position syntax elements include a syntax element representing a tile index, where the tile index is a number in the range of 0 to N-1, inclusive, and where N indicates the number of tiles in the picture, and the tile index indicates the position of a lower right tile of the current partition.
[0064] In some embodiments, the one or more position syntax elements include a syntax element representing the y-coordinate of the position of the lower right tile of the current partition and a syntax element representing the x-coordinate of the position of the lower right tile of the current partition, and the lower right position of the current partition is derived from the coordinate values.
[0065] In some embodiments, the one or more position syntax elements include a syntax element representing the width of the current partition in the number of tiles and a syntax element representing the height of the current partition in the number of tiles, and the lower right position of the current partition is derived by adding the values of the width syntax element and the height syntax element to the derived upper left position of the current partition.
[0066] In some embodiments, the one or more position syntax elements include one or more syntax elements that specify a distance between a lower right corner of the current partition and point B, where point B is determined by a previously signaled rectangular partition.
[0067] In some embodiments, a stack data structure is used to determine the locations of rectangular partitions in a picture.
[0068] In some embodiments, an array data structure is used to determine the locations of rectangular partitions in a picture.
[0069] In some embodiments, a recursive method is used to partition the picture into rectangular partitions.
[0070] In some embodiments, the method further includes: initializing a list L of size N, wherein the list L includes N entries, wherein each entry in the list L corresponds to a tile in the picture, and one or more entries are arranged in a raster scan order so that the nth entry in L corresponds to the nth tile in the picture in a raster scan order, and wherein each of the N entries in the list L is initialized to a value indicating that the corresponding tile does not belong to a partition; deriving the upper left position of the current partition, wherein deriving the upper left position of the current partition includes executing a for loop on the elements in the list L until an entry with a value indicating that the corresponding tile does not belong to the partition is found; using the derived upper left position and lower right position to identify the tiles included in the current partition; and updating the list L so that the entries in the list L corresponding to the tiles belonging to the current partition are set to values indicating that the corresponding tiles do belong to the partition.
[0071] In some embodiments, the position of the lower right corner of a rectangular partition i in the picture is restricted to the rectangular area defined by other rectangular partitions j in the scanning order, where j <i。
[0072] In some embodiments, the width and height of a rectangular partition i in a picture are restricted to the rectangular area defined by other rectangular partitions j in scan order, where j <i。
[0073] In some embodiments, the address or position of the lower right corner of a rectangular partition i in the picture is restricted to a subset of the addresses defined by other rectangular partitions j in scan order, where j <i。
[0074] In some embodiments, for each rectangular partition, the spatial partition structure is signaled by one or more syntax elements that specify the distance of the lower right corner to point B, where point B is fixed.
[0075] In some embodiments, deriving the size and / or position of the current partition includes deriving which tiles in the picture belong to the current partition.
[0076] In some embodiments, there is provided a computer program comprising instructions which, when executed by a processing circuit, cause the processing circuit to perform any of the methods described above.
[0077] In some embodiments, there is provided an encoder adapted to perform any of the methods described above.
[0078] Some embodiments disclosed herein include novel signaling of tile group layouts. In some embodiments, the position of the current tile group is derived based on previously signaled and derived tile group positions, rather than signaling both the top left position and the bottom right position of each tile group. One embodiment contains both novel syntax and novel derivation methods.
[0079] By inferring tile group positions based on previously signaled and derived tile group positions, embodiments disclosed herein are more efficient in terms of bit cost than current solutions.
[0080] In some embodiments, deriving the size and / or position of the current partition may consist of deriving which tiles in the picture belong to the current partition. This may be accomplished by indicating, for each tile T in the picture, to which partition the tile T belongs, e.g., by assigning a value to a list of length N (where N is the number of tiles in the picture), where each entry in the list is a partition number, such that the list associates each of the N tiles with a partition.
[0081] Some embodiments disclosed herein additionally provide means for making rectangular tile groups conform to the requirements specified in JVET-M_Notes_dA, and in particular ensure that rectangular tile group partitions only include tile groups that, when decoded in a defined address order, each tile should have its entire left border and entire top border consisting of a picture boundary or (one or more) previously decoded tiles. Using the embodiments disclosed herein, the desired requirement of disabling light yellow and light green tile groups in a picture will be met.
[0082] For the decoder, the embodiments disclosed herein simplify the process because the decoder does not have to check that the bitstream is following these rules. Instead, any possible signaling will automatically follow these rules. BRIEF DESCRIPTION OF THE DRAWINGS
[0083] The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate various embodiments.
[0084] Figure 1 A picture with tile groups according to some embodiments is shown.
[0085] Figure 2 A picture with tile groups according to some embodiments is shown.
[0086] Figure 3 A picture with tile groups according to some embodiments is shown.
[0087] Figure 4 A picture with tile groups according to some embodiments is shown.
[0088] Figure 5 A picture with tile groups according to some embodiments is shown.
[0089] Figure 6 A picture with tile groups according to some embodiments is shown.
[0090] Figure 7 A picture with tile groups according to some embodiments is shown.
[0091] Figure 8 A stack is shown according to some embodiments.
[0092] Fig. 9 A stack according to some embodiments is shown.
[0093] Fig.10 A picture with cells is shown in accordance with some embodiments.
[0094] Fig.11 A picture with cells is shown in accordance with some embodiments.
[0095] Fig.12 A picture with tile groups according to some embodiments is shown.
[0096] Fig.13A A raster scan order is shown according to some embodiments.
[0097] Fig. 13B The Z-order is shown according to some embodiments.
[0098] Fig.14A is a flow chart illustrating a process according to an embodiment.
[0099] Fig. 14B is a flow chart illustrating a process according to an embodiment.
[0100] Fig.15A is a flow chart illustrating a process according to an embodiment.
[0101] Fig. 15B is a flow chart illustrating a process according to an embodiment.
[0102] Fig.16 is a diagram showing functional units of a decoder according to one embodiment.
[0103] Fig.17 is a diagram showing functional units of an encoder according to one embodiment.
[0104] Fig.18 is a block diagram of a node according to some embodiments. DETAILED DESCRIPTION
[0105] Support for rectangular tile groups was adopted at the 13th JVET meeting held in Marrakech in January 2019. At the same meeting, several constraints were set for rectangular tile groups. The section of the meeting notes (JVET-M_Notes_dA) that specified these constraints during the 13th JVET meeting is reproduced below:
[0106] 1. The tiles in the tile group need to be in raster scan order;
[0107] 2. The tile groups need to be in increasing order of address (see below: dark orange, then light blue, then light yellow, then dark blue, then light orange, ...);
[0108] 3. The tile group shape should be such that each tile, when decoded, should have its entire left border and entire top border consisting of a picture boundary or (one or more) previously decoded tiles. In other words, the light yellow and light green tiles in the figure below are not allowed.
[0109] Note that the references to "see below" and "below" refer to currently published Figure 1 The order mentioned above in the second bullet as "address ascending order of tile groups" is Figure 1 The numbers in the JVET_M_Notes_dA are shown by labeling the tile groups. The tile group labeled 1 is the first in the sequence, followed by the tile group labeled 2, then the tile group labeled 3, etc. Note further that in the third bullet point above, although tile groups 3 and 7 are referred to as "light yellow and light green tiles," it is possible that JVET_M_Notes_dA meant "light yellow and light green tile groups" rather than "light yellow and light green tiles." Finally, note that JVET_M_Notes_dA uses similar colors for different tile groups, e.g., two dark blue tile groups and two gray tile groups.
[0110] For purposes of explanation in the context of the present disclosure, the constraints referenced above in JVET_M_Notes_dA are restated as follows:
[0111] Constraint 1. Figure 1 As shown in , tiles in a tile group need to be in raster scan order. Figure 1 , tile group 1 represents a dark orange tile group, tile group 2 represents a light blue tile group, tile group 3 represents a light yellow tile group, tile group 4 represents a dark blue tile group, tile group 5 represents a light orange tile group, tile group 6 represents a gray tile group, tile group 7 represents a light green tile group, tile group 8 represents a dark green tile group, tile group 9 represents a gray tile group, and tile group 10 represents a dark blue tile group.
[0112] Constraint 2. The tile groups need to be in ascending order of address. Figure 1 As shown in , the address order of the tile groups is shown in increasing order by the numbers associated with each tile group. Figure 1 , the dark orange tile group 1 is first in the order, followed by the light blue tile group 2, then the light yellow tile group 3, and so on.
[0113] Constraint 3. The tile group shape shall be such that each tile, when decoded, shall have its entire left and entire top borders consisting of either a picture boundary or (one or more) previously decoded tiles. In other words, Figure 1 The light yellow tile group 3 and light green tile group 7 in are not allowed.
[0114] The syntax and semantics for signaling rectangular tile groups proposed in JVET-M0853 do not conform to the partitioning constraints, and in particular, do not conform to the third constraint specified in the Marrakech meeting notes (JVET-M_Notes_dA) (the third constraint mentioned above). For JVET-M0853, the constraints from the meeting notes need to be included. However, this would mean that the syntax and semantics of JVET-M0853 are not as efficient as they need to be. By designing the syntax and semantics with the constraints listed above in mind, the embodiments disclosed herein provide more efficient signaling of tile group layouts.
[0115] In one aspect, a method for signaling partition structures is provided that inherently allows only partition structures that comply with the tile group partition structure requirements specified in the VVC meeting notes of Marrakech. These requirements are taken from the meeting notes JVET-M_Notes_dA, as shown above as constraints 1-3.
[0116] In the context of the current disclosure, the term partition structure refers to different interpretations of tile grouping structure, tile group partitioning structure, non-grid based tile partitioning structure, etc. In some embodiments, a partition may refer to a tile group.
[0117] In one embodiment, it is assumed that the width and height of the picture and the number of partitions are known.
[0118] In the following embodiments, various methods of solving the problems regarding the conventional methods described above have been described.
[0119] In the context of the present disclosure, in some embodiments, a border indicates an entire side of a rectangular partition, picture, and / or tile. In the context of the present disclosure, in some embodiments, a border of a picture indicates a picture border.
[0120] Example 1. General Concept
[0121] In a first embodiment, decoding of one or more pictures includes deriving the spatial positions of multiple rectangular partitions. The derivation is accomplished by first decoding multiple partitions that make up the (one or more) pictures, and then deriving the position and / or size of each partition from syntax elements in the bitstream and based on knowledge of the position and / or size of the partitions for which the position and / or size has been derived. This is accomplished by first deriving the position and / or size of the first partition in the picture by decoding one or more syntax elements from the bitstream. The order of derivation and the order of syntax elements in the bitstream are in a determined order, preferably in a tile raster scan order. This means that the first partition in the picture to be derived must include the first tile in the picture in raster scan order. It also means that the second partition in the picture to be derived must include the first tile that is not included in the first partition in raster scan order. In general, the nth partition in the picture must include the first tile of any partition that is not included in the partition before the nth partition in raster scan order. This attribute is used in deriving the position and / or size of the current partition by using it to derive the top-left position of the current partition without decoding any syntax element specifically used to indicate the top-left position.
[0122] The decoder may perform all or a subset of the following steps for this embodiment to decode a picture:
[0123] 1. Decode the tile partition structure from one or more syntax elements in the bitstream. This syntax is preferably located in a picture parameter set.
[0124] 2 Determine the number of tiles present in the picture from a syntax element in the bitstream. This syntax is preferably in a picture parameter set.
[0125] 3. Decode multiple partitions present in the picture, where each partition consists of an integer number of tiles. The partitions may all be rectangular in shape, so that the size of each partition may be described by a height and a width in terms of the number of tiles. For example, a partition may have a height of 3 tiles and a width of 4 tiles. A partition here may be a tile group.
[0126] 4 Use the following substeps to deduce the size and / or location of the current partition:
[0127] a. Decoding one or more position syntax elements of the current partition from the bitstream;
[0128] b. deriving the size and / or position of the current partition from the value(s) of the position syntax element(s) together with the size(s) and / or position(s) of the previously derived partition(s), wherein any subset of the following steps may apply:
[0129] i. The top left position of the current partition is derived as the position of the first tile in tile scan order that is not included in any previously derived partition, regardless of whether the scan order may be raster scan order.
[0130] ii. The current partition has at least one boundary that has a portion in common with at least two other partitions, where a boundary is an edge of a partition.
[0131] iii. Each of the top and left boundaries of the current partition is either at a picture boundary or borders one or more previously derived partitions, where the boundary is an edge of the current partition.
[0132] iv. The number of previously derived partitions is greater than 2.
[0133] v. The width and height of at least one previously derived partition are not equal to the width and height of the current partition.
[0134] vi. The previously derived partitions have been derived in raster scan order.
[0135] 5. Decode the image using the inferred size and / or position.
[0136] In some embodiments, tiles within the current partition may be decoded later in the current partition in a tile raster scan order.
[0137] Example 2. Signaling only the lower right corner
[0138] In a second embodiment, the location of the current partition from embodiment 1 is signaled by one or more syntax elements that specify the location of a corner of the current partition. In some embodiments, the location of a corner may be specified as, for example, x and y relative to an origin, or as, for example, an address.
[0139] The signaled syntax of the current partition may specify the address or position of the lower right corner of the current partition, and the partitions are derived in a raster scan order. Then, a unique position of the current partition is derived based on the previously derived partitions in the raster scan order and the signaled syntax value. In an embodiment, the partitions are scanned in a raster scan order based on the position of the upper left corner of the partition.
[0140] (a) The signaled syntax values used to derive the lower right corner of the current partition may be restricted to a range that guarantees that each partition, when decoded, has each of its entire left and entire top borders at a picture boundary or adjacent to one or more previously decoded partitions. The borders are preferably the entire sides of a rectangular partition in this disclosure. The range of allowed addresses for the lower right corner of the current partition may be specified as addresses within a rectangular region (shown as diagonal stripes in the figure below) where the upper left corner T = (xT , Y T ) is equal to the upper left corner of the current rectangular partition, and the lower right corner is equal to point B = (X B , Y B ), which is defined as follows:
[0141] (b) If T is located on the left border of the image, then B is equal to the lower right corner of the image.
[0142] (c) If T is not located on the left border of the picture, the following applies: Figure 2 As shown in FIG. 1 , the first tile in the current partition is marked with T and has coordinates (X T , Y T ). The tile immediately to its left is marked with U and has coordinates (X T -1, Y T The tile below U will have coordinates (X T -1, Y T +k), k>0. Let V be the tile with the largest k such that it is still part of the same partition as U. Then, point B (marked with B) will have coordinates (X B , Y B ), where X B is the width of the image in tiles, and where Y B = Y T +k.
[0143] exist Figure 2 , the gray part shows the area that has been partitioned, and the remaining parts (the striped part and the white part) are the areas to be partitioned. Figure 2 The striped portion in shows the range of allowed points for the lower right corner of the current partition. If tile S is signaled, the current partition will be a rectangle marked with a dashed outline, where T is the upper left tile and S is the lower right tile.
[0144] like Figure 2 As shown in , the striped area shows the possible location of the lower right coordinate of the current partition. The upper left block T is the first block in the raster scan order that is not yet part of the partition. The lower right block B is the block with the same y-coordinate Y as block V. B Tile V is the bottommost tile in the partition containing U. The x-coordinate of tile B is the right edge of the image. Figure 2 As shown in , the coordinates of tile S have been signaled as the lower right tile of the current partition, and the current partition is marked with a dashed rectangle.
[0145] In another variation of this embodiment, the position of the lower right corner of the current partition is specified as the address value. Figure 3 An example is shown in FIG. 1 , where the gray portion shows the area that has been partitioned, and the remaining portion (the striped portion and the white portion) shows the area to be partitioned. In this example, the striped portion shows the allowed positions of the lower right corner of the current partition, and the position of the lower right corner of the current partition is specified as the address value within the striped rectangle, where the upper left corner address is equal to 25 and the lower right corner is equal to 49.
[0146] In another variation of this embodiment, the position of the lower right corner of the current partition is specified relative to the upper left corner of the current partition. Figure 4 An example is shown in . In this example, the upper left corner of the current partition is marked as T, and the lower right corner is marked as S, and the position of the lower right corner S of the current partition is specified relative to the upper left corner T of the current partition, and the value ST=37-25=12 is signaled.
[0147] In another variation of this embodiment, the position of the lower right corner S of the current partition is specified relative to the upper left corner T of the current partition, using the fact that the position of the lower right corner S of the current partition must be within the striped portion. This is accomplished by signaling a value representing the number of tiles from T to S that exist within the striped region in raster scan order. Figure 4 , this number is equal to 7.
[0148] In another variation of this embodiment, the last rectangular partition in the picture may be inferred from the rest of the partition structure, and thus no syntax elements may be signaled for the last partition.
[0149] For this second embodiment, the decoder may perform all or a subset of steps 1 to 5 described above in embodiment 1 to decode the picture, wherein decoding one or more position syntax elements of the current partition from the bitstream comprises one of the following actions:
[0150] (a) Decode a syntax element that specifies a tile index, where the tile index is a number in the range of 0 to N-1, inclusive, where N is the number of tiles in the picture. The tiles in the picture are numbered from 0 to N-1 in a raster scan order, and the decoded tile index identifies the tile numbered by the tile index. The identified tile specifies the position of the lower right tile of the current partition. The syntax element that specifies the tile index may specify the position of the lower right tile relative to the upper left corner of the current partition. A fixed length code of ceil(log2(n)) bits may be used, or a UVLC codeword may be used to signal the codeword for specifying the tile index. The lower right position of the current partition is then derived from the tile index.
[0151] (b) Decode a syntax element that specifies the number N of tiles in a raster scan order within an allowed area shown as a striped area. The tiles in the picture are numbered from 0 to n-1 in a raster scan order. The lower right tile of the current partition is identified by scanning the tiles starting from the upper left corner T in a raster scan order within the allowed area. The scan is stopped after N tiles have been scanned, and the tile at the end of the scan is identified as the lower right tile of the current partition. Then, the lower right position of the current partition is set to the coordinates or tile index of the identified lower right tile.
[0152] (c) Decode a syntax element that specifies the y-coordinate of the position of the lower right tile of the current partition, and decode a syntax element that specifies the x-coordinate of the position of the lower right tile of the current partition. The coordinates may be relative to the upper left corner of the picture, or may be relative to another position, including but not limited to the upper left corner T of the rectangular area as explained above. The lower right position of the current partition is then derived from the decoded coordinates.
[0153] Example 3. Signaling width and height
[0154] In a third embodiment, the size of the current partition from embodiment 1 is signaled by one or more syntax elements that specify the width and height of the current partition structure.
[0155] The signaling syntax may specify the width and height of the current partition, and may derive the unique position of the current partition from previously derived partitions in raster scan order.In a preferred embodiment, the partitions are scanned in a predefined order such as a raster scan order based on the position of the upper left corner of the partition.
[0156] The syntax for the current partition may consist of one width syntax element and one height syntax element, where the width syntax element indicates the width of the current partition in terms of the number of tiles, and the height syntax element indicates the height of the current partition in terms of the number of tiles. The width syntax element may be signaled using a fixed length code of ceil(log2(W)) bits, where W is the number of tile columns in a picture or the number of tile columns in a picture minus 1. Similarly, the height syntax element may be signaled using a fixed length code of ceil(log2(H)) bits, where H is the number of tile rows in a picture or the number of tile rows in a picture minus 1.
[0157] The signaled syntax values used to derive the width and height of the current partition may be restricted to a range that guarantees that each partition, when decoded, has each of its entire left and entire top boundaries at a picture boundary and / or adjacent to one or more previously decoded partitions. The range of allowed values may be specified as a rectangular region (in Figure 5 The values within the range are shown as diagonal stripes in the figure, where the width W is equal to XB -X T , and the height H is equal to Y B -Y T .exist Figure 5 In the above equation, T = (X T , Y T ) is the upper left corner of the rectangular area, and B = (X B , Y B ) is the lower right corner of the rectangular area used to determine the allowed values of W and H. T can be derived from the area of the previous partition and the known scan order, and B can be defined as follows:
[0158] (a) If T is on the left border of the image, then B is equal to the lower right corner of the image.
[0159] (b) If T is not on the left border of the image, then B is on the right border of the image and in the row farthest from the top border of the image, for which (X T -1, Y T ) and (X B -W-1, Y B ) belong to the same rectangular partition.
[0160] exist Figure 5 , the gray part shows the area that has been partitioned, and the remaining parts (the striped part and the white part) are the areas that are still to be partitioned.
[0161] In a variation of this embodiment, the last rectangular partition in scan order may be inferred from the rest of the partition structure, and thus no syntax elements may be signaled for it.
[0162] For this third embodiment, the decoder may perform all or a subset of steps 1 to 5 described in embodiment 1 to decode the picture, wherein decoding one or more position syntax elements of the current partition from the bitstream comprises the following steps:
[0163] (a) Decode a syntax element representing the width of the current partition in number of tiles and decode a syntax element representing the width of the current partition in number of tiles. Then, derive the lower right position of the current partition by adding the decoded height and width of the current partition to the derived upper left position of the current partition.
[0164] Example 4. Signaling the distance to location B
[0165] In a fourth embodiment, the position of the current partition from embodiment 1 is signaled by one or more syntax elements that specify the position of a corner of the current partition, and the position of this corner may be specified relative to point B, where point B is derived from one or more previously derived partitions. For the first rectangular partition, point B may have a default value representing, for example, the lower right position of the picture.
[0166] In the context of the present disclosure, the following notation is used for tile T:
[0167] T: The name of the tile
[0168] (X T , Y T ): coordinates of tile T
[0169] A T : The address of tile T (raster scan index).
[0170] When partitions are derived in raster scan order, the signaled syntax of the current partition may specify the address or position of the lower right corner of the current partition. The unique position of the current partition may then be derived from the partitions previously derived in raster scan order and the signaled syntax value that specifies the lower right corner of the current partition. In an embodiment, partitions are scanned in raster scan order based on the position of the upper left corner of the partition.
[0171] The signaled syntax values used to derive the lower right corner of the current partition may be restricted to a range that guarantees that the current partition, when decoded, has each of its entire left and entire top boundaries at a picture boundary or adjacent to one or more previously derived partitions. The range of allowed values for the lower right corner of the current partition may be specified as a rectangular region (in Figure 6 ), where the upper left corner T is used as the upper left corner of the current rectangular partition, and the lower right corner B is defined as follows:
[0172] (a) If T is located on the left border of the image (e.g. Figure 6 , T = 20), then B is equal to the lower right corner of the image (in Figure 6 in, B = 69).
[0173] If T is not on the left border of the image (for example, Figure 7 A T = 25), then B indicates a block located in the rightmost block column of the picture, and A B For it (A T -1) and (A B-W) belongs to the highest value of the same rectangular partition, where W is the width of the rectangular area. W is known because the width of the image and the position of T are known. In the following example, W = 5, and we let A T - 1 = 24, and A B - W = 44.
[0174] exist Figure 6-7 In FIG. 1 , the gray part shows the area that has been partitioned, and the remaining parts (the striped part and the white part) are the areas to be partitioned.
[0175] The tile index value from position B (in Figure 6 and Figure 7 The position of the lower right position of the current partition is derived by subtracting the decoded value signaled for the current partition from S=69 and 49, respectively, in the bitstream. In the example where S=37 shows the position of the lower right position of the current partition, the position is derived by subtracting the value 32 from 69, where 32 is signaled in the bitstream. Alternatively, the decoding represents a value of the number of tiles N in reverse raster scan order within the allowed area. The lower right block of the current partition is identified by scanning tiles starting from tile B in reverse raster scan order within the allowed area. The scanning is stopped after N tiles have been scanned, and the block at the end of the scan is identified as the lower right block of the current partition. In the above example of S=37, the value representing the number of tiles in reverse order N is equal to 7. The lower right position of the current partition is then set to the coordinates or tile index of the identified lower right block.
[0176] In another variation of this embodiment, the position of the lower right corner of the current partition is specified as the address value.
[0177] In another variation of this embodiment, the last rectangular partition in scan order may be inferred from the rest of the partition structure, and thus no syntax elements are signaled for it.
[0178] Example 5. Process of using a stack
[0179] In a fifth embodiment, a stack is created and used to determine the position of the current partition in the picture. Each entry in the stack may contain information for defining a rectangular partition. The position of the current partition may be specified by the position of two relative corners of the rectangular partition (e.g., the upper left corner and the lower right corner of the rectangular partition) or by specifying the width and length of the rectangular partition or other means.
[0180] In this embodiment, the stack may be a last-in-first-out (LIFO) stack, and each entry into the stack may be identified by the top left corner of the current partition structure (in Figure 8 designated as T) and in Figure 8The position of the corresponding potential lower right corner designated as B in . Point C is the actual lower right corner of the corresponding rectangular partition. Define point B as potential The lower right corner, because any point like C in the rectangular area defined with T as the upper left corner and B as the lower right corner can be defined as the actual lower right corner of the current partition in the next step.
[0181] Fig. 9 Another pair of top left (T) corners and potential bottom right corners (B) is shown. Point C again shows an example of an actual bottom right corner of a corresponding rectangular partition.
[0182] The rectangular partitions are in increasing order of address, and the stack can be updated after each rectangular partition is derived. The update can include removing entries or adding new entries to the stack. The actual lower right corner position of each rectangular partition can be derived from the stacked information and the signaled information syntax of each rectangle in the partition structure.
[0183] In a variation of this embodiment, a codeword is used to signal the distance between the potential bottom right point and the actual bottom right point. Fig.10 The example shown in shows the distance between a potential point (B) and an actual point (C) as the number of cells in scan order from C to B. In this embodiment, the actual position of the point can be calculated using the signaled value and the picture width.
[0184] In another variation of this embodiment, two codewords are used to signal the distance between a potential point and an actual point; one codeword for the horizontal distance and one codeword for the vertical distance. Fig.11 In the example shown in , one codeword (X) specifies the distance between the potential point (B) and the actual point (C) in the horizontal direction, and the second codeword (Y) specifies the distance between the potential point (B) and the actual point (C) in the vertical direction. Codeword X can be an FLC with a length equal to ceil(log2(picture_width)), and codeword Y can be an FLC with a length equal to ceil(log2(picture_height)).
[0185] Knowing the width of the image, Figure 10-11 The two cases shown in are interchangeable.
[0186] In a variation of this embodiment, for each rectangular partition (e.g., rectangular tile group), instead of signaling the width and height of each rectangular partition (e.g., rectangular tile group), only the difference between the potential position of the lower right corner (B, retained in the stack) and the desired lower right corner (C) is signaled. In this way, the desired lower right corner position is obtained from the potential position of the lower right corner (picked from the stack) and the signaled difference. After this step, the stack is updated with the next potential pair of upper left corner and lower right corner.
[0187] In some embodiments, the decoder may perform all or a subset of the following steps:
[0188] 1. Initialize a stack with two entries and the image size to the potential top left and bottom right corners of the first rectangular partition;
[0189] 2. For each rectangular partition in the ordered list of addresses of rectangular partitions (possibly except the last one), perform the following operations: a) parse (one or more) syntax elements that specify the difference between the potential lower right corner and the expected lower right corner of the current partition from the video bitstream; b) use the stack information and the parsed syntax elements to determine the position of the rectangular partition in the picture; c) update the stack by adding new entries for possible future possible upper left corner positions and lower right corner positions of the partition in the picture.
[0190] 3. Decoding the picture or the portion of the picture according to the rectangular partition structure, wherein the rectangular partition structure contains at least one rectangular partition whose entire left border and entire top border consist of the picture border or a previously decoded rectangular partition.
[0191] The following table shows an exemplary syntax for Example 1 over JVET-M0853. Modifications to JVET-M0853 are marked with added syntax underlined and removed portions crossed out.
[0192]
[0193]
[0194] The semantics of the new / modified elements are shown below.
[0195] bottom_right_tile_offset[i] specifies the bottom right corner of the i-th tile group using the following process (the unit used for the calculation is the number of tiles in the tile grid, A is a list of potential top left corners of the next rectangular partition, and B is a list of potential bottom right corners of the next rectangular partition):
[0196]
[0197]
[0198] The code listed above is provided below without the embedded comments:
[0199]
[0200] In a variation of this embodiment, the lower right corner of the last rectangular group is not determined in the for(){} loop, but the lower right corner of the last rectangular partition is specified by the end of the picture.
[0201] In one version of this embodiment, the depth of the stack is limited to some integer value.
[0202] In an alternative to this embodiment, an array data structure is used to implement the functionality of the stack. This can be implemented using an array of a maximum size equal to the number of rectangular partitions and, for example, a pointer to the location of the active array element to be used to point to the next rectangular partition. Each time an element is added to or read from the array, the pointer value is updated.
[0203] Example 6. Recursive process
[0204] In the sixth embodiment, a recursive method is used to derive the rectangular partitions of the picture. Alternatively, a recursive method is used to derive the upper left position of the current partition.
[0205] In one example, a recursive method is defined as follows.
[0206] - The recursive method R accepts two inputs: a rectangular region P and a position C within the rectangular region.
[0207] - Pick the value at position C in each call to R from the given list L.
[0208] - In the recursive method R, if C is the lower right corner of the image, the method R outputs P as a rectangular partition. If C is not the lower right corner of the image, the process continues as follows:
[0209] ◦ Method R outputs the rectangle Q defined by taking the upper left corner of P as the upper left corner of Q and C as the lower right corner of Q as a rectangular partition,
[0210] ◦ Method R makes a recursive call to R with new input parameters Pʹ and Cʹ defined as follows:
[0211] ▪ Pʹ is a rectangle in the not-yet-partitioned area with an upper left corner T equal to the smallest address in the not-yet-partitioned area and a lower right corner B defined as follows: If T is located on the left border of the picture, then B is the lower right corner of the picture. If T is not located on the left border of the picture, then B is the largest address of the rectangular partition whose address T-1 is located on the right border of the picture and at least one address on the same line as B belongs to the same partition.
[0212] ▪ Cʹ is specified in the list L. The value of Cʹ should be within the rectangular region of Pʹ.
[0213] Once all recursive calls have been executed, the image is partitioned.
[0214] This embodiment can be combined with any of embodiments 2 to 4 depending on how the rectangular partition is signaled, for example, using the top left and bottom right corners, using the top left and width and height, and using the distance to a fixed point to signal the rectangular partition.
[0215] In one version of this embodiment, the depth of the recursion is limited to some integer value.
[0216] Example 7. Process using for loop
[0217] In a seventh embodiment, the derivation of the upper left position of the current partition is performed using a for loop. As described in Embodiment 1, the decoder derives the position and / or size of the partition in a tile raster scan order. Prior to this derivation, the decoder initializes a list of tiles in the tracking picture that are not yet associated with a partition. The size of the list is equal to the number of tiles in the picture, and the list is initialized so that all tiles in the picture are indicated as not yet associated with a partition.
[0218] For the current partition, a for loop is used that iterates over the tiles in raster scan order. The for loop iterates over the list, and when a tile is found that is not yet associated with a partition, the for loop stops. The first tile found that is not yet associated with a partition in raster scan order identifies the upper left position of the current partition, because the tile found is the upper left tile included in the current partition. Then, as described elsewhere in this disclosure, the size or lower right tile of the current partition is determined. After this, the tiles that belong to the current partition (or are included in the current partition) are identified, and the list is updated so that the tiles that belong to the current partition are indicated as being associated with the partition.
[0219] The decoder may perform all or a subset of the following steps for this embodiment to decode a picture:
[0220] 1. Decode the tile partition structure from one or more syntax elements in the bitstream. This syntax is preferably located in a picture parameter set.
[0221] 2. Determine the number of tile columns, the number of tile rows and the number of tiles N present in the picture from syntax elements in the bitstream. This syntax is preferably in a picture parameter set.
[0222] 3. Decode multiple partitions present in the picture, where each partition consists of an integer number of tiles. The partitions may all be rectangular in shape, so that the size of each partition may be described by a height and a width in terms of the number of tiles. For example, a partition may have a height of 3 tiles and a width of 4 tiles.
[0223] 4. Initialize a list L of size N, where each entry in list L corresponds to a tile in the picture, and the entries are arranged in raster scan order so that the nth entry in L corresponds to the nth tile in the picture in raster scan order. Set each of the N entries in list L to a value indicating that the corresponding tile does not belong to a partition.
[0224] 5. Use the following substeps to deduce the size and / or location of the current partition:
[0225] a. Decoding one or more position syntax elements of the current partition from the bitstream;
[0226] b. Deriving the size and / or position of the current partition from the value(s) of the position syntax element(s) together with the size(s) and / or position(s) of the previously derived partition(s) by the following ordered steps:
[0227] i. The top left position of the current partition is derived as the position of the first tile in raster scan order that is not included in any previously derived partition. This is done by performing a for loop over the elements in list L until an entry is found with a value indicating that the corresponding tile does not belong to a partition.
[0228] ii. Determine the size and / or lower right tile position of the current partition as described elsewhere in this disclosure.
[0229] iii. As described elsewhere in this disclosure, use the derived upper left position and size and / or lower right tile position to identify tiles that belong to (or are included in) the current partition. Then, update the list L so that the entries in the list L corresponding to the tiles that belong to the current partition are set to values indicating that the corresponding tiles do belong to the partition.
[0230] 6. Decode the image using the derived size and / or position.
[0231] This embodiment can be combined with any of embodiments 2 to 4 depending on how the rectangular partitions are defined, for example, using top left and bottom right corners, using top left and width and height, and using distance to a fixed point to signal a rectangular tile partition.
[0232] Combining Example 7 with Example 2
[0233] In some embodiments, Embodiment 7 is combined with Embodiment 2. Exemplary syntax and semantics over JVET-M0853 are as follows.
[0234] The following table provides an exemplary syntax for Example 7 combined with Example 2 on top of JVET-M0853. Modifications to JVET-M0853 are marked.
[0235]
[0236] The semantics of the new / modified elements are shown below.
[0237] bottom_right_tile_idx[i] specifies the tile index of the tile located at the bottom right corner of the i-th tile group. When not present, the variables top_left_tile_idx[i] and bottom_right_tile_idx[i] are both set to i. The length of the bottom_right_tile_idx[i] syntax element is Ceil(Log2(NumTilesInPic)) bits.
[0238] A requirement for bitstream consistency is that any particular tile should only be included in one tile group.
[0239] The variable NumTilesInTileGroup[i], which specifies the number of tiles in a tile group, and related variables are derived as follows:
[0240]
[0241] Combining Example 7 with Example 3
[0242] The following syntax and semantics show how embodiment 7 can be combined with embodiment 3. Each partition is signaled using one width codeword and one height codeword, and this process is based on a for loop to find the top left position of the current partition.
[0243] Changes to JVET-M0853 are marked with added syntax underlined and removed syntax crossed out.
[0244]
[0245]
[0246] The semantics of the new / modified elements are shown below.
[0247] tile_group_height_minus1[i] plus 1 specifies the height of the tile group in number of tiles. The length of the tile_group_height_minus1[i] syntax element is Ceil(Log2(num_tile_rows_minus1 + 1)) bits. When not present or num_tile_rows_minus1 is equal to 0, tile_group_height_minus1[i] is inferred to be equal to 0.
[0248] tile_group_width_minus1[i] plus 1 specifies the width of the tile group in terms of the number of tiles. The length of the tile_group_width_minus1[i] syntax element is Ceil(Log2(num_tile_columns_minus1 + 1)) bits. When not present or num_tile_columns_minus1 is equal to 0, tile_group_width_minus1[i] is inferred. ] is equal to 0.
[0249] A requirement for bitstream consistency is that any particular tile should only be included in one tile group.
[0250] The variable NumTilesInTileGroup[i], which specifies the number of tiles in a tile group, and related variables are derived as follows:
[0251]
[0252] Example 8. Restrictions
[0253] This embodiment describes restrictions in the semantics above M0853 to ensure the third rectangular partitioning requirement stated in JVET-M_Notes_dA.
[0254] In a variation of this embodiment, the constraint defines an allowed range for the position of the lower right corner of the next rectangular partition in the picture in scan order.
[0255] In another variation of this embodiment, the limit defines an allowed range for the width and height of the next rectangular partition in the picture in scan order.
[0256] In another variation of this embodiment, the constraint defines an allowed range of addresses for the lower right corner of the next rectangular partition in the picture in scan order.
[0257] The following are example proposed restrictions to be added to the specification text above M0853:
[0258]
[0259] In some embodiments, the decoder may perform a check of the constraints specified above, and if such constraints are not met, the decoder may determine that the bitstream is erroneous and, in response to detecting that an error has occurred, perform error concealment and / or report the error to the source of the encoded bitstream over a communications network or as a notification to a user.
[0260] Example 9. Distance relative to a fixed point
[0261] In a ninth embodiment, the spatial partition structure as in embodiment 1 is signaled by one or more syntax elements that specify the distance of the lower right corner of a rectangular partition relative to a fixed point in the picture.
[0262] Example 10. Other sequences
[0263] In a tenth embodiment, the method from any of the previous embodiments is used, but another predefined or signaled order is used instead of the raster scan order. As an example, the predefined order may be a Z-order. Fig.13A shows the raster scan order, and Fig. 13B The Z-order is shown.
[0264] As an example, in this variation, Embodiment 1 becomes: the upper left position of the current partition is derived as the position of the first tile that is not included in any previously derived partition in a predefined order.
[0265] In one embodiment, the Z-order is used as the predefined order: the top left position of the current partition is derived as the position of the first tile that is not included in any previously derived partition in the Z-order.
[0266] Example 11.
[0267] Any combination of the embodiments provided above (eg, embodiments 1-10).
[0268] Fig.14A1400 is a flow chart illustrating a process 1400 according to an embodiment. Process 1400 is a method for decoding a picture from a bitstream. The method includes decoding a tile partition structure from one or more syntax elements in the bitstream (1410); determining the number of tiles N in the picture (1420); decoding multiple partitions in the picture, where each partition includes an integer number of tiles (1430); deriving a size and / or position of a current partition (1440); and the method includes decoding the picture using the derived size and / or position (1450). Fig. 14B As shown in , deriving the size and / or position of the current partition (1440) includes: decoding one or more position syntax elements of the current partition from the bitstream (1442); deriving the upper left position of the current partition as the position of the first tile in the raster scan order that is not included in one or more previously derived partitions (1444); and deriving the size and / or position of the current partition from the values of the one or more position syntax elements together with the size and / or position of one or more previously derived partitions (1446).
[0269] In some embodiments, the rectangular partitions include tile groups.
[0270] In some embodiments, the tile partition structure includes at least three rectangular partitions, wherein at least one boundary of at least one rectangular partition has a portion in common with at least two other rectangular partitions.
[0271] In some embodiments, one or more previously derived partitions have been derived in a raster scan order.
[0272] In some embodiments, a partition structure, when decoded, has each of its entire left boundary and its entire top boundary at a picture boundary or adjacent to one or more previously decoded partitions.
[0273] In some embodiments, the one or more position syntax elements include a syntax element representing a tile index, where the tile index is a number in the range of 0 to N-1, inclusive, and where N indicates the number of tiles in the picture, and the tile index indicates the position of a lower right tile of the current partition.
[0274] In some embodiments, the one or more position syntax elements include a syntax element representing the y-coordinate of the position of the lower right tile of the current partition and a syntax element representing the x-coordinate of the position of the lower right tile of the current partition, and the lower right position of the current partition is derived from the coordinate values.
[0275] In some embodiments, the one or more position syntax elements include a syntax element representing the width of the current partition in the number of tiles and a syntax element representing the height of the current partition in the number of tiles, and the lower right position of the current partition is derived by adding the values of the width syntax element and the height syntax element to the derived upper left position of the current partition.
[0276] In some embodiments, if the current partition is the last rectangular partition in raster scan order, the syntax element is not decoded.
[0277] In some embodiments, the one or more position syntax elements include one or more syntax elements that specify a distance between a lower right corner of the current partition and point B, where point B is determined by a previously signaled rectangular partition.
[0278] In some embodiments, a stack data structure is used to determine the locations of rectangular partitions in a picture.
[0279] In some embodiments, an array data structure is used to determine the locations of rectangular partitions in a picture.
[0280] In some embodiments, a recursive method is used to partition the picture into rectangular partitions.
[0281] In some embodiments, the method includes: initializing a list L of size N, wherein the list L includes N entries, wherein each entry in the list L corresponds to a tile in a picture, and one or more entries are arranged in a raster scan order such that the nth entry in L corresponds to the nth tile in the picture in a raster scan order, and wherein each of the N entries in the list L is initialized to a value indicating that the corresponding tile does not belong to a partition; deriving an upper left position of a current partition, wherein deriving the upper left position of the current partition includes executing a for loop on the elements in the list L until an entry having a value indicating that the corresponding tile does not belong to the partition is found; using the derived upper left position and lower right position to identify a tile included in the current partition; and updating the list L so that entries in the list L corresponding to tiles belonging to the current partition are set to values indicating that the corresponding tiles do belong to the partition.
[0282] In some embodiments, the position of the lower right corner of a rectangular partition i in the picture is restricted to the rectangular area defined by other rectangular partitions j in the scanning order, where j <i。
[0283] In some embodiments, the width and height of a rectangular partition i in a picture are restricted to the rectangular area defined by other rectangular partitions j in scan order, where j <i。
[0284] In some embodiments, the address or position of the lower right corner of a rectangular partition i in the picture is restricted to a subset of the addresses defined by other rectangular partitions j in scan order, where j <i。
[0285] In some embodiments, for each rectangular partition, the spatial partition structure is signaled by one or more syntax elements that specify the distance of the lower right corner to point B, where point B is fixed.
[0286] In some embodiments, deriving the size and / or position of the current partition includes deriving which tiles in the picture belong to the current partition.
[0287] Fig.15A 15 is a flow chart illustrating a process 1500 according to an embodiment. Process 1500 is a method for encoding a picture into a bitstream. The method includes: encoding a tile partition structure as one or more syntax elements in a bitstream (1510); determining a number of tiles N in a picture (1520); encoding a plurality of partitions in the picture, wherein each partition includes an integer number of tiles (1530); deriving a size and / or position of a current partition (1540); and encoding the picture using the derived size and / or position (1550). Fig. 15B As shown in , deriving the size and / or position of the current partition (1540) includes: encoding one or more position syntax elements of the current partition into a bitstream (1542); deriving the upper left position of the current partition as the position of the first tile in raster scan order that is not included in one or more previously derived partitions (1544); and deriving the size and / or position of the current partition from the values of the one or more position syntax elements together with the size and / or position of one or more previously derived partitions (1546).
[0288] In some embodiments, the rectangular partitions include tile groups.
[0289] In some embodiments, the tile partition structure includes at least three rectangular partitions, wherein at least one boundary of at least one rectangular partition has a portion in common with at least two other rectangular partitions.
[0290] In some embodiments, one or more previously derived partitions have been derived in a raster scan order.
[0291] In some embodiments, the one or more position syntax elements include a syntax element representing a tile index, where the tile index is a number in the range of 0 to N-1, inclusive, and where N indicates the number of tiles in the picture, and the tile index indicates the position of a lower right tile of the current partition.
[0292] In some embodiments, the one or more position syntax elements include a syntax element representing the y-coordinate of the position of the lower right tile of the current partition and a syntax element representing the x-coordinate of the position of the lower right tile of the current partition, and the lower right position of the current partition is derived from the coordinate values.
[0293] In some embodiments, the one or more position syntax elements include a syntax element representing the width of the current partition in the number of tiles and a syntax element representing the height of the current partition in the number of tiles, and the lower right position of the current partition is derived by adding the values of the width syntax element and the height syntax element to the derived upper left position of the current partition.
[0294] In some embodiments, the one or more position syntax elements include one or more syntax elements that specify a distance between a lower right corner of the current partition and point B, where point B is determined by a previously signaled rectangular partition.
[0295] In some embodiments, a stack data structure is used to determine the locations of rectangular partitions in a picture.
[0296] In some embodiments, an array data structure is used to determine the locations of rectangular partitions in a picture.
[0297] In some embodiments, a recursive method is used to partition the picture into rectangular partitions.
[0298] In some embodiments, the method further includes: initializing a list L of size N, wherein the list L includes N entries, wherein each entry in the list L corresponds to a tile in the picture, and one or more entries are arranged in a raster scan order so that the nth entry in L corresponds to the nth tile in the picture in a raster scan order, and wherein each of the N entries in the list L is initialized to a value indicating that the corresponding tile does not belong to a partition; deriving the upper left position of the current partition, wherein deriving the upper left position of the current partition includes executing a for loop on the elements in the list L until an entry with a value indicating that the corresponding tile does not belong to the partition is found; using the derived upper left position and lower right position to identify the tiles included in the current partition; and updating the list L so that the entries in the list L corresponding to the tiles belonging to the current partition are set to values indicating that the corresponding tiles do belong to the partition.
[0299] In some embodiments, the position of the lower right corner of a rectangular partition i in the picture is restricted to the rectangular area defined by other rectangular partitions j in the scanning order, where j <i。
[0300] In some embodiments, the width and height of a rectangular partition i in a picture are restricted to the rectangular area defined by other rectangular partitions j in scan order, where j <i。
[0301] In some embodiments, the address or position of the lower right corner of a rectangular partition i in the picture is restricted to a subset of the addresses defined by other rectangular partitions j in scan order, where j <i。
[0302] In some embodiments, for each rectangular partition, the spatial partition structure is signaled by one or more syntax elements that specify the distance of the lower right corner to point B, where point B is fixed.
[0303] In some embodiments, deriving the size and / or position of the current partition includes deriving which tiles in the picture belong to the current partition.
[0304] Fig.16 1602 is a diagram illustrating functional units of decoder 1602 according to some embodiments. Fig.16 As shown in , the decoder 1602 includes: a first decoding unit 1604 for decoding a tile partition structure from one or more syntax elements in a bitstream; a determination unit 1606 for determining the number N of tiles in a picture; a second decoding unit 1608 for decoding multiple partitions in a picture, wherein each partition includes an integer number of tiles; a first derivation unit 1610 for deriving the size and / or position of a current partition; a third decoding unit 1612 for decoding one or more position syntax elements of the current partition from the bitstream; a second derivation unit 1614 for deriving the upper left position of the current partition as the position of the first tile that is not included in one or more previously derived partitions in a raster scan order; a third derivation unit 1616 for deriving the size and / or position of the current partition from the values of the one or more position syntax elements together with the size and / or position of one or more previously derived partitions; and a using unit 1618 for decoding the picture using the derived size and / or position.
[0305] Fig.17 17 is a diagram illustrating functional units of encoder 1702 according to some embodiments. Fig.17As shown in , the encoder 1702 includes: a first encoding unit 1704 for encoding a tile partition structure as one or more syntax elements in a bitstream; a determination unit 1706 for determining the number of tiles N in a picture; a second encoding unit 1708 for encoding multiple partitions in the picture, wherein each partition includes an integer number of tiles; a first derivation unit 1710 for deriving the size and / or position of the current partition; a third encoding unit 1712 for encoding one or more position syntax elements of the current partition into the bitstream; a second derivation unit 1714 for deriving the upper left position of the current partition as the position of the first tile that is not included in one or more previously derived partitions in a raster scan order; a third derivation unit 1716 for deriving the size and / or position of the current partition from the values of the one or more position syntax elements together with the size and / or position of one or more previously derived partitions; and a using unit 1718 for encoding the picture using the derived size and / or position.
[0306] Fig.18 is a block diagram of a node (eg, decoder 1602 and encoder 1702) according to some embodiments. Fig.18As shown in , the node may include: a processing circuit (PC) 1802, which may include one or more processors (P) 1855 (e.g., a general-purpose microprocessor and / or one or more other processors, such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), etc.); a network interface 1848 including a transmitter (Tx) 1845 and a receiver (Rx) 1847 for enabling the node to transmit data to and receive data from other nodes connected to a network 1110 (e.g., an Internet Protocol (IP) network), the network interface 1848 being connected to the network 1110; and a local storage unit (also referred to as a "data storage system") 1808, which may include one or more non-volatile storage devices and / or one or more volatile storage devices. In embodiments where the PC 1802 includes a programmable processor, a computer program product (CPP) 1841 may be provided. The CPP 1841 includes a computer-readable medium (CRM) 1842 storing a computer program (CP) 1843, and the CP 1843 includes computer-readable instructions (CRI) 1844. CRM 1842 can be a non-transitory computer-readable medium, such as a magnetic medium (e.g., a hard disk), an optical medium, a memory device (e.g., a random access memory, a flash memory), etc. In some embodiments, CRI 1844 of computer program 1843 is configured so that when executed by PC 1802, CRI causes the node to perform the steps described herein (e.g., the steps described in the reference flow charts herein). In other embodiments, the node may be configured to perform the steps described herein without the need for code. That is, for example, PC 1802 may consist solely of one or more ASICs. Therefore, the features of the embodiments described herein may be implemented in hardware and / or software.
[0307] Overview of various embodiments
[0308] A1. A method for decoding a picture from a bitstream, the method comprising: decoding a tile partition structure from one or more syntax elements in the bitstream; determining the number N of tiles in the picture; decoding multiple partitions in the picture, wherein each partition includes an integer number of tiles; deriving the size and / or position of the current partition, wherein deriving the size and / or position of the current partition comprises: decoding one or more position syntax elements of the current partition from the bitstream, deriving the upper left position of the current partition as the position of the first tile that is not included in one or more previously derived partitions in a raster scan order, and deriving the size and / or position of the current partition from the values of the one or more position syntax elements together with the size and / or position of one or more previously derived partitions; and decoding the picture using the derived size and / or position.
[0309] A2. The method of embodiment A1, wherein the rectangular partition comprises a tile group.
[0310] A3. The method of embodiment A1 or A2, wherein the tile partition structure comprises at least three rectangular partitions, wherein at least one boundary of at least one rectangular partition has a portion in common with at least two other rectangular partitions.
[0311] A4. The method of any of the preceding embodiments, wherein the one or more previously derived partitions have been derived in a raster scan order.
[0312] A5. The method of any of the previous embodiments, wherein the partition structure when decoded has each of its entire left boundary and entire top boundary at a picture boundary or adjacent to one or more previously decoded partitions.
[0313] A6. The method of any of the previous embodiments, wherein the one or more position syntax elements include a syntax element representing a tile index, wherein the tile index is a number in the range of 0 to N-1, inclusive, and wherein N indicates the number of tiles in the picture, and the tile index indicates the position of the lower right tile of the current partition.
[0314] A7. The method of any one of embodiments A1 to A5, wherein the one or more position syntax elements include a syntax element representing the y-coordinate of the position of the lower right tile of the current partition and a syntax element representing the x-coordinate of the position of the lower right tile of the current partition, and the lower right position of the current partition is derived from the coordinate values.
[0315] A8. The method of any one of embodiments A1 to A5, wherein the one or more position syntax elements include a syntax element representing the width of the current partition in terms of the number of tiles and a syntax element representing the height of the current partition in terms of the number of tiles, and the lower right position of the current partition is derived by adding the values of the width syntax element and the height syntax element to the derived upper left position of the current partition.
[0316] A9. The method of embodiment A8, wherein if the current partition is the last rectangular partition in raster scan order, then the syntax element is not decoded.
[0317] A10. The method of any one of embodiments A1 to A5, wherein the one or more position syntax elements include one or more syntax elements that specify a distance between a lower right corner of the current partition and point B, wherein point B is determined by a previously signaled rectangular partition.
[0318] A11. The method of any preceding embodiment, wherein a stack data structure is used to determine the locations of rectangular partitions in the picture.
[0319] A12. The method of any one of embodiments A1 to A10, wherein an array data structure is used to determine the location of the rectangular partition in the picture.
[0320] A13. The method of any one of embodiments A1 to A10, wherein a recursive method is used to partition the picture into rectangular partitions.
[0321] A14. The method of any one of embodiments A5 to A10 further includes: initializing a list L of size N, wherein the list L includes N entries, wherein each entry in the list L corresponds to a tile in the picture, and one or more entries are arranged in a raster scan order so that the nth entry in L corresponds to the nth tile in the picture in a raster scan order, and wherein each of the N entries in the list L is initialized to a value indicating that the corresponding tile does not belong to a partition; deriving the upper left position of the current partition, wherein deriving the upper left position of the current partition includes executing a for loop on the elements in the list L until an entry with a value indicating that the corresponding tile does not belong to the partition is found; using the derived upper left position and lower right position to identify the tiles included in the current partition; and updating the list L so that the entries in the list L corresponding to the tiles belonging to the current partition are set to values indicating that the corresponding tiles do belong to the partition.
[0322] A15. The method of any of the previous embodiments, wherein the position of the lower right corner of a rectangular partition i in the picture is restricted to a rectangular area defined by other rectangular partitions j in scan order, where j <i。
[0323] A16. The method of any preceding embodiment, wherein the width and height of a rectangular partition i in the picture are restricted to the rectangular area defined by other rectangular partitions j in scan order, where j <i。
[0324] A17. The method of any preceding embodiment, wherein the address or position of the lower right corner of a rectangular partition i in the picture is restricted to a subset of the addresses defined by other rectangular partitions j in scan order, where j <i。
[0325] A18. The method of any one of embodiments A1 to A8, wherein for each rectangular partition, the spatial partition structure is signaled by one or more syntax elements specifying a distance from a lower right corner to a point B, wherein point B is fixed.
[0326] A19. The method of any one of embodiments A1 to A18, wherein deriving the size and / or position of the current partition comprises deriving which tiles in the picture belong to the current partition.
[0327] A20. A computer program comprising instructions which, when executed by a processing circuit, cause the processing circuit to perform the method of any one of embodiments A1-A19.
[0328] A21. A carrier containing the computer program of embodiment A20, wherein the carrier is one of an electronic signal, an optical signal, a radio signal and a computer-readable storage medium.
[0329] B1. A method for encoding a picture into a bitstream, the method comprising: encoding a tile partition structure as one or more syntax elements in a bitstream; determining the number of tiles N in the picture; encoding multiple partitions in the picture, wherein each partition includes an integer number of tiles; deriving the size and / or position of the current partition, wherein deriving the size and / or position of the current partition comprises: encoding one or more position syntax elements of the current partition into the bitstream, deriving the upper left position of the current partition as the position of the first tile that is not included in one or more previously derived partitions in raster scan order, and deriving the size and / or position of the current partition from the values of the one or more position syntax elements together with the size and / or position of one or more previously derived partitions; and encoding the picture using the derived size and / or position.
[0330] B2. The method of embodiment B1, wherein the rectangular partition comprises a tile group.
[0331] B3. The method of embodiment B1 or B2, wherein the tile partition structure comprises at least three rectangular partitions, wherein at least one boundary of at least one rectangular partition has a portion in common with at least two other rectangular partitions.
[0332] B4. The method of any of the preceding embodiments, wherein the one or more previously derived partitions have been derived in a raster scan order.
[0333] B5. The method of any of the previous embodiments, wherein the one or more position syntax elements include a syntax element representing a tile index, wherein the tile index is a number in the range of 0 to N-1, inclusive, and wherein N indicates the number of tiles in the picture, and the tile index indicates the position of the lower right tile of the current partition.
[0334] B6. The method of any one of embodiments B1 to B4, wherein the one or more position syntax elements include a syntax element representing the y-coordinate of the position of the lower right tile of the current partition and a syntax element representing the x-coordinate of the position of the lower right tile of the current partition, and the lower right position of the current partition is derived from the coordinate values.
[0335] B7. The method of any one of embodiments B1 to B5, wherein the one or more position syntax elements include a syntax element representing the width of the current partition in terms of the number of tiles and a syntax element representing the height of the current partition in terms of the number of tiles, and the lower right position of the current partition is derived by adding the values of the width syntax element and the height syntax element to the derived upper left position of the current partition.
[0336] B8. The method of any one of embodiments B1 to B4, wherein the one or more position syntax elements include one or more syntax elements that specify a distance between a lower right corner of the current partition and point B, wherein point B is determined by a previously signaled rectangular partition.
[0337] B9. The method of any preceding embodiment, wherein a stack data structure is used to determine the locations of rectangular partitions in the picture.
[0338] B10. The method of any one of embodiments B1 to B8, wherein an array data structure is used to determine the location of the rectangular partition in the picture.
[0339] B11. The method of any one of embodiments B1 to B8, wherein a recursive method is used to partition the picture into rectangular partitions.
[0340] B12. The method of any one of embodiments B5 to B8, further comprising: initializing a list L of size N, wherein list L includes N entries, wherein each entry in list L corresponds to a tile in a picture, and one or more entries are arranged in a raster scan order, so that the nth entry in L corresponds to the nth tile in the picture in a raster scan order, and wherein each of the N entries in list L is initialized to a value indicating that the corresponding tile does not belong to a partition; deriving the upper left position of the current partition, wherein deriving the upper left position of the current partition includes executing a for loop on the elements in list L until an entry with a value indicating that the corresponding tile does not belong to the partition is found; using the derived upper left position and lower right position to identify the tiles included in the current partition; and updating list L so that the entries in list L corresponding to the tiles belonging to the current partition are set to values indicating that the corresponding tiles do belong to the partition.
[0341] B13. The method of any of the previous embodiments, wherein the position of the lower right corner of a rectangular partition i in the picture is restricted to a rectangular area defined by other rectangular partitions j in scan order, where j <i。
[0342] B14. The method of any preceding embodiment, wherein the width and height of a rectangular partition i in the picture are restricted to the rectangular area defined by other rectangular partitions j in scan order, where j <i。
[0343] B15. The method of any preceding embodiment, wherein the address or position of the lower right corner of a rectangular partition i in the picture is restricted to a subset of the addresses defined by other rectangular partitions j in scan order, where j <i。
[0344] B16. The method of any one of embodiments B1 to B7, wherein for each rectangular partition, the spatial partition structure is signaled by one or more syntax elements that specify a distance from a lower right corner to a point B, wherein point B is fixed.
[0345] B17. The method of any one of embodiments B1 to B16, wherein deriving the size and / or position of the current partition comprises deriving which tiles in the picture belong to the current partition.
[0346] B18. A computer program comprising instructions which, when executed by a processing circuit, cause the processing circuit to perform the method of any one of embodiments B1-B17.
[0347] B19. A carrier containing the computer program of embodiment B18, wherein the carrier is one of an electronic signal, an optical signal, a radio signal and a computer-readable storage medium.
[0348] C1. A decoder for decoding a picture from a bitstream, the decoder being adapted to: decode a tile partition structure from one or more syntax elements in the bitstream; determine the number N of tiles in the picture; decode multiple partitions in the picture, wherein each partition includes an integer number of tiles; derive the size and / or position of a current partition, wherein deriving the size and / or position of the current partition includes: decoding one or more position syntax elements of the current partition from the bitstream, deriving the upper left position of the current partition as the position of the first tile that is not included in one or more previously derived partitions in a raster scan order, and deriving the size and / or position of the current partition from the values of the one or more position syntax elements together with the size and / or position of one or more previously derived partitions; and decoding the picture using the derived size and / or position.
[0349] C2. The decoder of embodiment C1 wherein the rectangular partitions include tile groups.
[0350] C3. The decoder of embodiment C1 or C2, wherein the tile partition structure comprises at least three rectangular partitions, wherein at least one boundary of at least one rectangular partition has a portion in common with at least two other rectangular partitions.
[0351] C4. The decoder of any of the previous embodiments, wherein the one or more previously derived partitions have been derived in raster scan order.
[0352] C5. The decoder of any of the previous embodiments, wherein the partition structure, when decoded, has each of its entire left border and its entire top border at a picture boundary or adjacent to one or more previously decoded partitions.
[0353] C6. The decoder of any of the previous embodiments, wherein the one or more position syntax elements include a syntax element representing a tile index, wherein the tile index is a number in the range of 0 to N-1 inclusive, and wherein N indicates the number of tiles in the picture, and the tile index indicates the position of a lower right tile of the current partition.
[0354] C7. A decoder of any one of embodiments C1 to C5, wherein the one or more position syntax elements include a syntax element representing the y-coordinate of the position of the lower right tile of the current partition and a syntax element representing the x-coordinate of the position of the lower right tile of the current partition, and the lower right position of the current partition is derived from the coordinate values.
[0355] C8. A decoder of any one of embodiments C1 to C5, wherein the one or more position syntax elements include a syntax element representing the width of the current partition in terms of the number of tiles and a syntax element representing the height of the current partition in terms of the number of tiles, and the lower right position of the current partition is derived by adding the values of the width syntax element and the height syntax element to the derived upper left position of the current partition.
[0356] C9. The decoder of embodiment C8, wherein if the current partition is the last rectangular partition in raster scan order, then the syntax element is not decoded.
[0357] C10. The decoder of any one of embodiments C1 to C5, wherein the one or more position syntax elements include one or more syntax elements that specify a distance between a lower right corner of the current partition and a point B, wherein point B is determined by a previously signaled rectangular partition.
[0358] C11. The decoder of any preceding embodiment, wherein a stack data structure is used to determine the locations of rectangular partitions in a picture.
[0359] C12. The decoder of any one of embodiments C1 to C10, wherein an array data structure is used to determine the positions of rectangular partitions in a picture.
[0360] C13. The decoder of any one of embodiments C1 to C10, wherein a recursive method is used to partition the picture into rectangular partitions.
[0361] C14. A decoder of any one of embodiments C5 to C10, the decoder being further adapted to: initialize a list L of size N, wherein list L comprises N entries, wherein each entry in list L corresponds to a tile in a picture, and one or more entries are arranged in a raster scan order such that the nth entry in L corresponds to the nth tile in the picture in a raster scan order, and wherein each of the N entries in list L is initialized to a value indicating that the corresponding tile does not belong to a partition; derive an upper left position of a current partition, wherein deriving the upper left position of the current partition comprises executing a for loop on the elements in list L until an entry having a value indicating that the corresponding tile does not belong to the partition is found; use the derived upper left position and lower right position to identify tiles included in the current partition; and update list L such that entries in list L corresponding to tiles belonging to the current partition are set to values indicating that the corresponding tiles do belong to the partition.
[0362] C15. The decoder of any previous embodiment, wherein the position of the lower right corner of a rectangular partition i in the picture is constrained to the rectangular area defined by other rectangular partitions j in scan order, where j <i。
[0363] C16. The decoder of any preceding embodiment, wherein the width and height of a rectangular partition i in a picture are restricted to the rectangular area defined by other rectangular partitions j in scan order, where j <i。
[0364] C17. The decoder of any preceding embodiment, wherein the address or position of the lower right corner of a rectangular partition i in the picture is restricted to a subset of the addresses defined by other rectangular partitions j in scan order, where j <i。
[0365] C18. The decoder of any one of embodiments C1 to C8, wherein for each rectangular partition, the spatial partition structure is signaled by one or more syntax elements specifying a distance of a lower right corner to a point B, wherein point B is fixed.
[0366] C19. The decoder of any one of embodiments C1 to C18, wherein deriving the size and / or position of the current partition comprises deriving which tiles of the picture belong to the current partition.
[0367] D1. An encoder for encoding a picture into a bitstream, the encoder being adapted to: encode a tile partition structure as one or more syntax elements in a bitstream; determine the number of tiles N in the picture; encode multiple partitions in the picture, wherein each partition includes an integer number of tiles; derive the size and / or position of a current partition, wherein deriving the size and / or position of the current partition includes: encoding one or more position syntax elements of the current partition into the bitstream, deriving the upper left position of the current partition as the position of the first tile that is not included in one or more previously derived partitions in raster scan order, and deriving the size and / or position of the current partition from the values of the one or more position syntax elements together with the size and / or position of one or more previously derived partitions; and encoding the picture using the derived size and / or position.
[0368] D2. The encoder of embodiment D1 wherein the rectangular partitions include groups of tiles.
[0369] D3. The encoder of embodiment D1 or D2, wherein the tile partition structure comprises at least three rectangular partitions, wherein at least one boundary of at least one rectangular partition has a portion in common with at least two other rectangular partitions.
[0370] D4. The encoder of any of the previous embodiments, wherein the one or more previously derived partitions have been derived in a raster scan order.
[0371] D5. The encoder method of any of the previous embodiments, wherein the one or more position syntax elements include a syntax element representing a tile index, wherein the tile index is a number in the range of 0 to N-1 inclusive, and wherein N indicates the number of tiles in the picture, and the tile index indicates the position of the lower right tile of the current partition.
[0372] D6. An encoder of any one of embodiments D1 to D4, wherein the one or more position syntax elements include a syntax element representing the y-coordinate of the position of the lower right tile of the current partition and a syntax element representing the x-coordinate of the position of the lower right tile of the current partition, and the lower right position of the current partition is derived from the coordinate values.
[0373] D7. An encoder of any one of embodiments D1 to D5, wherein the one or more position syntax elements include a syntax element representing the width of the current partition in terms of the number of tiles and a syntax element representing the height of the current partition in terms of the number of tiles, and the lower right position of the current partition is derived by adding the values of the width syntax element and the height syntax element to the derived upper left position of the current partition.
[0374] D8. The encoder of any one of embodiments D1 to D4, wherein the one or more position syntax elements include one or more syntax elements that specify a distance between a lower right corner of the current partition and point B, wherein point B is determined by a previously signaled rectangular partition.
[0375] D9. The encoder of any preceding embodiment, wherein a stack data structure is used to determine locations of rectangular partitions in a picture.
[0376] D10. The encoder of any one of embodiments D1 to D8, wherein an array data structure is used to determine the locations of rectangular partitions in a picture.
[0377] D11. The encoder of any one of embodiments D1 to D8, wherein a recursive method is used to partition the picture into rectangular partitions.
[0378] D12. An encoder of any one of embodiments D5 to D8, the encoder being further adapted to: initialize a list L of size N, wherein list L comprises N entries, wherein each entry in list L corresponds to a tile in a picture, and one or more entries are arranged in a raster scan order such that the nth entry in L corresponds to the nth tile in the picture in a raster scan order, and wherein each of the N entries in list L is initialized to a value indicating that the corresponding tile does not belong to a partition; derive an upper left position of a current partition, wherein deriving the upper left position of the current partition comprises executing a for loop on the elements in list L until an entry having a value indicating that the corresponding tile does not belong to the partition is found; use the derived upper left position and lower right position to identify tiles included in the current partition; and update list L so that entries in list L corresponding to tiles belonging to the current partition are set to values indicating that the corresponding tiles do belong to the partition.
[0379] D13. The encoder of any previous embodiment, wherein the position of the lower right corner of a rectangular partition i in the picture is constrained to the rectangular area defined by other rectangular partitions j in scan order, where j <i。
[0380] D14. The encoder of any previous embodiment, wherein the width and height of a rectangular partition i in a picture are restricted to the rectangular area defined by other rectangular partitions j in scan order, where j <i。
[0381] D15. The encoder of any previous embodiment, wherein the address or position of the lower right corner of a rectangular partition i in the picture is restricted to a subset of the addresses defined by other rectangular partitions j in scan order, where j <i。
[0382] D16. The encoder of any one of embodiments D1 to D7, wherein for each rectangular partition, the spatial partition structure is signaled by one or more syntax elements specifying a distance from a lower right corner to a point B, wherein point B is fixed.
[0383] D17. The encoder of any one of embodiments D1 to D16, wherein deriving the size and / or position of the current partition comprises deriving which tiles in the picture belong to the current partition.
[0384] Although various embodiments are described herein (including appendices, if any), it should be understood that they have been presented by way of example only and not limitation. Therefore, the breadth and scope of this disclosure should not be limited by any of the above exemplary embodiments. In addition, unless otherwise indicated herein or otherwise clearly contradicted by context, any combination of the above elements in all possible variations thereof is encompassed by this disclosure.
[0385] In addition, although the processes described above and shown in the accompanying drawings are shown as a sequence of steps, this is done for illustration purposes only. Therefore, it is contemplated that some steps may be added, some steps may be omitted, the order of the steps may be rearranged, and some steps may be performed in parallel.
Claims
1. A method (1400) for decoding a picture from a bitstream, the method comprising: decoding (1410) a tile partition structure from one or more syntax elements in the bitstream; Determining (1420) the number of tiles N in the picture; Decoding (1430) a plurality of partitions in the picture, wherein each partition includes an integer number of tiles; Derivation (1440) of a size and a position of a current partition, wherein deriving the size and the position of the current partition comprises: deriving (1442) the size of the current partition from a syntax element representing a width of the current partition in number of tiles and a syntax element representing a height of the current partition in number of tiles, and deriving (1444) an upper left position of the current partition as the position of a first tile in raster scan order that is not included in one or more previously derived partitions; The picture is decoded using the size and position derived at (1450).
2. The method of claim 1, wherein: The current partition is a tile group.
3. The method according to claim 1 or 2, wherein: The tile partition structure includes at least three rectangular partitions, wherein at least one boundary of at least one rectangular partition has a common portion with at least two other rectangular partitions.
4. The method according to any one of claims 1 to 2, wherein: The one or more previously derived partitions are derived in a raster scan order.
5. The method according to any one of claims 1 to 2, wherein: using a stack data structure to determine the location of a rectangular partition in the picture, or An array data structure is used to determine the locations of rectangular partitions in the picture.
6. The method according to any one of claims 1 to 2, wherein: A recursive method is used to partition the picture into rectangular partitions.
7. The method according to any one of claims 1 to 2, wherein: Deriving the size and position of the current partition includes determining tiles in the picture that belong to the current partition.
8. The method according to any one of claims 1 to 2, wherein: The tile partition structure, when decoded, has each of its entire left boundary and its entire top boundary at a picture boundary or adjacent to one or more previously decoded partitions.
9. The method according to any one of claims 1 to 2, wherein: If the current partition is the last rectangular partition in raster scan order, no syntax element is decoded.
10. The method according to any one of claims 1 to 2, wherein: Derivation of the top-left position of the current partition is accomplished without decoding any syntax element specifically used to indicate the top-left position.
11. A method (1500) for encoding a picture into a bitstream, the method comprising: encoding (1510) a tile partition structure as one or more syntax elements in the bitstream; Determining (1520) the number N of tiles in the picture; encoding (1530) a plurality of partitions in the picture, wherein each partition comprises an integer number of tiles; Derivation (1540) of a size and a position of a current partition, wherein deriving the size and the position of the current partition comprises: encoding (1542) the size of the current partition into a syntax element representing a width of the current partition in number of tiles and a syntax element representing a height of the current partition in number of tiles, and deriving (1544) an upper left position of the current partition as the position of a first tile in raster scan order that is not included in one or more previously derived partitions; The picture is encoded using the size and position derived at (1550).
12. The method of claim 11, wherein: The current partition is a tile group.
13. The method according to claim 11 or 12, wherein: The tile partition structure includes at least three rectangular partitions, wherein at least one boundary of at least one rectangular partition has a common portion with at least two other rectangular partitions.
14. The method according to any one of claims 11 to 12, wherein: The one or more previously derived partitions are derived in a raster scan order.
15. The method according to any one of claims 11 to 12, wherein: using a stack data structure to determine the location of a rectangular partition in the picture, or An array data structure is used to determine the location of the rectangular partition in the picture.
16. The method according to any one of claims 11 to 12, wherein: A recursive method is used to partition the picture into rectangular partitions.
17. The method according to any one of claims 11 to 12, wherein: Deriving the size and position of the current partition includes determining tiles in the picture that belong to the current partition.
18. A computer program product (1841) comprising a computer program (1843), the computer program (1843) comprising instructions (1844) which, when executed by a processing circuit (1802), cause the processing circuit (1802) to perform the method of any one of claims 1-17.
19. A computer-readable storage medium having stored thereon a computer program, which, when executed by a processing circuit (1802), causes the processing circuit (1802) to perform the method of any one of claims 1-17.
20. An apparatus for decoding a picture from a bitstream, comprising means for performing the method as claimed in any one of claims 1 to 10.
21. An apparatus for encoding a picture into a bitstream, comprising means for performing the method as claimed in any one of claims 11 to 17.
22. An apparatus comprising: Processing circuit; as well as A memory storing instructions which, when executed by the processing circuit, cause the processing circuit to perform the method according to any one of claims 1 to 17.
23. A decoder (1602) for decoding a picture from a bitstream, comprising: A first decoding unit (1604) adapted to decode a tile partition structure from one or more syntax elements in the bitstream; A determination unit (1606) adapted to determine the number N of tiles in the picture; A second decoding unit (1608) adapted to decode a plurality of partitions in the picture, wherein each partition comprises an integer number of tiles; A first derivation unit (1610) is adapted to derive a size and a position of a current partition, wherein deriving the size and the position of the current partition comprises: deriving the size of the current partition from a syntax element representing a width of the current partition in number of tiles and a syntax element representing a height of the current partition in number of tiles, and deriving the top left position of the current partition as the position of a first tile in raster scan order that is not included in one or more previously derived partitions; A using unit (1618) is adapted to decode the picture using the derived size and position.
24. The decoder of claim 23, wherein: The decoder is configured to perform the method as claimed in any one of claims 2-10.
25. An encoder (1702) for encoding a picture into a bitstream, comprising: A first encoding unit (1704) adapted to encode a tile partition structure as one or more syntax elements in the bitstream; A determination unit (1706), adapted to determine the number N of tiles in the picture; A second encoding unit (1708) adapted to encode a plurality of partitions in the picture, wherein each partition comprises an integer number of tiles; A first derivation unit (1710) is adapted to derive the size and position of a current partition, wherein deriving the size and position of the current partition comprises: encoding the size of the current partition into a syntax element representing a width of the current partition in number of tiles and a syntax element representing a height of the current partition in number of tiles, and deriving the top left position of the current partition as the position of a first tile in raster scan order that is not included in one or more previously derived partitions; A using unit (1718) is adapted to encode the picture using the derived size and position.
26. The encoder of claim 25, wherein: The encoder is configured to perform the method of any one of claims 11-17.