Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SIGNALING SEGMENT PARTITIONS IN A PARAMETER SET
Document Type and Number:
WIPO Patent Application WO/2020/127110
Kind Code:
A1
Abstract:
Enabling signaling multiple segment partitions in a single parameter set, for example, PPS. In some embodiments, multiple tile partitions may be defined in the parameter set. In such embodiments, an identifier is used to identify the segment partition to be used for the current picture. This identifier may be signaled in a segment group header, a picture header or another picture level container. A segment group may be, for example, a tile group or a slice.

Inventors:
PETTERSSON MARTIN (SE)
SJÖBERG RICKARD (SE)
DAMGHANIAN MITRA (SE)
Application Number:
PCT/EP2019/085437
Publication Date:
June 25, 2020
Filing Date:
December 16, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ERICSSON TELEFON AB L M (SE)
International Classes:
H04N19/119; H04N19/174; H04N19/70
Foreign References:
EP3024243A12016-05-25
EP2749029A12014-07-02
KR20170113384A2017-10-12
Other References:
PETTERSSON (ERICSSON) M ET AL: "AHG12: Multiple tile partitions in PPS", no. JVET-P0364, 24 September 2019 (2019-09-24), XP030217079, Retrieved from the Internet [retrieved on 20190924]
DESHPANDE (SHARPLABS) S ET AL: "On Tile Information Signaling for VVC", no. JVET-L0374, 25 September 2018 (2018-09-25), XP030193882, Retrieved from the Internet [retrieved on 20180925]
SJÖBERG (ERICSSON) R ET AL: "Flexible Tiles", no. JVET-K0260, 2 July 2018 (2018-07-02), XP030198739, Retrieved from the Internet [retrieved on 20180702]
Attorney, Agent or Firm:
ERICSSON (SE)
Download PDF:
Claims:
CLAIMS

1. A method (1000) for decoding at least a first picture (41) and a second picture (51) from a bitstream (20), the method comprising:

decoding (si 010) at least a first segment partition structure (42) and a second segment partition structure (52) from syntax elements (26) in a parameter set (21) in the bitstream (20); decoding (si 020) one or more code words (45) in a first segment group header (44) belonging to a first segment group of a first plurality of segment groups (48) of the first picture (41) to determine a first indicator value il or decoding one or more code words in a first picture header of the first picture to determine the first indicator value il, wherein the indicator value il is used to derive the first segment partition structure (42) for the first segment group from the decoded first and second segment partition structures (42, 52);

using (si 030) the first segment partition structure (42) to determine the spatial location in the first picture (41) for the first segment group;

decoding (si 040) one or more code words (55) in a second segment group header (54) belonging to a second segment group of a second plurality of segment groups (58) of the second picture (51) to determine a second indicator value i2 or decoding one or more code words in a second picture header of the second picture to determine the second indicator value i2, wherein the indicator value i2 is different from il and is used to derive the second segment partition structure (52) for the second segment group from the decoded first and second segment partition structures (42, 52); and

using (sl050) the second segment partition structure (52) to determine the spatial location in the second picture (51) for the second segment group.

2. The method of claim 1, wherein the parameter set consists of a picture parameter set, a sequence parameter set, or a picture header.

3. The method of claim 1 or 2, wherein an indicator value corresponds to an index in a list, a key in a dictionary, a pointer to an object or one or more syntax elements that represent a segment partition.

4. The method of any one of claims 1-3, wherein the segment partitions are organized in a list in the parameter set and the indicator value il is an index value used as an index in the list of segment partitions to derive the first segment partition structure (42), and the indicator value i2 is an index value used as an index in the list of segment partitions to derive the second segment partition structure (52).

5. The method of any one of claims 1-3, wherein the segment partitions are organized in a dictionary in the parameter set and the indicator value il is a key value used as a key in the dictionary of segment partitions to derive the first segment partition structure (42), and the indicator value i2 is a key value used as a key in the dictionary of segment partitions to derive the second segment partition structure (52).

6. The method of claim 4 or 5, wherein each of the indicator values il and i2 matches an entry or a key value in the list or dictionary.

7. The method of any one of claims 1-6, wherein

the indicator value il is decoded from one or more syntax elements in a first picture header of the first picture, and

the indicator value i2 is decoded from one or more syntax elements in a second picture header of the second picture.

8. The method of any one of claims 1-6, wherein

the indicator value il is decoded from a first segment group header (44) of the first picture, and

the indicator value i2 is decoded from a second segment group header (54) of the second picture.

9. The method of any one of claims 6-8, wherein an entry is delta coded in the bitstream.

10. The method of any one of claims 1-9, wherein a segment is a tile.

11. The method of any one of claims 1-10, wherein a segment group is a tile group.

12. The method of any one of claims 1-10, wherein a segment group is a slice.

13. The method of any one of claims 1-12, wherein the first picture (41) and the second picture (51) are pictures in a recovery point period.

14. The method of any one of claims 1-13, wherein at least one syntax element for a second segment partition in the parameter set is derived, copied or delta coded from a first segment partition in the parameter set.

15. The method of any one of claims 1-14, wherein

each of the first and second pictures (10) comprises a number of units (8),

a partition structure (13) partitions each of the first and second pictures into at least two segments (11), and

each of the first and second pictures comprise at least two segment groups (12) and an integer number of segments (11), and

each segment comprises an integer number of units (8).

16. The method of any one of claims 1-15, wherein

each segment (11) is independent with respect to other segments (11) such that the derivation of any intra prediction mode for a unit (16) in a current segment (15) only depends on previously derived intra prediction modes in units (17) that belong to the current segment (15) and does not depend on any intra prediction mode in a unit (18) that belongs to a different segment (14).

17. The method of any one of claims 1-16, wherein, each coded segment group (47, 57) comprises a segment group header (44, 54) and segment group data (46, 56).

18. The method of any one of claims 1-17, wherein decoding a segment partition structure from syntax elements in the parameter set comprises deriving the spatial layout of the partition structure.

19. The method of any one of claims 1-18, wherein using an indicator value i to derive a segment partition structure for a segment group comprises identifying the segment partition structure to use for the segments belonging to the segment group.

20. A method (1100) for encoding at least a first picture (41) and a second picture (51) to a bitstream (20), the method comprising:

encoding (si 110) at least a first segment partition structure (42) and a second segment partition structure (52) to the bitstream (20) using syntax elements (26) in a parameter set (21); encoding (si 120) a first indicator value il to the bitstream (20) using one or more syntax elements in a first picture header or in a first segment group header (44) of the first picture; selecting (si 130) a first segment partition structure (42) using the one or more syntax elements associated with the first indicator value il;

using (si 140) the selected first segment partition structure (42) to encode the first picture

(41);

encoding (si 150) a second indicator value i2 to the bitstream (20) using one or more syntax elements in a second picture header or in a second segment group header (54) of the second picture, wherein the second indicator value i2 is different than the first indicator value il; selecting(sl 160) a second segment partition structure (52) using the one or more syntax elements associated with the second indicator value i2; and

using (si 170) the selected second segment partition structure (52) to encode the second picture (51).

21. The method of claim 20, wherein a parameter set is a picture parameter set, sequence parameter set, and/or picture header.

22. The method of claim 20 or 21, wherein an indicator value corresponds to an index in a list, a key in a dictionary, a pointer to an object or one or more syntax elements that represents a segment partition.

23. The method of any one of claims 20-22, wherein the segment partitions are organized in a list in the parameter set and the indicator value il is an index value used as an index in the list of segment partitions to derive the first segment partition structure (42), and the indicator value i2 is an index value used as an index in the list of segment partitions to derive the second segment partition structure (52).

24. The method of any one of claims 20-22, wherein the segment partitions are organized in a dictionary in the parameter set and the indicator value il is a key value used as a key in the dictionary of segment partitions to derive the first segment partition structure (42), and the indicator value i2 is a key value used as a key in the dictionary of segment partitions to derive the second segment partition structure (52).

25. The method of claim 23 or 24, wherein each of the indicator values il and i2 matches an entry or a key value in the list or dictionary.

26. The method of claim 25, wherein an entry is delta coded in the bitstream.

27. The method in any one of claims 20-26, wherein a segment is a tile.

28. The method in any one of claims 20-27, wherein a segment group is a tile group.

29. The method of any one of claims 20-27, wherein a segment group is a slice.

30. The method of any one of claims 20-29, wherein the first picture (41) and the second picture (51) are pictures in a recovery point period.

31. The method of one of claims 20-30, wherein at least one syntax element for a second segment partition in the parameter set is derived, copied or delta coded from a first segment partition in the parameter set.

32. A computer program (1443) comprising instructions (1444) which when executed by processing circuitry (1402) causes the processing circuitry (1402) to perform the method of any one of claims 1-31.

33. A carrier containing the computer program of claim 32, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium (1442).

34. A decoding apparatus (1400) for decoding at least a first picture (41) and a second picture (51) from a bitstream (20), the decoding apparatus being confiugred to:

decode at least a first segment partition structure (42) and a second segment partition structure (52) from syntax elements (26) in a parameter set (21) in the bitstream (20);

