Method and apparatus for advanced image partitioning and image encoding / decoding

By dividing the video signal into equal or unequal image segments under a high-level syntax, the problem of low video signal coding efficiency is solved, achieving more efficient encoding and decoding and reducing signaling overhead.

CN121985121APending Publication Date: 2026-05-05HANWHA VISION CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
HANWHA VISION CO LTD
Filing Date
2020-08-11
Publication Date
2026-05-05

AI Technical Summary

Technical Problem

Existing video signal coding technologies suffer from low coding efficiency, especially when processing tile, brick, and slice divisions, where signaling overhead is significant, leading to an increase in the number of bits.

Method used

By dividing the image under a high-level syntax, using equal or unequal sub-pictures, tiles, bricks, and slices, bit signaling overhead is reduced, and a more flexible structure is provided by the high-level syntax, signaling height and width information only when necessary.

Benefits of technology

It improves the coding efficiency of video signals, reduces the number of bits used, simplifies the boundary alignment process, and reduces signaling overhead.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121985121A_ABST
    Figure CN121985121A_ABST
Patent Text Reader

Abstract

The present invention provides a method and apparatus for advanced image division and image encoding / decoding. A method and apparatus in which division information of a current picture is encoded / decoded, and the current picture is divided into at least one of a sub-picture unit, a slice unit, and a tile unit according to the encoded / decoded division information.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the application with national application number 202080057189.1, international application date of August 11, 2020, national entry date of February 11, 2022, and invention title "Method and apparatus for advanced image segmentation and image encoding / decoding". Technical Field

[0002] This disclosure relates to image encoding / decoding methods and apparatus. Background Technology

[0003] By compressing and encoding video images by removing spatial and temporal redundancy as well as inter-viewpoint redundancy, the video images can be transmitted via communication lines or stored in a form suitable for storage media. Summary of the Invention

[0004] Technical issues

[0005] The purpose of this disclosure is to improve the coding efficiency of video signals.

[0006] Technical solutions

[0007] To address the above issues, this disclosure provides methods and apparatus for segmenting high-level images and encoding / decoding segmentation information.

[0008] This disclosure provides a method for classifying higher-level syntax (high-level syntax) based on compression encoding / decoding.

[0009] This disclosure provides a more flexible structure by offering equal or unequal sub-image / tile / brick / slice partitioning when performing partitioning based on high-level syntax.

[0010] This disclosure proposes a method for signaling sub-images with fewer bits in height and width when configuring sub-image partitions by configuring sub-images in units of tile, brick, or CTB size to perform encoding / decoding.

[0011] This disclosure provides a method for reducing bit loss when equally dividing only one of the height and width of a tile during the encoding / decoding of tile partitioning.

[0012] This disclosure proposes a method for reducing bits without relying on parsing by using information signaled at the same level in the encoding / decoding of the brick division.

[0013] This disclosure proposes a method to reduce signaling overhead by sending tile / brick divisions as size differences and symbols instead of size information.

[0014] In this disclosure, a method for reducing encoding / decoding bits is described by introducing some information from the information indicating the partition configuration without signaling when encoding / decoding tile / brick / slice partitions.

[0015] Beneficial effects

[0016] The video signal processing method and apparatus according to this disclosure can improve the video signal coding efficiency through advanced image segmentation and efficient encoding / decoding of segmentation information.

[0017] By configuring sub-image partitions in units of tile or brick size, the size of height and width can be signaled with fewer bits, and the boundaries can be easily aligned with the sub-images.

[0018] This disclosure provides a more flexible structure by offering equal or unequal sub-image / tile / brick / slice partitions when configuring advanced partitioning.

[0019] Check if the height and width of each component in the tile division are equal, and signal only one size value for tiles of the same size. When tiles are equally divided into only one size, fewer bits can be used for signaling than in related techniques.

[0020] This can be achieved by using information signaled at the same level when encoding / decoding the brick division, thus reducing the number of bits without transmission dependencies.

[0021] Signaling overhead can be reduced by encoding / decoding information about tile or brick divisions into smaller values ​​than before.

[0022] Bit signaling can be reduced by introducing some information during the encoding / decoding of tile / brick / slice partitioning information without signaling this information. Attached Figure Description

[0023] Figure 1 A method for encoding image segmentation information in an image encoder relating to this disclosure is shown.

[0024] Figure 2 An advanced image segmentation method in an image decoder related to this disclosure is shown.

[0025] Figure 3 and Figure 4 An example of equal division of sub-images is shown.

[0026] Figure 5 An example of unequal division of sub-images is shown.

[0027] Figure 6A method for configuring sub-images using equally divided blocks is shown.

[0028] Figure 7 (a) shows the case where the slices are configured in rectangular mode, and Figure 7 (b) shows an example when slicing is configured in raster scan mode.

[0029] Figure 8 This is a block diagram illustrating the configuration of a video encoding apparatus according to an embodiment of the present disclosure.

[0030] Figure 9 This is a block diagram illustrating the configuration of a video decoding apparatus according to an embodiment of the present disclosure. Detailed Implementation

[0031] The video decoding method and apparatus according to this disclosure can decode the segmentation information of a current image from a bitstream, and divide the current image into at least one unit among sub-images, slices, or tiles by using the decoded segmentation information.

[0032] In the video decoding method and apparatus according to this disclosure, the segmentation information may include at least one of sub-image segmentation information, slice segmentation information, or tile segmentation information.

[0033] In the video decoding method and apparatus according to the present disclosure, decoding the sub-image segmentation information may include: obtaining a first flag indicating whether the current image consists of only one sub-image; and based on the first flag, obtaining at least one of information indicating the number of sub-images constituting the current image or a second flag indicating whether the sub-images are equally segmented.

[0034] In the video decoding method and apparatus according to the present disclosure, decoding the sub-image segmentation information may further include: obtaining information indicating the size of each sub-image constituting the current image based on at least one of information indicating the number of sub-images or a second flag indicating whether the sub-images are equally segmented.

[0035] In the video decoding method and apparatus according to this disclosure, information indicating the size of a sub-image can be encoded in units of a code tree block (CTB) predefined in the decoding apparatus.

[0036] In the video decoding method and apparatus according to this disclosure, sub-image segmentation information can be obtained from a sequence parameter set (SPS).

[0037] In the video decoding method and apparatus according to the present disclosure, decoding tile division information may include: obtaining a third flag indicating whether to perform division on the current image; obtaining information about the number of tile row widths constituting the current image and information about the number of tile column heights constituting the current image based on the third flag; and obtaining information indicating the width and height of each tile based on the obtained information.

[0038] In the video decoding method and apparatus according to the present disclosure, when the value of the third flag is 1, the current image is not divided, and when the value of the third flag is 0, the current image can be divided into multiple tiles or multiple slices.

[0039] In the video decoding method and apparatus according to this disclosure, tile division information can be obtained from the picture parameter set (PPS).

[0040] In the video decoding method and apparatus according to the present disclosure, decoding the slice division information may include: obtaining a fourth flag indicating whether the slice is divided in a rectangular pattern or a raster scan pattern; obtaining information indicating the number of slices belonging to the current image based on the fourth flag; and obtaining information indicating the width and height of each slice based on the information indicating the number of slices.

[0041] In the video decoding method and apparatus according to the present disclosure, decoding the slice division information may further include: obtaining information indicating the difference between the index of the tile including the top left CTB in the next slice and the index of the tile including the top left CTB in the current slice.

[0042] In the video decoding method and apparatus according to this disclosure, the position of a slice can be specified based on information about an indication difference.

[0043] In the video decoding method and apparatus according to this disclosure, the information indicating the difference can be decoded only for some of the multiple slices constituting the current image.

[0044] In the video decoding method and apparatus according to the present disclosure, the information of the indication difference can be decoded based on a fourth flag indicating whether the indication difference exists, and the fourth flag can be decoded only when the number of slices constituting the current picture is greater than or equal to a predetermined threshold number.

[0045] In the video decoding method and apparatus according to the present disclosure, decoding the slice division information may further include: obtaining information indicating the number of slices belonging to a tile, and adaptively decoding the information indicating the number of slices belonging to a tile based on at least one of information indicating the width and height of the slices or information about the height of the tile.

[0046] In the video decoding method and apparatus according to this disclosure, a current image can be divided into at least one unit selected from sub-images, slices, or tiles, and the division information used for dividing the current image can be encoded. Here, the division information may include at least one of sub-image division information, slice division information, or tile division information.

[0047] The computer-readable recording medium according to this disclosure can store a bitstream encoded by an image encoding method, the method comprising: dividing a current image into at least one of sub-images, slices, or tiles, and encoding partitioning information for partitioning the current image. In this document, the partitioning information may include at least one of sub-image partitioning information, slice partitioning information, or tile partitioning information.

[0048] Implementation of the invention

[0049] Embodiments of this disclosure will be described in detail with reference to the accompanying drawings, enabling those skilled in the art to readily implement this disclosure. However, this disclosure can be implemented in various different forms and is not limited to the embodiments described herein. In the drawings, parts irrelevant to the description have been omitted for clarity, and throughout the specification, the same parts are assigned the same reference numerals.

[0050] Throughout the specification, when a part is referred to as being "connected" to another part, this includes not only the case where it is directly connected to another intermediate element, but also the case where it is electrically connected to another intermediate element.

[0051] Additionally, throughout the instruction manual, when a section “includes” a component, it means that other components may be included rather than excluded, unless otherwise stated.

[0052] Furthermore, terms such as "first" and "second" may be used to describe various components, but components should not be limited by the terms. These terms are used only for the purpose of distinguishing one component from another.

[0053] Furthermore, in embodiments of the apparatus and methods described herein, a portion of the apparatus configuration or a portion of the method steps may be omitted. Additionally, the order of a portion of the apparatus configuration or a portion of the method steps may be changed. Furthermore, other configurations or other steps may be inserted into a portion of the apparatus configuration or a portion of the method steps.

[0054] In addition, some configurations or steps of the first embodiment of this disclosure may be added to the second embodiment of this disclosure, or may replace some configurations or steps of the second embodiment.

[0055] Furthermore, the constituent units shown in the embodiments of this disclosure are illustrated independently to represent different functional characteristics, and do not imply that each constituent unit is formed by a separate hardware or software constituent unit. In other words, for ease of description, constituent units are described by listing them as individual constituent units, and at least two constituent units are combined to form a constituent unit, or a constituent unit may be divided into multiple constituent units to perform functions. Unless departing from the spirit of this disclosure, both integrated and separate embodiments of constituent units are included within the scope of this disclosure.

