Method for processing an image and device therefor
By adjusting the block partitioning method using the QTBT structure and combining binary, ternary, and quadtree structures, the problem of increased storage and processing power in next-generation video content encoding is solved, achieving high encoding efficiency and compression performance.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-04-19
- Publication Date
- 2026-04-07
AI Technical Summary
Existing technologies struggle to efficiently encode next-generation video content, leading to a dramatic increase in memory storage and processing power.
The QTBT structure adjustment block partitioning method is adopted, which determines the segmentation mode of the coded block by parsing multiple syntax elements, including the combination of binary tree, ternary tree and quadtree structures, to ensure the efficient transmission of segmentation information signaling.
Effective block partitioning improves compression performance, reduces the number of bits required for segmented information signaling, and enhances coding efficiency.
Smart Images

Figure CN118118671B_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] Filter 160 can improve the quality of subjective / objective images by applying filtering to the reconstructed signal. For example, filter 160 can generate a corrected reconstructed image by applying various filtering methods to the reconstructed image. The corrected reconstructed image can be stored in memory 170, more specifically, in the DPB of memory 170. Various filtering methods can include, for example, deblocking filtering, sample adaptive offset, adaptive loop filtering, and bilateral filtering. Filter 160 can generate various information for filtering as described later in the description of each filtering method, and can send them to entropy encoder 190. The filtering information can be encoded by entropy encoder 190 and output as a bitstream.
[0073] The corrected reconstructed image sent to memory 170 can be used as a reference image in inter-frame predictor 180. If inter-frame prediction is applied, the encoding device can avoid prediction mismatch in encoding device 100 and decoding device, and improve encoding efficiency.
[0074] The DPB of memory 170 can store corrected reconstructed images for use as reference images in inter-frame predictor 180. Memory 170 can store motion information of blocks in the current image that derive (or encode) motion information and / or motion information of blocks in already reconstructed images. The stored motion information can be forwarded to inter-frame predictor 180 as motion information for spatially adjacent blocks or temporally adjacent blocks. Memory 170 can store reconstructed samples of reconstructed blocks in the current image and forward them to intra-frame predictor 185.
[0075] Figure 2 This is an embodiment of the present disclosure and a schematic block diagram of a decoding device for decoding video / image signals.
[0076] Reference Figure 2 The decoding device 200 can be configured to include an entropy decoder 210, a dequantizer 220, an inverse transformer 230, an adder 235, a filter 240, a memory 250, an inter-frame predictor 260, and an intra-frame predictor 265. The inter-frame predictor 260 and the intra-frame predictor 265 can be collectively referred to as predictors. That is, a predictor can include an inter-frame predictor 180 and an intra-frame predictor 185. The dequantizer 220 and the inverse transformer 230 can be collectively referred to as a residual processor. That is, a residual processor can include a dequantizer 220 and an inverse transformer 230. According to an embodiment, the entropy decoder 210, dequantizer 220, inverse transformer 230, adder 235, filter 240, inter-frame predictor 260, and intra-frame predictor 265 can be configured as a single hardware component (e.g., a decoder or a processor). Furthermore, the memory 250 can include a decoded picture buffer (DPB) and can be implemented using 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] Dequantizer 220 can dequantize the quantized transform coefficients and output the transform coefficients. Dequantizer 220 can rearrange the quantized transform coefficients in a two-dimensional block format. In this case, the rearrangement can be performed based on the coefficient scan sequence executed in the encoding device. Dequantizer 220 can perform dequantization on the quantized transform coefficients using quantization parameters (e.g., quantization step size information) and obtain the transform coefficients.
[0080] The inverse converter 230 can output the residual signal (residual block or residual sample array) by applying an inverse transform to the transform coefficients.
[0081] The predictor can perform predictions on the current block and generate a prediction block that includes prediction samples of the current block. Based on the prediction information output by the entropy decoder 210, the predictor can determine whether to apply intra-frame prediction or inter-frame prediction to the current block, and can determine the detailed intra-frame / inter-frame prediction mode.
[0082] The intra-predictor 265 can refer to samples within the current image to predict the current block. Depending on the prediction mode, the referenced samples can be located as adjacent to the current block or as spaced apart from it. In intra-prediction, the prediction mode can include multiple non-angular modes and multiple angular modes. The intra-predictor 265 can use the prediction modes applied to neighboring blocks to determine the prediction mode applied to the current block.
[0083] Inter-frame predictor 260 can deduce the predicted block of the current block based on a reference block (reference sample array) specified by motion vectors on a reference image. In this case, to reduce the amount of motion information transmitted in inter-frame prediction mode, motion information can be predicted on a block, sub-block, or sample basis based on the correlation of motion information between neighboring blocks and the current block. Motion information may include motion vectors and reference image indices. Motion information may also include inter-frame prediction direction (L0 prediction, L1 prediction, Bi prediction) information. In the case of inter-frame prediction, neighboring blocks may include spatially adjacent blocks within the current image and temporally adjacent blocks within the reference image. For example, inter-frame predictor 260 can configure a motion information candidate list based on neighboring blocks and can deduce the motion vector and / or reference image index of the current block based on received candidate selection information. Inter-frame prediction can be performed based on various prediction modes. Information about the prediction may include information indicating the mode of inter-frame prediction for the current block.
[0084] Adder 235 can generate a reconstruction signal (reconstructed image, reconstruction block, or reconstruction sample array) by adding the obtained residual signal to the prediction signal (prediction block or prediction sample array) output by inter-frame predictor 260 or intra-frame predictor 265. If there is no residual for the processing target block, as in the case where skip mode has been applied, the prediction block can be used as a reconstruction block.
[0085] Adder 235 can be referred to as a reconstructor or reconstruction block generator. The generated reconstructed signal can be used for intra-frame prediction of the next processing target block within the current image, and can be used for inter-frame prediction of the next image after filtering as described later.
[0086] Filter 240 can improve the quality of subjective / objective images by applying filtering to the reconstructed signal. For example, filter 240 can generate a corrected reconstructed image by applying various filtering methods to the reconstructed image, and the corrected reconstructed image can be sent to memory 250, more specifically, to the DPB of memory 250. Various filtering methods may include, for example, deblocking filtering, sample adaptive offset (SAO), adaptive loop filter (ALF), and bilateral filter.
[0087] The (corrected) reconstructed image stored in the DPB of memory 250 can be used as a reference image in inter-frame predictor 260. Memory 250 can store motion information of blocks in the current image that have been deduced (or decoded) and / or motion information of blocks in the reconstructed image. The stored motion information can be forwarded to inter-frame predictor 260 as motion information for spatially adjacent blocks or temporally adjacent blocks. Memory 170 can store reconstructed samples of reconstructed blocks in the current image and forward them to intra-frame predictor 265.
[0088] In this disclosure, the embodiments described in the filter 160, inter-frame predictor 180 and intra-frame predictor 185 of the encoding device 100 can be applied in the same or corresponding manner to the filter 240, inter-frame predictor 260 and intra-frame predictor 265 of the decoding device 200, respectively.
[0089] Block partition
[0090] The video / image coding method according to this disclosure can be performed based on various detailed techniques, each of which 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, dequantization, etc.), syntax element encoding, filtering, partitioning / segmentation, etc., in the video / image coding / decoding process described above and / or below.
[0091] The block partitioning process according to this disclosure can be performed in the image partitioner 110 of the aforementioned encoding device, and the partitioning-related information can be processed (encoded) in the entropy encoder 190 and forwarded to the decoding device in bitstream format. The entropy decoder 210 of the decoding device can obtain the block partitioning structure of the current image 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 on it to perform image decoding.
[0092] The image section is CTU.
[0093] An image can be divided into a sequence of Coding Tree Units (CTUs). Each CTU can correspond to a Coding Tree Block (CTB). Alternatively, a CTU may include a coded tree block for luma samples and two coded tree blocks for corresponding chroma samples. In other words, for an image comprising three types of sample arrays, a CTU may include an N×N block of luma samples and two corresponding samples for chroma samples.
[0094] The maximum supported size of the CTU used for encoding and prediction can be different from the maximum supported size of the CTU used for transformation. For example, the maximum supported size of the luma block in the CTU can be 128×128.
[0095] Use a tree structure to partition the CTU.
[0096] The CTU can be partitioned into CUs based on a quadtree (QT) structure. The quadtree structure can be referred to as a quaternion structure. This is to reflect various local features. Furthermore, in this disclosure, the CTU can be partitioned based on a multi-type tree structure partitioning, including binary trees (BT), ternary trees (TT), and quadtrees. In the following, the QTBT structure can include quadtree and binary tree structures, and QTBTTT can include partitioning structures based on binary and ternary trees. Alternatively, the QTBT structure can also include partitioning structures based on quadtrees, binary trees, and ternary trees. In the coding tree structure, the CU can have a square or rectangular shape. First, the CTU can be partitioned into a quadtree structure. Then, the leaf nodes of the quadtree structure can be additionally partitioned according to the multi-type tree structure.
[0097] Figure 3 This diagram illustrates an example of a variety of tree structures that can be implemented using the present disclosure.
[0098] In embodiments of this disclosure, multi-type tree structures may include, for example: Figure 3The four segmentation types are shown. These four segmentation types can include vertical binary segmentation (SPLIT_BT_VER), horizontal binary segmentation (SPLIT_BT_HOR), vertical ternary segmentation (SPLIT_TT_VER), and horizontal ternary segmentation (SPLIT_TT_HOR). The leaf nodes of the multi-type tree structure are called CUs. These CUs can be used for prediction and transformation processes. In this disclosure, typically, CUs, PUs, and TUs can have the same block size. However, CUs and TUs can have different block sizes if the maximum supported transformation length is less than the width or height of the color component.
[0099] Figure 4 This is a diagram illustrating a signaling mechanism for partitioning information of a quadtree with nested multi-type tree structures, which is an embodiment of the present disclosure that can be applied.
[0100] Here, the CTU can be treated as the root of a quadtree and initially partitioned into a quadtree structure. Each quadtree leaf node can then be further partitioned into a multi-type tree structure. In the multi-type tree structure, a first flag (e.g., `mtt_split_cu_flag`) is signaled to indicate whether the corresponding node is further partitioned. If the corresponding node is further partitioned, a second flag (e.g., `mtt_split_cu_vertical_flag`) is signaled to indicate the split direction. Subsequently, a third flag (e.g., `mtt_split_cu_binary_flag`) is signaled to indicate whether the split type is a binary or ternary split. For example, based on `mtt_split_cu_vertical_flag` and `mtt_split_cu_binary_flag`, the multi-type tree splitting mode (MttSplitMode) can be derived as shown 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 This is a diagram illustrating a method for partitioning a CTU into multiple CUs based on quadtree and nested multi-type tree structures, which is an implementation of the present disclosure.
[0104] Here, the bolded block edges represent quadtree partitions, and the remaining edges represent multi-type tree partitions. Quadtree partitions with nested multi-type trees 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 for luma samples and two coding blocks for corresponding chroma samples. Within a luma sample unit, the size of the CU can be the same as a CTU, or it can be as small as 4×4. For example, in the case of a 4:2:0 color format (or chroma format), the maximum chroma CB size can be 64×64, and the minimum chroma CB size can be 2×2.
[0105] In this disclosure, for example, the maximum supported luminance TB size can be 64×64, and the maximum supported chrominance TB size can be 32×32. If the width or height of a CB partitioned according to the tree structure is greater than the maximum transform width or height, the CB can be further partitioned until the horizontal and vertical TB size limits are automatically (implicitly) met.
[0106] Furthermore, for quadtree encoding tree schemes with nested multi-type trees, the following parameters can be defined or identified as SPS syntax elements.
[0107] -CTU size: The size of the root node of the quadtree
[0108] -MinQTSize: The minimum allowed size of a quadtree leaf node.
[0109] -MaxBtSize: Maximum allowed size of the root node of the binary tree
[0110] -MaxTtSize: Maximum allowed size of the root node of the ternary tree
[0111] -MaxMttDepth: The maximum level depth allowed for splitting a multi-type tree from a quadtree leaf.
[0112] -MinBtSize: The minimum allowed size of a binary leaf node.
[0113] -MinTtSize: Minimum allowed size of a ternary leaf node
[0114] As an example of a quadtree coding tree scheme with nested multi-type trees, the CTU size can be set to 128×128 luma samples and two corresponding chroma samples in a 64×64 block (in a 4:2:0 chroma sample). In this case, MinOTSize can be set to 16×16, MaxBtSize can be set to 128×128, MaxTtSize can be set to 64×64, MinBtSize and MinTtSize (for both width and height) can be set to 4×4, and MaxMttDepth can be set to 4. Quadtree partitioning can be applied to the CTU and generate quadtree leaf nodes. Quadtree leaf nodes can be called leaf QT nodes. Quadtree leaf nodes can have sizes ranging from 16×16 (i.e., MinOTSize) to 128×128 (i.e., CTU size). In the case of leaf QT nodes being 128×128, leaf QT nodes can be unpartitioned into binary / ternary trees. This is because even when leaf QT nodes are partitioned, they exceed MaxBtsize and MaxTtsize (i.e., 64×64). In other cases, leaf QT nodes can be additionally partitioned into multi-type trees. Therefore, a leaf QT node can be the root node of a multi-type tree, and it can have a multi-type tree depth (mttDepth) of 0. Additional partitions can be disregarded when the multi-type tree depth reaches MaxMttdepth (e.g., 4). Additional horizontal partitions can be disregarded when the width of a multi-type tree node is equal to MinBtSize and less than or equal to 2×MinTtSize. Additional vertical partitions can be disregarded when the height of a multi-type tree node is equal to MinBtSize and less than or equal to 2×MinTtSize.
[0115] Figure 6 This diagram illustrates a method for limiting ternary tree segmentation as an embodiment of which the present disclosure can be applied.
[0116] Reference Figure 6 To support 64×64 luma blocks and 32×32 chroma pipeline designs in the hardware decoder, TT segmentation can be restricted in certain cases. For example, when the width or height of the luma encoding block is greater than a predetermined specific value (e.g., 32, 64), such as... Figure 6 As shown, TT segmentation can be restricted.
[0117] In this disclosure, the coding tree scheme can support luma and chroma blocks having separate block tree structures. Regarding P and B slices, the luma CTB and chroma CTB within a single CTU can be restricted to having the same coding tree structure. However, regarding I slices, luma and chroma blocks can have their own separate block tree structures. When applying the separate block tree mode, the luma CTB can be partitioned into CUs based on a specific coding tree structure, and the chroma CTB can be partitioned into chroma CUs based on different coding tree structures. This means that a CU in an I slice can include a coding block of chroma components or a coding block of two chroma components, and a CU in a P or B slice can include a block of three color components.
[0118] In the above description of "Partitioning the CTU using a tree structure," a quadtree coding tree scheme with nested multi-type trees was described; however, the structure for partitioning the CU is not limited to this. For example, the BT and TT structures can be interpreted as concepts included in the Multi-Partition Tree (MPT) structure, and can be interpreted as partitioning the CU through the QT and MPT structures. In the example of partitioning the CU through the QT and MPT structures, a syntax element (e.g., MPT_split_type) including information about the number of blocks into which the leaf nodes of the QT structure are partitioned, and a syntax element (e.g., MPT_split_mode) including information about the direction in which the leaf nodes of the QT structure are partitioned between the vertical and horizontal directions, can be signaled, and the partitioning structure can be determined.
[0119] In another example, the CU can be partitioned in a way different from the QT, BT, or TT structures. That is, instead of partitioning the lower-depth CU into 1 / 4 the size of the higher-depth CU according to the QT structure, the lower-depth CU can be partitioned into 1 / 2 the size of the higher-depth CU according to the BT structure, or 1 / 4 or 1 / 2 the size of the higher-depth CU according to the TT structure. In some cases, the lower-depth CU can be partitioned into 1 / 5, 1 / 3, 3 / 8, 3 / 5, 2 / 3, or 5 / 8 the size of the higher-depth CU, but the method of partitioning the CU is not limited to these.
[0120] If a portion of a tree node block extends beyond the bottom or right image boundary, the corresponding tree node block can be restricted to all samples of all encoded CUs lying within the image boundary. In this case, for example, the following segmentation rule can be applied.
[0121] -If part of a tree node block extends beyond both the bottom and right image boundaries.
[0122] - If the block is a QT node and the block size is larger than the minimum QT size, then the block is forced to be split using the QT splitting mode.
[0123] Otherwise, force the blocks to be split using the SPLIT_BT_HOR mode.
[0124] Otherwise, if part of the tree node block extends beyond the bottom image boundary,
[0125] - If the block is a QT node, and the block size is greater than the minimum QT size and the block size is greater than the maximum BT size, then the block is forced to be split using the QT splitting mode.
[0126] Otherwise, if the block is a QT node and the block size is greater than the minimum QT size and the block size is less than or equal to the maximum BT size, then the block is forced to be split using either the QT splitting mode or the SPLIT_BT_HOR mode.
[0127] Otherwise (if the block is a BTT node, or the block size is less than or equal to the minimum QT size), the block will be forced to be split using the SPLIT_BT_HOR mode.
[0128] Otherwise, if part of the tree node block extends beyond the right-hand image boundary,
[0129] - If the block is a QT node, and the block size is greater than the minimum QT size and the block size is greater than the maximum BT size, then the block is forced to be split using the QT splitting mode.
[0130] Otherwise, if the block is a QT node and the block size is greater than the minimum QT size and the block size is less than or equal to the maximum BT size, then the block is forced to be split using either the QT splitting mode or the SPLIT_BT_VER mode.
[0131] Otherwise (if the block is a BTT node, or the block size is less than or equal to the minimum QT size), the block will be forced to be split using the SPLIT_BT_VER mode.
[0132] Implementation Method 1
[0133] Figure 7 This is a diagram illustrating a quadtree-based block partitioning structure as an embodiment of the present disclosure.
[0134] Reference Figure 7In embodiments of this disclosure, a block can be partitioned based on a quadtree (QT). Furthermore, a sub-block partitioned into a QT structure can be recursively partitioned into QT structures. End blocks no longer partitioned into QT structures (which may be referred to as leaf blocks or leaf node blocks) can be partitioned according to 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 into four sub-blocks A0, A1, A2, and A3 according to a QT structure. Furthermore, sub-block A1 can again be partitioned into four sub-blocks B0, B1, B2, and B3 according to a QT structure.
[0136] Figure 8 This is a diagram illustrating a binary tree-based block partitioning structure as an embodiment of the present disclosure.
[0137] Reference Figure 8 BT can have two types of partitions: horizontal BT (e.g., 2N×N or 2N×N) and vertical BT (e.g., N×2N or N×2N).
[0138] As an example, block B3, which is no longer partitioned into a QT structure (i.e., leaf node block), can be partitioned into vertical BTs (C0, C1) or horizontal BTs (D0, D1). When a block is vertically partitioned, like block C0, each sub-block can be recursively partitioned in the form of horizontal BTs (E0, E1) or vertical BTs (F0, F1).
[0139] Figure 9 This is a diagram illustrating a ternary tree-based block partitioning structure as an embodiment of the present disclosure.
[0140] Reference Figure 9 TT can have two types of partitions: horizontal TT (e.g., 2N×1 / 2N, 2N×N, or 2N×1 / 2N) and vertical TT (e.g., 1 / 2N×2N, N×2N, or 1 / 2N×2N).
[0141] As an example, block B3, which is no longer partitioned according to QT, can be partitioned into vertical TT (C0, C1, or C2) or horizontal TT (D0, D1, or D2). Figure 9 As shown, block C1 can be recursively partitioned in the form of horizontal TT (E0, E1, or E2) or vertical TT (F0, F1, or F2).
[0142] As another example, AT can have four types of partitioning structures: horizontally upward AT (2N×1 / 2N, 2N×3 / 2N), horizontally downward AT (2N×3 / 2N, 2N×1 / 2N), vertically leftward AT (1 / 2N×2N, 3 / 2N×2N), and vertically rightward AT (3 / 2N×2N, 1 / 2N×2N). BT, TT, and AT can be further recursively partitioned by using BT, TT, and AT respectively.
[0143] Figure 10 This is a diagram illustrating block partitioning structures based on binary trees, ternary trees, and striped trees as embodiments of the present disclosure.
[0144] Reference Figure 10 Processing blocks can be partitioned using BT, TT, and stripe tree (ST) partitioning structures together. For example, a sub-block partitioned into a BT structure can be partitioned into a TT structure. Alternatively, a sub-block partitioned into a TT structure can be partitioned into a BT structure.
[0145] Furthermore, in the implementation, the processing block can be partitioned into an ST structure, which is divided into four parts horizontally or vertically. Additionally, BT, TT, and ST partitions can be used together to partition blocks. For example, sub-blocks partitioned according to BT can be partitioned according to TT or ST. Furthermore, sub-blocks partitioned according to TT can be partitioned according to BT or ST. Furthermore, sub-blocks partitioned according to ST can be partitioned according to BT or TT.
[0146] exist Figure 10 In the diagram, the division indicated by the thin solid line represents the first division, and the division indicated by the thick dashed line represents the second division performed in the sub-blocks generated in the first division.
[0147] Table 2 shows the syntax structure of the encoded quadtree, while Table 3 shows the syntax of the encoded tree.
[0148] [Table 2]
[0149]
[0150] Referring to Table 2, the decoding process used to determine the quadtree segmentation structure is described. The encoding quadtree syntax (or function) can be invoked using the top-left coordinates (x0, y0) of the current block, the size of the current block (log2CbSize), and the depth of the current quadtree segmentation as input.
[0151] The decoder parses the `split_qt_flag` syntax element if the current block does not exceed the width or height of the current image and is larger than the smallest coded block. The `split_qt_flag` syntax element indicates whether the current block is split into four blocks according to a quadtree structure. For example, a `split_qt_flag` value of 0 indicates that the current block is not split into four blocks according to a quadtree structure, while a `split_qt_flag` value of 1 indicates that the current block is split into four blocks with half the width and half the height. `x0` and `y0` represent the top-left position of the luminance image.
[0152] As a result of the parsing, if it is determined that the current block is divided according to a quadtree structure, the decoder will call the encoding quadtree syntax (or function) again for the four sub-blocks divided from the current block.
[0153] As a result of the parsing, if it is not determined that the current block is divided according to a quadtree structure, the decoder calls the encoded quadtree syntax (or function) for the current block to determine the subsequent segmentation structure (i.e., a multi-type tree structure).
[0154] [Table 3]
[0155]
[0156]
[0157]
[0158] Referring to Table 3, the decoding process used to determine the additional segmentation structure in a quadtree leaf node block is described. This can be done using the top-left coordinate (x0, ...) of the current block. y 0) The width of the current block (log2CbSize) and the width of the current block (log2CbSizeH) are used as inputs to call the encoding quadtree syntax (or function).
[0159] The decoder parses the `split_fur_flag` syntax element if the current block does not exceed the width or height of the current image, and the current block is larger than the smallest MTT block. The `split_fur_flag` syntax element indicates whether the current block is to be further split. For example, a `split_fur_flag` value of 0 indicates that the current block will not be split, while a `split_fur_flag` value of 1 indicates that the current block will be split.
[0160] As a result of the parsing, if it is determined that the current block needs to be further split, 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 split according to a BT structure or a TT structure. For example, a `split_bt_flag` value of 1 indicates that the block is split according to BT, while a `split_bt_flag` value of 0 indicates that the block is split according to TT.
[0161] The split type (SplitType) of the current block can be determined based on the split_fur_flag and split_bt_flag syntaxes, as shown 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] Additionally, in Table 3, the `split_dir` syntax element indicates the splitting direction. For example, a `split_dir` value of 0 indicates that the block is split horizontally, while a `split_dir` value of 1 indicates that the block is split vertically.
[0165] As shown in Table 5 below, the final block split mode (SplitMode) can be induced as the MTT split from the current block.
[0166] [Table 5]
[0167]
[0168] The decoder then calls the encoding tree syntax (or function) again for sub-block segmentation based on the final determined segmentation structure.
[0169] Implementation Method 2
[0170] In embodiments of this disclosure, a method is proposed for allowing BT, TT, or ST partitioning based on the shape (or size) of a block. In Embodiment 1 described above, partitioning is allowed regardless of the block shape if it does not reach MaxDepth (representing the maximum partition depth), MinBTSize (representing the minimum size of a block partitioned according to a binary tree structure), or MinTTSize (representing the minimum size of a block partitioned according to a ternary tree structure). However, in this embodiment, the encoder / decoder may allow adaptive block partitioning based on the width or height of the block (i.e., the shape of the block).
[0171] Figure 11This is a diagram illustrating the block partitioning structure of a square block as an embodiment of the present disclosure.
[0172] Reference Figure 11 Assume the current block is a 2N×2N block. In embodiments of this disclosure, in a square block with equal width and height, all horizontal BT, TT, and ST partitions are available, and all vertical BT, TT, and ST partitions are available. That is, in embodiments of this disclosure, block partitioning restrictions may not be applied to the square block.
[0173] Figure 12 This is a diagram illustrating a block partitioning structure of a non-square block as an embodiment of the present disclosure.
[0174] Reference Figure 12 Assume the current processing block is a 2N×N block. In the implementation, within a non-square block where the width is twice the height, such as... Figure 12 As shown, it is possible to allow only vertical BT and TT partitions and horizontal BT partitions.
[0175] In other words, when the current block is a non-square block whose width is greater than its height, horizontal and vertical ST partitions may not be allowed. Furthermore, when the current block is a non-square block whose width is greater than its height, TT partitions may not be allowed even in the horizontal direction.
[0176] According to embodiments of this disclosure, inefficient partition structures are not allowed by considering the width-to-height ratio, thereby reducing the number of bits required for partition information signaling.
[0177] Figure 13 This is a diagram illustrating a block partitioning structure of a non-square block as an embodiment of the present disclosure.
[0178] Reference Figure 13 Assume the current block is an N×2N block. In the implementation, in a non-square block where the height is twice the width, such as... Figure 13 As shown, it is possible to allow only horizontal BT and TT partitions and vertical BT partitions.
[0179] In other words, when the current block is a non-square block whose height is greater than its width, horizontal and vertical ST partitions may not be allowed. Furthermore, when the current block is a non-square block whose height is greater than its width, TT partitions may not be allowed even in the vertical direction.
[0180] According to embodiments of this disclosure, by considering the width-to-height ratio and disallowing inefficient partition structures, the number of bits required for partition information signaling is reduced.
[0181] Figure 14This is a diagram illustrating a block partitioning structure of a non-square block as an embodiment of the present disclosure.
[0182] Reference Figure 14 Assume the current block is a 2N×1 / 2N block. In embodiments of this disclosure, in a non-square block where the width is four times the height, such as Figure 14 As shown, vertical BT partitioning can be allowed only.
[0183] In other words, when the current block is four times its height or more in width, vertical TT and ST partitions are not allowed. Furthermore, when the current block is four times its height or more in width, no horizontal partitions are allowed.
[0184] According to embodiments of this disclosure, by considering the width-to-height ratio and disallowing inefficient partition structures, the number of bits required for partition information signaling is reduced.
[0185] Figure 15 This is a diagram illustrating a block partitioning structure of a non-square block as an embodiment of the present disclosure.
[0186] Reference Figure 15 Assume the current block is a 1 / 2N×2N block. In embodiments of this disclosure, in a non-square block where the height is four times the width, such as Figure 15 As shown, only horizontal BT partitioning is allowed.
[0187] In other words, horizontal TT and ST partitions may not be allowed when the current block is four times its width or more in height. Furthermore, even vertically, no partitions may be allowed when the current block is four times its width or more in height.
[0188] According to embodiments of this disclosure, by considering the width-to-height ratio and disallowing inefficient partition structures, the number of bits required for partition information signaling is reduced.
[0189] In implementation, the method for limiting a specific partition based on the shape or size of the block can only be applied when the boundary of the CTU (or CTB, maximum size CU) extends beyond the boundary of the image (picture or strip).
[0190] Implementation Method 3
[0191] This disclosure proposes a method for allowing BT, TT, or ST partitioning based on the shape (or size) of a block. According to Embodiment 2 above, the encoder / decoder can allow adaptive block partitioning based on the shape of the block's width and height. Embodiment 2 describes a method that allows for various block partitioning for relatively large blocks, but does not allow for specific partitioning based on block shape for relatively small blocks. Conversely, embodiments of this disclosure propose a method for allowing more detailed block partitioning for relatively small blocks.
[0192] Figure 16 This is a diagram illustrating the block partitioning structure of a square block as an embodiment of the present disclosure.
[0193] Reference Figure 16 Assume the current block is a 2N×2N block. In embodiments of this disclosure, within square blocks of equal width and height, such as... Figure 16 As shown, only horizontal and vertical BT partitions are allowed. That is, within a square block with equal width and height, TT and ST partitions are not permitted.
[0194] Furthermore, in embodiments of this disclosure, for the same partitioning structure as in Embodiment 2 described above, partitions usable for 2N×N blocks and N×2N blocks are permitted (see [link to previous embodiment]). Figure 12 and Figure 13 ).
[0195] According to embodiments of this disclosure, by considering the width-to-height ratio and disallowing inefficient partition structures, the number of bits required for partition information signaling is reduced.
[0196] Figure 17 This is a diagram illustrating a block partitioning structure of a non-square block as an embodiment of the present disclosure.
[0197] Reference Figure 17 Assume the current block is a 2N×1 / 2N block. In embodiments of this disclosure, in a non-square with a width four times its height, such as Figure 17 As shown, only vertical BT, TT, and ST partitions are allowed.
[0198] In other words, when the current block is four times its height or more in width, only vertical partitioning may be allowed. Furthermore, when the current block is four times its height or more in width, no horizontal partitioning may be allowed, even for the horizontal direction.
[0199] According to embodiments of this disclosure, by considering the width-to-height ratio and disallowing inefficient partition structures, the number of bits required for partition information signaling is reduced.
[0200] Figure 18 This is a diagram illustrating a block partitioning structure of a non-square block as an embodiment of the present disclosure.
[0201] Reference Figure 18 Assume the current block is a 1 / 2N×2N block. In embodiments of this disclosure, in a non-square with a height four times its width, such as... Figure 15 As shown, only horizontal BT, TT, and ST partitions are allowed.
[0202] In other words, when the current block is four times its width or more in height, only horizontal partitioning may be allowed. Furthermore, when the current block is four times its width or more in height, no partitioning may be allowed even in the vertical direction.
[0203] According to embodiments of this disclosure, by considering the width-to-height ratio and disallowing inefficient partition structures, the number of bits required for partition information signaling is reduced.
[0204] In implementation, the method for limiting a specific partition based on the shape or size of the block can only be applied when the boundary of the CTU (or CTB, maximum size CU) extends beyond the boundary of the image (picture or strip).
[0205] Implementation Method 4
[0206] In embodiments 2 and 3 above, a method for determining a block partitioning structure was described, wherein blocks can be partitioned according to their shapes. In embodiments of this disclosure, a high-level syntax can be used to send a syntax for determining the block partitioning structure based on the block shape.
[0207] For example, the encoder can signal the syntax for determining the block partitioning structure based on the block shape from the decoder via sequence parameter sets, image parameter sets, slice group headers, or network abstraction layer unit headers.
[0208] In an implementation, the syntax for determining the block partition structure can be sent using the sequence parameter set (SPS) shown in Table 6 below.
[0209] [Table 6]
[0210]
[0211] Referring to Table 6, `log2_size_bt_allow_ratio` represents a syntax (or syntax element) indicating the allowed range of the ratio (or difference, or ratio of differences) between the width and height of a block used for BT partitioning. As an example, when the value is 1, the encoder / decoder allows partitioning only if the length of one side of the block (i.e., width or height) is equal to or less than twice the length of the other side, and disallows block partitioning if the length of one side is greater than twice the length of the other side. Additionally, `log2_size_bt_allow_ratio` and `log2_size_st_allow_ratio` represent syntax (or syntax elements) indicating the allowed range of the ratio (or difference, or ratio of differences) between the width and height of a block used for TT and ST partitioning, respectively.
[0212] Alternatively, in an implementation, the syntax for determining the block partitioning structure can be sent using the sequence parameter set (SPS) shown in Table 7 below.
[0213] [Table 7]
[0214]
[0215] Referring to Table 7, `log2_size_bt_disallow_ratio` represents a syntax (or syntax element) indicating the allowed range of the ratio (or difference, or ratio of differences) between the width and height of a block used for BT partitioning. For example, when this value is 1, the encoder / decoder may disallow block partitioning if one side of a block is twice the length of another side. Additionally, `log2_size_bt_disallow_ratio` and `log2_size_st_disallow_ratio` represent syntax (or syntax elements) indicating the allowed range of the ratio (or difference, or ratio of differences) between the width and height of blocks used for TT and ST partitioning, respectively.
[0216] The encoder can signal the syntax of Tables 6 and 7 to the decoder via sequence parameter sets, image parameter sets, slice group headers, or network abstraction layer unit headers.
[0217] According to the examples in Tables 6 and 7, block partitioning is not allowed when the ratio between width and height is within a predetermined range, in order to effectively determine the partition structure and reduce the signaling bits required to determine the partition structure.
[0218] In implementation, the method for limiting a specific partition based on the shape or size of the block can only be applied when the boundary of the CTU (or CTB, maximum size CU) extends beyond the boundary of the image (picture or strip).
[0219] Implementation Method 5
[0220] As described above, a QT structure can be used when the width and height of a block are equal. In embodiments of this disclosure, when a block crosses an image boundary region, i.e., when the right or bottom boundary of the current CTU (or maximum coding unit, CTB) exceeds the current image, the encoder / decoder can partition the current CTU into blocks with the maximum size. This can be done by performing BT or TT (i.e., multi-type tree) partitioning without additional syntax signaling.
[0221] In image compression techniques related to this technology, when the boundary of the CTU (or CTB, the CU with the largest size) extends beyond the boundary of the image (or stripe), the decoder can perform QT partitioning without extending beyond the boundary of the image, without parsing the partitioning information signaled by the encoder (i.e., implicitly).
[0222] For example, when the current CTU is 64×64 and the image (or stripe) contains only a 64×32 region, the decoder can partition the current CTU QT into four 32×32 CUs without parsing the partition information. In this case, the partition information is parsed after the 64×32 block is implicitly partitioned into two 32×32 blocks. In this disclosure, implicit partitioning can indicate a method for performing block partitioning based on specific conditions without partition information signaling, and can be referred to as automatic partitioning, default partitioning, etc.
[0223] In embodiments of this disclosure, a method is proposed for minimizing CTU partitions that extend beyond the image boundary by disallowing QT partitioning when the boundary of the CTU (or CTB, the CU with the largest size) extends beyond the image boundary. For example, when the current CTU is 64×64 and the image (or stripe) comprises only 64×32 regions, the encoder / decoder can perform partitioning other than QT partitioning (e.g., BT, TT, and AT) by disallowing QT partitioning. For example, BT partitioning can be performed instead of QT partitioning, and in this case, partitioning of a 64×32 block adjacent to the image (or stripe) boundary can begin not from two 32×32 blocks, but by parsing the partitioning information from the 64×32 block. According to embodiments of this disclosure, QT partitioning is adjusted based on the image complexity to determine an effective partitioning structure with relatively little partitioning information.
[0224] In an implementation, when the boundary of the CTU (or CTB, the CU with the largest size) extends beyond the boundary of a picture (or strip), the encoder can send a syntax indicating whether QT partitioning is permitted to the decoder. For example, the syntax indicating whether QT partitioning is permitted can be sent in units of sequence, picture, or strip (or slice group). Table 8 below shows the QT partitioning restriction syntax notified by higher-layer signaling.
[0225] [Table 8]
[0226]
[0227] Referring to Table 8, `pic_boundary_qt_disable_flag` indicates whether QT partitioning is allowed when the block size of a block in the image's boundary region is not equal to the maximum block size. As an implementation, when `pic_boundary_qt_disable_flag` is 1, QT partitioning is not allowed in the image boundary region. In addition to the sequence parameter set, the syntax can also be signaled from the encoder to the decoder via the image parameter set, slice group header, or the header of the network abstraction layer unit.
[0228] Figure 19 This diagram illustrates a case where a coding tree unit (CTU), as an embodiment of the present disclosure, extends beyond the boundaries of an image.
[0229] Reference Figure 19 The current image can be partitioned into CTU units. In this case, the height of the current image may not correspond to a multiple of the CTU height, and in this case, such as Figure 19 As shown, the CTU located at the bottom of the current image may extend beyond the boundaries of the current image.
[0230] In other words, the available block partitioning shape can be determined based on the block shape determined through embodiments 2 to 4 described above, and partitioning can be implicitly performed from the largest block, within which corresponding blocks can be partitioned. In this case, the syntax may not contain information for partitioning. After partitioning the blocks into the largest blocks that can be implicitly partitioned, the encoder can signal information about the optimal block partitioning structure.
[0231] Furthermore, in another implementation, when the boundary of the CTU (or CTB, the CU with the largest size) extends beyond the boundary of the image (or stripe), the encoder and decoder can equivalently determine whether QT partitioning is permitted based on specific conditions. When QT partitioning is not permitted, the encoder / decoder can partition the CTU using partitions other than QT (e.g., BT, TT, and AT).
[0232] As an example, when the boundary of the CTU extends beyond the boundary of the image (picture or stripe), the decoder can determine whether QT partitioning is allowed based on the overlapping area (or repeating area) between the CTU and the image. For instance, the decoder may disallow QT partitioning if the overlapping area is equal to or less than half the size of the CTU, and may allow QT partitioning if the overlapping area is greater than half the size of the CTU.
[0233] In this scenario, an inspection (or determination) of the overlapping region can be performed before determining whether QT partitioning is permitted based on the overlapping region. The overlapping region can be calculated using an area ratio within the CTU, a width or height ratio compared to the CTU, an area / width / height ratio compared to a virtual region, etc. In this disclosure, the region within the CTU other than the area where the CTU and the image overlap (i.e., the region within the CTU that extends beyond the boundaries of the image (picture or stripe)) can be referred to as a virtual region. Subsequently, QT partitioning may be disallowed when the overlapping region (or area, or ratio) is equal to or smaller than a predetermined region (or area, or ratio), and allowed when the overlapping region is larger than the predetermined region. Furthermore, for example, the ratio of the overlapping region can be compared to a specific threshold to determine whether QT partitioning is permitted.
[0234] Furthermore, as an example, when the boundary of the CTU extends beyond the boundary of the image (picture or stripe), the decoder can determine whether QT partitioning or an implicit partitioning structure is allowed based on the size of the transform (or transform kernel or transform matrix). For example, when a transform is available in the overlapping region, the decoder may disallow QT partitioning. Alternatively, the decoder can determine whether QT partitioning is allowed based on the overlapping region, as in the above embodiment, and determine the partitioning structure according to the size of the transform available for the overlapping region. For example, the decoder can partition the overlapping region into blocks based on the maximum size of the available transform.
[0235] In this implementation, when the overlapping region of the current CTU is larger 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 overlapping region in the CTU (i.e., the region in the current image excluding the virtual region) is greater than the maximum transform size (or the length of one side of the maximum transform) or the height of the overlapping region is greater than the maximum transform size, the encoder / decoder can perform QT partitioning without syntax signaling for the current CTU.
[0236] Furthermore, in another implementation, QT partitioning can be configured to not be allowed contiguously when the boundary of a CTU (or CTB, CU with the largest size) extends beyond the boundary of the picture (or stripe). When QT partitioning is not allowed, the corresponding CTU can be partitioned using partitions other than QT (e.g., BT, TT, and AT). In this case, syntax signaling data can be reduced, and partitioning of blocks extending beyond the picture boundary can be minimized.
[0237] According to embodiments of this disclosure, when the boundary of a CTU (or CTB, or CU with the largest size) extends beyond the boundary of an image (picture or stripe), the partitioning of the image within the corresponding CTU can be minimized, and the size of the initial partition block of the image within the corresponding CTU can be effectively determined. As image resolutions become larger and more diverse, 128×128 and 256×256 blocks, larger than the old HEVC size, are also discussed as CTUs (or CTBs, or CUs with the largest size) as the basic unit for partitioning images.
[0238] Therefore, CTU boundaries can often extend beyond the image boundaries, and if QT partitioning is permitted in any case, as is the case in image compression techniques of the related art, the image boundaries may be unnecessarily partitioned into small sizes, and compression efficiency can be significantly reduced at the image boundaries because the encoded information is signaled in units of unnecessary partition blocks. Table 9 below shows the typical image dimensions.
[0239] [Table 9]
[0240]
[0241] In the embodiments of this disclosure, the cases where the CTU size is 64×64 and 128×128 are mainly described. However, this disclosure is not limited to these, and the disclosure can be similarly applied even when the CTU size is 256×256 and 512×512. An 8K image can have a resolution of 7680×4320, and in this case, all CTUs belonging to the lowest CTU line may extend beyond the image boundary. In this case, the above-described embodiments can be applied. Similarly, even in the cases of a 4K image with a resolution of 4096×2160, a UHD image with a resolution of 3840×2160, and an FHD image with a resolution of 1920×1080, all CTUs belonging to the lowest CTU line may extend beyond the image boundary, and the above-described embodiments can be applied.
[0242] Implementation Method 6
[0243] Figure 20This is a diagram illustrating a block partitioning structure based on an asymmetric tree as an embodiment of the present disclosure.
[0244] Reference Figure 20 AT can have four types of partitions: horizontal upward AT (2N×1 / 2N, 2N×3 / 2N), horizontal downward AT (2N×3 / 2N, 2N×1 / 2N), vertical leftward AT (1 / 2N×2N, 3 / 2N×2N), and vertical rightward AT (3 / 2N×2N, 1 / 2N×2N).
[0245] As an example, block B3, which is no longer partitioned according to QT, can be partitioned according to vertical AT (C0, C1) or horizontal AT (D0, D1). Like block C1, each sub-block can be further recursively partitioned in the form of horizontal AT (E0, E1) or vertical TT (F0, F1).
[0246] Figures 21 to 23 This is a diagram illustrating an example of block partitioning according to an embodiment of which the present disclosure may be applied.
[0247] Reference Figures 21 to 23 BT, TT, and AT partitions can be used together. For example, a sub-block of a BT partition can be partitioned using TT or AT. Similarly, a sub-block of a TT partition can be partitioned using BT or AT.
[0248] exist Figures 21 to 23 In the diagram, partitions represented by solid lines indicate the first partition, while partitions represented by dashed lines indicate the second partition, which is a sub-block generated from the first partition. For example, Figure 21 (1) to Figure 21 Example (4) illustrates that after horizontal BT partitioning, each sub-block is partitioned according to vertical BT, vertical TT, vertical left AT and vertical right AT. Figure 21 (5) to Figure 21 Example (8) illustrates that after horizontal TT partitioning, each sub-block is partitioned according to vertical BT, vertical TT, vertical left AT, and vertical right AT.
[0249] Figure 21 (9) to Figure 21 Example (12) illustrates that after horizontal upward AT partitioning, each sub-block is partitioned according to vertical BT, vertical TT, vertical left AT and vertical right AT. Figure 22 (13) to Figure 22 Example (16) illustrates that after horizontal downward AT partitioning, each sub-block is partitioned according to 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] Increasing the degree of freedom in partitioning through various block partitioning structures can improve compression efficiency, but the increased complexity resulting from this enhanced partitioning freedom can be problematic. Therefore, in embodiments of this disclosure, a method is proposed for sending a syntax to adjust the QT partitioning degree by considering the relationship between complexity and performance in performing block partitioning based on a QT structure.
[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] Furthermore, as an implementation, the encoder may send at least one of the following syntaxes to the decoder: Maximum BT Block Size (MaxBTSize), Minimum BT Block Size (MinBTSize), and Maximum BT Block Partition Depth (MaxBTDepth) (or syntax elements). Here, the Maximum BT Block Size may indicate the maximum size of a block in which BT partitions can be performed, and may be expressed in logarithmic form (e.g., log2). Similarly, the Minimum BT Block Size may indicate the minimum size of a block in which BT partitions are allowed, and may also be expressed in logarithmic form (e.g., log2). Additionally, the Maximum BT Partition Depth indicates how many BT partitions are allowed from the Maximum BT Block Size.
[0256] Furthermore, as an implementation, the encoder may send at least one of the following syntaxes to the decoder: Maximum TT Block Size (MaxTTSize), Minimum TT Block Size (MinTTSize), and Maximum TT Block Partition Depth (MaxTTDepth) (or syntax elements). Here, the Maximum TT Block Size may indicate the maximum size of a block in which TT partitions can be performed, and may be expressed in logarithmic form (e.g., log2). Similarly, the Minimum TT Block Size may indicate the minimum size of a block in which TT partitions are allowed, and may also be expressed in logarithmic form (e.g., log2). Additionally, the Maximum TT Partition Depth indicates how many TT partitions are allowed from the Maximum TT Block Size.
[0257] Depending on the type of strip (or slice group), slice, and image component, various syntax information can be transmitted through Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Strip Header (SH) (or Slice Group Header (TGH)), or the header of the Network Abstraction Layer Unit.
[0258] Implementation Method 8
[0259] In Embodiment 7 described above, a syntax is defined for the maximum or minimum size or the maximum allowed depth of QT, BT, and TT partitions in an image. In this disclosure, the block sizes of the coding unit (CU), prediction unit (PU), and transform unit (TU) may be equal to or unequal to each other.
[0260] In embodiments of this disclosure, a method is proposed in which, when the sizes of CU, TU, and PU are different from each other, the encoder sends a syntax for adjusting the partitioning degree of CU, PU, and TU by taking into account the relationship between performance and complexity. In this disclosure, TU may represent a cell partitioned and transformed according to a tree structure (e.g., QT, QTBT, QTBT+TT, etc.) based on partitioning information signaled from the encoder, or TU may represent a cell implicitly partitioned and transformed according to the size of a transform kernel (or transform matrix).
[0261] In the implementation, when TU represents a unit that is partitioned and transformed according to a tree structure based on partition information notified by the encoder via a signal, blocks such as CU and PU can be recursively partitioned according to the partition information notified by the signal.
[0262] In another embodiment, when TU represents a unit that is implicitly partitioned and transformed according to the size of a transform kernel (or transform matrix), the encoder and decoder can partition blocks such as CU and PU equally based on the size of the stored transform kernel without signaling partition information. That is, TU partitioning can be determined based on the transform kernel size. For example, when the size of CU or PU is 128×128 and the maximum size of the applicable (or predetermined) transform kernel is 64×64, the encoder and decoder can perform the transformation after partitioning CU or PU into four 64×64 blocks without signaling separate partition information for the transformation. An example of the implicit partitioning method for transformation will be described in the following figures.
[0263] Figure 24 This diagram illustrates a method for determining whether to partition a block based on the maximum transform block size without syntax signaling, as an embodiment of the present disclosure.
[0264] Reference 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 kernel, or the maximum size of the transform matrix) (S2401).
[0265] When the current block size is larger 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. Partitioning the current block in units of the maximum transform size is only allowed in the case of inverse transform. The decoder can then perform an inverse transform on the partitioned block (S2403).
[0266] Furthermore, in step S2401, when the current block size is not greater than the maximum transform size, the decoder can perform an inverse transform on the current block.
[0267] In implementations, syntax such as maximum CU block size (MaxCUSize), minimum CU block size (MinCUSize), and maximum CU block partition depth (MaxCUDepth) can be sent. More specifically, the maximum CU block size can represent the size of the largest block into which the image is initially partitioned, and can be expressed in log2 scale form. This can be used similarly to, or replaced with, syntax such as maximum QT block size (MaxQTSize), minimum QT block size (MinQTSize), and maximum QT block partition depth (MaxQTDepth).
[0268] In another implementation, syntax such as the maximum PU block size (MaxPUSize), minimum PU block size (MinPUSize), and maximum PU block partitioning depth (MaxPUDepth) can be transmitted. More specifically, the maximum PU block size can represent the size of the largest block into which the image is initially partitioned, and can be expressed in log2 scale form. For example, when the maximum CU size is greater than the maximum PU size, the corresponding CU can be implicitly partitioned up to the maximum PU without signaling information. Specifically, when the maximum PU size is 64×64 and the maximum CU size is 128×128, prediction can be performed on the 128×128 block using four 64×64 PUs. Alternatively, the corresponding block can be implicitly partitioned into four sub-PUs. Prediction on the 128×64 block can be performed using two 64×64 PUs. Prediction on the 128×32 block can be performed using two 64×32 PUs or four 32×32 PUs. When the CU and PU are equal, syntax may not be transmitted. Alternatively, syntax may be transmitted explicitly.
[0269] In another implementation, syntax such as the maximum TU block size (MaxTUSize), minimum TU block size (MinTUSize), and maximum TU block partition depth (MaxTUDepth) can be transmitted. More specifically, the maximum TU block size can represent the size of the largest block into which the image is initially partitioned, and can be expressed in log2 scale form. For example, when the maximum CU size is greater than the maximum TU size, the corresponding CU can be implicitly partitioned up to the maximum TU without signaling. Specifically, when the maximum TU size is 64×64 and the maximum CU size is 128×128, a transformation can be performed on the 128×128 block using four 64×64 TUs. Alternatively, the corresponding block can be implicitly partitioned into four sub-CUs. A transformation can be performed on the 128×64 block using two 64×64 TUs. A transformation can be performed on the 128×32 block using two 64×32 TUs or four 32×32 TUs. When the CU and TU are equal, syntax may not be transmitted. Alternatively, syntax may be transmitted explicitly.
[0270] In another implementation, implicit partitioning based on the transform size can be performed on CUs that are partitioned into TT or AT partitions from the maximum-size CU (or CTU). For example, when the maximum-size CU is 128×128 and only one TT partition is performed, two 32×128 CUs and one 64×128 CU can be generated. When assuming the maximum size of the transform core is 64×64, the encoder / decoder can partition the 32×128 CU into two 64×32 TUs or into four 32×32 TUs without separate signaling during transform execution. In this case, the TU partitioning can be determined in units of the applicable transform core or a predetermined size. Additionally, the encoder / decoder can partition the 64×128 CU into two 64×64 TUs without separate signaling during transform execution.
[0271] Furthermore, for example, when the maximum CU size is 128×128 and only one AT partitioning is performed, a 32×128 CU and a 96×128 CU can be generated. Assuming the maximum transform core size is 64×64, the encoder / decoder can partition the 32×128 CU into two 64×32 TUs, or into four 32×32 TUs, without separate signaling during transforming. In this case, the TU partitioning can be determined in units of the applicable transform core or a predetermined size. Additionally, the encoder / decoder can partition the 96×128 CU into two 64×64 TUs and two 64×32 TUs, or into two 64×64 TUs or four 32×32 TUs, without separate signaling.
[0272] Furthermore, when the maximum PU size is greater than the maximum TU size, the corresponding PU can be implicitly partitioned up to the maximum TU without signaling. Specifically, when the maximum TU size is 64×64 and the maximum PU size is 128×128, a transformation can be performed on a 128×128 block using four 64×64 TUs. Alternatively, the corresponding block can be implicitly partitioned into four sub-PUs. A transformation can be performed on a 128×64 block using two 64×64 TUs. Prediction can be performed on a 128×32 block using two 64×32 TUs or four 32×32 TUs. When the PU and TU are equal, syntax does not need to be transmitted. Alternatively, syntax can be transmitted explicitly.
[0273] In implementation, implicit partitioning based on transform size can be performed on PUs that are partitioned into TT or AT units from the maximum-size PU. For example, when the maximum-size PU is 128×128 and only one TT partition is performed, two 32×128 PUs and one 64×128 PU can be generated. When assuming the maximum size of the transform core is 64×64, the encoder / decoder can partition the 32×128 PU into two 64×32 TUs or into four 32×32 TUs without separate signaling during transform execution. In this case, the TU partitioning can be determined in units of the applicable transform core or a predetermined size. Additionally, the encoder / decoder can partition the 64×128 PU into two 64×64 TUs without separate signaling during transform execution.
[0274] Furthermore, for example, when the maximum PU size is 128×128 and only one AT partitioning is performed, a 32×128 PU and a 96×128 PU can be generated. Assuming the maximum transform core size is 64×64, the encoder / decoder can partition the 32×128 PU into two 64×32 TUs or four 32×32 TUs without separate signaling during transforming. In this case, the TU partitioning can be determined in units of the applicable transform core or a predetermined size. Additionally, the encoder / decoder can partition the 96×128 PU into two 64×64 TUs and two 64×32 TUs, or into two 64×64 TUs or four 32×32 TUs without separate signaling.
[0275] Furthermore, when the size of the PU is smaller than the minimum TU size, the corresponding block can be executed by combining multiple blocks that satisfy the minimum TU. Alternatively, partitioning of PUs smaller than the minimum TU size can be disallowed. Specifically, when the minimum TU size is 8×8 and the minimum PU size is 4×4, the transformation can be performed by collecting four 4×4 blocks and using an 8×8 TU. Alternatively, partitioning the corresponding block into 4×4 PUs can be implicitly restricted.
[0276] Since the complexity of the encoder can be reduced by using syntactic information, and the decoder can implicitly deduce the block partitioning information, there is a bit reduction effect.
[0277] Depending on the type of strip (or slice group), slice, and image component, various syntax information can be transmitted through Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Strip Header (SH) (or Slice Group Header (TGH)), or the header of the Network Abstraction Layer Unit.
[0278] For ease of description, the embodiments of the present disclosure described above have been described separately, but the present disclosure is not limited thereto. In other words, each of the above embodiments 1 to 8 can be performed independently, and one or more of the various embodiments can be combined and performed.
[0279] Figure 25 This is a flowchart illustrating a method for decoding video signals according to an embodiment of the present disclosure.
[0280] Reference Figure 25 For ease of description, the decoder is described in particular, but this disclosure is not limited thereto, and the method for decoding video signals according to embodiments of this disclosure can be similarly performed in encoders and decoders.
[0281] When the current coding tree block exceeds the boundary of the current image, the decoder partitions the current coding tree block into multiple coding blocks, so that the coding blocks partitioned from the current coding tree block are included in the current image (S2501).
[0282] When the current coding block meets the predetermined conditions, the decoder parses the first syntax element indicating whether to partition the current coding block into multiple sub-blocks (S2502).
[0283] When the first syntax element indicates that the current coding block should be partitioned, the decoder parses the second syntax element (S2503) that indicates whether the current coding block should be partitioned using a quadtree structure.
[0284] When the second syntax element indicates that the current coding block is not partitioned using a quadtree structure, the decoder parses at least one of the third and fourth syntax elements. The third syntax element indicates whether the current coding block is partitioned using a binary tree structure or whether the current coding block is partitioned using a ternary tree structure, and the fourth syntax element indicates the partitioning direction of the current coding block (S2504).
[0285] The decoder determines the segmentation pattern of the current coded block based on at least one of the first, second, third, and fourth syntax elements (S2505).
[0286] As described in Embodiment 5 above, the step of partitioning the current coding tree block into multiple coding blocks can be performed by the following steps: partitioning the current coding tree block into multiple coding blocks using a binary tree structure or a ternary tree structure until a valid region in the current coding tree block is reached, and here, the valid region can represent the region in the current coding tree block located within the boundary of the current image.
[0287] Furthermore, as described in Embodiment 5 above, partitioning the current coding tree block into multiple coding blocks may also include: parsing a fifth syntax element when the current coding tree block exceeds the boundary of the current image, the fifth syntax element indicating whether quadtree segmentation is allowed; and when the fifth syntax element indicates that quadtree segmentation is not allowed, the current coding tree block may be partitioned into multiple coding blocks by using a binary tree structure or a ternary tree structure.
[0288] Furthermore, as described in Implementation 5 above, the fifth syntax element can be signaled using a sequence parameter set, image parameter set, slice group header, or network abstraction layer unit header.
[0289] Furthermore, as described in Embodiment 5 above, partitioning the current coding tree block into multiple coding blocks can be performed by the following steps: partitioning the current coding tree block into multiple coding blocks using a binary tree structure or a ternary tree structure until a valid region in the current coding tree block is reached, and here, the valid region can represent the region in the current coding tree block located within the boundary of the current image.
[0290] In addition, as described in Embodiment 5 above, partitioning the current coding tree block into multiple coding blocks can be performed by the following steps: when the width of the effective region is greater than the maximum transform size, or the height of the effective region is greater than the maximum transform size, the current coding tree block is partitioned into multiple coding blocks by using a quadtree structure.
[0291] Furthermore, in the implementation, when the value of the first syntax element is 0, the current block may not be partitioned, while when the value of the first syntax element is 1, the current block may be partitioned into four sub-blocks by using a quadtree structure, into two sub-blocks by using a binary tree structure, or into three sub-blocks by using a ternary tree structure.
[0292] Furthermore, in the implementation, the predetermined condition can be satisfied when the value obtained by adding the width of the current block to the horizontal coordinate of the top-left sample of the current block is equal to or less than the width of the current image, and the value obtained by adding the height of the current block to the vertical coordinate of the top-left sample of the current block is equal to or less than the height of the current image.
[0293] Furthermore, in this implementation, the decoder can invoke the coding unit syntax used to determine the 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] Furthermore, in the implementation, when the first syntax element indicates that the current block should not be partitioned, the decoder can invoke the encoding unit syntax for decoding the current block.
[0295] Furthermore, in the implementation, the decoder may invoke the coding tree unit syntax for determining the partition structure of sub-blocks partitioned from the current block based on the partitioning pattern.
[0296] Furthermore, in the implementation, the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element can be parsed using the same level of syntax.
[0297] Figure 26 This is a diagram illustrating a video signal decoding device according to an embodiment of the present disclosure.
[0298] exist Figure 26 In this text, for ease of description, the decoding device is represented as a block, but in Figure 26 The decoding device illustrated herein can be implemented in components included in the encoder and / or decoder.
[0299] Reference Figure 26 Decoding devices achieve the above Figures 1 to 25 The proposed functions, processes, and / or methods. Specifically, the decoding device can be configured to include a coding tree block partitioning unit 2601, a syntax element parsing unit 2602, and a segmentation mode determination unit 2603. Furthermore, in embodiments, the coding tree block partitioning unit 2601 and the syntax element parsing unit 2602 can be implemented as components included in the segmentation mode determination unit 2603.
[0300] When the current coding tree block exceeds the boundary of the current image, the coding tree block partitioning unit 2601 partitions the current coding tree block into multiple coding blocks, so that the coding blocks partitioned from the current coding tree block are included in the current image.
[0301] When the current coding block meets the predetermined conditions, the syntax element parsing unit 2602 parses the first syntax element indicating whether to partition the current coding block into multiple sub-blocks.
[0302] When the first syntax element indicates that the current coding block should be partitioned, the syntax element parsing unit 2602 parses the second syntax element indicating whether the current coding block should be partitioned using a quadtree structure.
[0303] When the second syntax element indicates that the current coding block is not partitioned using a quadtree structure, the syntax element parsing unit 2602 parses at least one of the third and fourth syntax elements. The third syntax element indicates whether the current coding block is partitioned using a binary tree structure or whether the current coding block is partitioned using a ternary tree structure, and the fourth syntax element indicates the partitioning direction of the current coding block.
[0304] The segmentation mode determination unit 2603 determines the segmentation 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 partitioning unit 2601 can partition the current coding tree block into multiple coding blocks by using a binary tree structure or a ternary tree structure until a valid region in the current coding block tree is reached. Here, the valid region can represent the region in the current coding tree block that belongs to the boundary of the current image.
[0306] Furthermore, as described in Embodiment 5 above, when the current coding tree block exceeds the boundary of the current image, the coding tree block partitioning unit 2601 can parse the fifth syntax element indicating whether quadtree partitioning is allowed. When the fifth syntax element indicates that quadtree partitioning is not allowed, the current coding tree block can be partitioned into multiple coding blocks using a binary tree structure or a ternary tree structure.
[0307] Furthermore, as described in Implementation 5 above, the fifth syntax element can be signaled using a sequence parameter set, image parameter set, slice group header, or network abstraction layer unit header.
[0308] Furthermore, as described in Embodiment 5 above, the coding tree block partitioning unit 2601 can divide the current coding tree block into multiple coding blocks using a quadtree structure or a ternary tree structure until a valid region within the current coding tree block is reached. Here, the valid region can represent the region within the current coding tree block that belongs to the boundary of the current image.
[0309] Furthermore, as described in Embodiment 5 above, when the width of the effective region is greater than the maximum transform size or the height of the effective region is greater than the maximum transform size, the coding tree block partitioning unit 2601 can partition the current coding tree block into coding blocks by using a quadtree structure.
[0310] Furthermore, in the implementation, when the value of the first syntax element is 0, the current block may not be partitioned, while when the value of the first syntax element is 1, the current block may be partitioned into four sub-blocks by using a quadtree structure, into two sub-blocks by using a binary tree structure, or into three sub-blocks by using a ternary tree structure.
[0311] Furthermore, in the implementation, the predetermined condition can be satisfied when the value obtained by adding the width of the current block to the horizontal coordinate of the top-left sample of the current block is equal to or less than the width of the current image, and the value obtained by adding the height of the current block to the vertical coordinate of the top-left sample of the current block is equal to or less than the height of the current image.
[0312] Furthermore, in this implementation, the decoder can invoke the coding unit syntax used to determine the partition structure of the current block. In this case, the step of invoking the coding tree unit syntax of the current block can be performed before step S1501.
[0313] Furthermore, in the implementation, when the first syntax element indicates that the current block should not be partitioned, the decoder can invoke the encoding unit syntax for decoding the current block.
[0314] Furthermore, in the implementation, the decoder may invoke the coding tree unit syntax for determining the partition structure of sub-blocks partitioned from the current block based on the partitioning pattern.
[0315] Furthermore, in the implementation, the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element can be parsed using the same level of syntax.
[0316] Figure 27 An example of a video coding system using this disclosure is provided.
[0317] A video encoding system may include a source device and a receiving device. The source device may forward encoded video / image information or data to the receiving device in file or stream format via digital storage media or a network.
[0318] The source device may include a video source, an encoding device, and a transmitter. The receiving device may include a receiver, a decoding device, and a renderer. The encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may include a display unit, and the display unit may be configured as a stand-alone device or an external component.
[0319] Video sources can be obtained through processes such as capture, compositing, or generation to produce video / images. Video sources may include video / image capture devices and / or video / image generation devices. For example, a video / image capture device may include one or more cameras, a video / image archive containing previously captured video / images, etc. For example, a video / image generation device may include, for example, a computer, tablet, and smartphone, and may (electrically) generate video / images. For example, virtual video / images can be generated by a computer, and in this case, the video / image capture process can be replaced by a process that generates related data.
[0320] Encoding devices can encode input video / images. Encoding devices can perform a series of processes, including prediction, transformation, quantization, etc., for compression and encoding efficiency.
[0321] A transmitter can forward encoded video / image information or data, output in bitstream format, to a receiver in a receiving device via a digital storage medium or network, either in file or stream format. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitter can include elements for generating media files in a predetermined file format and may include elements for transmission over a broadcast / communication network. The receiver can extract the bitstream and forward it to a decoding device.
[0322] Decoding devices can perform a series of processes corresponding to the operations of encoding devices, including dequantization, inverse transform, prediction, etc., and decode video / images.
[0323] The renderer can render decoded video / images. The rendered video / images can be displayed through the display unit.
[0324] Figure 28 This is a configuration diagram of a content streaming system as an embodiment of the present disclosure.
[0325] Reference Figure 28 A content streaming system that uses this disclosure may include an encoding server, a streaming server, a network server, a media storage device, a user device, and a multimedia input device.
[0326] An encoding server is used to compress content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data to generate a bitstream, and then send the bitstream to a streaming server. As another example, when multimedia input devices such as smartphones, cameras, and camcorders directly generate bitstreams, the encoding server can be omitted.
[0327] A bitstream can be generated by applying the encoding method or bitstream generation method disclosed herein, and the stream server can temporarily store the bitstream during the process of sending or receiving the bitstream.
[0328] The streaming server transmits multimedia data to the user's device via a web server based on the user's request, and the web server acts as an intermediary for notifying the user of services. When a user sends a request for a desired service to the web server, the web server delivers the request to the streaming server, and the streaming server sends the multimedia data to the user. Here, the content streaming system may include an additional control server, in which case the control server controls the commands / responses between the various devices in the content streaming system.
[0329] A streaming server can receive content from media storage and / or encoding servers. For example, when content is received from an encoding server, the streaming server can receive the content in real time. In this case, the streaming server can store the bitstream for a predetermined period of time to provide a smooth streaming service.
[0330] Examples of user equipment may include cellular phones, smartphones, laptops, digital broadcast terminals, PDAs (personal digital assistants), PMPs (portable multimedia players), navigation devices, touchscreen PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, and HMDs (head-mounted displays)), digital TVs, desktop computers, digital signage, etc.
[0331] Each server in a content streaming system can operate as a distributed server, and in this case, the data received by each server can be processed in a distributed manner.
[0332] The embodiments described in this disclosure can be implemented and executed on a processor, microprocessor, controller, or chip. For example, the functional units shown in the accompanying drawings can be implemented and executed on a computer, processor, microprocessor, controller, or chip.
[0333] Furthermore, the decoders and encoders using this disclosure can be included in multimedia broadcast transceivers, mobile communication terminals, home theater video devices, digital cinema video devices, surveillance cameras, video conferencing devices, real-time communication devices such as video communication, mobile streaming devices, storage media, portable video cameras, video-on-demand (VoD) service providers, over-the-top (OTT) video devices, internet streaming service providers, three-dimensional (3D) video devices, video telephony devices, and medical video devices, and can be used to process video signals or data signals. For example, OTT video devices can include game consoles, Blu-ray players, internet-connected televisions, home theater systems, smartphones, tablet PCs, digital video recorders (DVRs), etc.
[0334] Furthermore, the processing methods of this disclosure can be generated in the form of a computer-executable program and can be stored in a computer-readable recording medium. Multimedia data with data structures according to this disclosure can also be stored in a computer-readable recording medium. A computer-readable recording medium includes all types of storage devices in which computer-readable data is stored. Computer-readable recording media can include, for example, Blu-ray discs (BD), Universal Serial Bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetic tape, floppy disks, and optical data storage devices. Furthermore, computer-readable recording media include media implemented in the form of a carrier wave (e.g., transmission via the Internet). Additionally, bitstreams generated using encoding methods can be stored in a computer-readable recording medium or transmitted via wired / wireless communication networks.
[0335] Furthermore, the embodiments of this disclosure can be implemented as a computer program product using program code. The program code can be executed by a computer according to the embodiments of this disclosure. The program code can be stored on a computer-readable medium.
[0336] In the foregoing embodiments, the elements and features of this disclosure have been combined in a specific form. Unless otherwise explicitly described, each element or feature may be considered optional. Each element or feature may be implemented without being combined with other elements or features. Furthermore, some elements and / or features may be combined to form embodiments of this disclosure. The order of operations described in the embodiments of this disclosure may be changed. Some elements or features of an embodiment may be included in another embodiment, or may be replaced by corresponding elements or features of another embodiment. Clearly, embodiments may be constructed by combining claims that do not have an explicit referential relationship in the claims, or may be incorporated into new claims by amendments after filing the application.
[0337] The embodiments of this disclosure can be implemented in various ways, such as hardware, firmware, software, or a combination thereof. In the case of hardware implementation, the embodiments of this 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, microcontrollers, microprocessors, etc.
[0338] When implemented via firmware or software, embodiments of this disclosure can be implemented in the form of modules, processes, or functions for performing the aforementioned functions or operations. Software code can be stored in memory and driven by a processor. The memory can be located internally or externally to the processor and can exchange data with the processor through various known methods.
[0339] It will be apparent to those skilled in the art that this disclosure may be implemented in other specific forms without departing from its essential characteristics. Therefore, the detailed description should not be construed as restrictive, but rather as exemplary in all respects. The scope of this disclosure should be determined through a reasonable analysis of the appended claims, and all variations within the equivalent scope of this disclosure are included within its scope.
[0340] Industrial applicability
[0341] The preferred embodiments described above have been disclosed for illustrative purposes, and those skilled in the art can improve, modify, substitute or add various other embodiments without departing from the technical spirit and scope of the present disclosure as disclosed in the appended claims.
Claims
1. A method for decoding an image, the method comprising the following steps: Based on the fact that the current coding tree block exceeds the boundary of the current image, the current coding tree block is divided into multiple coding blocks; Based on the fact that the current coding block among the plurality of coding blocks meets a predetermined condition, the first syntax element indicating whether to partition the current coding block into a plurality of sub-blocks is parsed. When the first syntax element indicates that the current coding block should be partitioned, the second syntax element indicating whether to partition the current coding block using a quadtree structure is parsed. When the second syntax element indicates that the current coding block is not partitioned using the quadtree structure, at least one of the third syntax element and the fourth syntax element is parsed. The third syntax element indicates whether the current coding block is partitioned using a binary tree structure or whether the current coding block is partitioned using a ternary tree structure. The fourth syntax element indicates the partitioning direction of the current coding block. The segmentation pattern of the current coded block is determined based on at least one of the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element; Based on the segmentation pattern of the current coding block, generate a prediction sample for the current coding block; as well as Based on the predicted samples of the current coding block, a reconstructed sample of the current coding block is generated.
2. The method for decoding an image according to claim 1, wherein, The step of partitioning the current coding tree block into the multiple coding blocks includes the following steps: partitioning the current coding tree block into multiple coding blocks using the binary tree structure or the ternary tree structure until a valid region in the current coding tree block is reached, wherein the valid region represents the region in the current coding tree block located within the boundary of the current image.
3. The method for decoding an image according to claim 1, wherein, The step of partitioning the current coding tree block into the multiple coding blocks includes the following steps: parsing a fifth syntax element that indicates whether quadtree splitting is allowed, wherein when the fifth syntax element indicates that quadtree splitting is not allowed, the current coding tree block is partitioned into the multiple coding blocks by 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 via a sequence parameter set, image parameter set, slice group header, or network abstraction layer unit header.
5. The method for decoding an image according to claim 1, wherein, The step of partitioning the current coding tree block into the plurality of coding blocks includes the following steps: partitioning the current coding tree block into the plurality of coding blocks using the quadtree structure until a valid region in the current coding tree block is reached, wherein the valid region represents the region in the current coding tree block located within the boundary of the current image.
6. The method for decoding an image according to claim 5, wherein, The step of partitioning the current coding tree block into the multiple coding blocks includes the following steps: based on the fact that the width of the effective region is greater than the maximum transform size or the height of the effective region is greater than the maximum transform size, the current coding tree block is partitioned into the coding blocks by using the quadtree structure.
7. The method for decoding an image according to any one of claims 1 to 6, wherein, The predetermined condition is satisfied when the value obtained by adding the width of the current coding tree block to the horizontal coordinate of the top-left sample of the current coding tree block is equal to or less than the width of the current image, and the value obtained by adding the height of the current coding tree block to the vertical coordinate of the top-left sample of the current coding tree block is equal to or less than the height of the current image.
8. An apparatus for decoding an image, the apparatus comprising: A coding tree block partitioning unit is used to partition the current coding tree block into multiple coding blocks based on the fact that the current coding tree block exceeds the boundary of the current image; Syntax element parsing unit, used for: Based on the fact that the current coding block among the plurality of coding blocks meets a predetermined condition, the first syntax element indicating whether to partition the current coding block into a plurality of sub-blocks is parsed. When the first syntax element indicates that the current coding block should be partitioned, the second syntax element indicating whether to partition the current coding block using a quadtree structure is parsed. When the second syntax element indicates that the current coding block is not partitioned using the quadtree structure, at least one of the third syntax element and the fourth syntax element is parsed. The third syntax element indicates whether the current coding block is partitioned using a binary tree structure or whether the current coding block is partitioned using a ternary tree structure. The fourth syntax element indicates the partitioning direction of the current coding block. The segmentation mode determination unit is used to determine the segmentation 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. A prediction sample generation unit is used to generate prediction samples for the current coding block based on the segmentation pattern of the current coding block. as well as The reconstructed sample generation unit is used to generate reconstructed samples of the current coding block based on the predicted samples of the current coding block.
9. The apparatus for decoding an image according to claim 8, wherein, The coding tree block partitioning unit partitions the current coding tree block into multiple coding blocks using the binary tree structure or the ternary tree structure until a valid region in the current coding tree block is reached, wherein the valid region represents the region in the current coding tree block located within the boundary of the current image.
10. The apparatus for decoding an image according to claim 8, wherein, The syntax element parsing unit is further configured to parse a fifth syntax element indicating whether quadtree segmentation is allowed based on the fact that the current coding tree block exceeds the boundary of the current image. When the fifth syntax element indicates that quadtree segmentation is not allowed, the current coding tree block is partitioned into the multiple coding blocks by using the binary tree structure or the ternary tree structure.
11. The apparatus for decoding an image according to claim 10, wherein, The fifth syntax element is signaled through a sequence parameter set, image parameter set, slice group header, or network abstraction layer unit header.
12. The apparatus for decoding an image according to claim 8, wherein, The coding tree block partitioning unit is used to partition the current coding tree block into multiple coding blocks using the quadtree structure until a valid region in the current coding tree block is reached, wherein the valid region represents the region in the current coding tree block located within the boundary of the current image.
13. The apparatus for decoding an image according to claim 12, wherein, The coding tree block partitioning unit is used to partition the current coding tree block into coding blocks by using the quadtree structure, based on the fact that the width of the effective region is greater than the maximum transform size or the height of the effective region is greater than the maximum transform size.
14. The apparatus for decoding an image according to any one of claims 8 to 13, wherein, The predetermined condition is satisfied when the value obtained by adding the width of the current coding tree block to the horizontal coordinate of the top-left sample of the current coding tree block is equal to or less than the width of the current image, and the value obtained by adding the height of the current coding tree block to the vertical coordinate of the top-left sample of the current coding tree block is equal to or less than the height of the current image.
15. A method for encoding an image, the method comprising the following steps: Based on the fact that the current coding tree block exceeds the boundary of the current image, the current coding tree block is divided into multiple coding blocks; Determine the segmentation pattern of the current coding block among the plurality of coding blocks; Based on the fact that the current coding block meets the predetermined conditions, a first syntax element indicating whether to partition the current coding block into multiple sub-blocks is determined; When the first syntax element indicates that the current coding block should be partitioned, a second syntax element indicating whether to partition the current coding block using a quadtree structure is determined; When the second syntax element indicates that the current coding block is not partitioned using the quadtree structure, at least one of a third syntax element and a fourth syntax element is determined. The third syntax element indicates whether the current coding block is partitioned using a binary tree structure or whether the current coding block is partitioned using a ternary tree structure. The fourth syntax element indicates the partitioning direction of the current coding block. Based on the segmentation pattern of the current coding block, generate a prediction sample for the current coding block; as well as Based on the predicted samples of the current coding block, a reconstructed sample of the current coding block is generated.
16. The method for encoding an image according to claim 15, wherein, The step of partitioning the current coding tree block into the multiple coding blocks includes the following steps: partitioning the current coding tree block into multiple coding blocks using the binary tree structure or the ternary tree structure until a valid region in the current coding tree block is reached, wherein the valid region represents the region in the current coding tree block located within the boundary of the current image.
17. The method for encoding an image according to claim 15, wherein the step of partitioning the current coding tree block into the plurality of coding blocks includes the following steps: A fifth syntax element is determined to indicate whether quadtree splitting is allowed, wherein when the fifth syntax element indicates that quadtree splitting 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.
18. The method for encoding an image according to claim 17, wherein, The fifth syntax element is signaled via a sequence parameter set, image parameter set, slice group header, or network abstraction layer unit header.
19. The method for encoding an image according to claim 15, wherein, The step of partitioning the current coding tree block into the plurality of coding blocks includes the following steps: partitioning the current coding tree block into the plurality of coding blocks using the quadtree structure until a valid region in the current coding tree block is reached, wherein the valid region represents the region in the current coding tree block located within the boundary of the current image.
20. The method for encoding an image according to claim 19, wherein, The step of partitioning the current coding tree block into the multiple coding blocks includes the following steps: based on the fact that the width of the effective region is greater than the maximum transform size or the height of the effective region is greater than the maximum transform size, the current coding tree block is partitioned into the coding blocks by using the quadtree structure.
21. The method for encoding an image according to any one of claims 15 to 20, wherein, The predetermined condition is satisfied when the value obtained by adding the width of the current coding tree block to the horizontal coordinate of the top-left sample of the current coding tree block is equal to or less than the width of the current image, and the value obtained by adding the height of the current coding tree block to the vertical coordinate of the top-left sample of the current coding tree block is equal to or less than the height of the current image.
22. An apparatus for encoding an image, the apparatus comprising: A coding tree block partitioning unit is used to partition the current coding tree block into multiple coding blocks based on the fact that the current coding tree block exceeds the boundary of the current image; A segmentation mode determination unit is used to determine the segmentation mode of the current coding block among the plurality of coding blocks; Syntax element determination unit, used for: Based on the fact that the current coding block meets the predetermined conditions, a first syntax element indicating whether to partition the current coding block into multiple sub-blocks is determined; When the first syntax element indicates that the current coding block should be partitioned, a second syntax element indicating whether to partition the current coding block using a quadtree structure is determined; When the second syntax element indicates that the current coding block is not partitioned using the quadtree structure, at least one of a third syntax element and a fourth syntax element is determined. The third syntax element indicates whether the current coding block is partitioned using a binary tree structure or whether the current coding block is partitioned using a ternary tree structure. The fourth syntax element indicates the partitioning direction of the current coding block. A prediction codebook generation unit is used to generate prediction samples for the current coding block based on the segmentation pattern of the current coding block. as well as The codebook reconstruction unit is used to generate reconstruction samples of the current coding block based on the prediction samples of the current coding block.
23. The apparatus for encoding an image according to claim 22, wherein, The coding tree block partitioning unit is used to partition the current coding tree block into multiple coding blocks using the binary tree structure or the ternary tree structure until a valid region in the current coding tree block is reached, wherein the valid region represents the region in the current coding tree block located within the boundary of the current image.
24. The apparatus for encoding an image according to claim 22, wherein, The syntax element determination unit is further configured to determine a fifth syntax element indicating whether quadtree segmentation is allowed based on the fact that the current coding tree block exceeds the boundary of the current image. The coding tree block partitioning unit is configured to partition the current coding tree block into the multiple coding blocks by using the binary tree structure or the ternary tree structure when the fifth syntax element indicates that the quadtree segmentation is not allowed.
25. The apparatus for encoding an image according to claim 24, wherein, The fifth syntax element is signaled through a sequence parameter set, image parameter set, slice group header, or network abstraction layer unit header.
26. The apparatus for encoding an image according to claim 22, wherein, The coding tree block partitioning unit is used to partition the current coding tree block into the multiple coding blocks using the quadtree structure until a valid region in the current coding tree block is reached, wherein the valid region represents the region in the current coding tree block located within the boundary of the current image.
27. The apparatus for encoding an image according to claim 26, wherein, The coding tree block partitioning unit is used to partition the current coding tree block into coding blocks by using the quadtree structure, based on the fact that the width of the effective region is greater than the maximum transform size or the height of the effective region is greater than the maximum transform size.
28. The apparatus for encoding an image according to any one of claims 22 to 27, wherein, The predetermined condition is satisfied when the value obtained by adding the width of the current coding tree block to the horizontal coordinate of the top-left sample of the current coding tree block is equal to or less than the width of the current image, and the value obtained by adding the height of the current coding tree block to the vertical coordinate of the top-left sample of the current coding tree block is equal to or less than the height of the current image.
29. A streaming server, characterized in that, The device includes a processor and a memory, the processor being configured to perform a method for encoding an image according to any one of claims 15 to 21 to generate a bitstream, and the memory storing the generated bitstream.