decode one or more code words (45) in a first segment group header (44) belonging to a first segment group of a first plurality of segment groups (48) of the first picture (41) to determine a first indicator value il or decoding one or more code words in a first picture header of the first picture to determine the first indicator value il, wherein the indicator value il is used to derive the first segment partition structure (42) for the first segment group from the decoded first and second segment partition structures (42, 52);

use the first segment partition structure (42) to determine the spatial location in the first picture (41) for the first segment group;

decode one or more code words (55) in a second segment group header (54) belonging to a second segment group of a second plurality of segment groups (58) of the second picture (51) to determine a second indicator value i2 or decoding one or more code words in a second picture header of the second picture to determine the second indicator value i2, wherein the indicator value i2 is different from il and used to derive the second segment partition structure (52) for the second segment group from the decoded first and second segment partition structures (42, 52); and

use the second segment partition structure (52) to determine the spatial location in the second picture (51) for the second segment group.

35. The decoding apparatus (1400) of claim 34, the decoding apparatus being further configured to perform the method of any one of claims 2-19. 36. A decoding apparatus (1400) for decoding at least a first picture (41) and a second picture (51) from a bitstream (20), the decoding apparatus comprising:

a computer readable storage medium (1442); and

processing circuitry (1402) coupled to the computer readable storage medium, wherein the processing circuitry is configured to cause the decoding apparatus to perform the method of any one of claims 1-19.

37. An encoding apparatus (1400) for encoding at least a first picture (41) and a second picture (51) to a bitstream (20), the encoding apparatus being configured to:

encode at least a first segment partition structure (42) and a second segment partition structure (52) to the bitstream (20) using syntax elements (26) in a parameter set (21);

encode a first indicator value il to the bitstream (20) using one or more syntax elements in a first picture header or in a first segment group header (44) of the first picture;

select a first segment partition structure (42) using the one or more syntax elements associated with the first indicator value il;

use the selected first segment partition structure (42) to encode the first picture (41); encode a second indicator value i2 to the bitstream (20) using one or more syntax elements in a second picture header or in a second segment group header (54) of the second picture, wherein the second indicator value i2 is different than the first indicator value il;

select a second segment partition structure (52) using the one or more syntax elements associated with the second indicator value i2; and

use the selected second segment partition structure (52) to encode the second picture (51).

38. The encoding apparatus (1400) of claim 37, the encoding apparatus being configured to perform the method of any one of claims 21-31.

39. An encoding apparatus (1400) for encoding at least a first picture (41) and a second picture (51) to a bitstream (20), the encoding apparatus comprising:

a computer readable storage medium (1442); and

processing circuitry (1402) coupled to the computer readable storage medium, wherein the processing circuitry is configured to cause the encoding apparatus to perform the method of any one of claims 20-31.

Description:
SIGNALING SEGMENT PARTITIONS IN A PARAMETER SET

TECHNICAL FIELD

[001] This disclosure relates to encoding pictures and relates to decoding a bitstream of encoded pictures.

BACKGROUND

[002] HE VC and VVC

[003] High Efficiency Video Coding (HEVC), a.k.a. 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 bi-directional inter (B) prediction on block level from previously decoded reference pictures. The difference between the original pixel data and the predicted pixel data, referred to as the residual, is transformed into the frequency domain, quantized and then entropy coded before transmitted together with necessary prediction parameters such as prediction mode and motion vectors, also entropy coded. By quantizing the transformed residuals, a tradeoff between bitrate and quality of the video may be controlled. The level of quantization is determined by the quantization parameter (QP). The decoder performs entropy decoding, inverse quantization and inverse transformation to obtain the residual. The decoder then adds the residual to an intra prediction or an inter prediction to reconstruct a picture.

[004] MPEG and ITU-T is working on the successor to HEVC within the Joint Video

Exploratory Team (JVET). The name of this video codec under development is Versatile Video Coding (VVC) and the most recent VVC draft as of this current disclosure is the JVET-L0686.

In the context of the current disclosure, the term draft VVC draft coding standard, draft VVC standard, draft VVC specification, and VVC draft each refer to the most recent VVC draft, which may include, but is not limited to, JVET-L0686. [005] VVC block structure

[006] The draft VVC video coding standard uses a block structure referred to as quadtree plus binary tree plus ternary tree block structure (QTBT+TT) where each picture is first partitioned into square blocks called coding tree units (CTU). The size of all CTUs is identical and the partition is done without any syntax controlling it. Each CTU is further partitioned into coding units (CU) that can have either square or rectangular shapes. The CTU is first partitioned by a quad tree structure, and then the CTU may be further partitioned with equally sized partitions either vertically or horizontally in a binary structure to form coding units (CUs). A block could thus have either a square or rectangular shape. The depth of the quad tree and binary tree can be set by the encoder in the bitstream. An example of dividing a CTU using QTBT is illustrated in FIG. 1. The ternary tree (TT) part adds the possibility to divide a CU into three partitions instead of two equally sized partitions; this increases the possibilities to use a block structure that better fits the content structure in a picture.

[007] Parameter Sets

[008] HEVC specifies three types of parameter sets: the picture parameter set (PPS), the sequence parameter set (SPS), and the video parameter set (VPS). The PPS contains data that is common for a whole picture, the SPS contains data that is common for a coded video sequence (CVS) and the VPS contains data that is common for multiple CVSs.

[009] Slices

[0010] The concept of slices in HEVC divides the picture into independently coded slices, where each slice is read in raster scan order in units of CTUs. Different coding types could be used for slices of the same picture, i.e. a slice could either be an I-slice, P-slice or B- slice. The main purpose of slices is to enable resynchronization in case of data loss.

[0011] VVC is not expected to use traditional slices as in HEVC. Instead tiles are expected to play a larger role in VVC due to increased demand for spatial random access from video services including VR streaming.

[0012] VVC Tiles

[0013] The draft VVC video coding standard includes a tool called tiles that divides a picture into rectangular spatially independent regions. Tiles in the draft VVC coding standard are very similar to the tiles used in HEVC. Using tiles, a picture in VVC can be partitioned into rows and columns of samples where a tile is an intersection of a row and a column. FIG. 2 shows an example of a tile partitioning using 4 tile rows and 5 tile columns resulting in a total of 20 tiles for the picture.

[0014] The tile structure is signaled in the picture parameter set (PPS) by specifying the thicknesses of the rows and the widths of the columns. Individual rows and columns can have different sizes, but the partitioning always span across the entire picture, from left to right and top to bottom respectively.

[0015] The PPS syntax used for specifying the tile structure in the draft VVC standard is listed in Table 1 below. The full PPS is larger and is expected to grow during the development of VVC. As shown below, there is a flag si ngl e ti 1 e_i n_pi c fl ag which indicates whether tiles are used or not. If the flag is set equal to 0, the number of tiles columns and rows are specified. The uniform tile spacing flag is a flag specifying whether the column widths and row heights are explicitly signaled or whether a pre-defmed method to space the tile borders evenly should be used. If explicit signaling is indicated, the column widths are signaled one-by-one followed by the row heights. The loop filter across tiles enabled flag flag specifies whether in-loop filters across tile boundaries are turned on or off for all tile boundaries in the picture.

TABLE 1. Exemplary tile syntax in draft VVC standard

[0016] There is no decoding dependency between tiles of the same picture. This includes intra prediction, context selection for entropy coding and motion vector prediction. One exception is that in-loop filtering dependencies are generally allowed between tiles.

[0017] The bits of a coded picture in VVC is partitioned into tile_group_layer_rbsp() data chunks, where each such chunk is encapsulated into its own group network abstraction layer (NAL) unit. The data chunk consists of a tile group header and tile group data, where the tile group data consists of an integer number of coded complete tiles. Table 2 shows the related draft VVC specification standard syntax. For example, Table 2 below shows tile group layer in the draft VVC standard.

TABLE 2

[0018] The tile group header starts with a ti 1 e group pi c param eter set i d syntax element (a.k.a.,“code word”). This element specifies the picture parameter set (PPS) that should be activated and used for decoding the tile group (as shown in Table 1). The tile group address code word (a.k.a.,“syntax element”) specifies the tile address of the first tile in the tile group. The address is signaled as a number between 0 and n-1, where n is the number of tiles in the picture. Using FIG. 2 as an example, the number of tiles is equal to 20 so the valid tile group address values for this picture is between 0 and 19. The tile address specifies the tiles in raster scan order and is shown in the right portion of FIG. 2. A decoder decodes this address value and by using the tile structure information decoded from the active PPS, the decoder can derive the spatial coordinates of the first tile in the picture. Assuming, for instance, that the tiles in FIG. 2 have the same size of 256x256 luma samples, a tile address of 8 means that the y-coordinate of the first tile in the tile group is int(8 / 5) * 256 = 1*256 = 256 and the x-coordinate is (8%5)*256 = 3*256=768 in luma samples.