[0056] First, a brief description of the terminology used in this application is as follows.

[0057] In the following text, the video decoding device described later can refer to devices included in personal security cameras, personal security systems, military security cameras, military security systems, personal computers (PCs), laptops, portable multimedia players (PMPs), wireless communication terminals, smartphones, server terminals such as television application servers, service servers, etc. Additionally, the video decoding device can refer to devices including: user terminals such as various devices, communication devices such as communication modems for communication via wired / wireless communication networks, memory for storing inter-frame or intra-frame prediction data and various programs for encoding or decoding video, microprocessors for performing operations and controls by executing programs, etc.

[0058] Additionally, the video encoded in the bitstream by the encoding device can be transmitted in real-time or non-real-time to the video decoding device via wired / wireless communication networks such as the Internet, near-field communication networks, wireless local area networks (LANs), Wi-Fi networks, and mobile communication networks, or various communication interfaces such as cables and universal serial buses (USB), and can be decoded, reconstructed into images, and reproduced. Alternatively, the bitstream generated by the encoder can be stored in memory. Memory can include both volatile and non-volatile memory. In this specification, memory can be expressed as a recording medium that stores the bitstream.

[0059] Typically, a video can be composed of a series of images, and each image can be divided into coding units such as blocks. Furthermore, those skilled in the art to which this embodiment pertains will understand that the term "image" described below can be replaced with other terms of equivalent meaning, such as picture and frame. Additionally, those skilled in the art will understand that the term "coding unit" can be replaced with other terms of equivalent meaning, such as unit block and block.

[0060] In the following description, exemplary embodiments of the present disclosure will be described in more detail with reference to the accompanying drawings. Repeated descriptions of identical components will be omitted in the description of the present disclosure.

[0061] This disclosure relates to advanced image segmentation methods for encoding / decoding images and the encoding / decoding of information used for image segmentation.

[0062] In image segmentation according to this disclosure, an image can be divided into layers, such as sub-images, tiles, blocks, and slices. Image segmentation can be performed according to a method specified for each layer, and the segmentation information can be encoded and decoded according to specified rules.

[0063] For example, a sub-image can be configured to coincide with the boundary of a tile or brick. The boundary of a tile can be configured as an integer multiple of a coding unit (e.g., a coding tree block (CTB)), and the height of the sub-image can be configured as an integer multiple of a specific number of pixels (e.g., 2 pixels). Here, when the unit of the sub-image is smaller than the unit of the tile, the bit overhead for transmitting the height and width of the sub-image may increase.

[0064] In the case of tiles, a 1-bit flag indicating whether an image is divided into tiles of equal size (height and width) can be encoded / decoded. Since this flag indicates both equal division in the vertical and horizontal directions, unnecessary division information for the other direction can be sent to indicate whether the division is equal in one direction. However, the flag is not limited to tiles, and needless to say, flags with the same concept can be encoded / decoded for sub-images, bricks, or slices. A tile can consist of a slice (or brick) or can be divided into multiple slices (or bricks). When the height of a particular tile is the same as the smallest unit of division information transmission, the corresponding tile may not always be divided into bricks. In this case, the flag indicating whether a division is made may not be encoded / decoded. In the syntax used to check the above conditions, a parsing dependency may occur using information sent at a higher level. In the encoding / decoding information of a tile or brick, the width and height size information is sent according to the encoding unit. When tiles or bricks are similarly divided, sending all corresponding information may result in unnecessary bit overhead.

[0065] A slice can be composed of a combination of divided bricks. In a slice configuration, for all slices, a 1-bit signal can be used to indicate the index difference and sign of the difference between the brick at the right end of the current slice and the brick at the right end of the previous slice. In this case, even if the sign is always constant, it is possible to unnecessarily signal the sign of a specific slice.

[0066] When encoding / decoding the height and width information of a tile / brick, unnecessary signaling may occur even if the width or height can be determined for a specific tile or brick.

[0067] When encoding / decoding the tile partitioning information, signaling overhead may occur on the unpartitioned side, and the necessary information can be obtained by using the already encoded / decoded information.

[0068] When encoding / decoding slice partitioning information, the tile index information used to indicate the location of tiles that include slices can also be encoded / decoded. In this case, when the number of slices in the image is less than or equal to a certain number, signaling overhead may occur due to encoding / decoding unnecessary indexes.

[0069] Figure 1 A method for encoding image segmentation information in an image encoder relating to this disclosure is shown. Figure 2 An advanced image segmentation method in an image decoder related to this disclosure is shown.

[0070] Advanced image segmentation steps

[0071] [D1] When performing advanced image segmentation on the current image, segmentation and / or merging can be used to form predetermined units. Here, a predetermined unit may include at least one of sub-images, tiles, bricks, or slices. For example, an image or sub-image can be divided into multiple tiles, and the size / shape / position of a sub-image can be determined by combining multiple tiles. Alternatively, a tile or slice can be divided into multiple bricks, or the size / shape / position of a tile or slice can be determined by combining multiple bricks. Alternatively, an image can be divided into multiple sub-images and multiple tiles. The size, position, shape, etc., of a slice can be determined by combining multiple tiles, and further, a tile can be further divided into multiple slices.

[0072] At least one of the aforementioned predetermined units may be selectively used, and for this purpose, a signal may be sent to indicate whether a corresponding unit at a higher level (e.g., VPS, SPS, PPS, etc.) is permitted. Each of the aforementioned predetermined units may have an independent size, shape, position, etc., and any one of the predetermined units may have interdependent sizes, shapes, positions, etc.

[0073] Additionally, in the embodiments described later, encoding information for any of the predetermined units can be derived based on adjacent units. The encoding information may include at least one of partitioning information (information indicating whether partitioning is possible, information indicating whether partitioning is equal), size information, shape information, or position information. Adjacent units may be units adjacent to at least one of the left, top, top-left, top-right, or bottom-left of the current unit, and may be areas encoded / decoded prior to the current unit. For this purpose, a flag indicating whether the encoding information of the current unit is derived based on the encoding information of adjacent units or is the same as the encoding information of adjacent units can be used. The flag can be encoded by the encoding device and signaled. The flag can be signaled at higher levels such as VPS, DPS, SPS, and PPS. When the flag is a first value, the encoding information of the current unit can be set based on the encoding information of adjacent units or be the same as the encoding information of adjacent units. In this case, the position information of adjacent units merged with the current unit can be signaled, or adjacent units at pre-agreed positions in the encoding / decoding device can be used.

[0074] [D1-1] When performing high-level image partitioning on the current image, sub-image partitioning can be performed. Here, the higher image can be divided into N sub-images. In this case, N can be a positive integer with a value of 1 or greater. Here, the higher image can be at least one of a sequence or images. A sequence can refer to multiple images. A sub-image can be a unit for displaying an image, a unit for sending an image, or a unit for processing an image independently / in parallel.

[0075] When performing sub-image partitioning, the sub-images can be the result of equal partitioning. Here, equal partitioning can mean that the N sub-images partitioned from the higher image are of equal size (at least one of width or height). Figure 3 and Figure 4 An example of equal division of sub-images is shown.

[0076] However, even in the case of equal division, a sub-image adjacent to one or more of the upper, lower, left, and right boundaries of the higher region can have a different size than the other sub-images. For example, in Figure 3 In (a), sub-image 0 and sub-image 2 can have the same width but different heights. Alternatively, sub-image 0 can have the same height as sub-image 1, but can have different widths. Figure 3 In (b), the width ratio between sub-image 0 and sub-image 1 can be the same as the width ratio between sub-image 2 and sub-image 3. Here, sub-image 0 and sub-image 1 can have different widths. Figure 3In (c), the height ratio between sub-image 0 and sub-image 1 can be the same as the height ratio between sub-image 2 and sub-image 3. Here, sub-image 0 and sub-image 1 can have different heights.

[0077] At the same time, such as Figure 4 As shown in (a), in image segmentation processing, small regions generated at one or more boundaries (top, bottom, left, right) can be a sub-image. Figure 4 As shown in (b), in image segmentation processing, a sub-image can be configured to include small regions existing at one or more boundaries: top, bottom, left, and right. Here, equal segmentation can be performed in both the vertical and horizontal directions of the higher region. Alternatively, equal segmentation can be performed only in the vertical or horizontal direction of the higher region.

[0078] When performing sub-image partitioning, the sub-images can be the result of unequal partitioning. Here, unequal partitioning can mean that the N sub-images partitioned from the higher image are different in size (at least one of width or height). Figure 5 An example of unequal division of a sub-image is shown. Here, unequal division can be performed in both the vertical and horizontal directions of the higher region. Alternatively, unequal division can be performed only in the vertical or horizontal direction of the higher region.

[0079] Figure 6 A method for configuring sub-images using equally divided blocks is shown.

[0080] When performing sub-image partitioning, sub-images can be configured using blocks that are equally divided from the higher image. In this case, the equally divided blocks can be configured in the same way as the equally divided sub-images. As an example, to perform such... Figure 6 The sub-image partitioning shown in (a) can be done using, for example... Figure 6 (b) shows the blocks that are divided equally.

[0081] For example, a region comprising multiple equally divided blocks can be configured as a sub-image. Here, each equally divided block can have index information, and a higher image can be divided into a group of blocks with the same index information. In this case, a block with the same index information can be in contact with another block with the same index information on at least one side.

[0082] When performing sub-image partitioning, sub-images can be configured using blocks that are unequally divided from a higher image. In this case, the unequally partitioned blocks can be configured in the same way as the unequal partitioning of sub-images. As an example, to perform such... Figure 6 The sub-image partitioning shown in (a) can be done using, for example... Figure 6The unequally divided blocks are shown in (c). For example, a region comprising multiple unequally divided blocks can be configured as a sub-image. Here, each unequally divided block can have index information, and a higher image can be divided into a group of blocks with the same index information. In this case, a block with the same index information can contact another block with the same index information on at least one side. Equal division of the sub-image can be performed in the vertical direction of the higher region, and unequal division of the sub-image can be performed in the horizontal direction. Alternatively, unequal division of the sub-image can be performed in the vertical direction of the higher region, and equal division of the sub-image can be performed in the horizontal direction. The units of the width and height of the sub-image can be powers of 2 and n times the size (width, height) of the coding tree block (CTB), respectively. In this case, n can be an integer with a value of 0 or greater. In this case, at least one of the width or height of the CTB can be a power of 2. For example, at least one of the width or height of the CTB can be 128. For example, at least one of the width or height of the CTB can be 64. For example, at least one of the width or height of the CTB can be 32. For example, at least one of the width or height of the CTB can be 16. For example, at least one of the width or height of the CTB can be 8. For example, at least one of the width or height of the sub-image can be a multiple of at least one or more of the width or height of the CTB. For example, when at least one of the width or height of the CTB is 128, at least one of the width or height of the sub-image can be a multiple of 128. For example, when at least one of the width or height of the CTB is 64, at least one of the width or height of the sub-image can be a multiple of 64. For example, when at least one of the width or height of the CTB is 32, at least one of the width or height of the sub-image can be a multiple of 32. For example, when at least one of the width or height of the CTB is 16, at least one of the width or height of the sub-image can be a multiple of 16. For example, when at least one of the width or height of the CTB is 8, at least one of the width or height of the sub-image can be a multiple of 8.

