Image encoding / decoding method and device
By partitioning the video picture into stripes and parallel blocks, and generating a bitstream containing the number and height information of stripes, the problem of low compression efficiency of high-resolution video images is solved, achieving higher encoding efficiency and cost reduction.
Patent Information
- Application Number
- CN202080090254.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-12-21
- Filing Date
- 2020-12-23
- Publication Date
- 2025-04-11
- Estimated Expiration
- 2040-12-23
AI Technical Summary
The prior art is difficult to effectively compress high-resolution and high-quality video images, resulting in increased data transmission and storage costs.
By partitioning the current picture into stripes and partitioning parallel blocks into pieces, a bit stream containing the number and height information of stripes is generated to improve the compression efficiency of video encoding.
It realizes higher video encoding and compression efficiency, reducing the cost of data transmission and storage.
Smart Images

Figure CN114930814B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a video encoding / decoding method and device. More specifically, the present disclosure relates to a video encoding / decoding method and device using slices, tiles, and blocks in a current picture, and to a recording medium for storing a bit stream generated by the video encoding / decoding method or device of the present disclosure. Background Art
[0002] Recently, in various application fields, the demand for high-resolution and high-quality images such as high-definition (HD) images and ultra-high-definition (UHD) images has increased. Compared with conventional image data, image data with higher resolution and higher quality increases the data volume. Therefore, when image data is transmitted by using a medium such as a conventional wired broadband network and a conventional wireless broadband network, or when image data is stored by using a conventional storage medium, the cost of transmission and storage increases. In order to solve these problems of high-resolution and high-quality image data, efficient image encoding / decoding technology is required. Summary of the invention
[0003] Technical issues
[0004] The present disclosure aims to provide a video encoding / decoding method and apparatus with enhanced compression efficiency.
[0005] In addition, the present disclosure aims to provide a video encoding / decoding method and device for partitioning a current picture into slices.
[0006] In addition, the present disclosure aims to provide a video encoding / decoding method and device for partitioning a parallel block in a current picture into partitions.
[0007] In addition, the present disclosure is intended to provide a video encoding / decoding method and apparatus for partitioning a slice into tile blocks.
[0008] In addition, the present disclosure is intended to provide a video encoding / decoding method and apparatus for partitioning a tile into slices.
[0009] In addition, the present disclosure is intended to provide a recording medium for storing a bit stream generated by the video encoding / decoding method or apparatus of the present disclosure.
[0010] Technical Solution
[0011] According to the present disclosure, a video encoding method can be provided, comprising: when a current picture is composed of multiple parallel blocks and a current parallel block among the multiple parallel blocks is partitioned into multiple slices, generating information about the number of slices in the parallel block indicating the number of the multiple slices included in the current parallel block; generating information about the height of the slice in the parallel block indicating the height of the multiple slices included in the current parallel block; and generating a bit stream including the information about the number of slices in the parallel block and the information about the height of the slice in the parallel block.
[0012] For a last slice among the plurality of slices included in the current tile, information about a slice height in the tile may not be generated.
[0013] The method may further include generating rectangular slice information indicating whether one or more slices included in the current picture are rectangular, and when the one or more slices are rectangular, encoding the information about the number of slices in the tile and the information about the slice height in the tile.
[0014] The method may further include generating single slice information indicating whether only one slice is included in the current picture, and when a plurality of slices are included in the current picture, encoding the information about the number of slices in the tile and the information about the slice height in the tile.
[0015] When a plurality of slices are included in the current picture, generating information about the number of slices in a picture indicating the number of the plurality of slices in the current picture may further be included.
[0016] The method may further include generating slice size information indicating a size of a current slice in units of tiles among a plurality of slices included in the current picture, and when the size of the current slice is less than or equal to the size of the current tile, generating the information about the number of slices in the tile.
[0017] The method may further include generating information about the number of slice heights in a tile indicating the number of types of the plurality of slice heights included in the current tile.
[0018] The method may further include generating single parallel block information indicating whether a plurality of parallel blocks are included in the current picture. When the plurality of parallel blocks are included in the current picture, the method may further include generating parallel block height information indicating the height of the plurality of parallel blocks and parallel block width information indicating the width of the plurality of parallel blocks.
[0019] Tile width information for a width of a right boundary tile existing on a right boundary of the current picture among the plurality of tiles may not be generated.
[0020] Tile height information for a line height of a bottom boundary tile existing on a bottom boundary of the current picture among the plurality of tiles may not be generated.
[0021] The information about the slice height in the tile may be generated only for a first slice among a plurality of consecutive slices including a last slice of the tile and having the same height.
[0022] A video decoding method may be provided, comprising: when a current picture is composed of a plurality of parallel blocks and a current parallel block among the plurality of parallel blocks is partitioned into a plurality of slices, decoding information about the number of slices in the parallel block indicating the number of the plurality of slices included in the current parallel block; decoding information about the height of the slices in the parallel block indicating the height of the plurality of slices included in the current parallel block; and determining the number of the plurality of slices included in the current parallel block and the height of the plurality of slices included in the current parallel block.
[0023] The heights of the plurality of slices indicated by the information about the slice heights in the tile are in a CTU (coding tree unit) or in a CTB (coding tree block).
[0024] The last slice may be inferred using a height of the current tile and heights of remaining slices except for a last slice among the plurality of slices included in the current tile.
[0025] The method may further include decoding rectangular slice information indicating whether one or more slices included in the current picture are rectangular, and when the one or more slices are rectangular, decoding the information about the number of slices in the tile and the information about the height of the slice in the tile.
[0026] The method may further include decoding single slice information indicating whether only one slice is included in the current picture, and when a plurality of slices are included in the current picture, decoding the information about the number of slices in the tile and the information about the slice height in the tile.
[0027] When a plurality of slices are included in the current picture, decoding information about the number of slices in a picture indicating the number of the plurality of slices of the current picture may further be included.
[0028] The method may further include decoding slice size information indicating a size of a current slice in units of tile blocks among the multiple slices included in the current picture, and when the size of the current slice is less than or equal to the size of the current tile block, decoding the information about the number of slices in the tile block.
[0029] The method may further include decoding information about the number of slice heights in a tile indicating the number of types of the plurality of slice heights included in the current tile.
[0030] The method may further include decoding single parallel block information indicating whether a plurality of parallel blocks are included in the current picture. When the plurality of parallel blocks are included in the current picture, the method may further include decoding parallel block height information indicating the height of the plurality of parallel blocks and parallel block width information indicating the width of the plurality of parallel blocks.
[0031] The width of the right boundary tile can be inferred using the width of the current picture and the widths of the remaining tiles on the same row as the right boundary tile, wherein the right boundary tile is a tile among the multiple tiles that exists on the right boundary of the current picture.
[0032] The row height of the bottom boundary tile may be inferred using the height of the current picture and the heights of the remaining tiles on the same column as the bottom boundary tile, wherein the bottom boundary tile is a tile among the plurality of tiles that is located on the bottom boundary of the current picture.
[0033] The information about the slice height in the tile may be decoded only for a first slice among a plurality of consecutive slices including a last slice of the tile and having the same height.
[0034] A computer-readable recording medium for storing a bit stream including video encoding data decoded according to a video decoding method may be provided. The video decoding method may include: when a current picture is composed of a plurality of parallel blocks and a current parallel block among the plurality of parallel blocks is partitioned into a plurality of slices, decoding information about the number of slices in a parallel block indicating the number of the plurality of slices included in the current parallel block; decoding information about the height of the slices in the parallel block indicating the height of the plurality of slices included in the current parallel block; and determining the number of the plurality of slices included in the current parallel block and the height of the plurality of slices included in the current parallel block.
[0035] Beneficial Effects
[0036] According to the present disclosure, a video encoding / decoding method and apparatus with enhanced compression efficiency may be provided.
[0037] In addition, according to the present disclosure, a video encoding / decoding method and apparatus for partitioning a current picture into slices may be provided.
[0038] In addition, according to the present disclosure, a video encoding / decoding method and apparatus for partitioning a tile in a current picture into partitions may be provided.
[0039] In addition, according to the present disclosure, a video encoding / decoding method and apparatus for partitioning a slice into tiles may be provided.
[0040] In addition, according to the present disclosure, a video encoding / decoding method and apparatus for partitioning a tile into slices may be provided. BRIEF DESCRIPTION OF THE DRAWINGS
[0041] Figure 1 is a block diagram showing the configuration of an encoding device according to an embodiment of the present disclosure.
[0042] Figure 2 is a block diagram showing a configuration of a decoding device according to an embodiment of the present disclosure.
[0043] Figure 3 The partition structure of an image when encoding and decoding the image is schematically shown.
[0044] Figure 4a Shows the form of prediction units that can be included in a coding unit.
[0045] Figure 4b Describes vertically / horizontally partitioned binary trees and vertically / horizontally partitioned ternary trees.
[0046] Figure 5 Shows the form of transformation units that a coding unit may include.
[0047] Figure 6 Slices, tiles, and CTUs (Coding Tree Units) constituting a picture according to an embodiment of the present disclosure are described.
[0048] Figure 7 Slices, tiles, and CTUs constituting a picture according to another embodiment of the present disclosure are described.
[0049] Figure 8 Slices, tiles, and CTUs constituting a picture according to another embodiment of the present disclosure are described.
[0050] Fig. 9 Slices, tiles, and CTUs constituting a picture according to another embodiment of the present disclosure are described.
[0051] Fig.10 Describes the signaling of the PPS according to an embodiment of the present disclosure. Fig. 9Method (syntax) for displaying screen partition information.
[0052] Fig.11 Describe the embodiments of the present invention according to Fig.10 The signal conveys the partitioning of the parallel blocks in the picture.
[0053] Fig.12 A method (Syntax) of signaling partition information of a partition through a PPS according to an embodiment of the present disclosure is described.
[0054] Fig.13 Describe the embodiments according to the present disclosure Fig.10 and Fig.12 Partitioning of signal transmission into multiple parallel blocks and / or sub-blocks.
[0055] Fig.14 A method (syntax) of signaling partition information of a slice through a PPS according to an embodiment of the present disclosure is described.
[0056] Fig.15 The block consisting of 15 rectangular strips in the current picture according to an embodiment of the present disclosure is described.
[0057] Fig.16 Tiles constituting a screen according to an embodiment of the present disclosure are described.
[0058] Fig.17 A method (syntax) of signaling tile information in a picture through a PPS according to an embodiment of the present disclosure is described.
[0059] Fig.18 A method (syntax) of signaling width information of tile columns in a picture according to an embodiment of the present disclosure is described.
[0060] Fig.19 A method (syntax) of signaling height information of tile lines in a picture according to an embodiment of the present disclosure is described.
[0061] Fig. 20 Slices and tiles constituting a picture according to an embodiment of the present disclosure are described.
[0062] Fig.21 A method (syntax) of signaling slice information in a picture and a tile according to an embodiment of the present disclosure is described.
[0063] Fig. 22 Slices constituting a tile according to an embodiment of the present disclosure are described.
[0064] Fig.23 A method (syntax) of signaling slice information in a picture and a tile according to another embodiment of the present disclosure is described.
[0065] Fig.24 A method (syntax) of signaling slice information in a picture and a tile according to still another embodiment of the present disclosure is described.
[0066] Fig.25 A method of decoding a video according to an embodiment of the present disclosure is described.
[0067] Fig.26 A method of encoding a video according to an embodiment of the present disclosure is described. DETAILED DESCRIPTION
[0068] Various modifications may be made to the present disclosure, and there are various embodiments of the present disclosure, examples of which will now be provided and described in detail with reference to the accompanying drawings. However, the present disclosure is not limited thereto, but the exemplary embodiments may be interpreted as including all modifications, equivalents or substitutes in the technical concept and technical scope of the present disclosure. In the accompanying drawings, similar reference numerals represent the same or similar functions in various aspects. In the accompanying drawings, the shapes and sizes of the elements may be exaggerated for clarity. In the following detailed description of the present disclosure, reference is made to the accompanying drawings, which illustrate specific embodiments in which the present invention can be practiced by way of illustration. These embodiments are described in sufficient detail to enable those skilled in the art to implement the present disclosure. It should be understood that the various embodiments of the present disclosure, although different, do not necessarily exclude each other. For example, without departing from the spirit and scope of the present disclosure, the specific shapes, structures and characteristics described herein in conjunction with one embodiment may be implemented in other embodiments. In addition, it should be understood that the position or arrangement of each element in each disclosed embodiment may be modified without departing from the spirit and scope of the embodiments. Therefore, the following detailed description should not be regarded as having a limiting meaning, and the scope of the exemplary embodiments is limited only by the appended claims properly interpreted and the full range of equivalents claimed by the claims.
[0069] The terms "first", "second", etc. used in the present disclosure may be used to describe various components, but these components should not be construed as being limited to these terms. These terms are only used to distinguish one component from other components. For example, without departing from the scope of the present disclosure, a "first" component may be referred to as a "second" component, and a "second" component may also be similarly referred to as a "first" component. The term "and / or" includes a combination of multiple related items or any one of multiple related terms.
[0070] When an element is simply referred to as being "connected to" or "coupled to" another element in this specification, it should be understood that the former element is directly connected to or directly coupled to the latter element, or the former element is connected to or coupled to the latter element with another element interposed therebetween. Conversely, when an element is referred to as being "directly coupled to" or "directly connected to" another element, it should be understood that there are no intervening elements therebetween.
[0071] In addition, the components shown in the embodiments of the present disclosure are shown independently to represent different characteristic functions from each other. Therefore, this does not mean that each component is constructed in a separate hardware or software component unit. In other words, for better understanding and ease of description, each component includes each of the listed components. Therefore, at least two components of each component can be combined to form a component, or a component can be divided into multiple components to perform each function. Without departing from the essence of the present disclosure, the embodiment of combining each component and another embodiment of dividing a component are also included in the scope of the present disclosure.
[0072] The terms used in the present disclosure are only used to describe specific embodiments and are not intended to limit the present disclosure. Unless the context clearly states otherwise, singular expressions cover plural expressions. In the present disclosure, it should be understood that terms such as "including", "having" are intended to indicate the existence of a combination of features, numbers, steps, actions, elements, parts or features, numbers, steps, actions, elements and parts disclosed in the specification, but are not intended to exclude the possibility of the existence or addition of one or more other features, numbers, steps, actions, elements, parts or other features, numbers, steps, actions, elements and parts. In other words, when a particular element is referred to as "including", other elements other than the corresponding element are not excluded, but other elements may be included in the embodiments of the present disclosure or the technical scope of the present disclosure.
[0073] In addition, some components may not be essential components for performing the basic functions of the present disclosure, but may be selective components only for improving performance. In addition to the components for improving performance, the present disclosure may be implemented by only including the indispensable components for realizing the essence of the present disclosure. Structures that only include essential components other than the selective components for only improving performance are also included in the scope of the present disclosure.
[0074] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. When describing the exemplary embodiments of the present specification, well-known functions or structures will not be described in detail because they may unnecessarily obscure the understanding of the present specification. The same constituent elements in the drawings are represented by the same reference numerals, and repeated descriptions of the same elements will be omitted.
[0075] Hereinafter, an image may mean a screen configuring a video, or may mean a video itself. For example, “encoding or decoding an image or both encoding and decoding an image” may mean “encoding or decoding a video or both encoding and decoding a video”, and may mean “encoding or decoding one of the images configuring a video or both encoding or decoding one of the images configuring a video”. Here, the terms “screen” and “image” may have the same meaning.
[0076] Terminology
[0077] Encoder: May represent a device that performs encoding.
[0078] Decoder: May represent a device that performs decoding.
[0079] Parsing: may mean determining the value of a syntax element by performing entropy decoding, or may mean the entropy decoding itself.
[0080] Block: is an M×N array of samples. Here, M and N may represent positive integers, and a block may represent an array of samples in a two-dimensional form.
[0081] Sample: It is the basic unit of a block. It can be represented as 0 to 2 according to the bit depth (Bd). Bd In the present disclosure, a pixel may be used with the same meaning as a sample point.
[0082] Unit: may refer to a coding unit and a decoding unit. When encoding and decoding an image, a unit may be a region generated by partitioning a single image. In addition, when a single image is partitioned into sub-divided units during encoding or decoding, a unit may represent a sub-divided unit. When encoding and decoding an image, a predetermined process may be performed for each unit. A single unit may be partitioned into sub-units having a size smaller than the unit size. According to the function, a unit may represent a block, a macroblock, a coding tree unit, a coding tree block, a coding unit, a coding block, a prediction unit, a prediction block, a transform unit, a transform block, etc. In addition, in order to distinguish a unit from a block, a unit may include a luminance component block, a chrominance component block associated with the luminance component block, and a syntax element for each color component block. A unit may have various sizes and forms, and specifically, the form of a unit may be a two-dimensional geometric figure, such as a rectangular shape, a square shape, a trapezoidal shape, a triangular shape, a pentagonal shape, etc. In addition, the unit information may include at least one of a unit type indicating a coding unit, a prediction unit, a transform unit, etc., and a unit size, a unit depth, an order of encoding and decoding of a unit, etc.
[0083] Reconstructed neighboring block: may mean a reconstructed unit that is adjacent to the encoding / decoding target unit and has been encoded or decoded in space / time.
[0084] Unit depth: may represent the degree of partitioning of a unit. In a tree structure, the root node may have the shallowest depth and the leaf node may have the deepest depth.
[0085] Symbol: can represent syntax elements, coding parameters, transform coefficient values, etc. of the encoding / decoding target unit.
[0086] Parameter set: may correspond to header information in the configuration within the bitstream. At least one of a video parameter set, a sequence parameter set, a picture parameter set, and an adaptation parameter set may be included in the parameter set. In addition, the parameter set may have the meaning of containing slice header and parallel block header information.
[0087] Bitstream: can represent a stream of bits including coded image information.
[0088] Prediction unit: may represent a basic unit when performing inter-frame prediction, intra-frame prediction and compensation thereof. A single prediction unit may be partitioned into a plurality of partitions having a smaller size. In this case, each of the plurality of partitions is a basic unit for performing prediction and compensation. A partition generated by dividing a prediction unit may also be a prediction unit. A prediction unit may have various sizes and forms, and in particular, the form of a prediction unit may be a two-dimensional geometric figure, such as a rectangular shape, a square shape, a trapezoidal shape, a triangular shape, a pentagonal shape, and the like.
[0089] Prediction unit partition: may represent a form obtained by partitioning a prediction unit.
[0090] Reference picture list: may refer to a list including one or more reference pictures used for inter prediction or motion compensation. The type of the reference picture list may be LC (combined list), L0 (list 0), L1 (list 1), L2 (list 2), L3 (list 3), etc. One or more reference picture lists may be used for inter prediction.
[0091] Inter-frame prediction indicator: may refer to the direction of inter-frame prediction (unidirectional prediction, bidirectional prediction, etc.) of the encoding / decoding target block when performing inter-frame prediction, the number of reference pictures used by the encoding / decoding target block to generate the prediction block, or the number of prediction blocks used by the encoding / decoding target block to perform inter-frame prediction or motion compensation.
[0092] Reference picture index: may refer to an index used to indicate a specific reference picture in a reference picture list.
[0093] Reference picture: may refer to a reference picture referred to by a specific block for the purpose of inter-prediction or motion compensation of the specific block.
[0094] Motion vector: It can be a two-dimensional vector used for inter-frame prediction or motion compensation. The motion vector can represent the offset between the encoding / decoding target picture and the reference picture. For example, (mvX, mvY) can represent a motion vector. Here, mvX can represent the horizontal component, and mvY can represent the vertical component.
[0095] Motion vector candidate including at least one of information, reference picture, and motion vector candidate index: may refer to a prediction candidate unit or a motion vector of a prediction candidate unit when predicting a motion vector.
[0096] Motion vector candidate list: may represent a list configured using motion vector candidates.
[0097] Motion vector candidate index: may represent an indicator indicating a motion vector candidate in a motion vector candidate list. Alternatively, the motion vector candidate index may be an index of a motion vector predictor.
[0098] Motion information: It can indicate not only motion vector, reference picture index and inter prediction indicator, but also reference picture list information.
[0099] Merge candidate list: can represent a list of merge candidate configurations.
[0100] Merge candidate: may represent a spatial merge candidate, a temporal merge candidate, a combined merge candidate, a combined bi-predictive merge candidate, or a zero merge candidate. The merge candidate may include motion information such as prediction type information, reference picture index for each list, motion vector, etc.
[0101] Merge index: may indicate information indicating a merge candidate in a merge candidate list. Optionally, the merge index may indicate a block from which a merge candidate has been derived among reconstructed blocks that are spatially / temporally adjacent to the current block. In addition, the merge index may indicate at least one piece of motion information of the merge candidate.
[0102] Transform unit: may represent a basic unit when performing residual signal encoding / decoding such as transformation, inverse transformation, quantization, inverse quantization, transformation coefficient encoding / decoding. A single transform unit may be partitioned into a plurality of transform units having a smaller size. The transform unit may have various sizes and forms, and in particular, the form of the transform unit may be a two-dimensional geometric figure such as a rectangular shape, a square shape, a trapezoidal shape, a triangular shape, a pentagonal shape, etc.
[0103] Scaling: may refer to the process of multiplying the transform coefficient level by a factor. As a result, transform coefficients may be generated. Scaling may also be referred to as inverse quantization.
[0104] Quantization parameter: may refer to a value used when scaling a transform coefficient level during quantization and inverse quantization. Here, the quantization parameter may be a value mapped on a quantization step size.
[0105] Delta quantization parameter: may represent the difference between the predicted quantization parameter and the quantization parameter of the encoding / decoding target unit.
[0106] Scan: may refer to a method of ordering coefficients within a cell, block, or matrix. For example, changing a two-dimensional matrix of coefficients to a one-dimensional matrix may be referred to as scanning, and changing a one-dimensional matrix of coefficients to a two-dimensional matrix may be referred to as scanning or inverse scanning.
[0107] Transform coefficient: may mean a coefficient value generated after performing a transform. In the present disclosure, a transform coefficient level obtained by applying quantization to a transform coefficient may also fall within the meaning of the transform coefficient.
[0108] Non-zero transform coefficient: may denote a transform coefficient having a value other than zero, or a transform coefficient level having a value other than zero.
[0109] Quantization matrix: may refer to a matrix used in a quantization process or an inverse quantization process performed to improve subjective image quality or objective image quality. The quantization matrix may also be referred to as a scaling list.
[0110] Quantization matrix coefficients: can represent each element in the quantization matrix. Quantization matrix coefficients can also be called matrix coefficients.
[0111] Default matrix: may represent a predetermined quantization matrix predefined in an encoder or a decoder.
[0112] Non-default matrix: may represent a quantization matrix that is not pre-defined in the encoder or decoder but is sent / received by the user.
[0113] Figure 1 is a block diagram showing the configuration of an encoding device according to an embodiment of the present disclosure.
[0114] The encoding device 100 may be a video encoding device or an image encoding device. A video may include at least one image. The encoding device 100 may encode at least one image of a video in a temporal order.
[0115] Reference Figure 1 , the encoding device 100 may include a motion prediction unit 111, a motion compensation unit 112, an intra-frame prediction unit 120, a switch 115, a subtractor 125, a transform unit 130, a quantization unit 140, an entropy encoding unit 150, an inverse quantization unit 160, an inverse transform unit 170, an adder 175, a filter unit 180 and a reference picture buffer 190.
[0116] The encoding device 100 may perform encoding of an input image by using an intra mode or an inter mode or both an intra mode and an inter mode. In addition, the encoding device 100 may generate a bit stream by encoding the input image, and output the generated bit stream. When the intra mode is used as a prediction mode, the switch 115 may be switched to the intra mode. Alternatively, when the inter mode is used as a prediction mode, the switch 115 may be switched to the inter mode. Here, the intra mode may represent an intra prediction mode, and the inter mode may represent an inter prediction mode. The encoding device 100 may generate a prediction block for an input block of the input image. In addition, the encoding device 100 may encode the residual between the input block and the prediction block after generating the prediction block. The input image may be referred to as a current image as a current encoding target. The input block may be referred to as a current block as a current encoding target, or as a coding target block.
[0117] When the prediction mode is the intra mode, the intra prediction unit 120 may use the pixel value of the block that has been encoded / decoded and is adjacent to the current block as a reference pixel. The intra prediction unit 120 may perform spatial prediction by using the reference pixel and generate a prediction sample of the input block through spatial prediction. Here, intra prediction may refer to prediction within a frame.
[0118] When the prediction mode is the inter mode, the motion prediction unit 111 may retrieve a region that best matches the input block from a reference image when performing motion prediction, and infer a motion vector by using the retrieved region. The reference image may be stored in the reference picture buffer 190.
[0119] The motion compensation unit 112 may generate a prediction block by performing motion compensation using a motion vector. Here, the motion vector may be a two-dimensional vector for inter-frame prediction. In addition, the motion vector may represent an offset between a current image and a reference picture. Here, inter-frame prediction may represent prediction between pictures.
[0120] When the value of the motion vector is not an integer, the motion prediction unit 111 and the motion compensation unit 112 may generate a prediction block by applying an interpolation filter to a partial area of the reference picture. In order to perform inter-picture prediction or motion compensation, it may be determined whether the motion prediction and motion compensation methods of the prediction unit included in the corresponding coding unit are skip mode, merge mode, advanced motion vector prediction (AMVP) mode, and current picture reference mode. Inter-picture prediction or motion compensation may be performed according to each mode. Here, the current picture reference mode may refer to a prediction mode using a pre-reconstructed area in the current picture including the encoding target block. In order to specify the pre-reconstructed area, a motion vector for the current picture reference mode may be defined. The reference picture index of the encoding target block may be used to encode whether the encoding target block is encoded as the current picture reference mode.
[0121] The subtractor 125 may generate a residual block by using the difference between the input block and the prediction block. The residual block may be referred to as a residual signal.
[0122] The transform unit 130 may generate a transform coefficient by performing transform of the residual block, and output the generated transform coefficient. Here, the transform coefficient may be a coefficient value generated by performing transform of the residual block. When the transform skip mode is applied, the transform unit 130 may skip transform of the residual block.
[0123] Quantized transform coefficient levels may be generated by applying quantization to transform coefficients. In the following embodiments, quantized transform coefficient levels may also be referred to as transform coefficients.
[0124] The quantization unit 140 may generate quantized transform coefficient levels by quantizing the transform coefficients according to the quantization parameters, and output the quantized transform coefficient levels. Here, the quantization unit 140 may quantize the transform coefficients by using a quantization matrix.
[0125] The entropy encoding unit 150 may generate a bitstream by performing entropy encoding on the value calculated by the quantization unit 140 or the encoding parameter value calculated when encoding is performed according to the probability distribution, and output the generated bitstream. The entropy encoding unit 150 may perform entropy encoding on information for decoding an image and information about pixels of the image. For example, the information for decoding an image may include a syntax element, etc.
[0126] When entropy coding is applied, symbols are represented so that a smaller number of bits are allocated to symbols with a high probability of generation, and a larger number of bits are allocated to symbols with a low probability of generation, and therefore, the size of the bitstream for the symbol to be encoded can be reduced. Therefore, the compression performance of image coding can be enhanced by entropy coding. The entropy coding unit 150 may use a coding method for entropy coding such as exponential Golomb, context adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), etc. For example, the entropy coding unit 150 may perform entropy coding by using a variable length coding / code (VLC) table. In addition, the entropy coding unit 150 may infer a binarization method of a target symbol and a probability model of a target symbol / binary bit, and then perform arithmetic coding by using the inferred binarization method or the inferred probability model.
[0127] In order to encode the transform coefficient level, the entropy encoding unit 150 may change the two-dimensional block form coefficient into a one-dimensional vector form by a transform coefficient scanning method. For example, it may be changed into a one-dimensional vector form by scanning the coefficients of the block using an upper right scan. Depending on the size of the transform block and the intra prediction mode, as an alternative to the upper right scan, a horizontal scan that scans the coefficients of the two-dimensional block form horizontally or a vertical scan that scans the coefficients of the two-dimensional block form vertically may be used. In other words, depending on the size of the transform unit and the intra prediction mode, it may be determined which scanning method among the upper right scan, the vertical scan, and the horizontal scan will be used.
[0128] The coding parameters may include not only information such as syntax elements encoded in the encoder and sent to the decoder, but also other information derived during the encoding or decoding process. It may represent the information required to encode or decode an image. For example, the coding parameters may include values and / or statistics of at least one of the following: intra prediction mode, inter prediction mode, intra prediction direction, motion information, motion vector, reference image index, inter prediction direction, inter prediction indicator, reference picture list, motion vector predictor, motion merge candidate, transform type, transform size, whether to use another transform, in-loop filter information, whether there is a residual signal, quantization parameter, context model, transform coefficient, transform coefficient level, coding block pattern, coding block flag, image display / output sequence, slice information, parallel block information, picture type, whether to use motion merge mode, whether to use skip mode, block size, block depth, block partition information, unit size, unit depth and unit partition information.
[0129] The residual signal may represent the difference between the original signal and the prediction signal. Alternatively, the residual signal may be a signal generated by transforming the difference between the original signal and the prediction signal. Alternatively, the residual signal may be a signal generated by transforming and quantizing the difference between the original signal and the prediction signal. The residual block may be a residual signal of a block unit.
[0130] When the encoding apparatus 100 performs encoding by inter-frame prediction, the encoded current image may be used as a reference picture for another image (other image) to be processed later. Therefore, the encoding apparatus 100 may decode the encoded current image and store the decoded image as a reference image. For decoding, the encoded current image may be dequantized and inversely transformed.
[0131] The quantized level may be dequantized in the dequantization unit 160 and inversely transformed in the inverse transform unit 170. The dequantized and inversely transformed coefficients may be added to the prediction block through the adder 175. By adding the dequantized and inversely transformed coefficients to the prediction block, a reconstructed block may be generated.
[0132] The reconstructed block may pass through the filter unit 180. The filter unit 180 may apply at least one of a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) to the reconstructed block or the reconstructed image. The filter unit 180 may be referred to as an in-loop filter.
[0133] The deblocking filter can remove block distortion generated in the boundary between blocks. In order to determine whether to perform the deblocking filter, it can be determined whether to apply the deblocking filter to the current block based on the pixels included in several rows or columns of the block. When the deblocking filter is applied to the block, a strong filter or a weak filter can be applied according to the necessary deblocking filter strength. In addition, when vertical filtering and horizontal filtering are performed to apply the deblocking filter, the horizontal filtering and the vertical filtering can be set to be processed simultaneously.
[0134] To compensate for the coding error, the sample adaptive offset can add an appropriate offset value to the pixel value. The sample adaptive offset can correct the offset of the deblocked image and the original image by the sample unit. In order to perform the offset correction for a specific picture, the following method can be used: the pixels included in the image are partitioned into a predetermined number of regions, the region where the offset is to be performed is determined, and the offset is applied to the region. Alternatively, a method of applying the offset in consideration of the edge information of each sample can be used.
[0135] The adaptive loop filter can perform filtering based on the comparison result of the filtered reconstructed image with the original image. After the pixels included in the image are divided into a predetermined number of groups, the filter to be applied to the corresponding group can be determined to perform filtering differently for each group. Information about whether to apply the adaptive loop filter can be sent by the coding unit (CU), and the form and filter coefficient of the adaptive loop filter to be applied can vary according to each block. In addition, an adaptive loop filter having the same form (fixed form) can be applied regardless of the characteristics of the block to which the adaptive loop filter is to be applied.
[0136] The reconstructed block that has passed through the filter unit 180 may be stored in the reference picture buffer 190 .
[0137] Figure 2 is a block diagram showing a configuration of a decoding device according to an embodiment of the present disclosure.
[0138] The decoding device 200 may be a video decoding device or an image decoding device.
[0139] Reference Figure 2 , the decoding device 200 may include an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an intra-frame prediction unit 240, a motion compensation unit 250, an adder 225, a filter unit 260 and a reference picture buffer 270.
[0140] The decoding apparatus 200 may receive a bitstream output from the encoding apparatus 100. The decoding apparatus 200 may decode the bitstream by using an intra mode or an inter mode. In addition, the decoding apparatus 200 may generate a reconstructed image by decoding and output the reconstructed image.
[0141] When the prediction mode used in decoding is intra mode, the switch may be switched to intra mode. Alternatively, when the prediction mode used in decoding is inter mode, the switch may also be switched to inter mode.
[0142] The decoding device 200 may obtain a reconstructed residual block from an input bit stream and generate a prediction block. When the reconstructed residual block and the prediction block are obtained, the decoding device 200 may generate a reconstructed block as a decoding target block by adding the reconstructed residual block to the prediction block. The decoding target block may be referred to as a current block.
[0143] The entropy decoding unit 210 may generate symbols by entropy decoding the bit stream according to the probability distribution. The generated symbols may include symbols in the form of quantized transform coefficient levels. Here, the entropy decoding method may be similar to the above-mentioned entropy encoding method. For example, the entropy decoding method may be an inverse process of the above-mentioned entropy encoding method.
[0144] In order to decode the transform coefficient level, the entropy decoding unit 210 may change the one-dimensional vector form coefficient into a two-dimensional block form by a transform coefficient scanning method. For example, the one-dimensional vector form coefficient may be changed into a two-dimensional block form by scanning the coefficients of the block using an upper right scan. Depending on the size of the transform block and the intra prediction mode, vertical scanning and horizontal scanning may be used instead of the upper right scan. In other words, depending on the size of the transform unit and the intra prediction mode, it may be determined which scanning method among the upper right scan, the vertical scan, and the horizontal scan will be used.
[0145] The quantized transform coefficient level may be dequantized in the dequantization unit 220 and inversely transformed in the inverse transform unit 230. When the quantized transform coefficient level is quantized and inversely transformed, as a result, a reconstructed residual block may be generated. Here, the dequantization unit 220 may apply a quantization matrix to the quantized transform coefficient level.
[0146] When the intra mode is used, the intra prediction unit 240 may generate a prediction block by performing spatial prediction using pixel values of a block that is adjacent to the decoding target block and has been decoded.
[0147] When the inter-frame mode is used, the motion compensation unit 250 may generate a prediction block by performing motion compensation, wherein the motion compensation uses a motion vector and a reference image stored in the reference picture buffer 270. When the motion vector does not have an integer value, the motion compensation unit 250 may generate a prediction block by applying an interpolation filter to a partial area within the reference image. In order to perform motion compensation, it may be determined which mode among the skip mode, the merge mode, the advanced motion vector prediction (AMVP) mode, and the current picture reference mode is used as a motion compensation method for a prediction unit included in a corresponding coding unit. Then, motion compensation may be performed according to each mode. Here, the current picture reference mode may refer to a prediction mode using a pre-reconstructed area in a current picture including a decoding target block. In order to specify a pre-reconstructed area, a motion vector for the current picture reference mode may be used. A flag or index indicating whether the decoding target block is a block encoded in the current picture reference mode may be signaled or inferred by a reference picture index of the decoding target block. In the current picture reference mode, the current picture may be present at a fixed position (e.g., a position of refIdx=0 or the last position) in a reference picture list for a block to be decoded. Alternatively, the current picture may be variably located in the reference picture list, and for that purpose a separate reference picture index indicating the location of the current picture may be signaled.
[0148] The reconstructed residual block may be added to the prediction block by the adder 255. When the reconstructed residual block is added to the prediction block, the resulting block may pass through the filter unit 260. The filter unit 260 may apply at least one or more of a deblocking filter, a sample adaptive offset, and an adaptive loop filter to the reconstructed block or the reconstructed image. The filter unit 260 may output the reconstructed image. The reconstructed image may be used for inter-frame prediction by being stored in the reference picture buffer 270.
[0149] Figure 3 is a diagram schematically showing a partition structure of an image when the image is encoded and decoded. Figure 3 An example of partitioning a single cell into multiple lower-level cells is schematically shown.
[0150] In order to efficiently partition an image, a coding unit (CU) may be used for encoding and decoding. Here, a coding unit may refer to a coding unit. The term "unit" may be collectively referred to as a block including 1) a syntax element and 2) an image sample. For example, "unit partitioning" may mean "partitioning a block corresponding to a unit". Information about the unit depth may be included in the block partition information. The depth information may indicate the number or degree of partitioning of a unit or both the number and degree.
[0151] Reference Figure 3, the image 300 is partitioned sequentially by the largest coding unit (LCU), and the partition structure is determined by the LCU. In this article, LCU can be used with the same meaning as the coding tree unit (CTU). Based on the tree structure, a single unit may have depth information and be partitioned hierarchically. Each partitioned lower-level unit may have depth information. Since the depth information indicates the number and / or degree of partitioning a unit, the depth information may include information about the size of the lower-level unit.
[0152] The partition structure may represent the distribution of coding units (CUs) within the LCU 310. A CU may be a unit for efficiently encoding an image. Such distribution may be determined according to whether a single CU is partitioned into a plurality of (a positive integer equal to or greater than 2, including 2, 4, 8, 16, etc.) CUs. The horizontal size and vertical size of the CU generated by partitioning may be half of the horizontal size and vertical size of the CU before partitioning, respectively, or may have sizes smaller than the horizontal size and vertical size before partitioning, respectively, according to the number of partitioning times. The partitioned CU may be recursively partitioned into a plurality of CUs having horizontal and vertical sizes reduced in the same manner.
[0153] Here, CU partitioning may be performed recursively up to a predefined depth. Depth information may be information indicating the size of a CU and may be stored in each CU. For example, the depth of an LCU may be 0, and the depth of a minimum coding unit (SCU) may be a predefined maximum depth. Here, an LCU may be a coding unit having a maximum coding unit size as described above, and an SCU may be a coding unit having a minimum coding unit size.
[0154] Partitioning starts from LCU 310, and when the horizontal and vertical sizes of the CU are reduced by partitioning, the depth of the CU increases by 1. At each depth, the size of a non-partitioned CU may be 2N×2N. In the case where the CU is partitioned, a CU of size 2N×2N may be partitioned into a plurality of CUs of size N×N. Whenever the depth increases by 1, the size of N is halved.
[0155] For example, when a single coding unit is partitioned into four coding units, the horizontal size and vertical size of the four partitioned coding units may be half the horizontal size and vertical size of the CU before partitioning. In one embodiment, when a coding unit of size 32×32 is partitioned into four coding units, the size of each of the four partitioned coding units may be 16×16. When a single coding unit is partitioned into four coding units, this may mean that the coding unit is partitioned into a quadtree form.
[0156] For example, when one coding unit is partitioned into two sub-coding units, the horizontal size or vertical size (width or height) of each of the two sub-coding units may be half of the horizontal size or vertical size of the original coding unit. For example, when a coding unit of size 32×32 is partitioned vertically into two sub-coding units, the size of each of the two sub-coding units may be 16×32. For example, when a coding unit of size 32×32 is partitioned horizontally into two coding units, the size of each of the two coding units may be 32×16. When a single coding unit is partitioned into two coding units, this may mean that the coding unit is partitioned in a binary tree form.
[0157] Reference Figure 3 , an LCU with a depth of 0 may have 64×64 pixels. 0 may be the minimum depth. An SCU with a depth of 3 may have 8×8 pixels. 3 may be the maximum depth. Here, a CU of 64×64 pixels (which is an LCU) may be represented as a depth of 0. A CU of 32×32 pixels may be represented as a depth of 1. A CU of 16×16 pixels may be represented as a depth of 2. A CU of 8×8 pixels (which is an SCU) may be represented as a depth of 3.
[0158] In addition, information on whether a CU is partitioned may be indicated by using the partition information of the CU. The partition information may be 1-bit information. All CUs except the SCU may include partition information. For example, when the value of the partition information is a first value, the CU may not be partitioned, and when the value of the partition information is a second value, the CU may be partitioned.
[0159] Figure 4a is a diagram illustrating the shape of a prediction unit (PU) that a coding unit (CU) may include.
[0160] Among CUs obtained by partitioning an LCU, a CU that can no longer be partitioned may be divided into one or more prediction units (PUs). Such a process may also be called partitioning.
[0161] PU may be a basic unit for prediction. PU may be encoded and decoded in any one of skip mode, inter mode, and intra mode. PU may be partitioned in various forms according to the mode.
[0162] In addition, a coding unit may not be partitioned into prediction units, and the coding unit and the prediction unit may have the same size.
[0163] As in Figure 4a As shown in , in skip mode, partitions may not exist within a CU. In skip mode, a 2N×2N mode 410 having the same size as a CU without partitions may be provided.
[0164] In the inter-frame mode, eight partition forms within the CU may be provided. For example, in the inter-frame mode, 2N×2N mode 410, 2N×N mode 415, N×2N mode 420, N×N mode 425, 2N×nU mode 430, 2N×nD mode 435, nL×2N mode 440, and nR×2N mode 445 may be provided. In the intra-frame mode, 2N×2N mode 410 and N×N mode 425 may be provided.
[0165] Coding tree unit: A single coding tree block of a luminance component Y and two coding tree blocks associated with a chrominance component Cb and a chrominance component Cr may be configured. Each coding tree unit may be partitioned by using at least one of a quadtree partitioning method, a binary tree partitioning method, and a ternary tree partitioning method to configure a lower level unit such as a coding unit, a prediction unit, a transform unit, etc. When encoding / decoding an image as an input image, a coding tree unit may be used as a term for designating a pixel block that becomes a processing unit.
[0166] Figure 4b is a diagram for describing a vertically / horizontally partitioned binary tree and a vertically / horizontally partitioned ternary tree.
[0167] Reference Figure 4b , in the vertically split binary tree (SPLIT_BT_VER), the horizontally split binary tree (SPLIT_BT_HOR), the vertically split ternary tree (SPLIT_TT_VER), and the horizontally split ternary tree (SPLIT_TT_HOR), each split partition may be encoded as a CU, a PU, and a TU. As an example, when one coding block is SPLIT_TT_VER, each of the two rectangular partitions may be encoded as a CU, a PU, and a TU having the same rectangular shape and the same horizontal and vertical sizes.
[0168] Coding tree block: may be used as a term for designating any one of a Y coding tree block, a Cb coding tree block, and a Cr coding tree block.
[0169] Figure 5 is a diagram illustrating the shape of a transformation unit (TU) that a coding unit (CU) may include.
[0170] A transform unit (TU) may be a basic unit for transform, quantization, inverse transform, and inverse quantization within a CU. A TU may have a square shape or a rectangular shape. A TU may be determined according to the size and / or form of a CU.
[0171] Among the CUs obtained by partitioning the LCU, the CUs that are no longer partitioned into CUs may be partitioned into one or more TUs. Here, the partition structure of the TU may be a quadtree structure. For example, as in Figure 5As shown in , a single CU 510 may be partitioned one or more times according to a quadtree structure. In the case where a single CU is partitioned one or more times, it may mean that the CU is partitioned recursively. Through partitioning, a single CU 510 may be composed of TUs of various sizes. Optionally, based on the number of vertical lines and / or horizontal lines that partition the CU, the CU may be partitioned into one or more TUs. The CU may be partitioned into symmetric TUs or asymmetric TUs. In order to partition into asymmetric TUs, information about the size / form of the TU may be transmitted by a signal, and the information may be derived from information about the size / form of the CU.
[0172] In addition, the coding unit may be partitioned into transformation units, and the coding unit and the transformation unit may have the same size.
[0173] The size and / or form of the coding tree unit (CTU) may have a square form with a width size × a height size of 2N × 2N. For example, the CTU may have a size of 128 × 128, a size of 64 × 64, or a size of 32 × 32. However, the present disclosure is not limited to this embodiment. The CTU may have a coding tree block (CTB) corresponding to a luma sample and a CTB corresponding to a chroma (color) sample. Here, the number of CTUs may be the same as the number of CTBs for luma samples.
[0174] A single picture may be partitioned into at least one slice. Here, any slice partitioned thereby may consist of at least one CTU. The slice may have any form. As an example, a single slice may have a square form and / or a rectangular form consisting of one or more CTUs. However, the present disclosure is not limited to this embodiment, and the slice may have various forms.
[0175] Here, when a single picture is partitioned into at least one slice, if each partitioned slice has a rectangular form and / or a square form, it may be defined that the picture has been partitioned into rectangular slices.
[0176] In addition, when a single picture is partitioned into at least one slice, if at least one of all the partitioned slices does not have a rectangular form and / or a square form, it can be defined that the picture has been partitioned into raster scan strips. As an example, when a single picture is composed of a plurality of tiles, the tiles in the picture can be configured according to a tile raster scan order within any raster scan strip.
[0177] A single picture and / or a slice may be partitioned into at least one parallel block. Here, any parallel block partitioned thereby may be composed of at least one CTU. The parallel block may have any form. As an example, a single parallel block may have a square form and / or a rectangular form composed of one or more CTUs. However, the present disclosure is not limited to this embodiment.
[0178] When a rectangular strip or a raster scan strip or both a rectangular strip and a raster scan strip are composed of at least one tile, each tile may be partitioned into at least one partition. Here, any block partitioned thereby may be composed of CTU rows constituting a tile. Here, the vertical size of the partition may be greater than or equal to the vertical size of a single CTU and / or CTB.
[0179] In addition, when a single parallel block is not partitioned into blocks, the parallel block may be considered as a single block. On the other hand, when a single parallel block is partitioned into multiple blocks, random blocks partitioned from the parallel block may not be considered as parallel blocks.
[0180] The index idx indicating at least one tile and / or partition may always start from 0.
[0181] According to the above definitions of slices, tiles and blocks, a single slice may be composed of a single tile and / or tile, or may be composed of multiple tiles and / or tiles. Here, a slice is composed of multiple tiles and / or blocks, and each tile may be encoded / decoded according to a tile raster scan order within a slice including a picture and / or tile.
[0182] Different from the above example, each of a plurality of tiles and / or partitions constituting a picture may be defined as a single slice. Alternatively, a single tile may be partitioned into a plurality of slices, and the slice obtained thereby may be partitioned into a plurality of partitions.
[0183] Figure 6 is a diagram for describing slices, tiles, and CTUs constituting a picture according to an embodiment of the present disclosure.
[0184] Reference Figure 6 , when a single picture consists of 18 CTUs horizontally and 12 CTUs vertically, the picture can consist of 3 raster scan strips and 12 tiles.
[0185] Figure 7 is a diagram for describing slices, tiles, and CTUs constituting a picture according to another embodiment of the present disclosure.
[0186] Reference Figure 7 , when a single picture consists of 18 CTUs horizontally and 12 CTUs vertically, the picture may consist of 9 rectangular slices and 24 tiles.
[0187] Figure 8 is a diagram for describing slices, tiles, and CTUs constituting a picture according to another embodiment of the present disclosure.
[0188] Reference Figure 8, a single picture may be composed of 4 parallel blocks, and the upper left parallel block may be simply considered as a block. In addition, the upper right parallel block may be composed of 2 strips, and each strip may be partitioned into 2 blocks and 3 blocks, thereby being partitioned into 5 blocks. In addition, the lower left parallel block may be composed of 2 blocks, and the lower right parallel block may be composed of 3 blocks.
[0189] More specifically, a single picture may be composed of 4 tiles, 11 partitions, and 4 rectangular slices. Information for signaling a partition structure of a picture composed of slices, tiles, and blocks may be sent from an encoder to a decoder by using at least one of a sequence parameter set (SPS), a picture parameter set (PPS), a video parameter set (VPS), supplemental enhancement information (SEI), a slice header, and a tile group header.
[0190] Fig. 9 is a diagram for describing slices, tiles, and CTUs constituting a picture according to another embodiment of the present disclosure.
[0191] Reference Fig. 9 , when it is assumed that the size of the CTU is 128×128 in a picture having a horizontal and vertical resolution of 1,920×1,080, the picture may be composed of a total of 15 CTUs horizontally and a total of 9 CTUs vertically. Here, the picture may be composed of 2 rectangular slices, 12 tiles (6 tiles for each slice), and 15 partitions. In addition, a picture parameter set may be used to signal a partition structure of the picture.
[0192] The reason why the picture is composed of 15 partitions is that the 3 tiles located in the rightmost column of the picture are partitioned into 2 tiles respectively, and all the remaining tiles are considered as a single tile. Therefore, the total number of tiles in the picture can be 15.
[0193] The numbers specified in each CTU in the picture may correspond to the order in which the CTUs belonging to the slices and / or tiles are actually encoded / decoded according to the raster scanning method. For example, the numbers 0 to 9 specified in the CTUs in the first tile of the first slice in the picture may correspond to the order in which the CTUs are encoded / decoded according to the raster scanning method.
[0194] Fig.10 is used to describe the transmission of a signal through the PPS according to an embodiment of the present disclosure. Fig. 9 Schematic diagram of a method (syntax) for displaying screen partition information.
[0195] Reference Fig.10 , information indicating whether the current picture is composed of a single tile (e.g., single_tile_in_pic_flag) may be sent. Fig. 9Corresponding to a case where a picture is partitioned into a plurality of tiles, information indicating whether the current picture consists of a single tile (eg, single_tile_in_pic_flag) may represent 0.
[0196] When the current picture is composed of a plurality of tiles, information indicating whether the current picture is composed of a single tile (e.g., single_tile_in_pic_flag) may indicate 0, and configuration information of a plurality of tiles constituting the picture may be transmitted. Here, information indicating whether a plurality of tiles have a rectangular and / or square form having uniform horizontal and vertical sizes (e.g., uniform_tile_spacing_flag) may be transmitted. For example, due to Fig. 9 This is a case where tiles have different sizes, and thus information indicating whether a plurality of tiles have a rectangular and / or square form including uniform horizontal and vertical sizes (eg, uniform_tile_spacing_flag) may represent 0.
[0197] When a plurality of tiles have a rectangular and / or square form having a uniform horizontal size and / or vertical size, that is, when information indicating whether a plurality of tiles have a rectangular and / or square form having a uniform horizontal size and / or vertical size (e.g., uniform_tile_spacing_flag) corresponds to 1, the horizontal size and the vertical size of the tile may be transmitted. Here, information indicating the horizontal size of the transmitted tile (e.g., tile_cols_width_minus1) and / or information indicating the vertical size of the transmitted tile (e.g., tile_rows_height_minus1) may represent (the number of CTBs - 1). Exceptionally, the horizontal size and / or the vertical size of the tile located on the right and / or bottom may not be signaled due to the size of the picture.
[0198] When a plurality of tiles do not have a rectangular and / or square form having a uniform horizontal size and / or vertical size, that is, when information indicating whether a plurality of tiles have a rectangular and / or square form having a uniform horizontal size and / or vertical size (e.g., uniform_tile_spacing_flag) is 0, the number of columns and / or rows of tiles constituting the current picture may be transmitted. Here, information indicating the number of columns of a tile (e.g., num_tile_columns_minus1) and information indicating the number of rows of a tile (e.g., num_tile_rows_minus1) may be transmitted. For example, Fig. 9This is the case where a picture consists of a total of 12 (4×3) tiles with 4 columns and 3 rows. In this case, information indicating the number of columns of a tile (e.g., num_tile_columns_minus1) may indicate 3, and information indicating the number of rows of a tile (e.g., num_tile_rows_minus1) may indicate 2.
[0199] Next, information indicating the column size of each parallel block (e.g., tile_column_width_minus1[i]) and information indicating the row size of each parallel block (e.g., tile_row_height_minus1[i]) may be transmitted. Here, i may be defined as an index of a parallel block column and row, and the information indicating the column size of each parallel block (e.g., tile_column_width_minus1[i]) may be expressed as the horizontal size of the i-th parallel block column (the number of CTBs - 1). In addition, similarly, the information indicating the row size of each parallel block (e.g., tile_row_height_minus1[i]) may express the vertical size of the i-th parallel block row as (the number of CTBs - 1).
[0200] Fig.11 It is used to describe the embodiments according to the present disclosure. Fig.10 Schematic diagram of the partitioning of parallel blocks in a picture transmitted by a signal.
[0201] Reference Fig.11 , information indicating whether at least one parallel block is partitioned into blocks (e.g., brick_splitting_present_flag) may be transmitted by a signal. As an example, when Fig.11 When the tiles with index 3, index 7, and index 11 among the 12 tiles are partitioned into tiles, information indicating whether at least one tile is partitioned into tiles (eg, brick_splitting_present_flag) may represent 1.
[0202] When at least one tile is partitioned into tiles, information indicating whether at least one tile is partitioned into tiles (e.g., brick_splitting_present_flag) may represent 1. In addition, when tiles are partitioned in a uniform size, that is, when information indicating whether a plurality of tiles have a rectangular and / or square form having uniform horizontal and vertical sizes (e.g., uniform_tile_spacing_flag) is 1, the tile size of the current picture may be explicitly signaled through information indicating the number of tiles in the current picture (e.g., num_tiles_in_pic_minus1).
[0203] Information indicating whether all tiles partitioned in the current picture are partitioned into blocks (eg, brick_split_flag[i]) may be transmitted by a signal. Fig.11 The number shown in , i can represent the index in the raster scan order of the parallel block partitioned in the current picture. As an example, Fig.11 The parallel blocks with index 3, index 7, and index 11 are partitioned into blocks, and the information indicating whether the parallel block with index 3 is partitioned into blocks (e.g., brick_split_flag[3]), the information indicating whether the parallel block with index 7 is partitioned into blocks (e.g., brick_split_flag[7]), and the information indicating whether the parallel block with index 11 is partitioned into blocks (e.g., brick_split_flag
[11] ) can generally represent 1.
[0204] When the vertical size of any i-th parallel block is defined as RowHeight[i], if RowHeight[i] has the same size as the vertical size of one CTB (RowHeight[i] == 12), since the parallel block cannot be partitioned into blocks, the information indicating whether the parallel block is partitioned into blocks (e.g., brick_split_flag) may not be explicitly sent but may be implicitly inferred in the decoder.
[0205] When any i-th tile is partitioned into partitions, information indicating whether the i-th tile is partitioned into partitions (e.g., brick_split_present_flag[i]) may indicate 1. In addition, when the size of RowHeight[i] of a tile is twice the vertical size of a CTB (RowHeight[i]==2), the tile may be evenly partitioned into two partitions, and the vertical size of the partition may be 1 (vertical size of the CTB). Therefore, information indicating whether the vertical size of the partitions in the tile is evenly partitioned (e.g., uniform_brick_spacing_flag[i]) and / or information indicating the vertical size of the block (e.g., brick_height_minus1[i]) may be implicitly inferred in the decoder.
[0206] When the i-th tile is partitioned into at least N blocks, that is, when the information indicating whether the i-th tile is partitioned into blocks (e.g., brick_split_flag[i]) is 1, information indicating whether the vertical size of the blocks in the tile is uniformly partitioned (e.g., uniform_brick_spacing_flag[i]) may be transmitted by a signal. Here, N may be a positive integer greater than 0. For example, the value of N may be 3.
[0207] When the i-th tile is partitioned into partitions having a uniform vertical size, that is, the information indicating whether the vertical size of the partitions in the tile is uniformly partitioned (e.g., uniform_brick_spacing_flag[i]) is 1, the uniform vertical size of the partition may be signaled by the information indicating the vertical size of the partition (e.g., brick_height_minus1[i]). Here, the information indicating the vertical size of the partition (e.g., brick_height_minus1[i]) may represent (the number of CTBs - 1).
[0208] When the i-th tile is partitioned into blocks having different vertical sizes, that is, when the information indicating whether the vertical size of the blocks in the tile is uniformly partitioned (e.g., uniform_brick_spacing_flag[i]) is 0, information indicating the number of multiple blocks partitioned in the tile (e.g., num_brick_rows_minus1[i]) and information indicating the vertical size of each block (e.g., brick_row_height_minus1[i][j]) may be transmitted by a signal. Here, the information indicating the vertical size of each block (e.g., brick_rw0_height_minus1[i][j]) may represent (the number of CTBs-1), and j may represent the j-th block of the i-th tile.
[0209] As an example, when Fig. 9When a tile index 3 and a tile index 7 in a block are partitioned into two blocks having different vertical sizes, information indicating the number of multiple blocks partitioned in the tile having index 3 (e.g., num_brick_rows_minus1[3]) and information indicating the number of multiple blocks partitioned in the tile having index 7 (e.g., num_brick_rows_minus1[7]) may represent 1. In addition, information indicating the vertical size of the first block in the tile having index 3 (e.g., brick_row_height_minus1[3][0]) and information indicating the vertical size of the first block in the tile having index 7 (e.g., brick_row_height_minus1[7][0]) may represent 1. In addition, since the total number of blocks is 2, the vertical size of the second block may be implicitly inferred without separate signaling.
[0210] As an example, when Fig. 9 When a tile index 11 in FIG. 1 is partitioned into two blocks having different vertical sizes, information indicating the number of multiple blocks partitioned in the tile having index 11 (e.g., num_brick_rows_minus1
[11] ) may indicate 1. In addition, information indicating the vertical size of the first block of the tile having index 11 (e.g., brick_row_height_minus1
[11] [0]) may indicate 0. Since the total number of blocks is 2, the vertical size of the second block may be implicitly inferred without separate signaling.
[0211] Fig.12 A method (Syntax) of signaling partition information of a partition through a PPS according to an embodiment of the present disclosure is described.
[0212] Fig.13 Describe the embodiments according to the present disclosure Fig.10 and Fig.12 The signal transmission is partitioned into multiple parallel blocks and / or sub-blocks.
[0213] Reference Fig.13 , a single tile can be considered as a single partition. Therefore, the current picture can be considered to have been partitioned into a total of 15 partitions. Here, the index (brick_idx) in the raster scan order of the partitioned block in the current picture can be represented in Fig.13 The numbers shown in .
[0214] Fig.14 A method (Syntax) of signaling partition information of a slice through a PPS according to an embodiment of the present disclosure is described.
[0215] Fig.15The block consisting of 15 rectangular strips in the current picture according to an embodiment of the present disclosure is described.
[0216] Reference Fig.15 , the available signal transmission indication is as follows Fig.13 When the information indicating whether each of all partitioned blocks can be composed of a single slice (for example, single_brick_per_slice_flag) is 1, the information indicating whether each of all partitioned blocks can be composed of a single slice (for example, single_brick_per_slice_flag) can be transmitted by a signal as in Fig.15 The 15 blocks in the current picture can be composed of 15 rectangular strips.
[0217] When information indicating whether each of all partitioned blocks may be composed of a single slice (eg, single_brick_per_slice_flag) is 0, information indicating whether a slice of a current picture is a rectangular slice (eg, rect_slice_flag) may be signaled.
[0218] When information indicating whether a slice of the current picture is a rectangular slice (e.g., rect_slice_flag) is 1 and a single slice consists of at least two partitions, information indicating a value obtained by subtracting 1 from the total number of slices included in the current picture (e.g., num_slices_in_pic_minus1) may be signaled. Thus, the total number of slices included in the current picture may be transmitted.
[0219] For each of the multiple stripes, you can use Fig.13 Information indicating the difference in bottom_right_brick_idx between the i-th slice and the i-1-th slice constituting the current picture is transmitted using an index in the raster scan order of the blocks partitioned in the current picture defined in [i]. However, in the case of the first slice (i==0) (i.e., bottom_right_brick_idx_delta[0]), the bottom_right_brick_idx value of the first slice itself may be transmitted.
[0220] Here, information indicating whether bottom_right_brick_idx_delta[i] is a positive number or a negative number may be signaled (eg, brick_idx_delta_sign_flag[i]). As an example, when brick_idx_delta_sign_flag[i] of the i-th slice is 1, bottom_right_brick_idx_delta[i] may be determined to be a positive number.
[0221] As an example, since the bottom_right_brick_idx value of the first slice is sent by itself, the bottom_right_brick_idx_delta[0] of the first slice may always have a positive value. Therefore, without explicitly signaling brick_idx_delta_sign_flag[0] in the encoder, it may be implicitly inferred that brick_idx_delta_sign_flag[0] of the first slice becomes 1 in the decoder.
[0222] In the case of the last slice, since bottom_right_brick_idx has the maximum value among all brick_idx values, brick_idx_delta_sign_flag always has a positive value. Therefore, brick_idx_delta_sign_flag information of the last slice may not be explicitly transmitted but may be implicitly inferred to be 1 in the decoder.
[0223] When the decoder knows the bottom_right_brick_idx of the last slice and the bottom_right_brick_idx_delta of the immediately preceding slice is parsed, the decoder may know the bottom_right_brick_idx value of the immediately preceding slice. Therefore, the bottom_right_brick_idx_delta information of the last slice may not be sent explicitly but may be implicitly inferred in the decoder.
[0224] Fig.16 Describe the parallel blocks constituting a picture according to an embodiment of the present disclosure. A single picture may be partitioned into one or more sub-pictures. Here, a sub-picture may be defined as a rectangular form consisting of at least one strip in a single picture. As an example, a single picture or a sub-picture may be partitioned into one or more parallel block columns and / or one or more parallel block rows. Here, a parallel block column and / or a parallel block row may be defined as a rectangular form consisting of one or more parallel blocks. As an example, a single picture or a sub-picture may be partitioned into one or more strips.
[0225] Here, the strips may be partitioned into raster scan strips or rectangular strips. However, the present disclosure is not limited to the above embodiments. A parallel block and / or a strip may be composed of one or more CTBs. A single parallel block may be partitioned into one or more strips and / or sub-pictures. In addition, a single strip may be partitioned into one or more parallel blocks and / or sub-pictures. The total number of divided parallel blocks may be equal to the product of the number of parallel block columns and the number of parallel block rows.
[0226] Reference Fig.16 , a single picture and / or a single sub-picture may be partitioned into one or more parallel blocks. The number of parallel block columns may be 5, and the number of parallel block rows may be 4. The width of each of the 5 parallel block columns may consist of 3 CTBs. Therefore, the width of each parallel block column may correspond to a value of 3. When encoding parallel blocks within a picture, the parallel block column width may be sent once without repeatedly sending the parallel block column width. Therefore, since each parallel block column width is 3, the number of parallel block column widths to be sent may be 1. The height of the parallel block row may correspond to 3, 2, 1, and 4, respectively, in parallel blocks with indexes 0 to 3. Therefore, the number of parallel block row heights to be sent may correspond to 3.
[0227] Information indicating the number of parallel block column widths to be sent (e.g., num_exp_tile_columns_minus1) may be transmitted by a signal. Therefore, the information indicating the number of parallel block column widths to be sent (e.g., num_exp_tile_columns_minus1) may indicate 0. In addition, information indicating the width of a parallel block column (e.g., tile_column_width_minus1[i]) may be transmitted by a signal. The information indicating the width of a parallel block column with index 0 (e.g., tile_column_width_minus1[0]) may indicate 2. The information indicating the width of a parallel block column with index 0 (e.g., tile_column_width_minus1[0]) may be used identically for the widths of the remaining parallel block columns with indices 1 to 4. In addition, the width of the last parallel block column existing on the boundary may be inferred by the width of the picture and / or sub-picture. In addition, the last parallel block column on the boundary may be similar to Fig.18 The index may be implicitly inferred as a variable storing the width of a parallel block column (e.g., colWidth[i]). Here, the index may represent an index for a parallel block column. The index may have a value from 0 to the number of parallel block columns - 1.
[0228] Information indicating the number of parallel block row heights to be sent (e.g., num_exp_tile_rows_minus1) may be transmitted by a signal. Therefore, the information indicating the number of parallel block row heights to be sent (e.g., num_exp_tile_rows_minus1) may indicate 2. In addition, information indicating the height of a parallel block row (e.g., tile_row_height_minus1[i]) may be transmitted by a signal. Information indicating the height of a parallel block row with an index of 0 (e.g., tile_row_height_minus1[0]) may indicate 2. In addition, information indicating the height of a parallel block row with an index of 1 (e.g., tile_row_height_minus1[1]) may indicate 1. In addition, information indicating the height of a parallel block row with an index of 2 (e.g., tile_row_height_minus1[2]) may indicate 0. The height of the last parallel block row existing on the boundary may be inferred by the height of the picture and / or sub-picture. In addition, the last parallel block row on the boundary may be as described above. Fig.19 The index may be implicitly inferred as a variable storing the width of a parallel block row (e.g., RowHeight[i]). Here, the index may represent an index for a parallel block row. The index may have a value from 0 to the number of parallel block rows - 1.
[0229] As an example, with Fig.16 Differently, when there are 5 tile columns and the widths of each tile column are 3, 3, 2, 2, and 2, respectively, the number of tile column widths to be transmitted may be 3. Therefore, information indicating the number of tile column widths to be transmitted (e.g., num_exp_tile_columns_minus1) may indicate 2. Information indicating the width of a tile column with index 0 (e.g., tile_column_width_minus1[0]) may indicate 2. In addition, information indicating the width of a tile column with index 1 (e.g., tile_column_width_minus1[1]) may indicate 2. In addition, information indicating the width of a tile column with index 2 (e.g., tile_column_width_minus1[2]) may indicate 1. Information indicating the width of a tile column with index 2 (e.g., tile_column_width_minus1[2]) may be equally used for the widths of the remaining tile columns with indexes 3 and 4. The width of the last tile column that exists on the boundary can be inferred from the width of the picture and / or sub-picture. In addition, the width of the last tile column can be implicitly inferred as Fig.18A variable storing the width of a parallel block column (e.g., colWidth[i]). Here, the index may represent an index for a parallel block column. The index may have a value from 0 to the number of parallel block columns - 1. However, the present disclosure is not limited to the above embodiments.
[0230] As an example, with Fig.16 Differently, when there are 5 tile columns and the widths of each tile column are 3, 4, 5, 4, and 3, respectively, the number of tile column widths to be transmitted may be 4. Therefore, information indicating the number of tile column widths to be transmitted (e.g., num_exp_tile_columns_minus1) may indicate 3. Information indicating the width of a tile column with an index of 0 (e.g., tile_column_width_minus1[0]) may indicate 2. In addition, information indicating the width of a tile column with an index of 1 (e.g., tile_column_width_minus1[1]) may indicate 3. In addition, information indicating the width of a tile column with an index of 2 (e.g., tile_column_width_minus1[2]) may indicate 4. In addition, information indicating the width of a tile column with an index of 3 (e.g., tile_column_width_minus1[3]) may indicate 3. The width of the remaining tile columns with index 4 (i.e., the tile columns that exist on the picture boundary) can be inferred from the width of the picture and / or sub-picture. In addition, the remaining tile columns with index 4 can be implicitly inferred as Fig.18 A variable storing the width of a parallel block column (e.g., colWidth[i]). Here, the index may represent an index for a parallel block column. The index may have a value from 0 to the number of parallel block columns - 1. However, the present disclosure is not limited to the above embodiments.
[0231] Fig.17 A method (syntax) of signaling tile information in a picture through a PPS according to an embodiment of the present disclosure is described.
[0232] Reference Fig.17, information indicating the width of parallel block columns to be sent (e.g., tile_column_width_minus1[i]) can be sent only when the information indicating the number of parallel block column widths to be sent (e.g., num_exp_tile_columns_minus1) exceeds 0. When the information indicating the number of parallel block column widths to be sent (e.g., num_exp_tile_columns_minus1) is 0, the current picture and / or sub - picture can consist of a single parallel block. Therefore, the information indicating the width of parallel block columns (e.g., tile_column_width_minus1[i]) can be inferred from the width of the current picture and / or sub - picture.
[0233] When the current picture is a single parallel block, the width of the picture (parallel block) can be sent by the information indicating the width of the picture of the PPS (e.g., pic_width_in_luma_samples). CtbSizeY, which is the size of the CTU (CTB), can be inferred by CtbLog2SizeY = sps_log2_ctu_size_minus5 + 5 or CtbLog2SizeY = pps_log2_ctu_size_minus5 + 5. Additionally, CtbSizeY can be inferred by CtbSizeY = 1 << CtbLog2SizeY. The information indicating the width of the parallel block column with index 0 (e.g., tile_column_width_minus1[0]) can be inferred by taking the modulus or by dividing the information indicating the width of the picture (e.g., pic_width_in_luma_samples) by CtbSizeY.
[0234] , information indicating the height of parallel block rows to be sent (e.g., tile_row_height_minus1[i]) can be sent only when the information indicating the number of parallel block row heights to be sent (e.g., num_exp_tile_rows_minus1) exceeds 0. When the information indicating the number of parallel block row heights to be sent (e.g., num_exp_tile_rows_minus1) is 0, the current picture and / or sub - picture can consist of a single parallel block. Therefore, the information indicating the height of parallel block rows (e.g., tile_row_height_minus1[i]) can be inferred from the height of the current picture and / or sub - picture.
[0235] When the current picture is a single parallel block, the height of the picture (parallel block) can be signaled by information indicating the height of the picture of the PPS (e.g., pic_height_in_luma_samples). CtbSizeY, which is the size of the CTU (CTB), can be inferred by CtbLog2SizeY = sps_log2_ctu_size_minus5 + 5 or CtbLog2SizeY = pps_log2_ctu_size_minus5 + 5. Additionally, CtbSizeY can be inferred by CtbSizeY = 1 << CtbLog2SizeY. Information indicating the height of the parallel block row with index 0 (e.g., tile_row_height_minus1[0]) can be inferred by taking the modulus or by dividing the information indicating the height of the picture (e.g., pic_height_in_luma_samples) by CtbSizeY.
[0236] Fig.18 Describe a method (syntax) for signaling the width information of parallel block columns in a picture according to an embodiment of the present disclosure.
[0237] Fig.19 Describe a method (syntax) for signaling the height information of parallel block rows in a picture according to an embodiment of the present disclosure.
[0238] Fig. 20 Describe the slices and parallel blocks constituting a picture according to an embodiment of the present disclosure. A single picture and / or sub-picture can be partitioned into one or more parallel blocks. Additionally, raster scan and / or rectangular slice partition information can be signaled by using parallel block partition information. The parallel block partition information can be defined as a parallel block index. A single parallel block can be partitioned into one or more slices. Among the slices included in the current picture and / or sub-picture, information indicating whether it is a rectangular slice (e.g., rect_slice_flag) can be signaled. Additionally, information indicating the total number of slices included in the current picture and / or sub-picture (e.g., num_slice_in_pic_minus1) can be signaled. Additionally, when a single parallel block is partitioned into one or more slices, the information indicating the horizontal size of the slice (e.g., slice_width_in_tiles_minus1) and the information indicating the vertical size of the slice (e.g., slice_height_in_tiles_minus1) can indicate 0. Here, information indicating the number of slices partitioned within the parallel block (e.g., num_slices_in_minus1) can be sent.
[0239] Refer to Fig. 20, slice 4 may be partitioned into 4 tiles: tile 1, tile 2, tile 5, and tile 6. The horizontal size and vertical size of slice 4 may be indicated by the number of tile units. The slice width and slice height of slice 4 may be partitioned into 2 tiles. Therefore, information indicating the slice width of slice 4 (e.g., slice_width_in_tiles_minus1) may indicate 1. Information indicating the slice height of slice 4 (e.g., slice_height_in_tiles_minus1) may indicate 1.
[0240] Tile 0 and tile 4 may be partitioned into 2 slices, respectively. In the slices of tile 0 and tile 4, information indicating the horizontal size of the slice (e.g., slice_width_in_tiles_minus1) and information indicating the vertical size of the slice (e.g., slice_height_in_tiles_minus1) may indicate 0. In addition, in tile 0 and tile 4, information indicating the number of slices partitioned within the tile (e.g., num_slices_in_minus1) may indicate 1.
[0241] When information indicating the number of slices partitioned within a tile (e.g., num_slices_in_minus1) is equal to or greater than 1, the current tile may be partitioned into at least two slices. Here, information indicating the slice height (e.g., slice_height_in_ctu_minus1) may be transmitted the number of slices - 1 times. In addition, the height of the last slice may be implicitly inferred by the height of the current tile. In the case of tile 0, information indicating the slice height (e.g., slice_height_in_ctu_minus1) may be signaled only for slice 0. In the case of tile 4, information indicating the slice height (e.g., slice_height_in_ctu_minus1) may be signaled only for slice 2. In addition, the slice height may correspond to a CTU and / or CTB unit. As an example, when information indicating the number of slices partitioned within a tile (e.g., num_slices_in_minus1) is 0, the tile is equal to the slice and the height of the tile is equal to the height of the slice. Therefore, information indicating the slice height (eg, slice_height_in_ctu_minus1) may not be signaled.
[0242] Fig.21 A method (syntax) of signaling slice information in a picture and a tile according to an embodiment of the present disclosure is described.
[0243] Fig. 22The slices constituting a tile according to an embodiment of the present disclosure are described. A single picture and / or a sub-picture may be partitioned into one or more tiles. A single tile may be partitioned into one or more slices. Here, in order to remove redundancy of information indicating a slice height (e.g., slice_height_in_ctu_minus1), the slice height may be partitioned into one or more tiles. Fig.17 The method of signaling tile information described in is similar to signaling slice information.
[0244] Reference Fig. 22 , a single picture may be partitioned into two tiles: tile 0 and tile 1. Tile 0 and tile 1 may be partitioned into 5 slices, respectively. Information indicating the number of slices included in the current picture (e.g., num_slices_in_pic_minus1) may indicate 9. Tile 0 may be partitioned into 5 slices: slice 0, slice 1, slice 2, slice 3, and slice 4. The height of slice 0 may be 4, and the heights of other slices (slice 1, slice 2, slice 3, and slice 4) may generally be 2. The index may increase so as to increase from slice 1 to slice 4 in tile 0.
[0245] In tile 0, information indicating the number of slices partitioned within the tile (e.g., num_slices_in_minus1) may indicate 4. Information indicating the slice height having index 0 (e.g., slice_height_in_ctu_minus1[0]) may indicate 3. In addition, information indicating the slice height having index 1 (e.g., slice_height_in_ctu_minus1[1]) may indicate 1. In addition, information indicating the slice height having index 2 (e.g., slice_height_in_ctu_minus1[2]) may indicate 1. In addition, information indicating the slice height having index 3 (e.g., slice_height_in_ctu_minus1[3]) may indicate 1. In the case of slice 4 which is the last slice, information indicating the slice height having index 4 (e.g., slice_height_in_ctu_minus1[4]) may be inferred by using the height value of the current tile. Specifically, information indicating the slice height with index 4 (e.g., slice_height_in_ctu_minus1[4]) can be inferred by subtracting the following items from the height value of the current parallel block: information indicating the slice height with index 0 (e.g., slice_height_in_ctu_minus1[0]) plus 1, information indicating the slice height with index 1 (e.g., slice_height_in_ctu_minus1[1]) plus 1, information indicating the slice height with index 2 (e.g., slice_height_in_ctu_minus1[2]) plus 1, and information indicating the slice height with index 3 (e.g., slice_height_in_ctu_minus1[3]) plus 1.
[0246] Since slices with indexes 1 to 4 in tile 0 generally have a height of 2, information indicating the slice height (e.g., slice_height_in_ctu_minus1) may generally indicate 1. Since tile 0 has 2 slices with different heights, information indicating the number of slice heights within the tile to be transmitted (e.g., num_exp_tile_columns_minus1) may indicate 1. Here, information indicating the slice height with index 0 (e.g., slice_height_in_ctu_minus1[0]) may indicate 3. In addition, information indicating the slice height with index 1 (e.g., slice_height_in_ctu_minus1[1]) may indicate 1. Information indicating the slice height with index 1 (e.g., slice_height_in_ctu_minus1[1]) may be commonly applied to the remaining slices (slice 2, slice 3, and slice 4). In addition, slice 4, which is the last slice, may be inferred by using the height of the current tile. Specifically, information indicating the slice height with index 4 (e.g., slice_height_in_ctu_minus1[4]) can be inferred by subtracting the following items from the height value of the current parallel block: information indicating the slice height with index 0 (e.g., slice_height_in_ctu_minus1[0]) plus 1, information indicating the slice height with index 1 (e.g., slice_height_in_ctu_minus1[1]) plus 1, information indicating the slice height with index 2 (e.g., slice_height_in_ctu_minus1[2]) plus 1, and implicitly inferred information indicating the slice height with index 3 (e.g., slice_height_in_ctu_minus1[3]) plus 1.
[0247] The tile 0 may have a tile height corresponding to 12 CTU and / or CTB units. Information indicating the number of slice heights within the tile to be transmitted (e.g., num_exp_tile_columns_minus1) may indicate 1. In addition, information indicating the slice height with index 1 (e.g., slice_height_in_ctu_minus1[1]) may indicate 1. Therefore, the tile 0 may be composed of at least 2 slices. It can be inferred that the height from the third slice may be generally 2. When the height of the tile 0 is 12, the height of the remaining slices (RemainSlicesHeight) except for slices 0 and slice 1 can be inferred by information indicating the slice height with index 0 (e.g., slice_height_in_ctu_minus1[0]) and information indicating the slice height with index 1 (e.g., slice_height_in_ctu_minus1[1]). Specifically, the heights of the remaining slices (RemainSlicesHeight) except the slices 0 and 1 may be inferred by subtracting information indicating the height of the slice with index 0 (e.g., slice_height_in_ctu_minus1[0]) plus 1 and information indicating the height of the slice with index 1 (e.g., slice_height_in_ctu_minus1[1]) plus 1 from the height 12 of the tile 0. The heights of the remaining slices (RemainSlicesHeight) except the slices 0 and 1 may correspond to 6. Since the information indicating the height of the slice with index 1 (e.g., slice_height_in_ctu_minus1[1]) is generally applied to the heights of the remaining slices (RemainSlicesHeight) except the slices 0 and 1, the number of the remaining slices may be inferred.
[0248] Specifically, the height of the remaining slices (RemainSlicesHeight) can be expressed by the following formula: RemainSlicesHeight = parallel block height (TileHeight) - {information indicating the stripe height with index 0 (for example, slice_height_in_ctu_minus1[0]) + information indicating the stripe height with index 1 (for example, slice_height_in_ctu_minus1[1]) + the number of stripe heights within the parallel block to be sent (NumExpSliceInTile)}.
[0249] Specifically, information about the division of the number of slices (DivSliceNum) may be represented by the following formula: DivSliceNum=the height of the remaining slices (RemainSlicesHeight) / {information indicating the height of the slice having index 1 (eg, slice_height_in_ctu_minus1[1])+1}.
[0250] In [remaining slice height (RemainSlicesHeight) % {information indicating the slice height with index 1 (eg, slice_height_in_ctu_minus1[1])+1}], slice remainder operation information (RemSliceNum) may be 1 or 0. Here, the remainder (%) operation may be replaced by a modulo operation.
[0251] When the height of the remaining slices (RemainSlicesHeight) is greater than 0 and less than the sum of information indicating the slice height with index 1 (eg, slice_height_in_ctu_minus1[1]) and 1, the number of remaining slices within the current tile may be inferred to be 1.
[0252] When the height of the remaining slices (RemainSlicesHeight) is equal to or greater than the sum of information indicating the height of the slice with index 1 (e.g., slice_height_in_ctu_minus1[1]) and 1, the number of remaining slices within the current parallel block can be inferred by {information about the division of the number of slices (DivSliceNum) + slice modulo operation information (RemSliceNum)}.
[0253] Fig.23 A method (syntax) of signaling slice information in a picture and a tile according to another embodiment of the present disclosure is described.
[0254] Fig.24 A method (syntax) of signaling slice information in a picture and a tile according to still another embodiment of the present disclosure is described.
[0255] Reference Fig.24, pps_num_slices_in_pic_minus1 plus 1 may indicate the number of rectangular slices per picture of the reference PPS. The value of pps_num_slices_in_pic_minus1 may correspond to a range from 0 to MaxSlicesPerAu-1. When pps_no_pic_partition_flag is 1, the value of pps_num_slices_in_pic_minus1 may be inferred to be 0. When pps_single_slice_per_subpic_flag is 1, the value of pps_num_slices_in_pic_minus1 may be inferred to be equal to sps_num_subpics_minus1.
[0256] When pps_tile_idx_delta_present_flag is 0, the syntax element pps_tile_idx_delta_val[i] may not be present in the PPS. In addition, each picture of the referenced PPS may be partitioned into rectangular strip rows and rectangular strip columns according to the raster order. When pps_tile_idx_delta_present_flag is 1, the syntax element pps_tile_idx_delta_val[i] may be present in the PPS. In addition, as the value of i increases, each rectangular strip of the picture of the referenced PPS may be specified in the order indicated by the value of pps_tile_idx_delta_val[i]. When the syntax element pps_tile_idx_delta_val[i] does not exist in the PPS, pps_tile_idx_delta_present_flag may be inferred to be 1.
[0257] pps_slice_width_in_tiles_minus1[i] plus 1 may indicate the width of the i-th rectangular slice in a tile column. The value of pps_slice_width_in_tiles_minus1[i] may range from 0 to NumTileColumns-1. When pps_slice_width_in_tiles_minus1[i] does not exist, the value of pps_slice_width_in_tiles_minus1[i] may be inferred to be 0.
[0258] When pps_num_exp_slices_in_tile[i] is 0, pps_slice_height_in_tiles_minus1[i] plus 1 may indicate the height of the i-th rectangular slice in a tile row. The value of pps_slice_height_in_tiles_minus1[i] may range from 0 to NumTileRows-1. When pps_slice_height_in_tiles_minus1[i] does not exist, the value of pps_slice_height_in_tiles_minus1[i] may be inferred to be 0 if SliceTopLeftTileIdx[i] / NumTileColumns is equal to NumTileRows-1. When SliceTopLeftTileIdx[i] / NumTileColumns is not equal to NumTileRows–1, the value of pps_slice_height_in_tiles_minus1[i] may be inferred to be equal to pps_slice_height_in_tiles_minus1[i-1].
[0259] pps_num_exp_slices_in_tile[i] may indicate the number of slice heights explicitly set for a slice of a tile including the i-th slice. A tile may be a tile having the same tile index as SliceTopLeftTileIdx[i]. The value of pps_num_exp_slices_in_tile[i] may be in the range from 0 to RowHeight[SliceTopLeftTileIdx[i] / NumTileColumns]–1. When pps_num_exp_slices_in_tile[i] does not exist, the value of pps_num_exp_slices_in_tile[i] may be inferred to be 0. When pps_num_exp_slices_in_tile[i] is 0, the tile including the i-th slice may not be partitioned into multiple slices. When pps_num_exp_slices_in_tile[i] is not 0, a tile including the i-th slice may be partitioned into a plurality of slices, or may not be partitioned into a plurality of slices. Here, pps_num_exp_slices_in_tile[i] may be greater than 0.
[0260] When pps_num_exp_slices_in_tile[i] is greater than 0, pps_exp_slice_height_in_ctus_minus1[i][j] plus 1 may indicate the height of the j-th rectangular slice in the tile including the i-th slice in units of CTU rows, where j ranges from 0 to pps_num_exp_slices_in_tile[i]-1. pps_exp_slice_height_in_ctus_minus1[i] may be used to infer the height of the rectangular slice in the tile including the i-th slice greater than pps_num_exp_slices_in_tile[i]-1. The value of pps_exp_slice_height_in_ctus_minus1[i][j] may be in the range of 0 to RowHeight[SliceTopLeftTileIdx[i] / NumTileColumns]–1.
[0261] pps_tile_idx_delta_val[i] may indicate a difference between a tile index of a tile of the first CTU including the (i+1)th rectangular slice and a tile index of a tile of the first CTU including the i-th rectangular slice. The value of pps_tile_idx_delta_val[i] may have a range from -NumTilesInPic+1 to NumTilesInPic-1. When pps_tile_idx_delta_val[i] does not exist, the value of pps_tile_idx_delta_val[i] may be inferred to be 0. When pps_tile_idx_delta_val[i] exists, the value of pps_tile_idx_delta_val[i] is not 0. When pps_rect_slice_flag is 1 and SubpicIdxForSlice[idxA] is less than SubpicIdxForSlice, for any two slices with picture level slice index idxA and picture level slice index idxB belonging to the same picture but different sub-pictures, the value of idxA shall be less than idxB. The above conditions may correspond to bitstream conformance requirements.
[0262] Fig.25 A method of encoding a video according to an embodiment of the present disclosure is described.
[0263] Reference Fig.25, when a current picture consists of a plurality of parallel blocks and a current parallel block among the plurality of parallel blocks is partitioned into a plurality of slices, information about the number of slices in the parallel block may be generated, wherein the information indicates the number of the plurality of slices included in the current parallel block (S2510).
[0264] In addition, information about a slice height within a tile may be generated, wherein the information indicates heights of the plurality of slices included in the current tile (S2520).
[0265] In addition, a bitstream including information about the number of slices in the tile and information about the height of the slice in the tile may be generated ( S2530 ).
[0266] According to an embodiment, for a last slice among a plurality of slices included in a current tile, information about a slice height in the tile may not be generated.
[0267] According to an embodiment, rectangular slice information indicating whether one or more slices included in the current picture are rectangular may be generated. When one or more slices are rectangular, information about the number of slices in a tile and information about the slice height in the tile may be encoded.
[0268] According to an embodiment, single slice information indicating whether only one slice is included in the current picture may be generated. When a plurality of slices are included in the current picture, information about the number of slices in a tile and information about slice heights in the tile may be encoded.
[0269] According to an embodiment, when a plurality of slices are included in a current picture, information about the number of slices in the picture may be generated, wherein the information indicates the number of the plurality of slices in the current picture.
[0270] According to an embodiment, slice size information indicating the size of a current slice in units of tiles among a plurality of slices included in a current picture may be generated. When the size of the current slice is equal to or smaller than the size of the current tile, information about the number of slices in the tile may be generated.
[0271] According to an embodiment, information about the number of slice heights in a tile may be generated, wherein the information indicates the number of a plurality of slice height types included in a current tile.
[0272] According to an embodiment, single tile information indicating whether a plurality of tiles are included in the current picture may be generated. When the plurality of tiles are included in the current picture, tile height information indicating the height of the plurality of tiles and tile width information indicating the width of the plurality of tiles may be generated.
[0273] According to an embodiment, tile width information for the width of a right boundary tile existing on the right boundary of the current picture among a plurality of tiles may not be generated.
[0274] According to an embodiment, tile height information for a line height of a bottom boundary tile existing on a bottom boundary of a current picture among a plurality of tiles may not be generated.
[0275] According to an embodiment, information about a slice height in a tile may be generated only for a first slice among a plurality of consecutive slices including a last slice of the tile and having the same height.
[0276] Fig.26 A method of decoding a video according to an embodiment of the present disclosure is described.
[0277] Reference Fig.26 , when a current picture consists of a plurality of parallel blocks and a current parallel block among the plurality of parallel blocks is partitioned into a plurality of slices, information about the number of slices in the parallel block may be decoded, wherein the information indicates the number of the plurality of slices included in the current parallel block (S2610).
[0278] In addition, information about a slice height within a tile may be decoded, wherein the information indicates heights of the plurality of slices included in the current tile ( S2620 ).
[0279] In addition, the number of the plurality of slices included in the current tile and the heights of the plurality of slices included in the current tile may be determined ( S2630 ).
[0280] According to an embodiment, the heights of the plurality of slices indicated by the information about the slice heights in the tile may correspond to a CTU (Coding Tree Unit) or a CTB (Coding Tree Block).
[0281] According to an embodiment, the last slice among the plurality of slices included in the current tile may be inferred using the height of the current tile and the heights of the remaining slices except for the last slice.
[0282] According to an embodiment, rectangular slice information indicating whether one or more slices included in the current picture are rectangular may be decoded. When one or more slices are rectangular, information about the number of slices in a tile and information about the slice height in the tile may be decoded.
[0283] According to an embodiment, single slice information indicating whether only one slice is included in the current picture may be decoded. When a plurality of slices are included in the current picture, information about the number of slices in a tile and information about slice heights in the tile may be decoded.
[0284] According to an embodiment, when a plurality of slices are included in a current picture, information about the number of slices in a picture may be decoded, wherein the information indicates the number of the plurality of slices in the current picture.
[0285] According to an embodiment, slice size information indicating the size of a current slice in units of tiles among a plurality of slices included in a current picture may be decoded. When the size of the current slice is equal to or smaller than the size of the current tile, information about the number of slices in the tile may be decoded.
[0286] According to an embodiment, information about the number of slice heights in a tile may be decoded, wherein the information indicates the number of a plurality of slice height types included in a current tile.
[0287] According to an embodiment, single parallel block information indicating whether a plurality of parallel blocks are included in the current picture may be decoded. When the plurality of parallel blocks are included in the current picture, parallel block height information indicating the height of the plurality of parallel blocks and parallel block width information indicating the width of the plurality of parallel blocks may be decoded.
[0288] According to an embodiment, the width of the right boundary tile may be inferred using the width of the current picture and the widths of the remaining tiles on the same row as the right boundary tile, wherein the right boundary tile is a tile among the plurality of tiles that is located on the right boundary of the current picture.
[0289] According to an embodiment, the row height of the bottom boundary tile may be inferred using the height of the current picture and the heights of the remaining tiles on the same column as the bottom boundary tile, wherein the bottom boundary tile is a tile among the plurality of tiles that is located on the bottom boundary of the current picture.
[0290] According to an embodiment, information about a slice height in a tile may be decoded only for a first slice among a plurality of consecutive slices including a last slice of the tile and having the same height.
[0291] According to an embodiment, there may be provided a computer-readable recording medium storing video encoding data decoded according to a video decoding method.
[0292] In the above embodiments, the method is described based on a flowchart having a series of steps or units, but the present disclosure is not limited to the order of the steps, but some steps may be performed simultaneously with other steps or in a different order. In addition, it should be understood by those of ordinary skill in the art that the steps in the flowchart do not exclude each other, and other steps may be added to the flowchart, or some steps may be deleted from the flowchart without affecting the scope of the present disclosure.
[0293] The above embodiments include various aspects of the examples. All possible combinations for various aspects may not be described, but those skilled in the art will be able to recognize different combinations. Therefore, the present disclosure may include all substitutions, modifications and changes within the scope of the claims.
[0294] The embodiments of the present disclosure may be implemented in the form of program instructions, which may be executed by various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include independent program instructions, data files, data structures, etc., or a combination of program instructions, data files, and data structures, etc. The program instructions recorded in the computer-readable recording medium may be specially designed and constructed for the present disclosure, or known to a person of ordinary skill in the field of computer software technology. Examples of computer-readable recording media include the following items that are specially constructed to store and implement program instructions: magnetic recording media, such as hard disks, floppy disks, and tapes; optical data storage media, such as CD-ROMs and DVD-ROMs; magneto-optical media, such as floppy disks; and hardware devices, such as read-only memories (ROMs), random access memories (RAMs), flash memories, etc. Examples of program instructions include not only machine language codes designed by compilers, but also high-level language codes that can be implemented by computers using interpreters. In order to implement processing according to the present disclosure, hardware devices may be configured to be operable by one or more software modules, and vice versa.
[0295] Although the present disclosure has been described according to specific items such as detailed elements and limited embodiments and drawings, they are provided only to help a more general understanding of the present disclosure, and the present disclosure is not limited to the above embodiments. It will be appreciated by those skilled in the art that various modifications and changes may be made based on the above description.
[0296] Therefore, the spirit of the present disclosure should not be limited to the above-described embodiments, and the full scope of the appended claims and their equivalents will fall within the scope and spirit of the present invention.
Claims
1. A video encoding method, the method comprising: Partition the current screen into multiple parallel blocks; and Partitioning a current tile among the plurality of tiles into a plurality of stripes, wherein slice number information is encoded into the bitstream, wherein the slice number information indicates the number of slices in which the height information is explicitly encoded, Wherein, for the first stripe whose sequence number is less than or equal to the number of stripes, the height information is explicitly encoded, wherein, for a second stripe whose sequence number is greater than the number of stripes, the step of encoding the height information is skipped, and Therein, the height of the second stripe is the same as the height of the previous stripe whose height information was last encoded.
2. The video encoding method according to claim 1, in, The height information indicates the height of a slice in units of a coding tree unit CTU or a coding tree block CTB.
3. The video encoding method according to claim 1, wherein: The method further comprises: encoding rectangular slice information indicating whether the rectangular slice mode is applied to the determined slice, Wherein, when the rectangular slice mode is applied, for the slice, the slice-tile block width information and the slice-tile block height information are explicitly encoded, The stripe-tile width information indicates a value obtained by subtracting 1 from the stripe width expressed in units of tile columns, and The stripe-tile height information indicates a value obtained by subtracting 1 from the stripe height expressed in units of tile rows.
4. The video encoding method according to claim 3, wherein: When both the slice-tile width information and the slice-tile height information are encoded as 0, the slice number information is encoded into a bitstream.
5. The video encoding method according to claim 4, wherein: When the slice includes a plurality of tiles, at least one of the slice-tile width information or the slice-tile height information is encoded to have a value greater than 0, and Wherein, when the slice has a size equal to or smaller than a size of the current tile, both the slice-tile width information and the slice-tile height information are encoded to have a value of 0.
6. The video encoding method according to claim 1, further comprising: encoding single tile information indicating whether a plurality of tiles are included in the current picture; and When the single tile information indicates that the current picture is not composed of a single tile, tile height information indicating a height of a tile row and tile width information indicating a width of a tile column are encoded.
7. The video encoding method according to claim 6, in, For the last tile column adjacent to the right boundary of the current picture, tile width information is not encoded, and the width of the last tile column is the same as the value obtained by subtracting the sum of widths of previous tile columns from the width of the current picture.
8. The video encoding method according to claim 1, in, The height of the second slice is the same as the smaller height between the height of the previous slice whose height information is last encoded and the remaining height of the current tile, where the remaining height represents the value obtained by subtracting the sum of the heights of the previous slices from the height of the current tile.
9. A video decoding method, the method comprising: Partition the current screen into multiple parallel blocks; and Partitioning a current tile among the plurality of tiles into a plurality of stripes, wherein the current tile is partitioned into a plurality of slices based on slice number information, wherein the slice number information indicates the number of slices for which height information is explicitly signaled, wherein the height of the first slice whose sequence number is less than or equal to the number of slices is determined based on height information explicitly decoded from the bitstream, The height of the second stripe whose sequence number is greater than the number of stripes is determined based on the height of the previous stripe whose height information is decoded last.
10. The video decoding method according to claim 9, in, The height information indicates the height of a slice in units of a coding tree unit CTU or a coding tree block CTB.
11. The video decoding method according to claim 9, wherein: The method further includes: decoding rectangular stripe information indicating whether the rectangular stripe mode is applied to the determination stripe, Wherein, when the rectangular stripe mode is applied, for a stripe, stripe-tile block width information and stripe-tile block height information are explicitly signaled, The stripe-tile width information indicates a value obtained by subtracting 1 from the stripe width expressed in units of tile columns, and The stripe-tile height information indicates a value obtained by subtracting 1 from the stripe height expressed in units of tile rows.
12. The video decoding method according to claim 11, wherein: When both the slice-tile width information and the slice-tile height information are 0, the slice number information is decoded from a bitstream.
13. The video decoding method according to claim 12, further comprising: in, When the stripe-tile width information or the stripe-tile height information is greater than 0, the stripe includes a plurality of tiles, and When both the slice-tile width information and the slice-tile height information are 0, the slice is determined to have a size equal to or smaller than a size of a current tile.
14. The video decoding method according to claim 9, further comprising: Decoding single tile information indicating whether a plurality of tiles are included in the current picture; and When the single tile information indicates that the current picture is not composed of a single tile, tile height information indicating a height of a tile row and tile width information indicating a width of a tile column are decoded.
15. The video decoding method according to claim 14, in, For the last tile column adjacent to the right boundary of the current picture, the tile width information is not decoded, and the width of the last tile column is inferred by subtracting the sum of widths of previous tile columns from the width of the current picture.
16. The video decoding method according to claim 9, in, The height of the second slice is determined as the smaller height between the height of the previous slice whose height information is decoded last and the remaining height of the current tile, wherein the remaining height represents the value obtained by subtracting the sum of the heights of the previous slices from the height of the current tile.
17. An apparatus for transmitting compressed video data, comprising: a processor configured to obtain compressed video data; as well as a sending unit, configured to send the compressed video data, The step of obtaining the compressed video data comprises: Partition the current screen into multiple parallel blocks; and Partitioning a current tile among the plurality of tiles into a plurality of stripes, wherein slice number information is encoded into the bitstream, wherein the slice number information indicates the number of slices in which the height information is explicitly encoded, Wherein, for the first stripe whose sequence number is less than or equal to the number of stripes, the height information is explicitly encoded, wherein, for a second stripe whose sequence number is greater than the number of stripes, the step of encoding the height information is skipped, and Therein, the height of the second stripe is the same as the height of the previous stripe whose height information was last encoded.