[0019] The next code word in the tile group header, num tiles in tile group minusl, specifies the number of tiles there are in the tile group. If there are more than one tiles in the tile group, the entry points of the tiles except the first one is signaled. First there is a code word, offset len minusl, which specifies the number of bits used for signaling each of the offsets. Then there is a list of entry point offset code words; entry point offset minusl . The list of entry point offset code words specify byte offsets in the bitstream that can be used by a decoder to find the starting point of each tile to decode them in parallel. Without these offsets, a decoder would have to parse tile data to find out where each tile starts in the bitstream. The first tile in the tile group immediately follows the tile group header so there is no byte offset sent for that tile. This means that the number of offsets is one less than the number of tiles in the tile group. Table 3 below shows tile group header in the draft VVC standard.

TABLE 3

[0020] The tile group data contains all CTUs in the tile group. First there is a for loop over all tiles in the tile group. Inside that loop there is a for loop over all CTUs in the tile. The number of CTUs in different tiles may differ as the tile row heights and tile column widths do not have to be equal. For entropy coding reasons, there is a bit set to one at the end of each tile. Each tile ends with a byte alignment which means that the data for each tile in the tile group starts on an even byte address in the bitstream. This is necessary for entry points to be specified in number of bytes. Note that the tile group header also ends with a byte alignment. Table 4 below shows title group data in the draft VYC standard.

TABLE 4

[0021] The header overhead for the tiles consist of the signaling the address, the number of tile in the tile group, byte alignments, and entry point offsets for each tile. In the draft VVC standard, the inclusion of entry point offsets in the tile group header is mandatory when tiles are enabled.

[0022] Recovery Point and the Recovery Point SEI message in HEVC

[0023] A recovery point is used to perform a random access operation in a bitstream using only temporal predicted pictures. A recovery point is also useful for refreshing the video in case of video data loss.

[0024] A decoder performing a random access operation in a bitstream decodes all pictures in a recovery point period without outputting them. When it reaches the last picture of the recovery point period, the recovery point picture, the video has been fully refreshed and the recovery point picture and the following picture may be outputted. The recovery point mechanism is sometimes referred to as gradual decoding refresh (GDR) since it refreshes the video gradually picture by picture.

[0025] In practice a GDR is created by gradually refreshing the video using intra coded blocks (e.g. CTUs). For each picture in the recovery point period a larger part of the video is refreshed until the video has been fully refreshed.

[0026] FIGS. 3 A-3B each show different example patterns for gradual decoding refresh of the video, vertical lines and a pseudo-random pattern. Other common patterns exist too, including horizontal lines and block-by-block in raster scan order. The blocks in the example may be CTUs. Gradual decoding refresh over five pictures is shown in FIGS. 3A-3B. White blocks are non-refreshed or“dirty” blocks, dark grey blocks are intra coded blocks, and dark and medium grey blocks are refreshed or“clean” blocks. FIG. 3 A shows gradual refresh using vertical lines of intra coded blocks. FIG 3B shows gradual refresh using a pseudo-random pattern.

[0027] Refreshed blocks may be configured to only predict from other refreshed blocks in the current (spatial intra prediction) and previous pictures (temporal prediction). This prevents artifacts from spreading into refreshed areas between pictures.

[0028] Slices or tiles can be used to restrict predictions between non-refreshed and refreshed blocks in an efficient way since slice and tile boundaries may turn off predictions across the boundaries but allow predictions elsewhere. In the first example, the picture may be divided into two tiles where one tile comprises the refreshed blocks and the other tile comprises the non-refreshed blocks, as shown in FIG. 4. FIG. 4 shows an example of using restrictions in tiles for GDR. In FIG. 4, tile borders are shown with thick lines where one tile is used for the clean area and one tile is used for the dirty area. The tile distribution and tile sizes are not constant over time.

[0029] Some degree of artifacts could be allowed by not restricting, or just partially restricting temporal and spatial prediction to refreshed areas.

[0030] A mechanism used in AVC and HEVC for sending messages in the bitstream that are not strictly needed for the decoding process but may aid the decoder in various ways, is the supplemental enhancement information (SEI) messages. SEI messages are signaled in a SEI NAL unit and are not normative for the decoder to parse.

[0031] One SEI message defined by HEVC and AVC is the Recovery Point SEI message. The Recovery Point SEI message is sent in the position (at the picture) in the bitstream where the recovery period starts. When a decoder tunes into the bitstream, it may start decoding all pictures in decoding order from this position without outputting them, until it reaches the recovery point picture, from where all pictures should be fully refreshed and ok to output.

[0032] The syntax for the recovery point SEI in HEVC is shown in the table 5 below.

TABLE 5

[0033] recovery _point_cnt specifies the recovery point picture from where the decoder can start outputting pictures.

[0034] exact match flag is used to identify if the recovery point picture resulting in tuning into the recovery point exactly matches the recovery point picture as if the bitstream was decoded from the previous intra decoding refresh (IDR) or IRAP picture. If the exact match flag has not been set, the recovery point picture should be virtually the same but may not be an exact match.

[0035] broken link flag is used to indicate if there is a broken link in the bitstream at the location of the SEI message. If the broken link flag is set pictures produced by starting the decoding at the location of a previous IRAP picture may contain undesirable visual artifacts that should not be displayed before the recovery picture.

[0036] In the context of the current disclosure, the following terminology for recovery points have been used: [0037] IRAP picture: Intra random access point picture. A coded picture which may not reference other pictures than itself for prediction. An IRAP picture may be used for random access.

[0038] Recovery point: a part of the bitstream where a random access operation can be performed without the use of any IRAP picture.

[0039] Recovery point period: the period of the recovery point, i.e. from the period from the first picture where the refresh is started until the last picture where the video is fully refreshed. Pictures decoded within the recovery point period are generally not output by the decoder.

[0040] Gradual decoding refresh (GDR) picture: the first picture in a recovery point period. The decoding of pictures to perform a gradual decoder refresh starts at this picture

[0041] Recovery point picture: the last picture in the recovery point period. When this picture, and the previous pictures in the recovery point period have been decoded, the video is fully refreshed. The terms“recovery” and“refresh” are used interchangeably in this description.

[0042] Segment groups, segments and units

[0043] Here we describe segment groups, segments and units. We use the term segment as a more general term than tiles, since the proposed solutions disclosed herein may be applied to different kinds of picture partitioning schemes and not only tile partitions known from HEVC and the VVC draft. In this section, tile is one embodiment of a segment, but there may be alternative segment embodiments.

[0044] FIG. 5 A, FIG. 5B, and FIG. 5C an exemplary partitioning of a picture 10 into units 8, segments 11, and segment groups 12, respectively. FIG. 5A shows that picture 10 can be partitioned into 64 units 8. FIG. 5B shows the segment partition structure 13 of the same picture 10 consisting of 16 segments 11. The partition structure 13 is shown by dashed lines. Each segment 11 consists of a number of units. A segment can either consist of an integer number of complete units or a combination of complete and partial units. A number of segments form a segment group. FIG. 5C shows the segment group partitioning of the same picture 10 which consist of 8 segment groups. The segment group may consist of segments in raster scan order. Alternatively, the segment group may consist of any group of segments that together form a rectangle. Alternatively, the segment group may consist of any subset of segments.

[0045] FIG. 6 shows a picture 10 where the dashed lines show a partition structure dividing the picture into four segments. FIG. 6 shows three units 16, 17, 18. As shown in the figure, two units 16, 17 belong to one current segment 15 and one unit 18 belongs to a different, neighboring segment 14. The segments are independent with respect to other segments, which means that segment boundaries are handled similar to picture boundaries when decoding the units. This affects the derivation process of elements during decoding such as e.g. the derivation of intra prediction modes and the derivation of quantization parameter values.

[0046] Intra modes are well known in the current art and are used and signaled for units that only use prediction from previously decoded samples of the current picture for sample prediction. It is common that the derivation of the intra prediction mode in a current unit 16 depends on previously derived intra prediction modes in other, neighboring units 17. With segments being independent, the derivation of the intra prediction mode in a current unit 16 may only depend on previously derived intra prediction modes in units 17 that belong to the current segment 15 and may not depend on any intra prediction mode in any unit 18 that belongs to a different segment 14.

[0047] This means that the partition structure in FIG. 6 makes the intra prediction modes in units 18 in a different segment 14 unavailable for the derivation of the intra prediction mode for the units 16 in a current segment 15. Note that the mode in some units 18 in a different segment may well have been used for derivation of an intra prediction mode in a unit 16 in a current segment 15 if those units would have belonged to the same segment. Instead, the segment boundary may have the same effect on intra mode derivation as a picture boundary for the units 16 in a current segment 15.

[0048] In the context of the current disclosure, a segment may be a tile or a slice and a segment group may be a tile group. In the current disclosure, the terms“tile” and“segment” may be used interchangeably. In some embodiments, a unit may be equivalent to a CTU. In the current disclosure, the terms“partition”,“structure” and“partition structure” may also be used interchangeably. SUMMARY

[0049] In one aspect, the embodiments described in the current disclosure are directed to enabling signaling multiple segment partitions in a single parameter set, for example the PPS. In some embodiments, multiple tile partitions may be defined in the parameter set. In such embodiments, an identifier is used to identify the segment partition to be used for the current picture. This identifier may be signaled in a segment group header, a picture header or another picture level container. A segment group may be, for example, a tile group or a slice.