[0083] Alternatively, the units for the width and height of the sub-image can be set to the width and height of the Coding Tree Block (CTB), respectively. That is, the width of the sub-image can be set to n times the width of the CTB, and the height of the sub-image can be set to n times the height of the CTB. In this case, n can be an integer with a value of 0 or greater. Alternatively, n can be a value greater than a predetermined non-zero threshold. The width and height of the CTB can refer to the minimum or maximum CTB size allowed by the encoding / decoding device.

[0084] Alternatively, the units of the width and height of the sub-image can be set to fixed values ​​pre-agreed upon by the encoding / decoding device. Here, the fixed value can be an integer of 8, 16, 32, 64, 128, 256, or larger. Alternatively, the fixed value can be set to the minimum / maximum CTB size (L), L / 2, L / 4, L / 8, L / 16, or L / 32 allowed by the encoding / decoding device. At least one of the width or height of the sub-image can be n times the fixed value.

[0085] Alternatively, the units for the width and height of the sub-image can be set to the minimum / maximum CB size. Information regarding the minimum or maximum CB size can be signaled by the encoding device. Alternatively, the units for the width and height of the sub-image can be set to the minimum / maximum prediction unit (PU) size or the minimum / maximum transform unit (TU) size. Information regarding at least one of the minimum or maximum PU / TU sizes can be signaled by the encoding device.

[0086] Alternatively, size information, specifically units indicating the width and height of a sub-picture, can be signaled separately. This size information can be signaled at at least one of the higher-level parameters, such as video sequences, images, slices, or tiles. For example, the same sub-picture unit can be applied to all images in a video sequence, or different sub-picture units can be applied to each image. In this case, the width and height of the sub-picture can be determined as multiples of the size based on the size information.

[0087] Alternatively, different units can be applied to each of the width and height of the sub-image. For example, the unit for the width of the sub-image can be a first unit, and the unit for the height of the sub-image can be a second unit. Here, the first unit can be any of the aforementioned CTB size, minimum CTB size, maximum CTB size, fixed value, or signal notification size information, and the second unit can be a different unit than the first unit. Alternatively, the unit for the width of the sub-image can be a third unit, and the unit for the height of the sub-image can be a fourth unit. The third unit can be greater than the fourth unit. For example, the third unit can be m times the first unit mentioned above, and the fourth unit can be the first unit mentioned above. m can be an integer greater than or equal to 2.

[0088] The above-described embodiments of the units for the width and height of sub-images can be applied in the same / similar manner to units constituting predetermined segment regions of an image. Here, a segment region can refer to at least one of slices, tiles, blocks, or sub-images.

[0089] [D1-2] When performing high-level image partitioning on the current image, tile partitioning can be performed. Here, the higher region can be divided into N tiles. In this case, N can be a positive integer with a value of 1 or greater. Here, a tile can be a unit in which parallel encoding / decoding of the image is performed. Here, the higher region can be one of a sequence, a picture, a sub-picture, and a slice.

[0090] When performing tile partitioning, tiles can be the result of equal partitioning. Here, equal partitioning can mean that the size (at least one of width or height) of N tiles partitioned from a higher image is equal to each other. Details are the same as for equal partitioning in [D1-1].

[0091] When performing tile partitioning, the tiles can be the result of unequal partitioning. Here, unequal partitioning can refer to N tiles from a higher image whose sizes (at least one of width or height) are different from each other. Details are the same as for unequal partitioning in [D1-1].

[0092] When performing tile partitioning, tiles can be configured using blocks that are equally divided from a higher image. In this case, equally divided blocks can be configured in the same way as equally divided tiles. The details are the same as the partitioning using equally divided blocks in [D1-1].

[0093] When performing tile partitioning, tiles can be configured using blocks that are unequally divided from a higher image. In this case, the unequally partitioned blocks can be configured in the same way as the unequal partitioning of tiles. The details are the same as the partitioning of unequally partitioned blocks in [D1-1].

[0094] Here, equal partitioning of tiles can be performed vertically in the higher region, and unequal partitioning of tiles can be performed horizontally in the higher region. Here, the units for the width and height of the tiles can be one of 2 to the power of n and n times the size (width, height) of the Coding Tree Block (CTB). In this case, n can be an integer with a value of 0 or greater.

[0095] [D1-3] When performing advanced image segmentation on the current image, block segmentation can be performed. Here, the higher region can be divided into N blocks by at least one of the horizontal segmentation method and the vertical segmentation method. In this case, N can be a positive integer with a value of 1 or greater.

[0096] Here, a brick can refer to a sub-tile or slice. A brick can be a unit in which parallel encoding / decoding of an image is performed. Here, a higher region can be at least one of a sequence, image, sub-image, slice, or tile.

[0097] When performing brick partitioning, the bricks can be the result of equal partitioning. Here, equal partitioning can mean that the size (at least one of width or height) of the N bricks partitioned from the higher image is equal to each other. The details are the same as for equal partitioning in [D1-1].

[0098] When performing brick partitioning, the bricks can be the result of unequal partitioning. Here, unequal partitioning can mean that the size (at least one of width or height) of the N bricks partitioned from the higher image is different from each other. The details are the same as for unequal partitioning in [D1-1].

[0099] When performing brick partitioning, bricks can be configured using equally partitioned blocks from a higher image. In this case, equally partitioned blocks can be configured in the same way as the equally partitioned bricks described above. The details are the same as the partitioning using equally partitioned blocks in [D1-1].

[0100] When performing brick partitioning, bricks can be configured using unequally partitioned blocks from a higher image. In this case, the unequally partitioned blocks can be configured in the same way as the unequal partitioning of bricks described above. The details are the same as the partitioning using unequally partitioned blocks in [D1-1].

[0101] Here, equal division of bricks can be performed vertically in the higher region, and unequal division of bricks can be performed horizontally in the higher region. The width and height of the bricks can be in units of 2 to the power of n and n times the size (width, height) of the Coding Tree Block (CTB). In this case, n can be an integer with a value of 0 or greater.

[0102] [D1-4] When performing advanced image segmentation on the current image, slice segmentation can be performed. Here, the higher region can be divided into N slices. In this case, N can be a positive integer with a value of 1 or greater.

[0103] Here, a slice can refer to an image, a group of sub-images, a sub-image, a group of tiles, a tile, a group of bricks, or a brick, and is a unit within which image encoding information at a lower level is transmitted, or a unit within which parallel encoding / decoding is performed. Here, a higher region can be at least one of a sequence, an image, a sub-image, or a tile.

[0104] When performing slice partitioning, the slices can be the result of equal partitioning. Here, equal partitioning can mean that the size (at least one of width or height) of the N slices partitioned from the higher image is equal to each other. The details are the same as for equal partitioning in [D1-1].

[0105] When performing slice partitioning, the slices can be the result of unequal partitioning. Here, unequal partitioning can refer to N slices from a higher image whose sizes (at least one of width or height) are different from each other. The details are the same as for unequal partitioning in [D1-1].

[0106] When performing slice division, slices can be configured using equally divided blocks from the higher image. In this case, equally divided blocks can be configured in the same way as the equally divided slices described above. The details are the same as the division using equally divided blocks in [D1-1].

[0107] When performing slice division, slices can be configured using unequally divided blocks from a higher image. In this case, the unequally divided blocks can be configured in the same way as in the unequal division of slices described above. The details are the same as the division using unequally divided blocks in [D1-1].

[0108] Here, equal partitioning of slices can be performed vertically in the higher region, and unequal partitioning of slices can be performed horizontally in the higher region. The units of slice width and height can be powers of 2 and n times the size (width, height) of the Coding Tree Block (CTB). In this case, n can be an integer with a value of 0 or greater.

[0109] When performing slicing, sub-image partitioning can be used. For example, slicing can be performed on each of the sub-images partitioned using the [D1-1] method. Alternatively, slicing can be performed on a region that combines n sub-images from the sub-images partitioned using the [D1-1] method. In this case, n can be an integer of 1 or greater.

[0110] When performing slice partitioning, tile partitioning can be used. For example, slice partitioning can be performed on each of the tiles partitioned using the [D1-2] method. For example, slice partitioning can be performed on a region where n tiles are combined in the tiles partitioned using the [D1-2] method. In this case, n can be an integer of 1 or greater.

[0111] When performing slicing, brick-based partitioning can be used. For example, slicing can be performed on each of the bricks partitioned using the [D1-3] method. Alternatively, slicing can be performed on a region where n bricks are combined from the bricks partitioned using the [D1-3] method. In this case, n can be an integer of 1 or greater.

[0112] Advanced image segmentation information encoding / decoding steps

[0113] [D2] When encoding / decoding the advanced image segmentation information of [D1] for the current video / image, it is possible to encode / decode the advanced image segmentation information belonging to at least one parameter set in various advanced parameter sets.

[0114] The advanced parameter set can be at least one of various parameter sets such as the Decoding Parameter Set (DPS), Video Parameter Set (VPS), Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Adaptation Parameter Set (APS), and Picture Header (PH).

[0115] Tables 1 to 5 are examples of the syntax structures for DPS, VPS, SPS, PPS, and APS.

[0116] Table 1

[0117]

[0118] Table 2

[0119]

[0120] Table 3

[0121]

[0122] Table 4

[0123]

[0124] Table 5

[0125]

[0126] Here, the advanced image segmentation information [D1] can be image segmentation information of at least one of sub-images, tiles, bricks, or slices. Furthermore, image segmentation can be performed by combining the aforementioned predetermined units, and the advanced image segmentation information of this disclosure may also include image combination information. Hereafter, image segmentation information can be interpreted as image combination information.

