Image encoding method and device, and image decoding method and device
By dividing image blocks into sub-templates and optimizing prediction modes, the method addresses inefficiencies in image encoding and decoding, resulting in enhanced compression and reconstruction quality.
Patent Information
- Application Number
- PCT/KR2025/008393
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-12-05
- Filing Date
- 2025-06-18
- Publication Date
- 2026-01-08
AI Technical Summary
Existing image encoding and decoding methods face inefficiencies in predicting image blocks, particularly in handling spatial and temporal redundancies, leading to suboptimal compression and reconstruction quality.
The method involves dividing image blocks into sub-templates based on width and height to determine prediction modes, calculating sub-costs, and selecting optimal prediction modes for improved inter and intra prediction, thereby enhancing the encoding and decoding processes.
This approach improves the efficiency of image compression by effectively reducing redundancy, leading to better compression and reconstruction quality of images.
Smart Images

Figure KR2025008393_08012026_PF_FP_ABST
Abstract
Description
Image encoding method, encoding device, decoding method and decoding device
[0001] The present disclosure relates to the field of image encoding and decoding. More specifically, it relates to an encoding and decoding method and device for predicting image samples.
[0002] In image encoding and decoding, the image is divided into blocks, and each block is predicted and decoded through inter prediction or intra prediction.
[0003] Inter prediction is a technique for compressing images by removing temporal redundancy between images. Inter prediction uses a reference image to predict blocks in the current image. The reference block most similar to the current block can be searched within a predetermined search range within the reference image. The current block is predicted based on the reference block, and the predicted block generated as a result of the prediction is subtracted from the current block to generate a residual block.
[0004] Intra prediction is a technique for compressing images by removing spatial redundancy within the image. Intra prediction generates a predicted block based on the surrounding pixels of the current block, depending on the prediction mode. The predicted block is then subtracted from the current block to create a residual block.
[0005] The residual block generated through inter-prediction or intra-prediction undergoes transformation and quantization and is then passed to the decoder. The decoder dequantizes and inversely transforms the residual block, and combines the predicted block of the current block with the residual block to reconstruct the current block. The decoder can filter the reconstructed current block to remove artifacts within it.
[0006] In one embodiment of the present disclosure, a video decoding method is provided. The video decoding method may include a step of obtaining a plurality of sub-templates by dividing a template of a current block into equal sizes based on at least one of a width and a height of the template. The video decoding method may include a step of obtaining prediction samples of a plurality of sub-templates corresponding to each of a plurality of candidate prediction modes using surrounding reference samples of the template. The video decoding method may include a step of determining a plurality of sub-costs corresponding to each of the plurality of sub-templates using reconstruction samples of the plurality of sub-templates and prediction samples of the plurality of sub-templates. The video decoding method may include a step of determining a cost corresponding to each of the plurality of candidate prediction modes based on the plurality of sub-costs. The video decoding method may include a step of selecting a prediction mode for a current block from among the plurality of candidate prediction modes using the costs corresponding to each of the plurality of candidate prediction modes.
[0007] In one embodiment of the present disclosure, an image decoding device is provided. The image decoding device may include at least one processor including a processing circuit; and a memory including one or more storage media storing instructions. The instructions may be individually or collectively executed by the at least one processor, such that the image decoding device can obtain a plurality of sub-templates by dividing the template into equal-sized portions based on at least one of the width and height of the template of the current block. The instructions may be individually or collectively executed by the at least one processor, such that the image decoding device can obtain prediction samples of a plurality of sub-templates corresponding to each of a plurality of candidate prediction modes using surrounding reference samples of the template. The instructions may be individually or collectively executed by the at least one processor, such that the image decoding device can determine a plurality of sub-costs corresponding to each of the plurality of sub-templates using reconstruction samples of the plurality of sub-templates and prediction samples of the plurality of sub-templates. The instructions may be individually or collectively executed by the at least one processor, such that the image decoding device can determine a cost corresponding to each of the plurality of candidate prediction modes based on the plurality of sub-costs. The instructions are executed individually or collectively by at least one processor, so that the image decoding device can select a prediction mode for a current block from among a plurality of candidate prediction modes using a cost corresponding to each of the plurality of candidate prediction modes.
[0008] In one embodiment of the present disclosure, a video encoding method is provided. The video encoding method may include a step of obtaining a plurality of sub-templates by dividing a template into equal sizes based on at least one of a width and a height of a template of a current block. The video encoding method may include a step of obtaining prediction samples of a plurality of sub-templates corresponding to each of a plurality of candidate prediction modes using surrounding reference samples of the template. The video encoding method may include a step of determining a plurality of sub-costs corresponding to each of the plurality of sub-templates using reconstructed samples of the plurality of sub-templates and prediction samples of the plurality of sub-templates. The video encoding method may include a step of determining a cost corresponding to each of the plurality of candidate prediction modes based on the plurality of sub-costs. The video encoding method may include a step of selecting a prediction mode for a current block from among the plurality of candidate prediction modes using the costs corresponding to each of the plurality of candidate prediction modes.
[0009] In one embodiment of the present disclosure, a bitstream transmission method is provided. The bitstream transmission method may include a step of obtaining a plurality of sub-templates by dividing a template of a current block into equal sizes based on at least one of a width and a height of the template. The bitstream transmission method may include a step of obtaining prediction samples of a plurality of sub-templates corresponding to each of a plurality of candidate prediction modes using surrounding reference samples of the template. The bitstream transmission method may include a step of determining a plurality of sub-costs corresponding to each of the plurality of sub-templates using reconstructed samples of the plurality of sub-templates and prediction samples of the plurality of sub-templates. The bitstream transmission method may include a step of determining a cost corresponding to each of the plurality of candidate prediction modes based on the plurality of sub-costs. The bitstream transmission method may include a step of selecting a prediction mode for a current block from among the plurality of candidate prediction modes using the costs corresponding to each of the plurality of candidate prediction modes. The bitstream transmission method may include a step of obtaining a prediction sample of the current block using the selected prediction mode. The bitstream transmission method may include a step of obtaining a residual sample based on the original sample of the current block and the prediction sample of the current block. The bitstream transmission method may include a step of transmitting a bitstream including information regarding the residual sample.
[0010] FIG. 1 is a block diagram of an image decoding device according to one embodiment of the present disclosure.
[0011] FIG. 2 is a block diagram of an image encoding device according to one embodiment of the present disclosure.
[0012] FIG. 3 illustrates a process of dividing a current encoding unit to determine at least one encoding unit according to one embodiment of the present disclosure.
[0013] FIG. 4 illustrates a process of dividing a non-square coding unit to determine at least one coding unit according to one embodiment of the present disclosure.
[0014] FIG. 5 illustrates a process of dividing an encoding unit based on at least one of block shape information and segmentation shape mode information according to one embodiment of the present disclosure.
[0015] FIG. 6 illustrates a method for determining a predetermined coding unit among an odd number of coding units according to one embodiment of the present disclosure.
[0016] FIG. 7 illustrates the order in which multiple encoding units are processed when a current encoding unit is divided to determine multiple encoding units according to one embodiment of the present disclosure.
[0017] FIG. 8 illustrates a process for determining that a current encoding unit is split into an odd number of encoding units when encoding units cannot be processed in a predetermined order according to one embodiment of the present disclosure.
[0018] FIG. 9 illustrates a process of dividing a first encoding unit to determine at least one encoding unit according to one embodiment of the present disclosure.
[0019] FIG. 10 illustrates that the shapes into which a second encoding unit of a non-square shape determined by splitting a first encoding unit is split are limited when a predetermined condition is satisfied, according to one embodiment of the present disclosure.
[0020] FIG. 11 illustrates a process of splitting a square-shaped encoding unit when the split shape mode information cannot represent splitting into four square-shaped encoding units according to one embodiment of the present disclosure.
[0021] FIG. 12 illustrates that the processing order between a plurality of encoding units may vary depending on the process of splitting the encoding units according to one embodiment of the present disclosure.
[0022] FIG. 13 illustrates a process in which the depth of an encoding unit is determined as the shape and size of the encoding unit change when the encoding unit is recursively divided to determine a plurality of encoding units according to one embodiment of the present disclosure.
[0023] FIG. 14 illustrates an index (part index, hereinafter referred to as PID) for depth and encoding unit distinction that can be determined according to the shape and size of encoding units according to one embodiment of the present disclosure.
[0024] FIG. 15 illustrates that a plurality of coding units are determined according to a plurality of predetermined data units included in a picture according to one embodiment of the present disclosure.
[0025] FIG. 16 illustrates encoding units that can be determined for each picture when the combination of forms into which encoding units can be divided is different for each picture according to one embodiment of the present disclosure.
[0026] FIG. 17 illustrates various forms of encoding units that can be determined based on segmentation mode information expressed in binary code according to one embodiment of the present disclosure.
[0027] FIG. 18 illustrates another form of a coding unit that can be determined based on segmentation mode information expressed in binary code according to one embodiment of the present disclosure.
[0028] FIG. 19 is a block diagram of an image encoding and decoding system that performs loop filtering according to one embodiment of the present disclosure.
[0029] FIG. 20 is a block diagram showing the configuration of an image decoding device according to one embodiment of the present disclosure.
[0030] FIG. 21 is a diagram for explaining a cost function used in an image decoding method according to one embodiment of the present disclosure.
[0031] FIG. 22 is a flowchart illustrating an image decoding method according to one embodiment of the present disclosure.
[0032] FIG. 23 is a diagram illustrating a process of obtaining direction information using template-based intra-mode derivation (TIMD) according to one embodiment of the present disclosure.
[0033] FIG. 24 is a diagram showing a template of a current block according to one embodiment of the present disclosure.
[0034] Figure 25 is a drawing to explain the unit for determining cost in the template.
[0035] FIG. 26 is a flowchart illustrating a method for determining a cost according to one embodiment of the present disclosure.
[0036] FIG. 27 is a flowchart illustrating a method for determining a cost according to one embodiment of the present disclosure.
[0037] FIG. 28 is a flowchart illustrating a method for determining a cost according to one embodiment of the present disclosure.
[0038] FIG. 29 is a flowchart illustrating a method for determining a cost according to one embodiment of the present disclosure.
[0039] FIG. 30 is a flowchart illustrating a method for determining a cost according to one embodiment of the present disclosure.
[0040] FIG. 31 is a diagram illustrating a segmented template for determining a cost according to one embodiment of the present disclosure.
[0041] FIG. 32 is a diagram illustrating a segmented template for determining a cost according to one embodiment of the present disclosure.
[0042] FIG. 33 is a flowchart illustrating a method for determining a cost according to one embodiment of the present disclosure.
[0043] FIG. 34 is a flowchart illustrating an image decoding method according to one embodiment of the present disclosure.
[0044] FIG. 35 is a flowchart illustrating an image decoding method according to one embodiment of the present disclosure.
[0045] FIG. 36 is a flowchart illustrating an image decoding method according to one embodiment of the present disclosure.
[0046] FIG. 37 is a flowchart illustrating an image decoding method according to one embodiment of the present disclosure.
[0047] FIG. 38 is a block diagram showing the configuration of an image encoding device according to one embodiment of the present disclosure.
[0048] FIG. 39 is a flowchart illustrating an image encoding method according to one embodiment of the present disclosure.
[0049] FIG. 40 is a flowchart illustrating an image encoding method according to one embodiment of the present disclosure.
[0050] In this disclosure, the expression “at least one of a, b or c” may refer to “a”, “b”, “c”, “a and b”, “a and c”, “b and c”, “all of a, b and c”, or variations thereof.
[0051] In the present disclosure, the expression "a, b and / or c" can be replaced with "at least one of a, b or c." That is, the expression "a, b and / or c" can refer to "a," "b," "c," "a and b," "a and c," "b and c," "all of a, b and c," or variations thereof.
[0052] The present disclosure may be subject to various modifications and various embodiments. Examples are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the embodiments of the present disclosure, and the present disclosure may include all modifications, equivalents, and alternatives that fall within the spirit and technical scope of the various embodiments.
[0053] The terms used in this disclosure are selected from widely used, common terms, taking into account the functions of the disclosure. However, these terms may vary depending on the intentions of those skilled in the art, precedents, the emergence of new technologies, etc. Furthermore, in certain cases, terms may be arbitrarily selected by the applicant, and in such cases, their meanings can be understood through the relevant description. Therefore, the terms used in this disclosure should not be defined simply as names of terms, but rather based on the meanings of the terms and the overall content of the disclosure.
[0054] In this disclosure, singular expressions may include plural expressions unless the context clearly dictates otherwise. In describing embodiments, detailed descriptions of related known technologies will be omitted if they are deemed to unnecessarily obscure the gist of the present disclosure. Furthermore, numbers (e.g., "first," "second," etc.) used in the description of embodiments serve as identifiers to distinguish one component from another.
[0055] In the present disclosure, when a component is referred to as being “connected” or “connected” to another component, the component may be directly connected or connected to the other component, but unless there is a specific description to the contrary, the component may also be connected or connected via another component in between.
[0056] When a part in this disclosure is said to "include" a certain component, this does not mean that other components are excluded, but rather that other components may be included, unless otherwise specifically stated. Components expressed as "unit" or "module" in this disclosure may be two or more components combined into one component, or one component may be divided into two or more more detailed components. In addition, each component described below may additionally perform some or all of the functions performed by other components in addition to its own main function, and some of the main functions performed by each component may be performed exclusively by other components.
[0057] The expression "configured to" as used herein can be used interchangeably with, for example, "suitable for", "having the capacity to", "designed to", "adapted to", "made to", or "capable of", depending on the context. The term "configured to" does not necessarily mean something is "specifically designed to" in terms of hardware. Alternatively, in some contexts, the expression "a system configured to" can include that the system is "capable of" in conjunction with other devices or components. For example, the phrase "a processor configured to perform A, B, and C" can include a dedicated processor for performing the operations (e.g., an embedded processor), or a general-purpose processor (e.g., a CPU or an application processor) that can perform the operations by executing one or more software programs stored in a memory.
[0058] At least one processor according to embodiments of the present disclosure may include various processing circuits and / or multiple processors. For example, the term "processor" as used herein, including in the claims, may include various processing circuits including at least one processor, one or more of which are configured to individually and / or collectively perform the various functions described herein in a distributed manner. As used herein, when "processor," "at least one processor," and "one or more processors" are described as being configured to perform various functions, these terms may include, for example, without limitation, a single processor performing some of the recited functions, other processor(s) performing other of the recited functions, and still other situations where a single processor can perform all of the recited functions. Additionally, the at least one processor may include a combination of processors that perform the various functions enumerated / disclosed, for example, in a distributed manner. The at least one processor may execute program instructions to achieve or perform the various functions.
[0059] In the present disclosure, an 'image' may include a picture, a still image, a frame, a moving image composed of a plurality of consecutive still images, or a video.
[0060] In the present disclosure, a "sample" may include data assigned to a sampling location in an image and may include data to be processed. For example, a sample may include pixels within a frame in a spatial domain. A block may refer to a unit including multiple samples.
[0061] Hereinafter, with reference to FIGS. 1 to 19, an image encoding method and device based on a tree-structured encoding unit and a transformation unit according to an embodiment of the present disclosure, and an image decoding method and device are disclosed.
[0062] FIG. 1 illustrates a block diagram of an image decoding device (100) according to one embodiment of the present disclosure.
[0063] The video decoding device (100) may include a bitstream acquisition unit (110) and a decoding unit (120). The bitstream acquisition unit (110) and the decoding unit (120) may include at least one processor. In addition, the bitstream acquisition unit (110) and the decoding unit (120) may include a memory that stores commands to be executed by at least one processor.
[0064] The bitstream acquisition unit (110) can receive a bitstream. The bitstream includes information obtained by encoding an image by an image encoding device (200) described below. In addition, the bitstream can be transmitted from the image encoding device (200). The image encoding device (200) and the image decoding device (100) can be connected by wire or wirelessly, and the bitstream acquisition unit (110) can receive the bitstream by wire or wirelessly. The bitstream acquisition unit (110) can receive the bitstream from a storage medium such as an optical medium, a hard disk, etc. The decoding unit (120) can restore the image based on information obtained from the received bitstream. The decoding unit (120) can obtain syntax elements for restoring the image from the bitstream. The decoding unit (120) can restore the image based on the syntax elements.
[0065] To describe in detail the operation of the video decoding device (100), the bitstream acquisition unit (110) can receive a bitstream.
[0066] The image decoding device (100) may perform an operation of obtaining a binstring corresponding to a splitting shape mode of an encoding unit from a bitstream. In addition, the image decoding device (100) may perform an operation of determining a splitting rule of the encoding unit. In addition, the image decoding device (100) may perform an operation of splitting the encoding unit into a plurality of encoding units based on at least one of the binstring corresponding to the splitting shape mode and the splitting rule. In order to determine the splitting rule, the image decoding device (100) may determine a first allowable range of the size of the encoding unit according to a ratio of the width and height of the encoding unit. In order to determine the splitting rule, the image decoding device (100) may determine a second allowable range of the size of the encoding unit according to the splitting shape mode of the encoding unit.
[0067] Below, the division of encoding units according to one embodiment of the present disclosure is described in detail.
[0068] First, a picture can be divided into one or more slices or one or more tiles. A slice or a tile can be a sequence of one or more maximum coding tree units (CTUs). Depending on the implementation, a slice may include one or more tiles, and a slice may include one or more maximum coding units. A slice including one or more tiles can be determined within a picture.
[0069] The maximum coding block (Coding Tree Block; CTB) is a concept that contrasts with the maximum coding unit (CTU). A CTB is an NxN block containing NxN samples (N is an integer). Each color component can be divided into one or more CTBs.
[0070] When a picture has three sample arrays (sample arrays for Y, Cr, and Cb components), a maximum coding unit (CTU) is a unit that includes a maximum coding block of luma samples, two maximum coding blocks of corresponding chroma samples, and syntax structures used to encode the luma samples and chroma samples. When a picture is a monochrome picture, a maximum coding unit is a unit that includes a maximum coding block of monochrome samples and syntax structures used to encode the monochrome samples. When a picture is a picture that is encoded with a color plane that is separated by color components, a maximum coding unit is a unit that includes syntax structures used to encode samples of the picture and the image.
[0071] A single maximum coding block (CTB) may be partitioned into MxN coding blocks containing MxN samples (where M and N are integers). In one embodiment, a coding block may be referred to as a coding unit.
[0072] When a picture has a sample array for each Y, Cr, and Cb component, a coding unit (CU) is a unit that includes a coding block for a luma sample and two coding blocks for corresponding chroma samples, and syntax structures used to encode the luma sample and the chroma samples. When the picture is a monochrome picture, a coding unit is a unit that includes a coding block for a monochrome sample and syntax structures used to encode the monochrome samples. When the picture is a picture that is encoded with a color plane that is separated by color component, a coding unit is a unit that includes syntax structures used to encode samples of the picture and the image.
[0073] As explained above, the maximum coding block and the maximum coding unit are distinct concepts, and the coding block and the coding unit are distinct concepts. That is, the (maximum) coding unit refers to a data structure including a (maximum) coding block including the corresponding sample and a syntax structure corresponding to it. However, since a person skilled in the art can understand that the (maximum) coding unit or the (maximum) coding block refers to a block of a predetermined size including a predetermined number of samples, the following specification will refer to the maximum coding block and the maximum coding unit, or the coding block and the coding unit, without distinction unless there are special circumstances.
[0074] An image can be divided into Coding Tree Units (CTUs). The size of the CTUs can be determined based on information obtained from the bitstream. The shape of the CTUs can be a square of equal size, but is not limited thereto.
[0075] For example, information about the maximum size of a luma coding block can be obtained from the bitstream. For example, the maximum size of the luma coding block indicated by the information about the maximum size of the luma coding block can be one of 4x4, 8x8, 16x16, 32x32, 64x64, 128x128, and 256x256.
[0076] For example, information about the maximum size of a luma coding block that can be split into two and the luma block size difference can be obtained from the bitstream. The information about the luma block size difference can indicate the size difference between a luma maximum coding unit and a maximum luma coding block that can be split into two. Therefore, by combining the information about the maximum size of a luma coding block that can be split into two obtained from the bitstream and the information about the luma block size difference, the size of the luma maximum coding unit can be determined. Using the size of the luma maximum coding unit, the size of the chroma maximum coding unit can also be determined. For example, if the Y: Cb: Cr ratio is 4:2:0 according to the color format, the size of the chroma block can be half the size of the luma block, and similarly, the size of the chroma maximum coding unit can be half the size of the luma maximum coding unit.
[0077] According to one embodiment, since information about the maximum size of a luma coding block capable of binary splitting is obtained from a bitstream, the maximum size of the luma coding block capable of binary splitting can be determined variably. Alternatively, the maximum size of the luma coding block capable of ternary splitting can be fixed. For example, the maximum size of a luma coding block capable of ternary splitting in an I picture may be 32x32, and the maximum size of a luma coding block capable of ternary splitting in a P picture or a B picture may be 64x64.
[0078] Additionally, the maximum coding unit can be hierarchically divided into coding units based on the division shape mode information obtained from the bitstream. As the division shape mode information, at least one of information indicating whether quad division is performed, information indicating whether multi-division is performed, division direction information, and division type information can be obtained from the bitstream.
[0079] For example, information indicating whether a quad split is present may indicate whether the current encoding unit is to be quad split (QUAD_SPLIT) or not to be quad split.
[0080] If the current encoding unit is not quad-split, the information indicating whether it is multi-split may indicate whether the current encoding unit will not be split any further (NO_SPLIT) or will be binary / ternary split.
[0081] When the current encoding unit is binary or ternary split, the split direction information indicates that the current encoding unit is split in either the horizontal or vertical direction.
[0082] When the current encoding unit is split in the horizontal or vertical direction, the split type information indicates that the current encoding unit is split into binary split or ternary split.
[0083] Depending on the split direction information and the split type information, the split mode of the current encoding unit can be determined. The split mode when the current encoding unit is split into binaries in the horizontal direction can be determined as binary horizontal split (SPLIT_BT_HOR), the split mode when the current encoding unit is split into ternary horizontal split (SPLIT_TT_HOR), the split mode when the current encoding unit is split into binaries in the vertical direction can be determined as binary vertical split (SPLIT_BT_VER), and the split mode when the current encoding unit is split into ternary vertical split (SPLIT_TT_VER).
[0084] The image decoding device (100) can obtain segmentation shape mode information from a bitstream from a single binstring. The format of the bitstream received by the image decoding device (100) can include a fixed length binary code, a unary code, a truncated unary code, a predetermined binary code, etc. The binstring represents information as a series of binary numbers. The binstring can be composed of at least one bit. The image decoding device (100) can obtain segmentation shape mode information corresponding to the binstring based on a segmentation rule. The image decoding device (100) can determine whether to quad-segment an encoding unit, whether not to quad-segment, or the segmentation direction and segmentation type based on a single binstring.
[0085] The coding unit may be smaller than or equal to the maximum coding unit. For example, the maximum coding unit is also a coding unit with the maximum size, so it is a coding unit. If the split shape mode information for the maximum coding unit indicates that it is not split, the coding unit determined from the maximum coding unit has the same size as the maximum coding unit. If the split shape mode information for the maximum coding unit indicates that it is split, the maximum coding unit may be split into coding units. In addition, if the split shape mode information for the coding unit indicates splitting, the coding units may be split into coding units of smaller sizes. However, the splitting of the image is not limited thereto, and the maximum coding unit and the coding units may not be distinguished. The splitting of the coding unit is described in more detail with reference to FIGS. 3 to 16.
[0086] Additionally, one or more prediction blocks for prediction may be determined from the coding unit. The prediction blocks may be equal to or smaller than the coding unit. Additionally, one or more transform blocks for transformation may be determined from the coding unit. The transform blocks may be equal to or smaller than the coding unit. The transform blocks may be referred to as transform units.
[0087] The shape and size of the transformation block and the prediction block may be unrelated.
[0088] In another embodiment, prediction may be performed using the encoding unit as a prediction block. Transformation may also be performed using the encoding unit as a transform block.
[0089] The division of a coding unit is described in more detail with reference to FIGS. 3 to 16. The current block and neighboring blocks of the present disclosure may represent one of a maximum coding unit, a coding unit, a prediction block, and a transform block. In addition, the current block or the current coding unit is a block currently being decoded or encoded, or a block currently being divided. The neighboring block may be a block reconstructed before the current block. The neighboring block may be spatially or temporally adjacent to the current block. The neighboring block may be located on one of the lower left, left, upper left, upper right, upper right, right, and lower right sides of the current block.
[0090] The above-described embodiment describes operations related to an image decoding method performed by an image decoding device (100). Hereinafter, the operations of an image encoding device (200) that performs an image encoding method corresponding to the reverse process of the image decoding method will be described through one embodiment of the present disclosure.
[0091] FIG. 2 illustrates a block diagram of an image encoding device (200) capable of encoding an image based on at least one of block shape information and segmentation shape mode information according to one embodiment of the present disclosure.
[0092] The video encoding device (200) may include an encoding unit (220) and a bitstream generation unit (210). The encoding unit (220) may receive an input image and encode the input image. The encoding unit (220) may encode the input image to obtain at least one syntax element. The syntax element may include at least one of a skip flag, a prediction mode, a motion vector difference, a motion vector prediction method (or index), a transform quantized coefficient, a coded block pattern, a coded block flag, an intra prediction mode, a direct flag, a merge flag, a delta QP, a reference index, a prediction direction, and a transform index. The encoding unit (220) may determine a context model based on block shape information including at least one of a shape, a direction, a ratio of width and height, or a size of an encoding unit.
[0093] The bitstream generation unit (210) can generate a bitstream based on an encoded input image. For example, the bitstream generation unit (210) can generate a bitstream by entropy encoding a syntax element based on a context model. In one embodiment of the present disclosure, the image encoding device (100) can generate a bitstream according to an image encoding method to be described below. The image encoding device (100) can store the bitstream in a computer-readable storage medium.
[0094] In one embodiment of the present disclosure, the image encoding device (200) can transmit a bitstream to the image decoding device (100). For example, the image encoding device (200) can transmit a bitstream generated by a image encoding method.
[0095] According to one embodiment of the present disclosure, the encoding unit (220) of the image encoding device (200) can determine the shape of an encoding unit. For example, the encoding unit may be square or have a non-square shape, and information indicating such shape may be included in the block shape information.
[0096] According to one embodiment of the present disclosure, the encoding unit (220) can determine the shape into which the encoding unit is to be split. The encoding unit (220) can determine the shape of at least one encoding unit included in the encoding unit, and the bitstream generation unit (210) can generate a bitstream including split shape mode information including information about the shape of such encoding unit.
[0097] According to one embodiment of the present disclosure, the encoder (220) can determine whether the encoding unit is split or not. If the encoder (220) determines that the encoding unit includes only one encoding unit or that the encoding unit is not split, the bitstream generation unit (210) can generate a bitstream including split shape mode information indicating that the encoding unit is not split. In addition, the encoder (220) can split the encoding unit into a plurality of encoding units, and the bitstream generation unit (210) can generate a bitstream including split shape mode information indicating that the encoding unit is split into a plurality of encoding units.
[0098] According to one embodiment of the present disclosure, information indicating the number of coding units to be split into or the direction in which the coding unit is split may be included in the splitting mode information. For example, the splitting mode information may indicate splitting in at least one of the vertical and horizontal directions, or may indicate no splitting.
[0099] The video encoding device (200) determines information about the segmentation shape mode based on the segmentation shape mode of the encoding unit. The video encoding device (200) determines a context model based on at least one of the shape, direction, width, and height ratio or size of the encoding unit. Then, the video encoding device (200) generates information about the segmentation shape mode for segmenting the encoding unit based on the context model as a bitstream.
[0100] In order to determine a context model, the video encoding device (200) may obtain an array for matching at least one of the shape, direction, width and height ratio or size of the encoding unit with an index for the context model. The video encoding device (200) may obtain an index for the context model based on at least one of the shape, direction, width and height ratio or size of the encoding unit in the array. The video encoding device (200) may determine the context model based on the index for the context model.
[0101] The video encoding device (200) may further determine the context model based on block shape information including at least one of the shape, direction, width, and height ratio or size of a neighboring encoding unit adjacent to the encoding unit, in order to determine the context model. In addition, the neighboring encoding unit may include at least one of encoding units located on the lower left, left, upper left, upper right, right, or lower right of the encoding unit.
[0102] In addition, the video encoding device (200) may compare the length of the width of the upper peripheral encoding unit with the length of the width of the encoding unit to determine the context model. In addition, the video encoding device (200) may compare the length of the height of the left and right peripheral encoding units with the length of the height of the encoding unit. In addition, the video encoding device (200) may determine the context model based on the comparison results.
[0103] Since the operation of the video encoding device (200) includes similar contents to the operation of the video decoding device (100) described in FIGS. 3 to 19, a detailed description is omitted.
[0104] FIG. 3 illustrates a process in which an image decoding device (100) divides a current encoding unit to determine at least one encoding unit according to one embodiment of the present disclosure.
[0105] The block shape may include 4Nx4N, 4Nx2N, 2Nx4N, 4NxN, Nx4N, 32NxN, Nx32N, 16NxN, Nx16N, 8NxN or Nx8N, where N may be a positive integer. The block shape information is information indicating at least one of the shape, direction, width and height ratio or size of the encoding unit.
[0106] The shape of the encoding unit may include square and non-square. When the width and height of the encoding unit are equal (i.e., when the block shape of the encoding unit is 4Nx4N), the image decoding device (100) may determine the block shape information of the encoding unit as square. The image decoding device (100) may determine the shape of the encoding unit as non-square.
[0107] When the width and height of the encoding unit are different (i.e., when the block shape of the encoding unit is 4Nx2N, 2Nx4N, 4NxN, Nx4N, 32NxN, Nx32N, 16NxN, Nx16N, 8NxN, or Nx8N), the image decoding device (100) may determine the block shape information of the encoding unit to be non-square. When the shape of the encoding unit is non-square, the image decoding device (100) may determine the ratio of the width and height among the block shape information of the encoding unit to be at least one of 1:2, 2:1, 1:4, 4:1, 1:8, 8:1, 1:16, 16:1, 1:32, and 32:1. Additionally, based on the width length and height length of the encoding unit, the image decoding device (100) can determine whether the encoding unit is in the horizontal or vertical direction. Additionally, based on at least one of the width length, height length, or area of the encoding unit, the image decoding device (100) can determine the size of the encoding unit.
[0108] According to one embodiment of the present disclosure, the image decoding device (100) can determine the shape of an encoding unit using block shape information, and can determine the shape into which the encoding unit is divided using segmentation shape mode information. That is, the splitting method of the encoding unit indicated by the segmentation shape mode information can be determined depending on which block shape the block shape information used by the image decoding device (100) indicates.
[0109] The image decoding device (100) can obtain the segmentation shape mode information from the bitstream. However, the present invention is not limited thereto, and the image decoding device (100) and the image encoding device (200) can determine the pre-agreed segmentation shape mode information based on the block shape information. The image decoding device (100) can determine the pre-agreed segmentation shape mode information for the maximum coding unit or the minimum coding unit. For example, the image decoding device (100) can determine the segmentation shape mode information for the maximum coding unit as quad split. In addition, the image decoding device (100) can determine the segmentation shape mode information for the minimum coding unit as “not split.” Specifically, the image decoding device (100) can determine the size of the maximum coding unit as 256x256. The image decoding device (100) can determine the pre-agreed segmentation shape mode information as quad split. Quad splitting is a splitting mode that divides both the width and height of an encoding unit in half. The image decoding device (100) can obtain a coding unit of size 128x128 from a maximum coding unit of size 256x256 based on the splitting mode information. In addition, the image decoding device (100) can determine the size of the minimum coding unit as 4x4. The image decoding device (100) can obtain splitting mode information indicating "not splitting" for the minimum coding unit.
[0110] According to one embodiment of the present disclosure, the image decoding device (100) may use block shape information indicating that the current encoding unit is a square shape. For example, the image decoding device (100) may determine whether to not split a square encoding unit, to split it vertically, to split it horizontally, to split it into four encoding units, etc., according to the split shape mode information. Referring to FIG. 3, when the block shape information of the current encoding unit (300) indicates a square shape, the decoding unit (120) may not split an encoding unit (310a) having the same size as the current encoding unit (300) according to the split shape mode information indicating that it is not split, or may determine a split encoding unit (310b, 310c, 310d, 310e, 310f, etc.) based on the split shape mode information indicating a predetermined splitting method.
[0111] Referring to FIG. 3, the image decoding device (100) may determine two encoding units (310b) by vertically dividing the current encoding unit (300) based on the split shape mode information indicating that the current encoding unit (300) is split in the vertical direction according to one embodiment of the present disclosure. The image decoding device (100) may determine two encoding units (310c) by horizontally dividing the current encoding unit (300) based on the split shape mode information indicating that the current encoding unit (300) is split in the horizontal direction. The image decoding device (100) may determine four encoding units (310d) by vertically dividing the current encoding unit (300) and the horizontal direction based on the split shape mode information indicating that the current encoding unit (300) is split in the vertical direction and the horizontal direction. The image decoding device (100) may determine three coding units (310e) into which the current coding unit (300) is vertically divided based on the partition shape mode information indicating that the current coding unit (300) is ternary divided in the vertical direction according to one embodiment of the present disclosure. The image decoding device (100) may determine three coding units (310f) into which the current coding unit (300) is horizontally divided based on the partition shape mode information indicating that the current coding unit (300) is ternary divided in the horizontal direction. However, the partition shapes into which a square coding unit may be divided should not be interpreted as being limited to the above-described shapes, and may include various shapes that the partition shape mode information may indicate. Specified partition shapes into which a square coding unit is divided will be specifically described below through one embodiment of the present disclosure.
[0112] FIG. 4 illustrates a process in which an image decoding device (100) divides a non-square coding unit to determine at least one coding unit according to one embodiment of the present disclosure.
[0113] According to one embodiment of the present disclosure, an image decoding device (100) may utilize block shape information indicating that a current encoding unit is non-square in shape. The image decoding device (100) may determine whether to not split a non-square current encoding unit or to split it using a predetermined method based on the split shape mode information. Referring to FIG. 4, when the block shape information of the current encoding unit (400 or 450) indicates a non-square shape, the image decoding device (100) may determine an encoding unit (410 or 460) having the same size as the current encoding unit (400 or 450) according to the split shape mode information indicating that it is not split, or may determine a split encoding unit (420a, 420b, 430a, 430b, 430c, 470a, 470b, 480a, 480b, 480c) based on the split shape mode information indicating a predetermined splitting method. A predetermined splitting method by which a non-square encoding unit is split will be described in detail below through an embodiment of the present disclosure.
[0114] According to one embodiment of the present disclosure, the image decoding device (100) can determine a form in which an encoding unit is split using split shape mode information, and in this case, the split shape mode information can indicate the number of at least one encoding unit generated by splitting the encoding unit. Referring to FIG. 4, when the split shape mode information indicates that the current encoding unit (400 or 450) is split into two encoding units, the image decoding device (100) can split the current encoding unit (400 or 450) based on the split shape mode information to determine two encoding units (420a, 420b, or 470a, 470b) included in the current encoding unit.
[0115] According to one embodiment of the present disclosure, when the image decoding device (100) splits a current encoding unit (400 or 450) having a non-square shape based on split shape mode information, the image decoding device (100) may split the current encoding unit by considering the position of the long side of the non-square current encoding unit (400 or 450). For example, the image decoding device (100) may split the current encoding unit (400 or 450) in a direction that splits the long side of the current encoding unit (400 or 450) by considering the shape of the current encoding unit (400 or 450) to determine a plurality of encoding units.
[0116] According to one embodiment of the present disclosure, if the splitting shape mode information indicates that the encoding unit is split into an odd number of blocks (ternary splitting), the image decoding device (100) may determine an odd number of encoding units included in the current encoding unit (400 or 450). For example, if the splitting shape mode information indicates that the current encoding unit (400 or 450) is split into three encoding units, the image decoding device (100) may split the current encoding unit (400 or 450) into three encoding units (430a, 430b, 430c, 480a, 480b, 480c).
[0117] According to one embodiment of the present disclosure, the ratio of the width and height of the current encoding unit (400 or 450) may be 4:1 or 1:4. When the ratio of the width and height is 4:1, the length of the width is longer than the length of the height, so the block shape information may be in the horizontal direction. When the ratio of the width and height is 1:4, the length of the width is shorter than the length of the height, so the block shape information may be in the vertical direction. The image decoding device (100) may determine to split the current encoding unit into an odd number of blocks based on the split shape mode information. In addition, the image decoding device (100) may determine the splitting direction of the current encoding unit (400 or 450) based on the block shape information of the current encoding unit (400 or 450). For example, if the current encoding unit (400) is in the vertical direction, the image decoding device (100) can divide the current encoding unit (400) in the horizontal direction to determine encoding units (430a, 430b, 430c). Also, if the current encoding unit (450) is in the horizontal direction, the image decoding device (100) can divide the current encoding unit (450) in the vertical direction to determine encoding units (480a, 480b, 480c).
[0118] According to one embodiment of the present disclosure, the image decoding device (100) may determine an odd number of coding units included in the current coding unit (400 or 450), and the sizes of the determined coding units may not all be the same. For example, among the determined odd number of coding units (430a, 430b, 430c, 480a, 480b, 480c), the size of a given coding unit (430b or 480b) may have a different size from the other coding units (430a, 430c, 480a, 480c). That is, the encoding units into which the current encoding unit (400 or 450) can be divided and determined can have multiple types of sizes, and in some cases, an odd number of encoding units (430a, 430b, 430c, 480a, 480b, 480c) can each have different sizes.
[0119] According to one embodiment of the present disclosure, when the split shape mode information indicates that the coding unit is split into an odd number of blocks, the image decoding device (100) can determine an odd number of coding units included in the current coding unit (400 or 450), and further, the image decoding device (100) can place a predetermined restriction on at least one coding unit among the odd number of coding units generated by splitting. Referring to FIG. 4, the image decoding device (100) can perform a decoding process for a coding unit (430b, 480b) located in the center among three coding units (430a, 430b, 430c, 480a, 480b, 480c) generated by splitting the current coding unit (400 or 450) differently from the decoding process for other coding units (430a, 430c, 480a, 480c). For example, the image decoding device (100) can restrict the encoding unit (430b, 480b) located in the center from being split any further, unlike other encoding units (430a, 430c, 480a, 480c), or can restrict it to be split only a predetermined number of times.
[0120] FIG. 5 illustrates a process in which an image decoding device (100) divides an encoding unit based on at least one of block shape information and division shape mode information according to one embodiment of the present disclosure.
[0121] According to one embodiment of the present disclosure, the image decoding device (100) may determine whether to split or not to split a first coding unit (500) having a square shape into coding units based on at least one of block shape information and split shape mode information. If the split shape mode information indicates that the first coding unit (500) is split in the horizontal direction according to one embodiment of the present disclosure, the image decoding device (100) may split the first coding unit (500) in the horizontal direction to determine a second coding unit (510). The first coding unit, the second coding unit, and the third coding unit used according to one embodiment of the present disclosure are terms used to understand the relationship before and after splitting between coding units. For example, when the first coding unit is split, the second coding unit may be determined, and when the second coding unit is split, the third coding unit may be determined. In the following, the relationship between the first encoding unit, the second encoding unit, and the third encoding unit used can be understood as following the above-described characteristics.
[0122] According to one embodiment of the present disclosure, the image decoding device (100) may determine to split or not split the determined second encoding unit (510) into encoding units based on the splitting shape mode information. Referring to FIG. 5, the image decoding device (100) may split the first encoding unit (500) based on the splitting shape mode information to split the determined second encoding unit (510) of a non-square shape into at least one third encoding unit (520a, 520b, 520c, 520d, etc.) or may not split the second encoding unit (510). The image decoding device (100) can obtain split shape mode information, and the image decoding device (100) can split the first encoding unit (500) based on the obtained split shape mode information to split a plurality of second encoding units (e.g., 510) of various shapes, and the second encoding unit (510) can be split according to the way in which the first encoding unit (500) is split based on the split shape mode information. According to one embodiment of the present disclosure, when the first encoding unit (500) is split into the second encoding unit (510) based on the split shape mode information for the first encoding unit (500), the second encoding unit (510) can also be split into the third encoding unit (e.g., 520a, 520b, 520c, 520d, etc.) based on the split shape mode information for the second encoding unit (510). That is, the coding unit can be recursively split based on the split shape mode information associated with each coding unit. Accordingly, a square coding unit can be determined from a non-square coding unit, and such a square coding unit can be recursively split to determine a non-square coding unit.
[0123] Referring to FIG. 5, among the odd number of third coding units (520b, 520c, 520d) into which the non-square second coding unit (510) is split, a predetermined coding unit (e.g., a coding unit located in the middle or a square coding unit) may be split recursively. According to one embodiment of the present disclosure, the non-square third coding unit (520b), which is one of the odd number of third coding units (520b, 520c, 520d), may be split horizontally into a plurality of fourth coding units. The non-square fourth coding unit (530b or 530d), which is one of the plurality of fourth coding units (530a, 530b, 530c, 530d), may be split again into a plurality of coding units. For example, the fourth coding unit (530b or 530d) having a non-square shape may be further divided into an odd number of coding units. A method that can be used for recursive division of coding units will be described later through an embodiment of the present disclosure.
[0124] According to one embodiment of the present disclosure, the image decoding device (100) may split each of the third encoding units (520a, 520b, 520c, 520d, etc.) into encoding units based on the splitting shape mode information. In addition, the image decoding device (100) may determine not to split the second encoding unit (510) based on the splitting shape mode information. According to one embodiment of the present disclosure, the image decoding device (100) may split the second encoding unit (510) having a non-square shape into an odd number of third encoding units (520b, 520c, 520d). The image decoding device (100) may place a predetermined restriction on a predetermined third encoding unit among the odd number of third encoding units (520b, 520c, 520d). For example, the image decoding device (100) can limit the encoding unit (520c) located in the middle among an odd number of third encoding units (520b, 520c, 520d) to not be divided any further or to be divided a settable number of times.
[0125] Referring to FIG. 5, the image decoding device (100) may limit the coding unit (520c) located in the middle among the odd number of third coding units (520b, 520c, 520d) included in the second coding unit (510) having a non-square shape to not be split any further, or to be split in a predetermined split form (for example, to be split only into four coding units or to be split in a form corresponding to the split form of the second coding unit (510), or to be split only a predetermined number of times (for example, to be split only n times, where n>0). However, the above limitations on the coding unit (520c) located in the middle are merely simple embodiments and should not be interpreted as being limited to the above-described embodiments, but should be interpreted as including various limitations in which the coding unit (520c) located in the middle can be decoded differently from the other coding units (520b, 520d).
[0126] According to one embodiment of the present disclosure, the image decoding device (100) can obtain the segmentation shape mode information used to segment the current encoding unit from a predetermined location within the current encoding unit.
[0127] FIG. 6 illustrates a method for an image decoding device (100) to determine a predetermined encoding unit among an odd number of encoding units according to one embodiment of the present disclosure.
[0128] Referring to FIG. 6, the split shape mode information of the current encoding unit (600, 650) can be obtained from a sample at a predetermined position among a plurality of samples included in the current encoding unit (600, 650) (for example, a sample (640, 690) located in the center). However, the predetermined position within the current encoding unit (600) from which at least one of the split shape mode information can be obtained should not be interpreted as being limited to the center position illustrated in FIG. 6, but should be interpreted as including various positions (for example, top, bottom, left, right, upper left, lower left, upper right, or lower right, etc.) that can be included within the current encoding unit (600). The image decoding device (100) can obtain the split shape mode information obtained from the predetermined position and determine whether or not to split the current encoding unit into encoding units of various shapes and sizes.
[0129] According to one embodiment of the present disclosure, the image decoding device (100) may select one of the coding units when the current coding unit is divided into a predetermined number of coding units. Various methods may be used to select one of the multiple coding units, and a description of such methods will be provided later through one embodiment of the present disclosure.
[0130] According to one embodiment of the present disclosure, an image decoding device (100) can divide a current encoding unit into a plurality of encoding units and determine an encoding unit at a predetermined position.
[0131] According to one embodiment of the present disclosure, the image decoding device (100) may use information indicating the positions of each of the odd-numbered coding units to determine an coding unit located in the middle of the odd-numbered coding units. Referring to FIG. 6, the image decoding device (100) may split the current coding unit (600) or the current coding unit (650) to determine odd-numbered coding units (620a, 620b, 620c) or odd-numbered coding units (660a, 660b, 660c). The image decoding device (100) may use information about the positions of the odd-numbered coding units (620a, 620b, 620c) or odd-numbered coding units (660a, 660b, 660c) to determine the middle coding unit (620b) or the middle coding unit (660b). For example, the image decoding device (100) can determine the coding unit (620b) located in the center by determining the positions of the coding units (620a, 620b, 620c) based on information indicating the positions of predetermined samples included in the coding units (620a, 620b, 620c). Specifically, the image decoding device (100) can determine the coding unit (620b) located in the center by determining the positions of the coding units (620a, 620b, 620c) based on information indicating the positions of samples (630a, 630b, 630c) at the upper left of the coding units (620a, 620b, 620c).
[0132] According to one embodiment of the present disclosure, information indicating the positions of the upper left samples (630a, 630b, 630c) included in each of the coding units (620a, 620b, 620c) may include information on the positions or coordinates of the coding units (620a, 620b, 620c) within a picture. According to one embodiment of the present disclosure, information indicating the positions of the upper left samples (630a, 630b, 630c) included in each of the coding units (620a, 620b, 620c) may include information indicating the width or height of the coding units (620a, 620b, 620c) included in the current coding unit (600), and this width or height may correspond to information indicating the difference between the coordinates of the coding units (620a, 620b, 620c) within a picture. That is, the image decoding device (100) can determine the encoding unit (620b) located in the center by directly using information about the positions or coordinates of the encoding units (620a, 620b, 620c) within the picture or by using information about the width or height of the encoding unit corresponding to the difference between the coordinates.
[0133] According to one embodiment of the present disclosure, information indicating the position of the sample (630a) at the upper left of the upper encoding unit (620a) may represent coordinates (xa, ya), information indicating the position of the sample (530b) at the upper left of the middle encoding unit (620b) may represent coordinates (xb, yb), and information indicating the position of the sample (630c) at the upper left of the lower encoding unit (620c) may represent coordinates (xc, yc). The image decoding apparatus (100) may determine the middle encoding unit (620b) using the coordinates of the upper left samples (630a, 630b, 630c) included in the encoding units (620a, 620b, 620c), respectively. For example, when the coordinates of the samples (630a, 630b, 630c) on the upper left are sorted in ascending or descending order, the encoding unit (620b) including the coordinates (xb, yb) of the sample (630b) located in the center can be determined as the encoding unit located in the center among the encoding units (620a, 620b, 620c) determined by dividing the current encoding unit (600). However, the coordinates indicating the positions of the upper left samples (630a, 630b, 630c) may indicate coordinates indicating the absolute positions within the picture, and further, based on the position of the upper left sample (630a) of the upper left coding unit (620a), the (dxb, dyb) coordinates, which are information indicating the relative position of the sample (630b) of the upper left of the middle coding unit (620b), and the (dxc, dyc) coordinates, which are information indicating the relative position of the sample (630c) of the upper left of the lower coding unit (620c), may be used. In addition, the method of determining the coding unit of a given position by using the coordinates of the corresponding sample as information indicating the position of the sample included in the coding unit should not be interpreted as being limited to the above-described method, but should be interpreted as various arithmetic methods that can utilize the coordinates of the sample.
[0134] According to one embodiment of the present disclosure, the image decoding device (100) can divide the current encoding unit (600) into a plurality of encoding units (620a, 620b, 620c), and select an encoding unit from among the encoding units (620a, 620b, 620c) according to a predetermined criterion. For example, the image decoding device (100) can select an encoding unit (620b) having a different size from among the encoding units (620a, 620b, 620c).
[0135] According to one embodiment of the present disclosure, the image decoding device (100) can determine the width or height of each of the encoding units (620a, 620b, 620c) by using the (xa, ya) coordinate, which is information indicating the position of the sample (630a) at the upper left of the upper encoding unit (620a), the (xb, yb) coordinate, which is information indicating the position of the sample (630b) at the upper left of the middle encoding unit (620b), and the (xc, yc) coordinate, which is information indicating the position of the sample (630c) at the upper left of the lower encoding unit (620c). The image decoding device (100) can determine the size of each of the encoding units (620a, 620b, 620c) using coordinates (xa, ya), (xb, yb), (xc, yc) indicating the positions of the encoding units (620a, 620b, 620c). According to one embodiment of the present disclosure, the image decoding device (100) can determine the width of the upper encoding unit (620a) as the width of the current encoding unit (600). The image decoding device (100) can determine the height of the upper encoding unit (620a) as yb-ya. According to one embodiment of the present disclosure, the image decoding device (100) can determine the width of the middle encoding unit (620b) as the width of the current encoding unit (600). The image decoding device (100) may determine the height of the middle encoding unit (620b) as yc-yb. According to one embodiment of the present disclosure, the image decoding device (100) may determine the width or height of the lower encoding unit using the width or height of the current encoding unit and the width and height of the upper encoding unit (620a) and the middle encoding unit (620b). The image decoding device (100) may determine an encoding unit having a different size from other encoding units based on the width and height of the determined encoding units (620a, 620b, 620c).Referring to FIG. 6, the image decoding device (100) can determine the middle encoding unit (620b) having a different size from the sizes of the upper encoding unit (620a) and the lower encoding unit (620c) as the encoding unit of a predetermined position. However, the process by which the image decoding device (100) described above determines the encoding unit having a different size from other encoding units is merely an embodiment of determining the encoding unit of a predetermined position using the size of the encoding unit determined based on sample coordinates, and therefore, various processes of determining the encoding unit of a predetermined position by comparing the sizes of the encoding units determined according to predetermined sample coordinates can be used.
[0136] The image decoding device (100) can determine the width or height of each of the encoding units (660a, 660b, 660c) by using the (xd, yd) coordinate, which is information indicating the position of the sample (670a) at the upper left of the left encoding unit (660a), the (xe, ye) coordinate, which is information indicating the position of the sample (670b) at the upper left of the middle encoding unit (660b), and the (xf, yf) coordinate, which is information indicating the position of the sample (670c) at the upper left of the right encoding unit (660c). The image decoding device (100) can determine the size of each of the encoding units (660a, 660b, 660c) by using the (xd, yd), (xe, ye), (xf, yf), which are coordinates indicating the positions of the encoding units (660a, 660b, 660c).
[0137] According to one embodiment of the present disclosure, the image decoding device (100) may determine the width of the left coding unit (660a) as xe-xd. The image decoding device (100) may determine the height of the left coding unit (660a) as the height of the current coding unit (650). According to one embodiment of the present disclosure, the image decoding device (100) may determine the width of the middle coding unit (660b) as xf-xe. The image decoding device (100) may determine the height of the middle coding unit (660b) as the height of the current coding unit (600). According to one embodiment of the present disclosure, the image decoding device (100) may determine the width or height of the right coding unit (660c) using the width or height of the current coding unit (650) and the widths and heights of the left coding unit (660a) and the middle coding unit (660b). The image decoding device (100) can determine an encoding unit having a different size from other encoding units based on the width and height of the determined encoding units (660a, 660b, 660c). Referring to FIG. 6, the image decoding device (100) can determine a middle encoding unit (660b) having a different size from the sizes of the left encoding unit (660a) and the right encoding unit (660c) as an encoding unit at a predetermined position. However, the process of the image decoding device (100) described above determining an encoding unit having a different size from other encoding units is merely an embodiment of determining an encoding unit at a predetermined position using the size of the encoding unit determined based on sample coordinates, and therefore, various processes of determining an encoding unit at a predetermined position by comparing the sizes of the encoding units determined according to predetermined sample coordinates can be used.
[0138] However, the location of the sample considered for determining the location of the encoding unit should not be interpreted as being limited to the upper left corner described above, and it can be interpreted that information on the location of any sample included in the encoding unit can be used.
[0139] According to one embodiment of the present disclosure, the image decoding device (100) may select an coding unit at a predetermined position from among an odd number of coding units determined by splitting the current coding unit, taking into consideration the shape of the current coding unit. For example, if the current coding unit has a non-square shape in which the width is longer than the height, the image decoding device (100) may determine an coding unit at a predetermined position in the horizontal direction. That is, the image decoding device (100) may determine one of the coding units whose positions vary in the horizontal direction and place a restriction on the corresponding coding unit. If the current coding unit has a non-square shape in which the height is longer than the width, the image decoding device (100) may determine an coding unit at a predetermined position in the vertical direction. That is, the image decoding device (100) may determine one of the coding units whose positions vary in the vertical direction and place a restriction on the corresponding coding unit.
[0140] According to one embodiment of the present disclosure, the image decoding device (100) may use information indicating the positions of each of the even-numbered coding units to determine an coding unit at a predetermined position among an even-numbered coding unit. The image decoding device (100) may determine an even-numbered coding unit by dividing the current coding unit (binary dividing) and may determine an coding unit at a predetermined position using information about the positions of the even-numbered coding units. A specific process for this may correspond to a process of determining an coding unit at a predetermined position (e.g., a center position) among an odd-numbered coding unit described above in FIG. 6, and thus will be omitted.
[0141] According to one embodiment of the present disclosure, when a current encoding unit having a non-square shape is split into a plurality of encoding units, predetermined information about the encoding unit at a predetermined position may be used during the splitting process to determine an encoding unit at a predetermined position among the plurality of encoding units. For example, the image decoding device (100) may use at least one of block shape information and split shape mode information stored in a sample included in a middle encoding unit during the splitting process to determine an encoding unit located in the middle among the encoding units into which the current encoding unit is split.
[0142] Referring to FIG. 6, the image decoding device (100) can split the current encoding unit (600) into a plurality of encoding units (620a, 620b, 620c) based on the split shape mode information, and can determine the encoding unit (620b) located in the middle among the plurality of encoding units (620a, 620b, 620c). Furthermore, the image decoding device (100) can determine the encoding unit (620b) located in the middle by considering the position where the split shape mode information is acquired. That is, the split shape mode information of the current encoding unit (600) can be obtained from a sample (640) located in the center of the current encoding unit (600), and when the current encoding unit (600) is split into a plurality of encoding units (620a, 620b, 620c) based on the split shape mode information, the encoding unit (620b) including the sample (640) can be determined as the encoding unit located in the center. However, the information used to determine the encoding unit located in the center should not be interpreted as being limited to the split shape mode information, and various types of information can be used in the process of determining the encoding unit located in the center.
[0143] According to one embodiment of the present disclosure, predetermined information for identifying a coding unit at a predetermined position may be obtained from a predetermined sample included in the coding unit to be determined. Referring to FIG. 6, the image decoding apparatus (100) may use split shape mode information obtained from a sample at a predetermined position within the current coding unit (600) (e.g., a sample located at the center of the current coding unit (600)) to determine a coding unit at a predetermined position among a plurality of coding units (620a, 620b, 620c) determined by splitting the current coding unit (600) (e.g., a coding unit located at the center of the coding units split into multiple units). That is, the image decoding device (100) can determine the sample at the predetermined position by considering the block shape of the current encoding unit (600), and the image decoding device (100) can determine an encoding unit (620b) that includes a sample from which predetermined information (e.g., division shape mode information) can be obtained among a plurality of encoding units (620a, 620b, 620c) determined by dividing the current encoding unit (600), and can set a predetermined restriction. Referring to FIG. 6, according to an embodiment of the present disclosure, the image decoding device (100) can determine a sample (640) located at the center of the current encoding unit (600) as a sample from which predetermined information can be obtained, and the image decoding device (100) can set a predetermined restriction on the encoding unit (620b) that includes this sample (640) during the decoding process. However, the location of the sample from which certain information can be obtained should not be interpreted as being limited to the above-described location, but may be interpreted as samples at any location included in the encoding unit (620b) to be determined in order to set a limitation.
[0144] According to one embodiment of the present disclosure, the position of a sample from which predetermined information can be obtained may be determined according to the shape of the current encoding unit (600). According to one embodiment of the present disclosure, block shape information may determine whether the shape of the current encoding unit is square or non-square, and may determine the position of a sample from which predetermined information can be obtained according to the shape. For example, the image decoding apparatus (100) may determine a sample located on a boundary that divides at least one of the width and height of the current encoding unit in half as a sample from which predetermined information can be obtained, using at least one of information about the width and information about the height of the current encoding unit. As another example, when the block shape information related to the current encoding unit indicates that the shape is non-square, the image decoding apparatus (100) may determine one of the samples adjacent to the boundary that divides the long side of the current encoding unit in half as a sample from which predetermined information can be obtained.
[0145] According to one embodiment of the present disclosure, when the image decoding device (100) divides a current encoding unit into a plurality of encoding units, the image decoding device (100) may use the split shape mode information to determine an encoding unit at a predetermined position among the plurality of encoding units. According to one embodiment of the present disclosure, the image decoding device (100) may obtain the split shape mode information from a sample at a predetermined position included in the encoding unit, and the image decoding device (100) may divide the plurality of encoding units generated by splitting the current encoding unit using the split shape mode information obtained from a sample at a predetermined position included in each of the plurality of encoding units. That is, the encoding unit may be recursively divided using the split shape mode information obtained from a sample at a predetermined position included in each of the encoding units. Since the recursive division process of the encoding unit has been described above with reference to FIG. 5, a detailed description thereof will be omitted.
[0146] According to one embodiment of the present disclosure, the image decoding device (100) can divide a current encoding unit to determine at least one encoding unit, and can determine the order in which the at least one encoding unit is decoded according to a predetermined block (e.g., the current encoding unit).
[0147] FIG. 7 illustrates the order in which multiple encoding units are processed when an image decoding device (100) determines multiple encoding units by dividing a current encoding unit according to one embodiment of the present disclosure.
[0148] According to one embodiment of the present disclosure, the image decoding device (100) may determine second encoding units (710a, 710b) by vertically splitting the first encoding unit (700) according to the splitting shape mode information, determine second encoding units (730a, 730b) by horizontally splitting the first encoding unit (700), or determine second encoding units (750a, 750b, 750c, 750d) by vertically and horizontally splitting the first encoding unit (700).
[0149] Referring to FIG. 7, the image decoding device (100) can determine the order in which the second encoding units (710a, 710b) determined by vertically dividing the first encoding unit (700) are processed in the horizontal direction (710c). The image decoding device (100) can determine the order in which the second encoding units (730a, 730b) determined by horizontally dividing the first encoding unit (700) are processed in the vertical direction (730c). The image decoding device (100) can determine the second encoding units (750a, 750b, 750c, 750d) determined by dividing the first encoding unit (700) in the vertical and horizontal directions according to a predetermined order (e.g., raster scan order (750e) or z scan order (z scan order)) in which encoding units located in one row are processed and then encoding units located in the next row are processed.
[0150] According to one embodiment of the present disclosure, the image decoding device (100) can recursively split encoding units. Referring to FIG. 7, the image decoding device (100) can split a first encoding unit (700) to determine a plurality of encoding units (710a, 710b, 730a, 730b, 750a, 750b, 750c, 750d), and can recursively split each of the determined plurality of encoding units (710a, 710b, 730a, 730b, 750a, 750b, 750c, 750d). A method for splitting a plurality of coding units (710a, 710b, 730a, 730b, 750a, 750b, 750c, 750d) may be a method corresponding to a method for splitting the first coding unit (700). Accordingly, the plurality of coding units (710a, 710b, 730a, 730b, 750a, 750b, 750c, 750d) may each be independently split into a plurality of coding units. Referring to FIG. 7, the image decoding device (100) may split the first coding unit (700) in the vertical direction to determine the second coding units (710a, 710b), and further may determine to independently split or not split each of the second coding units (710a, 710b).
[0151] According to one embodiment of the present disclosure, the image decoding device (100) may horizontally divide the second encoding unit (710a) on the left into third encoding units (720a, 720b), and may not divide the second encoding unit (710b) on the right.
[0152] According to one embodiment of the present disclosure, the processing order of coding units may be determined based on the splitting process of the coding units. In other words, the processing order of the split coding units may be determined based on the processing order of the coding units immediately before splitting. The image decoding apparatus (100) may determine the processing order of the third coding units (720a, 720b) determined by splitting the second coding unit (710a) on the left, independently from the second coding unit (710b) on the right. Since the second coding unit (710a) on the left is split horizontally and the third coding units (720a, 720b) are determined, the third coding units (720a, 720b) may be processed in the vertical direction (720c). In addition, since the order in which the second encoding unit (710a) on the left and the second encoding unit (710b) on the right are processed corresponds to the horizontal direction (710c), the right encoding unit (710b) can be processed after the third encoding units (720a, 720b) included in the second encoding unit (710a) on the left are processed in the vertical direction (720c). Since the above-described content is intended to explain the process in which the processing order of the encoding units is determined according to the encoding units before splitting, it should not be interpreted as being limited to the above-described embodiment, but should be interpreted as being used in various ways in which encoding units that are split and determined in various forms can be independently processed according to a predetermined order.
[0153] FIG. 8 illustrates a process of determining that a current encoding unit is divided into an odd number of encoding units when the encoding units cannot be processed in a predetermined order, according to one embodiment of the present disclosure, by an image decoding device (100).
[0154] According to one embodiment of the present disclosure, the image decoding device (100) may determine that the current encoding unit is split into an odd number of encoding units based on the acquired split shape mode information. Referring to FIG. 8, a first encoding unit (800) having a square shape may be split into second encoding units (810a, 810b) having a non-square shape, and the second encoding units (810a, 810b) may each be independently split into third encoding units (820a, 820b, 820c, 820d, 820e). According to one embodiment of the present disclosure, the image decoding device (100) can determine a plurality of third encoding units (820a, 820b) by horizontally dividing the left encoding unit (810a) among the second encoding units, and can divide the right encoding unit (810b) into an odd number of third encoding units (820c, 820d, 820e).
[0155] According to one embodiment of the present disclosure, the image decoding device (100) can determine whether there is an odd number of split coding units by determining whether the third coding units (820a, 820b, 820c, 820d, 820e) can be processed in a predetermined order. Referring to FIG. 8, the image decoding device (100) can determine the third coding units (820a, 820b, 820c, 820d, 820e) by recursively splitting the first coding unit (800). The image decoding device (100) can determine whether the first encoding unit (800), the second encoding unit (810a, 810b), or the third encoding unit (820a, 820b, 820c, 820d, 820e) is divided into an odd number of encoding units based on at least one of the block shape information and the split shape mode information. For example, the encoding unit located on the right side of the second encoding unit (810a, 810b) can be divided into an odd number of third encoding units (820c, 820d, 820e). The order in which the plurality of encoding units included in the first encoding unit (800) are processed can be a predetermined order (e.g., z-scan order (830)), and the image decoding device (100) can determine whether the third encoding unit (820c, 820d, 820e) determined by dividing the second encoding unit (810b) on the right into odd numbers satisfies the condition that it can be processed according to the predetermined order.
[0156] According to one embodiment of the present disclosure, the image decoding device (100) can determine whether the third encoding units (820a, 820b, 820c, 820d, 820e) included in the first encoding unit (800) satisfy a condition that they can be processed in a predetermined order, and the condition is related to whether at least one of the width and height of the second encoding unit (810a, 810b) is split in half according to the boundary of the third encoding unit (820a, 820b, 820c, 820d, 820e). For example, the third encoding unit (820a, 820b) determined by splitting the height of the left second encoding unit (810a) of a non-square shape in half can satisfy the condition. Since the boundaries of the third encoding units (820c, 820d, 820e) determined by dividing the right second encoding unit (810b) into three encoding units do not divide the width or height of the right second encoding unit (810b) in half, it may be determined that the third encoding units (820c, 820d, 820e) do not satisfy the condition. In the case where this condition is not satisfied, the image decoding device (100) may determine that there is a disconnection in the scanning order, and may determine that the right second encoding unit (810b) is divided into an odd number of encoding units based on the determination result. According to one embodiment of the present disclosure, when the image decoding device (100) is divided into an odd number of encoding units, a predetermined restriction may be placed on an encoding unit at a predetermined position among the divided encoding units. Since the contents of such restrictions or predetermined positions, etc. have been described above through one embodiment of the present disclosure, a detailed description thereof will be omitted.
[0157] FIG. 9 illustrates a process in which an image decoding device (100) divides a first encoding unit (900) to determine at least one encoding unit according to one embodiment of the present disclosure.
[0158] According to one embodiment of the present disclosure, the image decoding device (100) can split the first coding unit (900) based on the split shape mode information acquired through the bitstream acquisition unit (110). The first coding unit (900) having a square shape can be split into four coding units having a square shape or can be split into a plurality of coding units having a non-square shape. For example, referring to FIG. 9, when the first coding unit (900) is square and the split shape mode information indicates that it is split into coding units having a non-square shape, the image decoding device (100) can split the first coding unit (900) into a plurality of coding units having a non-square shape. Specifically, when the split shape mode information indicates that the first encoding unit (900) is split in the horizontal direction or the vertical direction to determine an odd number of encoding units, the image decoding device (100) can split the first encoding unit (900) having a square shape into second encoding units (910a, 910b, 910c) determined by splitting them in the vertical direction into an odd number of encoding units or second encoding units (920a, 920b, 920c) determined by splitting them in the horizontal direction.
[0159] According to one embodiment of the present disclosure, the image decoding device (100) can determine whether the second encoding units (910a, 910b, 910c, 920a, 920b, 920c) included in the first encoding unit (900) satisfy a condition that they can be processed in a predetermined order, and the condition is related to whether at least one of the width and height of the first encoding unit (900) is split in half according to the boundary of the second encoding unit (910a, 910b, 910c, 920a, 920b, 920c). Referring to FIG. 9, since the boundaries of the second coding units (910a, 910b, 910c) determined by vertically dividing the first coding unit (900) in a square shape do not divide the width of the first coding unit (900) in half, it may be determined that the first coding unit (900) does not satisfy the condition that it can be processed in a predetermined order. In addition, since the boundaries of the second coding units (920a, 920b, 920c) determined by horizontally dividing the first coding unit (900) in a square shape do not divide the height of the first coding unit (900) in half, it may be determined that the first coding unit (900) does not satisfy the condition that it can be processed in a predetermined order. If such a condition is not satisfied, the image decoding device (100) may determine that the scan order is disconnected, and based on the determination result, may determine that the first encoding unit (900) is divided into an odd number of encoding units. According to one embodiment of the present disclosure, when the image decoding device (100) is divided into an odd number of encoding units, a predetermined restriction may be placed on an encoding unit at a predetermined position among the divided encoding units. Since the contents of such restriction or the predetermined position, etc. have been described above through one embodiment of the present disclosure, a detailed description thereof will be omitted.
[0160] According to one embodiment of the present disclosure, the image decoding device (100) can divide the first encoding unit to determine encoding units of various shapes.
[0161] Referring to FIG. 9, the image decoding device (100) can divide the first encoding unit (900) having a square shape and the first encoding unit (930 or 950) having a non-square shape into encoding units of various shapes.
[0162] FIG. 10 illustrates that, according to one embodiment of the present disclosure, a video decoding device (100) limits the shapes into which a second encoding unit can be divided when a non-square shape of a second encoding unit determined by dividing a first encoding unit (1000) satisfies a predetermined condition.
[0163] According to one embodiment of the present disclosure, the image decoding device (100) may determine to split a first coding unit (1000) having a square shape into second coding units (1010a, 1010b, 1020a, 1020b) having a non-square shape based on the split shape mode information acquired through the bitstream acquisition unit (110). The second coding units (1010a, 1010b, 1020a, 1020b) may be independently split. Accordingly, the image decoding device (100) may determine to split or not split into a plurality of coding units based on the split shape mode information related to each of the second coding units (1010a, 1010b, 1020a, 1020b). According to one embodiment of the present disclosure, the image decoding device (100) may determine third coding units (1012a, 1012b) by horizontally dividing the left second coding unit (1010a) having a non-square shape determined by vertically dividing the first coding unit (1000). However, when the image decoding device (100) horizontally divides the left second coding unit (1010a), the right second coding unit (1010b) may be restricted from being horizontally divided in the same direction as the direction in which the left second coding unit (1010a) is divided. If the second encoding unit on the right (1010b) is split in the same direction to determine the third encoding unit (1014a, 1014b), the second encoding unit on the left (1010a) and the second encoding unit on the right (1010b) may be independently split in the horizontal direction to determine the third encoding unit (1012a, 1012b, 1014a, 1014b). However, this is the same result as the image decoding device (100) splitting the first encoding unit (1000) into four square-shaped second encoding units (1030a, 1030b, 1030c, 1030d) based on the split shape mode information, which may be inefficient in terms of image decoding.
[0164] According to one embodiment of the present disclosure, the image decoding device (100) may determine third coding units (1022a, 1022b, 1024a, 1024b) by vertically dividing a second coding unit (1020a or 1020b) having a non-square shape determined by dividing a first coding unit (1000) in a horizontal direction. However, when the image decoding device (100) vertically divides one of the second coding units (e.g., the upper second coding unit (1020a)), the other second coding units (e.g., the lower coding unit (1020b)) may be restricted from being vertically divided in the same direction as the direction in which the upper second coding unit (1020a) is divided, for the reasons described above.
[0165] FIG. 11 illustrates a process in which an image decoding device (100) divides a square-shaped encoding unit when the split shape mode information cannot indicate that the encoding unit is divided into four square-shaped encoding units according to one embodiment of the present disclosure.
[0166] According to one embodiment of the present disclosure, the image decoding device (100) may split the first encoding unit (1100) based on the split shape mode information to determine the second encoding units (1110a, 1110b, 1120a, 1120b, etc.). The split shape mode information may include information about various shapes into which the encoding unit may be split, but the information about various shapes may not include information for splitting the encoding unit into four encoding units having a square shape. According to this split shape mode information, the image decoding device (100) cannot split the first encoding unit (1100) having a square shape into four second encoding units having a square shape (1130a, 1130b, 1130c, 1130d). Based on the segmentation shape mode information, the image decoding device (100) can determine a second encoding unit (1110a, 1110b, 1120a, 1120b, etc.) of a non-square shape.
[0167] According to one embodiment of the present disclosure, the image decoding device (100) can independently split each of the second encoding units (1110a, 1110b, 1120a, 1120b, etc.) having a non-square shape. Each of the second encoding units (1110a, 1110b, 1120a, 1120b, etc.) can be split in a predetermined order using a recursive method, which may be a splitting method corresponding to a method in which the first encoding unit (1100) is split based on splitting shape mode information.
[0168] For example, the image decoding device (100) can determine third coding units (1112a, 1112b) having a square shape by splitting the left second coding unit (1110a) in the horizontal direction, and can determine third coding units (1114a, 1114b) having a square shape by splitting the right second coding unit (1110b) in the horizontal direction. Furthermore, the image decoding device (100) can also determine third coding units (1116a, 1116b, 1116c, 1116d) having a square shape by splitting both the left second coding unit (1110a) and the right second coding unit (1110b) in the horizontal direction. In this case, the encoding unit can be determined in the same form as the first encoding unit (1100) being divided into four square-shaped second encoding units (1130a, 1130b, 1130c, 1130d).
[0169] As another example, the image decoding device (100) may determine third coding units (1122a, 1122b) having a square shape by vertically splitting the upper second coding unit (1120a), and may determine third coding units (1124a, 1124b) having a square shape by vertically splitting the lower second coding unit (1120b). Furthermore, the image decoding device (100) may determine third coding units (1126a, 1126b, 1126a, 1126b) having a square shape by vertically splitting both the upper second coding unit (1120a) and the lower second coding unit (1120b). In this case, the encoding unit can be determined in the same form as the first encoding unit (1100) being divided into four square-shaped second encoding units (1130a, 1130b, 1130c, 1130d).
[0170] FIG. 12 illustrates that the processing order between a plurality of encoding units may vary depending on the process of splitting the encoding units according to one embodiment of the present disclosure.
[0171] According to one embodiment of the present disclosure, the image decoding device (100) can split the first encoding unit (1200) based on the split shape mode information. If the block shape is square and the split shape mode information indicates that the first encoding unit (1200) is split in at least one of the horizontal direction and the vertical direction, the image decoding device (100) can split the first encoding unit (1200) to determine second encoding units (e.g., 1210a, 1210b, 1220a, 1220b, etc.). Referring to FIG. 12, the second encoding units (1210a, 1210b, 1220a, 1220b) having a non-square shape determined by splitting the first encoding unit (1200) only in the horizontal direction or the vertical direction can be independently split based on the split shape mode information for each. For example, the image decoding device (100) can determine third encoding units (1216a, 1216b, 1216c, 1216d) by horizontally dividing second encoding units (1210a, 1210b) generated by vertically dividing the first encoding unit (1200), and can determine third encoding units (1226a, 1226b, 1226c, 1226d) by vertically dividing second encoding units (1220a, 1220b) generated by horizontally dividing the first encoding unit (1200). Since the process of dividing the second encoding units (1210a, 1210b, 1220a, 1220b) has been described above with reference to FIG. 11, a detailed description thereof will be omitted.
[0172] According to one embodiment of the present disclosure, the image decoding device (100) can process encoding units according to a predetermined order. Since the characteristics of processing encoding units according to a predetermined order have been described above with reference to FIG. 7, a detailed description thereof will be omitted. Referring to FIG. 12, the image decoding device (100) can divide a first encoding unit (1200) having a square shape and determine four third encoding units (1216a, 1216b, 1216c, 1216d, 1226a, 1226b, 1226c, 1226d) having a square shape. According to one embodiment of the present disclosure, the image decoding device (100) can determine the processing order of the third encoding units (1216a, 1216b, 1216c, 1216d, 1226a, 1226b, 1226c, 1226d) depending on the form in which the first encoding unit (1200) is divided.
[0173] According to one embodiment of the present disclosure, the image decoding device (100) can determine third encoding units (1216a, 1216b, 1216c, 1216d) by horizontally dividing the second encoding units (1210a, 1210b) generated by vertically dividing them, and the image decoding device (100) can process the third encoding units (1216a, 1216b, 1216c, 1216d) according to an order (1217) of first processing the third encoding units (1216a, 1216c) included in the left second encoding unit (1210a) in the vertical direction and then processing the third encoding units (1216b, 1216d) included in the right second encoding unit (1210b) in the vertical direction.
[0174] According to one embodiment of the present disclosure, the image decoding device (100) can determine third encoding units (1226a, 1226b, 1226c, 1226d) by vertically dividing the second encoding units (1220a, 1220b) generated by being divided in the horizontal direction, and the image decoding device (100) can process the third encoding units (1226a, 1226b, 1226c, 1226d) according to an order (1227) of first processing the third encoding units (1226a, 1226b) included in the upper second encoding unit (1220a) in the horizontal direction and then processing the third encoding units (1226c, 1226d) included in the lower second encoding unit (1220b) in the horizontal direction.
[0175] Referring to FIG. 12, the second encoding units (1210a, 1210b, 1220a, 1220b) can be divided into third encoding units (1216a, 1216b, 1216c, 1216d, 1226a, 1226b, 1226c, 1226d) having a square shape. The second encoding units (1210a, 1210b) determined by being split in the vertical direction and the second encoding units (1220a, 1220b) determined by being split in the horizontal direction are split into different shapes, but according to the third encoding units (1216a, 1216b, 1216c, 1216d, 1226a, 1226b, 1226c, 1226d) determined later, the first encoding unit (1200) is ultimately split into encoding units of the same shape. Accordingly, even if the image decoding device (100) determines encoding units of the same shape as a result by recursively splitting the encoding units through different processes based on the split shape mode information, it can process a plurality of encoding units determined in the same shape in different orders.
[0176] FIG. 13 illustrates a process in which the depth of an encoding unit is determined as the shape and size of the encoding unit change when the encoding unit is recursively divided to determine a plurality of encoding units according to one embodiment of the present disclosure.
[0177] According to one embodiment of the present disclosure, the image decoding device (100) may determine the depth of an encoding unit according to a predetermined criterion. For example, the predetermined criterion may be the length of a long side of the encoding unit. If the length of the long side of the current encoding unit is split to be 2n (n>0) times the length of the long side of the encoding unit before splitting, the image decoding device (100) may determine that the depth of the current encoding unit is increased by n compared to the depth of the encoding unit before splitting. Hereinafter, the encoding unit with increased depth will be expressed as an encoding unit of a lower depth.
[0178] Referring to FIG. 13, according to one embodiment of the present disclosure, based on block shape information indicating a square shape (for example, the block shape information may indicate '0: SQUARE'), the image decoding device (100) may divide a first coding unit (1300) having a square shape to determine a second coding unit (1302), a third coding unit (1304), etc. of a lower depth. If the size of the first coding unit (1300) having a square shape is 2Nx2N, the second coding unit (1302) determined by dividing the width and height of the first coding unit (1300) by half may have a size of NxN. Furthermore, the third coding unit (1304) determined by dividing the width and height of the second coding unit (1302) by half may have a size of N / 2xN / 2. In this case, the width and height of the third encoding unit (1304) correspond to 1 / 4 of the width and height of the first encoding unit (1300). When the depth of the first encoding unit (1300) is D, the depth of the second encoding unit (1302), which is 1 / 2 of the width and height of the first encoding unit (1300), may be D+1, and the depth of the third encoding unit (1304), which is 1 / 4 of the width and height of the first encoding unit (1300), may be D+2.
[0179] According to one embodiment of the present disclosure, based on block shape information indicating a non-square shape (for example, the block shape information may indicate '1: NS_VER' indicating a non-square shape in which the height is longer than the width or '2: NS_HOR' indicating a non-square shape in which the width is longer than the height), the image decoding device (100) may split a first coding unit (1310 or 1320) having a non-square shape to determine a second coding unit (1312 or 1322), a third coding unit (1314 or 1324) of a lower depth, etc.
[0180] The image decoding device (100) can determine a second encoding unit (e.g., 1302, 1312, 1322, etc.) by splitting at least one of the width and height of the first encoding unit (1310) having a size of Nx2N. That is, the image decoding device (100) can split the first encoding unit (1310) in the horizontal direction to determine a second encoding unit (1302) having a size of NxN or a second encoding unit (1322) having a size of NxN / 2, and can also split the first encoding unit (1310) in the horizontal direction and the vertical direction to determine a second encoding unit (1312) having a size of N / 2xN.
[0181] According to one embodiment of the present disclosure, the image decoding device (100) may determine a second coding unit (e.g., 1302, 1312, 1322, etc.) by splitting at least one of the width and the height of the first coding unit (1320) having a size of 2NxN. That is, the image decoding device (100) may split the first coding unit (1320) in the vertical direction to determine a second coding unit (1302) having a size of NxN or a second coding unit (1312) having a size of N / 2xN, and may also split the first coding unit (1320) in the horizontal direction and the vertical direction to determine a second coding unit (1322) having a size of NxN / 2.
[0182] According to one embodiment of the present disclosure, the image decoding device (100) may determine a third encoding unit (e.g., 1304, 1314, 1324, etc.) by splitting at least one of the width and the height of the second encoding unit (1302) having a size of NxN. That is, the image decoding device (100) may split the second encoding unit (1302) in the vertical direction and the horizontal direction to determine a third encoding unit (1304) having a size of N / 2xN / 2, a third encoding unit (1314) having a size of N / 4xN / 2, or a third encoding unit (1324) having a size of N / 2xN / 4.
[0183] According to one embodiment of the present disclosure, the image decoding device (100) may determine a third coding unit (e.g., 1304, 1314, 1324, etc.) by splitting at least one of the width and the height of the second coding unit (1312) having a size of N / 2xN. That is, the image decoding device (100) may split the second coding unit (1312) in the horizontal direction to determine a third coding unit (1304) having a size of N / 2xN / 2 or a third coding unit (1324) having a size of N / 2xN / 4, or split the second coding unit (1312) in the vertical direction and the horizontal direction to determine a third coding unit (1314) having a size of N / 4xN / 2.
[0184] According to one embodiment of the present disclosure, the image decoding device (100) may determine a third coding unit (e.g., 1304, 1314, 1324, etc.) by splitting at least one of the width and the height of the second coding unit (1322) having a size of NxN / 2. That is, the image decoding device (100) may split the second coding unit (1322) in the vertical direction to determine a third coding unit (1304) having a size of N / 2xN / 2 or a third coding unit (1314) having a size of N / 4xN / 2, or split the second coding unit (1322) in the vertical direction and the horizontal direction to determine a third coding unit (1324) having a size of N / 2xN / 4.
[0185] According to one embodiment of the present disclosure, the image decoding device (100) can split a square-shaped encoding unit (e.g., 1300, 1302, 1304) in a horizontal direction or a vertical direction. For example, a first encoding unit (1300) having a size of 2Nx2N can be split in the vertical direction to determine a first encoding unit (1310) having a size of Nx2N, or can be split in the horizontal direction to determine a first encoding unit (1320) having a size of 2NxN. When the depth is determined based on the length of the longest side of the encoding unit according to one embodiment of the present disclosure, the depth of the encoding unit determined by splitting the first encoding unit (1300) having a size of 2Nx2N in the horizontal direction or the vertical direction can be the same as the depth of the first encoding unit (1300).
[0186] According to one embodiment of the present disclosure, the width and height of the third coding unit (1314 or 1324) may be 1 / 4 times that of the first coding unit (1310 or 1320). When the depth of the first coding unit (1310 or 1320) is D, the depth of the second coding unit (1312 or 1322), which is 1 / 2 times the width and height of the first coding unit (1310 or 1320), may be D+1, and the depth of the third coding unit (1314 or 1324), which is 1 / 4 times the width and height of the first coding unit (1310 or 1320), may be D+2.
[0187] FIG. 14 illustrates an index (part index, hereinafter referred to as PID) for depth and encoding unit distinction that can be determined according to the shape and size of encoding units according to one embodiment of the present disclosure.
[0188] According to one embodiment of the present disclosure, the image decoding device (100) can determine second coding units of various shapes by splitting a first coding unit (1400) having a square shape. Referring to FIG. 14, the image decoding device (100) can split the first coding unit (1400) in at least one of a vertical direction and a horizontal direction according to the split shape mode information to determine second coding units (1402a, 1402b, 1404a, 1404b, 1406a, 1406b, 1406c, 1406d). That is, the image decoding device (100) can determine the second encoding unit (1402a, 1402b, 1404a, 1404b, 1406a, 1406b, 1406c, 1406d) based on the split shape mode information for the first encoding unit (1400).
[0189] According to one embodiment of the present disclosure, the depth of the second coding units (1402a, 1402b, 1404a, 1404b, 1406a, 1406b, 1406c, 1406d) determined according to the split shape mode information for the first coding unit (1400) having a square shape may be determined based on the length of the long side. For example, since the length of one side of the first coding unit (1400) having a square shape and the length of the long side of the second coding unit (1402a, 1402b, 1404a, 1404b) having a non-square shape are the same, the depth of the first coding unit (1400) and the second coding units (1402a, 1402b, 1404a, 1404b) having a non-square shape may be considered to be the same as D. In contrast, when the image decoding device (100) divides the first encoding unit (1400) into four square-shaped second encoding units (1406a, 1406b, 1406c, 1406d) based on the split shape mode information, the length of one side of the square-shaped second encoding units (1406a, 1406b, 1406c, 1406d) is half the length of one side of the first encoding unit (1400), so the depth of the second encoding units (1406a, 1406b, 1406c, 1406d) may be a depth of D+1, which is one depth lower than D, the depth of the first encoding unit (1400).
[0190] According to one embodiment of the present disclosure, the image decoding device (100) can horizontally split a first encoding unit (1410) having a height longer than width according to split shape mode information into a plurality of second encoding units (1412a, 1412b, 1414a, 1414b, 1414c). According to one embodiment of the present disclosure, the image decoding device (100) can vertically split a first encoding unit (1420) having a width longer than height according to split shape mode information into a plurality of second encoding units (1422a, 1422b, 1424a, 1424b, 1424c).
[0191] According to one embodiment of the present disclosure, the second coding units (1412a, 1412b, 1414a, 1414b, 1414c. 1422a, 1422b, 1424a, 1424b, 1424c) determined according to the split shape mode information for the first coding unit (1410 or 1420) of a non-square shape may have their depths determined based on the length of their long sides. For example, since the length of one side of the second encoding unit (1412a, 1412b) in the shape of a square is half the length of one side of the first encoding unit (1410) in the shape of a non-square having a height longer than a width, the depth of the second encoding unit (1412a, 1412b) in the shape of a square is D+1, which is one depth lower than the depth D of the first encoding unit (1410) in the shape of a non-square.
[0192] Furthermore, the image decoding device (100) can split a non-square first encoding unit (1410) into an odd number of second encoding units (1414a, 1414b, 1414c) based on the split shape mode information. The odd number of second encoding units (1414a, 1414b, 1414c) can include non-square second encoding units (1414a, 1414c) and square second encoding units (1414b). In this case, since the length of the long side of the second encoding unit (1414a, 1414c) of a non-square shape and the length of one side of the second encoding unit (1414b) of a square shape are half the length of one side of the first encoding unit (1410), the depth of the second encoding unit (1414a, 1414b, 1414c) may be a depth of D+1, which is one depth lower than D, which is the depth of the first encoding unit (1410). The image decoding device (100) may determine the depth of the encoding units associated with the first encoding unit (1420) of a non-square shape, in which the width is longer than the height, in a manner corresponding to the above method of determining the depth of the encoding units associated with the first encoding unit (1410).
[0193] According to one embodiment of the present disclosure, when determining an index (PID) for distinguishing split coding units, the image decoding device (100) may determine the index based on a size ratio between the coding units when the coding units split into an odd number of units do not have the same size. Referring to FIG. 14, among the coding units (1414a, 1414b, 1414c) split into an odd number of units, the coding unit (1414b) located in the middle may have the same width as the other coding units (1414a, 1414c) but may have a height that is twice the height of the coding units (1414a, 1414c) that are different in height. That is, in this case, the coding unit (1414b) located in the middle may include two of the other coding units (1414a, 1414c). Accordingly, if the index (PID) of the encoding unit (1414b) located in the middle according to the scanning order is 1, the index of the encoding unit (1414c) located in the next order may be 3, which is an increase of 2. In other words, there may be a discontinuity in the value of the index. According to one embodiment of the present disclosure, the image decoding device (100) may determine whether the encoding units divided into an odd number are not of the same size based on the presence or absence of discontinuity in the index for distinguishing between the divided encoding units.
[0194] According to one embodiment of the present disclosure, the image decoding device (100) may determine whether the current encoding unit is divided into a specific split shape based on the value of an index for distinguishing a plurality of encoding units determined by division. Referring to FIG. 14, the image decoding device (100) may divide a first encoding unit (1410) having a rectangular shape in which a height is longer than a width, to determine an even number of encoding units (1412a, 1412b) or an odd number of encoding units (1414a, 1414b, 1414c). The image decoding device (100) may use an index (PID) indicating each encoding unit to distinguish each of the plurality of encoding units. According to one embodiment of the present disclosure, the PID may be obtained from a sample (e.g., an upper left sample) at a predetermined position of each encoding unit.
[0195] According to one embodiment of the present disclosure, the image decoding device (100) can determine an coding unit at a predetermined position among the coding units that are divided and determined using an index for distinguishing the coding units. According to one embodiment of the present disclosure, when the split shape mode information for the first coding unit (1410) having a rectangular shape with a height longer than the width indicates that the first coding unit (1410) is divided into three coding units, the image decoding device (100) can divide the first coding unit (1410) into three coding units (1414a, 1414b, 1414c). The image decoding device (100) can assign an index to each of the three coding units (1414a, 1414b, 1414c). The image decoding device (100) can compare the indexes for each coding unit to determine the middle coding unit among the coding units divided into an odd number of coding units. The image decoding device (100) may determine a coding unit (1414b) having an index corresponding to a middle value among the indices of the coding units as a coding unit at a middle position among the coding units determined by splitting the first coding unit (1410). According to an embodiment of the present disclosure, when determining an index for distinguishing the split coding units, the image decoding device (100) may determine the index based on a size ratio between the coding units when the coding units do not have the same size. Referring to FIG. 14, the coding unit (1414b) generated by splitting the first coding unit (1410) may have the same width as other coding units (1414a, 1414c) but may be twice the height of the coding units (1414a, 1414c) that are different in height. In this case, if the index (PID) of the encoding unit (1414b) located in the middle is 1, the index of the encoding unit (1414c) located in the next order may be 3, which is an increase of 2.In cases like this where the index increases uniformly and then the increase amount changes, the image decoding device (100) may determine that the current encoding unit is divided into a plurality of encoding units including encoding units having different sizes from other encoding units. According to one embodiment of the present disclosure, when the split shape mode information indicates that the current encoding unit is divided into an odd number of encoding units, the image decoding device (100) may divide the current encoding unit into a form in which an encoding unit at a predetermined position among the odd number of encoding units (for example, a middle encoding unit) has a different size from the other encoding units. In this case, the image decoding device (100) may determine a middle encoding unit having a different size using an index (PID) for the encoding unit. However, the above-described index, the size or position of the encoding unit at the predetermined position to be determined are specific for explaining one embodiment and should not be interpreted as being limited thereto, and it should be interpreted that various indexes, positions and sizes of encoding units can be used.
[0196] According to one embodiment of the present disclosure, an image decoding device (100) can use a predetermined data unit from which recursive division of an encoding unit begins.
[0197] FIG. 15 illustrates that a plurality of coding units are determined according to a plurality of predetermined data units included in a picture according to one embodiment of the present disclosure.
[0198] According to one embodiment of the present disclosure, a predetermined data unit may be defined as a data unit from which a coding unit begins to be recursively split using split shape mode information. That is, it may correspond to a coding unit of the highest depth used in the process of determining multiple coding units for splitting the current picture. For convenience of explanation, this predetermined data unit will be referred to as a reference data unit hereinafter.
[0199] According to one embodiment of the present disclosure, a reference data unit may have a predetermined size and shape. According to one embodiment of the present disclosure, the reference data unit may include MxN samples, where M and N may be the same and may be integers expressed as powers of 2. That is, the reference data unit may have a square or non-square shape, and may be subsequently divided into an integer number of coding units.
[0200] According to one embodiment of the present disclosure, an image decoding device (100) may divide a current picture into a plurality of reference data units. According to one embodiment of the present disclosure, an image decoding device (100) may divide a plurality of reference data units into which a current picture is divided using division shape mode information for each reference data unit. This division process of the reference data units may correspond to a division process using a quad-tree structure.
[0201] According to one embodiment of the present disclosure, the image decoding device (100) can determine in advance the minimum size that a reference data unit included in a current picture can have. Accordingly, the image decoding device (100) can determine reference data units of various sizes having a size greater than or equal to the minimum size, and can determine at least one encoding unit using segmentation mode information based on the determined reference data unit.
[0202] Referring to FIG. 15, the image decoding device (100) may use a reference coding unit (1500) having a square shape, or may use a reference coding unit (1502) having a non-square shape. According to one embodiment of the present disclosure, the shape and size of the reference coding unit may be determined according to various data units (e.g., sequence, picture, slice, slice segment, tile, tile group, maximum coding unit, etc.) that may include at least one reference coding unit.
[0203] According to one embodiment of the present disclosure, the bitstream acquisition unit (110) of the image decoding device (100) can acquire at least one of information on the shape of the reference coding unit and information on the size of the reference coding unit from the bitstream for each of the various data units. The process of determining at least one coding unit included in the square-shaped reference coding unit (1500) has been described above through the process of splitting the current coding unit (300) of FIG. 3, and the process of determining at least one coding unit included in the non-square-shaped reference coding unit (1502) has been described above through the process of splitting the current coding unit (400 or 450) of FIG. 4, so a detailed description thereof will be omitted.
[0204] According to one embodiment of the present disclosure, the image decoding device (100) may use an index for identifying the size and shape of the reference coding unit in order to determine the size and shape of the reference coding unit according to some data units that are predetermined based on a predetermined condition. That is, the bitstream acquisition unit (110) may acquire only an index for identifying the size and shape of the reference coding unit for each slice, slice segment, tile, tile group, maximum coding unit, etc., among the various data units (e.g., sequences, pictures, slices, slice segments, tiles, tile groups, maximum coding units, etc.) that satisfy a predetermined condition (e.g., data units having a size smaller than a slice) from the bitstream. The image decoding device (100) may determine the size and shape of the reference data unit for each data unit that satisfies the predetermined condition by using the index. When information about the shape of the reference coding unit and information about the size of the reference coding unit are obtained from the bitstream for each relatively small-sized data unit and used, the efficiency of the bitstream may not be good. Therefore, instead of directly obtaining information about the shape of the reference coding unit and information about the size of the reference coding unit, only the index may be obtained and used. In this case, at least one of the size and shape of the reference coding unit corresponding to the index indicating the size and shape of the reference coding unit may be determined in advance. That is, the image decoding device (100) can determine at least one of the size and shape of the reference coding unit included in the data unit that serves as the basis for obtaining the index by selecting at least one of the sizes and shapes of the predetermined reference coding units according to the index.
[0205] According to one embodiment of the present disclosure, the image decoding device (100) may use at least one reference coding unit included in one maximum coding unit (1510). That is, the maximum coding unit (1510) for dividing an image may include at least one reference coding unit, and the coding unit may be determined through a recursive splitting process of each reference coding unit. According to one embodiment of the present disclosure, at least one of the width and the height of the maximum coding unit (1510) may correspond to an integer multiple of at least one of the width and the height of the reference coding unit. According to one embodiment of the present disclosure, the size of the reference coding unit may be a size obtained by splitting the maximum coding unit (1510) n times according to a quad tree structure. That is, the image decoding device (100) may determine the reference coding unit by splitting the maximum coding unit (1510) n times according to the quad tree structure, and may split the reference coding unit based on at least one of block shape information and split shape mode information according to one embodiment of the present disclosure.
[0206] According to one embodiment of the present disclosure, the video decoding device (100) can obtain and use block shape information indicating the shape of a current encoding unit or split shape mode information indicating a method of splitting the current encoding unit from a bitstream. The split shape mode information may be included in a bitstream related to various data units. For example, the video decoding device (100) can use split shape mode information included in a sequence parameter set, a picture parameter set, a video parameter set, a slice header, a slice segment header, a tile header, and a tile group header. Furthermore, the video decoding device (100) can obtain and use a syntax element corresponding to block shape information or split shape mode information from the bitstream for each maximum encoding unit and each reference encoding unit.
[0207] Hereinafter, a method for determining a partitioning rule according to one embodiment of the present disclosure will be described in detail.
[0208] The video decoding device (100) can determine a segmentation rule of the video. The segmentation rule may be predetermined between the video decoding device (100) and the video encoding device (200). The video decoding device (100) can determine the segmentation rule of the video based on information obtained from a bitstream. The video decoding device (100) can determine the segmentation rule based on information obtained from at least one of a sequence parameter set, a picture parameter set, a video parameter set, a slice header, a slice segment header, a tile header, and a tile group header. The video decoding device (100) can determine the segmentation rule differently according to a frame, a slice, a tile, a temporal layer, a maximum coding unit, or an coding unit.
[0209] The image decoding device (100) can determine a segmentation rule based on the block shape of the encoding unit. The block shape can include the size, shape, width and height ratio, and direction of the encoding unit. The image encoding device (200) and the image decoding device (100) can determine in advance that the segmentation rule will be determined based on the block shape of the encoding unit. However, the present invention is not limited thereto. The image decoding device (100) can determine the segmentation rule based on information obtained from the bitstream received from the image encoding device (200).
[0210] The shape of the encoding unit may include a square and a non-square shape. If the width and height of the encoding unit are equal, the image decoding device (100) may determine the shape of the encoding unit as a square. In addition, if the width and height of the encoding unit are not equal, the image decoding device (100) may determine the shape of the encoding unit as a non-square shape.
[0211] The size of the coding unit may include various sizes such as 4x4, 8x4, 4x8, 8x8, 16x4, 16x8, ..., 256x256. The size of the coding unit may be classified according to the length of the long side, the length of the short side, or the area of the coding unit. The image decoding device (100) may apply the same splitting rule to the coding units classified into the same group. For example, the image decoding device (100) may classify the coding units having the same long side length into the same size. In addition, the image decoding device (100) may apply the same splitting rule to the coding units having the same long side length.
[0212] The ratio of the width to the height of the coding unit may include 1:2, 2:1, 1:4, 4:1, 1:8, 8:1, 1:16, 16:1, 32:1, or 1:32, etc. In addition, the direction of the coding unit may include a horizontal direction and a vertical direction. The horizontal direction may indicate a case where the length of the width of the coding unit is longer than the length of the height. The vertical direction may indicate a case where the length of the width of the coding unit is shorter than the length of the height.
[0213] The image decoding device (100) can adaptively determine a splitting rule based on the size of the encoding unit. The image decoding device (100) can determine a different allowable splitting mode based on the size of the encoding unit. For example, the image decoding device (100) can determine whether splitting is allowed based on the size of the encoding unit. The image decoding device (100) can determine a splitting direction based on the size of the encoding unit. The image decoding device (100) can determine an allowable splitting type based on the size of the encoding unit.
[0214] Determining the splitting rule based on the size of the encoding unit may be a splitting rule predetermined between the image encoding device (200) and the image decoding device (100). In addition, the image decoding device (100) may determine the splitting rule based on information obtained from the bitstream.
[0215] The image decoding device (100) can adaptively determine a segmentation rule based on the position of the encoding unit. The image decoding device (100) can adaptively determine a segmentation rule based on the position that the encoding unit occupies in the image.
[0216] Additionally, the image decoding device (100) can determine a splitting rule so that encoding units generated through different splitting paths do not have the same block shape. However, this is not limited thereto, and encoding units generated through different splitting paths may have the same block shape. Encoding units generated through different splitting paths may have different decoding processing orders. Since the decoding processing order has been described together with FIG. 12, a detailed description thereof will be omitted.
[0217] FIG. 16 illustrates encoding units that can be determined for each picture when the combination of forms into which encoding units can be divided is different for each picture according to one embodiment of the present disclosure.
[0218] Referring to FIG. 16, the image decoding device (100) can determine a different combination of partitioning shapes into which encoding units can be partitioned for each picture. For example, the image decoding device (100) can decode an image using a picture (1600) that can be partitioned into four encoding units, a picture (1610) that can be partitioned into two or four encoding units, and a picture (1620) that can be partitioned into two, three, or four encoding units, among at least one picture included in the image. The image decoding device (100) can only use partitioning shape information indicating that the picture (1600) is partitioned into four square encoding units to partition the picture (1600) into a plurality of encoding units. The image decoding device (100) can only use partitioning shape information indicating that the picture (1610) is partitioned into two or four encoding units to partition the picture. The video decoding device (100) can only use the segmentation type information indicating that the picture (1620) is segmented into two, three, or four encoding units. The above-described combination of segmentation types is merely an example for explaining the operation of the video decoding device (100), and therefore the above-described combination of segmentation types should not be interpreted as being limited to the above-described example, but should be interpreted as being capable of using various combinations of segmentation types for each predetermined data unit.
[0219] According to one embodiment of the present disclosure, the bitstream acquisition unit (110) of the image decoding device (100) can acquire a bitstream including an index indicating a combination of segmentation type information for each predetermined data unit (e.g., a sequence, a picture, a slice, a slice segment, a tile, a tile group, etc.). For example, the bitstream acquisition unit (110) can acquire an index indicating a combination of segmentation type information from a sequence parameter set, a picture parameter set, a slice header, a tile header, or a tile group header. The image decoding device (100) can determine a combination of segmentation types by which an encoding unit can be divided for each predetermined data unit using the acquired index, and thus can use different combinations of segmentation types for each predetermined data unit.
[0220] FIG. 17 illustrates various forms of encoding units that can be determined based on segmentation mode information that can be expressed in binary code according to one embodiment of the present disclosure.
[0221] According to one embodiment of the present disclosure, the image decoding device (100) can split an encoding unit into various shapes using block shape information and split shape mode information acquired through the bitstream acquisition unit (110). The shapes of the encoding unit that can be split may correspond to various shapes including the shapes described through the above-described embodiments.
[0222] Referring to FIG. 17, the image decoding device (100) can split a square-shaped encoding unit in at least one of the horizontal direction and the vertical direction based on the split shape mode information, and can split a non-square-shaped encoding unit in the horizontal direction or the vertical direction.
[0223] According to one embodiment of the present disclosure, when the image decoding device (100) can divide a square-shaped encoding unit into four square encoding units by horizontally and vertically splitting the encoding unit, there may be four types of splitting modes that the splitting mode information for the square encoding unit can indicate. According to one embodiment of the present disclosure, the splitting mode information may be expressed as a two-digit binary code, and a binary code may be assigned to each splitting mode. For example, when the encoding unit is not split, the splitting mode information may be expressed as (00)b, when the encoding unit is split in the horizontal direction and the vertical direction, the splitting mode information may be expressed as (01)b, when the encoding unit is split in the horizontal direction, the splitting mode information may be expressed as (10)b, and when the encoding unit is split in the vertical direction, the splitting mode information may be expressed as (11)b.
[0224] According to one embodiment of the present disclosure, when the image decoding device (100) splits a non-square coding unit in a horizontal direction or a vertical direction, the type of split shape that the split shape mode information can indicate may be determined depending on the number of coding units into which the coding unit is split. Referring to FIG. 17, the image decoding device (100) may split a non-square coding unit into up to three according to one embodiment of the present disclosure. The image decoding device (100) may split the coding unit into two coding units, in which case the split shape mode information may be expressed as (10)b. The image decoding device (100) may split the coding unit into three coding units, in which case the split shape mode information may be expressed as (11)b. The image decoding device (100) may determine not to split the coding unit, in which case the split shape mode information may be expressed as (0)b. That is, the image decoding device (100) can use variable length coding (VLC) rather than fixed length coding (FLC) to use a binary code representing segmentation mode information.
[0225] According to one embodiment of the present disclosure, referring to FIG. 17, the binary code of the partition shape mode information indicating that the coding unit is not split may be expressed as (0)b. If the binary code of the partition shape mode information indicating that the coding unit is not split is set to (00)b, all binary codes of the 2-bit partition shape mode information must be used even if there is no partition shape mode information set to (01)b. However, as illustrated in FIG. 17, if three partition shapes for a non-square coding unit are used, the image decoding device (100) can determine that the coding unit is not split even if it uses a 1-bit binary code (0)b as the partition shape mode information, and thus can efficiently use the bitstream. However, the division form of the non-square-shaped encoding unit indicated by the division form mode information should not be interpreted as being limited to only the three forms illustrated in FIG. 17, but should be interpreted as various forms including the embodiments described above.
[0226] FIG. 18 illustrates another form of a coding unit that can be determined based on segmentation mode information that can be expressed in binary code according to one embodiment of the present disclosure.
[0227] Referring to FIG. 18, the image decoding device (100) can split a square-shaped encoding unit in the horizontal direction or the vertical direction based on the split shape mode information, and can split a non-square-shaped encoding unit in the horizontal direction or the vertical direction. That is, the split shape mode information can indicate that a square-shaped encoding unit is split in one direction. In this case, the binary code of the split shape mode information indicating that a square-shaped encoding unit is not split can be expressed as (0)b. If the binary code of the split shape mode information indicating that the encoding unit is not split is set to (00)b, all binary codes of the 2-bit split shape mode information must be used even though there is no split shape mode information set to (01)b. However, as illustrated in FIG. 18, if three types of division forms for a square-shaped encoding unit are used, the image decoding device (100) can determine that the encoding unit is not divided even if it uses a 1-bit binary code (0)b as the division form mode information, and thus can efficiently use the bitstream. However, the division forms of the square-shaped encoding unit indicated by the division form mode information should not be interpreted as being limited to only the three types illustrated in FIG. 18, but should be interpreted as various types including the embodiments described above.
[0228] According to one embodiment of the present disclosure, block shape information or segmentation shape mode information can be expressed using binary code, and such information can be directly generated as a bitstream. In addition, block shape information or segmentation shape mode information that can be expressed using binary code may not be directly generated as a bitstream, but may be used as a binary code input in CABAC (context adaptive binary arithmetic coding).
[0229] According to one embodiment of the present disclosure, a video decoding device (100) describes a process of obtaining syntax for block shape information or segmentation shape mode information through CABAC. A bitstream including a binary code for the syntax can be obtained through a bitstream obtaining unit (110). The video decoding device (100) can detect a syntax element indicating block shape information or segmentation shape mode information by de-binarizing a bin string included in the obtained bitstream. According to one embodiment of the present disclosure, the video decoding device (100) can obtain a set of binary bin strings corresponding to syntax elements to be decoded, and decode each bin using probability information, and the video decoding device (100) can repeat the process until a bin string composed of the decoded bins becomes equal to one of the previously obtained bin strings. The image decoding device (100) can determine syntax elements by performing inverse binarization of an empty string.
[0230] According to one embodiment of the present disclosure, the image decoding device (100) may perform a decoding process of adaptive binary arithmetic coding to determine a syntax for a bin string, and the image decoding device (100) may update a probability model for bins acquired through the bitstream acquisition unit (110). In one embodiment, the bitstream acquisition unit (110) of the image decoding device (100) may acquire a bitstream representing a binary code representing segmentation mode information according to one embodiment of the present disclosure. Using the acquired binary code having a size of 1 or 2 bits, the image decoding device (100) may determine a syntax for the segmentation mode information. In order to determine the syntax for the segmentation mode information, the image decoding device (100) may update a probability for each bit of the 2-bit binary code. That is, the image decoding device (100) can update the probability of having a value of 0 or 1 when decoding the next bin, depending on whether the value of the first bin among the 2-bit binary codes is 0 or 1.
[0231] According to one embodiment of the present disclosure, the image decoding device (100) can, in the process of determining a syntax, update the probability for bins used in the process of decoding bins of an empty string for the syntax, and the image decoding device (100) can determine that certain bits among the empty strings have the same probability without updating the probability.
[0232] In one embodiment, in the process of determining the syntax using an empty string indicating the partition shape mode information for a non-square coding unit, the image decoding device (100) may determine the syntax for the partition shape mode information using one bin having a value of 0 when the non-square coding unit is not divided. That is, when the block shape information indicates that the current coding unit is a non-square shape, the first bin of the empty string for the partition shape mode information may be 0 when the non-square coding unit is not divided, and may be 1 when it is divided into two or three coding units. Accordingly, the probability that the first bin of the empty string of the partition shape mode information for the non-square coding unit is 0 may be 1 / 3, and the probability that it is 1 may be 2 / 3. As described above, the image decoding device (100) can only express a 1-bit empty string having a value of 0 for the partition shape mode information indicating that a non-square-shaped encoding unit is not partitioned, so the image decoding device (100) can determine the syntax for the partition shape mode information by determining whether the second bin is 0 or 1 only when the first bin of the partition shape mode information is 1. According to one embodiment of the present disclosure, when the first bin for the partition shape mode information is 1, the image decoding device (100) can decode the bin by considering that the probability that the second bin is 0 or 1 is the same probability.
[0233] According to one embodiment of the present disclosure, the image decoding device (100) may utilize various probabilities for each bin in the process of determining a bin of a bin string for the partition shape mode information. According to one embodiment of the present disclosure, the image decoding device (100) may determine the probability of a bin for the partition shape mode information differently depending on the direction of a non-square block. According to one embodiment of the present disclosure, the image decoding device (100) may determine the probability of a bin for the partition shape mode information differently depending on the area or the length of the long side of the current encoding unit. According to one embodiment of the present disclosure, the image decoding device (100) may determine the probability of a bin for the partition shape mode information differently depending on at least one of the shape and the length of the long side of the current encoding unit.
[0234] According to one embodiment of the present disclosure, the image decoding device (100) may determine that the bin probability for the partition shape mode information is the same for encoding units of a predetermined size or larger. For example, the bin probability for the partition shape mode information may be determined to be the same for encoding units of a size of 64 samples or larger based on the length of the long side of the encoding unit.
[0235] According to one embodiment of the present disclosure, the image decoding device (100) may determine the initial probability for bins constituting the empty string of the segmentation shape mode information based on the slice type (e.g., I slice, P slice, or B slice).
[0236] Figure 19 is a block diagram of an image encoding and decoding system that performs loop filtering.
[0237] The encoding unit (1910) of the image encoding and decoding system (1900) transmits an encoded bitstream of an image, and the decoding unit (1950) receives the bitstream and decodes it to output a restored image. Here, the encoding unit (1910) may have a configuration similar to that of the image encoding device (200) described below, and the decoding unit (1950) may have a configuration similar to that of the image decoding device (100).
[0238] In the encoding unit (1910), the prediction encoding unit (1915) outputs prediction data through inter prediction and intra prediction, and the transformation and quantization unit (1920) outputs quantized transformed coefficients (or quantized coefficients) of residual data between the prediction data and the current input image. For example, the transform coefficients may be generated using a transform kernel including at least one of a Discrete Cosine Transform (DCT), a Discrete Sine Transform (DST), a Hadamard transform, a Karhunen-Loeve Transform (KLT), or a Wavelet Transform. The residual data may have information compressed by performing the transformation. For example, the residual data may be expressed using a small number of frequencies by performing the transformation. In one embodiment, the transform and quantization unit (1920) may omit transforming the residual data between the prediction data and the current input image. For example, if the distribution of the residual data makes it inefficient to perform transform, the transform process for the residual data may be omitted and the quantization process may be performed. In one embodiment, whether transform is omitted (or whether transform is performed) may be transmitted to the decoding unit (1950) through the bitstream. The entropy encoding unit (1925) encodes and transforms the quantized transform coefficients and outputs them as a bitstream. The quantized transform coefficients may be restored to data in the spatial domain through the inverse quantization and inverse transform unit (1930). The inverse quantization and inverse transform unit (1930) may perform inverse quantization on the quantized transform coefficients and apply a transform kernel to determine the residual data. In one embodiment, the inverse quantization and inverse transform unit (1930) may not perform inverse transform.For example, if transformation on residual data is omitted, the inverse quantization and inverse transformation unit (1930) may not perform inverse transformation. The inverse quantization and inverse transformation unit (1930) may determine residual data by performing inverse quantization on quantized transform coefficients. The data of the restored spatial domain is output as a restored image through the deblocking filtering unit (1935) and the loop filtering unit (1940). The restored image may be used as a reference image for the next input image through the predictive encoding unit (1915).
[0239] The encoded image data among the bitstreams received by the decoding unit (1950) is restored to residual data in the spatial domain through the entropy decoding unit (1955) and the inverse quantization and inverse transformation unit (1960). The prediction data and residual data output from the prediction decoding unit (1975) are combined to form image data in the spatial domain, and the deblocking filtering unit (1965) and the loop filtering unit (1970) can perform filtering on the image data in the spatial domain to output a restored image for the current original image. The restored image can be used as a reference image for the next original image by the prediction decoding unit (1975).
[0240] The loop filtering unit (1940) of the encoding unit (1910) performs loop filtering using filter information input according to user input or system settings. The filter information used by the loop filtering unit (1940) is output to the entropy encoding unit (1925) and transmitted to the decoding unit (1950) together with the encoded image data. The loop filtering unit (1970) of the decoding unit (1950) can perform loop filtering based on the filter information input from the decoding unit (1950).
[0241] FIG. 20 is a block diagram showing the configuration of an image decoding device according to one embodiment of the present disclosure.
[0242] Referring to FIG. 20, the image decoding device (2000) may include a processor (2010) and a memory (2020).
[0243] In one embodiment of the present disclosure, the processor (2010) may include processing circuitry and / or multiple processors. For example, the processor (2010) may include various processing circuitry, including at least one processor, wherein one or more of the at least one processor may be configured to individually and / or collectively perform various functions described in the present disclosure in a distributed manner.
[0244] In one embodiment of the present disclosure, the memory (2020) may include one or more storage media storing at least one instruction. The processor (2010) may control the image decoding device (2000) by executing the instructions stored in the memory (2020). For example, the processor (2010) may control the image decoding device (2000) to perform operations by individually or collectively executing the instructions stored in the memory (2020). In one embodiment of the present disclosure, the operations performed by the image decoding device (2000) may be operations performed by the processor (2010) of the image decoding device (2000).
[0245] In one embodiment of the present disclosure, the image decoding device (2000) may correspond to the image decoding device (100) illustrated in FIG. 1 and / or the decoding unit (1950) illustrated in FIG. 19.
[0246] The image decoding device (2000) can obtain a bitstream generated as a result of encoding an image. The bitstream can include an encoding result for a current block. In one embodiment of the present disclosure, the image decoding device (2000) can receive the bitstream from the image encoding device through a network. In one embodiment of the present disclosure, the image decoding device (2000) can obtain the bitstream from a data storage medium including at least one of a magnetic medium such as a hard disk, a floppy disk, and a magnetic tape, an optical recording medium such as a CD-ROM and a DVD, or a magneto-optical medium such as a floptical disk.
[0247] The video decoding device (2000) can obtain syntax elements for decoding the video from the bitstream. The values corresponding to the syntax elements can be included in the bitstream according to the hierarchical structure of the video. In one embodiment of the present disclosure, the video decoding device (2000) can obtain the syntax elements by entropy decoding the bins included in the bitstream.
[0248] In one embodiment of the present disclosure, a bitstream may include information about a prediction mode of a current block in a current image. The current block may include at least one of a maximum coding unit, an encoding unit, a transformation unit, or a prediction unit segmented from a current image to be decoded. In one embodiment of the present disclosure, the prediction mode of the current block may include at least one of an intra mode, an inter mode, a combined mode, a geometric partitioning mode, a block copy mode, or a template matching prediction mode.
[0249] In one embodiment of the present disclosure, the intra mode may include a non-directional Planar mode of number 0 (or Intra_Planar mode), a non-directional DC mode of number 1 (or Intra_DC mode), and directional Angular modes of number 2 to 66 (or Intra-directional mode) (e.g., (Intra_Angular2... Intra_Angular66). In one embodiment of the present disclosure, the intra-planar mode may mean a mode that determines a prediction sample based on a weighted average value according to the distance of a left reference sample, an upper reference sample, a lower-left sample, and an upper-right sample of the current block. In one embodiment of the present disclosure, the intra-DC mode may mean a mode that determines an average value of reference samples as a prediction sample. In one embodiment of the present disclosure, in the intra-directional modes, the positions of reference samples for generating prediction samples of samples in the current block may be identified in consideration of the direction indicated by the intra-directional modes. For example, in mode 34, the position of reference samples may be identified at 45 degrees to the upper left with respect to the samples in the current block. Reference samples located in the direction can be identified. In one embodiment of the present disclosure, the intra mode can include Wide-Angular modes (Intra_Wide_Angular) of -14 to -1 and 67 to 80. The Wide-Angular modes can be used to identify reference samples of samples in a non-square current block. In one embodiment of the present disclosure, the image decoding apparatus (2000) can determine one of the Wide-Angular modes as an intra prediction mode of the non-square current block. The image decoding apparatus (2000) can determine the Wide-Angular mode based on the width and height of the current block. If the width of the current block is greater than the height, the image decoding apparatus (2000) can replace the lower-left directional mode with the upper-right extended directional mode.For example, the video decoding device (2000) can replace the index value "predModeIntra" of the intra prediction mode that is greater than or equal to 2 and less than or equal to a predetermined value with "predModeIntra + 65". If the height of the current block is greater than the width, the video decoding device (2000) can replace the upper-right directional mode with the lower-left extended directional mode. For example, the video decoding device (2000) can replace the index value "predModeIntra" of the intra prediction mode that is greater than or equal to a predetermined value and less than or equal to 66 with "predModeIntra - 67". The number and types of intra prediction modes that can be used in the intra mode by the video decoding device (2000) according to an embodiment of the present disclosure can be set in various ways. For example, the image decoding device (2000) can determine the Wide-Angular mode using a predetermined method according to the ratio of the height and width of the block (e.g., 16, 8, 4, 2, 1 / 2, 1 / 4, 1 / 8, or 1 / 16).
[0250] In one embodiment of the present disclosure, the video decoding device (2000) can determine an intra prediction mode using MPM (most probable modes). The video decoding device (2000) can determine whether to use MPM. The video decoding device (2000) can obtain information related to whether to use MPM from a bitstream. When using MPM, the video decoding device (2000) can determine an MPM list. In one embodiment of the present disclosure, the video decoding device (2000) can determine the MPM list using neighboring blocks of the current block. The video decoding device (2000) can determine the MPM list based on the intra mode of the upper block of the current block and the intra mode of the left block. If the neighboring blocks of the current block are not available (for example, if the intra prediction mode of the neighboring blocks is not determined), the intra prediction mode of the unavailable neighboring blocks can be set to a predetermined mode (for example, the Planar mode). The video decoding device (2000) can determine one of the MPM lists as the intra prediction mode of the current block. The video decoding device (2000) can obtain information (e.g., index information) indicating the intra prediction mode of the current block from the MPM list from the bitstream.
[0251] In one embodiment of the present disclosure, the video decoding device (2000) may determine an intra prediction mode using a template. The video decoding device (2000) may determine a template of a current block. The template of the current block may include a left sample, an upper left sample, and / or an upper sample of the current block. The video decoding device (2000) may determine surrounding samples of the template of the current block. The surrounding samples of the template may include a left sample, an upper left sample, and / or an upper sample of the template. The video decoding device (2000) may perform prediction on the template using the surrounding samples of the template as reference samples. In one embodiment of the present disclosure, a process in which the video decoding device (2000) determines an intra prediction mode by performing prediction on the template may be referred to as template-based intra mode derivation (TIMD).
[0252] In one embodiment of the present disclosure, the image decoding device (2000) can infer an intra prediction mode of the current block using surrounding samples of the current block. The image decoding device (2000) can determine a slope using surrounding samples of the current block. The image decoding device (2000) can determine a plurality of 3 x 3 blocks adjacent to the current block. The image decoding device (2000) can obtain horizontal variations and vertical variations of samples included in each of the determined 3 x 3 blocks. The image decoding device (2000) can determine a slope based on the horizontal variations and the vertical variations. The image decoding device (2000) can determine the horizontal variations and the vertical variations using a Sobel filter. The image decoding device (2000) can determine an intra prediction mode corresponding to the slope. The video decoding device (2000) can determine the intra prediction mode of the current block based on a plurality of intra prediction modes determined for a plurality of 3 x 3 blocks. In one embodiment of the present disclosure, the video decoding device (2000) can determine the intra prediction mode that is determined most frequently as the intra prediction mode of the current block. In one embodiment of the present disclosure, the video decoding device (2000) can determine the amplitude based on horizontal variation and vertical variation. The video decoding device (2000) can determine the intra prediction mode of the current block based on the amplitude. The video decoding device (2000) can determine the weight of the intra prediction mode corresponding to the slope as the amplitude. For example, the video decoding device (2000) can increase the weight of the intra prediction mode determined based on the slope as the horizontal variation and vertical variation increase. The video decoding device (2000) can determine the intra prediction mode of the current block based on a result reflecting a weight determined according to the size.In one embodiment of the present disclosure, the process by which the image decoding device (2000) determines an intra prediction mode based on a slope may be referred to as decoder side intra mode derivation (DIMD).
[0253] In one embodiment of the present disclosure, the block copy mode may include an intra block copy mode. In one embodiment, the block copy mode may include an intra block copy mode. In one embodiment, the intra block copy mode may be a sub-mode of the intra mode, but is not limited thereto, and may represent a mode separate from the intra mode. In one embodiment, the template matching prediction mode may include a template matching intra prediction mode. The combined mode may include a Combined Inter-Intra Prediction (CIIP) mode that performs prediction by combining prediction according to the intra mode and prediction according to the inter mode. The geometric partitioning mode may include a mode that partitions to include directionality within a block. The geometric partitioning mode may perform prediction using inter prediction or intra prediction for each of the divided regions that are blocked.
[0254] The video decoding device (2000) can restore the current block by performing prediction according to the prediction mode for the current block according to the prediction mode of the current block.
[0255] In one embodiment of the present disclosure, the image decoding device (2000) can obtain information regarding the prediction mode of the current block from the bitstream. For example, the image decoding device (2000) can obtain index information indicating the prediction mode of the current block from the bitstream.
[0256] In one embodiment of the present disclosure, when the prediction mode of the current block is the CIIP mode, the video decoding device (2000) can reconstruct the current block by combining inter prediction and intra prediction. For example, the video decoding device (2000) can perform intra prediction according to the planar mode. For example, the video decoding device (2000) can perform inter prediction using a motion vector (MV). The video decoding device (2000) can reconstruct the current block using a weighted sum of a prediction block according to inter prediction and a prediction block according to intra prediction. The weight can be determined based on whether a block adjacent to the current block has been intra-predicted. In one embodiment of the present disclosure, the motion vector can be expressed as a block vector.
[0257] In one embodiment of the present disclosure, when the prediction mode of the current block is a geometric segmentation mode, the image decoding device (2000) can perform prediction by segmenting the current block. The image decoding device (2000) can obtain a segmentation angle and a segmentation distance for a boundary at which segmentation is performed within the current block. The image decoding device (2000) can segment the current block based on the segmentation angle and the segmentation distance. The image decoding device (2000) can reconstruct the current block by performing inter prediction or intra prediction on each of the segmented regions within the current block. The image decoding device (2000) can (i) perform intra prediction on both segmented regions, (ii) perform inter prediction on one region and intra prediction on the other region, or (iii) perform inter prediction on both segmented regions.
[0258] In one embodiment of the present disclosure, when the prediction mode of the current block is block copy mode, the image decoding device (2000) can reconstruct the current block based on a reference block included in the current image. In one embodiment of the present disclosure, when the prediction mode of the current block is block copy mode, the image decoding device (2000) can determine information about a block vector (BV) representing the reference block included in the current image. In one embodiment of the present disclosure, the image decoding device (2000) can determine a prediction block based on the reference block. For example, the image decoding device (2000) can determine a prediction block that is identical to the reference block or by performing filtering on the reference block. In one embodiment of the present disclosure, the block vector can be expressed as a motion vector.
[0259] In one embodiment of the present disclosure, when the prediction mode of the current block is the template matching prediction mode, the image decoding device (2000) can reconstruct the current block using a reference block. The image decoding device (2000) can obtain information related to whether the template matching prediction mode is used. The image decoding device (2000) can determine whether the template matching prediction mode is used based on the obtained information. The reference block can be determined based on at least one of a region included in the current image or a region included in a previously decoded image. In one embodiment of the present disclosure, the image decoding device (2000) can determine the reference block using a cost function. The cost function can include at least one of a sum of absolute difference (SAD), a sum of squared difference (SSD), a sum of absolute transformed difference (SATD), a sum of squared error (SSE), or a mean removed SAD (MR-SAD). For example, the image decoding device (2000) can determine the error between templates using at least one cost function among SAD, SATD, SSE, and MR-SAD. When the cost function is SAD, the image decoding device (2000) can determine the error based on the sum of the absolute values of the differences between each sample of the template of the current block and each sample of the template of the candidate block. When the cost function is SSD, the image decoding device (2000) can determine the error based on the sum of the squares of the differences between each sample of the template of the current block and each sample of the template of the candidate block. The cost function may include a function representing the number of identical samples. The image decoding device (2000) can determine a block with a small error among the candidate blocks as a reference block.The video decoding device (2000) can determine a prediction block by performing template matching intra prediction on the current image. In the present disclosure, the process of determining a reference block for the current block using a template may be referred to as template matching (TM). In the present disclosure, performing prediction on the current block based on template matching may be referred to as template matching prediction (TMP) or intra template matching prediction (Intra Template Matching Prediction).
[0260] In one embodiment of the present disclosure, the image decoding device (2000) can restore (or predict) the current block using a Matrix-based Intra Prediction (MIP) mode.
[0261] The image decoding device (2000) may determine a left boundary sample and an upper boundary sample using the left reference sample and the upper reference sample of the current block. In one embodiment of the present disclosure, the image decoding device (2000) may determine the average of the left reference samples as the left boundary sample, and may determine the average of the upper reference samples as the upper boundary sample. For example, one left boundary sample may be determined as the average of a plurality of left reference samples, and one upper boundary sample may be determined as the average of a plurality of upper reference samples. In one embodiment of the present disclosure, the number of left boundary samples and the number of upper boundary samples may be determined based on the size and shape of the current block. The image decoding device (2000) may determine a boundary vector using the left boundary sample and the upper boundary sample. In one embodiment of the present disclosure, the boundary vector may mean a one-dimensional vector including both the left boundary sample and the upper boundary sample. For example, if the current block is a 4 x 4 block, the number of left boundary samples and the number of upper boundary samples are each 2, and the boundary vector may be a vector including 4 samples. Also, for example, if the current block is not a 4 x 4 block, the boundary vector may be a vector including 8 samples. The image decoding apparatus (2000) may determine at least one of a matrix or an offset vector based on at least one of a width, a height, or an intra prediction mode of the current block. In one embodiment of the present disclosure, the intra prediction mode may be referred to as a matrix index. The image decoding apparatus (2000) may predict some samples of the current block using the matrix, the offset vector, and the boundary vector. The image decoding apparatus (2000) may predict the remaining samples of the current block using the samples predicted using the matrix and the boundary vector, the left reference sample, and the upper boundary sample.In one embodiment of the present disclosure, the image decoding device (2000) can obtain the remaining samples by performing interpolation in the vertical and horizontal directions. The image decoding device (2000) can obtain vertical samples of the prediction sample by performing vertical interpolation on the prediction sample and the upper boundary sample. The image decoding device (2000) can obtain the remaining samples by performing horizontal interpolation using the left reference sample, the prediction sample, and the vertical samples obtained by interpolation.
[0262] The video decoding device (2000) can generate a reconstructed current block using a prediction block. In one embodiment of the present disclosure, the video decoding device (2000) can determine the prediction block as the reconstructed current block. In one embodiment of the present disclosure, the video decoding device (2000) can generate a reconstructed current block by combining the prediction block with residual data obtained from a bitstream by the video decoding device (2000). The reconstructed current block can be used as a reference block for the next block.
[0263] In one embodiment, the image decoding apparatus (2000) can obtain residual data from a bitstream. The residual data can include information about the difference between an original image (or an original sample) and a predicted image (or a predicted sample). In one embodiment, the image decoding apparatus (2000) can obtain a transform coefficient of a residual block corresponding to a transform unit from the bitstream. In one embodiment, the image decoding apparatus (2000) can obtain a residual sample of the residual block based on the transform coefficient of the residual block. For example, the image decoding apparatus (2000) can obtain a residual sample of the residual block by performing at least one of inverse quantization or inverse transformation on the transform coefficient of the residual block. In one embodiment, the image decoding apparatus (2000) can determine a residual sample of the coding unit using at least a portion of a portion of the residual samples of the residual block. The image decoding device (2000) may determine some of the residual samples of the residual block as residual samples of the coding unit when the size of the residual block is larger than the size of the transformation unit. Alternatively, the image decoding device (2000) may determine some of the residual samples of the residual block on which filtering has been performed as residual samples of the coding unit. The image decoding device (2000) may reconstruct the samples of the coding unit based on the residual samples of the coding unit.
[0264] In a prediction mode (e.g., intra mode) that uses reference samples included in a current image, a prediction block of the current block can be generated based on the surrounding samples of the current block according to the prediction mode, assuming that there will be continuity between the surrounding samples of the current block and the samples within the current block. An image decoding apparatus (2000) according to an embodiment of the present disclosure can use not only the surrounding samples of the current block included in the current image but also the spatial reference samples included in the current image for intra prediction. When using samples reconstructed before the current block, the size of residual data can be reduced by predicting the samples of the current block using not only the samples immediately adjacent to the current block but also samples far from the current block. In an embodiment of the present disclosure, the image decoding apparatus (2000) performs intra prediction using a reference block including unreconstructed samples, thereby increasing the range of an area that can be determined as a reference block. An image decoding apparatus (2000) according to an embodiment of the present disclosure can improve compression efficiency by increasing the efficiency of intra prediction.
[0265] In a prediction mode (e.g., inter mode) that utilizes reference samples included in a reference image rather than the current image, a prediction block of the current block can be generated based on a reference block (or reference sample) of the reference image according to the prediction mode, under the assumption that there will be continuity between the current image and the reference image. An image decoding apparatus (2000) according to an embodiment of the present disclosure can improve compression efficiency by increasing the efficiency of intra prediction.
[0266] The image decoding device (2000) can improve prediction accuracy by considering both a reference block (or reference sample) included in the current image and a reference block (or reference sample) included in an image other than the current image. The image decoding device (2000) according to one embodiment of the present disclosure can improve prediction accuracy by considering both the current image and an image other than the current image.
[0267] The video decoding device (2000) can perform deblocking filtering. The deblocking filter can improve video quality by smoothing edges between blocks.
[0268] The video decoding device (2000) can perform filtering on samples of a current block on which deblocking filtering has been performed using a Sample Adaptive Offset (SAO) filter and / or a Bilateral Filter (BIF). The SAO filter and BIF can improve image quality by reducing the error between the restored image and the original image. The SAO filter and BIF can perform filtering on a sample-by-sample basis.
[0269] The image decoding device (2000) can perform filtering using an adaptive loop filter (ALF). ALF can improve image quality by reducing the error between the restored image and the original image. ALF can perform filtering on a block-by-block basis.
[0270] FIG. 21 is a diagram for explaining a cost function used in an image decoding method according to one embodiment of the present disclosure.
[0271] The video decoding device (2000) may perform processes such as determining a prediction mode or prioritizing various prediction candidates. The video decoding device (2000) may determine a prediction mode or prioritize prediction candidates by measuring a cost. The cost may be measured using prediction samples and reconstructed samples, or may be measured using reconstructed samples of multiple reference blocks. The cost may be referred to as distortion.
[0272] The image decoding device (2000) can determine a cost using a cost function. In one embodiment of the present disclosure, the cost function can include SAD (sum of absolute differences), SATD (sum of absolute transformed differences), MR-SAD (mean removed SAD), and MR-SATD (mean removed SATD).
[0273] When the cost function is SATD, the process involves transforming the sample values of the block into the frequency domain. For example, the transformation may be performed using the Hadamard transform, but is not limited thereto, and the transformation may be performed using a linear transform such as the DCT.
[0274] The Hadamard matrix of 2-point (H2), 4-point (H4), and 8-point (H8) can be expressed as in Equations 1 to 3, and can be continuously expanded in units of 2K.
[0275] [Mathematical Formula 1]
[0276]
[0277] [Equation 2]
[0278]
[0279] [Equation 3]
[0280]
[0281] In one embodiment of the present disclosure, the image decoding device (2000) can perform a Hadamard transform on a one-dimensional vector D regarding the difference between two regions. For example, the result of performing a Hadamard transform on a one-dimensional vector D regarding the difference between two regions can be expressed as in mathematical expression 4.
[0282] [Equation 4]
[0283]
[0284] Here, the SATD cost can be expressed as in mathematical expression 5.
[0285] [Equation 5]
[0286]
[0287] Here, the value of C in mathematical expression 5 can be defined as in mathematical expression 6. If the values of SATD are equal, C can be calculated as 1.
[0288] [Equation 6]
[0289]
[0290] In one embodiment of the present disclosure, the image decoding device (2000) can perform a Hadamard transform on an M x N two-dimensional matrix D regarding the difference between two regions. For example, the result of performing a Hadamard transform on an M x N two-dimensional matrix D regarding the difference between two regions can be expressed as in mathematical expression 7.
[0291] [Equation 7]
[0292]
[0293] Here, the SATD cost can be expressed as in mathematical expression 8.
[0294] [Equation 8]
[0295]
[0296] Here, the value of C in mathematical expression 8 can be defined as in mathematical expression 9. If the values of SATD are equal, C can be calculated as 1.
[0297] [Equation 9]
[0298]
[0299] Referring to Mathematical Expressions 1 to 9, as the size of the region where the transformation is performed increases, the required amount of computation may increase exponentially. Referring to FIG. 21, the size of the region (2110) where the cost is measured may be 64 x 64. When the Admar transformation is performed on the region (2110), the total number of computations including addition operations and absolute value operations may be 528,383. The size of the region (2120) where the cost is measured may be 8 x 8 because 64 x 64 is divided into 64 regions. When the Admar transformation is performed on 64 8 x 8 regions (2120), the total number of computations including addition operations and absolute value operations may be 69,568. The size of the region (2130) where the cost is measured may be 2 x 2 because 64 x 64 is divided into 1024 regions. When the Admar transform is performed on 1024 2 x 2 regions (2120), the total number of operations, including addition operations and absolute value operations, can be 19,456. That is, even if the cost is determined for the same region, the number of operations can be reduced when the cost is determined by dividing it into multiple regions.
[0300] In one embodiment of the present disclosure, the image decoding device (2000) can determine an MR-SAD cost for an M x N two-dimensional matrix D regarding the difference between two regions. For example, the MR-SAD cost for an M x N two-dimensional matrix D regarding the difference between two regions can be expressed as in Equation 10.
[0301] [Equation 10]
[0302]
[0303] Here A ij , B ij represents a sample or pixel of two areas, and m can mean the average of the difference between the two areas. For example, it can be determined as in mathematical expression 11.
[0304] [Equation 11]
[0305]
[0306] In one embodiment of the present disclosure, the image decoding device (2000) can determine the MR-SAD cost by dividing the region. For example, the image decoding device (2000) can divide a 16 x 16 region into 16 4 x 4 regions and determine the MR-SAD cost for the 4 x 4 regions.
[0307] In one embodiment of the present disclosure, the size of the partitioned area may be determined based on the size of the area that determines the cost. For example, when measuring the cost of a 64x64 area, the transformation for the area partitioned into 16x8 may be performed 32 times, and when measuring the cost of an 8x32 area, the transformation for the area partitioned into 8x16 may be performed twice.
[0308] In one embodiment of the present disclosure, the process of dividing a region by an image decoding device (2000) to determine the cost of the region is described below.
[0309] FIG. 22 is a flowchart illustrating an image decoding method according to one embodiment of the present disclosure.
[0310] In one embodiment of the present disclosure, the image decoding method may be performed by the image decoding device (2000). For example, the image decoding device (2000) may perform each step of the image decoding method by having the processor of the image decoding device (2000) execute at least one instruction contained in a memory.
[0311] In step S2210, the image decoding device (2000) can divide a block into multiple sub-blocks.
[0312] In one embodiment of the present disclosure, a block may include a template or a reference block. For example, a block may include at least one of a template of a current block, a template of a reference block, or a reference block. The image decoding device (2000) may determine a cost in various decoding procedures. The image decoding device (2000) may determine a block differently for each decoding procedure. For example, the image decoding device (2000) may determine the template of the current block on which prediction is performed as the block of step S2210 in the template-based intra mode derivation procedure described later in FIG. 23. However, the present invention is not limited thereto, and in the motion vector enhancement procedure, the image decoding device (2000) may determine two reference blocks as the blocks of step S2210. Alternatively, in the intra template matching prediction procedure or the procedure for rearranging the candidate vector list, the image decoding device (2000) may determine the template of the current block and the template of the reference block as the blocks of step S2210.
[0313] In one embodiment of the present disclosure, the image decoding device (2000) may determine the size of a sub-block based on the size of a block. For example, the image decoding device (2000) may determine at least one of the width and height of a sub-block based on at least one of the width and height of a block. The image decoding device (2000) may determine that at least one of the width and height of the block is a multiple of at least one of the width and height of the sub-block. For example, the image decoding device (2000) may determine the size of a sub-block as 8 x 8, 8 x 4, 4 x 8, etc. for a block of 16 x 8.
[0314] In one embodiment of the present disclosure, the image decoding device (2000) can determine the maximum division size of a block. The image decoding device (2000) can obtain information regarding the maximum division size from a bitstream. For example, information regarding the maximum division size can be transmitted through a header of the bitstream. The image decoding device (2000) can determine the size of a subblock to be less than or equal to the maximum division size.
[0315] In one embodiment of the present disclosure, the image decoding device (2000) can determine the number of sub-blocks based on the size of the block. For example, the image decoding device (2000) can determine the number of sub-blocks based on at least one of the width and height of the block. The image decoding device (2000) can obtain a plurality of sub-blocks by dividing the block based on the number of sub-blocks.
[0316] In one embodiment of the present disclosure, all sub-blocks may have the same size. The sub-blocks may have the same height and width. For example, the sub-blocks may all have a size of 4 x 8. However, the present invention is not limited thereto, and the sub-blocks may have the same area. The sub-blocks may have symmetrical widths and heights. For example, the widths and heights of some sub-blocks may have a first value and a second value, and the widths and heights of the remaining sub-blocks may have a second value and a first value. For example, the sub-blocks may have a size of 4 x 8 or 8 x 4.
[0317] In one embodiment of the present disclosure, the image decoding device (2000) can divide two or more blocks into sub-blocks. For example, in a motion vector enhancement procedure, the image decoding device (2000) can divide two reference blocks into sub-blocks, respectively. For example, in an intra-template matching prediction technique, the image decoding device (2000) can divide the template of the current block and the template of the reference block into sub-blocks.
[0318] In step S2220, the image decoding device (2000) can determine a sub-cost corresponding to a sub-block using a sample of the block.
[0319] In one embodiment of the present disclosure, the image decoding device (2000) may determine a sub-cost corresponding to a sub-block using at least one of a prediction sample or a reconstruction sample. For example, in a template-based intra mode derivation procedure, the image decoding device (2000) may determine a sub-cost corresponding to a sub-block using a prediction sample and a reconstruction sample for a sub-block (e.g., a sub-template) partitioned from a template of a current block. For example, in a motion vector enhancement procedure, the image decoding device (2000) may determine a sub-cost corresponding to a sub-block using a reconstruction sample for each of the sub-blocks partitioned from a plurality of reference blocks of the current block. For example, in an intra-template matching prediction procedure or a procedure for rearranging a candidate vector list, the image decoding device (2000) may determine a sub-cost corresponding to a sub-block using a reconstruction sample of a first sub-block partitioned from a template of a current block and a reconstruction sample of a second sub-block partitioned from a template of a reference block.
[0320] In one embodiment of the present disclosure, the sub-cost may be determined using at least one of SATD, MR-SAD, or MR-SATD.
[0321] In one embodiment of the present disclosure, the image decoding device (2000) may determine the cost based on bit depth. For example, the image decoding device (2000) may determine the cost using a predetermined number of bits. For example, the image decoding device (2000) may determine the cost using the upper k bits of the most significant bit (MSB). The image decoding device (2000) may perform a shift based on the bit depth. For example, when the image decoding device (2000) determines the cost using 10 bits of the MSB, the cost may be determined by performing a left shift operation by 2 on an 8-bit MSB value to modify it to 10 bits. For example, when the image decoding device (2000) determines the cost using 10 bits of the MSB, the cost may be determined by performing a right shift operation by 2 on a 12-bit MSB value to modify it to 10 bits. The video decoding device (2000) can perform a rounding operation before performing a right operation.
[0322] In step S2230, the image decoding device (2000) can determine decoding information based on a plurality of sub-costs.
[0323] In one embodiment of the present disclosure, the decoding information may include at least one of an intra prediction mode, an enhanced motion vector, a reordered candidate vector list, and a reference block.
[0324] For example, in a template-based intra mode derivation procedure, the image decoding device (2000) can determine a prediction mode for a current block among a plurality of candidate prediction modes based on a sub-cost.
[0325] For example, in a motion vector enhancement procedure, the image decoding device (2000) can obtain an enhanced motion vector based on a sub-cost.
[0326] For example, in an intra template matching prediction procedure or a procedure for rearranging a candidate vector list, the image decoding device (2000) can determine a reference block of the current block or a rearranged candidate vector list based on the sub-cost.
[0327] FIG. 23 is a diagram illustrating a process of obtaining direction information using template-based intra-mode derivation (TIMD) according to one embodiment of the present disclosure.
[0328] In one embodiment of the present disclosure, an image decoding device (2000) can obtain direction information using template-based intra mode derivation. The image decoding device (2000) can obtain direction information based on a template (2310) and a reference sample (2320).
[0329] Referring to FIG. 23, a current block may have a square or non-square shape with a width of N and a height of M. In one embodiment of the present disclosure, an image decoding device (2000) may obtain a template (2310) of the current block. The template (2310) of the current block may include a left sample, an upper left sample, and / or an upper sample of the current block. The template (3010) of the current block may include an upper template having a width of N, which is the same as that of the current block, and a height of L1, and a left template having a height of M, which is the same as that of the current block, and a width of L2. For example, the template (3010) of the current block may include an upper template having a shape of N x 1, and a left template having a shape of 1 x M. However, the present invention is not limited thereto, and the width of the upper template may be wider than that of the current block, and the height of the left template may also be wider than that of the current block.
[0330] The video decoding device (2000) can determine a reference sample (2320) of the template (2310) of the current block. The reference sample (2320) can include a left sample, an upper left sample, and / or an upper sample of the template. For example, the reference sample (2320) can include 2(L1+M)+1 left reference samples and 2(L2+N)+1 upper reference samples adjacent to the template (2310).
[0331] In one embodiment of the present disclosure, the image decoding device (2000) can perform prediction on the template (2310) of the current block using the reference sample (2320). For example, the image decoding device (2000) can perform prediction on the template (2310) of the current block according to a plurality of directional modes using the reference sample (2320). For example, the image decoding device (2000) can perform prediction on the template (2310) of the current block according to a plurality of predetermined modes using the reference sample (2320).
[0332] In one embodiment of the present disclosure, the image decoding device (2000) can perform prediction on the template (2310) of the current block using a block vector. For example, the image decoding device (2000) can determine the template (2310) of the current block using a template corresponding to one or more block vectors for the current block. In one embodiment of the present disclosure, the image decoding device (2000) can obtain the block vector from at least one of an adjacent area or a non-adjacent area of the current block. For example, the image decoding device (2000) can determine at least one of a block vector used for a block including an adjacent area of the current block or a block vector used for a block including a non-adjacent area as the block vector of the current block. In one embodiment of the present disclosure, the image decoding device (2000) can obtain the block vector using the template (2310) of the current block. For example, the image decoding device (2000) can obtain a block vector corresponding to a template having the smallest difference from the template (2310) of the current block. In one embodiment of the present disclosure, the image decoding device (2000) can modify the obtained block vector. For example, the image decoding device (2000) can perform a strengthening procedure for searching for a template having a small error using the obtained block vector. The image decoding device (2000) can determine a plurality of candidate block vectors based on the obtained block vector. The image decoding device (2000) can obtain a candidate block vector having a template having the smallest difference from the template (2310) of the current block as a modified block vector among the templates corresponding to the plurality of candidate block vectors.
[0333] The image decoding device (2000) can obtain direction information based on a sample predicted by a reference sample (2320) and a reconstructed sample of the template (2310). The image decoding device (2000) can determine a cost based on the sample predicted by the reference sample (2320) and the reconstructed sample of the template (2310). The image decoding device (2000) can obtain direction information based on the cost. For example, the image decoding device (2000) can select a direction mode having the smallest cost between a sample predicted by the reference sample (2320) and a reconstructed sample of the template (2310) among a plurality of directional modes or a plurality of predetermined modes.
[0334] In one embodiment of the present disclosure, the image decoding device (2000) can divide the template (2310) of the current block into a plurality of sub-templates. The image decoding device (2000) can determine a sub-cost for each sub-template. For example, the image decoding device (2000) can determine the sub-cost based on a prediction sample and a reconstruction sample for each sub-template. For example, the image decoding device (2000) can perform a Hadamard transform on the difference between the prediction sample and the reconstruction sample for each sub-template, and determine the sub-cost using the sum of the absolute values of the transformed coefficients.
[0335] Referring to FIGS. 24 to 33, a process of dividing a block into sub-blocks by an image decoding device (2000) according to an embodiment of the present disclosure will be described. For convenience of explanation, a template-based intra-mode derivation procedure is described as an example, but is not limited thereto, and can be used in other procedures for dividing a block into sub-blocks, as described with reference to FIG. 22.
[0336] FIG. 24 is a diagram showing a template of a current block according to one embodiment of the present disclosure.
[0337] The image decoding device (2000) can obtain a template (2420, 2430) of the current block (2410). In one embodiment of the present disclosure, the image decoding device (2000) can obtain the template (2420, 2430) based on the size of the current block (2410).
[0338] The video decoding device (2000) can determine the width of the left template (2420) based on the height of the current block (2410). For example, if the height of the current block (2410) is greater than a predetermined value, the video decoding device (2000) can determine the width of the left template (2410) as a first predetermined width, and if it is less than or equal to the predetermined value, the width of the left template (2410) can be determined as a second predetermined width. For example, if the height of the current block (2410) is greater than 8, the video decoding device (2000) can determine the width of the left template (2410) as 4, and if it is less than or equal to 8, the width of the left template (2410) can be determined as 2.
[0339] The image decoding device (2000) can determine the height of the upper template (2430) based on the width of the current block (2410). For example, if the width of the current block (2410) is greater than a predetermined value, the image decoding device (2000) can determine the height of the upper template (2420) as a first predetermined height, and if it is less than or equal to the predetermined value, the image decoding device (2000) can determine the height of the upper template (2420) as a second predetermined height. For example, if the width of the current block (2410) is greater than 8, the image decoding device (2000) can determine the height of the upper template (2420) as 4, and if it is less than or equal to 8, the image decoding device (2000) can determine the height of the upper template (2420) as 2.
[0340] Referring to FIG. 24, in one embodiment of the present disclosure, when the size of the current block (2410) is 8 x 16, the width of the left template (2420) may be determined as 4 based on the height of the current block (2410) being greater than 8, and the height of the upper template (2430) may be determined as 2 based on the width of the current block (2410) being equal to 8. The height of the left template (2420) may be determined to be equal to the height of the current block (2410), and the width of the upper template (2430) may be determined to be equal to the width of the current block (2410).
[0341] Figure 25 is a drawing to explain the unit for determining cost in the template.
[0342] The video decoding device (2000) can divide the template (2420, 2430) of the current block (2410) according to a predetermined size. For example, the video decoding device (2000) can divide the template (2420, 2430) of the current block (2410) into at least one size among 16x8, 8x16, 8x8, 8x4, 4x8, 4x4, and 2x2.
[0343] Referring to FIG. 25, the left template (2420) of the current block (2410) may be divided into two 4 x 8 sub-templates (2510) to determine the cost, and the upper template (2430) of the current block (2410) may be divided into four 2 x 2 sub-templates (2520) to determine the cost.
[0344] However, if the left template (2420) and the upper template (2430) are divided into sub-templates of different sizes, the sizes of the transformed areas may differ, making it difficult to obtain reliable cost comparison results. Therefore, a method of dividing the area determining the cost into equal-sized areas may be necessary.
[0345] FIG. 26 is a flowchart illustrating a method for determining a cost according to one embodiment of the present disclosure.
[0346] In one embodiment of the present disclosure, the method for determining a cost may be performed by the image decoding device (2000). For example, the image decoding device (2000) may perform each step of the method for determining a cost by having the processor of the image decoding device (2000) execute at least one instruction contained in a memory.
[0347] In step S2610, the image decoding device (2000) can determine whether the block size satisfies a predetermined condition.
[0348] In one embodiment of the present disclosure, the image decoding device (2000) can determine whether the width of the block is a multiple of the first width. For example, the image decoding device (2000) can determine whether the width W of the block is a multiple of the first width M1. The image decoding device (2000) can determine whether the height of the block is a multiple of the first height. For example, the image decoding device (2000) can determine whether the height H of the block is a multiple of the first height N1. The first width and the first height may be predetermined values or values determined based on the size of the current block.
[0349] As described in FIG. 26, a block may include at least one of a template of a current block, a template of a reference block, or a reference block. If the width of the block is a multiple of the first width and the height of the block is a multiple of the first height, the process proceeds to step S2620, and if not, the process proceeds to step S2625.
[0350] In step S2620, the image decoding device (2000) can divide a block into sub-blocks.
[0351] In one embodiment of the present disclosure, the image decoding device (2000) may determine the size of a segment or the number of segments based on at least one of the width and height of a block. For example, the image decoding device (2000) may determine the size of a sub-template or the number of sub-templates based on at least one of the width and height of a template. The image decoding device (2000) may divide a block based on the size of the segments or the number of segments to obtain a plurality of sub-blocks.
[0352] In one embodiment of the present disclosure, the image decoding device (2000) can divide a block into sub-blocks based on whether the block size satisfies a predetermined condition. Based on whether the width of the block is a multiple of a first width and the height of the block is a multiple of a first height, the image decoding device (2000) can divide the block into sub-blocks having a first width and a first height. For example, the image decoding device (2000) can divide the block into sub-blocks having a size of M1 x N1.
[0353] In one embodiment of the present disclosure, the image decoding device (2000) can determine the number of divisions based on a predetermined condition. For example, the image decoding device (2000) can determine the number of divisions of the block as W / M1 x H / N1 based on the block size satisfying a predetermined condition. The image decoding device (2000) can divide the block into sub-blocks based on the determined number of divisions.
[0354] In step S2630, the image decoding device (2000) can determine a sub-cost corresponding to a sub-block.
[0355] In one embodiment of the present disclosure, the image decoding device (2000) can determine a sub-cost using at least one of a prediction sample and a reconstruction sample of a sub-block. As described in step S2220 of FIG. 22, the image decoding device (2000) can determine a sub-cost for each sub-block. For example, the image decoding device (2000) can determine W / M1 x H / N1 sub-costs for a sub-block having a size of M1 x N1. The sub-cost can be determined using at least one of SATD, MR-SAD, and MR-SATD.
[0356] In step S2640, the image decoding device (2000) can determine the cost based on the sub-cost.
[0357] The video decoding device (2000) can determine the cost for a block using the sum of the sub-costs. The video decoding device (2000) can determine the cost for a block using the average of the sub-costs.
[0358] In step S2625, the image decoding device (2000) can divide the block into sub-blocks.
[0359] In one embodiment of the present disclosure, the image decoding device (2000) may split a block into sub-blocks based on whether the block size does not satisfy a predetermined condition. Based on whether the width of the block is not a multiple of the first width or the height of the block is not a multiple of the first height, the image decoding device (2000) may split the block into sub-blocks having a second width and a second height. For example, the image decoding device (2000) may split the block into sub-blocks having a size of M2 x N2.
[0360] In one embodiment of the present disclosure, the image decoding device (2000) can determine the number of divisions based on a predetermined condition. For example, the image decoding device (2000) can determine the number of divisions of the block as W / M2 x H / N2 based on the fact that the size of the block does not satisfy the predetermined condition. The image decoding device (2000) can divide the block into sub-blocks based on the determined number of divisions.
[0361] In one embodiment of the present disclosure, the second width is less than or equal to the first width, and the second height is less than or equal to the first height. For example, the first width and the second width may be 4, and the second width and the second height may be 2. In one embodiment of the present disclosure, the sub-block may have a square shape. For example, the first width may be equal to the first height, and the second width may be equal to the second height.
[0362] In step S2635, the image decoding device (2000) can determine a sub-cost corresponding to a sub-block.
[0363] In one embodiment of the present disclosure, the image decoding device (2000) can determine a sub-cost using at least one of a prediction sample and a reconstruction sample of a sub-block. As described in step S2220 of FIG. 22, the image decoding device (2000) can determine a sub-cost for each sub-block. For example, the image decoding device (2000) can determine W / M2 x H / N2 sub-costs for a sub-block having a size of M2 x N2. The sub-cost can be determined using at least one of SATD, MR-SAD, and MR-SATD.
[0364] In step S2645, the image decoding device (2000) can determine the cost based on the sub-cost.
[0365] The video decoding device (2000) can determine the cost for a block using the sum of the sub-costs. The video decoding device (2000) can determine the cost for a block using the average of the sub-costs.
[0366] FIG. 27 is a flowchart illustrating a method for determining a cost according to one embodiment of the present disclosure.
[0367] In one embodiment of the present disclosure, the method for determining a cost may be performed by the image decoding device (2000). For example, the image decoding device (2000) may perform each step of the method for determining a cost by having the processor of the image decoding device (2000) execute at least one instruction contained in a memory.
[0368] In step S2710, the image decoding device (2000) can determine whether the block size satisfies a predetermined condition.
[0369] The video decoding device (2000) can determine whether at least one of the width or height of the block is equal to a predetermined value. For example, the video decoding device (2000) can determine whether the width and / or height of the block is 1.
[0370] If the width and / or height of the block is 1, the process proceeds to step S2720, otherwise, the process proceeds to step S2610. Steps S2610 to S2645 are described with reference to FIG. 26 and are therefore omitted.
[0371] In step S2720, the image decoding device (2000) can determine a cost for a block.
[0372] In one embodiment of the present disclosure, the image decoding device (2000) can determine the cost for a block without dividing the block into sub-blocks based on whether at least one of the width or height of the block is equal to a predetermined value. The image decoding device (2000) can determine the cost using a cost function other than SATD based on not dividing the block. For example, the image decoding device (2000) can determine the SAD cost for a block based on not dividing the block into sub-blocks.
[0373] FIG. 28 is a flowchart illustrating a method for determining a cost according to one embodiment of the present disclosure.
[0374] In one embodiment of the present disclosure, the method for determining a cost may be performed by the image decoding device (2000). For example, the image decoding device (2000) may perform each step of the method for determining a cost by having the processor of the image decoding device (2000) execute at least one instruction contained in a memory.
[0375] In one embodiment of the present disclosure, steps S2810, S2812, S2814, S2816, S2822, S2824, and S2826 may correspond to steps S2810, S2820, S2830, S2840, S2825, S2835, and S2845 of FIG. 26. However, there is a difference in that step S2820 is performed when the block size does not satisfy a predetermined condition.
[0376] In step S2820, the image decoding device (2000) may determine whether the size of the block satisfies a predetermined condition. For example, the image decoding device (2000) may determine whether the width of the block is a multiple of the second width and the height of the block is a multiple of the second height. In one embodiment of the present disclosure, the image decoding device (2000) may identify at least one of whether the width of the block is a multiple of the second width and whether the height of the block is a multiple of the second height based on whether the width of the block is not a multiple of the first width or the height of the block is not a multiple of the first height.
[0377] The first width and the first height may be greater than or equal to the second width and the second height, respectively.
[0378] In one embodiment of the present disclosure, the image decoding device (2000) may proceed to step S2822 based on the fact that the width of the block is a multiple of the second width and the height of the block is a multiple of the second height. The image decoding device (2000) may determine the width of the sub-block as the second width based on the fact that the width of the block is a multiple of the second width, or may determine the height of the sub-block as the second height based on the fact that the height of the block is a multiple of the second height.
[0379] In one embodiment of the present disclosure, the video decoding device (2000) may determine whether a block satisfies a given condition before determining the size of a sub-block. For example, the video decoding device (2000) may determine whether the width of the block is a multiple of a third width and the height of the block is a multiple of a third height based on whether the width of the block is not a multiple of the second width or the height of the block is not a multiple of the second height. If the width and the height of the block are each a multiple of the third width and the third height, the block may be divided into sub-blocks to determine a sub-cost and a cost, and otherwise, whether the block is a multiple of a fourth width and a fourth height may be determined. For example, the k-th width Mk may be greater than or equal to the k+1-th width Mk+1, and the k-th height Nk may be greater than or equal to the k+1-th height Nk+1.
[0380] In step S2830, the image decoding device (2000) may determine whether the block size satisfies a predetermined condition. For example, the image decoding device (2000) may determine whether the block width is a multiple of Mn and the block height is a multiple of Nn. However, the present invention is not limited thereto, and the image decoding device (2000) may omit determining whether the block satisfies the final predetermined condition. For example, step S2830 may be omitted and the process may proceed to step S2832.
[0381] In step S2832, the image decoding device (2000) may divide the block into sub-blocks. In step S2834, the image decoding device (2000) may determine a sub-cost corresponding to the sub-block. In step S2836, the image decoding device (2000) may determine a final cost based on the sub-cost. Steps S2832, S2834, and S2836 may be understood with reference to steps S2820, S2830, S2840, S2825, S2835, and S2845 of FIG. 26.
[0382] In one embodiment of the present disclosure, the image decoding device (2000) can replace the operation of determining whether the size of a block satisfies a predetermined condition with an operation of determining the size of a sub-block based on the size of the block. For example, including all of steps S2810, S2820, and S2830, the image decoding device (2000) can determine the size of a sub-block based on the size of the block, and proceed to a step corresponding to the size of the sub-block. For example, if the size of the sub-block is determined to be M1 x N1, the device can proceed to step S2812, and if it is determined to be M2 x N2, the device can proceed to step S2822.
[0383] In one embodiment of the present disclosure, a predetermined condition compared to the size of a block may be determined based on the size of the block. For example, if the width of the block is greater than the height, the kth width of the predetermined condition may be determined to be greater than the kth height. For example, if the height of the block is greater than the width, the kth height of the predetermined condition may be determined to be greater than the kth width. For example, if the width and height of the block are equal, the kth width of the predetermined condition may be determined to be equal to the kth height.
[0384] FIG. 29 is a flowchart illustrating a method for determining a cost according to one embodiment of the present disclosure.
[0385] In one embodiment of the present disclosure, the method for determining a cost may be performed by the image decoding device (2000). For example, the image decoding device (2000) may perform each step of the method for determining a cost by having the processor of the image decoding device (2000) execute at least one instruction contained in a memory.
[0386] In step S2910, the image decoding device (2000) can determine whether the block size satisfies a predetermined condition.
[0387] In one embodiment of the present disclosure, a block may include a first block and a second block of different sizes. For example, the first block and the second block may each represent one of the left template and the upper template. For example, the first block and the second block may each represent one of two reference blocks. The image decoding device (2000) may determine whether the sizes of the first block and the second block satisfy predetermined conditions.
[0388] The image decoding device (2000) can determine whether the width of the first block and the width of the second block are multiples of the first width and whether the height of the first block and the height of the second block are multiples of the first height. For example, the image decoding device (2000) can determine whether the width W1 of the first block and the width W2 of the second block are multiples of the first width M1 and whether the height H1 of the first block and the height H2 of the second block are multiples of the first height N1.
[0389] If the width of the first block and the width of the second block are multiples of the first width and the height of the first block and the height of the second block are multiples of the first height, the process proceeds to step S2920, and if not, the process proceeds to step S2925.
[0390] In step S2920, the image decoding device (2000) can divide a block into sub-blocks.
[0391] In one embodiment of the present disclosure, the image decoding device (2000) may determine the size of a segment or the number of segments based on at least one of the width and height of a block. For example, the image decoding device (2000) may determine the size of a sub-block or the number of sub-blocks based on at least one of the width of a first block, the height of the first block, the width of a second block, and the height of the second block. The image decoding device (2000) may obtain a plurality of sub-blocks by dividing a block based on the size of the segments or the number of segments.
[0392] In one embodiment of the present disclosure, the image decoding device (2000) can divide a block into sub-blocks based on whether the block size satisfies a predetermined condition. Based on the fact that the widths of the first block and the second block are multiples of the first width and the heights of the first block and the second block are multiples of the first height, the image decoding device (2000) can divide the first block and the second block into sub-blocks having the first width and the first height. For example, the image decoding device (2000) can divide a block into sub-blocks having a size of M1 x N1.
[0393] In one embodiment of the present disclosure, the image decoding device (2000) can determine the number of divisions based on a predetermined condition. For example, the image decoding device (2000) can determine the number of divisions of the first block as W1 / M1 x H1 / N1 and the number of divisions of the second block as W2 / M1 x H2 / N1 based on the block size satisfying the predetermined condition. The image decoding device (2000) can divide the first block and the second block into sub-blocks based on the determined number of divisions.
[0394] In step S2930, the image decoding device (2000) can determine a sub-cost corresponding to a sub-block.
[0395] In one embodiment of the present disclosure, the image decoding device (2000) can determine a sub-cost using at least one of a prediction sample and a reconstruction sample of a sub-block. As described in step S2220 of FIG. 22, the image decoding device (2000) can determine a sub-cost for each sub-block. For example, the image decoding device (2000) can determine W1 / M1 x H1 / N1 sub-costs for a sub-block of a first block having a size of M1 x N1, and W2 / M1 x H2 / N1 sub-costs for a sub-block of a second block. The sub-costs can be determined using at least one of SATD, MR-SAD, and MR-SATD.
[0396] In step S2940, the image decoding device (2000) can determine a cost based on the sub-cost.
[0397] The video decoding device (2000) can determine the cost for a block using the sum of the sub-costs. The video decoding device (2000) can determine the cost for a block using the average of the sub-costs.
[0398] In step S2925, the image decoding device (2000) can divide the block into sub-blocks.
[0399] In one embodiment of the present disclosure, the image decoding device (2000) may split a block into sub-blocks based on whether the block size does not satisfy a predetermined condition. Based on whether the width of the first block or the second block is not a multiple of the first width or the height of the first block or the second block is not a multiple of the first height, the image decoding device (2000) may split the first block and the second block into sub-blocks having a second width and a second height. For example, the image decoding device (2000) may split the first block and the second block into sub-blocks having a size of M2 x N2.
[0400] In one embodiment of the present disclosure, the image decoding device (2000) can determine the number of divisions based on a predetermined condition. For example, the image decoding device (2000) can determine the number of divisions of the first block as W1 / M2 x H1 / N2 and the number of divisions of the second block as W2 / M2 x H2 / N2 based on the fact that the sizes of the first block and the second block do not satisfy the predetermined condition. The image decoding device (2000) can divide the first block and the second block into sub-blocks based on the determined number of divisions.
[0401] In one embodiment of the present disclosure, the second width is less than or equal to the first width, and the second height is less than or equal to the first height. For example, the first width and the second width may be 4, and the second width and the second height may be 2. In one embodiment of the present disclosure, the sub-block may have a square shape. For example, the first width may be equal to the first height, and the second width may be equal to the second height.
[0402] In step S2935, the image decoding device (2000) can determine a sub-cost corresponding to the sub-block.
[0403] In one embodiment of the present disclosure, the image decoding device (2000) can determine a sub-cost using at least one of a prediction sample and a reconstruction sample of a sub-block. As described in step S2220 of FIG. 22, the image decoding device (2000) can determine a sub-cost for each sub-block. For example, the image decoding device (2000) can determine W1 / M2 x H1 / N2 sub-costs for a sub-block of a first block having a size of M2 x N2, and can determine W2 / M2 x H2 / N2 sub-costs for a sub-block of a second block. The sub-costs can be determined using at least one of SATD, MR-SAD, and MR-SATD.
[0404] In step S2945, the image decoding device (2000) can determine the cost based on the sub-cost.
[0405] The video decoding device (2000) can determine the cost for a block using the sum of the sub-costs. The video decoding device (2000) can determine the cost for a block using the average of the sub-costs.
[0406] In one embodiment of the present disclosure, as in step S2710 of FIG. 27, the image decoding device (2000) can determine the SAD cost without dividing the first block and the second block based on at least one of the width of the first block, the height of the first block, the width of the second block, and the height of the second block being 1.
[0407] FIG. 30 is a flowchart illustrating a method for determining a cost according to one embodiment of the present disclosure.
[0408] In one embodiment of the present disclosure, the method for determining a cost may be performed by the image decoding device (2000). For example, the image decoding device (2000) may perform each step of the method for determining a cost by having the processor of the image decoding device (2000) execute at least one instruction contained in a memory.
[0409] In one embodiment of the present disclosure, if the width of the first block is a multiple of the height of the first block and the height of the second block is a multiple of the width of the second block, the flowchart of FIG. 29 may be expressed as in FIG. 30. For example, the width of the upper template of the block may be a multiple of the height of the upper template, and the height of the left template of the block may be a multiple of the width of the left template. Contents omitted in FIG. 30 may be understood with reference to FIG. 29.
[0410] In step S3010, the image decoding device (2000) can determine whether the block size satisfies a predetermined condition.
[0411] The image decoding device (2000) can determine whether the width of the second block is a multiple of the first width and whether the height of the first block is a multiple of the first height. For example, if the width W1 of the first block is a multiple of the height of the first block H1 and the height H2 of the second block is a multiple of the width W2 of the second block, the image decoding device (2000) can determine whether the width W2 of the second block is a multiple of the first width M1 and whether the height H1 of the first block is a multiple of the first height N1.
[0412] If the width of the second block is a multiple of the first width and the height of the first block is a multiple of the first height, the process proceeds to step S3020, and if not, the process proceeds to step S3025.
[0413] In step S3020, the image decoding device (2000) can divide a block into sub-blocks.
[0414] In one embodiment of the present disclosure, the image decoding device (2000) may determine the size of a segment or the number of segments based on at least one of the width and height of a block. For example, the image decoding device (2000) may determine the size of a sub-block or the number of sub-blocks based on at least one of the height of a first block and the width of a second block. The image decoding device (2000) may divide a block based on the size of the segments or the number of segments to obtain a plurality of sub-blocks.
[0415] In one embodiment of the present disclosure, the image decoding device (2000) can divide a block into sub-blocks based on whether the block size satisfies a predetermined condition. Based on the fact that the width of the second block is a multiple of the first width and the height of the first block is a multiple of the first height, the image decoding device (2000) can divide the first block and the second block into sub-blocks having the first width and the first height. For example, the image decoding device (2000) can divide a block into sub-blocks having a size of M1 x N1.
[0416] In one embodiment of the present disclosure, the image decoding device (2000) can determine the number of divisions based on a predetermined condition. For example, the image decoding device (2000) can determine the number of divisions of the first block as W1 / M1 x H1 / N1 and the number of divisions of the second block as W2 / M1 x H2 / N1 based on the block size satisfying the predetermined condition. The image decoding device (2000) can divide the first block and the second block into sub-blocks based on the determined number of divisions.
[0417] In step S3025, the image decoding device (2000) can divide the block into sub-blocks.
[0418] In one embodiment of the present disclosure, the image decoding device (2000) may split a block into sub-blocks based on whether the block size does not satisfy a predetermined condition. Based on whether the width of the second block is not a multiple of the first width or the height of the first block is not a multiple of the first height, the image decoding device (2000) may split the first block and the second block into sub-blocks having a second width and a second height. For example, the image decoding device (2000) may split the first block and the second block into sub-blocks having a size of M2 x N2.
[0419] In one embodiment of the present disclosure, the image decoding device (2000) can determine the number of divisions based on a predetermined condition. For example, the image decoding device (2000) can determine the number of divisions of the first block as W1 / M2 x H1 / N2 and the number of divisions of the second block as W2 / M2 x H2 / N2 based on the fact that the sizes of the first block and the second block do not satisfy the predetermined condition. The image decoding device (2000) can divide the first block and the second block into sub-blocks based on the determined number of divisions.
[0420] In one embodiment of the present disclosure, the second width is less than or equal to the first width, and the second height is less than or equal to the first height. For example, the first width and the second width may be 4, and the second width and the second height may be 2. In one embodiment of the present disclosure, the sub-block may have a square shape. For example, the first width may be equal to the first height, and the second width may be equal to the second height.
[0421] In one embodiment of the present disclosure, steps S3030, S3035, S3040 and S3045 are omitted as they can be understood with reference to steps S2930, S2935, S2940 and S2945 of FIG. 29.
[0422] FIG. 31 is a diagram illustrating a segmented template for determining a cost according to one embodiment of the present disclosure.
[0423] In one embodiment of the present disclosure, the image decoding device (2000) can split the template of the current block (2410) to determine the cost using the method described with reference to FIGS. 26 to 30.
[0424] Referring to FIG. 31, the left template (3110) and the upper template (3120) of the current block (2410) are divided into 2 x 2 sub-templates. In one embodiment of the present disclosure, when the first width and the first height are 4, and the second width and the second height are 2, the left template (3110) and the upper template (3120) of the current block (2410) can be divided as shown in FIG. 31.
[0425] An image decoding method according to one embodiment of the present disclosure can have the effect of reducing complexity and processing time by dividing blocks to determine costs.
[0426] In one embodiment of the present disclosure, the image decoding device (2000) can determine the SATD and perform scaling for a specific coefficient. For example, the image decoding device (2000) can divide the DC coefficient by a predetermined value. The image decoding device (2000) can select a different value for dividing the DC coefficient for each sub-block size. For example, the image decoding device (2000) can divide the DC coefficient of the SATD for a 4 x 4 sub-block by 4, and can divide the DC coefficient of the SATD for a 2 x 2 sub-block by 2. In one embodiment of the present disclosure, the image decoding device (2000) can have the effect of reducing complexity by determining the cost by dividing the DC coefficient.
[0427] FIG. 32 is a diagram illustrating a segmented template for determining a cost according to one embodiment of the present disclosure.
[0428] Referring to FIG. 32, the left template (3210) of the current block (2410) is divided into 2 x 4 sub-templates, and the upper template (3120) is divided into 4 x 2 sub-templates. In one embodiment of the present disclosure, the image decoding device (2000) can divide the templates into identical areas. When the areas are identical, as in the sub-templates of FIG. 32, reliable cost comparison results can be obtained when converting to the frequency domain.
[0429] In one embodiment of the present disclosure, the image decoding device (2000) may determine a division size such that the width and height of each of the sub-blocks divided from the first block are identical to the height and width of each of the sub-blocks divided from the second block. In one embodiment of the present disclosure, a method for the image decoding device (2000) to divide the sub-blocks so that they have the same area is described with reference to FIG. 33.
[0430] FIG. 33 is a flowchart illustrating a method for determining a cost according to one embodiment of the present disclosure.
[0431] In one embodiment of the present disclosure, the method for determining a cost may be performed by the image decoding device (2000). For example, the image decoding device (2000) may perform each step of the method for determining a cost by having the processor of the image decoding device (2000) execute at least one instruction contained in a memory.
[0432] In one embodiment of the present disclosure, the width of the first block may be a multiple of the height of the first block, and the height of the second block may be a multiple of the width of the second block. For example, the width of the upper template of the block may be a multiple of the height of the upper template, and the height of the left template of the block may be a multiple of the width of the left template.
[0433] In step S3310, the image decoding device (2000) can determine whether the block size satisfies a predetermined condition.
[0434] The video decoding device (2000) can determine whether the width of the second block is a multiple of the first value and whether the height of the first block is a multiple of the first value. For example, if the width W1 of the first block is a multiple of the height H1 of the first block and the height H2 of the second block is a multiple of the width W2 of the second block, the video decoding device (2000) can determine whether the width W2 of the second block and the height H1 of the first block are multiples of the first value N1. If the width of the second block and the height of the first block are multiples of the first value, the process proceeds to step S3312, and if not, the process proceeds to step S3320.
[0435] In step S3312, the image decoding device (2000) can divide the block into sub-blocks.
[0436] In one embodiment of the present disclosure, the image decoding device (2000) may determine the size of a segment or the number of segments based on at least one of the width and height of a block. For example, the image decoding device (2000) may determine the size of a sub-block or the number of sub-blocks based on at least one of the height of a first block and the width of a second block. The image decoding device (2000) may divide a block based on the size of the segments or the number of segments to obtain a plurality of sub-blocks.
[0437] In one embodiment of the present disclosure, the image decoding device (2000) can divide a block into sub-blocks based on whether the block size satisfies a predetermined condition. Based on whether the width of the second block is a multiple of the first value and the height of the first block is a multiple of the first value, the image decoding device (2000) can divide the first block and the second block into sub-blocks having the first value and the first value, respectively. For example, the image decoding device (2000) can divide a block into sub-blocks having a size of N1 x N1.
[0438] In one embodiment of the present disclosure, the image decoding device (2000) can determine the number of divisions based on a predetermined condition. For example, the image decoding device (2000) can determine the number of divisions of the first block as W1 / N1 x H1 / N1 and the number of divisions of the second block as W2 / N1 x H2 / N1 based on the block size satisfying the predetermined condition. The image decoding device (2000) can divide the first block and the second block into sub-blocks based on the determined number of divisions.
[0439] In step S3314, the image decoding device (2000) can determine a sub-cost corresponding to the sub-block.
[0440] In one embodiment of the present disclosure, the image decoding device (2000) can determine a sub-cost using at least one of a prediction sample and a reconstruction sample of a sub-block. As described in step S2220 of FIG. 22, the image decoding device (2000) can determine a sub-cost for each sub-block. For example, the image decoding device (2000) can determine W1 / N1 x H1 / N1 sub-costs for a sub-block of a first block having a size of N1 x N1, and W2 / N1 x H2 / N1 sub-costs for a sub-block of a second block. The sub-costs can be determined using at least one of SATD, MR-SAD, and MR-SATD.
[0441] In step S3316, the image decoding device (2000) can determine a cost based on the sub-costs. The image decoding device (2000) can determine a cost for a block using the sum or average of the sub-costs.
[0442] In step S3320, the image decoding device (2000) can determine whether the block size satisfies a predetermined condition.
[0443] The video decoding device (2000) can determine whether the width of the first block is a multiple of the first value and whether the height of the second block is a multiple of the first value. The video decoding device (2000) can determine whether the width W1 of the first block and the height H2 of the second block are multiples of the first value N1. If the width of the first block and the height of the second block are multiples of the first value, the process proceeds to step S3322, and if not, the process proceeds to step S3332.
[0444] In step S3322, the image decoding device (2000) can divide the block into sub-blocks.
[0445] In one embodiment of the present disclosure, the image decoding device (2000) may determine the size of a segment or the number of segments based on at least one of the width and height of a block. For example, the image decoding device (2000) may determine the size of a sub-block or the number of sub-blocks based on at least one of the height of a second block and the width of a first block. The image decoding device (2000) may divide a block based on the size of the segments or the number of segments to obtain a plurality of sub-blocks.
[0446] In one embodiment of the present disclosure, the image decoding device (2000) may divide a block into sub-blocks based on the size of the block satisfying a predetermined condition. Based on the fact that the width of the first block is a multiple of the first value and the height of the second block is a multiple of the first value, the image decoding device (2000) may divide the first block into sub-blocks having a width of the first value and a height of the second value, and may divide the second block into sub-blocks having a width of the second value and a height of the first value. For example, the image decoding device (2000) may divide the first block into sub-blocks having a size of N1 x N2, and may divide the second block into sub-blocks having a size of N2 x N1. In one embodiment of the present disclosure, the second value may be smaller than the first value. For example, the second value may be 4 and the first value may be 2, but is not limited thereto, and the second value may be set to be smaller than the first value.
[0447] In one embodiment of the present disclosure, the image decoding device (2000) can determine the number of divisions based on a predetermined condition. For example, the image decoding device (2000) can determine the number of divisions of the first block as W1 / N1 x H1 / N2 and the number of divisions of the second block as W2 / N2 x H2 / N1 based on the block size satisfying the predetermined condition. The image decoding device (2000) can divide the first block and the second block into sub-blocks based on the determined number of divisions.
[0448] In step S3324, the image decoding device (2000) can determine a sub-cost corresponding to the sub-block.
[0449] In one embodiment of the present disclosure, the image decoding device (2000) can determine a sub-cost using at least one of a prediction sample and a reconstruction sample of a sub-block. As described in step S2220 of FIG. 22, the image decoding device (2000) can determine a sub-cost for each sub-block. For example, the image decoding device (2000) can determine W1 / N1 x H1 / N2 sub-costs for a sub-block of a first block having a size of N1 x N2, and W2 / N2 x H2 / N1 sub-costs for a sub-block of a second block having a size of N2 x N1. The sub-costs can be determined using at least one of SATD, MR-SAD, and MR-SATD.
[0450] In step S3326, the image decoding device (2000) can determine a cost based on the sub-costs. The image decoding device (2000) can determine a cost for a block using the sum or average of the sub-costs.
[0451] In step S3332, the image decoding device (2000) can divide the block into sub-blocks.
[0452] In one embodiment of the present disclosure, the image decoding device (2000) may split a block into sub-blocks based on whether the block size does not satisfy a predetermined condition. Based on whether the width of the first block is not a multiple of the first value or the height of the second block is not a multiple of the first value, the image decoding device (2000) may split the first block into sub-blocks having a width of the second value and a height of the second value, and may split the second block into sub-blocks having a width of the second value and a height of the second value. For example, the image decoding device (2000) may split the first block and the second block into sub-blocks having a size of N2 x N2.
[0453] In one embodiment of the present disclosure, the image decoding device (2000) can determine the number of divisions based on a predetermined condition. For example, the image decoding device (2000) can determine the number of divisions of the first block as W1 / N2 x H1 / N2 and the number of divisions of the second block as W2 / N2 x H2 / N2 based on the block size satisfying the predetermined condition. The image decoding device (2000) can divide the first block and the second block into sub-blocks based on the determined number of divisions.
[0454] In step S3334, the image decoding device (2000) can determine a sub-cost corresponding to the sub-block.
[0455] In one embodiment of the present disclosure, the image decoding device (2000) can determine a sub-cost using at least one of a prediction sample and a reconstruction sample of a sub-block. As described in step S2220 of FIG. 22, the image decoding device (2000) can determine a sub-cost for each sub-block. For example, the image decoding device (2000) can determine W1 / N2 x H1 / N2 sub-costs for a sub-block of a first block having a size of N2 x N2, and W2 / N2 x H2 / N2 sub-costs for a sub-block of a second block. The sub-costs can be determined using at least one of SATD, MR-SAD, and MR-SATD.
[0456] In step S3336, the image decoding device (2000) can determine a cost based on the sub-cost. The image decoding device (2000) can determine a cost for a block using the sum or average of the sub-costs.
[0457] FIG. 34 is a flowchart illustrating an image decoding method according to one embodiment of the present disclosure.
[0458] In one embodiment of the present disclosure, the image decoding method may be performed by the image decoding device (2000). For example, the image decoding device (2000) may perform each step of the image decoding method by having the processor of the image decoding device (2000) execute at least one instruction contained in a memory.
[0459] In step S3410, the image decoding device (2000) can obtain a plurality of sub-templates by dividing the template into equal sizes based on at least one of the width and height of the template of the current block.
[0460] The block described with reference to FIGS. 22 to 33 may represent a template of a current block. For example, the template of the current block may include at least one of an upper template of an N x 1 shape and a left template of a 1 x M shape. The image decoding device (2000) may determine at least one of a split size and a split number of the template based on at least one of a width and a height of the template of the current block. In one embodiment of the present disclosure, the image decoding device (2000) may determine at least one of a split size and a split number of the upper template and the left template based on at least one of a width and a height of the upper template and a width and a height of the left template of the current block.
[0461] The video decoding device (2000) can obtain multiple sub-templates by dividing the template according to the division size and number of divisions.
[0462] In step S3420, the image decoding device (2000) can obtain prediction samples of a plurality of sub-templates corresponding to each of a plurality of candidate prediction modes by using surrounding reference samples of the template.
[0463] The video decoding device (2000) can obtain prediction samples for each of a plurality of candidate prediction modes using reference samples surrounding the template. The plurality of candidate prediction modes can be determined in advance. For example, the plurality of candidate prediction modes can be determined as non-directional modes. For example, the plurality of candidate prediction modes can be determined as planar mode, DC mode, etc. The plurality of candidate prediction modes can be determined using an MPM list.
[0464] In step S3430, the image decoding device (2000) can determine a plurality of sub-costs corresponding to each of the plurality of sub-templates using restoration samples of the plurality of sub-templates and prediction samples of the plurality of sub-templates.
[0465] The video decoding device (2000) can determine a sub-cost corresponding to each sub-template. For example, the video decoding device (2000) can determine the sub-cost using the difference between the predicted sample and the restored sample for each sub-template. The video decoding device (2000) can determine the sub-cost using at least one of the SATD cost function, the MR-SAD cost function, and the MR-SATD cost function.
[0466] In step S3440, the image decoding device (2000) can determine a cost corresponding to each of a plurality of candidate prediction modes based on a plurality of sub-costs.
[0467] The video decoding device (2000) can determine a cost using the sum or average of multiple sub-costs. For example, the cost for the first candidate prediction mode can be determined using the sum or average of multiple sub-costs corresponding to the first candidate prediction mode.
[0468] In step S3450, the image decoding device (2000) can select a prediction mode for the current block from among a plurality of candidate prediction modes by using a cost corresponding to each of the plurality of candidate prediction modes.
[0469] In one embodiment of the present disclosure, the image decoding device (2000) may select a candidate prediction mode with the lowest cost among a plurality of candidate prediction modes as a prediction mode for the current block. The image decoding device (2000) may obtain a prediction sample of the current block using the selected prediction mode.
[0470] In one embodiment of the present disclosure, the image decoding device (2000) may select a plurality of candidate prediction modes with the lowest cost among a plurality of candidate prediction modes as a prediction mode for the current block. The image decoding device (2000) may obtain a prediction sample of the current block using the plurality of candidate prediction modes. For example, the image decoding device (2000) may obtain a prediction sample by combining prediction samples obtained using the plurality of candidate prediction modes.
[0471] FIG. 35 is a flowchart illustrating an image decoding method according to one embodiment of the present disclosure.
[0472] In one embodiment of the present disclosure, the image decoding method may be performed by the image decoding device (2000). For example, the image decoding device (2000) may perform each step of the image decoding method by having the processor of the image decoding device (2000) execute at least one instruction contained in a memory.
[0473] In step S3510, the image decoding device (2000) can obtain a first motion vector and a second motion vector for the current block.
[0474] In one embodiment of the present disclosure, the image decoding device (2000) can obtain a first motion vector and a second motion vector representing a reference block included in a reference image different from the current image including the current block.
[0475] In step S3520, the image decoding device (2000) can obtain a plurality of candidate motion vector sets by applying a plurality of offset values to the first motion vector and the second motion vector.
[0476] Each of the plurality of candidate motion vector sets may include two candidate motion vectors having different offset values applied to the first motion vector and the second motion vector. The offset may be applied oppositely to the first motion vector and the second motion vector. For example, if an offset is applied to a first motion vector representing (x1, y1) and changed to (x1+a, y1+b), an offset may be applied to a second motion vector representing (x2, y2) and changed to (x2-a, y2-b).
[0477] In step S3530, the image decoding device (2000) can obtain a plurality of first sub-blocks and a plurality of second sub-blocks by dividing the first block and the second block indicated by the two candidate motion vectors included in each of the plurality of candidate motion vectors into blocks of the same size.
[0478] The blocks described with reference to FIGS. 22 to 33 may represent a first block and a second block indicated by two candidate motion vectors of the current block. The image decoding device (2000) may determine at least one of the division size and the number of divisions of the first block and the second block based on at least one of the width and height of the first block of the current block and the width and height of the second block. The image decoding device (2000) may divide the first block and the second block according to the division size and the number of divisions to obtain a plurality of first sub-blocks and a plurality of second sub-blocks.
[0479] In step S3540, the image decoding device (2000) can determine a plurality of sub-costs corresponding to each of the plurality of first sub-blocks using the restoration samples of the plurality of first sub-blocks and the restoration samples of the plurality of second sub-blocks.
[0480] The video decoding device (2000) can determine a sub-cost corresponding to each of the first sub-block and the second sub-block. For example, the video decoding device (2000) can determine the sub-cost using the difference between the reconstructed sample for each of the first sub-blocks and the reconstructed sample for the second sub-block corresponding to the first sub-block. The video decoding device (2000) can determine the sub-cost using at least one of the SATD cost function, the MR-SAD cost function, and the MR-SATD cost function.
[0481] In step S3550, the image decoding device (2000) can determine a cost corresponding to each of the plurality of candidate motion vectors based on a plurality of sub-costs.
[0482] The video decoding device (2000) can determine a cost using the sum or average of multiple sub-costs. For example, the cost for a candidate motion vector can be determined as the sum or average of multiple sub-costs corresponding to the first candidate motion vector.
[0483] In step S3560, the image decoding device (2000) can obtain a first enhanced motion vector and a second enhanced motion vector for the current block from among the sets of the plurality of candidate motion vectors by using a cost corresponding to each of the plurality of candidate motion vectors.
[0484] In one embodiment of the present disclosure, the image decoding device (2000) may select a plurality of candidate motion vectors included in a candidate motion vector set having the lowest cost among a plurality of candidate motion vector sets as the first enhanced motion vector and the second enhanced motion vector for the current block. The image decoding device (2000) may obtain a prediction sample of the current block using the first enhanced motion vector and the second enhanced motion vector.
[0485] FIG. 36 is a flowchart illustrating an image decoding method according to one embodiment of the present disclosure.
[0486] In one embodiment of the present disclosure, the image decoding method may be performed by the image decoding device (2000). For example, the image decoding device (2000) may perform each step of the image decoding method by having the processor of the image decoding device (2000) execute at least one instruction contained in a memory.
[0487] In step S3610, the image decoding device (2000) can determine a candidate vector list for the current block.
[0488] In one embodiment of the present disclosure, the candidate vector list may include a plurality of block vectors or a plurality of motion vectors. The image decoding device (2000) may determine the candidate vector list using the block vectors or motion vectors of blocks surrounding the current block. For example, the image decoding device (2000) may configure the candidate vector list to include block vectors or motion vectors of blocks at predetermined locations surrounding the current block.
[0489] In step S3620, the image decoding device (2000) can obtain a plurality of current sub-templates and a plurality of reference sub-templates by dividing the current template of the current block and the reference template of the reference block indicated by each of the plurality of block vectors or the plurality of motion vectors into equal sizes.
[0490] The blocks described with reference to FIGS. 22 to 33 may represent the current template of the current block and the reference template of the reference block indicated by the block vector or the motion vector. The image decoding device (2000) may determine at least one of the split size and the number of splits of the current template and the reference template based on at least one of the width and height of the current template and the width and height of the reference template. The image decoding device (2000) may split the current template and the reference template according to the split size and the number of splits to obtain a plurality of current sub-templates and a plurality of reference sub-templates.
[0491] In step S3630, the image decoding device (2000) can determine a plurality of sub-costs corresponding to each of the plurality of current sub-templates by using restoration samples of the plurality of current sub-templates and restoration samples of the plurality of reference sub-templates.
[0492] The video decoding device (2000) can determine a sub-cost corresponding to each current sub-template and reference sub-template. For example, the video decoding device (2000) can determine the sub-cost using the difference between the reconstructed sample for the current sub-template and the reconstructed sample for each reference sub-template. The video decoding device (2000) can determine the sub-cost using at least one of the SATD cost function, the MR-SAD cost function, and the MR-SATD cost function.
[0493] In step S3640, the image decoding device (2000) can determine a cost corresponding to each of a plurality of block vectors or a plurality of motion vectors based on a plurality of sub-costs.
[0494] The video decoding device (2000) can determine a cost using the sum or average of multiple sub-costs. For example, the cost for a first block vector or a first motion vector can be determined as the sum or average of multiple sub-costs corresponding to the first block vector or the first motion vector.
[0495] In step S3650, the image decoding device (2000) can determine index values for multiple block vectors or multiple motion vectors included in the candidate vector list using the cost.
[0496] In one embodiment of the present disclosure, the image decoding device (2000) may determine that a motion vector or block vector with a lower cost among a plurality of motion vectors or a plurality of block vectors has a lower index value. The image decoding device (2000) may rearrange the order of the candidate vector list based on the costs of the plurality of motion vectors or the plurality of block vectors. The image decoding device (2000) may rearrange the order of the candidate vector list so that a motion vector or block vector with a lower cost has a lower index value.
[0497] In step S3660, the image decoding device (2000) can obtain index information for predicting the current block.
[0498] The video decoding device (2000) can obtain index information indicating a motion vector or block vector used to predict the current block from a bitstream. The index information may mean information indicating an index value of a block vector or motion vector used to predict the current block in a candidate vector list.
[0499] In step S3670, the image decoding device (2000) can obtain a prediction block of the current block using a block vector or a motion vector having an index value indicated by the index information.
[0500] The video decoding device (2000) can obtain a motion vector or block vector corresponding to the acquired index value from the candidate vector list. The video decoding device (2000) can obtain a prediction sample of the current block using the block vector or motion vector indicated by the index information.
[0501] FIG. 37 is a flowchart illustrating an image decoding method according to one embodiment of the present disclosure.
[0502] In one embodiment of the present disclosure, the image decoding method may be performed by the image decoding device (2000). For example, the image decoding device (2000) may perform each step of the image decoding method by having the processor of the image decoding device (2000) execute at least one instruction contained in a memory.
[0503] In step S3710, the image decoding device (2000) can obtain multiple candidate reference blocks included in the same image as the current block.
[0504] The video decoding device (2000) can obtain a plurality of candidate reference blocks included in a search area. The search area can be determined based on at least one of the position of the current block, the width of the current block, and the height of the current block.
[0505] In step S3720, the image decoding device (2000) can obtain a plurality of current sub-templates and a plurality of reference sub-templates by dividing the current template of the current block and the candidate template of each of the plurality of candidate reference blocks into equal sizes.
[0506] The blocks described with reference to FIGS. 22 to 33 may represent a current template of a current block and reference templates of a plurality of candidate reference blocks. The image decoding device (2000) may determine at least one of a split size and a split number of the current template and the reference template based on at least one of the width and height of the current template and the width and height of the reference template of the candidate reference block. The image decoding device (2000) may split the current template and the reference template according to the split size and the split number to obtain a plurality of current sub-templates and a plurality of reference sub-templates.
[0507] In step S3730, the image decoding device (2000) can determine a plurality of sub-costs corresponding to each of the plurality of current sub-templates by using restoration samples of the plurality of current sub-templates and restoration samples of the plurality of reference sub-templates.
[0508] The video decoding device (2000) can determine a sub-cost corresponding to each current sub-template and reference sub-template. For example, the video decoding device (2000) can determine the sub-cost using the difference between the reconstructed sample for the current sub-template and the reconstructed sample for each reference sub-template. The video decoding device (2000) can determine the sub-cost using at least one of the SATD cost function, the MR-SAD cost function, and the MR-SATD cost function.
[0509] In step S3740, the image decoding device (2000) can determine a cost corresponding to each of the plurality of candidate reference blocks based on a plurality of sub-costs.
[0510] The video decoding device (2000) can determine a cost using the sum or average of multiple sub-costs. For example, the cost for a first candidate reference block can be determined using the sum or average of multiple sub-costs corresponding to the first candidate reference block.
[0511] In step S3750, the image decoding device (2000) can determine a reference block of the current block from among a plurality of candidate reference blocks based on the cost.
[0512] In one embodiment of the present disclosure, the image decoding device (2000) may select a reference block of the current block with the lowest cost among a plurality of candidate reference blocks. The image decoding device (2000) may obtain a prediction sample of the current block using the selected reference block. For example, the image decoding device (2000) may determine the prediction sample of the current block to be identical to the reference sample of the reference block.
[0513] FIG. 38 is a block diagram showing the configuration of an image encoding device according to one embodiment of the present disclosure.
[0514] Referring to FIG. 38, the image encoding device (3800) may include a processor (3810) and a memory (3820).
[0515] In one embodiment of the present disclosure, the processor (3810) may include processing circuitry and / or multiple processors. For example, the processor (3810) may include various processing circuitry, including at least one processor, wherein one or more of the at least one processor may be configured to individually and / or collectively perform various functions described in the present disclosure in a distributed manner.
[0516] In one embodiment of the present disclosure, the memory (3820) may include one or more storage media storing at least one instruction. The processor (3810) may control the image encoding device (3800) by executing the instructions stored in the memory (3820). For example, the processor (3810) may control the image encoding device (3800) to perform operations by individually or collectively executing the instructions stored in the memory (3820). In one embodiment of the present disclosure, the operations performed by the image encoding device (3800) may be operations performed by the processor (3810) of the image decoding device (3800).
[0517] In one embodiment of the present disclosure, the image encoding device (3800) may correspond to the image encoding device (200) illustrated in FIG. 2 and / or the encoding unit (1910) illustrated in FIG. 19.
[0518] The image encoding device (3800) can determine the prediction mode of the current block. The current block can include at least one of a maximum coding unit, an encoding unit, a transformation unit, or a prediction unit segmented from a current image to be encoded. In one embodiment of the present disclosure, the prediction mode of the current block can include at least one of an intra mode, an inter mode, a combined mode, a geometric segmentation mode, a block copy mode, or a template matching prediction mode.
[0519] In one embodiment of the present disclosure, the intra mode may include a non-directional Planar mode of number 0 (or Intra_Planar mode), a non-directional DC mode of number 1 (or Intra_DC mode), and directional Angular modes of number 2 to 66 (or Intra-directional mode) (e.g., (Intra_Angular2... Intra_Angular66). In one embodiment of the present disclosure, the intra-planar mode may mean a mode that determines a prediction sample based on a weighted average value according to the distance of a left reference sample, an upper reference sample, a lower-left sample, and an upper-right sample of the current block. In one embodiment of the present disclosure, the intra-DC mode may mean a mode that determines an average value of reference samples as a prediction sample. In one embodiment of the present disclosure, in the intra-directional modes, the positions of reference samples for generating prediction samples of samples in the current block may be identified in consideration of the direction indicated by the intra-directional modes. For example, in mode 34, the position of reference samples may be identified at 45 degrees to the upper left with respect to the samples in the current block. Reference samples located in the direction can be identified. In one embodiment of the present disclosure, the intra mode can include Wide-Angular modes (Intra_Wide_Angular) of -14 to -1 and 67 to 80. The Wide-Angular modes can be used to identify reference samples of samples in a non-square current block. In one embodiment of the present disclosure, the video encoding device (3800) can determine one of the Wide-Angular modes as an intra prediction mode of the non-square current block. The video encoding device (3800) can determine the Wide-Angular mode based on the width and height of the current block. If the width of the current block is greater than the height, the video encoding device (3800) can replace the lower-left directional mode with the upper-right extended directional mode.For example, the video encoding device (3800) can replace the index value "predModeIntra" of the intra prediction mode that is greater than or equal to 2 and less than or equal to a predetermined value with "predModeIntra + 65". If the height of the current block is greater than the width, the video encoding device (3800) can replace the upper-right directional mode with the lower-left extended directional mode. For example, the video encoding device (3800) can replace the index value "predModeIntra" of the intra prediction mode that is greater than or equal to a predetermined value and less than or equal to 66 with "predModeIntra - 67". The number and types of intra prediction modes that can be used in the intra mode by the video encoding device (3800) according to an embodiment of the present disclosure can be set in various ways. For example, the video encoding device (3800) can determine the Wide-Angular mode using a predetermined method according to the ratio of the height and width of the block (e.g., 16, 8, 4, 2, 1 / 2, 1 / 4, 1 / 8, or 1 / 16).
[0520] In one embodiment of the present disclosure, the video encoding device (3800) may determine an intra prediction mode using most probable modes (MPM). The video encoding device (3800) may determine whether to use MPM. The video encoding device (3800) may generate a bitstream including information related to whether to use MPM. When using MPM, the video encoding device (3800) may determine an MPM list. In one embodiment of the present disclosure, the video encoding device (3800) may determine the MPM list using neighboring blocks of the current block. The video encoding device (3800) may determine the MPM list based on the intra mode of the upper block of the current block and the intra mode of the left block. If the neighboring blocks of the current block are not available (for example, if the intra prediction mode of the neighboring blocks is not determined), the intra prediction mode of the unavailable neighboring blocks may be set to a predetermined mode (for example, the Planar mode). The video encoding device (3800) can determine one of the MPM lists as the intra prediction mode of the current block. The video encoding device (3800) can generate a bitstream including information (e.g., index information) indicating the intra prediction mode of the current block from the MPM list.
[0521] In one embodiment of the present disclosure, the video encoding device (3800) can determine an intra prediction mode using a template. The video encoding device (3800) can determine a template of a current block. The template of the current block can include a left sample, an upper left sample, and / or an upper sample of the current block. The video encoding device (3800) can determine a surrounding sample of the template of the current block. The surrounding sample of the template can include a left sample, an upper left sample, and / or an upper sample of the template. The video encoding device (3800) can perform prediction on the template using the surrounding sample of the template as a reference sample. The video encoding device (3800) can determine an intra mode for the reference block by comparing the predicted template with the template of the reconstructed current block. The video encoding device (3800) can determine an intra mode with the smallest error between the predicted template and the template of the reconstructed current block as the intra mode for the reference block. In one embodiment of the present disclosure, the process of determining an intra prediction mode by performing prediction on a template by the image encoding device (3800) may be referred to as template-based intra mode derivation (TIMD).
[0522] In one embodiment of the present disclosure, the video encoding device (3800) can infer an intra prediction mode of the current block using surrounding samples of the current block. The video encoding device (3800) can determine a slope using the surrounding samples of the current block. The video encoding device (3800) can determine a plurality of 3 x 3 blocks adjacent to the current block. The video encoding device (3800) can obtain horizontal variations and vertical variations of samples included in each of the determined 3 x 3 blocks. The video encoding device (3800) can determine a slope based on the horizontal variations and the vertical variations. The video encoding device (3800) can determine the horizontal variations and the vertical variations using a Sobel filter. The video encoding device (3800) can determine an intra prediction mode corresponding to the slope. The video encoding device (3800) can determine the intra prediction mode of the current block based on a plurality of intra prediction modes determined for the plurality of 3 x 3 blocks. In one embodiment of the present disclosure, the video encoding device (3800) may determine the most frequently determined intra prediction mode as the intra prediction mode of the current block. In one embodiment of the present disclosure, the video encoding device (3800) may determine the size based on the horizontal variation and the vertical variation. The video encoding device (3800) may determine the intra prediction mode of the current block based on the size. The video encoding device (3800) may determine the weight of the intra prediction mode corresponding to the slope as the size. For example, the video encoding device (3800) may increase the weight of the intra prediction mode determined based on the slope as the horizontal variation and the vertical variation increase. The video encoding device (3800) may determine the intra prediction mode of the current block based on the result in which the weight determined according to the size is reflected.In one embodiment of the present disclosure, the process by which the video encoding device (3800) determines an intra prediction mode based on a slope may be referred to as decoder side intra mode derivation (DIMD).
[0523] In one embodiment of the present disclosure, the block copy mode may include an intra block copy mode. In one embodiment, the block copy mode may include an intra block copy mode. In one embodiment, the intra block copy mode may be a sub-mode of the intra mode, but is not limited thereto, and may represent a mode separate from the intra mode. In one embodiment, the template matching prediction mode may include a template matching intra prediction mode. The combined mode may include a Combined Inter-Intra Prediction (CIIP) mode that performs prediction by combining prediction according to the intra mode and prediction according to the inter mode. The geometric partitioning mode may include a mode that partitions to include directionality within a block. The geometric partitioning mode may perform prediction using inter prediction or intra prediction for each of the divided regions that are blocked.
[0524] In one embodiment of the present disclosure, when the prediction mode of the current block is the CIIP mode, the video encoding device (3800) can perform prediction on the current block by combining inter prediction and intra prediction. For example, the video encoding device (3800) can perform intra prediction according to the Planar mode. For example, the video encoding device (3800) can determine a motion vector of a reference block for the current block. The video encoding device (3800) can perform inter prediction using the motion vector. The video encoding device (3800) can predict the current block using a weighted sum of a prediction block according to inter prediction and a prediction block according to intra prediction. The weight can be determined based on whether a block adjacent to the current block was intra-predicted (or inter-predicted).
[0525] In one embodiment of the present disclosure, when the prediction mode of the current block is a geometric segmentation mode, the image encoding device (3800) can perform prediction by segmenting the current block. The image encoding device (3800) can determine a segmentation angle and a segmentation distance for a boundary at which segmentation is performed within the current block. The image encoding device (3800) can segment the current block based on the segmentation angle and the segmentation distance. The image encoding device (3800) can predict the current block by performing inter prediction or intra prediction on each of the segmented regions within the current block. The image encoding device (3800) can (i) perform intra prediction on both segmented regions, (ii) perform inter prediction on one region and intra prediction on the other region, or (iii) perform inter prediction on both segmented regions.
[0526] In one embodiment of the present disclosure, when the prediction mode of the current block is the template matching prediction mode, the image encoding device (3800) can reconstruct the current block using a reference block. The image encoding device (3800) can generate information related to whether the template matching prediction mode is used. The image encoding device (3800) can determine whether the template matching prediction mode is used based on the acquired information. The reference block can be determined based on at least one of a region included in the current image or a region included in a previously decoded image. In one embodiment of the present disclosure, the image encoding device (3800) can determine the reference block using a cost function. The cost function can include at least one of a sum of absolute difference (SAD), a sum of squared difference (SSD), a sum of absolute transformed difference (SATD), a sum of squared error (SSE), or a mean removed SAD (MR-SAD). For example, the video encoding device (3800) can determine the error between templates using at least one cost function among SAD, SATD, SSE, and MR-SAD. When the cost function is SAD, the video encoding device (3800) can determine the error based on the sum of the absolute values of the differences between each sample of the template of the current block and each sample of the template of the candidate block. When the cost function is SSD, the video encoding device (3800) can determine the error based on the sum of the squares of the differences between each sample of the template of the current block and each sample of the template of the candidate block. The cost function may include a function representing the number of identical samples. The video encoding device (3800) can determine a block with a small error among the candidate blocks as a reference block.The video encoding device (3800) can determine a prediction block by performing template matching intra prediction on the current image. In the present disclosure, the process of determining a reference block for the current block using a template may be referred to as template matching (TM). In the present disclosure, performing prediction on the current block based on template matching may be referred to as template matching prediction (TMP) or intra template matching prediction (Intra Template Matching Prediction).
[0527] In one embodiment of the present disclosure, the image encoding device (3800) can determine the intra prediction mode of the current block when the prediction mode of the current block is the intra mode.
[0528] In one embodiment of the present disclosure, the video encoding device (3800) can determine information about a block vector representing a reference block when the prediction mode of the current block is a block copy mode.
[0529] In one embodiment of the present disclosure, the image encoding device (3800) can perform intra prediction or inter prediction on the current block according to the prediction mode of the current block, and encode the current block using a prediction block generated as a result of performing the intra prediction or inter prediction.
[0530] In one embodiment of the present disclosure, when the prediction mode of the current block is block copy mode, the image encoding device (3800) can determine a prediction block from a reference block. For example, the image encoding device (3800) can determine a prediction block that is identical to the reference block or by performing filtering on the reference block. The reference block can be determined based on at least one of a region included in the current image or a region included in a previously decoded image.
[0531] In one embodiment of the present disclosure, when the prediction mode of the current block is a template matching prediction mode, the image encoding device (3800) can reconstruct the current block using a reference block. The image encoding device (3800) can determine a prediction block using the reference block.
[0532] The video encoding device (3800) can perform deblocking filtering. The deblocking filter can improve video quality by smoothing edges between blocks.
[0533] The video encoding device (3800) can perform filtering on samples of a current block on which deblocking filtering has been performed using a Sample Adaptive Offset (SAO) filter and / or a Bilateral Filter (BIF). The SAO filter and BIF can improve image quality by reducing the error between the restored image and the original image. The SAO filter and BIF can perform filtering on a sample-by-sample basis.
[0534] The video encoding device (3800) can perform filtering using an adaptive loop filter (ALF). ALF can improve image quality by reducing the error between the restored image and the original image. ALF can perform filtering on a block-by-block basis.
[0535] In one embodiment of the present disclosure, encoding of a current block may refer to a process of generating information that enables an image decoding device (2000) to restore the current block. The information generated through encoding may be included in a bitstream.
[0536] In one embodiment of the present disclosure, the video encoding device (3800) may generate residual data corresponding to the difference between the predicted block and the current block. If the predicted block is determined to be the current block, residual data may not be generated.
[0537] An image encoding device (3800) can generate a bitstream including an encoding result of an image. The bitstream can include an encoding result for a current block.
[0538] In one embodiment, the video encoding device (3800) may generate a bitstream including residual data. The residual data may include information regarding a difference between an original image (or an original sample) and a predicted image (or a predicted sample). In one embodiment, the video encoding device (3800) may generate a bitstream including transform coefficients of a residual block corresponding to a transform unit. In one embodiment, the video encoding device (3800) may obtain transform coefficients of the residual block based on residual samples of the residual block. For example, the video encoding device (3800) may obtain transform coefficients of the residual block by performing at least one of transforming or quantizing the residual samples of the residual block. In one embodiment, the video encoding device (3800) may determine a transform coefficient of a residual block using a residual sample of a transformation unit. If the size of a residual block corresponding to a transformation unit is larger than the size of the transformation unit, the video encoding device (3800) may determine some of the residual samples of the residual block as residual samples of the transformation unit. Alternatively, the video encoding device (3800) may determine the residual samples of the residual block as residual samples of the transformation unit on which filtering is performed. The video encoding device (3800) may generate a bitstream including the residual samples of the transformation unit.
[0539] In one embodiment of the present disclosure, the video encoding device (3800) can generate a bitstream including information about a block vector representing a reference block when the prediction mode of the current block is a block copy mode.
[0540] In one embodiment of the present disclosure, the image encoding device (3800) can transmit a bitstream to the image decoding device (2000) via a network.
[0541] In one embodiment of the present disclosure, the image encoding device (3800) can store a bitstream in a data storage medium including at least one of a magnetic medium such as a hard disk, a floppy disk, and a magnetic tape, an optical recording medium such as a CD-ROM and a DVD, or a magneto-optical medium such as a floptical disk.
[0542] An image encoding device (3800) can generate a bitstream including syntax elements generated through image encoding. Values corresponding to the syntax elements can be included in the bitstream according to the hierarchical structure of the image.
[0543] The video encoding device (3800) can obtain bins included in a bitstream by entropy encoding syntax elements.
[0544] In one embodiment of the present disclosure, the bitstream may include information about a prediction mode of a current block within a current image.
[0545] In one embodiment of the present disclosure, when the prediction mode of the current block is an intra mode, the bitstream may include information indicating the intra prediction mode of the current block.
[0546] In a prediction mode (e.g., intra mode) that uses reference samples included in a current image, a prediction block of the current block can be generated based on the surrounding samples of the current block according to the intra prediction mode, assuming that there will be continuity between the surrounding samples of the current block and the samples within the current block. An image encoding device (3800) according to an embodiment of the present disclosure can use not only the surrounding samples of the current block included in the current image but also the spatial reference samples included in the current image for intra prediction. When using samples reconstructed before the current block, the size of residual data can be reduced by predicting the samples of the current block using not only the samples immediately adjacent to the current block but also samples far from the current block. In an embodiment of the present disclosure, the image encoding device (3800) performs intra prediction using a reference block including unreconstructed samples, thereby increasing the range of an area that can be determined as a reference block. An image encoding device (3800) according to an embodiment of the present disclosure can improve compression efficiency by increasing the efficiency of intra prediction.
[0547] In a prediction mode (e.g., inter mode) that utilizes reference samples included in a reference image rather than the current image, a prediction block of the current block can be generated based on a reference block (or reference sample) of the reference image according to the prediction mode, under the assumption that there will be continuity between the current image and the reference image. An image encoding device (3800) according to an embodiment of the present disclosure can improve compression efficiency by increasing the efficiency of intra prediction.
[0548] The video encoding device (3800) can improve prediction accuracy by considering both reference blocks (or reference samples) included in the current image and reference blocks (or reference samples) included in images other than the current image. The video encoding device (3800) according to one embodiment of the present disclosure can improve prediction accuracy by considering both the current image and images other than the current image.
[0549] FIG. 39 is a flowchart illustrating an image encoding method according to one embodiment of the present disclosure.
[0550] In one embodiment of the present disclosure, the image encoding method may be performed by an image encoding device (3800). For example, the image encoding device (3800) may perform each step of the image encoding method by having a processor of the image encoding device (3800) execute at least one instruction contained in a memory.
[0551] In step S3910, the image encoding device (3800) can divide a block into multiple sub-blocks.
[0552] In one embodiment of the present disclosure, a block may include a template or a reference block. For example, a block may include at least one of a template of a current block, a template of a reference block, or a reference block. The video encoding device (3800) may determine a cost in various encoding procedures. The video encoding device (3800) may determine a block differently for each encoding procedure. For example, the video encoding device (3800) may determine the template of the current block on which prediction is performed as the block of step S3910 in the template-based intra mode derivation procedure described later in FIG. 23. However, the present invention is not limited thereto, and in the motion vector enhancement procedure, the video encoding device (3800) may determine two reference blocks as the blocks of step S3910. Alternatively, in the intra template matching prediction procedure or the procedure of rearranging the candidate vector list, the video encoding device (3800) may determine the template of the current block and the template of the reference block as the blocks of step S3910.
[0553] In one embodiment of the present disclosure, the video encoding device (3800) can determine the size of a sub-block based on the size of a block. For example, the video encoding device (3800) can determine at least one of the width and height of a sub-block based on at least one of the width and height of a block. The video encoding device (3800) can determine that at least one of the width and height of the block is a multiple of at least one of the width and height of the sub-block. For example, the video encoding device (3800) can determine the size of a sub-block as 8 x 8, 8 x 4, 4 x 8, etc. for a block of 16 x 8.
[0554] In one embodiment of the present disclosure, the video encoding device (3800) can determine the maximum division size of a block. The video encoding device (3800) can obtain information regarding the maximum division size from a bitstream. For example, information regarding the maximum division size can be transmitted through a header of the bitstream. The video encoding device (3800) can determine the size of a subblock to be less than or equal to the maximum division size.
[0555] In one embodiment of the present disclosure, the video encoding device (3800) can determine the number of sub-blocks based on the size of the block. For example, the video encoding device (3800) can determine the number of sub-blocks based on at least one of the width and height of the block. The video encoding device (3800) can obtain a plurality of sub-blocks by dividing the block based on the number of sub-blocks.
[0556] In one embodiment of the present disclosure, all sub-blocks may have the same size. The sub-blocks may have the same height and width. For example, the sub-blocks may all have a size of 4 x 8. However, the present invention is not limited thereto, and the sub-blocks may have the same area. The sub-blocks may have symmetrical widths and heights. For example, the widths and heights of some sub-blocks may have a first value and a second value, and the widths and heights of the remaining sub-blocks may have a second value and a first value. For example, the sub-blocks may have a size of 4 x 8 or 8 x 4.
[0557] In one embodiment of the present disclosure, the image encoding device (3800) can divide two or more blocks into sub-blocks. For example, in a motion vector enhancement procedure, the image encoding device (3800) can divide two reference blocks into sub-blocks, respectively. For example, in an intra-template matching prediction technique, the image encoding device (3800) can divide the template of the current block and the template of the reference block into sub-blocks.
[0558] In step S3920, the image encoding device (3800) can determine a sub-cost corresponding to a sub-block using a sample of the block.
[0559] In one embodiment of the present disclosure, the video encoding device (3800) can determine a sub-cost corresponding to a sub-block using at least one of a prediction sample or a reconstruction sample. For example, in a template-based intra mode derivation procedure, the video encoding device (3800) can determine a sub-cost corresponding to a sub-block using a prediction sample and a reconstruction sample for a sub-block (e.g., a sub-template) partitioned from a template of a current block. For example, in a motion vector enhancement procedure, the video encoding device (3800) can determine a sub-cost corresponding to a sub-block using a reconstruction sample for each of the sub-blocks partitioned from a plurality of reference blocks of the current block. For example, in an intra-template matching prediction procedure or a procedure for rearranging a candidate vector list, the video encoding device (3800) can determine a sub-cost corresponding to a sub-block using a reconstruction sample of a first sub-block partitioned from a template of a current block and a reconstruction sample of a second sub-block partitioned from a template of a reference block.
[0560] In one embodiment of the present disclosure, the sub-cost may be determined using at least one of SATD, MR-SAD, or MR-SATD.
[0561] In one embodiment of the present disclosure, the video encoding device (3800) may determine the cost based on bit depth. For example, the video encoding device (3800) may determine the cost using a predetermined number of bits. For example, the video encoding device (3800) may determine the cost using the upper k bits of the most significant bit (MSB). The video encoding device (3800) may perform a shift based on the bit depth. For example, when the video encoding device (3800) determines the cost using 10 bits of the MSB, the cost may be determined by performing a left shift operation by 2 on an 8-bit MSB value to modify it to 10 bits. For example, when the video encoding device (3800) determines the cost using 10 bits of the MSB, the cost may be determined by performing a right shift operation by 2 on a 12-bit MSB value to modify it to 10 bits. The video encoding device (3800) can perform a rounding operation before performing a right operation.
[0562] In step S3930, the image encoding device (3800) can determine encoding information based on a plurality of sub-costs.
[0563] In one embodiment of the present disclosure, the encoding information may include at least one of an intra prediction mode, an enhanced motion vector, a reordered candidate vector list, and a reference block.
[0564] For example, in a template-based intra mode derivation procedure, the image encoding device (3800) can determine a prediction mode for a current block among a plurality of candidate prediction modes based on a sub-cost.
[0565] For example, in a motion vector enhancement procedure, the image encoding device (3800) can obtain an enhanced motion vector based on a sub-cost.
[0566] For example, in an intra template matching prediction procedure or a procedure for rearranging a candidate vector list, the image encoding device (3800) can determine a reference block of the current block based on the sub cost or determine a rearranged candidate vector list.
[0567] FIG. 40 is a flowchart illustrating an image encoding method according to one embodiment of the present disclosure.
[0568] In one embodiment of the present disclosure, the image encoding method may be performed by an image encoding device (3800). For example, the image encoding device (3800) may perform each step of the image encoding method by having a processor of the image encoding device (3800) execute at least one instruction contained in a memory.
[0569] In step S4010, the image encoding device (3800) can obtain a plurality of sub-templates by dividing the template into equal sizes based on at least one of the width and height of the template of the current block.
[0570] The block described with reference to FIGS. 22 to 33 may represent a template of a current block. The image encoding device (3800) may determine at least one of a split size and a split number of the template based on at least one of a width and a height of the template of the current block. In one embodiment of the present disclosure, the image encoding device (3800) may determine at least one of a split size and a split number of the upper template and the left template based on at least one of a width and a height of the upper template and a width and a height of the left template of the current block.
[0571] The video encoding device (3800) can obtain multiple sub-templates by dividing the template according to the division size and number of divisions.
[0572] In step S4020, the image encoding device (3800) can obtain prediction samples of a plurality of sub-templates corresponding to each of a plurality of candidate prediction modes by using surrounding reference samples of the template.
[0573] The video encoding device (3800) can obtain prediction samples for each of a plurality of candidate prediction modes using reference samples around the template. The plurality of candidate prediction modes can be determined in advance. For example, the plurality of candidate prediction modes can be determined as non-directional modes. For example, the plurality of candidate prediction modes can be determined as planar mode, DC mode, etc. The plurality of candidate prediction modes can be determined using an MPM list.
[0574] In step S4030, the image encoding device (3800) can determine a plurality of sub-costs corresponding to each of the plurality of sub-templates using restoration samples of the plurality of sub-templates and prediction samples of the plurality of sub-templates.
[0575] The video encoding device (3800) can determine a sub-cost corresponding to each sub-template. For example, the video encoding device (3800) can determine the sub-cost using the difference between the predicted sample and the restored sample for each sub-template. The video encoding device (3800) can determine the sub-cost using at least one of the SATD cost function, the MR-SAD cost function, and the MR-SATD cost function.
[0576] In step S4040, the image encoding device (3800) can determine a cost corresponding to each of a plurality of candidate prediction modes based on a plurality of sub-costs.
[0577] The video encoding device (3800) can determine a cost using the sum or average of multiple sub-costs. For example, the cost for a first candidate prediction mode can be determined as the sum or average of multiple sub-costs corresponding to the first candidate prediction mode.
[0578] In step S4050, the image encoding device (3800) can select a prediction mode for the current block from among a plurality of candidate prediction modes by using a cost corresponding to each of the plurality of candidate prediction modes.
[0579] In one embodiment of the present disclosure, the image encoding device (3800) may select a candidate prediction mode with the lowest cost among a plurality of candidate prediction modes as the prediction mode for the current block. The image encoding device (3800) may obtain a prediction sample of the current block using the selected prediction mode.
[0580] In one embodiment of the present disclosure, the video encoding device (3800) may select a plurality of candidate prediction modes having the lowest cost among a plurality of candidate prediction modes as a prediction mode for the current block. The video encoding device (3800) may obtain a prediction sample of the current block using the plurality of candidate prediction modes. For example, the video encoding device (3800) may obtain a prediction sample by combining prediction samples obtained using the plurality of candidate prediction modes.
[0581] In one embodiment of the present disclosure, a video decoding method is provided. The video decoding method may include a step of obtaining a plurality of sub-templates by dividing a template of a current block into equal sizes based on at least one of a width and a height of the template. The video decoding method may include a step of obtaining prediction samples of a plurality of sub-templates corresponding to each of a plurality of candidate prediction modes using surrounding reference samples of the template. The video decoding method may include a step of determining a plurality of sub-costs corresponding to each of the plurality of sub-templates using reconstruction samples of the plurality of sub-templates and prediction samples of the plurality of sub-templates. The video decoding method may include a step of determining a cost corresponding to each of the plurality of candidate prediction modes based on the plurality of sub-costs. The video decoding method may include a step of selecting a prediction mode for a current block from among the plurality of candidate prediction modes using the costs corresponding to each of the plurality of candidate prediction modes.
[0582] In one embodiment of the present disclosure, the step of obtaining a plurality of sub-templates may include a step of determining a split size or a number of splits based on at least one of a width and a height of the template. The step of obtaining a plurality of sub-templates may include a step of obtaining a plurality of sub-templates by splitting the template based on the split size or the number of splits.
[0583] In one embodiment of the present disclosure, the ...
Claims
1. In the video decryption method, A step (S3410) of obtaining a plurality of sub-templates by dividing the template into equal sizes based on at least one of the width and height of the template of the current block; A step (S3420) of obtaining prediction samples of the plurality of sub-templates corresponding to each of the plurality of candidate prediction modes by using surrounding reference samples of the template; A step (S3430) of determining a plurality of sub-costs corresponding to each of the plurality of sub-templates using restoration samples of the plurality of sub-templates and prediction samples of the plurality of sub-templates; A step (S3440) of determining a cost corresponding to each of the plurality of candidate prediction modes based on the plurality of sub-costs; and An image decoding method, comprising a step (S3450) of selecting a prediction mode for the current block from among the plurality of candidate prediction modes using a cost corresponding to each of the plurality of candidate prediction modes.
2. In paragraph 1, The step (S2110) of obtaining the above multiple sub-templates is: A step of determining a split size or number of splits based on at least one of the width and height of the template; and An image decoding method, comprising a step of obtaining the plurality of sub-templates by dividing the template based on the division size or the number of divisions.
3. In paragraph 1 or 2, The step (S2110) of obtaining the above multiple sub-templates is: An image decoding method, comprising a step of determining the width and height of the plurality of sub-templates as the first width and the first height, respectively, based on the width of the template being a multiple of the first width and the height of the template being a multiple of the first height.
4. In any one of paragraphs 1 to 3, The step (S2110) of obtaining the above multiple sub-templates is: A step of identifying at least one of whether the width of the template is a multiple of the second width and whether the height of the template is a multiple of the second height, based on whether the width of the template is not a multiple of the first width or the height of the template is not a multiple of the first height; and A step of determining the width of the plurality of sub-templates as the second width based on the width of the template being a multiple of the second width, or determining the height of the plurality of sub-templates as the second height based on the height of the template being a multiple of the second height, The first width is greater than or equal to the second width, An image decoding method, characterized in that the first height is greater than or equal to the second height.
5. In any one of paragraphs 1 to 4, The above template includes a first template and a second template, and the first template and the second template represent an upper template of the template or a left template of the template, respectively. The step (S2110) of obtaining the above multiple sub-templates is: An image decoding method comprising a step of determining at least one of the width and height of the plurality of sub-templates based on at least one of the width of the first template, the height of the first template, the width of the second template, and the height of the second template.
6. In paragraph 5, The step (S2110) of obtaining the above multiple sub-templates is: An image decoding method, comprising a step of determining the width and height of the plurality of sub-templates as the first width and the first height, based on the width of the first template and the width of the second template being multiples of the first width, and the height of the first template and the height of the second template being multiples of the first height.
7. In paragraph 5 or 6, The step (S2110) of obtaining the above multiple sub-templates is: An image decoding method, comprising a step of determining the width and height of the plurality of sub-templates as the first width and the first height, based on the width of the first template being a multiple of the first width and the height of the second template being a multiple of the first height.
8. In any one of paragraphs 5 to 7, The step (S2110) of obtaining the above multiple sub-templates is: A step of identifying whether the width of the second template is a multiple of the first width and whether the height of the first template is a multiple of the first height, based on whether the width of the first template is not a multiple of the first width or the height of the second template is not a multiple of the first height; and A method for decoding an image, comprising: determining a width of a sub-template into which the second template is divided as the first width, and determining a height of a sub-template into which the first template is divided as the first height, based on the fact that the width of the second template is a multiple of the first width and the height of the first template is a multiple of the first height.
9. In any one of paragraphs 1 to 8, A method for decoding an image, wherein the plurality of sub-costs are determined using at least one of a SATD (Sum of Absolute Difference) cost function, an MR-SAD cost function, or an MR-SATD cost function.
10. In any one of paragraphs 1 to 9, A method for decoding an image, wherein the above cost is determined using an average of the plurality of sub-costs or a sum of the plurality of sub-costs.
11. In any one of paragraphs 1 to 10, Further comprising the step of obtaining information about the maximum segmentation size from the bitstream, A video decoding method, characterized in that the sizes of the plurality of sub-templates are determined to be smaller than or equal to the maximum segmentation size.
12. In any one of paragraphs 1 to 11, The step (S2110) of obtaining the above multiple sub-templates is: A step of determining the height and width of the left template of the template and the height and width of the upper template of the template based on the width and height of the current block; and A step of determining a first division size for the left template and a second division size for the upper template based on the height and width of the left template and the height and width of the upper template, An image decoding method, characterized in that the area for the first division size and the area for the second division size are the same.
13. In the video decryption device, At least one processor comprising a processing circuit; and A memory comprising one or more storage media for storing instructions, The image decoding device, wherein the above instructions are individually or collectively executed by the at least one processor, Obtaining a plurality of sub-templates by dividing the template into equal sizes based on at least one of the width and height of the template of the current block, Obtain prediction samples of the plurality of sub-templates corresponding to each of the plurality of candidate prediction modes by using the surrounding reference samples of the template, Using the restoration samples of the plurality of sub-templates and the prediction samples of the plurality of sub-templates, a plurality of sub-costs corresponding to each of the plurality of sub-templates are determined, Determine a cost corresponding to each of the plurality of candidate prediction modes based on the plurality of sub-costs, An image decoding device that selects a prediction mode for the current block from among the plurality of candidate prediction modes using a cost corresponding to each of the plurality of candidate prediction modes.
14. In the video encoding method, A step (S3310) of obtaining a plurality of sub-templates by dividing the template into equal sizes based on at least one of the width and height of the template of the current block; A step (S3320) of obtaining prediction samples of the plurality of sub-templates corresponding to each of the plurality of candidate prediction modes by using surrounding reference samples of the template; A step (S3330) of determining a plurality of sub-costs corresponding to each of the plurality of sub-templates using restoration samples of the plurality of sub-templates and prediction samples of the plurality of sub-templates; A step (S3340) of determining a cost corresponding to each of the plurality of candidate prediction modes based on the plurality of sub-costs; and An image encoding method, comprising a step (S3350) of selecting a prediction mode for the current block from among the plurality of candidate prediction modes by using a cost corresponding to each of the plurality of candidate prediction modes.
15. In the bitstream transmission method, A step of obtaining a plurality of sub-templates by dividing the template into equal sizes based on at least one of the width and height of the template of the current block; A step of obtaining prediction samples of the plurality of sub-templates corresponding to each of the plurality of candidate prediction modes by using surrounding reference samples of the template; A step of determining a plurality of sub-costs corresponding to each of the plurality of sub-templates using restoration samples of the plurality of sub-templates and prediction samples of the plurality of sub-templates; A step of determining a cost corresponding to each of the plurality of candidate prediction modes based on the plurality of sub-costs; A step of selecting a prediction mode for the current block from among the plurality of candidate prediction modes using a cost corresponding to each of the plurality of candidate prediction modes; A step of obtaining a prediction sample of the current block using the selected prediction mode; A relationship for obtaining residual samples based on original samples of the current block and predicted samples of the current block; and A bitstream transmission method comprising the step of transmitting a bitstream including information about the residual sample.
Citation Information
Patent Citations
Construction Site Ground Displacement Monitoring Method and System
KR1020250146054A
LNS potato stick manufacturing method and LNS potato stick manufactured thereby
KR1020260001763A
Genetic markers and identification methods for identifying fish species of the genus Girella
KR102654968B1
KR20240047434A
KR20240100398A