[0050] The general case for signaling multiple segment partitions in a single parameter set is described below according to some embodiments.

[0051] In some embodiments, a list of tile partitions is signaled in a single PPS. An index is signaled in the tile group header of each tile group to identify which tile partition in the list of tile partitions to use for the tile group.

[0052] In some embodiments, a dictionary of tile partitions is signaled in a single PPS.

An index is signaled in the tile group header of each tile group that matches a key in the dictionary of tile partitions, for which the corresponding tile partition is selected to be used for the tile group.

[0053] In some embodiments, at least a part of a second segment partition is derived from at least a part of the first segment partition in a parameter set. In some embodiments, deriving at least a part of the second segment partition comprises copying or delta coding from at least the part of the first segment partition in the parameter set.

[0054] An advantage of the embodiments disclosed herein is that different tile partitions used by different pictures may be signaled in the same PPS. For example, one use case where it is beneficial to use different tile partitions for different pictures is for gradual decoding refresh (GDR) where the optimal tile structure changes between pictures.

[0055] By signaling the different tile partitions in one PPS instead of signaling one PPS per picture and tile partition, signaling of redundant data is prevented, thereby saving bits.

[0056] Accordingly, in one aspect there is provided a decoding method for decoding at least a first picture and a second picture from a bitstream. In one embodiment the decoding method includes decoding at least a first segment partition structure and a second segment partition structure from syntax elements in a parameter set in the bitstream. The decoding method also includes decoding one or more code words in a first segment group header belonging to a first segment group of a first plurality of segment groups of the first picture to determine a first indicator value il or decoding one or more code words in a first picture header of the first picture to determine the first indicator value il, wherein the indicator value il is used to derive the first segment partition structure for the first segment group from the decoded first and second segment partition structures. The decoding method further includes using the first segment partition structure to determine the spatial location in the first picture for the first segment group. The decoding method also includes decoding one or more code words in a second segment group header belonging to a second segment group of a second plurality of segment groups of the second picture to determine a second indicator value i2 or decoding one or more code words in a second picture header of the second picture to determine the second indicator value i2, wherein the indicator value i2 is different from il and used to derive the second segment partition structure for the second segment group from the decoded first and second segment partition structures. The decoding method further includes using the second segment partition structure to determine the spatial location in the second picture for the second segment group.

[0057] In another aspect there is provided a decoding apparatus for decoding at least a first picture and a second picture from a bitstream. In one embodiment the decoding apparatus is configured to decode at least a first segment partition structure and a second segment partition structure from syntax elements in a parameter set in the bitstream. The decoding apparatus is further configured to decode one or more code words in a first segment group header belonging to a first segment group of a first plurality of segment groups of the first picture to determine a first indicator value il or decoding one or more code words in a first picture header of the first picture to determine the first indicator value il, wherein the indicator value il is used to derive the first segment partition structure for the first segment group from the decoded first and second segment partition structures. The decoding apparatus is further configured to use the first segment partition structure to determine the spatial location in the first picture for the first segment group. The decoding apparatus is further configured to decode one or more code words in a second segment group header belonging to a second segment group of a second plurality of segment groups of the second picture to determine a second indicator value i2 or decoding one or more code words in a second picture header of the second picture to determine the second indicator value i2, wherein the indicator value i2 is different from il and used to derive the second segment partition structure for the second segment group from the decoded first and second segment partition structures. And the decoding apparatus is further configured to use the second segment partition structure to determine the spatial location in the second picture for the second segment group.

[0058] In another aspect there is provided a decoding apparatus for decoding at least a first picture and a second picture from a bitstream, where the decoding apparatus comprises: a computer readable storage medium; and processing circuitry coupled to the computer readable storage medium, wherein the processing circuitry is configured to cause the decoding apparatus to perform any of the decoding methods disclosed herein.

[0059] In another aspect there is provided an encoding method for encoding at least a first picture and a second picture to a bitstream. In one embodiment the encoding method includes encoding at least a first segment partition structure and a second segment partition structure to the bitstream using syntax elements in a parameter set. The encoding method also includes encoding a first indicator value il to the bitstream using one or more syntax elements in a first picture header or in a first segment group header of the first picture. The encoding method also includes selecting a first segment partition structure using the one or more syntax elements associated with the first indicator value il . The encoding method also includes using the selected first segment partition structure to encode the first picture. The encoding method also includes encoding a second indicator value i2 to the bitstream using one or more syntax elements in a second picture header or in a second segment group header of the second picture, wherein the second indicator value i2 is different than the first indicator value il . The encoding method also includes selecting a second segment partition structure using the one or more syntax elements associated with the second indicator value i2. And the encoding method also includes using the selected second segment partition structure to encode the second picture.

[0060] In another aspect there is provided an encoding apparatus for encoding at least a first picture and a second picture to a bitstream. In one embodiment the encoding apparatus is configured to encode at least a first segment partition structure and a second segment partition structure to the bitstream using syntax elements in a parameter set. The encoding apparatus is also configured to encode a first indicator value il to the bitstream using one or more syntax elements in a first picture header or in a first segment group header of the first picture. The encoding apparatus is also configured to select a first segment partition structure using the one or more syntax elements associated with the first indicator value il. The encoding apparatus is also configured to use the selected first segment partition structure to encode the first picture. The encoding apparatus is also configured to encode a second indicator value i2 to the bitstream using one or more syntax elements in a second picture header or in a second segment group header of the second picture, wherein the second indicator value i2 is different than the first indicator value il. The encoding apparatus is also configured to select a second segment partition structure using the one or more syntax elements associated with the second indicator value i2. And the encoding apparatus is also configured to use the selected second segment partition structure to encode the second picture.

[0061] In another aspect there is provided an encoding apparatus for encoding at least a first picture and a second picture to a bitstream where the encoding apparatus comprises a computer readable storage medium; and processing circuitry coupled to the computer readable storage medium, wherein the processing circuitry is configured to cause the encoding apparatus to perform any one of the encoding methods disclosed herein.

[0062] In another aspect there is provided a computer program comprising instructions which when executed by processing circuitry causes the processing circuitry to perform any one of the encoding and/or decoding methods disclosed herein. In another aspect there is provided a carrier containing the computer program, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.

BRIEF DESCRIPTION OF THE DRAWINGS

[0063] The accompanying drawings, which are incorporated herein and form part of the specification, illustrate various embodiments.

[0064] FIG. 1 illustrates an example of dividing a coding tree unit using quadtree plus binary tree.

[0065] FIG. 2 illustrates an example of tile partitioning. [0066] FIGs. 3 A-3B show examples patterns for gradual decoding refresh of video, vertical lines, and a pseudo-random pattern.

[0067] FIG. 4 shows an example of using restrictions in tiles for gradual decoding refresh.

[0068] FIGs. 5A, 5B, and 5C show partition structures according to some embodiments.

[0069] FIG. 6 shows another picture of a partition structure according to some embodiments.

[0070] FIG. 7 shows a tile structure according to one embodiment.

[0071] FIG. 8 shows different tile structures according to some embodiments.

[0072] FIG. 9 shows a bitstream and two corresponding decoded pictures according to one embodiment.

[0073] FIG. 10 shows a flow chart according to one embodiment.

[0074] FIG. 11 shows a flow chart according to one embodiment.

[0075] FIG. 12 is a diagram showing functional units of a decoder according to one embodiment.

[0076] FIG. 13 is a diagram showing functional units of an encoder according to one embodiment.

[0077] FIG. 14 is a block diagram of an apparatus according to some embodiments.

DETAILED DESCRIPTION

[0078] A problem with the existing technology as described in the background section is related to the use of tiles for GDR. Tiles are good for restricting prediction between areas and enable a simple and efficient way of separating the clean areas and the dirty areas during a GDR. In order to signal the clean and dirty areas for GDR as tiles using a single PPS, the tile structure must be the same for all pictures in the refresh period. For example, the picture in FIG. 4 would have to be divided into 5 tiles to support the division of the picture for all pictures in the refresh period as illustrated in FIG. 7. FIG. 7 shows a tile structure for supporting all divisions of clean and dirty areas for all pictures in the refresh period in the exemplary picture shown in FIG. 4.

This is not coding efficient because each picture needs to be divided into more tiles than necessary and prediction from nearby areas are unnecessarily restricted.

[0079] Accordingly, there is a need for a separate tile structure for each picture in the refresh period. For the exemplary picture shown in FIG. 4, the five tile structures shown in FIG.

8 would be suitable for the five pictures in the refresh period.

[0080] An alternative is to send a separate PPS for each tile structure, i.e. send five different PPSes for the example shown in FIG. 4, each with a different tile structure according to FIG. 8. This, however, is not bit efficient because there is other data in PPS that will be signaled multiple times. Referring to the exemplary picture shown in FIG. 4, a new PPS defining the tile structure must be signaled for each of the five pictures in the refresh period.