[0127] [D2-1] When encoding / decoding the high-level image segmentation information of [D1], the image segmentation information can be encoded / decoded within a specific parameter set.

[0128] For example, the advanced image segmentation information of [D1] can be encoded / decoded in DPS. For example, the advanced image segmentation information of [D1] can be encoded / decoded in VPS. For example, the advanced image segmentation information of [D1] can be encoded / decoded in SPS. For example, the advanced image segmentation information of [D1] can be encoded / decoded in PPS. For example, the advanced image segmentation information of [D1] can be encoded / decoded in APS.

[0129] [D2-2] When encoding / decoding the high-level image segmentation information of [D1], the image segmentation information can be encoded / decoded within one or more parameter sets. Here, the parameter set can be at least one of various parameter sets such as VPS, SPS, PPS, and APS.

[0130] [D2-2-1] When encoding / decoding the high-level image segmentation information of [D1], the image segmentation information can be encoded / decoded within one or more parameter sets according to the above-mentioned predetermined units.

[0131] For example, the partitioning information of some of the aforementioned predefined units (e.g., sub-images) can be encoded / decoded at a higher level than that of the other units (e.g., tiles, bricks, or slices). For example, the partitioning information of sub-images can be encoded / decoded in SPS, and the partitioning information of tiles / bricks / slices can be encoded / decoded separately in PPS.

[0132] Table 6 shows an example of the syntax used to encode / decode sub-image segmentation information in SPS.

[0133] Table 6

[0134]

[0135] Here, `subpics_present_flag` can indicate whether the image consists of only one subpick. For example, when `subpics_present_flag` is 0, the current image can consist of only one subpick, while when `subpics_present_flag` is 1, the current image can consist of one or more subpicks. Alternatively, `subpics_present_flag` can indicate whether the subpick segmentation information is signaled at the SPS or at a lower level of the SPS.

[0136] When performing sub-image segmentation on the current image as shown in [D1-1], if only equal segmentation is performed, as shown in Table 7, the sub-image segmentation information can be encoded / decoded in SPS using only the width and height of the sub-image.

[0137] Table 7

[0138]

[0139] Here, `max_subpics_minus1` can indicate the number of subpicks configured for a single image. `max_subpics_minus1` can be encoded / decoded based on the `subpics_present_flag`, which indicates the presence or absence of subpick segmentation information. Specifically, `subpic_grid_col_width_minus1` can refer to the width of a subpick, and `subpic_grid_row_height_minus1` can refer to the height of a subpick.

[0140] The division information can be signaled in units of 2 to the power of n, or the size of the CTB (width and height). In this case, n can be an integer with a value of 0 or greater.

[0141] Simultaneously, information regarding at least one of the width and height of the sub-images can be omitted depending on the division direction. The division direction can be predefined in the encoding / decoding device, and the division direction information can be signaled separately. Alternatively, only information regarding the number of sub-images belonging to a single image can be signaled, without signaling information regarding the size of the sub-images. In this case, a sub-image adjacent to the right boundary of the image can have a larger width than a sub-image adjacent to the left boundary. Similarly, a sub-image adjacent to the bottom boundary of the image can have a larger height than a sub-image adjacent to the top boundary.

[0142] For example, when performing sub-image partitioning on the current image as in [D1-1], as shown in Table 8, the sub-image partitioning information can be encoded / decoded in SPS when at least one of equal partitioning and unequal partitioning is performed.

[0143] Table 8

[0144]

[0145] Here, `uniform_subpic_grid_spacing_flag` can be a flag indicating whether subpicks are divided equally or unequally. Specifically, `uniform_subpic_grid_spacing_flag` can indicate whether all subpicks belonging to a single image have the same size specified by `subpic_cols_width_minus1` and `subpic_rows_height_minus1`. `subpic_cols_width_minus1` indicates the width of the subpicks, and `subpic_rows_height_minus1` indicates the height of the subpicks.

[0146] Width / height information can be signaled in units of 2 to the power of n, or CTB size (width, height). In this case, n can be an integer with a value of 0 or greater. Width / height information can be encoded / decoded only for the first sub-image of the current image, and the remaining sub-images can share the width / height information obtained from the first sub-image.

[0147] In this case, at least one of the width or height of the CTB can be a power of 2. For example, at least one of the width or height of the CTB can be 128. For example, at least one of the width or height of the CTB can be 64. For example, at least one of the width or height of the CTB can be 32. For example, at least one of the width or height of the CTB can be 16. For example, at least one of the width or height of the CTB can be 8.

[0148] For example, at least one of the width or height of the sub-image can be a multiple of at least one or more of the width or height of the CTB. For example, when at least one of the width or height of the CTB is 128, at least one of the width or height of the sub-image can be a multiple of 128. For example, when at least one of the width or height of the CTB is 64, at least one of the width or height of the sub-image can be a multiple of 64. For example, when at least one of the width or height of the CTB is 32, at least one of the width or height of the sub-image can be a multiple of 32. For example, when at least one of the width or height of the CTB is 16, at least one of the width or height of the sub-image can be a multiple of 16. For example, when at least one of the width or height of the CTB is 8, at least one of the width or height of the sub-image can be a multiple of 8.

[0149] `num_subpic_columns_minus1` can refer to the number of subpictures included in the current image width, and `num_subpic_rows_minus1` can refer to the number of subpictures included in the current image height. Information regarding the number of subpictures can be defined in the vertical and horizontal directions respectively, as shown in Table 8, and encoded using two different syntaxes, or it can be encoded using a single syntax indicating the total number of subpictures, as shown in Table 7.

[0150] On the other hand, when the width and height of the current image are provided in SPS, as described in Table 9, in the case of a subpicture with the last index, encoding / decoding of subpic_cols_width_minus1 and subpic_cols_height_minus1 is not required.

[0151] Table 9

[0152]

[0153] Table 10 is an example of some of the syntax used for encoding / decoding tile / brick / slice partitioning information in PPS.

[0154] Table 10

[0155]

[0156] Here, `single_tile_in_pic_flag` can be a flag indicating whether a tile is a single picture. `brick_splitting_present_flag` can be a flag indicating whether at least one of multiple tiles belonging to a picture is divided into multiple bricks. Alternatively, `brick_splitting_present_flag` can indicate whether a tile is divided into multiple bricks or whether brick division information is signaled. Here, `single_brick_per_slice_flag` can be a flag indicating whether a brick is a slice. Here, `rect_slice_flag` can be a flag indicating whether the slice has a rectangular shape or a raster scan shape. On the other hand, when `uniform_tile_spacing_flag` is 1, the number of tiles in the picture cannot be determined, but can be notified via signaling. When `uniform_tile_spacing_flag` is 1, information indicating the size (at least one of width or height) of the tiles constituting the picture can be signaled. When uniform_tile_spacing_flag is 0, it can signal information indicating the number of tiles that make up an image, and it can signal information indicating the size (at least one of width or height) of each tile based on the number of tiles.

[0157] However, this disclosure is not limited to this, and at least one of the following can be signaled independently of uniform_tile_spacing_flag: information indicating the number of tiles or information indicating the size of each tile according to the number of tiles. In this case, the information indicating the number of tiles may include information about the number of tile column widths constituting the image and information about the number of tile row heights constituting the image, which can be signaled separately. However, the information indicating the number of tiles and the information indicating the size of the tiles may only be signaled when an image is divided into predetermined units (e.g., slices, tiles).

[0158] For example, when performing equal partitioning on the current image as in [D1-2], as shown in Table 11, the partitioning information can be encoded / decoded in PPS using only the width and height of the tiles.

[0159] Table 11

[0160]

[0161] Here, tile_cols_width_minus1 can refer to the width of the tile, and tile_rows_width_minus1 can refer to the height of the tile. For example, when performing tile partitioning on the current image as in [D1-2], at least one of equal partitioning and unequal partitioning is performed, as shown in Table 12, and the tile partitioning information can be encoded / decoded in PPS.

[0162] Table 12

[0163]

[0164] Here, `uniform_tile_spacing_flag` can be a flag indicating whether tiles are divided equally or unequally. When tiles are divided equally, `tile_col_width_minus1` and `tile_row_height_minus1` can be signaled. `tile_col_width_minus1` can refer to the width of the tile, and `tile_row_height_minus1` can refer to the height of the tile. On the other hand, when tiles are divided unequally, information indicating the number of tiles can be signaled, and information indicating the size of each tile according to the number of tiles (`tile_column_width_minus1[i]`, `tile_row_height_minus1[i]`) can be signaled. However, this disclosure is not limited to this, and the encoder / decoder can be configured to use either equal or unequal division. In this case, regardless of `uniform_tile_spacing_flag`, at least one of information indicating the number of tiles or information indicating the size of each tile according to the number of tiles can be signaled.

[0165] Width / height information can be signaled in units of powers of 2, where n is an integer of 0 or greater. For example, `tile_col_width_minus1` can be sent in a CTB cell with a width of 128. Alternatively, it can be sent in a CTB cell with a width of 64. It can also be sent in a CTB cell with a width of 32, 16, 8, 4, and so on. Similarly, `tile_row_height_minus1` can be sent in a CTB cell with a width of 128 and 64. For example, `tile_row_height_minus1` can be transmitted in a CTB cell with a width of 32. Alternatively, `tile_row_height_minus1` can be transmitted in a CTB cell with a width of 16. Or, `tile_row_height_minus1` can be transmitted in a CTB cell with a width of 8.

[0166] Here, `tile_col_width_delta` can be used instead of `tile_col_width_minus1`. `tile_col_width_delta` can refer to the difference between the width of the current tile and the width of the previous tile. Here, the previous tile can refer to a tile belonging to the left column or top row relative to the current tile. The previous tile can also refer to a tile with an encoding order (or scan order) preceding the current tile. Alternatively, the previous tile can be any of the tiles belonging to the leftmost column or topmost row of the image, or it can be a tile located in the upper left corner of the image.

[0167] The difference can be positive, negative, or zero. When the difference is 0, no information about the sign needs to be sent. When the difference is positive or negative, the corresponding information can be notified using a flag, which can be named sign_tile_col_width_delta.

[0168] Here, `tile_row_height_delta` can be used instead of `tile_row_height_minus1`. `tile_row_height_delta` can refer to the difference between the height of the current tile and the width (or height) of the previous tile. Here, the previous tile can refer to a tile belonging to the left column or top row relative to the current tile. The previous tile can also refer to a tile with an encoding order (or scan order) preceding the current tile. Alternatively, the previous tile can be any of the tiles belonging to the leftmost column or topmost row of the image, or it can be a tile located in the upper left corner of the image.

