Method for providing related / independent partition encoding / decoding and related device
By introducing the concept of block grouping, it allows for analytical and spatial prediction correlations between blocks within block groups, which solves the problem of insufficient flexibility in block partitioning in existing video encoding technologies, improves compression efficiency and reduces artifacts.
Patent Information
- Application Number
- CN202510806450.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-03-08
- Filing Date
- 2020-03-05
- Publication Date
- 2025-08-08
AI Technical Summary
Existing video encoding technologies lack flexibility in block partitioning, resulting in the destruction of analytical and spatial prediction correlations, affecting compression efficiency and potentially causing artifacts.
The concept of chunking grouping is introduced, allowing analytical and spatial prediction correlations between chunking groups within chunking groups, and signaling correlation properties in the bitstream through syntax elements, supporting rectangular and raster scanning partitions of chunking groups.
Improves the flexibility of block partitioning, reduces artifacts and complexity, improves compression efficiency, and supports block structures of different space sizes.
Smart Images

Figure CN120455659A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates generally to communication of pictures / videos, and more particularly to methods and related apparatuses for providing encoding and / or decoding of pictures and / or videos. Background Art
[0002] HEVC and VVC are discussed below.
[0003] High Efficiency Video Coding (HEVC) (also known as H.265) is a block-based video codec standardized by ITU-T and MPEG that utilizes temporal and spatial prediction. Spatial prediction is implemented using intra (I) prediction from within the current picture. Temporal prediction is implemented using inter (P) or bidirectional inter (B) prediction at the block level using previously decoded reference pictures. The difference between the original pixel data and the predicted pixel data, called the residual, is transformed into the frequency domain, quantized, and then entropy encoded before being transmitted along with the necessary prediction parameters such as prediction mode and motion vectors (also entropy encoded). By quantizing the transformed residual, the trade-off between the bit rate and quality of the video can be controlled. The level of quantization is determined by the quantization parameter (QP). The decoder performs entropy decoding, inverse quantization, and inverse transform to obtain the residual, and then adds the residual to the intra or inter prediction to reconstruct the picture.
[0004] MPEG and ITU-T are working on a successor to HEVC within the Joint Video Exploratory Team (JVET). The name of this video codec under development is Versatile Video Coding (VCC).
[0005] QTBT is discussed below.
[0006] HEVC uses a block structure in which each top-level coding block, i.e., the largest block in the coding block partition (called a coding tree unit (CTU)), can be partitioned by a quadtree (QT) structure. Subsequent coding block partitions, called coding units (CUs), can be recursively further partitioned into smaller, equally sized CUs with a quadtree structure as small as 8x8. In the current version of VVC, the block structure is a bit different from that of HEVC. The block structure in VVC is called a quadtree plus binary tree plus ternary tree block structure (QTBT+TT). The CU in a QTBT can have a square or rectangular shape. The coding tree unit (CTU) is first partitioned by a quadtree structure as in HEVC. It can then be further partitioned vertically or horizontally in a binary structure by equal-sized partitions to form coding blocks called coding units (CUs). Therefore, the blocks can have a square or rectangular shape. The depth of the quadtree and binary tree can be set by the encoder in the bitstream. Figure 1An example of using QTBT to partition a CTU is shown in . TT adds the possibility of partitioning a CU into three partitions instead of two equal-sized partitions; it adds the possibility of using a block structure that better fits the content structure in the picture.
[0007] Figure 1 An example of partitioning a CTU into CUs using QTBT is shown.
[0008] CABAC is discussed below.
[0009] Context-Adaptive Binary Arithmetic Coding (CABAC) is an entropy coding tool used in HEVC and VVC. CABAC encodes binary symbols in a way that keeps complexity low and allows for modeling the probabilities of bits of more frequently used symbols. Since coding patterns are often locally well-correlated, a probability model is adaptively selected based on the local context. The state of the CABAC machine (containing the probabilities of the local context) is continuously updated based on previously coded blocks. The CABAC state is reset for each picture, individual slice, or block.
[0010] Intra random access point (IRAP) pictures and coded video sequences (CVS) are discussed below.
[0011] For single-layer coding in HEVC, an access unit (AU) is the coded representation of a single picture. An AU can be composed of several video coding layer (VCL) NAL units and non-VCL NAL units.
[0012] An intra random access point (IRAP) picture in HEVC is a picture that does not reference any picture other than itself for prediction during its decoding process. In HEVC, the first picture in the bitstream in decoding order must be an IRAP picture, but IRAP pictures can also appear later in the bitstream. HEVC specifies three types of IRAP pictures: broken link access (BLA) pictures, instantaneous decoder refresh (IDR) pictures, and clean random access (CRA) pictures.
[0013] A coded video sequence (CVS) in HEVC is a series of access units starting at an IRAP access unit up to but not including the next IRAP access unit in decoding order. A CRA may or may not start a CVS, while BLA and IDR types always start a new CVS.
[0014] The NAL units are discussed below.
[0015] Both HEVC and VVC define a Network Abstraction Layer (NAL). All data, i.e., video coding layer (VCL) or non-VCL data in HEVC and VVC, is encapsulated in NAL units. NAL units are always byte-aligned and can be viewed as data packets. VCL NAL units contain data representing picture sample values. Non-VCL NAL units contain additional associated data, such as parameter sets and supplementary enhancement information (SEI) messages. NAL units in HEVC begin with a header that specifies the NAL unit type of the NAL unit, which identifies what type of data is carried in the NAL unit, the layer ID to which the NAL unit belongs, and the time ID. The NAL unit type is conveyed in the nal_unit_type codeword in the NAL unit header, and the type indicates and defines how the NAL unit should be parsed and decoded. The remaining bytes of the NAL unit are payloads of the type indicated by the NAL unit type. The bitstream consists of a series of concatenated NAL units. The bitstream consists of a series of concatenated NAL units.
[0016] Parameter sets are discussed below.
[0017] HEVC specifies three types of parameter sets: picture parameter set (PPS), sequence parameter set (SPS), and video parameter set (VPS). A PPS contains data common to an entire picture, an SPS contains data common to a coded video sequence (CVS), and a VPS contains data common to multiple CVSs.
[0018] Next, we discuss chunking.
[0019] The HEVC video coding standard includes a tool called blocking, which divides a picture into rectangular spatially independent regions. Using blocking, a picture in HEVC can be partitioned into rows and columns of samples, where a block is the intersection of a row and a column. Blocks in HEVC are always aligned with CTU boundaries.
[0020] The following discusses the slicing in HEVC.
[0021] The concept of slicing in HEVC divides a picture into coded slices, where each slice is read in raster scan order in units of CTUs. Slices in HEVC can be independent slices or dependent slices, for which the values of some syntax elements of the slice header are inferred from the values of the previous independent slice in decoding order. Each slice is encapsulated in its own NAL unit. Different coding types can be used for slices of the same picture, i.e., slices can be I-slices, P-slices, or B-slices. The main purpose of slicing is to enable resynchronization in the event of data loss.
[0022] The following discusses block groups in VVC.
[0023] The draft VVC specification does not include slices, but includes a similar concept called tile groups. In HEVC, a tile can contain one or more slices, or a slice can contain one or more tiles, but not both. In VVC, the concept is more straightforward; a tile group can contain one or more complete tiles. Tiled groups are used to group multiple tiles to reduce the overhead of each tile. Each tile group is encapsulated in its own NAL unit. For pictures, a tile group can have a rectangular shape or include one or more tiles in raster scan order. A rectangular tile group consists of M×N tiles, where M is the number of tiles vertically in the tile group and N is the number of tiles horizontally. Tiled groups in the VVC draft (similar to tiles in HEVC) break prediction.
[0024] The following discusses block grouping as in JVET-M0853.
[0025] At the 13th JVET meeting in Marrakech in January 2019, rectangular block grouping was adopted according to JVET-M0853 proposal.
[0026] As proposed in JVET-M0853, the text Figure 12 As shown in the table.
[0027] Provided below Figure 12 The semantics of the new / modified element.
[0028] single_tile_per_tile_group equal to 1 specifies that each partition group referencing this PPS includes one partition. single_tile_per_tile_group equal to 0 specifies that a partition group referencing this PPS may include more than one partition.
[0029] rect_tile_group_flag equal to 0 specifies that the tiles within each tile group are in raster scan order and tile group information is not signaled in the PPS. rect_tile_group_flag equal to 1 specifies that the tiles within each tile group cover a rectangular area of the picture and tile group information is signaled in the PPS. rect_tile_group_flag is inferred to be 1 when single_tile_per_tile_group_flag is equal to 1.
[0030] num_tile_groups_in_pic_minus1 plus 1 specifies the number of tile groups in each picture of the reference PPS. The value of num_tile_groups_in_pic_minus1 should be in the range of 0 to (NumTilesInPic-1), inclusive. When not present and single_tile_per_tile_group_fla is equal to 1, the value of num_tile_group_in_pic_minus1 is inferred to be equal to (NumTilesInPic-1).
[0031] top_left_tile_idx[i] specifies the tile index of the tile located at the top left corner of the i-th tile group. For any i not equal to j, the value of top_left_tile_idx[i] shall not be equal to the value of top_left_tile_idx[j]. When not present, top_left_tile_idx[i] is inferred to be equal to i. The length of the top_left_tile_idx[i] syntax element is Ceil(Log2(NumTilesInPic) bits.
[0032] bottom_right_tile_idx[i] specifies the tile index of the tile located at the bottom right corner of the i-th tile group. When single_tile_per_tile_group_flag is equal to 1, bottom_right_tile_idx[i] is inferred to be equal to top_left_tile_idx[i]. The length of the bottom_right_tile_idx[i] syntax element is Ceil(Log2(NumTilesInPic)) bits.
[0033] It may be a requirement for bitstream consistency that any particular partition should only be included in one partition group.
[0034] The variable NumTilesInTileGroup[i], which specifies the number of tiles in a tile group, and related variables are derived as follows: deltaTileIdx[i]=bottom_right_tile_idx[i]-top_right_tile_idx[i] NumTileRowsInTileGroupMinus1[i]=(deltaTileIdx[i] / (num_tile_columns_minus1+1))NumTileColumnsInTileGroupMinus1[i]=(deltaTileIdx[i]%(num_tile_columns_minus1+1)) NumTilesInTileGroup[i]=(NumTileRowsInTileGroupMinus1[i]+1)* (NumTileColumnsInTileGroupMinus1[i]+1) signaled_tile_group_id_flag equal to 1 specifies that the tile group ID for each tile group is signaled. signaled_tile_group_index_flag equal to 0 specifies that the tile group ID is not signaled. When rect_tile_group_flag is equal to 0, the value of signaled_tile_group_index_flag is inferred to be equal to 0.
[0035] signalled_tile_group_id_length_minus1 plus 1 specifies the number of bits used to represent the syntax element tile_group_id[i], when present, and the syntax element tile_group_address in the tile group header. The value of signalled_tile_group_index_length_minus1 should be in the range of 0 to 15, inclusive. When not present, the value of signalled_tile_group_index_length_minus1 is inferred to be equal to Ceil(Log2(num_tile_group_in_pic_minus1+1))-1.
[0036] tile_group_id[i] specifies the tile group ID of the i-th tile group. The length of the tile_group_id[i] syntax element is tile_set_id_length_minus1+1 bits. When not present, tile_group_id[i] is inferred to be equal to i for each i in the range 0 to num_tile_groups_in_pic_minus1 (inclusive).
[0037] In this disclosure, syntax examples are shown with respect to the text proposed in JVET-M0853, because this text was the latest VVC partition specification text at the time of writing.
[0038] Segment groups, segments, cells, and partitions are discussed below.
[0039] Here we describe segment groups, segments, and units. The term segment is used as a more general term than block, because embodiments of the present disclosure can be applied to different types of picture partitioning schemes and not only to block partitioning known from the HEVC and VVC drafts. In this section, block is one embodiment of segmentation, but other segmentation embodiments may also exist.
[0040] Figure 2A 、 2B and 2C show picture partitioning.
[0041] Figure 2A 、 2B 2C show a picture ( 10 ) of a video stream and an exemplary partitioning of the picture into units ( 8 ), segments ( 11 ) and segment groups ( 12 ). Figure 2A A picture (10) consisting of 64 cells (8) is shown. Figure 2B The segment structure (13) of the same picture (10) is shown, which consists of 16 segments (11). The segment structure (13) is shown by the dotted lines. Each segment (11) consists of a plurality of cells. A segment can consist of an integer number of complete cells, or a combination of complete and partial cells. Multiple segments form a segment group. Figure 2C Segment group differentiation is shown for the same picture (10) consisting of 8 segment groups. A segment group can consist of segments in raster scan order. Alternatively, a segment group can consist of any group of segments that together form a rectangle. Alternatively, a segment group can consist of any subset of segments.
[0042] A segment may be equivalent to a tile. A segment group may be equivalent to a tile group. In this description, "tile" and "segment" may be used interchangeably. We also define the term "partition" in this description to mean "segment or segment group." Thus, a partition may be a segment or a segment group. The term unit may be equivalent to a CTU or, more generally, a block.
[0043] Encoding / decoding using known block / segment partitioning may reduce compression efficiency and / or introduce blocking artifacts. Summary of the Invention
[0044] According to some embodiments of the inventive concept, a method is provided for decoding a picture from a bitstream. A partition structure for the picture is determined, wherein the partition structure defines at least first and second partitions of the picture. At least one dependency syntax element from the bitstream is decoded, and based on the at least one dependency syntax element, a determination is made as to whether the second partition is dependent on or independent of the first partition. The picture from the bitstream is decoded based on the determination as to whether the second partition of the picture is dependent on or independent of the first partition of the picture.
[0045] According to some other embodiments of the inventive concept, a method for encoding a picture of a bitstream is provided. A partition structure for the picture is defined, wherein the partition structure includes at least first and second partitions of the picture. Determining whether the second partition is dependent on or independent of the first partition and at least one dependency syntax element that can encode the bitstream, wherein the at least one dependency syntax element specifies whether the second partition is dependent on or independent of the first partition. Based on determining the partition structure and based on determining whether the second partition of the picture is dependent on or independent of the first partition of the picture, the first and second partitions are encoded into the bitstream.
[0046] Some embodiments disclosed herein may enable more flexible partitioning of pictures into regions where unnecessary disruptions to parsing and prediction may be reduced, artifacts at decoding boundaries may be reduced, complexity may be reduced, and / or compression efficiency may be improved. BRIEF DESCRIPTION OF THE DRAWINGS
[0047] The accompanying drawings, which are included to provide a further understanding of the present disclosure and are incorporated in and constitute a part of this application, illustrate certain non-limiting embodiments of the inventive concept. In the drawings: Figure 1 is a diagram showing an example of partitioning a CTU into CUs using QTBT; Figure 2A 、 2B and 2C are diagrams illustrating picture partitioning; Figure 3A and 3B is an example of a block structure; Figure 4 is an example of block group partitioning; Figure 5 This is an example of 360-degree streaming related to the RWMR viewport based on MCTS; Figure 6A 、 6B and 6C show examples of partitioning according to some embodiments of the inventive concept; Figure 7shows a cubemap projection and corresponding packed frame according to some embodiments of the inventive concept; Figure 8A 、 8B 8C and 8D show the use of embodiment 6 according to some embodiments of the inventive concept. Figure 5 The request structure; Figure 9A and 9B shows tile groups A, B, and C provided as rectangular tile groups and as raster scan tile groups according to some embodiments of the inventive concept; Figure 10A and 10B shows tile groups according to some embodiments of the inventive concept; Figure 11 shows arbitrary requests enabled using embodiment 8 according to some embodiments of the inventive concept; Figure 12 is a table showing the proposed text as in JVET-M0853; Figure 13 is a table showing syntax of a first example of embodiment 1 according to some embodiments of the inventive concept; Figure 14 is a table showing a PPS syntax of Example 2 according to some embodiments of the inventive concept; Figure 15 is a table showing a partition group header syntax of a second example of embodiment 2 according to some embodiments of the inventive concept; Figure 16 is a table showing a PPS syntax of a second example of embodiment 2 according to some embodiments of the inventive concept; Figure 17 is a table showing the syntax of embodiment 2 according to some embodiments of the inventive concept; Figure 18 is a table showing an example PPS syntax of embodiment 8 according to some embodiments of the inventive concept; Figure 19 is a table showing syntax of an example of Embodiment 7 according to some embodiments of the inventive concept; Figure 20 is a table showing syntax of an example of embodiment 1 according to some embodiments of the inventive concept; Figure 21 is a block diagram illustrating a mobile terminal UE according to some embodiments of the inventive concept; Figure 22 is a block diagram illustrating a radio access network RAN node (e.g., a base station eNB / gNB) according to some embodiments of the inventive concept; Figure 23is a block diagram illustrating a core network node (e.g., an AMF node, an SMF node, etc.) according to some embodiments of the inventive concept; Figure 24 is a block diagram illustrating a media server according to some embodiments of the inventive concept; Figure 25 is a flowchart illustrating decoding operations according to some embodiments of the inventive concept; and Figure 26 is a flowchart illustrating encoding operations according to some embodiments of the inventive concept. DETAILED DESCRIPTION
[0048] The inventive concept will now be described more fully below with reference to the accompanying drawings, in which examples of embodiments of the inventive concept are shown. However, the inventive concept can be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete and will fully convey the scope of the inventive concept to those skilled in the art. It should also be noted that these embodiments are not mutually exclusive. Components from one embodiment may be assumed to exist / be used in another embodiment by default.
[0049] The following description presents various embodiments of the disclosed subject matter. These embodiments are presented as teaching examples and are not to be construed as limiting the scope of the disclosed subject matter. For example, certain details of the described embodiments may be modified, omitted, or expanded without departing from the scope of the described subject matter.
[0050] Figure 21 is a block diagram illustrating elements of a wireless device, UE 300 (also referred to as a mobile terminal, mobile communication terminal, wireless communication device, wireless terminal, wireless communication terminal, user equipment UE, user equipment node / terminal / device, etc.) configured to provide wireless communication according to an embodiment of the inventive concept. As shown, the wireless device UE may include an antenna 307 and transceiver circuitry 301 (also referred to as a transceiver), which includes a transmitter and a receiver configured to provide uplink and downlink radio communications with (one or more) base stations of a radio access network. The wireless device UE may also include processing circuitry 303 (also referred to as a processor coupled to the transceiver circuitry), and memory circuitry 305 (also referred to as a memory coupled to the processing circuitry). The memory circuitry 305 may include computer-readable program code that, when executed by the processing circuitry 303, causes the processing circuitry to perform operations according to the embodiments disclosed herein. According to other embodiments, the processing circuitry 303 may be defined to include memory, such that a separate memory circuit is not required. The wireless device UE may also include an interface (eg, a user interface) coupled to the processing circuit 303 and / or the wireless device UE may be incorporated into a vehicle.
[0051] As discussed herein, operations of the wireless device UE may be performed by the processing circuitry 303 and / or the transceiver circuitry 301. For example, the processing circuitry 303 may control the transceiver circuitry 301 to transmit communications to a radio access network node (also referred to as a base station) over a radio interface via the transceiver circuitry 301 and / or to receive communications from a RAN node over a radio interface via the transceiver circuitry 301. Furthermore, modules may be stored in the memory circuitry 305, and these modules may provide instructions such that, when the instructions of the modules are executed by the processing circuitry 303, the processing circuitry 303 performs corresponding operations (e.g., operations discussed below with respect to example embodiments related to encoding / decoding / transmitting / receiving a bitstream including a picture / video).
[0052] Figure 22 is a block diagram illustrating elements of a radio access network (RAN) node 400 (also referred to as a network node, base station, eNodeB / eNB, gNodeB / gNB, etc.) of a radio access network (RAN) configured to provide cellular communications, according to embodiments of the inventive concepts. As shown, the RAN node may include transceiver circuitry 401 (also referred to as a transceiver), which includes a transmitter and a receiver configured to provide uplink and downlink radio communications with mobile terminals. The RAN node may include network interface circuitry 407 (also referred to as a network interface), which is configured to provide communications with other nodes of the RAN and / or core network (CN) (e.g., with other base stations). The network node may also include processing circuitry 403 (also referred to as a processor, e.g., corresponding to processing circuitry QQ170) coupled to the transceiver circuitry and memory circuitry 405 (also referred to as a memory) coupled to the processing circuitry. The memory circuitry 405 may include computer-readable program code that, when executed by the processing circuitry 403, causes the processing circuitry to perform operations according to embodiments disclosed herein. According to other embodiments, the processing circuit 403 may be defined to include memory, such that a separate memory circuit is not required.
[0053] As discussed herein, operations of the RAN node may be performed by processing circuitry 403, network interface 407, and / or transceiver 401. For example, processing circuitry 403 may control transceiver 401 to transmit downlink communications to one or more mobile terminals (UEs) over a radio interface via transceiver 401 and / or to receive uplink communications from one or more mobile terminals (UEs) over a radio interface via transceiver 401. Similarly, processing circuitry 403 may control network interface 407 to transmit communications to one or more other network nodes via network interface 407 and / or to receive communications from one or more other network nodes via the network interface. Furthermore, modules may be stored in memory 405, and these modules may provide instructions such that, when the instructions of the modules are executed by processing circuitry 403, processing circuitry 403 performs corresponding operations.
[0054] According to some other embodiments, the network node may be implemented as a core network (CN) node without a transceiver. In such embodiments, a transmission to a wireless device UE may be initiated by the network node, such that the transmission to the wireless device is provided via a network node including a transceiver (e.g., via a base station or RAN node). According to embodiments in which the network node is a RAN node including a transceiver, initiating the transmission may include transmitting via the transceiver.
[0055] Figure 23 is a block diagram illustrating elements of a core network, CN, node (e.g., an SMF node, an AMF node, etc.) of a communication network configured to provide cellular communications according to an embodiment of the inventive concept. As shown, the CN node may include network interface circuitry 507 (also referred to as a network interface) configured to provide communications with the core network and / or other nodes of the radio access network RAN. The CN node may also include processing circuitry 503 (also referred to as a processor) coupled to the network interface circuitry and memory circuitry 505 (also referred to as a memory) coupled to the processing circuitry. The memory circuitry 505 may include computer-readable program code that, when executed by the processing circuitry 503, causes the processing circuitry to perform operations according to the embodiments disclosed herein. According to other embodiments, the processing circuitry 503 may be defined to include a memory, such that a separate memory circuit is not required.
[0056] As discussed herein, operations of the CN node may be performed by processing circuitry 503 and / or network interface circuitry 507. For example, processing circuitry 503 may control network interface circuitry 507 to transmit communications to one or more other network nodes via network interface circuitry 507 and / or to receive communications from one or more other network nodes via network interface circuitry 507. Furthermore, modules may be stored in memory 505, and these modules may provide instructions such that, when the instructions of the modules are executed by processing circuitry 503, processing circuitry 503 performs corresponding operations.
[0057] Figure 24 is a block diagram illustrating elements of a media server 600 configured to provide media content according to an embodiment of the inventive concept. As shown, the server may, for example, include a network interface circuit 607 (also referred to as a network interface) configured to provide media content (e.g., pictures and / or videos) to the wireless device 300 via a communication network (e.g., a wireless communication network including one or more RAN nodes 400 and / or CN nodes 500). The server may also include a processing circuit 603 (also referred to as a processor) coupled to the network interface circuit and a memory circuit 605 (also referred to as a memory) coupled to the processing circuit. The memory circuit 605 may include computer-readable program code that, when executed by the processing circuit 603, causes the processing circuit to perform operations according to the embodiments disclosed herein. According to other embodiments, the processing circuit 603 may be defined to include a memory, such that a separate memory circuit is not required.
[0058] As discussed herein, the operations of the server may be performed by processing circuitry 603 and / or network interface circuitry 607. For example, processing circuitry 603 may control network interface circuitry 607 to transmit communications to a wireless device via one or more network nodes (e.g., RAN and / or CN nodes) via network interface circuitry 607, and / or to receive communications from a wireless device via network interface circuitry from one or more network nodes (e.g., RAN and / or CN nodes). In addition, modules may be stored in memory 605, and these modules may provide instructions such that, when the instructions of the modules are executed by processing circuitry 603, processing circuitry 603 performs corresponding operations (e.g., the operations discussed below with respect to example embodiments related to encoding / decoding / transmitting / receiving a bitstream including a picture / video).
[0059] The tile tools in HEVC and VVC enable partitioning of pictures into independent regions. Tile boundaries break parsing and spatial prediction dependencies, allowing tiles to be processed independently of other tiles.
[0060] In its current form in VVC (and HEVC) tiles can be constrained by using tile rows and tile columns. This means that all tile boundaries may be required to span the entire picture; from left to right or from top to bottom. This may reduce / limit the flexibility of the tiles. For example, Figure 3A The block structure in is not supported in HEVC and VVC.
[0061] Figure 3A shows an example of a partition structure that is not supported in the HEVC and VVC working drafts, and Figure 3BThe closest partition structure to 3A is shown using partition rows and partition columns as supported in HEVC and VVC Working Draft 3.
[0062] To support virtualization using HEVC or VVC Figure 3A In the block structure, one can specify Figure 3B However, Figure 3B The tile structure in contains many more tile boundaries, which hurts compression efficiency and may cause unnecessary blocking artifacts. Moreover, if the tiles are to be completely spatially independent, VVC may only allow the use of loop_filter_across_tiles_enabled_flag to enable or disable in-loop filtering dependencies across all tile boundaries of the picture. Therefore, many unnecessary in-loop filtering constraints may appear.
[0063] The partitioning of pictures into independent regions is extended in VVC by introducing the concept of tile groups. A picture can include either rectangular tile groups or raster scan tile groups, but not both types in the same picture. Rectangular tile groups enable the partitioning of pictures into non-overlapping rectangular regions with some restrictions, and raster scan tile groups include one or more tiles in raster scan order. Figure 4 Some tile group partitioning examples supported in the current VVC draft specification are shown. Grey lines are tile boundaries, and black lines are tile and tile group boundaries. Figure 4 The two leftmost examples are examples of rectangular tile groups, while the rightmost example is an example of a raster scan tile group.
[0064] However, this flexibility in partitioning does not change the interrelationships of the partitions, as parsing and spatial prediction dependencies are still restricted between all partitions, even those in the same partition group. In other words, in the current VVC draft, there is no prediction dependency between any two partitions, regardless of whether they are in the same partition group.
[0065] Figure 5 An example of cubemap projection partitioning from Section 2.5 of JVET-K0300-v1 is shown. The JVET-K0300-v1 document reports that the example is included in clauses D.6.3 and D.6.4 of OMAF and adopted in the VR Industry Forum Guidelines. This and other 360 video streaming embodiments may use partitioning of different resolutions which may require a mix of blocks and slices in HEVC. Figure 5 As can be seen on the right, the rightmost column of tiles is made up of small tiles by using HEVC slicing to divide the tiles. VVC does not support mixing of tiles and tiles, and therefore Figure 5 The examples in are not supported.
[0066] Figure 5 An example of RWMR viewport-dependent 360° streaming based on MCTS is shown.
[0067] In applications where the tiles within a tile group are naturally correlated, it is beneficial to be able to treat the region specified by the tile group as a single entity and allow parsing and spatial prediction correlation between the tiles within the tile group. Therefore, it is beneficial to define a mechanism to selectively allow parsing and spatial prediction correlation between tiles.
[0068] The proposed embodiment can provide the mechanism of supporting relevant blocks. Through the proposed embodiment, parsing and spatial prediction correlation can be allowed between the relevant blocks in the block group. This is proposed to support rectangular block group situation and raster scan block group situation. This can be realized by one or more syntax elements (for example, such as, the flag of the correlation between the blocks belonging to the same block group in the activation or deactivation parameter set). In some versions of the inventive concept, the one or more syntax elements are decoded for each block group. In one version, there is a syntax element for all block groups in a picture, a picture group, a CVS or the entire bit stream. The proposed embodiment can also provide the mechanism of adjusting the mutual relationship between adjacent block groups. This can be realized by one or more syntax elements (for example, the flag of the prediction correlation between two adjacent block groups allowed in the parameter set).
[0069] A partition group in VVC groups multiple partitions together and puts them into a single encapsulation unit called a NAL unit. However, the partitions in a partition group in the current VVC draft are treated as independent regions, which means that the boundaries between them break parsing and spatial prediction dependencies. The proposed embodiments can enable more flexible partitioning of pictures into regions (where unnecessary breaking of parsing and prediction dependencies can be reduced / avoided).
[0070] Examples of other advantages besides partitioning flexibility include the following: • Reduce / avoid artifacts at tile boundaries within tile groups.
[0071] • Reduced complexity, since no padding or delimiter processing is required at tile boundaries within tile groups.
[0072] • Compression efficiency is improved, since prediction dependencies can be allowed between adjacent tiles in a tile group.
[0073] Support for virtual blocks of different sizes. This supports e.g. Figure 5 An example with low bitrate overhead in .
[0074] Some embodiments of the inventive concept may extend improvements to the current VVC draft that break the boundaries between partition groups that parse and spatial prediction dependencies.The proposed embodiments may provide syntax and semantics for the case where two adjacent partition groups may have prediction dependencies.
[0075] The VVC tile grouping concept can be enhanced by defining rules and mechanisms, such as dependency rules and mechanisms between tiles in the same tile group and dependency rules and mechanisms between tile groups.
[0076] Some embodiments of the inventive concept may introduce the concept of dependent partitions and may signal one or more syntax elements in the bitstream that specify dependency properties between partitions. A partition is considered independent when it can be decoded independently of other partitions. Partitions are considered independent unless this independence status is overridden, for example, by one or more syntax elements decoded from the bitstream. Subsets of partitions may be made dependent on decoded syntax elements in the sense that partitions become available for prediction from each other and the state in one partition depends on the state in another partition. Examples of the former include inter-frame and / or intra-frame prediction across partition boundaries. An example of the latter is to update the CABAC state across partition boundaries such that the CABAC state of a block in one partition depends on the CABAC state of a block in another partition within the same subset.
[0077] The syntax elements used to specify dependencies between partitions may alternatively be referred to as merge syntax elements.
[0078] Using the proposed embodiment, this can be achieved by properly grouping the tiles into tile groups and carefully specifying tile dependencies within the tile groups. Figure 5 Partition example in . Figure 6A 、 6B An exemplary embodiment is shown in FIG6C. This embodiment can provide the desired partitioning by first partitioning the image into a grid of blocks (e.g. Figure 6B ), and secondly, grouping the blocks into block groups ( Figure 6C ), and thirdly designating the blocks in some of the block groups as related blocks. Figure 6C In the example, the boundaries between related blocks are shown by gray lines. By making the blocks in some block groups related, Figure 6A The expected partition.
[0079] Figure 6A shows an example of cubemap projection partitioning, and Figure 6B and 6C A proposed embodiment supporting this partitioning is shown.
[0080] Embodiment A is discussed below with respect to the general concepts of some embodiments.
[0081] In this embodiment, decoding of one or more pictures includes deriving dependency states between multiple partitions. The derivation is accomplished by first decoding the partition structure (of which one or more pictures are composed), and then deriving the dependency states between the partitions by decoding one or more syntax elements in the bitstream. The dependencies may be predicted dependencies, and they may be specified using one or more syntax elements (e.g., flags in a parameter set such as a picture parameter set or a sequence parameter set). The syntax element(s) used to specify the dependencies may alternatively be referred to as merge syntax element(s).
[0082] In one example, the partitions are blocks, and the picture is partitioned into blocks using block rows and block columns, and block dependencies are signaled in the bitstream. If a block dependency between two adjacent blocks is signaled such that the blocks are dependent, prediction across a block boundary between the blocks is allowed. If the blocks are signaled as independent, prediction across a block boundary is not allowed.
[0083] The decoder may perform all or a subset of the following operations / steps for this embodiment to decode a picture: 1. Decode the partition structure from one or more syntax elements in the bitstream. The syntax is preferably in a parameter set. The partition syntax can divide the picture into rows and columns, where a partition can be a cross between a row and a column, such as the block partition in HEVC.
[0084] 2. deriving the dependency between partitions in the picture by decoding one or more syntax elements from the bitstream, wherein the picture may include at least two adjacent partitions S1 and S2 designated as dependent by the syntax elements, and the picture may include at least two partitions S3 and S4 designated as independent, and at least one of S3 and S4 is different from S1 and S2.
[0085] 3. Using the derived correlation when decoding the picture.
[0086] The details about dependent and independent partitions are discussed below.
[0087] In operation / step 3 above, at least two adjacent partitions S1 and S2 are related such that a subset S of the following list from 1 to 11 is allowed to span the partition boundary between S1 and S2, where partition S1 is decoded before partition S2, and there is block B1 in S1 and block B2 in S2 that are spatial neighbors: 1. Intra-frame sample prediction of B2 can be accomplished by predicting the sample values in B2 from the sample values in B1.
[0088] 2. The intra mode of B2 can be predicted from the intra mode of B1.
[0089] 3. The motion vector of B2 can be predicted from the motion vector of Bl and / or the reference picture for Bl.
[0090] 4. The reference pictures used for inter prediction of B2 can be predicted from the reference pictures used for B1.
[0091] 5. The motion vectors for B2 may be selected from the motion vectors in B1, for example through a merging process.
[0092] 6. The quantization parameter value for B2 can be predicted or copied from the quantization parameter value of B1.
[0093] 7. The derivation of whether the inverse transform of B2 is skipped may depend on whether the inverse transform of B1 is skipped and / or other properties of B1.
[0094] 8. The derivation of whether there are any transform coefficients in B2 may depend on whether there are any transform coefficients in Bl and / or other properties of Bl.
[0095] 9. The CABAC state of the syntax elements used to decode B2 may depend on properties of B1, such as, but not limited to, what mode B1 is encoded in, what motion vectors B1 uses, what reference pictures B1 uses, what coefficient values are present in B1, and what state it is in for CABAC.
[0096] 10. The context of syntax elements used to decode B2 may depend on properties of Bl, such as but not limited to what mode Bl is encoded in, what motion vectors Bl uses, what reference pictures Bl uses, what coefficient values are present in Bl.
[0097] 11. The filtering of samples in B2 may depend on the sample values in B 1. The filtering may include, for example, in-loop deblocking filtering, sample adaptive offset (SAO) filtering, adaptive loop filtering (ALF), bilateral filtering, or Hadamard filtering.
[0098] In operation / step 3 above, at least two partitions S3 and S4 are independent such that a subset S of the list from 1 to 11 above is not allowed for any pair of blocks B3 and B4 that cross a partition boundary between S3 and S4, where partition S3 is decoded before partition S4, and block B3 in S3 and block B4 in S4 are spatial neighbors.
[0099] Embodiment B is discussed below with respect to per-partition flags.
[0100] In this embodiment, dependencies between partitions are signaled using one or more syntax elements per partition, group of partitions, or set of partitions.
[0101] Example 1 is discussed below.
[0102] In one example, a picture is partitioned into blocks using block rows and block columns, and the blocks are then grouped into block groups, and a flag for each block group is signaled and decoded such that if the value of the flag has one value (e.g., equal to 0), it specifies that the blocks in the block group are independent, and if the value of the flag has another value (e.g., equal to 1), it specifies that the blocks in the block group may be related to each other.
[0103] The decoder may perform all or a subset of the following operations / steps for this embodiment to decode a picture: 1. Decode a block partition structure from one or more syntax elements in the bitstream. The syntax is preferably in a parameter set. The syntax may partition a picture into rows and columns, where a block is an intersection between a row and a column.
[0104] 2. Determine to group the chunks into at least one chunk group such that a set of chunks belongs to a chunk group.
[0105] 3. For a partition group in a picture, decode a flag that specifies whether the partitions belonging to the partition group are related or independent. This operation / step 3 can alternatively be performed before operation / step 2.
[0106] 4. If the partitions in a partition group are correlated, decoding the partition group wherein prediction between the partitions in the partition group is enabled such that there is at least one block in one partition in the partition group that is predicted from at least one block in another partition in the partition group. Alternatively, decoding the partition group wherein a subset S of the list from 1 to 11 in embodiment A is enabled.
[0107] 5. If the partitions in a partition group are independent, decode the partition group, wherein prediction between the partitions in the partition group is not allowed so that no partition in the partition group has a block predicted from any block in any different partition in the partition group. Alternatively, decode the partition group, wherein a subset S of the list from 1 to 11 in embodiment A is not allowed.
[0108] In an alternative embodiment, operation / step 3 is accomplished by first decoding one or more syntax elements that specify the number (N) of partition groups present in the picture, followed by a loop that executes N times, wherein for each loop a flag is decoded and the flag specifies whether the partitions in a particular partition group are dependent or independent. This syntax is preferably in a parameter set.
[0109] Figure 13Table 1 of shows an exemplary syntax for Example 1 of Embodiment A over JVET-M0853. The modifications to JVET-M0853 include lines 19-21.
[0110] Shown below Figure 13 Semantics of the new syntax elements: dependent_tiles_in_tile_group_flag[i] equal to 0 specifies that the tiles in the i-th tile group are independent, and dependent_tiles_in_tile_group_flag[i] equal to 1 specifies that the tiles in the i-th tile group are dependent. When dependent_tiles_in_tile_group_flag[i] is not present, it is inferred to be equal to 0.
[0111] A description of the decoding process is provided below.
[0112] The value of dependent_tile_in_tile_group_flag[i] can affect the decoding process of the current block in the picture by: 1. Derive the variable dependent_tile_flag for the partition group to which the current block belongs by setting the value of dependent_tile_flag to the value of dependent_tile_in_tile_group_flag[j] (where j is the tile index of the partition group to which the current block belongs).
[0113] 2. The neighbor block availability availableN of the current block relative to the neighbor blocks is derived as follows: If one or more of the following conditions are true, set availableN equal to FALSE: o[Other condition sets not described here] o The neighboring block is contained in a different partition than the current block, and the value of dependent_tile_flag of the partition containing the current block is equal to 0.
[0114] Otherwise, set availableN equal to TRUE.
[0115] Alternatively, the value of dependent_tile_in_tile_group_flag[i] may affect the decoding process of the current block in the picture by the following operation, where the current block is the first block in the current partition, and there is a previous partition that is the partition that immediately precedes the current block in decoding order, and the current and previous partitions belong to the same partition group: 1. Derive the variable dependent_tile_flag for the tile group to which the current and previous tiles belong by setting the value of dependent_tile_flag to the value of dependent_tile_in_tile_group_flag[j] (where j is the tile index of the tile group to which the current and previous tiles belong).
[0116] 2. When parsing of the previously partitioned data is finished, at least one of the CABAC context variable set, the rice parameter initialization state set, and the related quantization state set is stored.
[0117] 3. If the value of dependent_tile_flag is equal to a value specifying that the tiles in the tile group are dependent, then before parsing the current tile, at least one of the stored set of CABAC context variables, the stored set of rice parameter initialization states, and the stored set of dependent quantization states is used as input to a synchronization process of context variables, rice parameters, and dependent quantization states, wherein the synchronization process sets at least one of the set of context variable values, one rice parameter initialization state, and one dependent quantization state to the value stored in operation / step 2.
[0118] 4. Decode the current block.
[0119] Example 2 is discussed below.
[0120] In another example of this embodiment, similar to the previous example, a flag is signaled for each partition group that specifies whether the partitions in that partition group are dependent or independent. However, in this example, there is a separate flag for rectangular partition groups and a separate flag for raster scan partition groups, where the flag for rectangular partition groups is present in the parameter set and the flag for raster scan partition groups is signaled in the partition group header. The decoder can perform all or a subset of the following operations to decode a picture for this embodiment: 1. Decode a block partition structure from one or more syntax elements in the bitstream. The syntax is preferably in a parameter set. The syntax may partition a picture into rows and columns, where a block is an intersection between a row and a column.
[0121] 2. Decode one or more syntax elements that specify whether the partition group is rectangular or whether the partition group is in raster scan order.
[0122] 3. If the partition group is rectangular, first decode one or more syntax elements that specify the number (N) of rectangular partition groups present in the picture, followed by a loop that executes N times, where for each loop a flag is decoded and the flag specifies whether the partitions in a particular rectangular partition group are dependent or independent. This syntax is preferably in a parameter set.
[0123] 4. If the tile groups are in raster scan order, decode a flag per raster scan tile group from the tile group header, the flag specifying whether the tiles in the raster scan tile group are dependent or independent.
[0124] 5. If the partitions in a partition group are correlated, decoding the partition group wherein prediction between the partitions in the partition group is enabled such that there is at least one block in one partition in the partition group that is predicted from at least one block in another partition in the partition group. Alternatively, decoding the partition group wherein a subset S of the list from 1 to 11 in embodiment A is enabled.
[0125] 6. If the partitions in a partition-block group are independent, decode the partition-block group, disallowing prediction between the partitions in the partition-block group so that no partition in the partition-block group has a block predicted from any block in any different partition-block group. Alternatively, decode the partition-block group, disallowing a subset S of the list 1 to 11 in embodiment A.
[0126] Figure 14 Table 2 shows an exemplary PPS syntax of Example 2 of Embodiment B based on JVET-M0853. Figure 14 The modifications to JVET-M0853 include lines 31-32.
[0127] Figure 15 Table 3 shows an exemplary chunk group header syntax of the second example of embodiment B based on JVET-M0853. Figure 15 The modifications in JVET-M0853 include lines 7-8.
[0128] The semantics of the new syntax elements are shown below: dependent_tiles_in_rect_tile_group_flag[i] equal to 0 specifies that the tile group consists of independent tiles. dependent_tiles_in_rect_tile_group_flag[i] equal to 1 specifies that the tile group consists of dependent tiles.
[0129] dependent_tiles_in_tile_group_flag equal to 0 specifies that the tile group consists of independent tiles. dependent_tiles_in_tile_group_flag equal to 1 specifies that the tile group consists of dependent tiles. When not present, the value of dependent_tiles_in_tile_group_flag is inferred to be equal to dependent_tiles_in_rect_tile_group_flag[tileGroupIdx]. [Ed mentions: tileGroupIdx is the tile group index value of the current tile. When rectangular tile blocking is enabled, then rect_tile_group_flag is equal to 0, and tileGroupIdx is set elsewhere to the tile group index of the current tile, so that the correct value in the array dependent_tiles_in_rect_tile_group_flag is assigned to the variable dependent_tiles_in_tile_group_flag].
[0130] The decoding process described above can be applied to this example.
[0131] Example 3 is discussed below.
[0132] In another example of this embodiment, a flag is signaled in the PPS for each partition, where the flag specifies whether a particular partition is dependent on or independent of previously decoded neighboring partitions.
[0133] The decoder may perform all or a subset of the following operations for this embodiment to decode a picture: 1. Decode a block partition structure from one or more syntax elements in the bitstream. The syntax is preferably in a parameter set. The syntax may partition a picture into rows and columns, where a block is an intersection between a row and a column.
[0134] 2. Decoding one or more syntax elements that specify the number of partitions (N) present in the picture, followed by a loop that executes N times, wherein for each loop a flag is decoded and the flag specifies whether the partitions are dependent or independent. This syntax is preferably in a parameter set.
[0135] 3. If the partitions are correlated, decode the partitions, allowing prediction between the partitions such that there is at least one block in the partition that is predicted from at least one block in another partition. Alternatively, decode the partitions, allowing a subset S of the list from 1 to 11 in embodiment A.
[0136] 4. If the partitions are independent, decode the partitions without allowing prediction between the partitions, such that no block in the partition is predicted from any block in any different partition. Alternatively, decode the partitions without allowing a subset S of the list from 1 to 11 in embodiment A.
[0137] Figure 16 Table 4 of shows an exemplary PPS syntax for Example 3 of Embodiment B over JVET-M0853. The modifications to JVET-M0853 include lines 9-10.
[0138] The semantics of the new syntax elements are shown below: dependent_tile_flag[i] equal to 0 specifies that the i-th partition is independent. dependent_tile_flag[i] equal to 1 specifies that the i-th partition may depend on partitions decoded before the i-th partition.
[0139] In another version of this example, a flag specifies whether the i-th partition depends on partitions in the same partition group: dependent_tile_flag[i] equal to 0 specifies that the i-th partition is independent. dependent_tile_flag[i] equal to 1 specifies that the i-th partition may depend on partitions in the same partition group as the i-th partition that were decoded before the i-th partition.
[0140] The decoding process described above can be applied to this example.
[0141] Embodiment C is discussed below with respect to per-picture or per-sequence flags (Section 5.3).
[0142] In this embodiment, one or more syntax elements per picture and / or per sequence are used to signal the dependencies between partitions. Thus, the dependencies between partitions are signaled once for the entire picture or for the entire sequence.
[0143] In one example, there is a flag per picture that specifies the dependency between the tiles in each tile group in the picture. In the decoding process of this example, the picture is partitioned into tiles using tile rows and tile columns, and the tiles are grouped into tile groups, and the dependency flag for the picture is parsed and decoded. If the dependency flag per picture is equal to one value (e.g., equal to 0), it specifies that the tiles in all tile groups in the picture are independent, and if the dependency flag is equal to another value (e.g., equal to 1), it specifies that the tiles in all tile groups in the picture are dependent. The tiles in all tile groups being dependent can mean that any two adjacent tiles in the picture are dependent or that any two adjacent tiles belonging to the same tile group are dependent. The dependency flag can be signaled individually for each picture, or it can be signaled for a group of pictures (e.g., by placing the flag in a parameter set such as a picture parameter set).
[0144] Figure 17 Table 5 of shows an exemplary syntax of embodiment B based on JVET-M0853. In this example, a flag is signaled in the PPS that specifies the dependency of the tiles within each tile group for all tile groups in the picture. Figure 17 The changes in JVET-M0853 include line 19.
[0145] The semantics of the new syntax elements are shown below.
[0146] dependent_tiles_in_tile_group_flag equal to 0 specifies that the tiles in a tile group are independent, and dependent_tiles_in_tile_group_flag equal to 1 specifies that the tiles in a tile group are dependent. When dependent_tiles_in_tile_group_flag is not present, it is inferred to be equal to 0.
[0147] The decoding process described above can be applied to this embodiment.
[0148] In a variation of this embodiment, templates for dependency relationships between partitions may be defined, and one or more syntax elements may specify which template is to be used for the current picture or sequence. For example, the template may (but is not limited to these examples) be signaled in a parameter set such as a picture parameter set, or the template may be a fixed template that does not require signaling. For example, template T1 specifies that all blocks in partition group A and all blocks in partition group C are independent and all blocks in partition group B are dependent, and template T2 specifies that all blocks in partition group B and all blocks in partition group C are independent and all blocks in partition group A are dependent. The syntax element then specifies which of the partition dependency templates T1 or T2 should be used for the current picture.
[0149] Example D is discussed below with respect to flags that control different aspects of relevance (Section 5.4).
[0150] In this embodiment, the dependencies between partitions are signaled using syntax elements that specify different dependency aspects, such as the availability of inter-frame prediction, the availability of intra-frame prediction, resetting or maintaining the CABAC state when moving from one partition to another. A list of 11 dependency aspects is provided in the description of embodiment A. Having different dependency aspects x and y between partitions A and B means that partition A can depend on partition B in aspect x and be independent of partition B in aspect y.
[0151] The decoder may perform all or a subset of the following operations for this embodiment to decode a picture: 1. Decode the partition structure from one or more syntax elements in the bitstream. The syntax is preferably in a parameter set. The partition syntax can divide the picture into rows and columns, where a partition is an intersection between a row and a column, such as block partitioning in HEVC.
[0152] 2. deriving the dependency between partitions in the picture by decoding one or more syntax elements from the bitstream. The picture may include at least two partitions S1 and S2 designated as dependent by the syntax elements, and the picture may include at least two partitions S3 and S4 designated as independent, wherein: a. There are at least two partitions S1 and S2 b. S1 and S2 are spatial neighbors, and there is a partition boundary between S1 and S2 c. Decode S1 before S2 d. There is block B1 in S1 and block B2 in S2, which are spatial neighbors and share a boundary, where the boundary is both a block boundary and a partition boundary e. Complete a subset of the following: i. Decode flag F1 and if the value of F1 has one value, intra sample prediction of B2 can be done by predicting the sample values in B2 from the sample values in B1. If the flag has another value, this is not allowed.
[0153] ii. Decode the flag F2, and if the value of F2 has one value, the intra mode of B2 can be predicted from the intra mode of B1. If the flag has another value, this is not allowed.
[0154] iii. Decode flag F3, and if the value of F3 has one value, the motion vector of B2 can be predicted from the motion vector of Bl and / or the reference picture for Bl. If the flag has another value, this is not allowed.
[0155] iv. Decode flag F4, and if the value of F4 has one value, the reference pictures used for inter prediction of B2 can be predicted from the reference pictures used for B1. If the flag has another value, this is not allowed.
[0156] v. Decode flag F5 and if the value of F5 has one value, the motion vector for B2 can be selected from the motion vectors in B1, for example, by a merging process. If the flag has another value, this is not allowed.
[0157] vi. Decode flag F6 and if the value of F6 has one value, the quantization parameter value for B2 can be predicted or copied from the quantization parameter value of B1. If the flag has another value, this is not allowed.
[0158] vii. Decode flag F7, and if the value of F7 has one value, the derivation of whether the inverse transform of B2 is skipped can depend on whether the inverse transform of B1 is skipped and / or other properties of B1. If the flag has another value, this is not allowed.
[0159] viii. Decode flag F8, and if the value of F8 has one value, the derivation of whether there are any transform coefficients in B2 can depend on whether there are any transform coefficients in B1 and / or other properties of B1. If the flag has another value, this is not allowed.
[0160] ix. Decode flag F9, and if the value of F9 has one value, the CABAC state of the syntax elements used to decode B2 can depend on the properties of B1, such as, but not limited to, what mode B1 is encoded in, what motion vectors B1 uses, what reference pictures B1 uses, what coefficient values are present in B1, and what state CABAC is in for B1. If the flag has another value, this is not allowed.
[0161] x. Decode flag F10, and if the value of F10 has one value, the context for decoding syntax elements of B2 can depend on properties of B1, such as, but not limited to, what mode B1 is encoded in, what motion vectors B1 uses, what reference pictures B1 uses, what coefficient values are present in B1. If the flag has another value, this is not allowed.
[0162] xi. Decode flag F11, and if flag F11 has one value, filtering of samples in B2 may depend on samples in B1. If the flag has another value, this is not allowed. Filtering may include, for example, in-loop deblocking filtering, sample adaptive offset (SAO) filtering, adaptive loop filtering (ALF), bilateral filtering, or Hadamard filtering.
[0163] 3. Using the derived correlation when decoding the picture.
[0164] Alternatively, the subset of flags described above may be combined so that there is one decoded flag F, and the values of the subset of flags F1 to F11 are set equal to the value of F.
[0165] Embodiment E is discussed below with respect to the previous embodiment in the context of orientation (Section 5.5).
[0166] In this embodiment, the directional aspect of the correlation is considered. This means that one or more codewords are signaled for the correlation of partition A to partition B and the correlation of partition A to partition B is adjusted by the relative positioning of partitions A and B, such as but not limited to this example where partition B is located to the left of partition A.
[0167] In one example of this embodiment, one or more codewords signal the relevance of partition A to partition B, where partition B is spatially located in a particular direction L relative to A, for example, to the left of A, and another one or more codewords signal the relevance of partition A to partition C, where partition C is spatially located in a particular direction T relative to A, for example, above A.
[0168] The decoder may perform all or a subset of the following operations for this embodiment to decode a picture: 1. Decode a partition structure from one or more syntax elements in the bitstream. The syntax is preferably in a parameter set. The syntax may partition a picture into rows and columns, where a partition is an intersection between a row and a column.
[0169] 2. decoding one or more syntax elements that specify the number (N) of partitions present in the picture, followed by a loop that executes N times and, for each iteration of the loop, decoding a number (d) of flags, where d is the number of directions and each of the d flags specifies whether the partition is dependent or independent of the partition in the dth direction relative to the current partition. This syntax is preferably in a parameter set. In one example, d can be equal to 2, and thus two flags are signaled for each partition, one flag can indicate the dependency of the current partition on the partition to the left (the first direction is designated as the left direction) and the other flag can indicate the dependency of the partition above the current partition (the second direction is designated as the above direction).
[0170] 3. If the partitions are correlated, decode the partitions, allowing prediction between the partitions such that there is at least one block in the partition that is predicted from at least one block in another partition. Alternatively, decode the partitions, allowing a subset S of the list from 1 to 11 in embodiment A.
[0171] 4. If the partitions are independent, decode the partitions without allowing prediction between the partitions, such that no block in the partition is predicted from any block in any different partition. Alternatively, decode the partitions without allowing a subset S of the list from 1 to 11 in embodiment A.
[0172] In one example of this embodiment, two codewords are signaled per block, and the first codeword specifies the dependency of block A on block B that is spatially located to the left of block A (and only when block A is not located at the left boundary of the picture), and the second codeword specifies the dependency of block A on block C that is spatially located above block A (and only when block A is not located at the top boundary of the picture).
[0173] Figure 18 Table 6 shows an exemplary PPS syntax of an example of embodiment F based on JVET-M085. Figure 18 The modifications in JVET-M0853 include lines 9-12.
[0174] dependent_on_left_tile_flag[i] equal to 0 specifies that the i-th tile is independent. dependent_on_left_tile_flag[i] equal to 1 specifies that if the i-th tile is not on the left boundary of the picture, the i-th tile may depend on the tile spatially to the left of the i-th tile. When dependent_on_left_tile_flag[i] is not present, the value of dependent_on_left_tile_flag[i] is inferred to be equal to 0.
[0175] dependent_on_above_tile_flag[i] equal to 0 specifies that the i-th tile is independent. dependent_on_above_tile_flag[i] equal to 1 specifies that the i-th tile may depend on tiles spatially above the i-th tile if the i-th tile is not located on the upper boundary of the picture. When dependent_on_above_tile_flag[i] is not present, the value of dependent_on_above_tile_flag[i] is inferred to be equal to 0.
[0176] In a variation of this embodiment, directional correlation is extended to non-spatially adjacent partitions. In one example, directional correlation is extended to content-adjacent partitions, which are partitions that are not spatially adjacent but share contiguous content. An example of this variation of embodiment F is frame packing of a cubemap projection ( Figure 7 ), where, for example, content in the left face continues to the right face, but the left and right faces are enclosed in the left and right sides of the picture frame (with the front face in between) and therefore have no spatial neighbors. In this example, a directional dependency can be defined that covers face continuity regardless of the spatial distance of the faces in the enclosing frame.
[0177] Figure 7 A cubemap projection and corresponding packing frame are shown, which packs contiguous portions of content into partitions that may not be spatially adjacent to each other and may have rotations. This embodiment can be combined with other embodiments (e.g., with embodiment D) to have different aspects of correlation between partitions.
[0178] Embodiment F is discussed below with respect to complete merging into one partition (Section 5.6).
[0179] In this embodiment, the dependency between two partitions is handled as a full merge of the two partitions. A full merge can be defined as treating the resulting region as one partition in every respect, e.g., with full predicted availability and associated CABAC state derivation.
[0180] In one example, if tiles A and B are completely merged, the resulting region C is considered as a single tile C. Figure 8A 、 8B , 8C and 8D show examples of this embodiment, where the blocks within a block group are fully merged to achieve Figure 5 To achieve the desired partition structure, first partition the image into a grid of blocks ( Figure 8A ), and then group the chunks into chunk groups ( Figure 8B ), then specify the relevant blocks ( Figure 8C), followed by a complete merging of the relevant chunks within each chunk group ( Figure 8D ) to obtain the desired partition structure. In other embodiments, the picture is partitioned (such as Figure 8C ), which consists of 36 blocks and 24 block groups. In this embodiment, the picture is partitioned (as shown in Figure 8D ), which consists of 24 blocks and 24 block groups.
[0181] Figure 8A 、 8B 8C and 8D show the use of Example F Figure 5 Implementation of the desired partition structure.
[0182] In one example, the decoder derives a correlation flag value (as described earlier in this disclosure) for each block group, wherein the correlation flag value specifies whether the blocks in a particular block group are correlated or independent of each other. If the correlation flag specifies that the blocks are correlated, the block group is considered as a single block during decoding. For example, if the block in the flag specifies that the blocks are correlated, then even if there is more than one block in the block group, a set of decoding operations / steps may be performed only once for the block group. If the flag specifies that the blocks are correlated, then when there is more than one block in the block group, a set of decoding operations / steps may be performed once for each block in the block group.
[0183] The decoder may perform all or a subset of the following operations for this embodiment to decode a picture: 1. Decode a block partition structure from one or more syntax elements in the bitstream. The syntax is preferably in a parameter set. The syntax may partition a picture into rows and columns, where a block is an intersection between a row and a column.
[0184] 2. Determine to group the segments into at least one current segment group such that there is a set of segments belonging to the current segment group, wherein there are at least two segments in the set in the current segment group.
[0185] 3. For the current partition group in the picture, decode a flag, the flag specifying whether the at least two partitions belonging to the current partition group are dependent or independent. This operation / step 3 can alternatively be performed before operation / step 2.
[0186] 4. If, according to the flag, the at least two partitions in the current partition group are independent, then when decoding the current partition group, a set S of decoding operations / steps is performed for each of the at least two partitions in the current partition group.
[0187] 5. If at least two partitions in the current partition group are related according to the flag, a set S of decoding operations / steps may be performed only once for the current partition group (the entire current partition group is treated as a single partition here).
[0188] The set S of decoding operations may include one or more of the following: 1. Deriving the spatial position of the partition and the spatial position of the first block in the partition.
[0189] 2. Reset and initialize an arithmetic decoder engine, such as a CABAC engine. This may include resetting context variable values and / or rice parameter initialization states used by the arithmetic engine.
[0190] 3. After the blocking, flush CABAC and byte-align the output bit stream, for example by outputting a bit value equal to 1, followed by bit values 0 to 7 equal to 0, so that the bit stream is byte-aligned.
[0191] 4. After decoding all block data in the partition, decoding a flag that specifies whether there is another partition following the partition in the current partition group, or whether there is no longer a partition following the partition in the current partition group.
[0192] 5. Derive the bitstream pointer from the syntax parsed from the chunk group header, where the syntax may specify the entry point offset (in bytes).
[0193] 6. Setting the predicted QP value of the partition to the QP prediction value derived for the partition group, so that the QP prediction value is set to the predicted QP value for all partitions in the partition group.
[0194] Alternatively, the decoder may perform all or a subset of the following operations for this embodiment to decode a picture: 1. Decode a block partition structure from one or more syntax elements in the bitstream. The syntax is preferably in a parameter set. The syntax may partition a picture into rows and columns, where a block is an intersection between a row and a column.
[0195] 2. Determine to group the segments into at least one current segment group such that there is a set of segments belonging to the current segment group, wherein there are at least two segments in the set in the current segment group.
[0196] 3. For a current partition group in the picture, decode a flag, the flag specifying whether the at least two partitions belonging to the current partition group are dependent or independent. This operation / step 3 may alternatively be performed before operation / step 2.
[0197] 4. If the at least two partitions in the current partition group are independent according to the flag, decode the current partition group while considering the boundary between any two partitions A and B that both belong to the current partition group as a partition boundary.
[0198] 5. If the at least two partitions in the current partition group are related according to the flag, decode the current partition group, and treat the boundary between any two partitions A and B that both belong to the current partition group as a block boundary rather than a block boundary, where the block boundary can be regarded as a CTU boundary.
[0199] Embodiment G is discussed below relative to the previous embodiments, where a flag for each tile indicates which neighbor it is merged with. (Section 5.7).
[0200] In this embodiment (similar to embodiment E), a separate syntax element indicates the dependency of a partition on a neighboring partition. The difference between this embodiment and embodiment E is that in embodiment E, the syntax element specifies the dependency of partition A on partition B, where B is located in a certain direction relative to A, but in this embodiment, the syntax element specifies the dependency of partition A on all partitions located in a certain direction relative to A. In one example, if A is not a rectangular partition, A can have more than one neighbor located spatially above A, wherein the same syntax element is used to signal the dependency of A on all neighbors located spatially above A.
[0201] Figure 9A and 9B The case is shown where partition group A has two partition groups B and C as neighbors above partition group A. As an example of this embodiment, one syntax element is used to jointly specify the dependency of A on B and C, since both B and C are neighbors of A and are located above A.
[0202] exist Figure 9A and 9B , partition group A has two partition groups B and C as neighbors above partition group A. One syntax element is used to signal the dependency of A on B and C, since both B and C are neighbors of A and are located above A. The gray lines are partition boundaries, and the black lines are partition group boundaries. Figure 9A Rectangular tile groups are shown, and Figure 9B Raster scan tile groups are shown.
[0203] The decoder may perform all or a subset of the following operations for this embodiment to decode a picture: 1. Decode a block partition structure from one or more syntax elements in the bitstream. The syntax is preferably in a parameter set. The syntax may partition a picture into rows and columns, where a block is an intersection between a row and a column.
[0204] 2. Determine to group the chunks into at least one chunk group such that a set of chunks belongs to a chunk group.
[0205] 3. For a partition group in the picture, decode a flag that specifies whether the partitions belonging to the partition group are dependent or independent.
[0206] 4. For a partition group in the picture, decode one or more flags that specify whether the partition group is dependent on or independent of (one or more) neighboring partition groups positioned in at least one of the above, left, right, and below directions relative to the partition group. Each flag may specify one direction.
[0207] 5. If the partitions in a partition group are independent and the partition group is independent of other partition groups, decode the partition group, wherein prediction between the partitions in the partition group and prediction between the partition group and other partition groups are not allowed, so that no partition in the partition group has a block predicted from any block in any different partition in the picture. Alternatively, decode the partition group, wherein a subset S of the list from 1 to 11 in embodiment A is not allowed.
[0208] 6. If the blocks in a block group are related and the block group depends on other block groups, decode the block group, wherein prediction between the blocks in the block group and prediction between the blocks in the block group and blocks in other block groups (on which the block group depends) are allowed, so that in one block in the block group or in the other block groups (on which the block group depends) there is at least one block that is predicted from another block in the block group or from at least one block in the other block groups (on which the block group depends). Alternatively, decode the block group, wherein a subset S of the list from 1 to 11 of embodiment A is allowed.
[0209] Figure 19 Table 7 shows an exemplary syntax of an example of embodiment G based on JVET-M0853. Figure 19 The modifications in JVET-M0853 include lines 19-23.
[0210] The semantics of the new syntax elements are shown below: The dependent_tiles_in_tile_group_flag[i] being equal to 0 specifies that the tiles in the i-th tile group are independent, and the dependent_tiles_in_tile_group_flag[i] being equal to 1 specifies that the tiles in the i-th tile group are dependent. When the dependent_tiles_in_tile_group_flag[i] does not exist, it is inferred to be equal to 0.
[0211] The dependent_to_above_tile_groups_flag[i] being equal to 0 specifies that the i-th tile group is independent of other tile groups spatially above the i-th tile group, and the dependent_to_above_tile_groups_flag[i] being equal to 1 specifies that the i-th tile group depends on all the j-th tile groups, where the j-th tile group is a neighbor of the i-th tile group and the j-th tile group is located above the i-th tile group and j < i. When the dependent_to_above_tile_groups_flag[i] does not exist, it is inferred to be equal to 0.
[0212] The dependent_to_left_tile_groups_flag[i] being equal to 0 specifies that the i-th tile group is independent of other tile groups spatially to the left of the i-th tile group, and the dependent_to_left_tile_groups_flag[i] being equal to 1 specifies that the i-th tile group depends on all the j-th tile groups, where the j-th tile group is a neighbor of the i-th tile group and the j-th tile group is located to the left of the i-th tile group and j < i. When the dependent_to_left_tile_groups_flag[i] does not exist, it is inferred to be equal to 0.
[0213] Example H is discussed below with respect to flags for external tile group boundaries, per-boundary flags, or per-tile-group flags.
[0214] In this embodiment, separate syntax elements indicate intra-partition and inter-partition dependencies. In the example, the partition is a tile group, and the value of a flag specifies the dependencies between the tiles within the tile group, and another syntax element specifies the dependencies between the tile group and adjacent tile groups. The dependency between tile groups A and B can be adjusted to a situation where the tiles within tile group A are dependent and the tiles within tile group B are dependent.
[0215] This embodiment can be combined with any of the other embodiments, for example, to have different aspects of correlation between partitions (Embodiment D), or to add direction to the correlation between partitions (Embodiment E), or to have correlation to the left and / or above neighbors (Embodiment G).
[0216] In an example of this embodiment, a flag is signaled for each block group, and the flag indicates whether the blocks in this block group are independent of each other or whether they can have dependency. Then, another flag for every block group is signaled, wherein for a block group N in the block group scanning order, the flag specifies whether block group N is independent of other block groups, or whether block group N can depend on any one or more adjacent block groups in N-1 previously signaled block groups. The dependency between the blocks in a block group or the dependency between two block groups can be defined as the subset of the list provided above with respect to the details about the dependency and independent partitions, or can be defined as the complete merging described in embodiment F.
[0217] The decoder may perform all or a subset of the following operations for this embodiment to decode a picture: 1. Decode a block partition structure from one or more syntax elements in the bitstream. The syntax is preferably in a parameter set. The syntax may partition a picture into rows and columns, where a block is an intersection between a row and a column.
[0218] 2. Determine to group the chunks into at least one chunk group such that a set of chunks belongs to a chunk group.
[0219] 3. For a partition group in the picture, decode a flag that specifies whether the partitions belonging to the partition group are dependent or independent.
[0220] 4. For a partition group in the picture, decode a flag that specifies whether this partition group is dependent on or independent of the previous partition group.
[0221] 5. If the partitions in a partition group are independent and the partition group is independent of other partition groups, decode the partition group, disallowing prediction between the partitions in the partition group and between the partition group and other partition groups, so that no partition in the partition group has a block predicted from any block in any different partition in the picture. Alternatively, decode the partition group, disallowing a subset S of the list from 1 to 11 in embodiment A.
[0222] 6. If the tiles in a tile group are dependent and the tile group depends on other tile groups, decode the tile group, where prediction between the tiles in the tile group and prediction between the tiles in the tile group and the tiles in other tile groups (on which the tile group depends) are allowed, such that there is at least one block in one tile in the tile group or other tile groups (on which the tile group depends) that is predicted from at least one block in another tile in the tile group or other tile groups (on which the tile group depends). Alternatively, decode the tile group, where a subset S of the list from 1 to 11 in Example A is allowed.
[0223] Figure 20 Table 8 of shows the exemplary syntax of an example of Example A over JVET-M0853. For Figure 20 The modifications to JVET-M0853 in include lines 19-21 and 28.
[0224] The semantics of the new syntax elements are shown below: dependent_tiles_in_tile_group_flag[i] being equal to 0 specifies that the tiles in the i-th tile group are independent, and dependent_tiles_in_tile_group_flag[i] being equal to 1 specifies that the tiles in the i-th tile group are dependent. When dependent_tiles_in_tile_group_flag[i] does not exist, it is inferred to be equal to 0.
[0225] dependent_tile_group_flag[i] being equal to 0 specifies that the i-th tile group is independent, and dependent_tile_group_flag[i] being equal to 1 specifies that the i-th tile group depends on all the j-th tile groups, where the j-th tile group is a neighbor of the i-th tile group and j < i. When dependent_tile_group_flag[i] does not exist, it is inferred to be equal to 0.
[0226] Figure 10A and 10B shows an example of tile group partitioning, where some of the tile groups in a tile group are merged together to create a new partitioning structure using Example H.
[0227] In [[ID=
[0228] In another example, a notification flag is signaled per partition demarcation, and the flag specifies a full merge between two partitions sharing the demarcation. Figure 11 An example is shown in which arbitrary partitions can be created using this example of embodiment H. Figure 11 An example of an arbitrary partition structure, such as partition A enabled using embodiment H, is shown.
[0229] Reference below Figure 25 The operation of an electronic device performing a decoding operation according to some embodiments of the inventive concept is discussed. As an example, such operation can be performed by a wireless device and will now be referred to according to some embodiments of the inventive concept. Figure 25 The operation of such a wireless device 300 is discussed in the flowchart of Figure 21 For example, the module can be stored in Figure 21 The modules may be stored in the memory 305 of the wireless device, and these modules may provide instructions such that when the instructions of the modules are executed by the corresponding wireless device processing circuit 303, the processing circuit 303 performs the corresponding operations of the flowchart. For example, the electronic device may be a smart phone, a desktop computer, a laptop computer, a television, etc.
[0230] At block 2501, processing circuitry 303 may receive a bitstream including pictures from a remote device (e.g., a remote media server) over a radio and / or network interface. For example, the bitstream may be received over a radio interface and / or other network interface by transceiver circuitry 301. The bitstream may, for example, be a video bitstream including multiple pictures. Furthermore, the bitstream may be received from a media server over a wired / wireless communication network.
[0231] At block 2503, processing circuit 303 may decode a partition syntax element from the bitstream. At block 2505, processing circuit 303 may determine a partition structure for the picture, wherein the partition structure defines at least first and second partitions of the picture. For example, the partition structure may be determined based on the partition syntax element.
[0232] At block 2507, processing circuitry 303 may decode at least one dependency syntax element from the bitstream. At block 2509, processing circuitry 303 may determine whether the second partition is dependent on or independent of the first partition based on the at least one dependency syntax element. At block 2511, processing circuitry may decode the picture from the bitstream based on determining whether the second partition of the picture is dependent on or independent of the first partition of the picture.
[0233] At block 2515, the processing circuit 303 may render a picture for display on a screen based on decoding the picture from the bitstream. For example, if the electronic device is a smartphone, the picture may be rendered for display on a touch-sensitive screen of the smartphone as part of a video played by the smartphone.
[0234] From Figure 25 Various operations of the flowcharts may be optional with respect to some embodiments of the electronic device and related methods. With respect to the method of Example Embodiment 1 (described below), for example, Figure 25 The operations of boxes 2501, 2503 and 2515 may be optional.
[0235] Below relative to Figure 26 The operation of an electronic device performing an encoding operation according to some embodiments of the inventive concept is discussed. As an example, such operation can be performed by a media server, and reference will now be made to the inventive concept according to some embodiments of the inventive concept. Figure 26 The flow chart of FIGURE 600 discusses the operation of such a media server 600 (using Figure 24 For example, the module can be stored in Figure 24 The modules may be stored in the memory 605 of the device, and these modules may provide instructions so that when the instructions of the modules are executed by the corresponding media server processing circuit 603, the processing circuit 603 performs the corresponding operations of the flowchart. For example, the electronic device may be a media server for distributing picture / video content. According to some other embodiments, Figure 26 The electronic device may be a smartphone, desktop computer, laptop computer, television or any other device that encodes / transmits picture / video content.
[0236] At block 2601 , the processing circuit 603 may define a partition structure for a picture of a bitstream, wherein the partition structure includes at least first and second partitions of the picture.
[0237] At block 2603 , the processing circuit 603 may encode a partition syntax element of the bitstream, wherein the partition syntax element defines a partition structure of the picture based on the determined partition structure.At block 2605 , the processing circuit 603 may determine whether the second partition is dependent on or independent of the first partition.
[0238] At block 2607 , the processing circuit 603 may encode at least one dependency syntax element of the bitstream, wherein the at least one dependency syntax element specifies whether the second partition is dependent on or independent of the first partition.
[0239] At block 2609 , the processing circuit 603 may encode the first and second partitions into a bitstream based on determining the partition structure and based on determining whether the second partition of the picture is dependent on or independent of the first partition of the picture.
[0240] At block 2611, the processing circuit 603 may transmit the bit stream to a remote device (e.g., to a wireless device UE, smartphone, tablet, laptop, etc.) over a network and / or radio interface. The bit stream may thus be received by the remote device, as described above with respect to Figure 25 As discussed in Box 2501.
[0241] From Figure 26 Various operations of the flowcharts may be optional with respect to some embodiments of the electronic device and related methods. With respect to the method of example embodiment 30 (described below), for example, Figure 26 The operations of boxes 2603 and 2611 may be optional.
[0242] In the following the proposed availability process according to some embodiments of the inventive concept is discussed.
[0243] Some embodiments of the inventive concept propose adding a condition that the value of dependent_tiles_in_tile_group_flag is equal to 0 for availability to be false when the current and adjacent luma sample positions belong to different tiles in the same tile group. Using the HEVC v5 specification text as an illustration, the proposed embodiment would include the following line of text: 6.4.1z-Scanning Sequential Block Availability Export Process According to some embodiments of the inventive concept, the inputs to this process include: The luma position of the top left sample of the current block relative to the top left luma sample of the current picture (xCurr, yCurr) • The luma position (xNbY, yNbY) covered by the neighboring block relative to the top left luma sample of the current picture.
[0244] According to some embodiments of the inventive concept, the output of this process is the availability of neighboring blocks covering the position (xNbY, yNbY), denoted as availableN.
[0245] According to some embodiments of the inventive concept, the minimum luma block address minBlockAddrCurr in z-scan order of the current block is derived as follows: minBlockAddrCurr= MinTbAddrZs[xCurr>>MinTbLog2SizeY][yCurr>>MinTbLog2SizeY](6-1) According to some embodiments of the inventive concept, the minimum luma block address minBlockAddrN in z-scan order of the neighboring blocks covering the position (xNbY, yNbY) is derived as follows: Set minBlockAddrN equal to -1 if one or more of the following conditions are true: o xNbY is less than 0 o yNbY is less than 0 o xNbY is greater than or equal to pic_width_in_luma_samples o yNbY is greater than or equal to pic_height_in_luma_samples Otherwise (xNbY and yNbY are inside the image boundaries), minBlockAddrN= MinTbAddrZs[xNbY>>MinTbLog2SizeY][yNbY>>MinTbLog2SizeY](62) According to some embodiments of the inventive concept, the neighbor block availability availableN is derived as follows: If one or more of the following conditions are true, then set availableN equal to FALSE: OminBlockAddrN is less than 0, OminBlockAddrN is greater than minBlockAddrCurr, o The variable SliceAddrRs associated with the slice segment containing the neighboring block with the minimum luma block address minBlockAddrN differs in value from the variable SliceAddrRs associated with the slice segment containing the current block with the minimum luma block address minBlockAddrCurr.
[0246] o The neighboring block with the minimum luma block address minBlockAddrN is included in a different partition from the current block with the minimum luma block address minBlockAddrCurr, and the value of dependent_tiles_in_tile_group_flag of the partition including the current block is equal to 0.
[0247] Otherwise, set availableN equal to TRUE.
[0248] 6.4.2 Derivation Process for Predicting Block Availability According to some embodiments of the inventive concept, the inputs to this process include: the luma position (xCb, yCb) of the top-left luma sample of the current luma coding block relative to the top-left luma sample of the current picture, The variable nCbS specifies the current luma coding block size, the luma position (xPb, yPb) of the top-left sample of the current luma prediction block relative to the top-left luma sample of the current picture, Two variables nPbW and nPbH specifying the width and height of the current luma prediction block, The variable partIdx specifies the partition index of the current prediction unit within the current coding unit, • The luma position (xNbY, yNbY) covered by the neighboring prediction block relative to the top left luma sample of the current picture.
[0249] According to some embodiments of the inventive concept, the output of this process is the availability of neighboring prediction blocks covering the position (xNbY, yNbY), denoted as availableN, which is derived as follows.
[0250] According to some embodiments of the inventive concept, the variable sameCb identifies whether the current luma prediction block and the adjacent luma prediction block cover the same luma coding block, and is derived as follows: If all of the following conditions are true, then set sameCb equal to TRUE: o xCb is less than or equal to xNbY, o yCb is less than or equal to yNbY, o(xCb+nCbS) is greater than xNbY, o(yCb+nCbS) is greater than yNbY.
[0251] Otherwise, set sameCb equal to FALSE.
[0252] According to some embodiments of the inventive concept, the neighboring prediction block availability availableN is derived as follows: If sameCb is equal to FALSE, then the derivation process of z-scan order block availability as specified in clause 6.4.1 is called with (xCurr, yCurr) set equal to (xPb, yPb) and luma position (xNbY, yNbY) as input, and the output is assigned to availableN.
[0253] Otherwise, if all of the following are true, set availableN equal to FALSE: o(nPbW<<1) equals nCbS, o(nPbH<<1) is equal to nCbS, o partIdx is equal to 1, o(yCb+nPbH) is less than or equal to yNbY, o(xCb+nPbW) is greater than xNbY.
[0254] Otherwise, set availableN equal to TRUE.
[0255] When availableN is equal to TRUE and CuPredMode[xNbY][yNbY] is equal to MODE_INTRA, set availableN to FALSE.
[0256] The proposed CABAC behavior according to some embodiments of the inventive concept is discussed below.
[0257] Some embodiments of the inventive concept provide for storing context variables, rice parameter initialization states, and associated quantization states upon completion of parsing tile data when dependent_tiles_in_tile_group_flag is equal to 1. Some embodiments of the inventive concept further provide for using this stored data as input to a synchronization process of context variables, rice parameters, and associated quantization states and dependent_tiles_in_tile_group_flag is equal to 1 before parsing a tile that is not the first tile in a tile group.
[0258] Section "9.5 CABAC Parsing Process for Partition Group Data" previously contained empty sections "9.5.1 General" and "9.5.2 Initialization." Therefore, implementing this proposal on top of the VVC specification was not possible. However, related partitions are similar to related slices in HEVC v5, which contain the following text. According to some embodiments of the inventive concept, a similar mechanism is included in VVC to handle related partitions when equivalent CABAC text is included in a VVC draft.
[0259] When parsing of the general slice segment data syntax in clause 7.3.8.1 is finished, dependent_slice_segments_enabled_flag is equal to 1 and end_of_slice_segment_flag is equal to 1, when persistent_rice_adaptation_enabled_flag is equal to 1, the stored procedure is called with the context variables, Rice parameter initialization state, and template predictor variables as specified in clause 9.3.2.4 with TableStateIdxDs, TableMpsValDs, TableStatCoeffDs when persistent_rice_adaptation_enabled_flag is equal to 1, and with PredirectorPaletteSizeDs and PredirectorPaletteEntriesDs as output.
[0260] • Otherwise, if CtbAddrInRs is equal to slice_segment_address and dependent_slice_segment_flag is equal to 1, then the synchronization procedure of context variables and Rice parameter initialization state as specified in clause 9.3.2.5 is called with TableStateIdxDs, TableMpsValDs, TableStatCoeffDs, PredictorPaletteSizeDs, and TablePreditorPaletteEntriesDs as input.
[0261] Example embodiments are discussed below.
[0262] 1. A method for decoding a picture from a bitstream, the method comprising: determining (2505) a partition structure of the picture, wherein the partition structure defines at least a first and a second partition of the picture; decoding (2507) at least one dependency syntax element from the bitstream; determining (2509) whether the second partition is dependent on or independent of the first partition based on the at least one dependency syntax element; and decoding (2511) the picture from the bitstream based on the determination of whether the second partition of the picture is dependent on or independent of the first partition of the picture.
[0263] 2. A method according to embodiment 1, wherein the first partition includes at least one first block, wherein the second partition includes at least one second block, and wherein determining whether the second partition is dependent on or independent of the first partition includes determining whether the second partition is dependent on or independent of the first partition across a block boundary between the at least one first block and the at least one second block.
[0264] 3. The method of any one of embodiments 1-2, wherein determining whether the second partition is dependent on or independent of the first partition comprises determining that the second partition is independent of the first partition, and wherein decoding the picture comprises decoding the second partition independently of decoding the first partition.
[0265] 4. The method of embodiment 3, wherein decoding the picture comprises considering a boundary between the first and second partitions as a partition boundary.
[0266] 5. The method of any one of embodiments 1-2, wherein determining whether the second partition is dependent on or independent of the first partition comprises determining that the second partition is dependent on the first partition, and wherein decoding the picture comprises decoding the second partition using at least one decoded attribute from the first partition.
[0267] 6. The method of embodiment 5, wherein decoding the picture comprises considering a boundary between the first and second partitions as a block boundary.
[0268] 7. The method of any one of embodiments 5-6, wherein the first partition comprises a first plurality of blocks, wherein the second partition comprises a second plurality of blocks, wherein decoding the picture comprises decoding a block in the second plurality of blocks using at least one decoded property from a block in the first plurality of blocks.
[0269] 8. The method of embodiment 7, wherein decoding comprises decoding the one block in the second plurality of blocks using at least one of: predicting sample values of the one block in the second plurality of blocks from sample values of the one block in the first plurality of blocks; predicting an intra mode of the one of the second plurality of blocks from an intra mode of the one of the first plurality of blocks; predicting a motion vector of the one of the second plurality of blocks from a motion vector of the one of the first plurality of blocks; predicting a motion vector of the one of the second plurality of blocks from a motion vector of a reference picture for the one of the first plurality of blocks; predicting a reference picture for inter prediction of one of the second plurality of blocks based on a reference picture for the one of the first plurality of blocks; selecting a motion vector to be used for the one of the second plurality of blocks based on the motion vector for the one of the first plurality of blocks; predicting a quantization parameter value to be used for the one of the second plurality of blocks based on a quantization parameter value for the one of the first plurality of blocks; determining whether an inverse transform of the one of the second plurality of blocks is skipped based on whether an inverse transform of the one of the first plurality of blocks is skipped; determining whether any transform coefficients are present in the one of the second plurality of blocks based on whether any transform coefficients are present in the one of the first plurality of blocks; determining a CABAC state for a syntax element for decoding the one block in the second plurality of blocks based on at least one of: a mode of the one block in the first plurality of blocks, a motion vector used by the one block in the first plurality of blocks, a reference picture used by the one block in the first plurality of blocks, coefficient values present in the one block in the first plurality of blocks, and / or a CABAC state for a syntax element for decoding the one block in the first plurality of blocks; determining a context for decoding a syntax element for the one block in the second plurality of blocks based on at least one of: a mode of the one block in the first plurality of blocks, a motion vector used by the one block in the first plurality of blocks, a reference picture used by the one block in the first plurality of blocks, and / or a coefficient value present in the one block in the first plurality of blocks; and / or filtering samples in the one block in the second plurality of blocks based on sample values of the one block in the first plurality of blocks, wherein the filtering comprises at least one of in-loop deblocking filtering, sample adaptive offset filtering, adaptive loop filtering, bilateral filtering, and / or Hadamard filtering.
[0270] 9. The method of any one of embodiments 1-8, wherein the first and second partitions comprise respective first and second segments included in a first segment group of the picture, wherein the partition structure defines a third and fourth segment included in a second segment group of the picture.
[0271] 10. The method of embodiment 9, wherein the first, second, third, and fourth segments comprise respective first, second, third, and fourth partitions of the picture, and wherein the first and second groups of segments comprise respective first and second groups of partitions of the picture.
[0272] 11. The method of any one of embodiments 9-10, wherein determining whether the second partition is dependent on or independent of the first partition comprises determining whether multiple segments of the first segment group are dependent on or independent of corresponding other segments of the first segment group based on the dependency syntax element.
[0273] 12. The method of any one of embodiments 10-11, further comprising: decoding a mode syntax element from the bitstream, wherein the mode syntax element specifies whether the partition groups of the picture are rectangular partition groups or raster scan partition groups.
[0274] 13. A method according to embodiment 12, wherein decoding the at least one dependency syntax element from the bitstream includes decoding a first dependency flag from the bitstream specifying whether the blocks of the first block group are dependent on or independent of other blocks of the first block group in response to the mode syntax element specifying that the block group of the picture is a rectangular block group, and decoding a second dependency flag from the bitstream specifying whether the blocks of the second block group are dependent on or independent of other blocks of the second block group in response to the mode syntax element specifying that the block group of the picture is a rectangular block group.
[0275] 14. A method according to embodiment 12, wherein decoding the at least one dependency syntax element further includes decoding a group number syntax element specifying the number of block groups of the picture from the bitstream, and in response to the mode syntax element specifying that the block groups of the picture are rectangular block groups, decoding a corresponding dependency flag for each of the block groups of the picture based on the group number syntax element, wherein each dependency flag specifies whether a block of the corresponding block group is dependent on or independent of other blocks of the corresponding block group.
[0276] 15. A method according to embodiment 12, wherein decoding the at least one dependency syntax element from the bitstream includes decoding a first dependency flag from the bitstream specifying whether the blocks of the first block group are dependent on or independent of other blocks of the first block group in response to the mode syntax element specifying that the block group of the picture is a raster scan block group, and decoding a second dependency flag from the bitstream specifying whether the blocks of the second block group are dependent on or independent of other blocks of the second block group in response to the mode syntax element specifying that the block group of the picture is a raster scan block group.
[0277] 16. A method according to embodiment 12, wherein decoding the at least one dependency syntax element further includes decoding a corresponding dependency flag for each of the block groups of the picture in response to the mode syntax element specifying that the block group of the picture is a raster scan block group, wherein each dependency flag specifies whether a block of the corresponding block group is dependent on or independent of other blocks of the corresponding block group.
[0278] 17. The method of any one of embodiments 15-16, wherein the dependency syntax element is included in a partition group header of the bitstream.
[0279] 18. A method according to any one of embodiments 10-17, wherein the dependency syntax element specifies whether all blocks of the first block group are independent of previously decoded blocks of the first block group or whether each subsequent block of the first block group depends on the previously decoded blocks of the first block group.
[0280] 19. The method of any one of embodiments 1-18, wherein the partition structure defines a plurality of rows and columns of partitions of the picture including the first and second partitions.
[0281] 20. The method of any one of embodiments 1-19, wherein the dependency syntax element is included in a parameter set of the bitstream.
[0282] 21. The method of embodiment 20, wherein the parameter set comprises one of a picture parameter set and / or a sequence parameter set.
[0283] 22. The method of any one of embodiments 1-21, further comprising: decoding (2503) partition syntax elements from the bitstream; wherein determining the partition structure comprises determining the partition structure based on the partition syntax elements.
[0284] 23. The method of embodiment 22, wherein the partition syntax element is decoded from a parameter set.
[0285] 24. The method of any one of embodiments 20-23, wherein the bitstream is a video bitstream, wherein the picture is one of a plurality of pictures in the video bitstream, and wherein the partition syntax element is for at least two of the plurality of pictures.
[0286] 25. The method of any one of embodiments 5-24, wherein the at least one dependency syntax element specifies a direction of dependency of the second partition relative to the first partition.
[0287] 26. The method of embodiment 25, wherein the at least one dependency syntax element specifies one of: an upward direction in the picture, a leftward direction in the picture, or both an upward and a leftward direction in the picture.
[0288] 27. The method of any one of embodiments 1-26, further comprising rendering (2515) the picture for display on a screen based on decoding the picture from the bitstream.
[0289] 28. The method of any one of embodiments 1-27, further comprising receiving (2501) the bitstream from a remote device (eg, a remote server) via radio and / or a network interface.
[0290] 29. The method of any one of embodiments 1-28, wherein the bitstream is a video bitstream, and wherein the picture is one of a plurality of pictures in the video bitstream.
[0291] 30. A method of encoding a picture of a bitstream, the method comprising: defining (2601) a partition structure of the picture, wherein the partition structure comprises at least a first and a second partition of the picture; determining (2605) whether the second partition is dependent on or independent of the first partition; encoding (2607) at least one dependency syntax element of the bitstream, wherein the at least one dependency syntax element specifies whether the second partition is dependent on or independent of the first partition; and encoding (2609) the first and second partitions into the bitstream based on determining the partition structure and based on determining whether the second partition of the picture is dependent on or independent of the first partition of the picture.
[0292] 31. A method according to embodiment 30, wherein the first partition includes at least one first block, wherein the second partition includes at least one second block, and wherein determining whether the second partition is dependent on or independent of the first partition includes determining whether the second partition is dependent on or independent of the first partition across a block boundary between the at least one first block and the at least one second block.
[0293] 32. The method of any one of embodiments 30-31, wherein determining whether the second partition is dependent on or independent of the first partition comprises determining that the second partition is independent of the first partition, and wherein encoding the picture comprises encoding the second partition independently of encoding the first partition.
[0294] 33. The method of embodiment 32, wherein encoding the picture comprises treating a boundary between the first and second partitions as a partition boundary.
[0295] 34. The method of any one of embodiments 30-31, wherein determining whether the second partition is dependent on or independent of the first partition comprises determining that the second partition is dependent on the first partition, and wherein encoding the picture comprises encoding the second partition using at least one attribute from the first partition.
[0296] 35. The method of embodiment 34, wherein encoding the picture comprises treating a boundary between the first and second partitions as a block boundary.
[0297] 36. The method of any one of embodiments 34-35, wherein the first partition comprises a first plurality of blocks, wherein the second partition comprises a second plurality of blocks, wherein encoding the picture comprises encoding a block in the second plurality of blocks using at least one attribute from a block in the first plurality of blocks.
[0298] 37. The method of embodiment 36, wherein encoding comprises encoding the one block in the second plurality of blocks using at least one of: predicting sample values of the one block in the second plurality of blocks from sample values of the one block in the first plurality of blocks; predicting an intra mode of the one of the second plurality of blocks from an intra mode of the one of the first plurality of blocks; predicting a motion vector for the one of the second plurality of blocks from a motion vector of the one of the first plurality of blocks; predicting a motion vector for the one of the second plurality of blocks from a motion vector of a reference picture for the one of the first plurality of blocks; predicting a reference picture for inter prediction of one of the second plurality of blocks based on a reference picture for the one of the first plurality of blocks; selecting a motion vector to be used for the one of the second plurality of blocks based on the motion vector for the one of the first plurality of blocks; predicting a quantization parameter value to be used for the one of the second plurality of blocks based on a quantization parameter value for the one of the first plurality of blocks; determining whether an inverse transform of the one of the second plurality of blocks is skipped based on whether an inverse transform of the one of the first plurality of blocks is skipped; determining whether any transform coefficients are present in the one of the second plurality of blocks based on whether any transform coefficients are present in the one of the first plurality of blocks; determining a CABAC state for a syntax element for encoding the one block in the second plurality of blocks based on at least one of: a mode of the one block in the first plurality of blocks, a motion vector used by the one block in the first plurality of blocks, a reference picture used by the one block in the first plurality of blocks, coefficient values present in the one block in the first plurality of blocks, and / or a CABAC state for a syntax element for encoding the one block in the first plurality of blocks; determining a context for encoding a syntax element for the one block in the second plurality of blocks based on at least one of: a mode of the one block in the first plurality of blocks, a motion vector used by the one block in the first plurality of blocks, a reference picture used by the one block in the first plurality of blocks, and / or a coefficient value present in the one block in the first plurality of blocks; and / or filtering samples in the one block in the second plurality of blocks based on sample values of the one block in the first plurality of blocks, wherein the filtering comprises at least one of in-loop deblocking filtering, sample adaptive offset filtering, adaptive loop filtering, bilateral filtering, and / or Hadamard filtering.
[0299] 38. A method according to any one of embodiments 30-37, wherein the first and second partitions include respective first and second segments included in a first segment group of the picture, and wherein the partition structure defines a third and fourth segment included in a second segment group of the picture.
[0300] 39. The method of embodiment 38, wherein the first, second, third, and fourth segments comprise respective first, second, third, and fourth partitions of the picture, and wherein the first and second groups of segments comprise respective first and second groups of partitions of the picture.
[0301] 40. The method of any one of embodiments 38-39, wherein the at least one dependency syntax element specifies whether multiple segments of the first group of segments are dependent on or independent of respective other segments of the first group of segments based on the dependency syntax element.
[0302] 41. The method of embodiment 39, further comprising encoding a mode syntax element from the bitstream, wherein the mode syntax element specifies whether partition groups of the picture are rectangular partition groups or raster scan partition groups.
[0303] 42. A method according to embodiment 41, wherein encoding the at least one dependency syntax element from the bitstream includes encoding a first dependency flag from the bitstream specifying whether the blocks of the first block group are dependent on or independent of other blocks of the first block group when the mode syntax element specifies that the block group of the picture is a rectangular block group, and encoding a second dependency flag from the bitstream specifying whether the blocks of the second block group are dependent on or independent of other blocks of the second block group when the mode syntax element specifies that the block group of the picture is a rectangular block group.
[0304] 43. A method according to embodiment 41, wherein encoding the at least one dependency syntax element further includes encoding a group number syntax element specifying the number of block groups of the picture from the bitstream, and encoding a corresponding dependency flag for each of the block groups of the picture based on the group number syntax element when the mode syntax element specifies that the block groups of the picture are rectangular block groups, wherein each dependency flag specifies whether a block of the corresponding block group is dependent on or independent of other blocks of the corresponding block group.
[0305] 44. A method according to embodiment 41, wherein encoding the at least one dependency syntax element from the bitstream includes encoding a first dependency flag from the bitstream specifying whether the blocks of the first block group are dependent on or independent of other blocks of the first block group in response to the mode syntax element specifying that the block group of the picture is a raster scan block group, and encoding a second dependency flag from the bitstream specifying whether the blocks of the second block group are dependent on or independent of other blocks of the second block group when the mode syntax element specifies that the block group of the picture is a raster scan block group.
[0306] 45. A method according to embodiment 41, wherein encoding the at least one dependency syntax element further includes encoding a corresponding dependency flag for each of the block groups of the picture when the mode syntax element specifies that the block group of the picture is a raster scan block group, wherein each dependency flag specifies whether a block of the corresponding block group depends on or is independent of other blocks of the corresponding block group.
[0307] 46. The method of embodiment 39, wherein the dependency syntax element specifies whether all partitions of the first partition group are independent of previously encoded partitions of the first partition group or whether each subsequent partition of the first partition group depends on previously encoded partitions of the first partition group.
[0308] 47. The method of any one of embodiments 30-46, wherein the partition structure defines a plurality of rows and columns of partitions of the picture including the first and second partitions.
[0309] 48. The method of any one of embodiments 30-47, wherein the dependency syntax element is included in a parameter set of the bitstream.
[0310] 49. The method of embodiment 48, wherein the parameter set comprises one of a picture parameter set and / or a sequence parameter set.
[0311] 50. The method of any one of embodiments 30-49, further comprising encoding (2603) a partition syntax element of the bitstream, wherein the partition syntax element defines the partition structure of the picture based on determining the partition structure.
[0312] 51. The method of embodiment 50, wherein the partition syntax element is encoded from a parameter set.
[0313] 52. The method of any one of embodiments 50-51, wherein the bitstream is a video bitstream, wherein the picture is one of a plurality of pictures in the video bitstream, and wherein the partition syntax element is for at least two of the plurality of pictures.
[0314] 53. The method of any one of embodiments 34-52, wherein the at least one dependency syntax element specifies a direction of dependency of the second partition relative to the first partition.
[0315] 54. The method of embodiment 53, wherein the at least one dependency syntax element specifies one of: an upward direction in the picture, a leftward direction in the picture, or both an upward and a leftward direction in the picture.
[0316] 55. The method of any one of embodiments 30-54, further comprising transmitting (2611) the bitstream to a remote device (eg, a wireless device UE) over a radio and / or network interface.
[0317] 56. The method of any one of embodiments 30-55, wherein the bitstream is a video bitstream, and wherein the picture is one of a plurality of pictures in the video bitstream.
[0318] 57. A method for decoding a picture from a bitstream, the method comprising: a) decoding a segment partition structure from one or more syntax elements in the bitstream; b) determining the number N of segments present in the picture; c) decoding the number of segment groups present in the picture, wherein each segment group consists of an integer number of segments; d) decoding one or more syntax elements in the bitstream that describe the correlation between at least two partitions, wherein a partition is a segment or a segment group; e) deriving the correlation between the at least two partitions from the (one or more) decoded syntax elements that describe the correlation between the at least two partitions; and f) decoding the picture using the derived correlation.
[0319] 58. The method of embodiment 57, wherein all segments in the segment group S are independent or dependent on each other.
[0320] 59. A method according to embodiment 58, wherein all segments are not independent including that for each segment A in segment group S, segment A depends on another segment B in segment group S, or there is a segment C in segment group S such that segment C depends on segment A.
[0321] 60. The method of any one of embodiments 57-59, wherein the one or more syntax elements describing the partition dependency are flags.
[0322] 61. The method of any one of embodiments 57-60, wherein one or more syntax elements describing the dependency of the at least two partitions are specified per partition.
[0323] 62. The method of any one of embodiments 57-61, wherein one or more syntax elements describing the dependency of the at least two partitions are specified per picture or per sequence.
[0324] 63. A method according to any one of embodiments 57-62, wherein the one or more syntax elements describing the correlation of the at least two partitions are composed of one or more flags that control different aspects of the correlation between the at least two partitions (such as the availability of inter-frame prediction, the availability of intra-frame prediction, the CABAC status, the availability of samples for filtering, etc.).
[0325] 64. A method according to any one of embodiments 57-63, wherein one or more syntax elements describe directional partition dependencies in a manner such that, for at least two partitions A and B, the dependency of partition A on partition B and the dependency of partition B on partition A are specified or inferred independently of each other.
[0326] 65. The method of any one of embodiments 57-64, wherein for related partitions, CABAC states are stored and synchronized in a similar manner to that of related slices in HEVC (see decoding process described above).
[0327] 66. The method according to any one of embodiments 57-65, wherein the correlation of two partitions A and B is defined as a complete merge, the complete merge resulting in a new partition C having the union of the areas of the two partitions A and B.
[0328] 67. The method of any one of embodiments 57-66, wherein the one or more syntax elements describing the partition dependency are a flag for each partition A indicating which neighboring partition of partition A partition A depends on.
[0329] 68. The method of any one of embodiments 57-67, wherein the correlation includes whether the partitions are correlated or independent, as described above with respect to the details regarding correlated and independent partitions.
[0330] 69. The method of any one of embodiments 57-68, wherein a partition is a segment or a group of segments.
[0331] 70. The method of any one of embodiments 57-69, wherein the segment groups are block groups.
[0332] 71. The method of any one of embodiments 57-70, wherein the segments are blocks.
[0333] 72. A method for decoding a current picture from a bitstream, the method comprising: a) decoding a partition structure from one or more syntax elements S1 in the bitstream, wherein the partition structure partitions one or more pictures into at least two partitions P1 and P2; b) determining whether the at least two partitions P1 and P2 are related or independent by decoding one or more syntax elements S2 in the bitstream; c) if it is determined that the at least two partitions P1 and P2 are related, decoding the current picture, wherein there is at least one block B2 belonging to P2 in the current picture that is decoded after decoding B1 and B2 is decoded using at least one decoded attribute of at least one block B1 belonging to P1 in the current picture; and d) if the at least two partitions P1 and P2 are independent, decoding the current picture, wherein there is no block B2 belonging to P2 in the current picture that is decoded using any decoded attribute of any block B1 belonging to P1 in the current picture.
[0334] 73. The method of embodiment 72, wherein the partitions are blocks and the blocks are grouped into block groups.
[0335] 74. The method of embodiment 73, wherein determining whether the at least two partitions P1 and P2 are dependent or independent comprises determining from the one or more syntax elements S2 whether all blocks in a partition group are dependent or all blocks in a partition group are independent.
[0336] 75. The method of any one of embodiments 72-74, wherein the partition structure partitions the picture into rows and columns, wherein a partition is an intersection between a row and a column.
[0337] 76. The method of any one of embodiments 72-75, wherein the one or more syntax elements S1 in the bitstream are located in a parameter set such as a picture parameter set or a sequence parameter set.
[0338] 77. The method of any one of embodiments 72-76, wherein decoding the current picture comprises a subset S of the following elements: a) if at least two partitions are correlated, intra sample prediction of B2 is performed by predicting sample values in B2 from sample values in B1. If the at least two partitions are not correlated, intra sample prediction of B2 is performed without using any sample values in B1; b) if the at least two partitions are correlated, intra modes of B2 are predicted from intra modes of B1. If the at least two partitions are not correlated, intra modes of B2 are derived without using any intra modes in B1; c) if at least two partitions are correlated, motion vectors of B2 may be predicted from motion vectors of B1 and / or reference pictures for B1. If at least two partitions are not correlated, motion vectors of B2 may be derived without using any motion vectors or reference pictures for B1; d) if the at least two partitions are correlated, reference pictures used for inter prediction of B2 may be predicted from reference pictures used for B1. If the at least two partitions are not correlated, reference pictures for inter prediction of B2 are derived without using any reference pictures for B1. e) If the at least two partitions are correlated, the motion vector for B2 may be selected from the motion vectors in B1, for example, by a merging process. If the at least two partitions are not correlated, the motion vector for B2 is derived without selecting any motion vectors in B1. f) If the at least two partitions are correlated, the quantization parameter value for B2 may be predicted or copied from the quantization parameter value of B1. If the at least two partitions are not correlated, the quantization parameter value for B2 is derived without using any quantization parameter value of B1. g) If the at least two partitions are correlated, the derivation of whether the inverse transform of B2 is skipped may depend on whether the inverse transform of B1 is skipped and / or other properties of B1. If the at least two partitions are not correlated, then the derivation of whether the inverse transform of B2 is skipped is derived without depending on whether the inverse transform of B1 is skipped or any other properties of B1; h) If the at least two partitions are correlated, then the derivation of whether there are any transform coefficients in B2 may depend on whether there are any transform coefficients in B1 and / or other properties of B1. If the at least two partitions are not correlated, then the derivation of whether there are any transform coefficients in B2 is derived without depending on whether there are any transform coefficients in B1 or any other properties of B1; i) If the at least two partitions are correlated, then the CABAC state of the syntax elements used to decode B2 may depend on properties of B1, such as, but not limited to, what mode B1 is encoded in, what motion vectors B1 uses, what reference pictures B1 uses, what coefficient values are present in B1, and what state CABAC is in for B1.If at least two partitions are not correlated, the CABAC state for decoding syntax elements of B2 is derived without using any properties of B1; j) if at least two partitions are correlated, the context for decoding syntax elements of B2 may depend on properties of B1, such as at least one property of what mode B1 is encoded in, what motion vectors B1 uses, what reference pictures B1 uses, or what coefficient values are present in B1. If at least two partitions are not correlated, the context for decoding syntax elements of B2 is derived without using any properties of B1; and k) if at least two partitions are correlated, filtering of samples in B2 may depend on sample values in B1, wherein filtering may include in-loop deblocking filtering, sample adaptive offset (SAO) filtering, adaptive loop filtering (ALF), bilateral filtering, or Hadamard filtering. If at least two partitions are not correlated, filtering of samples in B2 is performed without using any sample values in B1.
[0339] 78. An electronic device (300, 600), comprising: a processing circuit (303, 603); and a memory (305, 605) coupled to the processing circuit, wherein the memory comprises instructions that, when executed by the processing circuit, cause the electronic device to perform operations according to any one of embodiments 1-77.
[0340] 79. An electronic device (300, 600), wherein the electronic device is adapted to perform according to any one of embodiments 1-77.
[0341] 80. A computer program comprising program code to be executed by processing circuitry (303, 603) of an electronic device (300, 600), whereby execution of the program code causes the electronic device (300, 600) to perform operations according to any one of embodiments 1-77.
[0342] 81. A computer program product comprising a non-transitory storage medium comprising program code to be executed by processing circuitry (303, 503) of a wireless device (300, 600), whereby execution of the program code causes the electronic device (300, 600) to perform operations according to any one of embodiments 1-77.
[0343] Additional explanation is provided below.
[0344] In general, all terms used herein will be interpreted according to their ordinary meaning in the relevant art (unless clearly given and / or different meanings are implied from the context in which it is used). Unless explicitly stated otherwise, all references to one / an / described element, equipment, assembly, part, step, etc. will be openly interpreted as referring to at least one instance of described element, equipment, assembly, part, step, etc. The operation / step of any method disclosed herein does not have to be performed in the exact order disclosed, unless step is clearly described as after or before another step and / or in the case where the step must be implicit after or before another step. In any appropriate case, any feature of any one of the embodiments disclosed herein can be applied to any other embodiment. Similarly, any advantage of any one in the embodiment can be applied to any other embodiment, and vice versa. From the following description, other purposes, features and advantages of the attached embodiments will be apparent.
[0345] Some of the embodiments contemplated herein will now be described more fully with reference to the accompanying drawings. However, other embodiments are included within the scope of the subject matter disclosed herein, and the disclosed subject matter should not be construed as being limited to only the embodiments set forth herein; rather, these embodiments are provided as examples to convey the scope of the subject matter to those skilled in the art.
[0346] Further definitions and examples are discussed below.
[0347] In the above description of various embodiments of the present invention concept, it is to be understood that the terms used herein are only for the purpose of describing specific embodiments and are not intended to limit the present invention concept. Unless defined otherwise, all terms used herein (including technical and scientific terms) have the same meaning as those generally understood by those of ordinary skill in the art to which the present invention concept belongs. It will be further understood that terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of this specification and the related art, and will not be interpreted in an idealized or overly formal sense (unless clearly defined as such herein).
[0348] When an element is referred to as being "connected," "coupled," "responsive" or a variation thereof to another element, it may be directly connected, coupled or responsive to the other element, or there may be an intermediate element. In contrast, when an element is referred to as being "directly connected," "directly coupled," "directly responsive" or a variation thereof to another element, there are no intermediate elements. Throughout this disclosure, the same reference numerals refer to the same elements. In addition, "coupled," "connected," "responsive" or a variation thereof as used herein may include wirelessly coupling, connecting or responsive. As used herein, unless the context clearly indicates otherwise, the singular forms "a," "an," and "said" are intended to also include the plural forms. For simplicity and / or clarity, well-known functions or configurations may not be described in detail. The term "and / or" includes any and all combinations of one or more of the items listed in the association.
[0349] It will be understood that although the terms first, second, third, etc. can be used to describe various elements / operations in this document, these elements / operations should not be limited by these terms. These terms are only used to distinguish one element / operation from another element / operation. Therefore, in some embodiments, the first element / operation can be referred to as the second element / operation in other embodiments without departing from the teachings of the present invention. The same figure numbers or the same reference designators represent the same or similar elements throughout the specification.
[0350] As used herein, the terms "comprise / comprising / comprises," "include / including / includes," "have / has / having," or variations thereof are expansive and include one or more stated features, integers, elements, steps, components, or functions, but do not preclude the presence or addition of one or more other features, integers, elements, steps, components, functions, or groups thereof. Furthermore, as used herein, the commonly used abbreviation "such as," derived from the Latin phrase "exempli gratia," may be used to introduce or specify one or more general examples of previously mentioned items and is not intended to limit such items. The commonly used abbreviation "i.e.," derived from the Latin phrase "id est," may be used to specify specific items from a more general statement.
[0351] Example embodiments are described herein with reference to block diagrams and / or flowchart illustrations of computer-implemented methods, devices (systems and / or apparatuses), and / or computer program products. It is understood that the blocks of the block diagrams and / or flowchart illustrations, and combinations of the blocks of the block diagrams and / or flowchart illustrations, can be implemented by computer program instructions executed by one or more computer circuits. These computer program instructions can be provided to a processor circuit of a general-purpose computer circuit, a special-purpose computer circuit, and / or other programmable data processing circuit to produce a machine such that instructions executed by a processor of a computer and / or other programmable data processing device transform and control transistors, values stored in memory locations, and other hardware components within such circuits to implement the functions / actions specified in one or more block diagrams and / or flowchart blocks, thereby creating components (functionality) and / or structures for implementing the functions / actions specified in one or more block diagrams and / or flowchart blocks.
[0352] These computer program instructions may also be stored in a tangible computer-readable medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture comprising instructions that implement the functions / actions specified in one or more block diagrams and / or flowchart blocks. Accordingly, embodiments of the inventive concept may be embodied in hardware and / or in software (including firmware, resident software, microcode, etc.) that runs on a processor such as a digital signal processor, which may be collectively referred to as a "circuit," "module," or variations thereof.
[0353] It should also be noted that in some alternative implementations, the function / action mentioned in the frame can not occur in the order mentioned in the flow chart.For example, depending on the functionality / action involved, the two frames shown continuously can actually be performed concurrently in fact, or frame can sometimes be performed in reverse order.In addition, the functionality of the given frame of flow chart and / or block diagram can be separated into a plurality of frames, and / or the functionality of two or more frames of flow chart and / or block diagram can be at least partially integrated.Finally, other frames can be added / inserted between shown frames, and / or frame / operation can be ignored and not break away from the scope of the present invention's concept.In addition, although some among the figure comprise arrows to illustrate the main direction of communication on communication path, it is to be understood that communication can occur in the opposite direction of the arrow being described.
[0354] Many changes and modifications can be made to the embodiments without actually departing from the principles of the inventive concept. All such changes and modifications are intended to be included in the scope of the inventive concept herein. Accordingly, the subject matter disclosed above is to be considered illustrative and not restrictive, and the example of the embodiment is intended to cover all such modifications, enhancements and other embodiments that fall within the spirit and scope of the inventive concept. Therefore, to the maximum extent permitted by law, the scope of the inventive concept is to be determined by the broadest permissible interpretation of the present disclosure including the examples of the embodiment and their equivalents, and should not be restricted or limited by the above detailed description.
Claims
1. A method for decoding a picture from a bitstream, the method comprising: decoding data defining a partition structure from one or more syntax elements in the bitstream, the partition structure partitioning the picture into at least a first region corresponding to a first segment group and a second region corresponding to a second segment group; decoding a number M from a syntax element in a parameter set, wherein the number M represents the number of segment groups present in the picture, and wherein each segment group consists of an integer number of segments; decoding, in a loop performed once for each of the at least first and second groups of segments, one or more dependency syntax elements from a parameter set in the bitstream, the one or more dependency syntax elements indicating whether a dependency exists between a corresponding one of the at least first and second groups of segments and another group of segments; as well as In response to indicating a dependency, the dependency indicated by the one or more decoded dependency syntax elements is used when decoding the picture.
2. The method according to claim 1, wherein: deriving the indicated dependency comprises determining whether the second group of segments is dependent on or independent of the first group of segments based on the decoded at least one dependency syntax element; as well as In response to determining that the second segment group depends on the first segment group, decoding the picture by decoding the second segment group using at least one attribute from decoding of the first segment group, The first segment group includes a first plurality of blocks, the second segment group includes a second plurality of blocks, and decoding the picture includes decoding a block in the second plurality of blocks using the at least one property from decoding of a block in the first plurality of blocks.
3. The method according to claim 2, wherein: Decoding the picture includes decoding the one block of the second plurality of blocks by at least one of: predicting sample values of the one block in the second plurality of blocks from sample values of the one block in the first plurality of blocks; predicting an intra mode of the one block in the second plurality of blocks from an intra mode of the one block in the first plurality of blocks; predicting a motion vector for the one block in the second plurality of blocks from a motion vector for the one block in the first plurality of blocks; predicting a quantization parameter value to be used for the one block of the second plurality of blocks based on a quantization parameter value for the one block of the first plurality of blocks; determining a CABAC state of a syntax element for decoding the one block of the second plurality of blocks based on at least one of, a pattern of the one block of the first plurality of blocks, and a CABAC state of a syntax element for decoding the one block of the first plurality of blocks; and filtering samples in the one of the second plurality of blocks based on sample values of the one of the first plurality of blocks, wherein filtering comprises at least one of, In-loop deblocking filtering, Sample adaptive offset filtering, and Adaptive loop filtering.
4. The method according to any one of claims 1 to 3, wherein Segments are chunks.
5. The method according to any one of claims 1 to 3, wherein Segment groups are groups of chunks.
6. The method according to claim 5, further comprising: A mode syntax element is decoded from the bitstream, wherein the mode syntax element specifies whether partition groups of the picture are rectangular partition groups or raster scan partition groups.
7. The method according to claim 6, wherein: Decoding the at least one dependency syntax element further comprises: decoding a number-of-groups syntax element from the bitstream that specifies a number of partition groups for the picture; and In response to the mode syntax element specifying that the partition groups of the picture are rectangular partition groups, a corresponding dependency flag for each partition group in the partition groups of the picture is decoded based on the group number syntax element, wherein each dependency flag specifies whether a partition of the corresponding partition group is dependent on or independent of other partitions of the corresponding partition group.
8. The method according to any one of claims 2 to 3, wherein: The partition structure defines a plurality of rows and a plurality of columns of a region of the picture including the first and second regions.
9. The method according to any one of claims 1 to 3, further comprising: decoding partition syntax elements from the bitstream, Wherein determining the partition structure comprises determining the partition structure based on the partition syntax element.
10. The method according to claim 9, wherein: The bitstream is a video bitstream, wherein the picture is one of a plurality of pictures in the video bitstream, and wherein the partition syntax element is for at least two pictures of the plurality of pictures.
11. The method according to any one of claims 1 to 3, further comprising: The picture is rendered for display on a screen based on decoding the picture from the bitstream.
12. The method according to any one of claims 1 to 3, further comprising: The bit stream is received from a remote device over the air and / or a network interface.
13. The method according to any one of claims 1 to 3, wherein: The bitstream is a video bitstream, and wherein the picture is one of a plurality of pictures in the video bitstream.
14. An electronic device, comprising: processing circuit; as well as a memory coupled to the processing circuit, wherein the electronic device is configured to: decoding data defining a partition structure from one or more syntax elements in the bitstream, the partition structure partitioning the picture into at least a first region corresponding to a first segment group and a second region corresponding to a second segment group; decoding a number M from a syntax element in a parameter set, wherein the number M represents the number of segment groups present in the picture, and wherein each segment group consists of an integer number of segments; decoding, in a loop performed once for each of the at least first and second groups of segments, one or more dependency syntax elements from a parameter set in the bitstream, the one or more dependency syntax elements indicating whether a dependency exists between a corresponding one of the at least first and second groups of segments and another group of segments; as well as In response to indicating a dependency, the dependency indicated by the one or more decoded dependency syntax elements is used when decoding the picture.
15. The electronic device according to claim 14, wherein: deriving the indicated dependency comprises determining whether the second group of segments is dependent on or independent of the first group of segments based on the decoded at least one dependency syntax element; as well as In response to determining that the second segment group depends on the first segment group, decoding the picture by decoding the second segment group using at least one attribute from decoding of the first segment group, The first segment group includes a first plurality of blocks, the second segment group includes a second plurality of blocks, and decoding the picture includes decoding a block in the second plurality of blocks using the at least one property from decoding of a block in the first plurality of blocks.
16. The electronic device according to claim 15, wherein: Decoding the picture includes decoding the one block of the second plurality of blocks by at least one of: predicting sample values of the one block in the second plurality of blocks from sample values of the one block in the first plurality of blocks; predicting an intra mode of the one block in the second plurality of blocks from an intra mode of the one block in the first plurality of blocks; predicting a motion vector for the one block in the second plurality of blocks from a motion vector for the one block in the first plurality of blocks; predicting a quantization parameter value to be used for the one block of the second plurality of blocks based on a quantization parameter value for the one block of the first plurality of blocks; determining a CABAC state of a syntax element for decoding the one block of the second plurality of blocks based on at least one of, a pattern of the one block of the first plurality of blocks, and a CABAC state of a syntax element for decoding the one block of the first plurality of blocks; and filtering samples in the one of the second plurality of blocks based on sample values of the one of the first plurality of blocks, wherein filtering comprises at least one of, In-loop deblocking filtering, Sample adaptive offset filtering, and Adaptive loop filtering.
17. The electronic device according to any one of claims 14 to 16, wherein: Segments are chunks.
18. The electronic device according to any one of claims 14 to 16, wherein: Segment groups are groups of chunks.
19. The electronic device of claim 18, wherein the electronic device is configured to perform further operations, the operations comprising: A mode syntax element is decoded from the bitstream, wherein the mode syntax element specifies whether partition groups of the picture are rectangular partition groups or raster scan partition groups.
20. A computer program product comprising a non-transitory computer-readable medium having instructions stored thereon that, when executed by a processor, cause the processor to: decoding data defining a partition structure from one or more syntax elements in the bitstream, the partition structure partitioning the picture into at least a first region corresponding to a first segment group and a second region corresponding to a second segment group; decoding a number M from a syntax element in a parameter set, wherein the number M represents the number of segment groups present in the picture, and wherein each segment group consists of an integer number of segments; decoding, in a loop performed once for each of the at least first and second groups of segments, one or more dependency syntax elements from a parameter set in the bitstream, the one or more dependency syntax elements indicating whether a dependency exists between a corresponding one of the at least first and second groups of segments and another group of segments; as well as In response to indicating a dependency, the dependency indicated by the one or more decoded dependency syntax elements is used when decoding the picture.