[0081] FIG. 9 shows a bitstream 20 and two corresponding decoded pictures 41, 51. As shown in FIG. 9, the bitstream 20 includes a parameter set 21 and four coded segment groups per picture 47, 57 that each correspond to a segment group 48, 58 in a corresponding decoded picture 41, 51. The borders for the segment groups 48, 58 in the pictures 41, 51 are indicated with solid lines while the borders for the segments 11 are indicated with solid and dashed lines. A typical bitstream usually contains more than two pictures but for the sake of illustration the figure only contains two pictures.

[0082] The parameter set 21 contains syntax elements 26 that are decoded by the decoder into at least two partition structures 42, 52 that specifies how the at least two pictures 41, 51 are partitioned into segments 11. This information 26 may for example be part of a picture parameter set or a sequence parameter set. As used herein, the terms“syntax element” and“code word” are synonymous.

[0083] Each coded segment group 47, 57 consists of a segment group header 44, 54 and segment group data 46, 56. The segment group data 46, 56 consist of coded bits that are decoded into sample values for the segments that belong to a segment group. In embodiments disclosed herein, the segment group header 44, 54 contains one or more code words 45,55 that are decoded by the decoder into an indicator value (il, i2). The indicator value (il, i2) is used to derive a segment partition structure 42, 52 for the segment group. The decoder uses the segment partition structures 42, 52 to determine the spatial location of the segments and the segment groups in the two pictures 41, 51.

[0084] It is important that the segment partition structures 42, 52 for the at least two pictures 41, 51 are derived from data 26 of the same parameter set 21.

[0085] Embodiment 1. General case for multiple segment partitions in a parameter set

[0086] In a first embodiment, multiple segment partitions are defined in a parameter set.

The segment partitions are defined using syntax elements explicitly or implicitly describing the position and size of each segment in the segment partition. For example, the segment partitions may be organized in a list or as a set.

[0087] For each picture (or slice or segment group) in the bitstream, an indicator is specified which points to an entry in the list or set of segment partitions in the parameter set associated with the picture (or slice or segment group). The entry comprises the definition of the segment partition used for the picture (or slice or segment group). The indicator may be an index or a key depending on whether the segment partitions in the parameter set are organized in a list or in a set. The indicator may alternatively be a pointer to a segment partition, a pointer to an object comprising a segment partition or the indicator may be one or more syntax elements representing a segment partition. For example, the indicator may be signaled in a segment group header or in a picture header or in a slice header or similar.

[0088] A decoder may perform all or a subset of the following steps for this embodiment:

[0089] 1. Decode a set of syntax elements of a parameter set in the bitstream, the set of syntax elements describing at least two segment partitions, where the at least two segment partitions are organized as a set (or a list). The decoder may derive the at least two segment partitions from the set of syntax elements.

[0090] 2. Decode a first indicator from the bitstream pointing to a first segment partition among the set (or list) of at least two segment partitions of the parameter set. The indicator may be decoded from one or more syntax elements in a picture header, in a slice header or in a segment group header. The decoded indicator is used by the decoder to identify a first segment partition that was derived from the set of syntax elements.

[0091] 3. Decode a first picture using the first segment partition [0092] 4. Decode a second indicator from the bitstream pointing to a second segment partition among the set (or list) of at least two segment partitions of the parameter set. The indicator may be decoded from one or more syntax elements in a picture header, in a slice header or in a segment group header. The decoded indicator is used by the decoder to identify a second segment partition that was derived from the set of syntax elements.

[0093] 5. Decode a second picture using the second segment partition.

[0094] An encoder may perform all or a subset of the following steps for this

embodiment:

[0095] 1. Define a set (or list) of at least two segment partitions to be used for at least two following pictures to be encoded in the bitstream.

[0096] 2. Add syntax elements specifying the set (or list) of the at least two segment partitions to a parameter set and encode the parameter set to the bitstream.

[0097] 3. For a first picture, select a first segment partition to use for the picture among the set (or list) of at least two segment partitions in the parameter set.

[0098] 4. Encode a first indicator in the bitstream, that points to the first selected segment partition. The indicator may be encoded as part of a picture header, part of a slice header or part of a segment group header.

[0099] 5. Encode the first picture to the bitstream using the first selected segment partition

[00100] 6. For a second picture, select a second segment partition to use for the picture among the set of at least two segment partitions in the parameter set.

[00101] 7. Encode a second indicator in the bitstream, that points to the second selected segment partition. The indicator may be encoded as part of a picture header, part of a slice header or part of a segment group header.

[00102] 8. Encode the second picture to the bitstream using the second selected segment partition

[00103] Embodiment 2. List of tile partitions in PPS [00104] In a second embodiment, multiple tile partitions are defined in a picture parameter set (PPS). The tile partitions are defined using syntax elements explicitly or implicitly describing the position and size of each tile in the tile partition. The tile partitions are organized in a list.

[00105] For each tile group in the bitstream, an index is specified that points to an entry in the list of tile partitions in the PPS associated with the tile group, where the entry comprises the definition of the tile partition that is used for the tile group. The index is signaled in a tile group header.

[00106] Example syntax and semantics on top of the current VVC draft is shown in the table 6 below.

TABLE 6

[00107] num tile partitions minus 1 plus 1 specifes the number of tile partitions associated with the PPS. The value of n um_ti 1 e parti ti on s_m i n us 1 shall be in the range of 0 to maxNbrOfTilePartitions, inclusive. The maxNbrOfTilePartitions may be set to 64 as an exemplary number.

[00108] num_tile_columns_minusl[ i ] plus 1 specifies the number of tile columns partitioning a picture for the i-th tile partition. num_tile_columns_minusl[ i ] shall be in the range of 0 to PicWidthlnCtbsY - 1, inclusive. When not present, the value of

num_tile_columns_minusl[ i ] is inferred to be equal to 0.

[00109] num_tile_rows_minusl[ i ] plus 1 specifies the number of tile rows partitioning thea picture for the i-th tile partition. num_tile_rows_minusl[ i ] shall be in the range of 0 to PicHeightlnCtbsY - 1, inclusive. When not present, the value of num_tile_rows_minusl[ i ] is inferred to be equal to 0.

[00110] uniform_spacing_flag[ i ] equal to 1 specifies that tile column boundaries and likewise tile row boundaries are distributed uniformly across thea picture for the i-th tile partition. uniform_spacing_flag[ i ] equal to 0 specifies that tile column boundaries and likewise tile row boundaries are not distributed uniformly across the picture but signalled explicitly using the syntax elements column_width_minusl[ i ] [ j ] and row_height_minusl[ i ] [ j ]. When not present, the value of uniform_spacing_flag[ i ] is inferred to be equal to 1.

[00111] column_width_minusl[ i ] [ j ] plus 1 specifies the width of the i-j-th tile column in units of CTBs for the i-th tile partition.

[00112] row_height_minusl[ i ] [ j ] plus 1 specifies the height of the i-j-th tile row in units of CTBs for the i-th tile partition.

[00113] Table 7 below illustrates a syntax for tile group header.

TABLE 7

[00114] tile_partitions_idc is an index used to specify the tile partition to be used by the tile group at the index position ti 1 e parti ti on i dc in the list of n um ti 1 e parti ti on s_m i n us 1 plus 1 tile partitions in the associated PPS.

[00115] ti 1 e parti ti on i dc shall be in the range of 0 to maxNbrOfTilePartitions - 1, inclusive. It is a requirement of bitstream conformance that the value of ti 1 e partiti on i dc shall be smaller or equal to num tile partitions minusl . It is a requirement of bitstream conformance that the value of ti 1 e parti ti on i dc shall be the same in all tile group headers of a coded picture. When not present, ti 1 e parti ti on i dc is inferred to be 0.

[00116] For the tile partition associated with the current tile group the variables

NumTileColumns is set equal to num_tile_columns_minusl [ i ] + 1, NumTileRows is set equal to num_tile_rows_minusl [ i ] + 1 and UniformTileSpacingFlag is set equal to

uniform_tile_spacing_flag[ i ] where i is equal to ti 1 e parti ti on i dc .

[00117] If UniformTileSpacingFlag equals 0, the following applies: (1) For the tile partition associated with the current tile group the variables TileColumnWidth [ j ] is set to tile_column_width_minusl [ i ][ j ] + 1 for each j in the range of 0 to NumTileColumns - 1, inclusive, where i is equal to ti 1 e parti ti on i dc; and (2) For the tile partition associated with the current tile group the variables TileRowHeight [ j ] is set to tile_row_height_minusl [ i ][ j ] + 1 for each j in the range of 0 to NumTileRows - 1, inclusive, where i is equal to ti 1 e partiti on i dc.

[00118] In the example syntax above the syntax elements num tile partitions minusl and tile_partition_idc are both encoded using UVLC, i.e. ue(v) in the syntax table. Either of these syntax elements could alternatively be fixed length coded with Ceil ( Log2 (

maxNbrltems ) ) bits, where maxNbrltems could be equal to maxNbrOfTilePartitions for num tile partitions minus l and equal to num tile partitions minusl + 1 for

ti 1 e parti ti on i dc .