[0169] The difference can be positive, negative, or zero. When the difference is 0, no information about the sign needs to be sent. When the difference is positive or negative, the corresponding information can be notified using a flag, which can be named sign_tile_row_hegith_delta.

[0170] Here, num_tile_columns_minus1 can refer to the number of tiles included in the current image width, that is, the number of tile row widths that make up the current image, and num_tile_rows_minus1 can refer to the number of tiles included in the current image height, that is, the number of tile column heights that make up the current image.

[0171] Here, the uniform_tile_spacing_flag can be signaled by dividing uniform_tile_row_spacing_flag into uniform_tile_col_spacing_flag and uniform_tile_col_spacing_flag. uniform_tile_row_spacing_flag and uniform_tile_col_spacing_flag are flags indicating whether the tile is divided equally or unequally for each of the tile's width and height, and can be encoded / decoded as shown in Table 13.

[0172] Table 13

[0173]

[0174]

[0175] When the width and height of the current image are provided in SPS, as shown in Table 14, for the last indexed tile, it is not necessary to encode / decode tile_cols_width_minus1 and tile_rows_height_minus1.

[0176] Table 14

[0177]

[0178] When performing tile division on the current image as shown in [D1-2], as shown in Table 15, the tile division information can be encoded / decoded in PPS.

[0179] Table 15

[0180]

[0181] Here, `no_pic_partition_flag` indicates whether to perform image partitioning. For example, when `no_pic_partition_flag` is 1, image partitioning is not performed, while when `no_pic_partition_flag` is 0, an image can be partitioned into multiple tiles or slices. This can refer to whether the image is partitioned into tiles or slices. Here, `num_exp_tile_columns_minus1` indicates the number of tile column widths to be explicitly sent. `num_exp_tile_columns_minus1` indicates the number of tile columns that make up an image. The number of tile columns that make up an image can be obtained by incrementing the value of `num_exp_tile_columns_minus1` by 1. In this case, `num_exp_tile_columns_minus1` can be expressed as `num_exp_tile_columns`, as an example of syntax for indicating the number of tile column widths to be explicitly sent.

[0182] `num_exp_tile_columns_minus1` indicates the number of tile widths until the tiles are equally divided based on a left-to-right direction. That is, when dividing the width of the current image, `num_exp_tile_columns_minus1` can specify the position where the tiles are equally divided.

[0183] For example, when num_exp_tile_columns_minus1 is 0, this could mean that the width of the image is divided based on equal partitioning. When num_exp_tile_columns_minus1 is 1, this could mean that the tiles from the first tile to the second tile in the left-to-right direction are configured with unequal partitioning, and the remaining tiles, including the third tile, are configured with equal partitioning.

[0184] Alternatively, num_exp_tile_columns_minus1 can indicate the number of tile widths until the tiles are equally divided based on a right-to-left direction.

[0185] For example, when num_exp_tile_columns_minus1 is 0, this indicates that the width of the image should be divided based on equal partitioning. When num_exp_tile_columns_minus1 is 1, this indicates that the tiles from the first tile to the second tile in the right-to-left direction are configured with unequal partitioning, and the remaining tiles, including the third tile, are configured with equal partitioning.

[0186] Here, `num_exp_tile_rows_minus1` can indicate the number of tile row heights to be explicitly sent. `num_exp_tile_rows_minus1` can also indicate the number of tile rows that make up an image. The number of tile rows that make up an image can be obtained by incrementing the value of `num_exp_tile_rows_minus1` by 1. In this case, `num_exp_tile_rows_minus1` can be expressed as `num_exp_tile_rows`, as an example of syntax for indicating the number of tile row heights to be explicitly sent.

[0187] `num_exp_tile_rows_minus1` indicates the number of tile heights until the tiles are equally divided based on a top-to-bottom direction. In other words, `num_exp_tile_columns_minus1` specifies the position where the tiles are equally divided when the height of the current image is divided.

[0188] For example, when num_exp_tile_rows_minus1 is 0, this could mean that the height of the image is divided based on equal partitioning. When num_exp_tile_rows_minus1 is 1, this could mean that the tiles from the first tile to the second tile in the top-to-bottom direction are configured with unequal partitioning, and the remaining tiles, including the third tile, are configured with equal partitioning.

[0189] Alternatively, num_exp_tile_rows_minus1 can indicate the number of tile heights until the tiles are equally divided based on a bottom-to-top direction.

[0190] For example, when num_exp_tile_rows_minus1 is 0, this could mean that the height of the image is divided based on equal partitioning. When num_exp_tile_rows_minus1 is 1, this could mean that the tiles from the first tile to the second tile in the bottom-to-top direction are configured with unequal partitioning, and the remaining tiles, including the third tile, are configured with equal partitioning.

[0191] tile_column_width_minus1[i] can indicate the width of the i-th tile, and tile_row_height_minus1[i] can indicate the height of the i-th tile.

[0192] In the encoding / decoding of tile partitioning information, the encoding / decoding of some syntax elements can be omitted. When the tile partitioning information of the current image is encoded / decoded as information about the number of explicitly sent tiles, the encoding / decoding of information about the height / width of each tile can be omitted.

[0193] For example, when an image is not divided into multiple tiles, the encoding / decoding of information about the size of the tiles relative to the undivided edges can be omitted.

[0194] In this case, the number of tiles explicitly sent can be encoded / decoded into `num_exp_tile_columns` and `num_exp_tile_rows`. When `num_exp_tile_columns` is 0, this may mean that the image columns are not divided into tiles, and the encoding / decoding of information about tile width can be omitted. When `num_exp_tile_rows` is 0, this may mean that the image rows are not divided into tiles, and the encoding / decoding of information about tile height can be omitted.

[0195] In this case, the syntax structure to be encoded / decoded can be expressed as shown in Table 16.

[0196] Table 16

[0197]

[0198] In this case, as shown in Table 17, the size of the tiles whose encoding / decoding is omitted can be derived from the size of the image.

[0199] Table 17

[0200]

[0201]

[0202] When performing brick-blocking on the current image as shown in [D1-3], at least one of horizontal and vertical partitioning can be performed. For example, when performing brick-blocking on the current image, either horizontal partitioning or vertical partitioning only can be performed.

[0203] For example, when performing horizontal brick division on the current image, as shown in Table 18, the brick division information can be encoded / decoded in PPS when performing at least one of equal division and unequal division.

[0204] Table 18

[0205]

[0206] Here, `num_brick_rows_minus2` can refer to the number of bricks included in the current image and divided horizontally. The current image can refer to a picture, slice, or tile. `brick_height_minus1` can indicate the height of bricks divided equally. `brick_rows_height_minus1` can indicate the height of bricks divided unequally.

[0207] Height information can be signaled in units of 2 to the power of n, where n can be an integer of 0 or greater. For example, `brick_height_minus1` can be sent in a CTB unit with a height of 128. `brick_height_minus1` can also be sent in a CTB unit with a height of 64. `brick_height_minus1` can be sent in a CTB unit with a height of 32. `brick_height_minus1` can also be sent in a CTB unit with a height of 16. `brick_height_minus1` can be sent in a CTB unit with a height of 8. Similarly, `brick_rows_height_minus1` can be sent in a CTB unit with a height of 128. `brick_rows_height_minus1` can also be sent in a CTB unit with a height of 64. `brick_rows_height_minus1` can also be sent in a CTB unit with a height of 32. For example, brick_rows_height_minus1 can be transmitted in a CTB cell with a height of 16. For example, brick_rows_height_minus1 can be transmitted in a CTB cell with a height of 8.

[0208] You can use `brick_rows_height_delta` instead of `brick_rows_height_minus1`. `brick_rows_height_delta` can refer to the difference between the height of the current brick and the height of the previous brick. Here, the previous brick can refer to a brick that belongs to the left column or the upper row of the current brick. The previous brick can also refer to a brick that has a coding order (or scan order) preceding the current brick. Alternatively, you can restrict the previous brick to belong to a different tile than the current brick, or restrict it to belong to the same tile.

[0209] The difference can be positive, negative, or zero. When the difference is 0, no information about the sign needs to be sent. When the difference is positive or negative, a flag can be used to indicate the corresponding information. The flag can be named sign_brick_rows_height_delta.

[0210] For example, when performing horizontal brick division on the current image, if only equal division is performed, the brick division information can be encoded / decoded in PPS only by the height of the bricks, as shown in Table 19.

[0211] Table 19

[0212]

[0213] Here, `brick_height_minus1` can indicate the height of the brick. For example, when performing brick division on the current image, vertical division only can be performed. For example, when performing vertical brick division on the current image, if at least one of equal or unequal division is performed, the brick division information can be encoded / decoded in PPS, as shown in Table 20.

[0214] Table 20

[0215]

[0216] Here, `num_brick_cols_minus2` can indicate the number of bricks included in the current image width and divided vertically. `brick_width_minus1` can indicate the width of bricks divided equally. `brick_cols_width_minus1` can indicate the width of bricks divided unequally. Width information can be signaled in units of 2 to the power of n, the CTB size (width, height). In this case, n can be an integer with a value of 0 or greater. For example, `brick_cols_width_minus1` can be sent in a CTB cell with a width of 128. For example, `brick_cols_width_minus1` can be sent in a CTB cell with a width of 64. For example, `brick_cols_width_minus1` can be sent in a CTB cell with a width of 32. For example, `brick_cols_width_minus1` can be sent in a CTB cell with a width of 16. For example, `brick_cols_width_minus1` can be sent in a CTB cell with a width of 8. For example, `brick_width_minus1` can be transmitted in a CTB cell with a width of 128. For example, `brick_width_minus1` can be transmitted in a CTB cell with a width of 64. For example, `brick_width_minus1` can be transmitted in a CTB cell with a width of 32. `brick_width_minus1` can be transmitted in a CTB cell with a width of 16. For example, `brick_width_minus1` can be transmitted in a CTB cell with a width of 8.

[0217] Here, `brick_cols_width_delta` can be used instead of `brick_cols_width_minus1`. `brick_cols_width_delta` can refer to the difference between the width of the current brick and the width of the previous brick. Here, the previous brick can refer to a brick that belongs to the left column or the upper row relative to the current brick. The previous brick can also refer to a brick with an encoding order (or scan order) preceding the current brick. Alternatively, the previous brick can be restricted to belonging to a different tile than the current brick, or restricted to belonging to the same tile.

