Method for processing an image and device therefor
By employing a segmentation mode that combines multiple tree structures when the encoded tree blocks exceed the image boundaries, the block partitioning is optimized, thus solving the storage and processing pressure of high-dimensional video content and improving encoding efficiency and compression performance.
Patent Information
- Application Number
- CN202410417023.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-06-27
- Filing Date
- 2019-04-19
- Publication Date
- 2025-12-26
- Estimated Expiration
- 2039-04-19
AI Technical Summary
Existing technologies struggle to effectively handle the high-dimensional, high-spatial-resolution, and high-frame-rate scene representations of next-generation video content, leading to a dramatic increase in memory storage and processing power.
The block partitioning process is optimized by partitioning the current coding tree block into multiple coding blocks when it exceeds the image boundary and parsing various syntax elements to determine the appropriate segmentation mode, including combined segmentation of binary tree, ternary tree and quadtree structures.
It improves compression performance, reduces the number of bits required for segmented information signaling, and enhances coding efficiency.
Smart Images

Figure CN118101936B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The disclosure relates to a method for processing a still image or a moving picture, and more particularly, to a method for determining a partition structure of a block on which encoding / decoding is performed and an apparatus supporting the same. BACKGROUND
[0002] Compression encoding refers to a series of signal processing techniques for transmitting digitized information through a communication line, or techniques for storing information in a form suitable for a storage medium. A medium including a picture, an image, audio, etc. can be an object for compression encoding, and specifically, a technique for performing compression encoding on a picture is referred to as video image compression.
[0003] Next-generation video content should have a feature of a scene representation with high dimension, high spatial resolution, and high frame rate. In order to process such content, it will result in a sharp increase in memory storage, memory access rate, and processing power.
[0004] Therefore, there is a need to design an encoding tool for efficiently processing next-generation video content. SUMMARY
[0005] TECHNICAL PROBLEM
[0006] Embodiments of the disclosure propose a method for efficiently adjusting block partitioning when performing block partitioning in a QTBT structure.
[0007] The technical objects of the disclosure are not limited to the above-mentioned technical objects, and other technical objects not mentioned above will be apparent to those skilled in the art from the following description.
[0008] TECHNICAL SOLUTION
[0009] In one aspect, a method for decoding an image is provided, which can include: partitioning a current coding tree block into a plurality of coding blocks when the current coding tree block is out of a boundary of a current picture, such that the coding blocks partitioned from the current coding tree block are included in the current picture; parsing a first syntax element indicating whether to partition a current coding block into a plurality of sub-blocks when the current coding block satisfies a predetermined condition; parsing a second syntax element indicating whether to partition the current coding block by using a quad-tree structure when the first syntax element indicates to partition the current coding block; parsing at least one of a third syntax element and a fourth syntax element when the second syntax element indicates not to partition the current coding block by using the quad-tree structure, the third syntax element indicating whether to partition the current coding block by using a binary-tree structure or whether to partition the current coding block by using a ternary-tree structure, the fourth syntax element indicating a split direction of the current coding block; and determining a split mode of the current coding block based on at least one of the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element.
[0010] Preferably, the partitioning of the current coding tree block into the plurality of coding blocks can be performed by partitioning the current coding tree block into the plurality of coding blocks by using a binary-tree structure or a ternary-tree structure until an active area in the current coding tree block is reached, wherein the active area can represent an area in the current coding tree block belonging to the boundary of the current picture.
[0011] Preferably, the partitioning of the current coding block into the plurality of coding blocks can further include: parsing a fifth syntax element indicating whether to allow quad-tree splitting when the current coding tree block is out of the boundary of the current picture, and when the fifth syntax element indicates not to allow the quad-tree splitting, partitioning the current coding tree block into the plurality of coding blocks by using the binary-tree structure or the ternary-tree structure.
[0012] Preferably, the fifth syntax element can be signaled through a sequence parameter set, a picture parameter set, a slice group header, or a header of a network abstraction layer unit.
[0013] Preferably, the partitioning of the current coding tree block into the plurality of coding blocks can be performed by partitioning the current coding tree block into the plurality of coding blocks by using a binary-tree structure or a ternary-tree structure until an active area in the current coding tree block is reached, and wherein the active area can represent an area in the current coding tree block belonging to the boundary of the current picture.
[0014] Preferably, the partitioning of the current coding tree block into the plurality of coding blocks can be performed by partitioning the current coding tree block into the coding blocks by using the quad-tree structure when a width of the active area is greater than a maximum transform size or a height of the active area is greater than the maximum transform size.
[0015] In another aspect, an apparatus for decoding an image is provided, which can include: a coding tree block partition unit that partitions a current coding tree block into a plurality of coding blocks when the current coding tree block exceeds a boundary of a current picture, such that the coding blocks partitioned from the current coding tree block are included in the current picture; a syntax element parsing unit that parses a first syntax element indicating whether the current coding block is partitioned into a plurality of sub-blocks when the current coding block satisfies a predetermined condition, parses a second syntax element indicating whether the current coding block is partitioned by using a quad-tree structure when the first syntax element indicates that the current coding block is partitioned, and parses at least one of a third syntax element indicating whether the current coding block is partitioned by using a binary-tree structure or a ternary-tree structure or a fourth syntax element indicating a split direction of the current coding block when the second syntax element indicates that the current coding block is not partitioned by using the quad-tree structure; and a split mode determination unit that determines a split mode of the current coding block based on at least one of the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element.
[0016] Preferably, the coding tree block partition unit can partition the current coding tree block into the plurality of coding blocks by using the binary-tree structure or the ternary-tree structure until an active area in the current coding tree block is reached, and here, the active area can mean an area in the current coding tree block that belongs to the boundary of the current picture.
[0017] Preferably, the coding tree block partition unit can parse a fifth syntax element indicating whether quad-tree splitting is allowed when the current coding tree block exceeds the boundary of the current picture, and can partition the current coding tree block into the plurality of coding blocks by using the binary-tree structure or the ternary-tree structure when the fifth syntax element indicates that the quad-tree splitting is not allowed.
[0018] Preferably, the fifth syntax element can be signaled through a sequence parameter set, a picture parameter set, a slice group header, or a header of a network abstraction layer unit.
[0019] Preferably, the coding tree block partition unit can partition the current coding tree block into the plurality of coding blocks by using the quad-tree structure until an active area in the current coding tree block is reached, and here, the active area can mean an area in the current coding tree block that belongs to the boundary of the current picture.
[0020] Preferably, the coding tree block partition unit can partition the current coding tree block into the coding blocks by using the quad-tree structure when a width of the active area is greater than a maximum transform size or a height of the active area is greater than the maximum transform size.
[0021] Technical Effects
[0022] According to embodiments of the disclosure, a QTBT partition structure is effectively determined, and related information is signaled to enhance compression performance.
[0023] In addition, according to embodiments of the disclosure, an inefficient partition structure is not allowed by considering the ratio of width to height to reduce the number of bits required for partition information signaling.
[0024] Effects obtainable in the present disclosure are not limited to what has been described above and other effects which are not mentioned will become apparent to those skilled in the art from the following description. BRIEF DESCRIPTION OF DRAWINGS
[0025] The accompanying drawings, which are included to provide a further understanding of the present disclosure and are incorporated in and constitute a part of this specification, illustrate embodiments of the present disclosure and together with the description serve to explain the technical features of the present disclosure.
[0026] Figure 1 is a schematic block diagram of an encoding apparatus in which encoding of a video / image signal is performed, to which embodiments of the present disclosure are applied.
[0027] Figure 2 is a schematic block diagram of a decoding apparatus in which decoding of a video / image signal is performed, to which embodiments of the present disclosure are applied.
[0028] Figure 3 is a diagram illustrating an example of a multi-type tree structure to which the present disclosure can be applied.
[0029] Figure 4 is a diagram illustrating a signaling mechanism for partitioning information of a quad tree having a nested multi-type tree structure, to which embodiments of the present disclosure can be applied.
[0030] Figure 5 is a diagram illustrating a method of partitioning a CTU into a plurality of CUs based on a quad tree and a nested multi-type tree structure, to which embodiments of the present disclosure can be applied.
[0031] Figure 6 is a diagram illustrating a method for limiting ternary tree partitioning, to which embodiments of the present disclosure can be applied.
[0032] Figure 7 is a diagram illustrating a block partitioning structure based on a quad tree, to which embodiments of the present disclosure are applied.
[0033] Figure 8 is a diagram illustrating a block partitioning structure based on a binary tree, to which embodiments of the present disclosure are applied.
[0034] Figure 9 is a diagram illustrating a block partitioning structure based on a ternary tree, to which embodiments of the present disclosure are applied.
[0035] Figure 10 FIG. 1 is a diagram illustrating a block partition structure based on a binary tree, a ternary tree, and a strip tree as an embodiment of application of the present disclosure.
[0036] Figure 11 FIG. 2 is a diagram as an embodiment of the present disclosure for describing a block partition structure of a square block.
[0037] Figure 12 FIG. 3 is a diagram illustrating a block partition structure of a non-square block as an embodiment of application of the present disclosure.
[0038] Figure 13 FIG. 4 is a diagram illustrating a block partition structure of a non-square block as an embodiment of application of the present disclosure.
[0039] Figure 14 FIG. 5 is a diagram illustrating a block partition structure of a non-square block as an embodiment of application of the present disclosure.
[0040] Figure 15 FIG. 6 is a diagram illustrating a block partition structure of a non-square block as an embodiment of application of the present disclosure.
[0041] Figure 16 FIG. 7 is a diagram as an embodiment of the present disclosure for describing a block partition structure of a square block.
[0042] Figure 17 FIG. 8 is a diagram illustrating a block partition structure of a non-square block as an embodiment of application of the present disclosure.
[0043] Figure 18 FIG. 9 is a diagram illustrating a block partition structure of a non-square block as an embodiment of application of the present disclosure.
[0044] Figure 19 FIG. 10 is a diagram illustrating a case where a coding tree unit (CTU) is outside a boundary of an image as an embodiment of application of the present disclosure.
[0045] Figure 20 FIG. 11 is a diagram illustrating a block partition structure based on an asymmetric tree as an embodiment of application of the present disclosure.
[0046] Figures 21 to 23 FIG. 12 is a diagram illustrating an example of block partitioning to which an embodiment of the present disclosure can be applied.
[0047] Figure 24 FIG. 13 is a diagram illustrating a method for determining whether to partition a block based on a maximum transform block size without syntax signaling as an embodiment of application of the present disclosure.
[0048] Figure 25is a flowchart illustrating a decoding method of a video signal according to an embodiment of applying the present disclosure.
[0049] Figure 26 is a diagram illustrating a decoding apparatus of a video signal according to an embodiment of applying the present disclosure.
[0050] Figure 27 is illustrated a video encoding system to which the present disclosure is applied.
[0051] Figure 28 is an architectural diagram as a content streaming system to which an embodiment of the present disclosure is applied. DETAILED DESCRIPTION
[0052] Some embodiments of the present disclosure are described in detail with reference to the accompanying drawings. The detailed description of the present disclosure is intended to describe some embodiments of the present disclosure, not to describe the only embodiments of the present disclosure. The following detailed description includes more details in order to provide a comprehensive understanding of the present disclosure. However, those skilled in the art will appreciate that the present disclosure can be implemented without such more details. Figure 1 The detailed description of the present disclosure is intended to describe some embodiments of the present disclosure, not to describe the only embodiments of the present disclosure. The following detailed description includes more details in order to provide a comprehensive understanding of the present disclosure. However, those skilled in the art will appreciate that the present disclosure can be implemented without such more details.
[0053] In some cases, in order to avoid the concepts of the present disclosure from becoming obscure, known structures and devices are omitted or can be shown in the form of a block diagram based on the core functions of each structure and device.
[0054] Although most of the terms used in the present disclosure are selected from general terms widely used in the art, some terms have been arbitrarily selected by the applicant and their meanings are explained in detail in the following description as necessary. Therefore, the present disclosure should be understood with the intended meanings of the terms rather than their simple names or meanings.
[0055] The specific terms used in the following description have been provided to help the understanding of the present disclosure, and the use of these specific terms can be changed in various forms without departing from the technical spirit of the present disclosure. For example, signals, data, samples, pictures, frames, blocks, etc. can be appropriately replaced and explained in each encoding process.
[0056] In the present specification, a "processing unit" refers to a unit in which encoding / decoding processes such as prediction, transformation, and / or quantization are performed. Hereinafter, for convenience of description, the processing unit can be referred to as a "processing block" or a "block".
[0057] Further, the processing unit can be interpreted to include the meaning of a unit for a luminance component and a unit for a chrominance component. For example, the processing unit can correspond to a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU), or a transform unit (TU).
[0058] Further, the processing unit can be interpreted as a unit for a luminance component or a unit for a chrominance component. For example, the processing unit can correspond to a coding tree block (CTB), a coding block (CB), a prediction unit PU, or a transform block (TB) of a luminance component. Further, the processing unit can correspond to a CTB, a CB, a PU, or a TB of a chrominance component. Further, the processing unit is not limited thereto, and can be interpreted as a meaning including a unit for a luminance component and a unit for a chrominance component.
[0059] Further, the processing unit is not necessarily limited to a square block, and can be configured in a polygonal shape having three or more vertices.
[0060] Further, in the present specification, a pixel is referred to as a sample. Further, using a sample can mean using a pixel value or the like.
[0061] Figure 1 is a schematic block diagram of an encoding apparatus that encodes a video / image signal to which an embodiment of the present disclosure is applied.
[0062] Referring to Figure 1 , the encoding apparatus 100 can be configured to include an image partitioner 110, a subtracter 115, a transformer 120, a quantizer 130, a dequantizer 140, an inverse transformer 150, an adder 155, a filter 160, a memory 170, an inter predictor 180, an intra predictor 185, and an entropy encoder 190. The inter predictor 180 and the intra predictor 185 can be collectively referred to as a predictor. In other words, the predictor can include the inter predictor 180 and the intra predictor 185. The transformer 120, the quantizer 130, the dequantizer 140, and the inverse transformer 150 can be included in a residual processor. The residual processor can further include the subtracter 115. In one embodiment, the image partitioner 110, the subtracter 115, the transformer 120, the quantizer 130, the dequantizer 140, the inverse transformer 150, the adder 155, the filter 160, the inter predictor 180, the intra predictor 185, and the entropy encoder 190 can be configured as one hardware component (e.g., an encoder or a processor). Further, the memory 170 can include a decoded picture buffer (DPB), and can be implemented by a digital storage medium.
[0063] The picture partitioner 110 can partition an input picture (or a picture or a frame) input to the encoding apparatus 100 into one or more processing units. For example, the processing unit can be referred to as a coding unit (CU). In this case, the coding unit can be recursively split from a coding tree unit (CTU) or a largest coding unit (LCU) based on a quad tree binary tree (QTBT) structure. For example, based on the quad tree structure and / or the binary tree structure, one coding unit can be split into a plurality of coding units having a deeper depth. In this case, for example, the quad tree structure can be first applied, and then the binary tree structure can be applied. Alternatively, the binary tree structure can be first applied. An encoding process according to the disclosure can be performed based on a final coding unit that is no longer split. In this case, the maximum coding unit can be directly used as the final coding unit based on coding efficiency according to a picture characteristic, or the coding unit can be recursively split into coding units having a deeper depth if necessary. Accordingly, a coding unit having an optimal size can be used as the final coding unit. In this case, the encoding process can include a process such as prediction, transform, or reconstruction to be described later. For another example, the processing unit can further include a prediction unit (PU) or a transform unit (TU). In this case, each of the prediction unit and the transform unit can be partitioned or divided from each final coding unit. The prediction unit can be a unit for sample prediction, and the transform unit can be a unit from which a transform coefficient is derived and / or a unit from which a residual signal is derived from the transform coefficient.
[0064] Depending on the situation, a unit can be used interchangeably with a block or an area. In general cases, an MxN block can indicate a set of samples or a set of transform coefficients configured in M columns and N rows. In general, a sample can represent a pixel or a value of a pixel, and can represent only a pixel / value of a pixel of a luma component or only a pixel / value of a pixel of a chroma component. Among samples, a picture (or an image) can be used as a term corresponding to a pixel or a picture.
[0065] The encoding apparatus 100 can generate a residual signal (a residual block or a residual sample array) by subtracting a prediction signal (a prediction block or a prediction sample array) output from the inter-predictor 180 or the intra-predictor 185 from an input image signal (an original block or an original sample array). The generated residual signal is transmitted to the transformer 120. In this case, as illustrated, a unit that subtracts a prediction signal (a prediction block or a prediction sample array) from an input image signal (an original block or an original sample array) within the encoding apparatus 100 can be referred to as a subtractor 115. The predictor can perform prediction on a processing target block (hereinafter, referred to as a current block), and can generate a prediction block including predicted samples of the current block. The predictor can determine whether to apply intra-prediction or inter-prediction in the current block or CU unit. The predictor can generate various information on prediction, such as prediction mode information that will be described later in the description of each prediction mode, and can transmit the information to the entropy encoder 190. The information on prediction can be encoded in the entropy encoder 190, and can be output in the form of a bitstream.
[0066] The intra-predictor 185 can predict the current block with reference to samples within the current picture. Depending on the prediction mode, the referenced samples can be located adjacent to the current block or can be spaced apart from the current block. In intra-prediction, the prediction mode can include a plurality of non-angular modes and a plurality of angular modes. The non-angular modes can include, for example, a DC mode and a planar mode. The angular modes can include, for example, 33 angular prediction modes or 65 angular prediction modes depending on the fineness of the prediction direction. In this case, for example, depending on the configuration, more or less than 33 angular prediction modes or 65 angular prediction modes can be used. The intra-predictor 185 can determine the prediction mode applied to the current block using the prediction mode applied to the neighboring block.
[0067] The inter predictor 180 can derive a prediction block of a current block based on a reference block (a reference sample array) designated by a motion vector on a reference picture. In this case, to reduce the amount of motion information transmitted in the inter prediction mode, motion information can be predicted in units of a block, a sub-block, or a sample based on the correlation of motion information between neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction) information. In the case of inter prediction, the neighboring blocks can include spatial neighboring blocks within the current picture and temporal neighboring blocks within the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block can be the same or different. The temporal neighboring block can be referred to as a co-located reference block or a co-located CU (colCU). The reference picture including the temporal neighboring block can be referred to as a co-located picture (colPic). For example, the inter predictor 180 can construct a motion information candidate list based on the neighboring blocks, and can generate information indicating which candidate is used to derive a motion vector and / or a reference picture index of the current block. The inter prediction can be performed based on various prediction modes. For example, in the case of a skip mode and a merge mode, the inter predictor 180 can use motion information of the neighboring blocks as motion information of the current block. In the case of the skip mode, unlike the merge mode, a residual signal can not be transmitted. In the case of a motion vector prediction (MVP) mode, a motion vector of the neighboring block can be used as a motion vector predictor. The motion vector of the current block can be indicated by signaling a motion vector difference.
[0068] The prediction signal generated by the inter predictor 180 or the intra predictor 185 can be used to generate a reconstructed signal or a residual signal.
[0069] The transformer 120 can generate transform coefficients by applying a transform scheme to the residual signal. For example, the transform scheme can include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loève transform (KLT), a graph-based transform (GBT), or a conditional non-linear transform (CNT). In this case, the GBT denotes a transform obtained from a graph if relationship information between pixels is expressed as a graph. The CNT denotes a transform obtained based on a prediction signal generated using all previously reconstructed pixels. Furthermore, the transform process can be applied to a block of pixels having the same size in a square form, or can be applied to a block having a variable size in a non-square form.
[0070] The quantizer 130 can quantize the transform coefficients and transmit them to the entropy encoder 190. The entropy encoder 190 can encode the quantized signal (information about the quantized transform coefficients) and output it in the form of a bitstream. The information about the quantized transform coefficients can be referred to as residual information. The quantizer 130 can rearrange the quantized transform coefficients in a block form in a one-dimensional vector form based on a coefficient scan sequence, and can generate the information about the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. The entropy encoder 190 can perform various encoding methods such as exponential Golomb, context adaptive variable length coding (CAVLC), and context adaptive binary arithmetic coding (CABAC). The entropy encoder 190 can also encode information (e.g., values of syntax elements) necessary for video / image reconstruction, together with or separately from the quantized transform coefficients. The encoded information (e.g., encoded video / image information) can be transmitted or stored in the form of a bitstream in units of network abstraction layer (NAL) units. The bitstream can be transmitted via a network, or can be stored in a digital storage medium. In this case, the network can include a broadcasting network and / or a communication network. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD. A transmitter (not shown) that transmits a signal output by the entropy encoder 190 and / or a storage (not shown) for storing the signal can be configured as an internal / external element of the encoding apparatus 100, or the transmitter can be an element of the entropy encoder 190.
[0071] The quantized transform coefficients output by the quantizer 130 can be used to generate a prediction signal. For example, the residual signal can be reconstructed by applying dequantization and inverse transformation on the quantized transform coefficients via the dequantizer 140 and the inverse transformer 150 within a loop. The adder 155 can add the reconstructed residual signal to the prediction signal output by the inter-predictor 180 or the intra-predictor 185, and thus a reconstructed signal (a reconstructed picture, a reconstructed block, or a reconstructed sample array) can be generated. If there is no residual for processing a target block as in the case where a skip mode has been applied, the prediction block can be used as the reconstructed block. The adder 155 can be referred to as a reconstructor or a reconstructed block generator. The generated reconstructed signal can be used for intra-prediction of a next processing target block within a current picture, and can be used for inter-prediction of a next picture by filtering as will be described later.
[0072] The filter 160 can improve subjective / objective picture quality by applying filtering to the reconstructed signal. For example, the filter 160 can generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture. The modified reconstructed picture can be stored in the memory 170, more specifically, in the DPB of the memory 170. The various filtering methods can include, for example, deblocking filter, sample adaptive offset, adaptive loop filter, and bilateral filter. The filter 160 can generate various information for filtering as will be described later in the description of each filtering method, and can transmit them to the entropy encoder 190. The filtering information can be encoded by the entropy encoder 190 and outputted in the form of a bitstream.
[0073] The modified reconstructed picture transmitted to the memory 170 can be used as a reference picture in the inter-predictor 180. If inter-prediction is applied, the encoding device can avoid prediction mismatch in the encoding device 100 and the decoding device, and improve encoding efficiency.
[0074] The DPB of the memory 170 can store the modified reconstructed picture to use it as a reference picture in the inter-predictor 180. The memory 170 can store motion information of a block in which motion information of a current picture is derived (or encoded) and / or motion information of a block in a picture that has been reconstructed. The stored motion information can be forwarded to the inter-predictor 180 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory 170 can store reconstructed samples of a reconstructed block in a current picture and forward them to the intra-predictor 185.
[0075] Figure 2 is an embodiment to which the present disclosure is applied, and is a schematic block diagram of a decoding device for decoding a video / image signal.
[0076] Referring to Figure 2 , the decoding device 200 can be configured to include an entropy decoder 210, a dequantizer 220, an inverse transformer 230, a summer 235, a filter 240, a memory 250, an inter-predictor 260, and an intra-predictor 265. The inter-predictor 260 and the intra-predictor 265 can be collectively referred to as a predictor. That is, the predictor can include the inter-predictor 180 and the intra-predictor 185. The dequantizer 220 and the inverse transformer 230 can be collectively referred to as a residual processor. That is, the residual processor can include the dequantizer 220 and the inverse transformer 230. According to an embodiment, the entropy decoder 210, the dequantizer 220, the inverse transformer 230, the summer 235, the filter 240, the inter-predictor 260, and the intra-predictor 265 can be configured as one hardware component (e.g., a decoder or a processor). Also, the memory 250 can include a decoded picture buffer (DPB), and can be implemented by a digital storage medium.
[0077] When the input includes a bitstream containing video / image information, the decoding device 200 can determine the appropriate response based on the input data. Figure 1 The process of processing video / image information in an encoding device reconstructs the image. For example, the decoding device 200 can use a processing unit applied in the encoding device to perform decoding. Therefore, the processing unit used for decoding can be, for example, an encoding unit. Based on a quadtree structure and / or a binary tree structure, encoding units can be segmented from encoding tree units or maximum encoding units. Furthermore, the reconstructed image signal decoded and output by the decoding device 200 can be played back by a playback device.
[0078] Decoding device 200 can receive bitstreams from... Figure 1 The signal output by the encoding device. The received signal can be decoded by the entropy decoder 210. For example, the entropy decoder 210 can deduce information (e.g., video / image information) for image reconstruction (or picture reconstruction) by parsing the bitstream. For example, the entropy decoder 210 can decode the information within the bitstream based on encoding methods such as exponential glumb coding, CAVLC, or CABAC, and can output the values of syntax elements for image reconstruction or quantized values of transform coefficients with respect to the residuals. More specifically, in the CABAC entropy decoding method, bins (bits) corresponding to each syntax element can be received from the bitstream. The context model can be determined using the decoding target syntax element information and the decoding information of adjacent and decoding target blocks or information in the symbols / bins decoded in previous steps. The probability of bin occurrence can be predicted based on the determined context model, and symbols corresponding to the values of each syntax element can be generated by performing arithmetic decoding on the bins. In this case, in the CABAC entropy decoding method, after determining the context model, the context model can be updated using the information of the symbols / bins decoded for the context model of the next symbol / bin. Information about prediction from the information decoded in entropy decoder 2110 can be provided to the predictors (inter-frame predictor 260 and intra-frame predictor 265). Parameter information (i.e., quantization transform coefficients) related to the residual values for which entropy decoding has been performed in entropy decoder 210 can be input to dequantizer 220. Furthermore, information about filtering from the information decoded in entropy decoder 210 can be provided to filter 240. Additionally, a receiver (not shown) that receives the signal output from the encoding device can be further configured as an internal / external element of decoding device 200, or the receiver can be a component of entropy decoder 210.
[0079] The dequantizer 220 can dequantize the quantized transform coefficients and output the transform coefficients. The dequantizer 220 can rearrange the quantized transform coefficients in a two-dimensional block form. In this case, the rearrangement can be performed based on a coefficient scanning sequence performed in the encoding apparatus. The dequantizer 220 can perform dequantization on the quantized transform coefficients using a quantization parameter (e.g., quantization step length information), and can obtain the transform coefficients.
[0080] The inverse transformer 230 can output a residual signal (a residual block or a residual sample array) by applying an inverse transform to the transform coefficients.
[0081] The predictor can perform prediction on the current block and can generate a prediction block including prediction samples of the current block. The predictor can determine whether to apply intra prediction or apply inter prediction to the current block based on information about prediction output by the entropy decoder 210, and can determine a detailed intra / inter prediction mode.
[0082] The intra predictor 265 can predict the current block with reference to samples within the current picture. Depending on the prediction mode, the samples referred to can be located adjacent to the current block or can be spaced apart from the current block. In intra prediction, the prediction mode can include a plurality of non-angular modes and a plurality of angular modes. The intra predictor 265 can determine the prediction mode applied to the current block using the prediction mode applied to the neighboring block.
[0083] The inter predictor 260 can derive a prediction block of the current block based on a reference block (a reference sample array) on a reference picture designated by a motion vector. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of a block, a sub-block, or a sample based on the correlation of the motion information between the neighboring block and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction) information. In the case of inter prediction, the neighboring block can include a spatial neighboring block within the current picture and a temporal neighboring block within the reference picture. The inter predictor 260 can configure a motion information candidate list based on the neighboring block, and can derive a motion vector and / or a reference picture index of the current block based on received candidate selection information, for example. The inter prediction can be performed based on various prediction modes. The information about prediction can include information indicating the mode of the inter prediction of the current block.
[0084] The adder 235 can generate a reconstructed signal (a reconstructed picture, a reconstructed block, or a reconstructed sample array) by adding the obtained residual signal to the prediction signal (a prediction block or a prediction sample array) output by the inter predictor 260 or the intra predictor 265. If there is no residual for the processing target block as in the case where the skip mode has been applied, the prediction block can be used as the reconstructed block.
[0085] The adder 235 can be referred to as a reconstructor or a reconstructed block generator. The generated reconstructed signal can be used for intra prediction of a next processing target block within the current picture, and can be used for inter prediction of a next picture by filtering as will be described later.
[0086] The filter 240 is capable of improving subjective / objective picture quality by applying filtering to the reconstructed signal. For example, the filter 240 can generate a corrected reconstructed picture by applying various filtering methods to the reconstructed picture, and can transmit the corrected reconstructed picture to the memory 250, more specifically, to the DPB of the memory 250. The various filtering methods can include, for example, deblocking filtering, sample adaptive offset (SAO), adaptive loop filter (ALF), and bilateral filter.
[0087] The (corrected) reconstructed picture stored in the DPB of the memory 250 can be used as a reference picture in the inter predictor 260. The memory 250 can store motion information of a block in which motion information of the current picture is derived (or decoded) and / or motion information of a block in the already reconstructed picture. The stored motion information can be forwarded to the inter predictor 260 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory 170 can store reconstructed samples of a reconstructed block in the current picture and forward the same to the intra predictor 265.
[0088] In the present disclosure, the embodiments described in the filter 160, the inter predictor 180, and the intra predictor 185 of the encoding apparatus 100 can be identically or correspondingly applied to the filter 240, the inter predictor 260, and the intra predictor 265 of the decoding apparatus 200, respectively.
[0089] Block partitioning
[0090] The video / image encoding method according to the present disclosure can be performed based on various detailed techniques, and each of the various detailed techniques is described below. It will be apparent to those skilled in the art that the techniques described herein can be associated with related processes such as prediction, residual processing ((inverse) transform, (de)quantization, etc.), syntax element encoding, filtering, partitioning / segmentation, etc. in video / image encoding / decoding processes described above and / or described below.
[0091] The block partitioning process according to the disclosure can be performed in the picture partitioner 110 of the above-described encoding apparatus, and the partitioning-related information can be processed (encoded) in the entropy encoder 190 and forwarded to the decoding apparatus in a bitstream format. The entropy decoder 210 of the decoding apparatus can obtain the block partitioning structure of the current picture based on the partitioning-related information obtained from the bitstream, and can perform a series of processes (e.g., prediction, residual processing, block reconstruction, in-loop filtering, etc.) based thereon to perform image decoding.
[0092] Picture partitioning is CTU
[0093] A picture can be partitioned into a sequence of coding tree units (CTUs). A CTU can correspond to a coding tree block (CTB). Alternatively, a CTU can include a coding tree block of luma samples and two coding tree blocks of corresponding chroma samples. In other words, for a picture including three types of sample arrays, a CTU can include an NxN block of luma samples and two corresponding samples of chroma samples.
[0094] The maximum supported size of a CTU for encoding and prediction can be different from the maximum supported size of a CTU for transform. For example, the maximum supported size of a luma block in a CTU can be 128x128.
[0095] Partitioning a CTU using a tree structure
[0096] A CTU can be partitioned into CUs based on a quad-tree (QT) structure. The quad-tree structure can be referred to as a quad-binary structure. This is to reflect various local characteristics. Meanwhile, in the disclosure, a CTU can be partitioned based on a multi-type tree structure partition including a binary tree (BT) and a ternary tree (TT) as well as a quad-tree. Hereinafter, a QTBT structure can include a quad-tree and a binary tree structure, and a QTBTTT can include a partitioning structure based on a binary tree and a ternary tree. Alternatively, the QTBT structure can further include a partitioning structure based on a quad-tree, a binary tree, and a ternary tree. In the coding tree structure, a CU can have a square or rectangular shape. First, a CTU can be partitioned into a quad-tree structure. Then, leaf nodes of the quad-tree structure can be additionally partitioned in a multi-type tree structure.
[0097] Figure 3 is a diagram illustrating an example of a multi-type tree structure to which embodiments of the disclosure can be applied.
[0098] In an embodiment of the disclosure, the multi-type tree structure can include, as Figure 3The four splitting types shown. The four splitting types can include vertical binary splitting (SPLIT_BT_VER), horizontal binary splitting (SPLIT_BT_HOR), vertical ternary splitting (SPLIT_TT_VER), and horizontal ternary splitting (SPLIT_TT_HOR). Leaf nodes of the multi-type tree structure are referred to as CUs. Such CUs can be used for the prediction and transform processes. In the present disclosure, generally, a CU, a PU, and a TU can have the same block size. However, in a case where a supported maximum transform length is smaller than a width or a height of a color component, a CU and a TU can have different block sizes.
[0099] Figure 4 is a diagram illustrating a signaling mechanism of partition splitting information of a quadtree with a nested multi-type tree structure to which embodiments of the present disclosure can be applied.
[0100] Here, a CTU can be processed as a root of a quadtree and initially partitioned into a quadtree structure. Each quadtree leaf node can be further partitioned into a multi-type tree structure thereafter. In the multi-type tree structure, a first flag (e.g., mtt_split_cu_flag) is signaled to indicate whether a corresponding node is further partitioned. In a case where the corresponding node is further partitioned, a second flag (e.g., mtt_split_cu_vertical_flag) can be signaled to indicate a splitting direction. Subsequently, a third flag (e.g., mtt_split_cu_binary_flag) can be signaled to indicate whether the splitting type is binary splitting or ternary splitting. For example, based on the mtt_split_cu_vertical_flag and the mtt_split_cu_binary_flag, a multi-type tree splitting mode (MttSplitMode) can be derived as represented in Table 1 below.
[0101] [Table 1]
[0102] MttSplitMode mtt_split_cu_vertical_flag mtt_split_cu_binary_flag SPLIT_TT_HOR 0 0 SPLIT_BT_HOR 0 1 SPLIT_TT_VER 1 0 SPLIT_BT_VER 1 1
[0103] Figure 5 is a diagram illustrating a method of partitioning a CTU into a plurality of CUs based on a quadtree and a nested multi-type tree structure to which embodiments of the present disclosure can be applied.
[0104] Here, the bolded block edges represent quad-tree partitions, and the remaining edges represent multi-type tree partitions. A quad-tree partition with a nested multi-type tree can provide a content adaptive coding tree structure. A CU can correspond to a coding block (CB). Alternatively, a CU can include a coding block of luma samples and two coding blocks of corresponding chroma samples. In a luma sample unit, the size of a CU can be as large as a CTU or as small as 4x4. For example, in the case of a 4:2:0 color format (or chroma format), the maximum chroma CB size can be 64x64, and the minimum chroma CB size can be 2x2.
[0105] In this disclosure, for example, the supported maximum luma TB size can be 64x64, and the supported maximum chroma TB size can be 32x32. In the case where the width or height of a CB partitioned according to a tree structure is greater than the maximum transform width or height, the CB can be further partitioned until the TB size limit in the horizontal and vertical directions is automatically (implicitly) satisfied.
[0106] Furthermore, for the quad-tree coding tree scheme with nested multi-type tree, the following parameters can be defined or identified as SPS syntax elements.
[0107] - CTU size: root node size of quad-tree
[0108] - MinQTSize: allowed minimum quad-tree leaf node size
[0109] - MaxBtSize: allowed maximum binary tree root node size
[0110] - MaxTtSize: allowed maximum ternary tree root node size
[0111] - MaxMttDepth: allowed maximum hierarchy depth of multi-type tree split out from quad-tree leaf
[0112] - MinBtSize: allowed minimum binary tree leaf node size
[0113] - MinTtSize: allowed minimum ternary tree leaf node size
[0114] As an example of the quadtree coding tree scheme with nested multi-type tree, the CTU size can be set to 128x128 luma samples and two corresponding chroma samples of 64x64 blocks (in 4:2:0 chroma sampling). In this case, the MinOTSize can be set to 16x16, the MaxBtSize can be set to 128x128, the MaxTtSzie can be set to 64x64, the MinBtSize and the MinTtSize (for both width and height) can be set to 4x4, and the MaxMttDepth can be set to 4. The quadtree partitioning can be applied to the CTU and generate a quadtree leaf node. The quadtree leaf node can be referred to as a leaf QT node. The quadtree leaf node can have a size from 16x16 size (i.e., the MinOTSize) to 128x128 size (i.e., the CTU size). In the case of the leaf QT node being 128x128, the leaf QT node can not be partitioned into a binary tree / trinary tree. This is because even if the leaf QT node is partitioned, the leaf QT node exceeds the MaxBtsize and the MaxTtszie (i.e., 64x64). In other cases, the leaf QT node can be additionally partitioned into a multi-type tree. Thus, the leaf QT node can be a root node of the multi-type tree, and the leaf QT node can have a multi-type tree depth (mttDepth) of 0 value. In the case of the multi-type tree depth reaching the MaxMttdepth (e.g., 4), additional partitioning can not be considered. In the case of the width of the multi-type tree node being equal to the MinBtSize and less than or equal to 2xMinTtSize, additional horizontal partitioning can not be considered. In the case of the height of the multi-type tree node being equal to the MinBtSize and less than or equal to 2xMinTtSize, additional vertical partitioning can not be considered.
[0115] Figure 6 is illustrated as a method for limiting trinary tree partitioning to which embodiments of the disclosure can be applied.
[0116] Referring to Figure 6 , in order to support 64x64 luma block and 32x32 chroma pipeline design in hardware decoder, TT partitioning can be limited in certain cases. For example, in the case where the width or height of the luma coding block is greater than a predetermined certain value (e.g., 32, 64), as shown in Figure 6 , TT partitioning can be limited.
[0117] In the disclosure, the coding tree scheme can support that luma and chroma blocks have separate block tree structures. With respect to P and B slices, luma CTBs and chroma CTBs in a single CTU can be restricted to have the same coding tree structure. However, with respect to I slices, luma blocks and chroma blocks can have separate block tree structures each. In the case where the separate block tree mode is applied, luma CTBs can be partitioned into CUs based on a certain coding tree structure, and chroma CTBs can be partitioned into chroma CUs based on a different coding tree structure. This can mean that a CU in an I slice can include a coding block of a chroma component or coding blocks of two chroma components, and a CU in a P slice or a B slice can include blocks of three color components.
[0118] In the above-described "partitioning of a CTU using a tree structure", a quadtree coding tree scheme having a nested multi-type tree is described, but the structure of partitioning a CU is not limited thereto. For example, the BT structure and the TT structure can be interpreted as concepts included in a multi-partition tree (MPT) structure, and can be interpreted as partitioning a CU by a QT structure and an MPT structure. In an example of partitioning a CU by a QT structure and an MPT structure, a syntax element including information on the number of blocks partitioned from a leaf node of the QT structure (e.g., MPT_split_type), and a syntax element including information on the direction in which the leaf node of the QT structure is partitioned between the vertical direction and the horizontal direction (e.g., MPT_split_mode) can be signaled, and a split structure can be determined.
[0119] In another example, a CU can be partitioned in a method different from the QT structure, the BT structure, or the TT structure. That is, unlike the case where a CU of a lower depth is partitioned into a CU of a higher depth having a 1 / 4 size according to the QT structure, a CU of a lower depth is partitioned into a CU of a higher depth having a 1 / 2 size according to the BT structure, or a CU of a lower depth is partitioned into a CU of a higher depth having a 1 / 4 size or a 1 / 2 size according to the TT structure, in some cases, a CU of a lower depth can be partitioned into a CU of a higher depth having a 1 / 5 size, a 1 / 3 size, a 3 / 8 size, a 3 / 5 size, a 2 / 3 size, or a 5 / 8 size, but the method of partitioning a CU is not limited thereto.
[0120] In the case where a portion of a tree node block exceeds a bottom or right picture boundary, the corresponding tree node block can be restricted to have all samples of all coding CUs located within the picture boundary. In this case, for example, the following split rule can be applied.
[0121] - if a portion of a tree node block exceeds both a bottom and right picture boundary,
[0122] - If the block is a QT node and the size of the block is greater than the minimum QT size, then the block is forced to be split with a QT split mode.
[0123] - Otherwise, the block is forced to be split with a SPLIT_BT_HOR mode,
[0124] - Otherwise, if a portion of the tree node block exceeds the bottom picture boundary,
[0125] - If the block is a QT node and the size of the block is greater than the minimum QT size and the size of the block is greater than the maximum BT size, then the block is forced to be split with a QT split mode.
[0126] - Otherwise, if the block is a QT node and the size of the block is greater than the minimum QT size and the size of the block is less than or equal to the maximum BT size, then the block is forced to be split with a QT split mode or a SPLIT_BT_HOR mode.
[0127] - Otherwise (the block is a BTT node or the size of the block is less than or equal to the minimum QT size), then the block is forced to be split with a SPLIT_BT_HOR mode.
[0128] - Otherwise, if a portion of the tree node block exceeds the right picture boundary,
[0129] - If the block is a QT node and the size of the block is greater than the minimum QT size and the size of the block is greater than the maximum BT size, then the block is forced to be split with a QT split mode.
[0130] - Otherwise, if the block is a QT node and the size of the block is greater than the minimum QT size and the size of the block is less than or equal to the maximum BT size, then the block is forced to be split with a QT split mode or a SPLIT_BT_VER mode.
[0131] - Otherwise (the block is a BTT node or the size of the block is less than or equal to the minimum QT size), then the block is forced to be split with a SPLIT_BT_VER mode.
[0132] Embodiment 1
[0133] Figure 7 is a diagram illustrating a quadtree-based block partitioning structure as applied to an embodiment of the present disclosure.
[0134] Referring to Figure 7In embodiments of the disclosure, one block can be partitioned based on a quad-tree (QT). In addition, one sub-block partitioned as a QT structure can be further divided recursively partitioned as a QT structure. End-blocks (may be referred to as leaf-blocks or leaf-node blocks) that are no longer partitioned as a QT structure can be partitioned in at least one of a binary tree (BT), a ternary tree (TT), or an asymmetric tree (AT).
[0135] As an example, block A can be partitioned as a QT structure into four sub-blocks A0, A1, A2, and A3. In addition, sub-block A1 can be again partitioned as a QT structure into four sub-blocks B0, B1, B2, and B3.
[0136] Figure 8 FIG. 1 is a diagram illustrating a block partitioning structure based on a binary tree to which embodiments of the disclosure are applied.
[0137] Referring to Figure 8 , a BT can have two types of partitioning: a horizontal BT (e.g., 2N×N or 2N×N) and a vertical BT (e.g., N×2N or N×2N).
[0138] As an example, block B3, which is no longer partitioned as a QT structure (i.e., a leaf-node block), can be partitioned as a vertical BT (C0, C1) or a horizontal BT (D0, D1). When a block is vertically split, each sub-block can be recursively partitioned in the form of a horizontal BT (E0, E1) or a vertical BT (F0, F1), like block C0.
[0139] Figure 9 FIG. 2 is a diagram illustrating a block partitioning structure based on a ternary tree to which embodiments of the disclosure are applied.
[0140] Referring to Figure 9 , a TT can have two types of partitioning: a horizontal TT (e.g., 2N×1 / 2N, 2N×N, or 2N×1 / 2N) and a vertical TT (e.g., 1 / 2N×2N, N×2N, or 1 / 2N×2N).
[0141] As an example, block B3, which is no longer partitioned as a QT, can be partitioned as a vertical TT (C0, C1, or C2) or a horizontal TT (D0, D1, or D2). As shown in Figure 9 , block C1 can be recursively partitioned in the form of a horizontal TT (E0, E1, or E2) or a vertical TT (F0, F1, or F2).
[0142] As another example, the AT can have four types of partition structures: horizontal-up AT (2Nx1 / 2N, 2Nx3 / 2N), horizontal-down AT (2Nx3 / 2N, 2Nx1 / 2N), vertical-left AT (1 / 2Nx2N, 3 / 2Nx2N), and vertical-right AT (3 / 2Nx2N, 1 / 2Nx2N). The BT, TT, and AT can be further recursively partitioned by using the BT, TT, and AT, respectively.
[0143] Figure 10 FIG. 1 is a diagram illustrating a block partition structure based on a binary tree (BT) according to an embodiment of the present disclosure.
[0144] Referring to FIG. 1, a block is partitioned into sub-blocks according to a BT structure. Figure 10 The block can be partitioned by using the BT, TT, and strip tree (ST) partition structures together. For example, a sub-block partitioned as a BT structure can be partitioned as a TT structure. Alternatively, a sub-block partitioned as a TT structure can be partitioned as a BT structure.
[0145] Further, in an embodiment, the block can be partitioned as an ST structure, which is partitioned into four in a horizontal direction or a vertical direction. Further, the BT, TT, and ST partitioning can be used together to partition the block. For example, a sub-block partitioned as a BT can be partitioned as a TT or an ST. Further, a sub-block partitioned as a TT can be partitioned as a BT or an ST. Further, a sub-block partitioned as an ST can be partitioned as a BT or a TT.
[0146] In Figure 10 , the partition indicated by the thin solid line represents a first partition, and the partition indicated by the thick dashed line represents a second partition performed in a sub-block generated in the first partition.
[0147] Table 2 represents a coding quad-tree syntax structure, and Table 3 represents a syntax of a coding tree.
[0148] [Table 2]
[0149]
[0150] Referring to Table 2, a decoding process for determining a quad-tree partition structure is described. The coding quad-tree syntax (or function) can be invoked with the top-left coordinates of the current block (x0, y0), the size of the current block (log2CbSize), and the depth of the current quad-tree partition as inputs.
[0151] In the case where the current block does not exceed the width or height of the current picture and the current block is greater than the minimum size of the coding block, the decoder parses the split_qt_flag syntax element. The split_qt_flag syntax element indicates whether the current block is split into four blocks in a quad-tree structure. For example, in the case where the split_qt_flag value is 0, this case indicates that the current block is not split into four blocks in a quad-tree structure, while in the case where the split_qt_flag value is 1, this case indicates that the current block is split into four blocks with a width of one half and a height of one half. x0 and y0 represent the top-left position of the luma picture.
[0152] As a result of the parsing, in the case where it is determined that the current block is split in a quad-tree structure, the decoder calls the coding quad-tree syntax (or function) again for the 4 sub-blocks split from the current block.
[0153] As a result of the parsing, in the case where it is determined that the current block is not split in a quad-tree structure, the decoder calls the coding quad-tree syntax (or function) for the current block to determine the subsequent split structure (i.e., multi-type tree structure).
[0154] [Table 3]
[0155]
[0156]
[0157]
[0158] Referring to Table 3, a decoding process for determining an additional split structure in a quad-tree leaf node block is described. The coding quad-tree syntax (or function) can be called with the top-left coordinates of the current block (x0, y 0), the width of the current block (log2CbSize), and the width of the current block (log2CbSizeH) as inputs.
[0159] In the case where the current block does not exceed the width or height of the current picture and the current block is greater than the minimum size of the MTT block, the decoder parses the split_fur_flag syntax element. The split_fur_flag syntax element indicates whether the current block is further split. For example, in the case where the split_fur_flag value is 0, this case indicates that the current block is not split further, while in the case where the split_fur_flag value is 1, this case indicates that the current block is split.
[0160] As a result of the parsing, in a case where it is determined that the current block is further partitioned, the decoder invokes the split_bt_flag and split_dir syntax elements (or functions). The split_bt_flag syntax indicates whether the current block is partitioned in a BT structure or a TT structure. For example, in a case where the split_bt_flag value is 1, this case indicates that the block is partitioned in a BT, and in a case where the split_bt_flag value is 0, this case indicates that the block is partitioned in a TT.
[0161] The split type (SplitType) of the current block can be determined based on the split_fur_flag syntax and the split_bt_flag syntax as represented in Table 4 below.
[0162] [Table 4]
[0163] split_fur_flag split_bt_flag SplitType 0 NO_SPLIT 1 1 BT 1 0 TT
[0164] In addition, in Table 3, the split_dir syntax element indicates a partition direction. For example, in a case where the split_dir value is 0, this case indicates that the block is partitioned in a horizontal direction, and in a case where the split_dir value is 1, this case indicates that the block is partitioned in a vertical direction.
[0165] As represented in Table 5 below, a final block partition mode (SplitMode) of a MTT partitioned from the current block can be induced.
[0166] [Table 5]
[0167]
[0168] The decoder re-invokes the coding tree syntax (or function) for sub-block partitioning according to the finally determined partition structure.
[0169] Embodiment 2
[0170] In an embodiment of the disclosure, a method for allowing BT, TT, or ST partitioning according to the shape (or size) of a block is proposed. In Embodiment 1 described above, regardless of the shape of the block, if MaxDepth indicating the maximum partition depth, MinBTSize indicating the minimum size of a block partitioned in a binary tree structure, or MinTTSize indicating the minimum size of a block partitioned in a ternary tree structure is not reached, the partitioning is allowed. However, in the embodiment, the encoder / decoder can allow the block partitioning to be adaptively performed according to the width or height of the block, that is, the shape of the block.
[0171] Figure 11is a diagram illustrating a block partition structure of a non-square block to which an embodiment of the present disclosure is applied.
[0172] Referring to Figure 11 , it is assumed that the current block is a 2N×2N block. In an embodiment of the present disclosure, in a square block in which the width and the height are equal to each other, all of the horizontal BT, TT, and ST partitions are available, and all of the vertical BT, TT, and ST partitions are available. That is, in an embodiment of the present disclosure, the block partition restriction can not be applied to the square block.
[0173] Figure 12 is a diagram illustrating a block partition structure of a non-square block to which an embodiment of the present disclosure is applied.
[0174] Referring to Figure 12 , it is assumed that the current block is a 2N×N block. In an embodiment, in a non-square block in which the width is twice as large as the height, as shown in Figure 12 , only the vertical BT and TT partitions and the horizontal BT partition can be allowed.
[0175] In other words, when the current block is a non-square block in which the width is greater than the height, the horizontal and vertical ST partitions can not be allowed. Also, when the current block is a non-square block in which the width is greater than the height, the TT partition can not be allowed even for the horizontal direction.
[0176] According to an embodiment of the present disclosure, by considering the ratio of the width and the height, an inefficient partition structure is not allowed, to reduce the number of bits required for partition information signaling.
[0177] Figure 13 is a diagram illustrating a block partition structure of a non-square block to which an embodiment of the present disclosure is applied.
[0178] Referring to Figure 13 , it is assumed that the current block is an N×2N block. In an embodiment, in a non-square block in which the height is twice as large as the width, as shown in Figure 13 , only the horizontal BT and TT partitions and the vertical BT partition can be allowed.
[0179] In other words, when the current block is a non-square block in which the height is greater than the width, the horizontal and vertical ST partitions can not be allowed. Also, when the current block is a non-square block in which the height is greater than the width, the TT partition can not be allowed even for the vertical direction.
[0180] According to an embodiment of the present disclosure, by considering the ratio of the width and the height, an inefficient partition structure is not allowed, to reduce the number of bits required for partition information signaling.
[0181] Figure 14FIG. 1 is a diagram illustrating a block partition structure of a non-square block to which an embodiment of the present disclosure is applied.
[0182] Referring to Figure 14 , it is assumed that the current block is a 2Nx1 / 2N block. In an embodiment of the present disclosure, in a non-square block in which the width is four times larger than the height, as Figure 14 indicated, only vertical BT partitioning can be allowed.
[0183] In other words, when the current block is a block in which the width is four times larger than the height or more, vertical TT and ST partitioning can not be allowed. Also, when the current block is a block in which the width is four times larger than the height or more, with respect to the horizontal direction, any partitioning can not be allowed.
[0184] According to an embodiment of the present disclosure, by considering the ratio of the width and the height, inefficient partitioning structures are not allowed, to reduce the number of bits required for partition information signaling.
[0185] Figure 15 FIG. 1 is a diagram illustrating a block partition structure of a non-square block to which an embodiment of the present disclosure is applied.
[0186] Referring to Figure 15 , it is assumed that the current block is a 1 / 2Nx2N block. In an embodiment of the present disclosure, in a non-square block in which the height is four times larger than the width, as Figure 15 indicated, only horizontal BT partitioning can be allowed.
[0187] In other words, when the current block is a block in which the height is four times larger than the width or more, horizontal TT and ST partitioning can not be allowed. Also, when the current block is a block in which the height is four times larger than the width or more, even with respect to the vertical direction, any partitioning can not be allowed.
[0188] According to an embodiment of the present disclosure, by considering the ratio of the width and the height, inefficient partitioning structures are not allowed, to reduce the number of bits required for partition information signaling.
[0189] In an embodiment, the method for limiting a specific partition according to the shape or size of a block can be applied only when the boundary of a CTU (or CTB, maximum size CU) exceeds the boundary of an image (picture or slice).
[0190] Embodiment 3
[0191] In the present disclosure, a method for allowing BT, TT, or ST partitioning according to the shape (or size) of a block is proposed. According to the above-described embodiment 2, an encoder / decoder can allow block partitioning to be adaptively performed according to the shape of the width and height of a block. In the above-described embodiment 2, a method for allowing various block partitioning for a block having a relatively large size, and not allowing a specific partitioning according to the shape of a block for a relatively small block is described. In contrast, in the embodiments of the present disclosure, a method for allowing more detailed block partitioning for a relatively small block is proposed.
[0192] Figure 16 is a diagram for describing a block partitioning structure of a square block as an application of the embodiments of the present disclosure.
[0193] Referring to Figure 16 , it is assumed that the current block is a 2N×2N block. In the embodiments of the present disclosure, in a square block in which the width and height are equal to each other, as Figure 16 indicated, only horizontal and vertical BT partitioning can be allowed. That is, in a square block in which the width and height are equal to each other, TT and ST partitioning can not be allowed to be performed.
[0194] Further, in the embodiments of the present disclosure, for the same partitioning structure as in the above-described embodiment 2, partitioning available for a 2N×N block and an N×2N block can be allowed (see Figure 12 and Figure 13 ).
[0195] According to the embodiments of the present disclosure, by considering the ratio of the width and height and not allowing an inefficient partitioning structure, the number of bits required for partition information signaling is reduced.
[0196] Figure 17 is a diagram for illustrating a block partitioning structure of a non-square block as an application of the embodiments of the present disclosure.
[0197] Referring to Figure 17 , it is assumed that the current block is a 2N×1 / 2N block. In the embodiments of the present disclosure, in a non-square block in which the width is four times larger than the height, as Figure 17 indicated, only vertical BT, TT, and ST partitioning can be allowed to be performed.
[0198] In other words, when the current block is a block in which the width is four times or more larger than the height, only vertical partitioning can be allowed. Further, when the current block is a block in which the width is four times or more larger than the height, even for the horizontal direction, it can not be allowed to perform any partitioning.
[0199] According to the embodiments of the present disclosure, by considering the ratio of the width and height and not allowing an inefficient partitioning structure, the number of bits required for partition information signaling is reduced.
[0200] Figure 18 FIG. 1 is a diagram illustrating a block partition structure of a non-square block to which embodiments of the disclosure are applied.
[0201] Referring to Figure 18 , it is assumed that a current block is a 1 / 2N×2N block. In embodiments of the disclosure, in a non-square in which a height is four times larger than a width, as Figure 15 indicated, only horizontal BT, TT, and ST partitions can be allowed.
[0202] In other words, when the current block is a block in which a height is four times larger than a width or more, only horizontal partitions can be allowed. In addition, when the current block is a block in which a height is four times larger than a width or more, even for a vertical direction, it can be possible not to allow any partition.
[0203] According to embodiments of the disclosure, by considering a ratio of a width and a height, an inefficient partition structure is not allowed, to reduce a number of bits required for partition information signaling.
[0204] In embodiments, the method for limiting a specific partition according to a shape or a size of a block can be applied only when a boundary of a CTU (or CTB, maximum size CU) exceeds a boundary of an image (picture or slice).
[0205] Embodiment 4
[0206] In the above embodiments 2 and 3, a method for determining a block partition structure in which a block can be partitioned according to a shape of the block is described. In embodiments of the disclosure, a syntax for determining a block partition structure according to a block shape can be transmitted in a high level syntax.
[0207] For example, the syntax for determining a block partition structure according to a block shape can be signaled from an encoder to a decoder through a sequence parameter set, a picture parameter set, a slice group header, or a header of a network abstraction layer unit.
[0208] In embodiments, the syntax for determining a block partition structure can be transmitted in a sequence parameter set (SPS) as shown in Table 6 below.
[0209] [Table 6]
[0210]
[0211] Referring to Table 6, log2_size_bt_allow_ratio denotes a syntax (or syntax element) indicating an allowed range of a ratio (or difference, or ratio of difference) between a width and a height of a block for BT partitioning. As an example, when the value is 1, the encoder / decoder can allow partitioning only in a case where a length of one side (i.e., width or height) of the block is equal to or smaller than twice a length of the other side, and can not allow block partitioning in a case where the length of one side is greater than twice the length of the other side. Also, log2_size_st_allow_ratio and log2_size_tt_allow_ratio denote syntaxes (or syntax elements) indicating an allowed range of a ratio (or difference, or ratio of difference) between a width and a height of a block for ST and TT partitioning, respectively.
[0212] Alternatively, in an embodiment, the syntaxes for determining a block partitioning structure can be signaled in a sequence parameter set (SPS) as shown in Table 7 below.
[0213] [Table 7]
[0214]
[0215] Referring to Table 7, log2_size_bt_disallow_ratio denotes a syntax (or syntax element) indicating an allowed range of a ratio (or difference, or ratio of difference) between a width and a height of a block for BT partitioning. For example, when the value is 1, the encoder / decoder can not allow block partitioning in a case where a length of one side of the block is twice a length of the other side. Also, log2_size_bt_disallow_ratio and log2_size_st_disallow_ratio denote syntaxes (or syntax elements) indicating an allowed range of a ratio (or difference, or ratio of difference) between a width and a height of a block for ST and TT partitioning, respectively.
[0216] The syntaxes of Table 6 and Table 7 can be signaled from the encoder to the decoder through a sequence parameter set, a picture parameter set, a slice group header, or a header of a network abstraction layer unit.
[0217] According to the examples of Table 6 and Table 7, block partitioning is not allowed when a ratio between a width and a height is within a predetermined range, to effectively determine a partitioning structure and reduce signaling bits required to determine the partitioning structure.
[0218] In an embodiment, the method for limiting a specific partition according to a shape or size of a block can be applied only when a boundary of a CTU (or CTB, maximum size CU) exceeds a boundary of an image (picture or slice).
[0219] Embodiment 5
[0220] As described above, when the width and the height of the block are equal to each other, the QT structure can be used. In an embodiment of the disclosure, when the block crosses the picture boundary region, i.e., when the right or lower boundary of the current CTU (or the maximum coding unit, CTB) exceeds the current picture, the encoder / decoder can partition the current CTU into blocks having the maximum size, which can be BT or TT (i.e., multi-type tree) partitioning without additional syntax signaling.
[0221] In a related art image compression technology, when the boundary of the CTU (or CTB, CU having the maximum size) exceeds the boundary of the picture (or slice), the decoder can perform QT partitioning without exceeding the boundary of the picture, without parsing the partition information signaled from the encoder (i.e., implicitly).
[0222] For example, when the current CTU is 64x64 and the picture (or slice) includes only a 64x32 region, the decoder can QT-partition the current CTU into four 32x32 CUs without parsing the partition information. In this case, the parsing of the partition information is performed after implicitly partitioning the block having a size of 64x32 into two 32x32-sized blocks. In the disclosure, the implicit partitioning can indicate a method for performing block partitioning according to a specific condition without partition information signaling, and can be referred to as automatic partitioning, default partitioning, etc.
[0223] In an embodiment of the disclosure, a method for minimizing the partitioning of the CTU (or CTB, CU having the maximum size) that exceeds the boundary of the picture by not allowing QT partitioning when the boundary of the CTU (or CTB, CU having the maximum size) exceeds the boundary of the picture is proposed. For example, when the current CTU is 64x64 and the picture (or slice) includes only a 64x32 region, the encoder / decoder can perform partitioning other than QT partitioning (e.g., BT, TT, and AT) by not allowing QT partitioning. For example, BT partitioning can be performed instead of QT partitioning, and in this case, the partitioning of the block having a size of 64x32 adjacent to the picture (or slice) boundary can not start from two 32x32-sized blocks, but can start from the block having a size of 64x32 by parsing the partition information. According to the embodiment of the disclosure, the QT partitioning is adjusted according to the complexity of the image to determine an effective partition structure with relatively little partition information.
[0224] In an embodiment, when a boundary of a CTU (or CTB, CU having a maximum size) exceeds a boundary of a picture (or slice), an encoder can signal a syntax indicating whether QT partitioning is allowed to a decoder. For example, the syntax indicating whether QT partitioning is allowed can be signaled in a sequence, picture, or slice (or slice group) unit. Table 8 below shows QT partitioning restriction syntax signaled in a high layer.
[0225] [Table 8]
[0226]
[0227] Referring to Table 8, pic_boundary_qt_disable_flag indicates a syntax (or syntax element) indicating whether QT partitioning is allowed when a block size of a block in a boundary region of a picture is not equal to a maximum block size. As an embodiment, when the value of pic_boundary_qt_disable_flag is 1, QT partitioning can not be allowed in the picture boundary region. The syntax can be signaled from the encoder to the decoder through a picture parameter set, a slice group header, or a header of a network abstraction layer unit in addition to a sequence parameter set.
[0228] Figure 19 FIG. 1 is a diagram illustrating a case where a coding tree unit (CTU) of an embodiment of the disclosure exceeds a boundary of a picture.
[0229] Referring to Figure 19 , a current picture can be partitioned into CTU units. In this case, a height of the current picture can not correspond to a multiple of a CTU height, and in this case, as shown in Figure 19 , a CTU located at the bottom of the current picture can exceed a boundary of the current picture.
[0230] That is, a block partition shape available can be determined according to a block shape determined through the above-described embodiments 2 to 4, and partitioning can be performed implicitly from a maximum block in which a corresponding block can be partitioned. In this case, information for partitioning can not be included in a syntax. After partitioning a block into a maximum block that can be partitioned implicitly, an encoder can signal information about an optimal block partition structure.
[0231] Further, in another embodiment, when a boundary of a CTU (or CTB, CU having a maximum size) exceeds a boundary of a picture (or slice), an encoder and a decoder can equally determine whether QT partitioning is allowed according to a specific condition or the like. When QT partitioning is not allowed, the encoder / decoder can partition a CTU by using a partitioning other than QT (e.g., BT, TT, and AT).
[0232] As an example, when the boundary of the CTU exceeds the boundary of the image (picture or slice), the decoder can determine whether to allow QT partitioning based on the area (or the overlap area) where the CTU and the image overlap each other. For example, the decoder can not allow QT partitioning when the overlap area is equal to or smaller than 1 / 2 of the CTU size, and can allow QT partitioning when the overlap area is greater than 1 / 2.
[0233] In this case, the overlap area can be checked (or determined) before determining whether to allow QT partitioning based on the overlap area. The overlap area can be calculated by using the area ratio in the CTU, the ratio of the width or height compared to the CTU, the area / width / height ratio compared to the virtual area, etc. In the disclosure, the remaining area in the CTU other than the area where the CTU and the image overlap each other (i.e., the area in the CTU that exceeds the boundary of the image (picture or slice)) can be referred to as a virtual area. Thereafter, when the overlap area (or the area, or the ratio) is equal to or smaller than a predetermined area (or the area, or the ratio), QT partitioning can not be allowed, and when the overlap area is greater than the predetermined area, QT partitioning can be allowed. Also, for example, the ratio of the overlap area is compared with a certain threshold to determine whether to allow QT partitioning.
[0234] Also, as an example, when the boundary of the CTU exceeds the boundary of the image (picture or slice), the decoder can determine whether to allow QT partitioning or to allow an implicit partitioning structure based on the size of the transform (or the transform kernel or the transform matrix). For example, when there is an available transform in the overlap area, the decoder can not allow QT partitioning. Alternatively, the decoder can determine whether to allow QT partitioning based on the overlap area as in the above-described embodiments, and determine the partitioning structure according to the size of the transform available for the overlap area. For example, the decoder can partition the overlap area into blocks in units of the maximum size of the available transform.
[0235] In an embodiment, when the overlap area of the current CTU is greater than the maximum transform size, the encoder / decoder can perform QT partitioning without syntax signaling for the current CTU. For example, when the width of the overlap area (i.e., the area in the CTU other than the virtual area) in the current picture is greater than the maximum transform size (or the length of one side of the maximum transform) or the height of the overlap area is greater than the maximum transform size, the encoder / decoder can perform QT partitioning without syntax signaling for the current CTU.
[0236] Also, in another embodiment, when a boundary of a CTU (or CTB, CU having the largest size) exceeds a boundary of a picture (or slice), QT partitioning can be configured not to be continuously allowed. When QT partitioning is not allowed, the corresponding CTU can be partitioned by using a partitioning other than QT (e.g., BT, TT, and AT). In this case, syntax signaling data can be reduced, and partitioning of a block exceeding the picture boundary can be minimized.
[0237] According to embodiments of the disclosure, when a boundary of a CTU (or CTB, or CU having the largest size) exceeds a boundary of a picture (picture or slice), partitioning of a picture in the corresponding CTU can be minimized, and a size of an initial partition block of the picture in the corresponding CTU can be efficiently determined. As a picture resolution becomes larger and diverse, blocks of 128x128 and 256x256 having a size larger than that of the old HEVC are also discussed as a CTU (or CTB, or CU having the largest size) as a basic unit of partitioning a picture.
[0238] Accordingly, a CTU boundary can often exceed a picture boundary, and if QT partitioning is allowed in any case as in the related art picture compression technology, a picture boundary can be unnecessarily partitioned into a small size, and since encoding information is signaled in units of unnecessary partition blocks, compression efficiency can be significantly reduced on the picture boundary. Table 9 below shows sizes of general pictures.
[0239] [Table 9]
[0240]
[0241] In embodiments of the disclosure, a case in which a size of a CTU is 64x64 and 128x128 is mainly described, but the disclosure is not limited thereto, and the disclosure can be similarly applied even in a case in which a size of a CTU is 256x256 and 512x512. An 8k picture can have a resolution of 7680x4320, and in this case, all CTUs belonging to a lowest CTU line can exceed a picture boundary. In this case, the above-described embodiments can be applied. Similarly, even in a case of a 4k picture having a resolution of 4096x2160, a UHD picture having a resolution of 3840x2160, and a FHD picture having a resolution of 1920x1080, all CTUs belonging to a lowest CTU line can exceed a picture boundary, and the above-described embodiments can be applied.
[0242] Embodiment 6
[0243] Figure 20is a diagram illustrating a block partition structure based on asymmetric tree as an embodiment of application of the present disclosure.
[0244] Referring to Figure 20 , the AT can have four types of partition: horizontal-up AT (2N×1 / 2N, 2N×3 / 2N), horizontal-down AT (2N×3 / 2N, 2N×1 / 2N), vertical-left AT (1 / 2N×2N, 3 / 2N×2N), and vertical-right AT (3 / 2N×2N, 1 / 2N×2N).
[0245] As an example, the block B3, which is no longer partitioned in QT, can be partitioned in vertical AT (C0, C1) or horizontal AT (D0, D1). Like the block C1, each sub-block can be further partitioned recursively in the form of horizontal AT (E0, E1) or vertical TT (F0, F1).
[0246] Figures 21 to 23 is a diagram illustrating examples of block partitioning according to which embodiments of the present disclosure can be applied.
[0247] Referring to Figures 21 to 23 , BT, TT, and AT partitioning can be used together. For example, a sub-block partitioned in BT can be partitioned in TT or AT. Also, a sub-block partitioned in TT can be partitioned in BT or AT. Also, a sub-block partitioned in AT can be partitioned in BT or TT.
[0248] In Figures 21 to 23 , the partition indicated by a solid line indicates a first partition, and the partition indicated by a dotted line indicates a second partition of a sub-block generated by the first partition. For example, Figure 21 (1) to Figure 21 (4) in illustrate that, after horizontal BT partitioning, each sub-block is partitioned in vertical BT, vertical TT, vertical-left AT, and vertical-right AT. Figure 21 (5) to Figure 21 (8) in illustrate that, after horizontal TT partitioning, each sub-block is partitioned in vertical BT, vertical TT, vertical-left AT, and vertical-right AT.
[0249] Figure 21 (9) to Figure 21 (12) in illustrate that, after horizontal-up AT partitioning, each sub-block is partitioned in vertical BT, vertical TT, vertical-left AT, and vertical-right AT. Figure 22 (13) to Figure 22 (16) in illustrate that, after horizontal-down AT partitioning, each sub-block is partitioned in vertical BT, vertical TT, vertical-left AT, and vertical-right AT.
[0250] Figure 22(17) to Figure 22 Example (20) illustrates that after vertical BT partitioning, each sub-block is partitioned according to horizontal BT, horizontal TT, horizontal upward AT and vertical downward AT. Figure 22 (21) to Figure 22 Example (24) illustrates that after vertical TT partitioning, each sub-block is partitioned according to horizontal BT, horizontal TT, horizontal up AT and horizontal down AT.
[0251] Figure 23 (25) to Figure 23 Example (28) illustrates that after vertical left AT partitioning, each sub-block is partitioned according to horizontal BT, horizontal TT, horizontal up AT and horizontal down AT. Figure 23 (29) to Figure 23 Example (32) illustrates that after vertical right AT partitioning, each sub-block is partitioned according to horizontal BT, horizontal TT, horizontal up AT and horizontal down AT.
[0252] Implementation Method 7
[0253] To increase compression efficiency, various block partitioning structures can be used to increase the degree of freedom in partitioning. However, the increased complexity resulting from this increased partitioning freedom can be problematic. Therefore, in embodiments of this disclosure, a method is proposed for sending a syntax to adjust the degree of QT partitioning by considering the relationship between complexity and performance in performing block partitioning based on QT structures.
[0254] As an implementation, the encoder may send at least one of the following syntaxes to the decoder: MaxQTSize (MaxQTSize) syntax, MinQTSize (MinQTSize) syntax, and MaxQTDepth (MaxQTDepth) syntax (or syntax elements). Here, the MaxQTSize may indicate the maximum size of a block in which QT partitions can be performed, and may be expressed in logarithmic form (e.g., log2). The MinQTSize may indicate the minimum size of a block in which QT partitions can be performed, and may also be expressed in logarithmic form (e.g., log2). Furthermore, the MaxQTDepth indicates how many QT partitions are allowed from the MaxQTSize.
[0255] Further, as an embodiment, the encoder can signal at least one of a maximum BT block size (MaxBTSize) syntax, a minimum BT block size (MinBTSize) syntax, and a maximum BT block partition depth (MaxBTDepth) syntax (or syntax elements) to the decoder. Here, the maximum BT block size can indicate a maximum size of a block in which BT partitioning can be performed, and can be expressed in a form of a logarithmic scale (e.g., log2). Here, the minimum BT block size can indicate a minimum size of a block in which BT partitioning is allowed, and can be expressed in a form of a logarithmic scale (e.g., log2). Further, the maximum BT partition depth indicates how many times of BT partitioning is allowed from the maximum BT block size.
[0256] Further, as an embodiment, the encoder can signal at least one of a maximum TT block size (MaxTTSize) syntax, a minimum TT block size (MinTTSize) syntax, and a maximum TT block partition depth (MaxTTDepth) syntax (or syntax elements) to the decoder. Here, the maximum TT block size can indicate a maximum size of a block in which TT partitioning can be performed, and can be expressed in a form of a logarithmic scale (e.g., log2). Here, the minimum TT block size can indicate a minimum size of a block in which TT partitioning is allowed, and can be expressed in a form of a logarithmic scale (e.g., log2). Further, the maximum TT partition depth indicates how many times of TT partitioning is allowed from the maximum TT block size.
[0257] According to the type of slice (or slice group), slice, and image component, each syntax information can be transmitted through a sequence parameter set (SPS), a picture parameter set (PPS), a slice header (SH) (or a slice group header (TGH)), or a header of a network abstraction layer unit.
[0258] Embodiment 8
[0259] In the above-described embodiment 7, syntaxes for maximum size or minimum size or maximum partitioning allowed depth of QT, BT, and TT partitions in an image are defined. In the present disclosure, the block sizes of a coding unit (CU), a prediction unit (PU), and a transform unit (TU) can be equal to each other, or can not be equal to each other.
[0260] In an embodiment of the disclosure, a method is proposed in which, when the sizes of the CU, TU, and PU are different from each other, the encoder transmits syntax for adjusting the partitioning degree of the CU, PU, and TU by considering the relationship between performance and complexity. In the disclosure, the TU can mean a unit that is partitioned according to partitioning information signaled from the encoder in a tree structure (e.g., QT, QTBT, QTBT+TT, etc.) and is transformed, or the TU can mean a unit that is implicitly partitioned according to the size of a transform core (or transform matrix) and is transformed.
[0261] In an embodiment, when the TU means a unit that is partitioned according to partitioning information signaled from the encoder in a tree structure and is transformed, the block such as the CU and the PU can be recursively partitioned according to the signaled partitioning information.
[0262] In another embodiment, when the TU means a unit that is implicitly partitioned according to the size of a transform core (or transform matrix) and is transformed, the encoder and the decoder can equivalently partition the block such as the CU and the PU based on the size of the stored transform core without signaling the partitioning information. That is, the TU partitioning can be determined according to the transform core size. For example, when the size of the CU or the PU is 128x128 and the maximum size of the applicable (or predetermined) transform core is 64x64, the encoder and the decoder can perform the transform after partitioning the CU or the PU into four 64x64 blocks without signaling separate partitioning information for the transform. An example of the implicit partitioning method for the transform will be described in the following drawing.
[0263] Figure 24 is a drawing illustrating a method for determining whether to partition a block based on a maximum transform block size without syntax signaling as an application of an embodiment of the disclosure.
[0264] Referring to Figure 24 , the decoder can check whether the current block size is greater than the maximum transform size (or the maximum size of the transform core, or the maximum size of the transform matrix) (S2401).
[0265] When the current block size is greater than the maximum transform size, the decoder can partition the current block (S2402). In this case, the decoder can partition the current block in units of the maximum transform size. Only in the case of the inverse transform, the current block can be partitioned in units of the maximum transform size. The decoder can perform the inverse transform on the partitioned block (S2403).
[0266] Further, in step S2401, when the current block size is not greater than the maximum transform size, the decoder can perform the inverse transform on the current block.
[0267] In an embodiment, syntax such as MaxCUSize, MinCUSize, MaxCUDepth, etc. can be signaled. More specifically, MaxCUSize can represent the size of the largest block into which an image is initially partitioned, and can be expressed in log2 scale. This can be used similarly to or in place of syntax such as MaxQTSize, MinQTSize, and MaxQTDepth, etc. and used with syntax such as MaxQTSize, MinQTSize, and MaxQTDepth, etc.
[0268] In another embodiment, syntax such as MaxPUSize, MinPUSize, MaxPUDepth, etc. can be signaled. More specifically, MaxPUSize can represent the size of the largest block into which an image is initially partitioned, and can be expressed in log2 scale. For example, when MaxCUSize is larger than MaxPUSize, a corresponding CU can be implicitly partitioned up to the largest PU without the need to signal information. Specifically, when MaxPUSize is 64x64 and MaxCUSize is 128x128, prediction for a 128x128 block can be performed by using four 64x64 PUs. Alternatively, the corresponding block can be implicitly partitioned into four sub-PUs. Prediction for a 128x64 block can be performed by using two 64x64 PUs. Prediction for a 128x32 block can be performed by using two 64x32 PUs or four 32x32 PUs. When CU and PU are equal to each other, the syntax can not be transmitted. Alternatively, the syntax can be explicitly transmitted.
[0269] In another embodiment, syntax such as a maximum TU block size (MaxTUSize), a minimum TU block size (MinTUSize), a maximum TU block partition depth (MaxTUDepth), etc. can be signaled. More specifically, the maximum TU block size can represent a size of a maximum block into which an image is initially partitioned, and can be represented in a log2 scale. For example, when a maximum CU size is greater than the maximum TU size, a corresponding CU can be implicitly partitioned up to the maximum TU without signaling information. Specifically, when the maximum TU size is 64x64 and the maximum CU size is 128x128, a transform can be performed on the 128x128 block by using four 64x64 TUs. Alternatively, the corresponding block can be implicitly partitioned into four sub-CUs. A transform can be performed on the 128x64 block by using two 64x64 TUs. A transform can be performed on the 128x32 block by using two 64x32 TUs or four 32x32 TUs. When the CU and the TU are equal to each other, the syntax can not be transmitted. Alternatively, the syntax can be explicitly transmitted.
[0270] In another embodiment, transform size based implicit partitioning can be performed on a CU partitioned from a maximum size CU (or CTU) by TT or AT. For example, when the maximum size CU is 128x128 and TT partitioning is performed only once, two 32x128 CUs and one 64x128 CU can be generated. When it is assumed that a maximum size of a transform kernel is 64x64, an encoder / decoder can partition the 32x128 CU into two 64x32 TUs or partition the 32x128 CU into four 32x32 TUs without separate signaling when performing a transform. In this case, TU partitioning can be determined in units of an applicable transform kernel or a predetermined size. In addition, the encoder / decoder can partition the 64x128 CU into two 64x64 TUs without separate signaling when performing a transform.
[0271] Further, for example, when the maximum size CU is 128x128 and AT partitioning is performed only once, one 32x128 CU and one 96x128 CU can be generated. When it is assumed that a maximum size of a transform kernel is 64x64, an encoder / decoder can partition the 32x128 CU into two 64x32 TUs or partition the 32x128 CU into four 32x32 TUs without separate signaling when performing a transform. In this case, TU partitioning can be determined in units of an applicable transform kernel or a predetermined size. In addition, the encoder / decoder can partition the 96x128 CU into two 64x64 TUs and two 64x32 TUs without separate signaling or can partition the 96x128 CU into two 64x64 TUs or four 32x32 TUs.
[0272] Furthermore, when the maximum PU size is larger than the maximum TU size, the corresponding PU can be implicitly partitioned up to the maximum TU without signaling information. In particular, when the maximum TU size is 64x64 and the maximum PU size is 128x128, the 128x128 block can be transformed by using four 64x64 TUs. Alternatively, the corresponding block can be implicitly partitioned into four sub-PUs. The 128x64 block can be transformed by using two 64x64 TUs. The 128x32 block can be predicted by using two 64x32 TUs or four 32x32 TUs. When the PU and the TU are equal to each other, the syntax can not be transmitted. Alternatively, the syntax can be explicitly transmitted.
[0273] In an embodiment, transform size based implicit partitioning can be performed for a PU partitioned from a maximum size PU by TT or AT. For example, when the maximum size PU is 128x128 and only one TT partition is performed, two 32x128 PUs and one 64x128 PU can be generated. When the maximum size of the transform kernel is assumed to be 64x64, the encoder / decoder can partition the 32x128 PU into two 64x32 TUs or the 32x128 PU into four 32x32 TUs without separate signaling when performing the transform. In this case, the TU partitioning can be determined in units of the applicable transform kernel or predetermined size. In addition, the encoder / decoder can partition the 64x128 PU into two 64x64 TUs without separate signaling when performing the transform.
[0274] Furthermore, for example, when the maximum size PU is 128x128 and only one AT partition is performed, one 32x128 PU and one 96x128 PU can be generated. When the maximum size of the transform kernel is assumed to be 64x64, the encoder / decoder can partition the 32x128 PU into two 64x32 TUs or the 32x128 PU into four 32x32 TUs without separate signaling when performing the transform. In this case, the TU partitioning can be determined in units of the applicable transform kernel or predetermined size. In addition, the encoder / decoder can partition the 96x128 PU into two 64x64 TUs and two 64x32 TUs or the 96x128 PU into two 64x64 TUs or four 32x32 TUs without separate signaling.
[0275] Further, when the size of the PU is smaller than the minimum TU size, the corresponding block can be performed by combining a plurality of blocks satisfying the minimum TU. Alternatively, partitioning of the PU smaller than the minimum TU size can not be allowed. Specifically, when the minimum TU size is 8x8 and the minimum PU size is 4x4, the transform can be performed by collecting four 4x4 blocks and using one 8x8 TU. Alternatively, partitioning of the corresponding block into 4x4 PUs can be implicitly restricted.
[0276] Since the complexity of the encoder can be reduced by using the syntax information, and the decoder can implicitly derive the partition information of the block, there can be an effect of bit reduction.
[0277] According to the type of the slice (or slice group), the slice, and the image component, each of the syntax information can be transmitted through a sequence parameter set (SPS), a picture parameter set (PPS), a slice header (SH) (or a slice group header (TGH)), or a header of a network abstraction layer unit.
[0278] For convenience of description, the embodiments of the disclosure described above have been described separately, but the disclosure is not limited thereto. In other words, each of the above-described embodiments 1 to 8 can be independently performed, and one or more various embodiments can be combined and performed.
[0279] Figure 25 is a flowchart illustrating a decoding method of a video signal according to an embodiment of the disclosure.
[0280] Referring to Figure 25 For convenience of description, the decoder is mainly described, but the disclosure is not limited thereto, and the method for decoding a video signal according to the embodiment of the disclosure can be similarly performed in the encoder and the decoder.
[0281] When the current coding tree block exceeds the boundary of the current picture, the decoder partitions the current coding tree block into a plurality of coding blocks such that the coding blocks partitioned from the current coding tree block are included in the current picture (S2501).
[0282] When the current coding block satisfies a predetermined condition, the decoder parses a first syntax element indicating whether to partition the current coding block into a plurality of sub-blocks (S2502).
[0283] When the first syntax element indicates that the current coding block is partitioned, the decoder parses a second syntax element indicating whether to partition the current coding block by using a quad-tree structure (S2503).
[0284] When the second syntax element indicates that the current coding block is not partitioned using the quad-tree structure, the decoder parses at least one of a third syntax element indicating whether the current coding block is partitioned by using the binary tree structure or whether the current coding block is partitioned by using the ternary tree structure, and a fourth syntax element indicating a split direction of the current coding block (S2504).
[0285] The decoder determines a split mode of the current coding block based on at least one of the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element (S2505).
[0286] As described in Embodiment 5 above, the step of partitioning the current coding tree block into the plurality of coding blocks can be performed by partitioning the current coding tree block into the plurality of coding blocks by using the binary tree structure or the ternary tree structure until an active area in the current coding tree block is reached, and here, the active area can indicate an area in the current coding tree block that is located within a boundary of the current picture.
[0287] Further, as described in Embodiment 5 above, the step of partitioning the current coding tree block into the plurality of coding blocks can further include parsing a fifth syntax element indicating whether quad-tree splitting is allowed when the current coding tree block exceeds the boundary of the current picture, and when the fifth syntax element indicates that the quad-tree splitting is not allowed, the current coding tree block can be partitioned into the plurality of coding blocks by using the binary tree structure or the ternary tree structure.
[0288] Further, as described in Embodiment 5 above, the fifth syntax element can be signaled through a sequence parameter set, a picture parameter set, a slice group header, or a header of a network abstraction layer unit.
[0289] Further, as described in Embodiment 5 above, the step of partitioning the current coding tree block into the plurality of coding blocks can be performed by partitioning the current coding tree block into the plurality of coding blocks by using the binary tree structure or the ternary tree structure until an active area in the current coding tree block is reached, and here, the active area can indicate an area in the current coding tree block that is located within a boundary of the current picture.
[0290] In addition, as described in Embodiment 5 above, the step of partitioning the current coding tree block into the plurality of coding blocks can be performed by partitioning the current coding tree block into the plurality of coding blocks by using the quad-tree structure when a width of the active area is greater than a maximum transform size or a height of the active area is greater than the maximum transform size.
[0291] Further, in the embodiment, when the first syntax element value is 0, the current block can not be partitioned, and when the first syntax element value is 1, the current block can be partitioned into four sub-blocks by using a quad-tree structure, partitioned into two sub-blocks by using a binary-tree structure, or partitioned into three sub-blocks by using a ternary-tree structure.
[0292] Further, in the embodiment, when a value obtained by adding a width of the current block to a horizontal coordinate of an upper left sample of the current block is equal to or smaller than a width of the current picture, and a value obtained by adding a height of the current block to a vertical coordinate of the upper left sample of the current block is equal to or smaller than a height of the current picture, the predetermined condition can be satisfied.
[0293] Further, in the embodiment, the decoder can invoke the coding unit syntax for determining a partition structure of the current block. In this case, the invocation of the coding tree unit syntax for the current block can be performed before step S1501.
[0294] Further, in the embodiment, when the first syntax element indicates that the current block is not partitioned, the decoder can invoke the coding unit syntax for a decoding process of the current block.
[0295] Further, in the embodiment, the decoder can invoke the coding tree unit syntax for determining a partition structure of a sub-block partitioned from the current block based on the split mode.
[0296] Further, in the embodiment, the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element can be parsed in the same level of syntax.
[0297] Figure 26 FIG. 1 is a diagram illustrating a decoding apparatus according to an embodiment of the disclosure.
[0298] In Figure 26 , for convenience of description, the decoding apparatus is exemplified as one block, but in Figure 26 , the decoding apparatus exemplified in the embodiment can be implemented in components included in an encoder and / or a decoder.
[0299] Referring to Figure 26 , the decoding apparatus implements the functions, processes, and / or methods proposed above Figures 1 to 25 . Specifically, the decoding apparatus can be configured to include a coding tree block partition unit 2601, a syntax element parsing unit 2602, and a split mode determination unit 2603. Further, in the embodiment, the coding tree block partition unit 2601 and the syntax element parsing unit 2602 can be implemented as components included in the split mode determination unit 2603.
[0300] When the current coding tree block exceeds the boundary of the current picture, the coding tree block partition unit 2601 partitions the current coding tree block into a plurality of coding blocks such that the coding blocks partitioned from the current coding tree block are included in the current picture.
[0301] When the current coding block satisfies a predetermined condition, the syntax element parsing unit 2602 parses a first syntax element indicating whether to partition the current coding block into a plurality of sub-blocks.
[0302] When the first syntax element indicates that the current coding block is partitioned, the syntax element parsing unit 2602 parses a second syntax element indicating whether to partition the current coding block by using a quad-tree structure.
[0303] When the second syntax element indicates that the current coding block is not partitioned by using the quad-tree structure, the syntax element parsing unit 2602 parses at least one of a third syntax element indicating whether to partition the current coding block by using a binary-tree structure or a ternary-tree structure and a fourth syntax element indicating a split direction of the current coding block.
[0304] The split mode determination unit 2603 determines a split mode of the current coding block based on at least one of the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element.
[0305] As described in Embodiment 5 above, the coding tree block partition unit 2601 can partition the current coding tree block into a plurality of coding blocks by using a binary-tree structure or a ternary-tree structure until an active area in the current coding tree block is reached. Here, the active area can mean an area in the current coding tree block that belongs to the boundary of the current picture.
[0306] Further, as described in Embodiment 5 above, when the current coding tree block exceeds the boundary of the current picture, the coding tree block partition unit 2601 can parse a fifth syntax element indicating whether to allow quad-tree splitting. When the fifth syntax element indicates that the quad-tree splitting is not allowed, the current coding tree block can be partitioned into a plurality of coding blocks by using a binary-tree structure or a ternary-tree structure.
[0307] Further, as described in Embodiment 5 above, the fifth syntax element can be signaled through a sequence parameter set, a picture parameter set, a slice group header, or a header of a network abstraction layer unit.
[0308] Further, as described in Embodiment 5 above, the coding tree block partition unit 2601 can partition the current coding tree block into coding blocks by using a quad-tree structure or a triple-tree structure until reaching a valid area in the current coding tree block. Here, the valid area can mean an area in the current coding tree block that belongs to a boundary of the current picture.
[0309] Further, as described in Embodiment 5 above, when a width of the valid area is greater than the maximum transform size or a height of the valid area is greater than the maximum transform size, the coding tree block partition unit 2601 can partition the current coding tree block into coding blocks by using a quad-tree structure.
[0310] Further, in an embodiment, when the first syntax element value is 0, the current block can not be partitioned, and when the first syntax element value is 1, the current block can be partitioned into four sub-blocks by using a quad-tree structure, into two sub-blocks by using a binary-tree structure, or into three sub-blocks by using a triple-tree structure.
[0311] Further, in an embodiment, when a value obtained by adding a width of the current block to a horizontal coordinate of an upper-left sample of the current block is equal to or less than a width of the current picture, and a value obtained by adding a height of the current block to a vertical coordinate of the upper-left sample of the current block is equal to or less than a height of the current picture, the predetermined condition can be satisfied.
[0312] Further, in an embodiment, the decoder can invoke the coding unit syntax for determining a partition structure of the current block. In this case, a step of invoking the coding tree unit syntax of the current block can be performed before step S1501.
[0313] Further, in an embodiment, when the first syntax element indicates that the current block is not partitioned, the decoder can invoke the coding unit syntax for a decoding process of the current block.
[0314] Further, in an embodiment, the decoder can invoke the coding tree unit syntax for determining a partition structure of a sub-block partitioned from the current block based on a split mode.
[0315] Further, in an embodiment, the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element can be parsed in the same level of syntax.
[0316] Figure 27 A video coding system to which the present disclosure is applied is exemplified.
[0317] The video coding system can include a source device and a receiving device. The source device can forward the encoded video / image information or data to the receiving device in a file or stream format through a digital storage medium or a network.
[0318] The source device can include a video source, an encoding apparatus, and a transmitter. The reception device can include a receiver, a decoding apparatus, and a renderer. The encoding apparatus can be referred to as a video / image encoding apparatus, and the decoding apparatus can be referred to as a video / image decoding apparatus. The transmitter can be included in the encoding apparatus. The receiver can be included in the decoding apparatus. The renderer can include a display unit, and the display unit can be configured as a standalone device or an external component.
[0319] The video source can obtain a video / image through a process such as capturing, synthesizing, or generating. The video source can include a video / image capturing device and / or a video / image generating device. For example, the video / image capturing device can include one or more cameras, a video / image archive including previously captured videos / images, or the like. For example, the video / image generating device can include, for example, a computer, a tablet, and a smartphone, and can (electrically) generate a video / image. For example, a virtual video / image can be generated through a computer, and in this case, the video / image capturing process can be replaced by a process of generating related data.
[0320] The encoding apparatus can encode an input video / image. The encoding apparatus can perform a series of processes including prediction, transform, quantization, or the like for compression and coding efficiency.
[0321] The transmitter can forward the encoded video / image information or data output in a bitstream format to the receiver of the reception device in a file or stream format through a digital storage medium or a network. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, or the like. The transmitter can include an element for generating a media file through a predetermined file format, and can include an element for transmission through a broadcasting / communication network. The receiver can extract a bitstream and forward it to the decoding apparatus.
[0322] The decoding apparatus can perform a series of processes including dequantization, inverse transform, prediction, or the like corresponding to the operation of the encoding apparatus, and decodes a video / image.
[0323] The renderer can render the decoded video / image. The rendered video / image can be displayed through a display unit.
[0324] Figure 28 is a configuration diagram of a content streaming system to which embodiments of the disclosure are applied.
[0325] Referring to Figure 28 The content streaming system to which the disclosure is applied can include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
[0326] The encoding server is used to compress content input from a multimedia input device such as a smart phone, a camera, a camcorder, etc. into digital data to generate a bitstream, and transmit the bitstream to the streaming server. As another example, when a multimedia input device such as a smart phone, a camera, and a camcorder directly generates a bitstream, the encoding server can be omitted.
[0327] A bitstream can be generated by applying the encoding method or the bitstream generation method of the present disclosure, and the streaming server can temporarily store the bitstream in a process for transmitting or receiving the bitstream.
[0328] The streaming server transmits multimedia data to a user device through a web server on the basis of a request of the user, and the web server functions as a medium that informs the user of a service. When the user transmits a request for a desired service to the web server, the web server delivers the request to the streaming server, and the streaming server transmits multimedia data to the user. Here, the content streaming system can include an additional control server, and in this case, the control server functions to control commands / responses between the respective devices in the content streaming system.
[0329] The streaming server can receive content from a media storage and / or an encoding server. For example, when content is received from the encoding server, the streaming server can receive the content in real time. In this case, the streaming server can store a bitstream for a predetermined time to provide a smooth streaming service.
[0330] Examples of the user device can include a cellular phone, a smart phone, a laptop computer, a digital broadcasting terminal, a PDA (Personal Digital Assistant), a PMP (Portable Multimedia Player), a navigation device, a touch screen PC, a tablet PC, an ultrabook, a wearable device (e.g., a smart watch, smart glasses, and an HMD (Head-Mounted Display)), a digital TV, a desktop computer, a digital signage, etc.
[0331] Each server in the content streaming system can operate as a distributed server, and in this case, data received by each server can be processed in a distributed manner.
[0332] The embodiments described in the present disclosure can be implemented and executed on a processor, a microprocessor, a controller, or a chip. For example, the functional units shown in the accompanying drawings can be implemented and executed on a computer, a processor, a microprocessor, a controller, or a chip.
[0333] Further, the decoder and the encoder to which the present disclosure is applied can be included in a multimedia broadcast transceiver, a mobile communication terminal, a home theater video device, a digital theater video device, a surveillance camera, a video conversation device, a real-time communication device such as a video communication, a mobile streaming device, a storage medium, a camcorder, a video on demand (VoD) service providing device, an over-the-top (OTT) video device, an Internet streaming service providing device, a three-dimensional (3D) video device, a video phone device, and a medical video device, and can be used to process a video signal or a data signal. For example, the OTT video device can include a game console, a Blu-ray player, an Internet-accessible television, a home theater system, a smart phone, a tablet PC, a digital video recorder (DVR), etc.
[0334] Further, the processing method to which the present disclosure is applied can be generated in the form of a program executed by a computer, and can be stored in a computer-readable recording medium. Multimedia data having a data structure according to the present disclosure can also be stored in a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices in which computer-readable data are stored. The computer-readable recording medium can include, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disc, and an optical data storage device. Further, the computer-readable recording medium includes a medium implemented in the form of a carrier wave (e.g., transmission over the Internet). Further, a bitstream generated using an encoding method can be stored in a computer-readable recording medium or can be transmitted via a wired / wireless communication network.
[0335] Further, the embodiments of the present disclosure can be implemented as a computer program product using program codes. The program codes can be executed by a computer according to the embodiments of the present disclosure. The program codes can be stored on a carrier which is readable by a computer.
[0336] In the foregoing embodiments, elements and features of the present disclosure have been combined in a specific form. Unless explicitly described otherwise, each element or feature can be considered optional. Each element or feature can be implemented in a form not combined with other elements or features. Further, some elements and / or features can be combined to form embodiments of the present disclosure. The order of operations described in the embodiments of the present disclosure can be changed. Some elements or features of the embodiments can be included in another embodiment, or can be replaced with corresponding elements or features of another embodiment. It is obvious that the embodiments can be constructed by combining claims having no explicit citation relationship, or can be included as new claims by modification after the application is filed.
[0337] The embodiments according to the present disclosure can be implemented in various ways, for example, hardware, firmware, software, or a combination thereof. In the case of implementation by hardware, the embodiments of the present disclosure can be implemented using one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, etc.
[0338] In the case of implementation by firmware or software, the embodiments of the present disclosure can be implemented in the form of modules, procedures, or functions for performing the aforementioned functions or operations. The software code can be stored in a memory and driven by a processor. The memory can be located inside or outside the processor and can exchange data with the processor through various known means.
[0339] It will be apparent to those skilled in the art that the present disclosure can be implemented in other specific forms without departing from the essential characteristics of the present disclosure. Therefore, the detailed description should not be interpreted as limiting, but should be interpreted as exemplary in all aspects. The scope of the present disclosure should be determined by a reasonable analysis of the appended claims, and all variations within the scope of equivalents of the present disclosure are included in the scope of the present disclosure.
[0340] Industrial applicability
[0341] The above preferred embodiments of the present disclosure have been disclosed for exemplary purposes, and those skilled in the art can improve, change, replace, or add various other embodiments without departing from the technical spirit and scope of the present disclosure disclosed in the appended claims.
Claims
1. A method for decoding an image, the method comprising the steps of: partitioning a current coding tree block into a plurality of coding blocks based on the current coding tree block exceeding a boundary of a current picture; based on a current coding block in the plurality of coding blocks satisfying a predetermined condition, parsing a first syntax element indicating whether the current coding block is partitioned into a plurality of sub-blocks, wherein the predetermined condition is satisfied when a value obtained by adding a width of the current coding tree block to a horizontal coordinate of a top-left sample of the current coding tree block is equal to or less than a width of the current picture, and a value obtained by adding a height of the current coding tree block to a vertical coordinate of the top-left sample of the current coding tree block is equal to or less than a height of the current picture; when the first syntax element indicates that the current coding block is partitioned, parsing a second syntax element indicating whether the current coding block is partitioned using a quad-tree structure; when the second syntax element indicates that the current coding block is not partitioned using the quad-tree structure, parsing at least one of a third syntax element indicating whether the current coding block is partitioned using a binary-tree structure or a ternary-tree structure, or a fourth syntax element indicating a split direction of the current coding block; determining, based on the first syntax element and the second syntax element, that a split mode of the current coding block is quad-tree splitting, or determining, based on the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element, that the split mode of the current coding block is one of horizontal binary-tree splitting, vertical binary-tree splitting, horizontal ternary-tree splitting, or vertical ternary-tree splitting.
2. The method for decoding an image according to claim 1, wherein, the step of partitioning the current coding block into the plurality of coding blocks comprises the step of partitioning the current coding tree block into the plurality of coding blocks using the binary-tree structure or the ternary-tree structure until an active area in the current coding tree block is reached, wherein the active area represents an area in the current coding tree block that is within the boundary of the current picture.
3. The method for decoding an image according to claim 1, wherein, the step of partitioning the current coding block into the plurality of coding blocks comprises the step of parsing a fifth syntax element indicating whether quad-tree splitting is allowed, wherein when the fifth syntax element indicates that the quad-tree splitting is not allowed, the current coding tree block is partitioned into the plurality of coding blocks using the binary-tree structure or the ternary-tree structure.
4. The method for decoding an image according to claim 3, wherein, the fifth syntax element is signaled through a sequence parameter set, a picture parameter set, a slice group header, or a header of a network abstraction layer unit.
5. The method for decoding an image according to claim 1, wherein, the step of partitioning the current coding block into the plurality of coding blocks comprises the step of partitioning the current coding tree block into the plurality of coding blocks using the quad-tree structure until the active area in the current coding tree block is reached, wherein the active area represents the area in the current coding tree block that is within the boundary of the current picture.
6. The method for decoding an image according to claim 5, wherein, The step of partitioning the current coding tree block into the plurality of coding blocks comprises the step of partitioning the current coding tree block into the coding blocks by using the quad-tree structure based on that a width of the significant region is greater than a maximum transform size or a height of the significant region is greater than the maximum transform size.
7. An apparatus for decoding an image, the apparatus comprising: a coding tree block partitioning unit configured to partition a current coding tree block into a plurality of coding blocks based on that the current coding tree block exceeds a boundary of a current picture; a syntax element parsing unit configured to: parse a first syntax element indicating whether the current coding block is partitioned into a plurality of sub-blocks based on that a current coding block of the plurality of coding blocks satisfies a predetermined condition, wherein the predetermined condition is satisfied when a value obtained by adding a width of the current coding tree block to a horizontal coordinate of a top-left sample of the current coding tree block is equal to or less than a width of the current picture and a value obtained by adding a height of the current coding tree block to a vertical coordinate of the top-left sample of the current coding tree block is equal to or less than a height of the current picture; parse a second syntax element indicating whether the current coding block is partitioned by using a quad-tree structure when the first syntax element indicates that the current coding block is partitioned; parse at least one of a third syntax element and a fourth syntax element when the second syntax element indicates that the current coding block is not partitioned by using the quad-tree structure, the third syntax element indicating whether the current coding block is partitioned by using a binary-tree structure or whether the current coding block is partitioned by using a ternary-tree structure, the fourth syntax element indicating a split direction of the current coding block; a split mode determining unit configured to determine a split mode of the current coding block as a quad-tree split based on the first syntax element and the second syntax element, or determine the split mode of the current coding block as one of a horizontal binary-tree split, a vertical binary-tree split, a horizontal ternary-tree split or a vertical ternary-tree split based on the first syntax element, the second syntax element, the third syntax element and the fourth syntax element.
8. The apparatus for decoding an image according to claim 7, wherein, the coding tree block partitioning unit is configured to partition the current coding tree block into the plurality of coding blocks by using the binary-tree structure or the ternary-tree structure until a significant region in the current coding tree block is reached, wherein the significant region represents a region in the current coding tree block that is located within the boundary of the current picture.
9. The apparatus for decoding an image according to claim 7, wherein, the syntax element parsing unit is further configured to parse a fifth syntax element indicating whether a quad-tree split is allowed based on that the current coding tree block exceeds the boundary of the current picture, wherein the coding tree block partitioning unit is configured to partition the current coding tree block into the plurality of coding blocks by using the binary-tree structure or the ternary-tree structure when the fifth syntax element indicates that the quad-tree split is not allowed.
10. The apparatus for decoding an image according to claim 9, wherein, the fifth syntax element is signaled by a sequence parameter set, a picture parameter set, a slice group header or a header of a network abstraction layer unit.
11. The apparatus for decoding an image according to claim 7, wherein, The coding tree block partition unit is configured to partition the current coding tree block into the coding blocks by using the quad-tree structure until an active area in the current coding tree block is reached, wherein the active area represents an area in the current coding tree block that is within a boundary of the current picture.
12. The apparatus for decoding an image according to claim 11, wherein, The coding tree block partition unit is configured to partition the current coding tree block into the coding blocks by using the quad-tree structure based on a width of the active area being greater than a maximum transform size or a height of the active area being greater than the maximum transform size.
13. A method for coding a picture, the method comprising the steps of: partitioning a current coding tree block into coding blocks based on the current coding tree block exceeding a boundary of a current picture; determining a split mode of a current coding block in the coding blocks; determining a first syntax element indicating whether to partition the current coding block into sub-blocks based on the current coding block satisfying a predetermined condition, wherein the predetermined condition is satisfied when a value obtained by adding a width of the current coding tree block to a horizontal coordinate of a top-left sample of the current coding tree block is equal to or less than a width of the current picture, and a value obtained by adding a height of the current coding tree block to a vertical coordinate of the top-left sample of the current coding tree block is equal to or less than a height of the current picture; determining a second syntax element indicating whether to partition the current coding block by using a quad-tree structure when the first syntax element indicates to partition the current coding block; determining at least one of a third syntax element and a fourth syntax element when the second syntax element indicates not to partition the current coding block by using the quad-tree structure, the third syntax element indicating whether to partition the current coding block by using a binary-tree structure or whether to partition the current coding block by using a ternary-tree structure, the fourth syntax element indicating a split direction of the current coding block; wherein the first syntax element and the second syntax element are determined based on whether the split mode of the current coding block is quad-tree splitting, or the first syntax element, the second syntax element, the third syntax element and the fourth syntax element are determined based on whether the split mode of the current coding block is one of horizontal binary-tree splitting, vertical binary-tree splitting, horizontal ternary-tree splitting or vertical ternary-tree splitting.
14. The method for encoding an image according to claim 13, wherein, The step of partitioning the current coding block into the coding blocks comprises the step of partitioning the current coding tree block into coding blocks by using the binary-tree structure or the ternary-tree structure until an active area in the current coding tree block is reached, wherein the active area represents an area in the current coding tree block that is within a boundary of the current picture.
15. The method for encoding an image according to claim 13, wherein, The step of partitioning the current coding block into the plurality of coding blocks comprises the step of determining a fifth syntax element indicating whether a quad-tree partitioning is allowed, wherein when the fifth syntax element indicates that the quad-tree partitioning is not allowed, the current coding tree block is partitioned into the plurality of coding blocks by using the binary tree structure or the ternary tree structure.
16. The method for encoding an image according to claim 15, wherein, The fifth syntax element is signaled by a sequence parameter set, a picture parameter set, a slice group header, or a header of a network abstraction layer unit.
17. The method for encoding an image according to claim 13, wherein, The step of partitioning the current coding block into the plurality of coding blocks comprises the step of partitioning the current coding tree block into the plurality of coding blocks by using the quad-tree structure until a valid area in the current coding tree block is reached, wherein the valid area represents an area in the current coding tree block which is located within a boundary of the current picture.
18. The method for encoding an image according to claim 17, wherein, The step of partitioning the current coding block into the plurality of coding blocks comprises the step of partitioning the current coding tree block into the coding block by using the quad-tree structure based on a width of the valid area being greater than a maximum transform size or a height of the valid area being greater than the maximum transform size.
19. An apparatus for encoding an image, the apparatus comprising: a coding tree block partitioning unit configured to partition a current coding tree block into a plurality of coding blocks based on the current coding tree block being outside a boundary of a current picture; a partition mode determination unit configured to determine a partition mode of a current coding block in the plurality of coding blocks; a syntax element determination unit configured to: determine a first syntax element indicating whether the current coding block is partitioned into a plurality of sub-blocks based on the current coding block satisfying a predetermined condition, wherein the predetermined condition is satisfied when a value obtained by adding a width of the current coding tree block to a horizontal coordinate of a top-left sample of the current coding tree block is equal to or less than a width of the current picture, and a value obtained by adding a height of the current coding tree block to a vertical coordinate of the top-left sample of the current coding tree block is equal to or less than a height of the current picture; determine a second syntax element indicating whether the current coding block is partitioned by using a quad-tree structure when the first syntax element indicates that the current coding block is partitioned; determine at least one of a third syntax element and a fourth syntax element when the second syntax element indicates that the current coding block is not partitioned by using the quad-tree structure, the third syntax element indicating whether the current coding block is partitioned by using a binary tree structure or whether the current coding block is partitioned by using a ternary tree structure, the fourth syntax element indicating a partition direction of the current coding block; wherein the first syntax element and the second syntax element are determined based on whether the partition mode of the current coding block is a quad-tree partitioning, or the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element are determined based on the partition mode of the current coding block being one of a horizontal binary tree partitioning, a vertical binary tree partitioning, a horizontal ternary tree partitioning, or a vertical ternary tree partitioning.
20. The apparatus for encoding an image according to claim 19, wherein, The coding tree block partition unit is configured to partition the current coding tree block into the plurality of coding blocks by using the binary tree structure or the ternary tree structure until reaching a valid area in the current coding tree block, wherein the valid area represents an area in the current coding tree block that is within a boundary of the current picture.
21. The apparatus for encoding an image according to claim 19, wherein, The syntax element determination unit is further configured to determine a fifth syntax element indicating whether a quad-tree partition is allowed based on the current coding tree block exceeding the boundary of the current picture, and the coding tree block partition unit is configured to partition the current coding tree block into the plurality of coding blocks by using the binary tree structure or the ternary tree structure when the fifth syntax element indicates that the quad-tree partition is not allowed.
22. The apparatus for encoding an image according to claim 21, wherein, The fifth syntax element is signaled by a sequence parameter set, a picture parameter set, a slice group header, or a header of a network abstraction layer unit.
23. The apparatus for encoding an image according to claim 19, wherein, The coding tree block partition unit is configured to partition the current coding tree block into the plurality of coding blocks by using the quad-tree structure until reaching a valid area in the current coding tree block, wherein the valid area represents an area in the current coding tree block that is within a boundary of the current picture.
24. The apparatus for encoding an image according to claim 23, wherein, The coding tree block partition unit is configured to partition the current coding tree block into the plurality of coding blocks by using the quad-tree structure based on a width of the valid area being greater than a maximum transform size or a height of the valid area being greater than the maximum transform size.
25. A streaming server for storing a bitstream, characterized in that, The bitstream is generated by the method for encoding an image according to any one of claims 13 to 18.
Citation Information
Patent Citations
Signaling of prediction coding unit in accordance with video coding
CN103024373A
Image decoding device and image encoding device
CN107637081A