[00119] In other embodiments, the loop with num ti 1 e parti ti on set s_m i nus l contains only a subset of the tile structure parameters. For instance, in one version of the embodiment, multiple tile partitions may only be defined if the uniform tile spacing flag is set to 0. This is exemplified in the example table 8 below.

TABLE 8

[00120] A decoder may perform all or a subset of the following steps for this embodiment:

[00121] 1. Decode a number n from one or more syntax elements in a single parameter set in the bitstream, where n is larger than 1 and n represents the number of entries there are in a list of segment partition structures. [00122] 2. For each entry value e ranging from 0 to n-1, inclusive, decode a segment partition structure from a set of syntax elements from said single parameter set in the bitstream and associate the decoded segment partition structure with the value e.

[00123] 3. Decode a first indicator value il from one or more syntax elements in a first picture header, in a first slice header or in a first segment group header belonging to a first picture

[00124] 4. Select a first segment partition structure decoded from syntax elements in a single parameter set associated with the value il and use the first selected segment partition structure to decode the first picture as described below, for example, in steps 5-6.

[00125] 5. Derive a first spatial location for a first block in a first picture or in a first slice or in a first segment group using the first segment partition structure.

[00126] 6. Decode said first block using the first spatial location. Store the decoded sample values for the first block in memory at memory positions corresponding to the first spatial location

[00127] 7. Decode a second indicator value i2 from one or more syntax elements in a second picture header, in a second slice header or in a second segment group header belonging to a second picture, where the value i2 is different than the value il

[00128] 8. Select a second segment partition structure decoded from syntax elements in a single parameter set associated with the value i2 and use the second selected segment partition structure to decode the second picture as described, for example, in steps 9 and 10.

[00129] 9. Derive a second spatial location for a second block in a second picture or in a second slice or in a second segment group using the second segment partition structure.

[00130] 10. Decode said second block using the second spatial location. Store the decoded sample values for the second block in memory at memory positions corresponding to the second spatial location

[00131] An encoder may perform all or a subset of the following steps for this

embodiment: [00132] 1. Encode a number n using one or more syntax elements in a single parameter set to the bitstream where n is larger than 1 and n represents the number of entries for a list of segment partition structures.

[00133] 2. For each entry value e ranging from 0 to n-1, inclusive, encode a segment partition structure using a set of syntax elements in said single parameter set to the bitstream and associate the encoded segment partition structure with the value e.

[00134] 3. Encode a first indicator value il using one or more syntax elements in a first picture header, in a first slice header or in a first segment group header belonging to a first picture, to the bitstream

[00135] 4. Select a first segment partition structure encoded using syntax elements in a single parameter set associated with the value il and use the first selected segment partition structure to encode the first picture.

[00136] 5. Encode a second indicator value i2 using one or more syntax elements in a second picture header, in a second slice header or in a second segment group header belonging to a second picture, where the value i2 is different than the value il, to the bitstream

[00137] 6. Select a second segment partition structure encoded from syntax elements in a single parameter set associated with the value i2 and use the second selected segment partition structure to encode the second picture

[00138] In the embodiment described above, the multiple tile partitions have been signaled in the PPS, since the tile partition is currently signaled in that way in VVC. In another embodiment, the partitions may be signaled similarly in the SPS. In another embodiment, the partitions may be signaled similarly in a picture header.

[00139] Embodiment 3. Dictionary of tile partitions in PPS

[00140] In a third embodiment, multiple tile partitions are defined in a picture parameter set (PPS). The tile partitions are defined using syntax elements explicitly or implicitly describing the position and size of each tile in the tile partition. In contrast to the second embodiment, the tile partitions in the third embodiment are organized in a dictionary, where each item pair in the dictionary comprises a key which is an index number, and a value which contains a definition of a tile partition. [00141] For each tile group an index is specified that matches one of the index numbers in the dictionary of tile partitions in the PPS associated with the tile group. The tile partition in the associated PPS, for which the corresponding index in the dictionary of tile partitions matches the index of the tile group, is set to be the tile partition used for the tile group. The index in the tile group is signaled in a tile group header.

[00142] Example syntax and semantics on top of the current VVC draft is shown in table 9 below.

TABLE 9

[00143] num tile partitions minusl plus 1 specifes the number of tile partitions associated with the PPS. The value of n um_ti 1 e parti ti on s_m i n us 1 may be in the range of, but not limited to, 0 to 2046, inclusive.

[00144] pps_tile_partition_idc[ i ] is used to specify the i’th tile partition idc associated with the PPS.

[00145] pps_tile_partition_idc[ i ] may be, but not limited to, less than or equal to 2046.

[00146] It is a requirement of bitstream conformance that the value of

pps tile _partition_idc [ i ] shall not be equal to the value of pps ti 1 e parti ti on i dc [ j ] for any value of j not equal to i.

[00147] Table 10 below illustrates a syntax for tile group header.

TABLE 10

[00148] tile_partition_idc is an index used to specify the tile partition associated with the tile group among the set of num ti 1 e parti ti on s_m i nus l plus 1 tile partitions in the associated PPS, for which ti 1 e parti ti on i dc is equal to pps ti 1 e parti ti on i dc [ i ], where i is a number between 0 and num tile partitions minus l .

[00149] tile_partition_idc shall be in the range of 0 to 2046, inclusive. It is a requirement of bitstream conformance that the value of ti 1 e parti ti on i dc shall be smaller or equal to nu ti 1 e parti ti on sets i nus 1 . When not present, ti 1 e parti ti on i dc is inferred to be 0.

[00150] The variables NumTileColumns is set equal to num tile columns minusl [ i ] + 1, NumTileRows is set equal to num_tile_rows_minusl [ i ] + 1 and UniformTileSpacingFlag is set equal to uniform_tile_spacing_flag[ i ] where i is the value for which

pps_tile_partition_idc[ i ] is equal to tile partition idc

[00151] If UniformTileSpacingFlag equals 0, the following applies: (1) The variables

TileColumnWidth [ j ] is set to tile_column_width_minusl[ i ][ j ] + 1 for each j in the range of 0 to NumTileColumns - 1, inclusive, where i is the value for which pps_tile_partition_idc[ i ] is equal to tile partition idc; and (2) The variables TileRowHeight [ j ] is set to

tile_row_height_minusl[ i ][ j ] + 1 for each j in the range of 0 to NumTileRows - 1, inclusive, where i is the value for which pps_tile_partition_idc[ i ] is equal to tile partition idc.

[00152] It is a requirement of bitstream conformance that there is a value i in the range of 0 to num tile partitions minus 1 , inclusive, for which pps_tile_partition[ i ] is equal to tile partition idc.

[00153] In another embodiment, the dictionary key values in the parameter set are decoded as delta values from the bitstream. The decoding may be described by the following pseudo-code shown in table 11 below:

TABLE 11

_

[00154] The values may be decoded in any order and not be limited to the order described in the pseudo-code above. However, the number of values to decode is always 2*n and the order in which to decode the values must be static so that an encoder can convey the two lists KEY and VALUE correctly without ambiguities. [00155] One advantage of using delta coding is that it saves bits since it is in general less expensive in terms of bits to signal a delta value compared to an absolute value. Another advantage is when the delta value is restricted to be greater or equal to 1. Then, by definition, each dictionary key value will be uniquely specified.

[00156] Embodiment 4. Relative tile partitions

[00157] In a fourth embodiment, multiple segment partitions are defined in a parameter set. The segment partitions are defined using syntax elements explicitly or implicitly describing the position and size of each segment in the segment partition.

[00158] In the fourth embodiment, some of the syntax elements for defining multiple segment partitions which are in common between the segment partitions are not repeated for each segment partition in the segment partition list or set, but the common syntax elements are put directly in the parameter set. Hence, the parameter set includes syntax elements in common between the segment partitions and the rest of the syntax elements for segment partitions are organized in a list or set. Syntax elements for a segment partition may be in the form of delta values to the common syntax elements.

[00159] For example, if the width of the first segment in the first and second segment partitions is 8 and 9, then the width of the first segment 8 is signaled in the parameter set and for each segment partition the delta to this width is signaled which is 0 for first segment partition and 1 for the second segment partition.

[00160] As another example, the syntax for a base segment partition is placed in the parameter set and the segment partitions organized in the list or the set only specify the spatial shift of each segment partition relative to the base segment partition.

[00161] In contrast to the second embodiment, PPS contains part(s) of the tile partitioning syntax that is common between multiple tile partitions and each tile partition in the list contains syntax elements in the form of delta or new values compared to the common part.

[00162] In another embodiment, at least one of the syntax elements for a segment partition may be in the form of a delta value to at least one of the syntax elements of another segment partition in the parameter set, such that a property B of a second segment partition is derived from a corresponding property A of a first segment partition, which is expressed as: B = A + delta value. A flag may be used to determine if the property has been delta coded or not.

[00163] In another embodiment, at least one of the properties for a segment partition may be identical to at least one corresponding property of another segment partition in the parameter set and is copied from the corresponding property of the other segment partition. A flag may be used to determine if a property of a segment partition shall be copied from a property of another segment partition in the parameter set or not.