[0218] The difference can be positive, negative, or zero. When the difference is 0, no information about the sign needs to be sent. When the difference is positive or negative, a flag can be used to indicate the corresponding information. The flag can be named sign_brick_cols_width_delta.

[0219] For example, when performing vertical brick division on the current image, if only equal division is performed, as shown in Table 21, the brick division information can be encoded / decoded in PPS only by the width of the bricks.

[0220] Table 21

[0221]

[0222] Here, `brick_width_minus1` can indicate the width of the brick. For example, when dividing the current image into bricks, both horizontal and vertical divisions can be performed.

[0223] For example, when performing horizontal and vertical brick division on the current image, if at least one of equal or unequal division is performed, the brick division information can be encoded / decoded in PPS, as shown in Table 22.

[0224] Table 22

[0225]

[0226] Here, `brick_height_minus1` can indicate the height of an equally divided brick, and `brick_width_minus1` can indicate the width of an equally divided brick. `num_brick_rows_minus2` can indicate the number of bricks included in the current image and divided horizontally. `num_brick_rows_minus2` can be encoded as a value obtained by subtracting 2 from the number of bricks. Alternatively, `num_brick_rows_minus4` can be encoded / decoded as a value obtained by subtracting 4 from the number of bricks. `num_brick_cols_minus2` can indicate the number of bricks included in the current image and divided vertically.

[0227] `brick_rows_height_minus1` can indicate the height of bricks divided into unequal parts, and `brick_cols_width_minus1` can indicate the width of bricks divided into unequal parts.

[0228] Height and width information can be signaled in units of 2 to the power of n, or CTB size (width, height). In this case, n can be an integer with a value of 0 or greater. The same approach can be used for both height and width information, similar to the example of executing vertical or horizontal blocks.

[0229] You can use `brick_cols_width_delta` instead of `brick_cols_width_minus1`. `brick_cols_width_delta` can refer to the difference between the width of the current brick and the width of the previous brick. Here, the previous brick can refer to a brick that belongs to the left column or the upper row relative to the current brick. The previous brick can also refer to a brick that has a coding order (or scan order) preceding the current brick. Alternatively, the previous brick can be restricted to belong to a different tile than the current brick, or it can be restricted to belong to the same tile.

[0230] The difference can be positive, negative, or zero. When the difference is 0, no information about the sign needs to be sent. When the difference is positive or negative, a flag can be used to indicate the corresponding information. The flag can be named sign_brick_cols_width_delta.

[0231] Alternatively, `brick_rows_height_delta` can be used instead of `brick_rows_height_minus1`. `brick_rows_height_delta` indicates the difference between the height of the current brick and the height of the previous brick. Here, the previous brick can refer to a brick that belongs to the left column or the upper row relative to the current brick. The previous brick can also refer to a brick with a coding order (or scan order) preceding the current brick. Alternatively, the previous brick can be restricted to belonging to a different tile than the current brick, or restricted to belonging to the same tile.

[0232] The difference can be positive, negative, or zero. When the difference is 0, no information about the sign needs to be sent. When the difference is positive or negative, a flag can be used to indicate the corresponding information. The flag can be named sign_brick_rows_height_delta.

[0233] For example, when performing horizontal and vertical brick division on the current image, when performing only equal division, as shown in Table 23, the brick division information can be encoded / decoded in PPS using only the height and width of the bricks.

[0234] Table 23

[0235]

[0236] Here, brick_height_minus1 can indicate the height of the brick, and brick_width_minus1 can indicate the width of the brick. As in [D1-3], when performing brick division on the current image, all information can be encoded / decoded without considering conditions. Alternatively, when performing brick division on the current image as in [D1-3], considering conditions based on information from higher parameter sets, encoding / decoding of specific information can be omitted. Here, the minimum unit of brick size can be set to a power of 2, the CTB size (at least one of width or height), and can be encoded / decoded from higher parameter sets.

[0237] A tile can be defined as having a size of (the smallest unit of a tile) * m or larger. m can be a positive number greater than one. For tiles smaller than the above condition, the tile division marker does not need to be encoded / decoded.

[0238] The condition for tiles to be equally divisible can be defined as a tile of size (the smallest unit of a tile) * n or larger. n can be a positive number greater than two. For tiles smaller than the above condition, the equal tile division flag does not need to be encoded / decoded.

[0239] The size of the condition refers to at least one of the width or height, and this also applies to the examples described later. The minimum allowed size for a brick division can be 128, 256, 384, 512, or larger. In this case, the minimum size can be encoded by the encoder and signaled to the minimum size, or the minimum size can be a fixed value predefined in the decoder. Alternatively, the minimum size can be variably determined based on the size / shape of the picture, tile, or slice. The above information regarding the minimum size is not limited to brick divisions and can be applied equally / similarly to tiles, slices, etc.

[0240] In encoding / decoding brick partitioning information (or slice partitioning information), the number of bits can be reduced by not sending or sending specific information without using higher partitioning information resolution dependencies that signal notifications.

[0241] When performing brick division on the current image as shown in [D1-3], considering the conditions based on information with the same parameter set, encoding / decoding of specific information may not be performed. Here, when checking the conditions for brick division, information that signals equal or unequal division can be used.

[0242] A brick can be divided into tiles if the size is (the smallest unit of a brick) * m or larger. m can be a positive number greater than one.

[0243] For example, `tile_height_minus1` can indicate the width of tiles divided equally, and encoding / decoding of the information is not performed when the information is less than the minimum division condition. `tile_width_minus1` can indicate the height of tiles divided equally, and encoding / decoding of the information is not performed when the information is less than the minimum division condition. `tile_rows_height_minus1` can indicate the width of tiles divided unequally, and encoding / decoding of the information is not performed when the information is less than the minimum division condition. `tile_cols_width_minus1` can indicate the height of tiles divided unequally, and encoding / decoding of the information is not performed when the information is less than the minimum division condition.

[0244] The condition that bricks can be divided equally can be defined as a tile of size (the smallest unit of bricks) * n or larger. n can be a positive number greater than two.

[0245] For example, `tile_height_minus1` can indicate the width of tiles divided equally, and encoding / decoding of the information is not performed when the information is less than the minimum division condition. `tile_width_minus1` can indicate the height of tiles divided equally, and encoding / decoding of the information is not performed when the information is less than the minimum division condition. `tile_rows_height_minus1` can indicate the width of tiles divided unequally, and encoding / decoding of the information is not performed when the information is less than the minimum division condition. `tile_cols_width_minus1` can indicate the height of tiles divided unequally, and encoding / decoding of the information is not performed when the information is less than the minimum division condition.

[0246] Using the information sent for tile division, information about the number of tiles in the image used to divide each tile into bricks (or slices) can be implicitly obtained, and the separate information about the number can be omitted.

[0247] Here, information about the image's width and height, as well as CTB size information, can be sent using the same parameter set as for bricks (or slices). For example, information about the image's width and height, as well as CTB size information, can be sent in PPS in the same manner as for brick information (or slices). However, this disclosure is not limited to this, and information can be sent at higher levels than PPS (e.g., decoding parameter sets, video parameter sets). Alternatively, information about the image's width and height, CTB size information, etc., can be sent at two or more higher levels.

[0248] The number of tiles belonging to an image can be determined using at least one of the following: information used for tile division, information about the image's width and height, and CTB size information, as shown below. Alternatively, the number of tiles belonging to an image can be determined using the unit information of the sub-images mentioned above.

[0249] NumTilesInPic can refer to the number of tiles belonging to the image.

[0250] NumTilesInPic = (uniform_tile_spacing_flag = 0?)? (num_tile_row_minus1+1) * (num_tile_columns_minus1+1) : Ceil((image width / CTB size) / (tile_columns_width_minus1+1))*Ceil((image height / CTB size) / (tile_rows_height_minus1+1)).

[0251] The number of tiles obtained can be used to encode / decode information about whether to perform brick (or slice) division for each tile.

[0252] In the above implementation, the CTB size is a predefined CTB size in the encoding / decoding device. Any of the minimum or maximum CTB size allowed in the encoding / decoding device, a fixed value, or the size information for signaling can be used instead.

[0253] Alternatively, tile division information can be signaled based on the total number of tiles belonging to the image. The total number of tiles can be one, two, or more, and when the total number is two or more, the information about the total number can be signaled as the value obtained by subtracting 2 from the total number. In this case, the information about the total number can be signaled by the number of widths and the number of heights into which the image is divided.

[0254] When performing slice division on the current image as shown in [D1-4], if all individual bricks are treated as slices, the slice division information can be encoded / decoded in PPS as shown in Table 24.

[0255] Table 24

[0256]

[0257] For example, as in [D1-4], when several bricks are considered as slices when performing slice division on the current image, the slice division information can be encoded / decoded in PPS, as shown in Table 25. Here, slices can be configured in rectangular shapes.

[0258] Table 25

[0259]

[0260] Here, `num_slices_in_pic_minus1` can indicate the number of slices in the image. `bottom_right_brick_idx_length_minus1` can refer to the number of bricks in the image. `bottom_right_brick_idx_delta` can indicate the index difference between the bottom right brick in the current slice and the bottom right brick in the previous slice. The index can refer to the scan order of the bricks. `brick_idx_delta_sign_flag` can refer to the sign of `bottom_right_brick_idx_delta`. In the case of the first and last slices, as shown in Table 25, encoding / decoding of the sign of `bottom_right_brick_idx` can be omitted. The sign of `bottom_right_brick_idx` for the first and last slices can always be positive or always negative. As in [D1-4], when all tiles are treated as slices when performing slice division on the current image, slice division information can be encoded / decoded in PPS, as shown in Table 26.

[0261] Table 26

[0262]

[0263] For example, as in [D1-4], when multiple tiles are treated as slices during slicing of the current image, the slice segmentation information can be encoded / decoded in PPS, as shown in Table 27. Here, slices can have rectangular shapes.

[0264] Table 27

[0265]

[0266] Here, `num_slices_in_pic_minus1` can indicate the number of slices in the image. `bottom_right_tile_idx_length_minus1` can indicate the number of tiles in the image. `bottom_right_tile_idx_delta` can refer to the index difference between the bottom-right tile in the current slice and the bottom-right tile in the previous slice. The index can refer to the scan order of the tiles. However, the bottom-right tile is only an example, and the index of the top-left tile, which includes the first CTB of the slice, can be used. `tile_idx_delta_sign_flag` can refer to the sign of `bottom_right_tile_idx_delta`. The position of the current slice can be specified based on at least one of the index of the bottom-right tile in the previous slice, `bottom_right_tile_idx_delta`, or `tile_idx_delta_sign_flag`. However, the sign of `bottom_right_tile_idx` can be left unencoded / decoded for the first and last slices in the image, as shown in Table 28. The sign of bottom_right_tile_idx for the first and last slices can always be positive or always negative.

[0267] Table 28

[0268]

[0269] When performing tile division on the current image as shown in [D1-4], the tile division information can be encoded / decoded from the tiles in PPS, as shown in Table 29.

[0270] Table 29

[0271]

[0272] When performing slice division, a single slice can include multiple tiles, and one or more slices can be configured within a single tile. Here, `rect_slice_flag` can indicate whether the slice structure is divided into rectangular shapes. For example, when `rect_slice_flag` is 1, this can refer to configuring the slice in rectangular mode, and when `rect_slice_flag` is 0, this can refer to configuring the slice in raster scan mode. Figure 7 (a) shows the case where the slices are configured in rectangular mode, and Figure 7 (b) shows an example when slicing is configured in raster scan mode.

[0273] Here, `single_slice_per_subpic_flag` indicates whether each subpicture consists of only one slice. For example, when `single_slice_per_subpic_flag` is 1, each subpicture can consist of only one slice, and when `single_slice_per_subpic_flag` is 0, each subpicture can consist of one or more slices. Here, a slice can refer to a rectangular slice. That is, `single_slice_per_subpic_flag` can be signaled only when `rect_slice_flag` is 1.

[0274] When a sub-image consists of only one slice, the slice size is determined based on the sub-image size information, and the information used for slice division can be encoded / decoded without separation. On the other hand, when a sub-image is divided into multiple slices, the slice division information can be encoded / decoded.

[0275] Specifically, num_slices_in_pic_minus1 can indicate the number of slices belonging to a picture.

[0276] `tile_idx_delta_present_flag` indicates whether `tile_idx_delta` exists. `tile_idx_delta` indicates the difference between the index of the tile containing the top-left CTB in the next slice (slice i+1) and the index of the tile containing the top-left CTB in the current slice (slice i). For example, when `tile_idx_delta_present_flag` is 0, `tile_idx_delta` does not exist, and in this case, the image can be divided into slices in a rectangular pattern according to the raster scan order. On the other hand, when `tile_idx_delta_present_flag` is 1, `tile_idx_delta` exists, and in this case, the positions of all slices belonging to the rectangular pattern of the image can be specified by `tile_idx_delta`.

[0277] The encoding / decoding of syntax can be omitted depending on the number of slices that make up the image. For example, when an image is divided into n slices, the encoding / decoding of tile_idx_delta for the nth slice can be omitted. In other words, information indicating the difference between the index of the top-left tile in the last slice and the index of the top-left tile in the last previously last slice can be obtained without transmitting it separately.

[0278] Alternatively, the `tile_idx_delta_present_flag` can be encoded / decoded only if the syntax indicating the number of slices, `num_slices_in_pic_minus1`, is greater than 1. The corresponding syntax structure can be expressed as shown in Table 30. In other words, the `tile_idx_delta_present_flag` can only be encoded / decoded if the number of slices constituting the image is greater than or equal to a predetermined threshold number (e.g., 3).

[0279] Table 30

[0280]

[0281] In Table 29, slice_width_in_tiles_minus1[i] indicates the width of the i-th slice. In this case, the sent slice width information can indicate the number of tile columns belonging to the i-th slice. slice_height_in_tiles_minus1[i] indicates the height of the i-th slice. In this case, the sent slice height information can indicate the number of tile rows belonging to the i-th slice. On the other hand, when the size of the current slice is determined to be equal to one tile based on slice_width_in_tiles_minus1 and slice_height_in_tiles_minus1, that is, when both slice_width_in_tiles_minus1 and slice_height_in_tiles_minus1 are 0, the information used to divide a tile into one or more slices can be encoded / decoded.

[0282] For example, `num_slices_in_tile_minus1[i]` can indicate the number of slices that make up a tile. The number of slices that make up a tile can be derived as the value obtained by adding 1 to the value of `num_slices_in_tile_minus1[i]`. However, this disclosure is not limited to this, and `num_slices_in_tile[i]` can be encoded / decoded. In this case, the number of slices that make up a tile can be derived as the value of `num_slices_in_tile[i]`. `slice_height_in_ctu_minus1[i++]` can indicate the height of each slice. In this case, the transmitted slice height information can indicate the number of CTU rows belonging to the slice.

[0283] For example, in [D1-4], when performing slice division on the current image, some slice division information can be sent more efficiently when encoding / decoding multiple slice division information of a single tile.

[0284] As shown in Tables 31 and 32, when a tile is divided into one or more slices, the number of slices to be divided can be sent explicitly.

[0285] Table 31

[0286]

[0287] Table 32

[0288]

[0289] For example, `num_exp_slices_in_tile_minus1[i]` can indicate the number of slices until the slice is divided into equal parts based on a top-down direction. Alternatively, `num_exp_slices_in_tile_minus1[i]` can indicate the number of slices until the slice is divided into equal parts based on a bottom-up direction. `slice_height_in_ctu_minus1[i++]` can indicate the height of each slice. In this case, the slice height information sent can indicate the number of CTU rows belonging to the slice. For example, `num_exp_slices_in_tile[i]` can indicate the number of slices until the slice is divided into equal parts based on a top-down direction. `num_exp_slices_in_tile[i]` can indicate the number of slices until the slice is divided into equal parts based on a bottom-up direction. `slice_height_in_ctu_minus1[i++]` can indicate the height of each slice. In this case, the slice height information sent can indicate the number of CTU rows belonging to the slice.

[0290] When performing slice division on the current image as shown in [D1-4], some slice division information can be obtained without separate transmission when encoding / decoding multiple slice division information of a single tile.

[0291] When a tile is divided into one or more slices, a tile can be a slice if the tile height is 1 in CTU units.

[0292] As shown in Table 33, when the height of a tile is 1, the corresponding tile can be configured as a slice without the need for separate transmission of segmentation information.

[0293] Table 33

[0294]

[0295] Here, `tileY` can be defined as `(SliceTopLeftTileIdx[i] / NumTileColumns)`. In other words, `tileY` (the Y-coordinate of the slice in the tile = the row number of the slice in the tile) can be a quotient obtained by dividing the index of the current tile by the number of tile widths or the number of tile rows. `RowheightVAL[tileY]` can refer to the height relative to the position of the tile determined by `tileY`. The information indicating the number of slices constituting a tile (`num_slices_in_tile_minus1`) and the information indicating the height of each slice (`slice_height_in_ctu_minus1`) can only be encoded / decoded if `RowheightVAL[tileY]` is not 1 or if `RowheightVAL[tileY]` is greater than 1. Other partitioning information has been described in detail with reference to Table 29, and its repeated description will be omitted. When a tile is divided into one or more slices, the encoding / decoding of information indicating the height of each slice can be optionally performed based on at least one of information indicating the number of slices that make up a tile or information about the height of the corresponding tile.

[0296] For example, as shown in Table 34 or Table 35, when a tile is divided into one or more slices and the height information of the tile is the same as the information indicating the number of slices that make up a tile, the information indicating the height of the slices may not need to be encoded / decoded.

[0297] Here, the height information of the tile can be defined as (RowheightVAL[tileY]-1). tileY can be the quotient of the value obtained by dividing the index of the current tile by the number of tile widths or the number of tile rows, and RowheightVAL[tileY] can refer to the height relative to the position of the tile determined by tileY.

[0298] Table 34

[0299]

[0300] Table 35

[0301]

[0302] The aforementioned advanced image segmentation information can be used to segment the current image, and the current image can be encoded / decoded by performing prediction and transformation on a predetermined block basis. Of course, this series of processes can be performed by the encoding / decoding apparatus described later.

[0303] Figure 8 This is a block diagram illustrating the configuration of a video encoding apparatus according to an embodiment of the present disclosure.

[0304] The video encoding apparatus according to the embodiments may include an image segmentation unit (not shown), an inter-frame prediction unit 120, an intra-frame prediction unit 125, a subtractor 130, a transform unit 140, a quantization unit 150, an entropy coding unit 160, an inverse transform unit 145, an inverse quantization unit 155, an adder 135, a bidirectional filter unit 180, an in-loop filter unit 180, and a reconstructed image buffer 190.

[0305] Image segmentation units can divide an image into the aforementioned predetermined units and divide them hierarchically, and encode the segmentation information of each predetermined unit.

[0306] The inter-frame prediction unit 120 generates a prediction signal by performing motion prediction using the input image 110 and the reconstructed image stored in the reconstructed image buffer 190.

[0307] Intra-frame prediction unit 125 generates a prediction signal by performing spatial prediction using the pixel values ​​of pre-reconstructed neighboring blocks that are spatially adjacent to the current block to be encoded.

[0308] Subtractor 130 generates a residual signal by using the input image and the prediction signal generated by inter-frame prediction unit 120 or intra-frame prediction unit 125.

[0309] Transformation unit 140 and quantization unit 150 perform transformation and quantization on the residual signal generated by subtractor 130 to generate quantization coefficients.

[0310] The entropy coding unit 160 outputs a bitstream by performing entropy coding on coding information such as syntax elements and quantization coefficients defined in the video compression standard.

[0311] The inverse transform unit 145 and the inverse quantization unit 155 receive quantization coefficients, perform inverse quantization and inverse transform in sequence, and generate the reconstructed residual signal.

[0312] Adder 135 generates a reconstructed signal by using the prediction signal generated by inter-frame prediction unit 120 or intra-frame prediction unit 125 and the reconstructed residual signal.

[0313] The reconstructed signal is sent to the in-loop filter unit 180 and applied to one or more in-loop filters such as a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) to generate the final reconstructed image, and the reconstructed signal is stored in the reconstructed image buffer 190.

[0314] The reconstructed image stored in the reconstructed image buffer 190 can be used as a reference image in the inter-frame prediction unit 120.

[0315] Figure 9 This is a block diagram illustrating the configuration of a video decoding apparatus according to an embodiment of the present disclosure.

[0316] The video decoding apparatus according to the embodiments may include an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an intra-frame prediction unit 240, an inter-frame prediction unit 250, an adder 260, a bidirectional filter unit 270, an in-loop filter unit 280, and a reconstructed image buffer 290.