[00164] In contrast to the second embodiment, with the exception of the first coded segment partition, all properties may be derived from a previously coded segment partition in the parameter set. A property of a segment partition may be derived by copying a previously coded property value or add a signaled delta value to a previously coded property value.

[00165] FIG. 10 is a flow chart illustrating a process 1000 according to an embodiment. Process 1000 is a method for decoding at least a first picture 41 and a second picture 51 from a bitstream 20. Process 1000 may begin in step slOlO.

[00166] Step slOlO comprises decoding at least a first segment partition structure 42 and a second segment partition structure 52 from syntax elements 26 in a parameter set 21 in the bitstream 20.

[00167] Step si 020 comprises decoding one or more code words 45 in a first segment group header 44 belonging to a first segment group of a first plurality of segment groups 48 of the first picture 41 to determine a first indicator value il or decoding one or more code words in a first picture header of the first picture to determine the first indicator value il, wherein the indicator value il is used to derive the first segment partition structure 42 for the first segment group from the decoded first and second segment partition structures 42, 52.

[00168] Step sl030 comprises using the first segment partition structure 42 to determine the spatial location in the first picture 41 for the first segment group.

[00169] Step si 040 comprises decoding one or more code words 55 in a second segment group header 54 belonging to a second segment group of a second plurality of segment groups 58 of the second picture 51 to determine a second indicator value i2 or decoding one or more code words in a second picture header of the second picture to determine the second indicator value i2, wherein the indicator value i2 is different from il and used to derive the second segment partition structure 52 for the second segment group from the decoded first and second segment partition structures 42, 52.

[00170] Step sl050 comprises using the second segment partition structure 52 to determine the spatial location in the second picture 51 for the second segment group.

[00171] In some embodiments, each coded segment group 47, 57 comprises a segment group header 44, 54 and segment group data 46, 56.

[00172] In some embodiments, the parameter set consists of a picture parameter set, a sequence parameter set, or a picture header.

[00173] In some embodiments, an indicator value corresponds to an index in a list, a key in a dictionary, a pointer to an object or one or more syntax elements that represents a segment partition.

[00174] In some embodiments, the segment partitions are organized in a list in the parameter set and the indicator value il is an index value used as an index in the list of segment partitions to derive the first segment partition structure 42, and the indicator value i2 is an index value used as an index in the list of segment partitions to derive the second segment partition structure 52.

[00175] In some embodiments, the segment partitions are organized in a dictionary in the parameter set and the indicator value il is a key value used as a key in the dictionary of segment partitions to derive the first segment partition structure 42, and the indicator value i2 is a key value used as a key in the dictionary of segment partitions to derive the second segment partition structure 52.

[00176] In some embodiments, each of the indicator values il and i2 matches an entry or a key value in the list or dictionary.

[00177] In some embodiments, the indicator value il is decoded from one or more syntax elements in a first picture header of the first picture instead from a first segment group header 44 of the first picture; and the indicator value i2 is decoded from one or more syntax elements in a second picture header of the second picture instead from a second segment group header 54 of the second picture. [00178] In some embodiments, an entry is delta coded in the bitstream. In some embodiments, a segment is a tile. In some embodiments, a segment group is a tile group. In some embodiments, a segment group is a slice. In some embodiments, the first picture 41 and the second picture 51 are pictures in a recovery point period. In some embodiments, at least one syntax element for a second segment partition in the parameter set is derived, copied or delta coded from a first segment partition in the parameter set.

[00179] In some embodiments, each of the first and second pictures 10 comprises a number of units 8, a partition structure 13 partitions each of the first and second pictures into at least two segments 11, and each of the first and second pictures comprise at least two segment groups 12 and an integer number of segments 11, and each segment comprises an integer number of units 8.

[00180] In some embodiments, each segment 11 is independent with respect to other segments 11 such that the derivation of any intra prediction mode for a unit 16 in a current segment 15 only depends on previously derived intra prediction modes in units 17 that belong to the current segment 15 and does not depend on any intra prediction mode in a unit 18 that belongs to a different segment 14.

[00181] FIG. 11 is a flow chart illustrating a process 1100 according to an embodiment. Process 1100 is a method for encoding at least a first picture 41 and a second picture 51 to a bitstream 20, The method includes encoding at least a first segment partition structure 42 and a second segment partition structure 52 to the bitstream 20 using syntax elements 26 in a parameter set 21 (step si 110); encoding a first indicator value il to the bitstream 20 using one or more syntax elements in a first picture header or in a first segment group header 44 of the first picture (step si 120); selecting a first segment partition structure 42 using the one or more syntax elements associated with the first indicator value il (step si 130); using the selected first segment partition structure 42 to encode the first picture 41 (step si 140); encoding a second indicator value i2 to the bitstream 20 using one or more syntax elements in a second picture header or in a second segment group header 54 of the second picture, wherein the second indicator value i2 is different than the first indicator value il (step si 150); selecting a second segment partition structure 52 using the one or more syntax elements associated with the second indicator value i2 (step si 160); and using the selected second segment partition structure 52 to encode the second picture 51 (step si 170).

[00182] In some embodiments, the parameter is a picture parameter set, a sequence parameter set, and/or a picture header.

[00183] In some embodiments, an indicator value corresponds to an index in a list, a key in a dictionary, a pointer to an object or one or more syntax elements that represents a segment partition.

[00184] In some embodiments, the segment partitions are organized in a list in the parameter set and the indicator value il is an index value used as an index in the list of segment partitions to derive the first segment partition structure 42, and the indicator value i2 is an index value used as an index in the list of segment partitions to derive the second segment partition structure 52.

[00185] In some embodiments, the segment partitions are organized in a dictionary in the parameter set and the indicator value il is a key value used as a key in the dictionary of segment partitions to derive the first segment partition structure 42, and the indicator value i2 is a key value used as a key in the dictionary of segment partitions to derive the second segment partition structure 52.

[00186] In some embodiments, each of the indicator values il and i2 matches an entry or a key value in the list or dictionary. In some embodiments, an entry is delta coded in the bitstream. In some embodiments, a segment is a tile. In some embodiments, a segment group is a tile group. In some embodiments, a segment group is a slice. In some embodiments, the first picture 41 and the second picture 51 are pictures in a recovery point period.

[00187] In some embodiments, at least one syntax element for a second segment partition in the parameter set is derived, copied or delta coded from a first segment partition in the parameter set.

[00188] FIG. 12 is a diagram showing functional units of a decoder 1202 according to some embodiments. As shown in FIG. 12, decoder 1202 includes a first decoding unit 1204 for decoding at least a first segment partition structure 42 and a second segment partition structure 52 from syntax elements 26 in a parameter set 21 in the bitstream 20; a second decoding unit 1206 for decoding one or more code words 45 in a first segment group header 44 belonging to a first segment group 48 of the first picture 41 to determine a first indicator value il, wherein the indicator value il is used to derive the first segment partition structure 42 for the first segment group from the decoded first and second segment partition structures 42, 52; a first using unit 1208 for using the first segment partition structure 42 to determine the spatial location in the first picture 41 for the first segment group; a third decoding unit 1210 for decoding one or more code words 55 in a second segment group header 54 belonging to a second segment group 58 of the second picture 51 to determine a second indicator value i2, wherein the indicator value i2 is different from il and used to derive the second segment partition structure 52 for the second segment group from the decoded first and second segment partition structures 42, 52; and a second using unit 1212 for using the second segment partition structure 52 to determine the spatial location in the second picture 51 for the second segment group, wherein each coded segment group 47, 57 comprises a segment group header 44, 54 and segment group data 46, 56.

[00189] FIG. 13 is a diagram showing functional units of an encoder 1302 according to some embodiments. As shown in FIG. 13, encoder 1302 includes a first encoding unit 1304 for encoding at least a first segment partition structure 42 and a second segment partition structure 52 to the bitstream 20 using syntax elements 26 in a parameter set 21; a second encoding unit 1306 for encoding a first indicator value il to the bitstream 20 using one or more syntax elements in a first picture header or in a first segment group header 44 of the first picture; a first selecting unit 1308 for selecting a first segment partition structure 42 using the one or more syntax elements associated with the first indicator value il; a first using unit 1310 for using the selected first segment partition structure 42 to encode the first picture 41; a third encoding unit 1312 for encoding a second indicator value i2 to the bitstream 20 using one or more syntax elements in a second picture header or in a second segment group header 54 of the second picture, wherein the second indicator value i2 is different than the first indicator value il; a second selecting unit 1314 for selecting a second segment partition structure 52 using the one or more syntax elements associated with the second indicator value i2; and a second using unit 1316 for using the selected second segment partition structure 52 to encode the second picture 51. [00190] FIG. 14 is a block diagram of an apparatus 1400 for implementing decoder 1202 and/or encoder 1302, according to some embodiments. When apparatus 1400 implements decoder 1202, apparatus 1400 may be referred to as a“decoding apparatus 1400,” and when apparatus 1400 implements encoder 1302, apparatus 1400 may be referred to as an“encoding apparatus 1400.” As shown in FIG. 14, apparatus 1400 (a.k.a.,“node”) may comprise:

processing circuitry (PC) 1402, which may include one or more processors (P) 1455 (e.g., a general purpose microprocessor and/or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like); a network interface 1448 comprising a transmitter (Tx) 1445 and a receiver (Rx) 1447 for enabling the apparatus 1400 to transmit data to and receive data from other nodes connected to a network 1410 (e.g., an Internet Protocol (IP) network) to which network interface 1448 is connected; and a local storage unit (a.k.a.,“data storage system”) 1408, which may include one or more non volatile storage devices and/or one or more volatile storage devices. In embodiments where PC 1402 includes a programmable processor, a computer program product (CPP) 1441 may be provided. CPP 1441 includes a computer readable medium (CRM) 1442 storing a computer program (CP) 1443 comprising computer readable instructions (CRI) 1444. CRM 1442 may be a non-transitory computer readable medium, such as, magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random access memory, flash memory), and the like. In some embodiments, the CRI 1444 of computer program 1443 is configured such that when executed by PC 1402, the CRI causes the apparatus 1400 to perform steps described herein (e.g., steps described herein with reference to the flow charts). In other embodiments, the apparatus 1400 may be configured to perform steps described herein without the need for code. That is, for example, PC 1402 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and/or software.

[00191] Summary of Various Embodiments

[00192] A1. A method for decoding at least a first picture 41 and a second picture 51 from a bitstream 20, the method comprising: decoding at least a first segment partition structure 42 and a second segment partition structure 52 from syntax elements 26 in a parameter set 21 in the bitstream 20; decoding one or more code words 45 in a first segment group header 44 belonging to a first segment group of a first plurality of segment groups 48 of the first picture 41 to determine a first indicator value il or decoding one or more code words in a first picture header of the first picture to determine the first indicator value il, wherein the indicator value il is used to derive the first segment partition structure 42 for the first segment group from the decoded first and second segment partition structures 42, 52; using the first segment partition structure 42 to determine the spatial location in the first picture 41 for the first segment group; decoding one or more code words 55 in a second segment group header 54 belonging to a second segment group of a second plurality of segment groups 58 of the second picture 51 to determine a second indicator value i2 or decoding one or more code words in a second picture header of the second picture to determine the second indicator value i2, wherein the indicator value i2 is different from il and used to derive the second segment partition structure 52 for the second segment group from the decoded first and second segment partition structures 42, 52; and using the second segment partition structure 52 to determine the spatial location in the second picture 51 for the second segment group, wherein each coded segment group 47, 57 comprises a segment group header 44, 54 and segment group data 46, 56.

[00193] A2. The method of embodiment Al, wherein a parameter set is a picture parameter set, sequence parameter set and/or picture header.

[00194] A3. The method of embodiment Al or A2, wherein an indicator value

corresponds to an index in a list, a key in a dictionary, a pointer to an object or one or more syntax elements that represents a segment partition.

[00195] A4. The method of any one of embodiments A1-A3, wherein the segment partitions are organized in a list in the parameter set and the indicator value il is an index value used as an index in the list of segment partitions to derive the first segment partition structure 42, and the indicator value i2 is an index value used as an index in the list of segment partitions to derive the second segment partition structure 52.

[00196] A5. The method of any one of embodiments A1-A3, wherein the segment partitions are organized in a dictionary in the parameter set and the indicator value il is a key value used as a key in the dictionary of segment partitions to derive the first segment partition structure 42, and the indicator value i2 is a key value used as a key in the dictionary of segment partitions to derive the second segment partition structure 52. [00197] A6. The method of embodiment A4 or A5, wherein each of the indicator values il and i2 matches an entry or a key value in the list or dictionary.

[00198] A7. The method of any one of claims A1-A6, wherein the indicator value il is decoded from one or more syntax elements in a first picture header of the first picture, and the indicator value i2 is decoded from one or more syntax elements in a second picture header of the second picture.

[00199] A8. The method of any one of claims A1-A7, wherein the indicator value il is decoded from a first segment group header 44 of the first picture, and the indicator value i2 is decoded from a second segment group header 54 of the second picture.

[00200] A9. The method of embodiment A6, wherein an entry is delta coded in the bitstream.

[00201] A10. The method in any one of embodiments A1-A8, wherein a segment is a tile.

[00202] Al l. The method in any one of embodiments A1-A9, wherein a segment group is a tile group.

[00203] A12. The method of any one of embodiments A1-A9, wherein a segment group is a slice.

[00204] A13. The method of any one of embodiments Al-Al 1, wherein the first picture

41 and the second picture 51 are pictures in a recovery point period.

[00205] A14. The method of any one of embodiments A1-A12, wherein at least one syntax element for a second segment partition in the parameter set is derived, copied or delta coded from a first segment partition in the parameter set.

[00206] A15. The method of any one of embodiments A1-A13, wherein each of the first and second pictures 10 comprises a number of units 8, a partition structure 13 partitions each of the first and second pictures into at least two segments 11, and each of the first and second pictures comprise at least two segment groups 12 and an integer number of segments 11, and each segment comprises an integer number of units 8.

[00207] A16. The method of any one of embodiments Al-Al 5, wherein each segment 11 is independent with respect to other segments 11 such that the derivation of any intra prediction mode for a unit 16 in a current segment 15 only depends on previously derived intra prediction modes in units 17 that belong to the current segment 15 and does not depend on any intra prediction mode in a unit 18 that belongs to a different segment 14.

[00208] A17. The method of any one of embodiments A1-A16, wherein, each coded segment group 47, 57 comprises a segment group header 44, 54 and segment group data 46, 56.

[00209] A18. The method of any one of embodiments A1-A17, wherein decoding a segment partition structure from syntax elements in the parameter set comprises deriving the spatial layout of the partition structure.

[00210] A19. The method of any one of embodiments A1-A18, wherein using an indicator value i to derive a segment partition structure for a segment group comprises identifying the segment partition structure to use for the segments belonging to the segment group.

[00211] Bl. A method for encoding at least a first picture 41 and a second picture 51 to a bitstream 20, the method comprising: encoding at least a first segment partition structure 42 and a second segment partition structure 52 to the bitstream 20 using syntax elements 26 in a parameter set 21; encoding a first indicator value il to the bitstream 20 using one or more syntax elements in a first picture header or in a first segment group header 44 of the first picture;

selecting a first segment partition structure 42 using the one or more syntax elements associated with the first indicator value il; using the selected first segment partition structure 42 to encode the first picture 41; encoding a second indicator value i2 to the bitstream 20 using one or more syntax elements in a second picture header or in a second segment group header 54 of the second picture, wherein the second indicator value i2 is different than the first indicator value il;

selecting a second segment partition structure 52 using the one or more syntax elements associated with the second indicator value i2; and using the selected second segment partition structure 52 to encode the second picture 51.

[00212] B2. The method of embodiment Bl, wherein a parameter set is a picture parameter set, sequence parameter set and/or picture header.

[00213] B3. The method of embodiment Bl or B2, wherein an indicator value corresponds to an index in a list, a key in a dictionary, a pointer to an object or one or more syntax elements that represents a segment partition. [00214] B4. The method of any one of embodiments B1-B3, wherein the segment partitions are organized in a list in the parameter set and the indicator value il is an index value used as an index in the list of segment partitions to derive the first segment partition structure 42, and the indicator value i2 is an index value used as an index in the list of segment partitions to derive the second segment partition structure 52.

[00215] B5. The method of any one of embodiments B1-B3, wherein the segment partitions are organized in a dictionary in the parameter set and the indicator value il is a key value used as a key in the dictionary of segment partitions to derive the first segment partition structure 42, and the indicator value i2 is a key value used as a key in the dictionary of segment partitions to derive the second segment partition structure 52.

[00216] B6. The method of embodiment B4 or B5, wherein each of the indicator values il and i2 matches an entry or a key value in the list or dictionary.

[00217] B7. The method of embodiment B6, wherein an entry is delta coded in the bitstream.

[00218] B8. The method in any one of embodiments B1-B7, wherein a segment is a tile.

[00219] B9. The method in any one of embodiments B1-B8, wherein a segment group is a tile group

[00220] B10. The method of any one of embodiments B1-B8, wherein a segment group is a slice.

[00221] B11. The method of any one of embodiments B1-B10, wherein the first picture 41 and the second picture 51 are pictures in a recovery point period.

[00222] B12. The method of one of embodiments Bl-Bl 1, wherein at least one syntax element for a second segment partition in the parameter set is derived, copied or delta coded from a first segment partition in the parameter set.

[00223] While various embodiments are described herein, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of this disclosure should not be limited by any of the above-described exemplary embodiments. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed by the disclosure unless otherwise indicated herein or otherwise clearly contradicted by context.

[00224] Additionally, while the processes described above and illustrated in the drawings are shown as a sequence of steps, this was done solely for the sake of illustration. Accordingly, it is contemplated that some steps may be added, some steps may be omitted, the order of the steps may be re-arranged, and some steps may be performed in parallel.