[0317] Entropy decoding unit 210 decodes the input bitstream 200 and outputs decoding information such as syntax elements and quantization coefficients. Here, the decoding information may include partitioning information for each of the aforementioned predetermined units, and the partitioning information can be used to divide the current image into the aforementioned predetermined units.

[0318] The inverse quantization unit 220 and the inverse transform unit 230 receive quantization coefficients, sequentially perform inverse quantization and inverse transform, and output residual signals.

[0319] Intra-frame prediction unit 240 generates a prediction signal by performing spatial prediction using the pixel values ​​of pre-decoded neighboring blocks adjacent to the current block to be decoded.

[0320] The inter-frame prediction unit 250 generates a prediction signal by performing motion compensation using motion vectors extracted from the bitstream and the reconstructed image stored in the reconstructed image buffer 280.

[0321] Adder 260 generates a reconstructed signal by using the prediction signal generated by intra-frame prediction unit 240 or inter-frame prediction unit 250 and the reconstructed residual signal.

[0322] The bidirectional filter unit 270 generates a filtered signal by performing bidirectional filtering on the reconstructed signal generated by the adder 260.

[0323] The reconstructed signal is sent to the in-loop filter unit 270 and applied to one or more in-loop filters such as a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) to generate the final reconstructed image, and the reconstructed signal is stored in the reconstructed image buffer 280.

[0324] The reconstructed image stored in the reconstructed image buffer 280 can be used as a reference image in the inter-frame prediction unit 250.

[0325] As can be seen from the above, this disclosure involves the following technical solutions:

[0326] 1. An image decoding method, comprising:

[0327] Decode the segmentation information of the current image from the bitstream; and

[0328] The current image is divided into at least one unit among sub-images, slices, or tiles by using the decoded segmentation information.

[0329] The partitioning information includes at least one of sub-image partitioning information, slice partitioning information, or tile partitioning information.

[0330] 2. The method according to 1, wherein decoding the sub-image segmentation information includes:

[0331] Obtain a first flag indicating whether the current image consists of only one sub-image; and

[0332] Based on the first flag, obtain at least one of information indicating the number of sub-images constituting the current image or a second flag indicating whether the sub-images are equally divided.

[0333] 3. According to the method described in 2, decoding the sub-image segmentation information further includes:

[0334] Based on at least one of information indicating the number of sub-images or a second flag indicating whether the sub-images are equally divided, information indicating the size of each sub-image constituting the current image is obtained.

[0335] The information indicating the size of each sub-image is encoded in units of a predefined Coding Tree Block (CTB) in the decoding device.

[0336] 4. The method according to 1, wherein the sub-image segmentation information is obtained from the sequence parameter set (SPS).

[0337] 5. The method according to 1, wherein decoding the tile division information includes:

[0338] Obtain a third flag indicating whether to perform segmentation on the current image, wherein when the value of the third flag is 1, no segmentation is performed on the current image, and when the value of the third flag is 0, the current image is divided into multiple tiles or multiple slices;

[0339] Based on the third flag, information is obtained regarding the number of row widths of the tiles constituting the current image and the number of column heights of the tiles constituting the current image; and

[0340] Based on the obtained information, information indicating the width and height of each tile is obtained.

[0341] 6. The method according to 5, wherein the tile division information is obtained from the picture parameter set (PPS).

[0342] 7. The method according to 1, wherein decoding the slice division information includes:

[0343] The fourth indicator is used to determine whether the slice is divided into rectangular or raster scan modes.

[0344] Based on the fourth flag, information indicating the number of slices belonging to the current image is obtained; and

[0345] Based on the information indicating the number of slices, information indicating the width and height of each slice is obtained.

[0346] 8. The method according to 7, wherein decoding the slice division information further includes:

[0347] Obtain information indicating the difference between the index of the tile that includes the top-left CTB in the next slice and the index of the tile that includes the top-left CTB in the current slice.

[0348] The location of the slice is specified based on information indicating the difference.

[0349] 9. The method according to 8, wherein the information indicating the difference is decoded only for some of the multiple slices constituting the current image.

[0350] 10. The method according to 8, wherein the information indicating the difference is decoded based on a fourth flag indicating the presence of information indicating the difference.

[0351] Specifically, the fourth flag is decoded only when the number of slices constituting the current image is greater than or equal to a predetermined threshold number.

[0352] 11. The method according to 7, wherein decoding the slice division information further includes:

[0353] Obtain information indicating the number of slices belonging to a tile.

[0354] The information indicating the number of slices belonging to a tile is derived from at least one of information indicating the width and height of the slice or information about the height of the tile, and is adaptively decoded.

[0355] 12. An image coding method, comprising:

[0356] Divide the current image into at least one of the following units: sub-image, slice, or tile; and

[0357] The segmentation information used for segmenting the current image is encoded.

[0358] The partitioning information includes at least one of sub-image partitioning information, slice partitioning information, or tile partitioning information.

[0359] 13. A computer-readable recording medium for storing a bitstream encoded by an image encoding method, the image encoding method comprising:

[0360] Divide the current image into at least one of the following units: sub-image, slice, or tile; and

[0361] The segmentation information used for segmenting the current image is encoded.

[0362] The partitioning information includes at least one of sub-image partitioning information, slice partitioning information, or tile partitioning information.

[0363] Industrial applicability

[0364] This disclosure can be used to encode / decode video signals.

Claims

1. An image decoding method, comprising: Decode the segmentation information of the current image from the bitstream; as well as The current image is divided into at least one slice using the decoded segmentation information. The partitioning information includes slice partitioning information. Decoding the slice division information includes: The fifth indicator is used to determine whether the slice is divided into rectangular or raster scan modes. Based on the fifth flag, information indicating the number of slices belonging to the current image is obtained; and Based on the information indicating the number of slices belonging to the current image, information indicating the width and height of each slice is obtained. Specifically, in response to the height of the [SliceTopLeftTileIdx[i] / NumTileColumns] tile row being greater than 1, information indicating the height of each slice within a tile composed of multiple slices is adaptively decoded based on information indicating the width and height of each slice. Where SliceTopLeftTileIdx[i] represents the tile index of the i-th slice, and NumTileColumns represents the number of tile columns. The bitstream includes sub-image segmentation information, which includes sub-image width information indicating the width of a sub-image and sub-image height information indicating the height of a sub-image.

2. The method according to claim 1, in, The segmentation information also includes sub-image segmentation information, and Decoding the sub-image segmentation information includes: Obtain a first flag indicating whether the current image consists of only one sub-image; and Based on the first flag, obtain at least one of information indicating the number of sub-images constituting the current image or a second flag indicating whether the sub-images are equally divided.

3. The method according to claim 2, wherein, Decoding the sub-image segmentation information further includes: Based on at least one of information indicating the number of sub-images or a second flag indicating whether the sub-images are equally divided, information indicating the size of each sub-image constituting the current image is obtained. The information indicating the size of each sub-image is encoded in units of a predefined Coding Tree Block (CTB) in the decoding device.

4. The method according to claim 1, in, The segmentation information also includes sub-image segmentation information, and The sub-image segmentation information is obtained from the Sequence Parameter Set (SPS), and The sub-image is composed of multiple coded tree blocks (CTBs).

5. The method according to claim 1, in, The partitioning information includes tile partitioning information, and Decoding the tile division information includes: Obtain a third flag indicating whether to perform segmentation on the current image, wherein when the value of the third flag is 1, no segmentation is performed on the current image, and when the value of the third flag is 0, the current image is divided into multiple tiles or multiple slices; Based on the third flag, information is obtained regarding the number of row widths of the tiles constituting the current image and the number of column heights of the tiles constituting the current image; and Based on the obtained information, information indicating the width and height of each tile is obtained.

6. The method according to claim 5, wherein, The tile segmentation information is obtained from the image parameter set (PPS).

7. The method according to claim 1, wherein, Decoding the slice division information further includes: Obtain information indicating the difference between the index of the tile that includes the top-left CTB in the next slice and the index of the tile that includes the top-left CTB in the current slice. The tile index is determined based on information indicating the difference, and The location of the slice is specified based on the tile index.

8. The method according to claim 7, wherein, The information indicating the difference is decoded only for some of the multiple slices that make up the current image.

9. The method according to claim 7, wherein, The information indicating the difference is decoded based on the presence of a fourth flag indicating whether the information indicating the difference exists. Specifically, the fourth flag is decoded only when the number of slices constituting the current image is greater than or equal to a predetermined threshold number.

10. An image encoding method, comprising: Divide the current image into at least one slice; as well as The segmentation information used for segmenting the current image is encoded. The partitioning information includes slice partitioning information. Specifically, the fifth flag indicating whether the slice is divided in a rectangular or raster scan mode is encoded. Specifically, based on whether the slices are divided using the rectangular pattern or the raster scan pattern, information indicating the number of slices belonging to the current image is encoded. Specifically, based on the number of slices belonging to the current image, information indicating the width and height of each slice is encoded. Specifically, in response to the height of the [SliceTopLeftTileIdx[i] / NumTileColumns] tile row being greater than 1, information indicating the height of each slice within a tile composed of multiple slices is adaptively encoded based on the width and height of each slice. Where SliceTopLeftTileIdx[i] represents the tile index of the i-th slice, and NumTileColumns represents the number of tile columns. The bitstream includes sub-image segmentation information, which includes sub-image width information indicating the width of a sub-image and sub-image height information indicating the height of a sub-image.

11. A method for transmitting a bit stream generated by an encoding method, the encoding method comprising: Divide the current image into at least one slice; The partitioning information used for partitioning the current image is encoded into the bit stream; as well as Send the bit stream, The partitioning information includes slice partitioning information. Specifically, the fifth flag indicating whether the slice is divided in a rectangular or raster scan mode is encoded. Specifically, based on whether the slices are divided using the rectangular pattern or the raster scan pattern, information indicating the number of slices belonging to the current image is encoded. Specifically, based on the number of slices belonging to the current image, information indicating the width and height of each slice is encoded. Specifically, in response to the height of the [SliceTopLeftTileIdx[i] / NumTileColumns] tile row being greater than 1, information indicating the height of each slice within a tile composed of multiple slices is adaptively encoded based on the width and height of each slice. Where SliceTopLeftTileIdx[i] represents the tile index of the i-th slice, and NumTileColumns represents the number of tile columns. The bitstream includes sub-image segmentation information, which includes sub-image width information indicating the width of a sub-image and sub-image height information indicating the height of a sub-image.