Method for intra prediction of chroma block, and video encoding and decoding apparatus for performing same

The method for intra prediction of chroma blocks using updated luma block vectors addresses inefficiencies in encoding high-definition video by improving chroma block prediction accuracy and reducing bit usage, enhancing coding efficiency.

WO2025147090A1PCT designated stage expired Publication Date: 2025-07-10INTELLECTUAL DISCOVERY CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2025/000021
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-03
Filing Date
2025-01-02
Publication Date
2025-07-10

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies face challenges in efficiently compressing high-resolution or high-definition video content, particularly in accurately predicting chroma blocks, leading to inefficiencies in coding efficiency and increased bit usage.

Method used

A method for intra prediction of chroma blocks using a block vector derived from corresponding luma blocks, where the block vector of the luma block is updated through a recursive process involving reference blocks, and scaled based on chroma format, to improve prediction accuracy and reduce bit usage.

Benefits of technology

This approach enhances the accuracy of chroma block vectors, reduces the number of bits required for signaling, and improves prediction performance by utilizing a more precise block vector, thereby optimizing coding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2025000021_10072025_PF_FP_ABST
    Figure KR2025000021_10072025_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed is a method for performing intra prediction on a chroma block by using a block vector indicating the position of a reference block within the current picture. The method for intra prediction according to the present disclosure comprises: determining whether or not a luma block corresponding to a chroma block has been encoded in an IBC mode or an IntraTMP mode; if the luma block has been encoded in the IBC mode or the IntraTMP mode, determining a block vector of the luma block; deriving a block vector of the chroma block by using the determined block vector of the luma block; and acquiring a prediction value for the chroma block by using the derived block vector of the chroma block, wherein the block vector of the luma block includes a block vector obtained by updating an initial block vector of the luma block by using a block vector of a luma reference block indicated by the initial block vector of the luma block.
Need to check novelty before this filing date? Find Prior Art

Description

Method for intra prediction of chroma blocks, and video encoding and decoding devices performing the same

[0001] The present disclosure relates to the field of video encoding and decoding. More specifically, the present disclosure relates to a method for deriving a block vector indicating the location of a reference block within a current frame including a chroma block, and performing intra prediction on the chroma block using the block vector of the chroma block.

[0002] With the development and widespread adoption of hardware capable of playing and storing high-resolution or high-definition video content, the need for codecs that effectively encode or decode this content is increasing. Recently, methods for effectively compressing such high-definition or high-definition video content have been implemented. Representative examples of codecs include High Efficiency Video Coding (HEVC) and Versatile Video Coding (VVC).

[0003] In HEVC, a picture is divided into one or more tiles / slices, which are then divided into multiple CTUs (Coding Tree Units). VVC can first divide a picture into multiple sub-pictures. A sub-picture is defined as a group of rectangular slices and was added to VVC to support the function of partially independently encoding / decoding and transmitting a picture. A sub-picture can be divided into tiles / slices, similar to HEVC. VVC also adds a new picture division structure called brick. Bricks are created by horizontally dividing tiles and are the basic unit of parallel processing. In order to process higher resolution images than HEVC, VVC uses a CTU (Coding Tree Unit) with a maximum size of 256x256, which is 16 times larger than HEVC, as the basic unit of encoding / decoding.

[0004] In intra-block prediction, to remove redundancy within the screen, a predicted block is generated using reconstructed pixels adjacent to the current coding block, and a difference value is generated from the current coding block. Unlike intra-block prediction, inter-block prediction generates a predicted block by searching for the block most similar to the current coding block in the previous or subsequent frame. Similar to inter-block prediction, techniques that search for and use the most similar block in the current frame for intra-block prediction are being used in recent codecs.

[0005] Furthermore, conventional codecs utilize methods to improve image compression efficiency by exploiting the correlation and redundancy between luma and chroma components. For example, codecs such as VVC utilize a linear model to determine the correlation between the reconstructed luma and chroma components of the current block, and then predict the chroma component using the linear model.

[0006] A method for intra-predicting a chroma block is disclosed, which improves coding efficiency by deriving a block vector of a precise chroma block using information of a luma block corresponding to a chroma block and performing intra-prediction on a chroma block within a current frame using the derived block vector of the chroma block.

[0007] A method for intra prediction of a chroma block according to one embodiment of the present disclosure includes the steps of: determining whether a luma block corresponding to a chroma block is encoded in an IBC mode or an IntraTMP mode; determining a block vector of the luma block if the luma block is encoded in the IBC mode or the IntraTMP mode; deriving a block vector of the chroma block using the determined block vector of the luma block; and obtaining a prediction value for the chroma block using the derived block vector of the chroma block, wherein the determined block vector of the luma block includes a block vector obtained by updating an initial block vector of the luma block using a block vector of a luma reference block indicated by the initial block vector of the luma block.

[0008] In one embodiment, the step of determining the block vector of the luma block may include determining whether a luma block including a pixel at a center position within a luma block corresponding to the chroma block, a luma block including an upper-left corner pixel, a luma block including an upper-right corner pixel, a luma block including a lower-left corner pixel, and a luma block including a lower-right corner pixel are encoded in the IBC mode or the IntraTMP mode according to a predetermined priority, and determining a block vector of a luma block encoded in the IBC mode or the IntraTMP mode according to the predetermined priority as the block vector of the luma block.

[0009] In one embodiment, the predetermined priority may be in the order of a luma block including an upper right corner pixel, a luma block including an upper left corner pixel, a luma block including a lower right corner pixel, a luma block including a lower left corner pixel, and a luma block including a center pixel.

[0010] In one embodiment, the step of determining a block vector of the luma block includes: determining a luma reference block pointed to by an initial block vector of the luma block; and, if the luma reference block has a block vector, updating the initial block vector of the luma block using the block vector of the luma reference block to derive an updated block vector of the luma block, wherein the updated luma block vector of the luma block can be determined as the block vector of the luma block.

[0011] In one embodiment, when the luma reference block is encoded in the IBC mode or the IntraTMP mode, the luma reference block is determined to have a block vector, and the block vector of the luma reference block may be a block vector determined according to the IBC mode or the IntraTMP mode of the luma reference block.

[0012] In one embodiment, the block vector of the luma reference block may be determined by determining whether a luma reference block including a pixel at a center position within the luma reference block, a luma reference block including an upper-left corner pixel, a luma reference block including an upper-right corner pixel, a luma reference block including a lower-left corner pixel, and a luma reference block including a lower-right corner pixel is encoded in the IBC mode or the IntraTMP mode according to a predetermined priority, and the block vector of the luma reference block searched for as being encoded in the IBC mode or the IntraTMP mode according to the predetermined priority may be determined.

[0013] In one embodiment, the updated block vector of the luma block can be obtained by adding the initial block vector of the luma block and the block vector of the luma reference block.

[0014] In one embodiment, the method further comprises: (A1) determining an updated luma reference block pointed to by the updated block vector; and (A2) if the updated luma reference block has a block vector, updating the updated block vector of the luma block again using the block vector of the updated luma reference block to derive a block vector of the newly updated luma block, wherein the process of updating the luma block vector in steps (A1) and (A2) can be repeatedly performed until a predetermined termination condition is satisfied.

[0015] In one embodiment, the predetermined termination condition is when there is no luma reference block encoded in IBC mode or IntraTMP mode among the luma reference blocks included in the updated luma reference block pointed to by the updated block vector of the luma block, or when the updated luma reference block pointed to by the updated block vector of the luma block goes out of one of a search area, a Coding Tree Unit (CTU), a slice, a tile, or a frame boundary of the IBC mode or IntraTMP mode, and when the predetermined termination condition is satisfied, the process of updating the luma block vector can be terminated.

[0016] In one embodiment, the step of determining whether the luma block corresponding to the chroma block is encoded in the IBC mode or the IntraTMP mode may be determined based on one of the criteria i) to iii) of: i) the number or ratio of luma blocks encoded in the IBC mode or the IntraTMP mode, ii) whether one or more pixels at predetermined positions within the luma block are encoded in the IBC mode or the IntraTMP mode, iii) whether a luma block including one or more pixels at predetermined positions within the luma block exists in the IBC mode or the IntraTMP mode.

[0017] In one embodiment, the step of deriving the block vector of the chroma block may derive the block vector of the chroma block by scaling the block vector of the luma block determined based on the chroma format.

[0018] In one embodiment, when the block vector determined for the luma block is (LVx, LVy), when the chroma format is 4:4:4, the block vector (CVx, CVy) of the chroma block is determined as (LVx, LVy), when the chroma format is 4:2:2, the block vector (CVx, CVy) of the chroma block is determined as ((1 / 2)*LVx, LVy), and when the chroma format is 4:2:0, the block vector (CVx, CVy) of the chroma block can be determined by being scaled as (1 / 2)*(LVx, LVy).

[0019] In one embodiment of the present disclosure, a video decoding device and a video encoding device performing the intra prediction method are disclosed.

[0020] In one embodiment of the present disclosure, a computer-readable recording medium having recorded thereon a program for executing the intra prediction method on a computer is disclosed.

[0021] According to embodiments of the present disclosure, it is possible to increase the accuracy of chroma block vectors and generate chroma block vector information by utilizing a minimum number of bits.

[0022] According to embodiments of the present disclosure, when generating a block vector for a block encoded in IBC (Intra Block Copy) or IntraTMP (Intra Template Matching Prediction) mode, the accuracy of block vector search can be increased and block vector information can be efficiently signaled by utilizing a minimum number of bits.

[0023] In addition, according to embodiments of the present disclosure, prediction performance can be improved and the amount of information related to prediction can be reduced by performing prediction using a more accurate block vector.

[0024] FIG. 1 is a block diagram illustrating an encoding device according to an embodiment of the present disclosure.

[0025] FIG. 2 is a block diagram illustrating a decryption device according to an embodiment of the present disclosure.

[0026] FIG. 3 is a diagram illustrating an example of a multi-type tree structure according to one embodiment of the present disclosure.

[0027] FIG. 4 is a diagram illustrating an example of a quad-type tree structure according to one embodiment of the present disclosure.

[0028] FIGS. 5A and 5B illustrate a process of dividing a non-square shaped encoding unit to determine at least one encoding unit according to one embodiment.

[0029] Figures 6 and 7 are drawings for explaining embodiments of an intra prediction method.

[0030] FIG. 8 is a diagram illustrating an embodiment of an intra prediction method in IBC (Intra Block Copy) mode.

[0031] FIG. 9 is a diagram for explaining an embodiment of an intra prediction method in IntraTMP (Intra Template Matching Prediction) mode.

[0032] Figure 10a illustrates a luma block and a chroma block in a 4:4:4 chroma format.

[0033] Figure 10b illustrates a luma block and a chroma block in a 4:2:2 chroma format.

[0034] Figure 10c illustrates a luma block and a chroma block in 4:2:0 chroma format.

[0035] Figure 11 illustrates an example of a tree structure of a luma block and a chroma block in a 4:2:0 chroma format according to a dual tree structure.

[0036] FIG. 12 is a flowchart illustrating an intra prediction method of a chroma block according to one embodiment of the present disclosure.

[0037] FIG. 13 illustrates reference pixel locations of a luma block according to one embodiment of the present disclosure.

[0038] FIG. 14 is a diagram illustrating a process of updating a block vector of a luma block according to one embodiment of the present disclosure.

[0039] FIG. 15 illustrates an example of a process for updating a block vector of a luma block using a block vector of a reference block referenced by the luma block according to one embodiment of the present disclosure.

[0040] Hereinafter, a video encoding and decoding method and device according to an embodiment of the present disclosure will be described in detail with reference to the attached drawings.

[0041] In the following description of embodiments of the present disclosure, detailed descriptions of related known functions or configurations will be omitted if they are deemed to unnecessarily obscure the gist of the present disclosure. Furthermore, the terms described below are defined in consideration of their functions in the embodiments of the present disclosure, and may vary depending on the intent or custom of the user or operator. Therefore, their definitions should be based on the overall content of the present disclosure.

[0042] In addition, in order to efficiently explain the technical components that make up the embodiments of the present disclosure, the preferred embodiments of the present disclosure described below omit, as much as possible, the system functional components that are already provided in each system functional configuration or are commonly provided in the technical field to which the present disclosure belongs, and focus on explaining the functional components that must be additionally provided for the present disclosure.

[0043] Anyone having ordinary skill in the technical field to which the present disclosure pertains will be able to easily understand the functions of components that have been conventionally used among the functional configurations that are not illustrated below, and will also be able to clearly understand the relationship between the components omitted as described above and the components added for the present disclosure.

[0044] In the present disclosure, a device that encodes a video to generate a video signal bitstream is referred to as an encoding device, an encoding device, or an encoder, and a device that decodes the video signal bitstream to restore the video is referred to as a decoding device, a decoding device, or a decoder.

[0045] A video is a sequence of pictures, and each picture is the target of encoding and decoding. A picture refers to a field or a frame, and these can be used interchangeably. For example, if the video is an interlaced video, one frame is divided into an odd (or odd, top) field and an even (or even, bottom) field, and each field is composed of one picture unit and can be encoded or decoded. If the video is a progressive scan video, one frame is composed of a picture and can be encoded or decoded. A slice / tile is a coding unit that constitutes a part of a picture during encoding, and one picture can include one or more slices / tiles. In addition, a slice / tile can include one or more CTUs (coding tree units). One picture can be composed of one or more tile groups. One tile group can include one or more tiles. A brick can represent a rectangular area of ​​CTU rows within a tile within a picture. A tile may contain one or more bricks. A brick may represent a rectangular area of ​​CTU rows within the tile. A tile may be divided into multiple bricks, each of which may contain one or more CTU rows within the tile. A tile that is not divided into multiple bricks may also be treated as a brick.

[0046] A pixel or pel is the smallest unit that constitutes an image, and the terms pixel and sample can be used interchangeably. A sample can generally represent a pixel or a pixel value, or it can represent only a pixel or pixel value of the luminance component, or only a pixel or pixel value of the chroma component.

[0047] In addition, the unit is used to refer to a basic unit of image processing or a specific location of a picture, and represents an image area including at least one of a luminance component and a chrominance component. Specifically, the unit may be used as a concept including a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU), and a transform unit (TU). In the present disclosure, a unit may be referred to as a unit. In addition, a block represents an image area including a specific component among luminance components and chrominance components, and an MxN block may represent a set of samples or transform coefficients consisting of M columns and N rows. Here, the terms unit, block, partition, unit, signal, and area may be used interchangeably.

[0048] FIG. 1 is a block diagram illustrating an encoding device according to an embodiment of the present disclosure, and is intended to explain the configuration and operation of a video encoder for encoding video.

[0049] Referring to FIG. 1, a video encoder (100) may be configured to include a transformation unit (110), a quantization unit (120), an inverse quantization unit (130), an inverse transformation unit (140), a filtering unit (150), a prediction unit (160), a DPB (Decoded Picture Buffer, 170), and an entropy coding unit (180).

[0050] The conversion unit (110) converts the residual signal, which is the difference between the input video signal and the prediction signal generated by the prediction unit (160), to obtain a conversion coefficient value.

[0051] For example, the Discrete Cosine Transform (DCT), the Discrete Sine Transform (DST), or the Wavelet Transform can be used.

[0052] The transform kernel used for transforming the residual block may be a transform kernel having separable vertical and horizontal transform properties. In this case, the transform for the residual block may be performed separately as vertical and horizontal transforms. For example, the encoder may perform a vertical transform by applying the transform kernel in the vertical direction of the residual block. Alternatively, the encoder may perform a horizontal transform by applying the transform kernel in the horizontal direction of the residual block.

[0053] Meanwhile, the transform kernel may be used as a term referring to a set of parameters used for transforming the residual signal, such as a transform matrix, a transform array, a transform function, or a transform, and may be any one of a plurality of available kernels, and transform kernels based on different transform types may be used for each of the vertical transform and the horizontal transform.

[0054] The transformation coefficients may be distributed such that higher coefficients are distributed toward the upper left corner of the block, and coefficients closer to '0' are distributed toward the lower right corner of the block. Furthermore, as the current block size increases, there is a possibility that many '0' coefficients exist in the lower right area. To reduce the transformation complexity of large blocks, only the upper left area can be left, and the remaining areas can be reset to '0'.

[0055] Additionally, error signals may exist only in some regions of a coding block, in which case the conversion process may be performed only on some arbitrary regions. For example, in a block of size 2Nx2N, error signals may exist only in the first 2NxN block, in which case the conversion process may be performed only on the first 2NxN block, but the conversion process may not be performed on the second 2NxN block and may not be encoded or decoded.

[0056] The encoder may perform additional transformations before the transform coefficients are quantized. The transformation method described above may be referred to as a primary transform, and the additional transformation may be referred to as a secondary transform.

[0057] The secondary transform can be optional for each residual block, for example, the encoder can improve coding efficiency by performing the secondary transform for areas where it is difficult to concentrate energy in the low-frequency region using only the primary transform.

[0058] Specifically, a secondary transformation may be additionally performed on blocks in which residual values ​​appear significantly in directions other than the horizontal or vertical direction of the residual block, and the secondary transformation may not be performed separately into vertical transformation and horizontal transformation, unlike the primary transformation. The secondary transformation as described above may be referred to as a low frequency non-separable transform (LFNST).

[0059] The quantization unit (120) quantizes the transformation coefficient value output from the transformation unit (110).

[0060] In order to increase coding efficiency, a method is used in which, instead of coding the picture signal as is, a picture is predicted using an already coded area through a prediction unit (160), and a restored picture is obtained by adding a residual value between the original picture and the predicted picture to the predicted picture.

[0061] To avoid mismatches between the encoder and decoder, when performing prediction in the encoder, information available in the decoder must also be used, and for this purpose, the encoder can perform a process of reconstructing the current block that it has encoded.

[0062] The inverse quantization unit (130) inversely quantizes the transform coefficient values, and the inverse transformation unit (140) restores the residual values ​​using the inverse quantized transform coefficient values.

[0063] The filtering unit (150) performs filtering operations using a deblocking filter, a sample adaptive offset (SAO), an adaptive loop filter (ALF), etc. to improve the quality of the restored picture and enhance encoding efficiency.

[0064] A deblocking filter is a filter for removing distortion within a block generated at the boundary between blocks in a restored picture. The encoder can determine whether to apply a deblocking filter to a boundary based on the distribution of pixels included in several columns or rows based on an arbitrary boundary within a block.

[0065] When a deblocking filter is applied, the filtering unit (150) can apply a long filter, a strong filter, or a weak filter depending on the deblocking filtering strength, and can process horizontal filtering and vertical filtering in parallel.

[0066] Sample Adaptive Offset (SAO) can be used to correct the offset from the original image on a pixel-by-pixel basis for a residual block to which a deblocking filter is applied. In order to correct the offset for a specific picture, the filtering unit (150) can use a method (Band Offset) that divides the pixels included in the image into a certain number of regions, determines the regions to perform offset correction, and applies the offset to the regions. In addition, the filtering unit (150) can use a method (Edge Offset) that applies the offset by considering the edge information of each pixel.

[0067] Adaptive Loop Filtering (ALF) is a method that divides pixels in an image into predetermined groups, determines a filter to be applied to each group, and performs differential filtering for each group. Information regarding whether to apply an adaptive loop filter can be signaled on a coding unit basis, and the shape and filter coefficients of the ALF filter to be applied can vary depending on the block. Furthermore, the same adaptive loop filter can be applied regardless of the characteristics of the target block.

[0068] The filtered picture can be stored in DPB (170) to be used as a reference picture.

[0069] The prediction unit (160) includes an intra / IBC prediction unit (161) and an inter prediction unit (165). The intra / IBC prediction unit (161) performs intra prediction, IntraTMP prediction, and IBC prediction within the current picture, and the inter prediction unit (165) performs inter prediction that predicts the current picture using a reference picture stored in the DPB (170).

[0070] The intra / IBC prediction unit (161) performs intra prediction from restored areas within the current picture and transmits intra encoding information to the entropy coding unit (180). Here, the intra encoding information may include at least one of an intra prediction mode, an MPM (Most Probable Mode) flag, an MPM index, and information about a reference sample.

[0071] In addition, the intra / IBC prediction unit (161) can perform IBC (Intra BLock Copy) prediction from restored samples within the current picture and transfer the IBC encoding information to the entropy coding unit (180). In this case, the intra / IBC prediction unit (161) can obtain a block vector value indicating a reference region used for prediction of the current region by referring to a specific region within the current picture, and can perform IBC prediction using the obtained block vector value.

[0072] In addition, the intra / IBC prediction unit (161) can perform IntraTMP prediction, which generates prediction information by searching for a reference block on its own through a template matching process from restored samples within the current picture. In IntraTMP mode, the use of a reference block within the same frame as the IBC mode as prediction information for the target block is the same as the IBC mode, but the block vector (BV), which is motion information for the target block, is not transmitted to the decoding device, and the decoding device can search for the reference block through the same template matching process as the encoding side to generate prediction information.

[0073] The intra / IBC prediction unit (161) can transmit IBC encoding information including at least one of the size information of the reference area and block vector information (index information for block vector prediction of the current block within the motion candidate list, block vector difference information) to the entropy coding unit (160).

[0074] The inter prediction unit (165) refers to a specific area of ​​the restored reference picture to find the part most similar to the current area, obtains a motion vector value which is the distance between the areas, and transmits motion information (reference direction indication information (L0 prediction, L1 prediction, bidirectional prediction), reference picture index, motion vector information, etc.) for the obtained reference area to the entropy coding unit (180).

[0075] Additionally, the inter prediction unit (165) performs motion compensation using motion information to generate a prediction block for the current block, and transmits inter encoding information including motion information for the reference area to the entropy coding unit (180).

[0076] Meanwhile, the quantized transform coefficients in the form of a two-dimensional array can be rearranged into a one-dimensional array for entropy coding.

[0077] The method of scanning the quantized transform coefficients can be determined according to the size of the transform block and the intra prediction mode, and diagonal, vertical, and horizontal scans can be applied, and the scan information can be signaled on a block-by-block basis or derived from the decoder according to a set rule.

[0078] The entropy coding unit (180) generates a bitstream by entropy coding information representing quantized transform coefficients, intra-coding information, and inter-coding information, and for this purpose, a variable length coding (VLC) method and an arithmetic coding method can be used.

[0079] Variable-length coding (VLC) converts input symbols into a series of codewords, each of which can be of variable length. For example, frequently occurring symbols can be represented by shorter codewords, while less frequently occurring symbols can be represented by longer codewords.

[0080] As a variable length coding method, a context-based adaptive variable length coding (CAVLC) method can be used.

[0081] Arithmetic coding converts consecutive data symbols into a single prime number using the probability distribution of each data symbol, thereby obtaining the optimal prime number bits required to express each symbol.

[0082] As an arithmetic coding method, the context-based adaptive binary arithmetic code (CABAC) method can be used.

[0083] CABAC is a binary arithmetic encoding method that utilizes multiple context models generated based on experimentally derived probabilities. The context models can also be referred to as context models. First, if the symbols are not in binary form, the encoder binarizes each symbol using methods such as exp-Golomb. The binarized 0s and 1s can be represented as bins.

[0084] The CABAC initialization process is divided into context initialization and arithmetic coding initialization. Context initialization initializes the occurrence probability of each symbol, determined by the symbol type, quantization parameter (QP), and slice type (I, P, B). A context model with this initialization information can use probability-based values ​​obtained through experiments.

[0085] The context model provides the probability of occurrence of the Least Probable Symbol (LPS) or Most Probable Symbol (MPS) for the symbol currently being coded, and information (valMPS) on which empty value between 0 and 1 corresponds to the MPS.

[0086] One of several context models is selected through a context index (ctxIdx), and the context index can be derived through information of the block currently to be encoded or information of surrounding blocks.

[0087] Initialization for binary arithmetic coding is performed based on the probability model selected from the context model. Binary arithmetic coding is performed by dividing the data into probability intervals based on the occurrence probabilities of 0 and 1, and then encoding the probability interval corresponding to the bin to be processed becomes the entire probability interval for the next bin to be processed.

[0088] The location information within the probability interval processed for the last bin is output. However, since the probability interval cannot be infinitely divided, if it shrinks to a certain size, a renormalization process is performed to expand the probability interval and output the corresponding location information. Furthermore, after each bin is processed, a probability update process can be performed, which sets a new probability for the next bin to be processed based on the information from the processed bin.

[0089] Meanwhile, the video encoder (100) may, in the process of encoding the input image, divide the input image into one or more coding tree units (CTUs), and recursively divide one CTU again according to a quad tree (QT) structure or a multi type tree (MTT) structure. Based on the final coding unit that is no longer divided, the video encoder (100) may perform prediction, transformation, and restoration processes for the coding unit. Prediction of the coding unit may be performed using a prediction unit (PU), and transformation may be performed using a transform unit (TU). The division structure of the CTU may be determined by selecting a division structure that has the optimal RD cost from the RD (Rate Distortion) perspective.

[0090] The bitstream generated from the video encoder (100) is encapsulated into NAL (Network Abstraction Layer) units as basic units.

[0091] NAL units are divided into VCL (Video Coding Layer) NAL units containing video data and non-VCL NAL units containing parameter information for decoding video data, and various types of VCL or non-VCL NAL units may exist.

[0092] A NAL unit consists of NAL header information and data, a Raw Byte Sequence Payload (RBSP). The NAL header information includes summary information about the RBSP. The RBSP of a VCL NAL unit contains an integer number of encoded coding tree units.

[0093] In order to decode a bitstream in a decoder, the bitstream must first be divided into NAL units, and then each divided NAL unit must be decoded. Meanwhile, the information required for decoding the bitstream can be transmitted as part of a picture parameter set (PPS), a sequence parameter set (SPS), a video parameter set (VPS), etc.

[0094] Meanwhile, the configuration and operation of the encoder described with reference to FIG. 1 are according to one embodiment of the present disclosure, and some configurations may be omitted or added as needed.

[0095] FIG. 2 is a block diagram illustrating a decoding device according to an embodiment of the present disclosure, and is intended to explain the configuration and operation of a video decoder for encoding video.

[0096] Referring to FIG. 2, a video decoder (200) may be configured to include an entropy decoding unit (210), an inverse quantization unit (220), an inverse transformation unit (230), a filtering unit (240), a prediction unit (260), and a DPB (Decoded Picture Buffer, 270).

[0097] The entropy decoding unit (210) entropy decodes the bitstream to extract transform coefficient information, intra-coding information, inter-coding information, etc. for each region.

[0098] For example, the entropy decoding unit (210) can obtain a binary code for transform coefficient information of a specific area from a bitstream, and can obtain a quantized transform coefficient by de-binarizing the binary code.

[0099] The inverse quantization unit (220) inversely quantizes the quantized transform coefficients, and the inverse transformation unit (230) restores the residual value using the inverse quantized transform coefficients.

[0100] Meanwhile, the residual value obtained from the inverse transformation unit (230) is combined with the predicted value obtained from the prediction unit (260) to restore the original pixel value.

[0101] The filtering unit (240) performs a filtering operation using a deblocking filter, a sample adaptive offset, an adaptive loop filter, etc. to improve the image quality of the restored picture, and the filtered picture can be output or stored in the DPB (270) to be used as a reference picture for the next picture.

[0102] The prediction unit (260) includes an intra / IBC prediction unit (261) and an inter prediction unit (265), and generates a prediction picture by utilizing the encoding type decoded through the entropy decoding unit (210), the transform coefficient for each region, and the intra / inter encoding information.

[0103] To restore the current block in which decoding is performed, the decoded region of the current picture or other pictures containing the current block can be used. A picture (or tile / slice) that performs intra prediction or intra BC prediction using only the current picture for restoration is called an intra picture or I picture (or tile / slice), and a picture (or tile / slice) that can perform all of intra prediction, inter prediction, and intra BC prediction is called an inter picture (or tile / slice).

[0104] Meanwhile, a picture (or tile / slice) that uses at most one motion vector and reference picture index to predict sample values ​​of each block among inter-pictures (or tiles / slices) is called a predictive picture or P-picture (or tile / slice), and a picture (or tile / slice) that uses at most two motion vectors and reference picture indices is called a bi-predictive picture or B-picture (or tile / slice).

[0105] That is, a P picture (or tile / slice) uses at most one motion information set to predict each block, and a B picture (or tile / slice) uses at most two motion information sets to predict each block. Here, a motion information set may include one or more motion vectors and one reference picture index.

[0106] The intra / IBC prediction unit (261) generates a prediction block using intra encoding information and restored samples within the current picture, and the intra encoding information may include at least one of an intra prediction mode, an MPM (Most Probable Mode) flag, and an MPM index.

[0107] The intra / IBC prediction unit (261) can predict sample values ​​of the current block using restored samples located on the left and / or upper side of the current block as reference samples.

[0108] For example, the reference samples may be samples adjacent to the left boundary of the current block and / or samples adjacent to the upper boundary, and may be samples located on a line within a preset distance from the left boundary of the current block among samples of neighboring blocks of the current block and / or samples located on a line within a preset distance from the upper boundary of the current block. In this case, the neighboring blocks of the current block may include at least one of a left (L) block, an upper (A) block, a below left (BL) block, an above right (AR) block, or an above left (AL) block adjacent to the current block.

[0109] Additionally, the intra / IBC prediction unit (261) can restore the current region by referring to a specific region including restored samples within the current picture. To this end, the intra / IBC prediction unit (261) can perform IBC prediction using IBC encoding information obtained from the entropy decoding unit (210), and the IBC encoding information can include block vector information.

[0110] Additionally, the intra / IBC prediction unit (261) can perform IntraTMP prediction, which generates prediction information by searching for a reference block on its own through a template matching process from restored samples within the current picture.

[0111] The inter prediction unit (265) generates a prediction block using the reference picture and inter encoding information stored in the DPB (270), and the inter encoding information may include a set of motion information (reference picture index, motion vector information, etc.) of the current block for the reference block.

[0112] Meanwhile, inter prediction can include L0 prediction, L1 prediction, and bi-prediction.

[0113] L0 prediction refers to prediction using a single reference picture included in the L0 picture list, and L1 prediction refers to prediction using a single reference picture included in the L1 picture list. For this, a set of motion information (e.g., motion vector and reference picture index) may be required.

[0114] In the biprediction method, up to two reference regions can be used. These two reference regions may exist in the same reference picture or in different pictures. Accordingly, in the two sets of motion information used in the biprediction method, two motion vectors may correspond to the same reference picture index or to different reference picture indices.

[0115] At this time, the reference pictures are pictures that are located temporally before or after the current picture, and may be completed pictures that have already been restored, and the two reference areas used in the pair prediction method may be areas selected from the L0 picture list and the L1 picture list, respectively.

[0116] The inter prediction unit (265) can obtain a reference block of the current block using a motion vector and a reference picture index, and the reference block exists in a reference picture corresponding to the reference picture index.

[0117] Additionally, the sample values ​​of a block specified by a motion vector or their interpolated values ​​can be used as a predictor of the current block. For motion prediction with subpel-level pixel accuracy, an 8-tap interpolation filter can be used for the luminance signal, and a 4-tap interpolation filter can be used for the chrominance signal.

[0118] Meanwhile, the configuration and operation of the decoder described with reference to FIG. 2 are according to one embodiment of the present disclosure, and some configurations may be omitted or added as needed, and the decoder may decode an image by performing the reverse process of the encoding method of the encoder described above.

[0119] A block partitioning method according to an embodiment will be described. The block partitioning procedure according to the present disclosure may be performed in the aforementioned video encoder (100), and partitioning-related information may be encoded in the entropy coding unit (180) and transmitted to the video decoder (200) in the form of a bitstream. The entropy decoding unit (210) of the video decoder (200) may parse the bitstream to obtain partitioning-related information, and determine a block partitioning structure based on the partitioning-related information. In addition, the video decoder (200) may perform a decoding procedure, such as prediction, inverse transformation, block restoration, and filtering, based on the determined block partitioning structure.

[0120] As described above, a video is a sequence of pictures, and each picture constituting the video can be divided into a plurality of coding tree units (CTUs). A coding tree unit (CTU) may correspond to a coding tree block (CTB). A CTU may include a coding tree block of luma samples and two coding tree blocks of corresponding chroma samples. A CTU may include a luma block of luma samples and two corresponding blocks of chroma samples of a corresponding predetermined size less than or equal to the size of the luma block according to a chroma format (color sampling format). The maximum allowable size of a CTU may be different from the maximum allowable size of a CTU for transformation. For example, the maximum allowable size of a luma block within a CTU may be 128x128.

[0121] A CTU can be split into coding units (CUs) based on a quad-tree (QT) structure. Furthermore, according to the present disclosure, a CTU can be split based on a multi-type tree structure split including not only a quad-tree but also a binary-tree (BT) and a ternary-tree (TT). In the coding tree structure, each coding unit can have a square or rectangular shape. A CTU can first be split into a quad-tree structure. Thereafter, leaf nodes of the quad-tree structure can be further split by a multi-type tree structure.

[0122] FIG. 3 is a diagram illustrating an example of a multi-type tree structure according to one embodiment of the present disclosure.

[0123] In one embodiment of the present disclosure, the multi-type tree structure may include four splitting types as illustrated in FIG. 3. The four splitting types may include vertical binary splitting (SPLIT_BT_VER), horizontal binary splitting (SPLIT_BT_HOR), vertical ternary splitting (SPLIT_TT_VER), and horizontal ternary splitting (SPLIT_TT_HOR). In the present disclosure, vertical binary splitting may be referred to as vertical binary tree splitting, horizontal binary splitting may be referred to as horizontal binary tree splitting, vertical ternary splitting may be referred to as vertical ternary splitting, and horizontal ternary splitting may be referred to as horizontal ternary splitting. Leaf nodes of the multi-type tree structure may be referred to as CUs. These CUs may be used for prediction and transformation procedures. In the present disclosure, CUs, PUs, and TUs may generally have the same block size. However, if the maximum supported transform length is smaller than the width or height of the color component of the CU, the CU and TU may have different block sizes.

[0124] Vertical binary tree partitioning and horizontal binary tree partitioning are methods of dividing the current encoding unit into two encoding units by dividing it in half horizontally or vertically, respectively. For example, if a 32x32 sized encoding unit is vertically partitioned into two encoding units according to vertical binary tree partitioning, the two partitioned encoding units can each have a size of 16x32.

[0125] Vertical 3-tree splitting and horizontal 3-tree splitting are methods of splitting the current coding unit into three coding units by splitting the width or height in a ratio of 1:2:1, respectively. For example, when a coding unit having a size of 16x32 is split horizontally into three coding units according to horizontal 3-tree splitting, the three split coding units may have sizes of 16x8, 16x16, and 16x8 from the top, respectively. As another example, when a coding unit having a size of 32x32 is split vertically into three coding units according to vertical 3-tree splitting, the three split coding units may have sizes of 8x32, 16x32, and 8x32 from the left, respectively.

[0126] Specified split information may be signaled to indicate whether the current encoding unit is split according to a multi-type tree structure. Split information related to splitting of the multi-type tree structure may include a flag (mtt_split_cu_vertical_flag) indicating whether the splitting direction according to the multi-type tree structure is vertical and a flag (mtt_split_cu_binary_flag) indicating whether the splitting type is a binary split type or a ternary split type. If the value of mtt_split_cu_vertical_flag is 0, it may indicate that the splitting direction according to the multi-type tree structure of the current encoding unit is horizontal, and if it is 1, it may indicate that the splitting direction is vertical. If mtt_split_cu_binary_flag is 0, it may indicate that the splitting according to the multi-type tree structure of the current encoding unit is ternary, that is, split into three, and if it is 1, it may indicate that the splitting according to the multi-type tree structure is binary, that is, split into two. The video encoder (100) encodes the bitstream by including the split information (mtt_split_cu_vertical_flag, mtt_split_cu_binary_flag) according to the multi-type tree structure, and the video decoder (200) can determine the multi-type tree structure of the encoding unit by parsing the split information (mtt_split_cu_vertical_flag, mtt_split_cu_binary_flag) included in the bitstream.

[0127] FIG. 4 is a diagram illustrating an example of a quad-type tree structure according to one embodiment of the present disclosure.

[0128] A picture (400) is divided into coding tree units (CTUs), and a division structure is determined for each CTU. Each CTU can be hierarchically divided into a plurality of lower coding units with depth information (cqtdepth) based on the tree structure. The depth information (cqtdepth) is a variable indicating the depth divided from the CTU to the current coding unit, and the cqtDepth of the CTU is set to 0, and as the CTU is divided into quadtrees, the cqtdepth may increase by a predetermined value, for example, 1. That is, when dividing from a CTU according to a quad-type tree structure, the cqtdepth of the divided coding unit may increase by a predetermined value, for example, 1, whenever the horizontal size and / or vertical size of the CU is reduced by half due to the division.

[0129] Information on whether a coding unit is split can be expressed through split information of the CU. The split information can be 1-bit flag information. All CUs, except for coding units that are no longer split, can include split information. For example, if the value of the split information is the first value, the CU may not be split, and if the value of the split information is the second value, the CU may be split. The split information can be a flag (split_qt_flag) indicating whether the current coding unit is split into coding units of a lower depth according to a quad-type tree structure. If the split information (split_qt_flag) is 0, it can indicate that the current coding unit is not split, and if the split information (split_qt_flag) is 1, it can indicate that the current coding unit is split into two horizontally and vertically according to the quad-type tree structure and split into four coding units of a lower depth.

[0130] Referring to FIG. 4, when a CTU (410) of MxN size with cqtdepth of 0 is split according to a quad-type tree structure as shown, split information (split_qt_flag) for the CTU (410) and the coding units included in the CTU (410) will be described. If the CTU (410) is no longer split into coding units of lower depths, the split information (split_qt_flag) of the CTU (410) is set to 0. In order to have a split structure as shown in FIG. 4, the CTU (410) is split into four coding units (420a, 420b, 420c, 420d) of lower depth (cqtdepth=1) according to the quad-type tree structure, and the coding unit (420d) on the lower right among the four coding units must be split again into four coding units (430a, 430b, 430c, 440d) of lower depth (cqtdepth=2), so the split information (split_qt_flag) of the CTU (410) is set to 1, and the split of the coding unit (420d) on the lower right among the four coding units (420a, 420b, 420c, 420d) of lower depth (cqtdepth=1) The information (split_qt_flag) is set to 1, the split information (split_qt_flag) of the remaining coding units (420a 420b, 420c) is set to 0, and since the four coding units (430a, 430b, 430c, 440d) of the lower depth (cqtdepth=2) are no longer split, the split information of the four coding units (430a, 430b, 430c, 440d) may be set to 0 or may not exist.

[0131] Meanwhile, in addition to the partitioning information according to the multi-type tree and quad-type tree structures, with respect to the partitioning structure of the block, the following parameters may be included in one or more of the positions of the Sequence Parameter Set (SPS), the Picture Parameter Set (PPS), the Picture Header (PH), and the Slice Header (SH) in HLS (High-Level Syntax) and signaled from the video encoder (100) to the video decoder (200). For example, at least one of the following parameters can be signaled in the high-level syntax: CTU size, which is a parameter indicating the size of the root node of the quadtree; MinQTSize, which is a parameter indicating the minimum available size of the quadtree leaf node; MaxBTSize, which is a parameter indicating the maximum available size of the binary tree root node; MaxTTSize, which is a parameter indicating the maximum available size of the ternary tree root node; MaxMttDepth, which is a parameter indicating the maximum allowed hierarchy depth of the multitype tree split from the quadtree leaf node; MinBtSize, which is a parameter indicating the minimum available leaf node size of the binary tree; and MinTtSize, which is a parameter indicating the minimum available leaf node size of the ternary tree. In one embodiment using the 4:2:0 chroma format, the CTU size can be set to a 128x128 luma block and two 64x64 chroma blocks corresponding to the luma block. In this case, MinQTSize can be set to 16x16, MaxBtSize can be set to 128x128, MaxTtSzie can be set to 64x64, MinBtSize and MinTtSize can be set to 4x4, and MaxMttDepth can be set to 4. Quadtree partitioning can be applied to CTU to generate quadtree leaf nodes. Quadtree leaf nodes can be called leaf QT nodes. Quadtree leaf nodes have a size of 16x16 (e.g.g. the MinQTSize) can have a size of 128x128 (e.g. the CTU size). If the leaf QT node is 128x128, it may not be further split into a binary tree / ternary tree. This is because in this case, even if it is split, it exceeds MaxBtsize and MaxTtszie (i.e. 64x64). In other cases, the leaf QT node may be further split into a multitype tree. Therefore, the leaf QT node is the root node for the multitype tree, and the leaf QT node may have a multitype tree depth (mttDepth) value of 0. If the multitype tree depth reaches MaxMttdepth (e.g. 4), no further splits may be considered. If the width of the multitype tree node is equal to MinBtSize and less than or equal to 2xMinTtSize, no further horizontal splits may be considered. If the height of a multi-type tree node is equal to MinBtSize and less than or equal to 2xMinTtSize, no further vertical divisions may be considered. In such a case where divisions are not considered, the encoder may omit signaling of the division information. In this case, the decoder may derive the division information as a predetermined value.

[0132] FIGS. 5A and 5B illustrate a process of dividing a non-square coding unit according to one embodiment to determine at least one coding unit. In FIGS. 5A and 5B , the non-square coding unit may be generated when a square upper depth coding unit is divided according to the multi-type tree structure of FIG. 3 described above, or when a non-square coding unit divided according to the multi-type tree structure of FIG. 3 is further divided into four horizontally and vertically according to a quadtree structure.

[0133] The video decoder (200) may determine the current encoding unit (300 or 350) as the final encoding unit (510 or 560) without further splitting it based on the split information of the current encoding unit (500 or 560) of a non-square shape if the split information indicates that the current encoding unit (300 or 350) is no longer split, or may split the current encoding unit (500 or 560) of a non-square shape according to the split information to determine a multi-type tree structured encoding unit (520a, 520b, 530a, 530b, 530c, 570a, 570b, 580a, 580b, 580c) or a quad tree structured encoding unit (540a, 540b, 540c, 540d, 590a, 590b, 590c, 590d).

[0134] Hereinafter, embodiments of the intra prediction method will be described in more detail with reference to FIGS. 6 and 7.

[0135] Figures 6 and 7 are drawings for explaining embodiments of an intra prediction method.

[0136] For intra prediction, intra prediction mode information indicating an intra prediction direction may be signaled, and the intra prediction mode information indicates any one of a plurality of intra prediction modes constituting an intra prediction mode set.

[0137] As illustrated in FIG. 6, the intra prediction mode set may include a planar mode, a DC mode, and 65 directional modes, and each intra prediction mode may be indicated through an intra prediction mode index.

[0138] For example, intra prediction mode index "0" indicates planar mode, intra prediction mode index "1" indicates DC mode, and intra prediction mode indexes "2" to "66" can indicate different directional modes, respectively.

[0139] The directional modes each indicate different angles within a preset angular range, for example, a directional mode can indicate an angle within an angular range from 45 degrees to -135 degrees clockwise.

[0140] In this case, the intra prediction mode index "2" may indicate the Horizontal Diagonal (HDIA) mode, the intra prediction mode index "18" may indicate the Horizontal (HOR) mode, the intra prediction mode index "34" may indicate the Diagonal (DIA) mode, the intra prediction mode index "50" may indicate the Vertical (VER) mode, and the intra prediction mode index "66" may indicate the Vertical Diagonal (VDIA) mode.

[0141] If the current block is a non-square block, 20 additional wide angular modes can be used, indicating angles greater than 45 degrees clockwise or less than -135 degrees.

[0142] Based on the intra prediction mode information as described above, reference samples to be used for intra prediction for the current block are determined.

[0143] For example, if the intra prediction mode index indicates a specific directional mode, the reference sample corresponding to that angle from the current sample of the current block is used for prediction for the current sample.

[0144] As described above, for intra prediction, surrounding already restored samples are used as reference samples, and the reference samples may be restored samples located to the left or above the current block.

[0145] Referring to FIG. 7, the reference samples may be samples adjacent to the left boundary and upper boundary of the current block.

[0146] For example, if the size of the current block is NxN and samples of a single reference line adjacent to the current block are used for intra prediction, reference samples can be set using (2N*2+1) surrounding samples located on the left (L, Left), top (T, Top), and top-left (TL, Top-left) of the current block.

[0147] Meanwhile, samples of multiple reference lines (MRL) may be used for intra prediction of the current block, and the multiple reference lines may be composed of n reference lines located within a preset range from the current block. In this case, separate reference line index information indicating the reference lines to be set as reference pixels may be signaled.

[0148] Additionally, if at least some of the samples to be used as reference samples have not yet been restored, reference samples can be obtained through a reference sample padding process, and a reference sample filtering process can be performed to reduce errors in intra prediction.

[0149] FIG. 8 illustrates an embodiment of an intra prediction method in IBC (Intra Block Copy) mode.

[0150] Referring to Figure 8, in the IBC mode, prediction information of the current block, which is the encoding target block, is obtained from a reference block that has already been decoded and is located within the same frame.

[0151] At this time, the vector information from the current block, which is the encoding target block, to the reference block is referred to as a block vector (BV).

[0152] Although the IBC prediction method described above is an intra-frame prediction method, it is similar to an inter-frame prediction method in that it derives and transmits motion information of the current block to be encoded.

[0153] The IBC prediction method can be divided into ibc_skip / merge mode and ibc_amvp mode, and ibc_skip / merge and ibc_amvp can use skip, merge, AMVP (Advanced Motion Vector Prediction) and similar encoding, information transmission and decoding methods in inter-frame prediction.

[0154] In ibc_skip / merge mode, the block vector (BV) value of the current block can be derived using the merge_idx information. In ibc_amvp mode, the block vector (BV) value of the corresponding block can be derived using the mvd, mvp, and amvr values.

[0155] FIG. 9 illustrates an embodiment of an intra prediction method in IntraTMP (Intra Template Matching Prediction) mode.

[0156] As described above, in IBC mode, a block vector (BV), which is motion information for a target block, is derived and transmitted to the decoding device to use a reference block within the same frame as prediction information for the current block.

[0157] Meanwhile, in IntraTMP mode, the use of a reference block within the same frame as the prediction information for the target block is the same as in IBC mode, but the block vector (BV), which is motion information for the target block, is not transmitted to the decoding device, and the decoding device can find the prediction information by searching for the reference block on its own through a template matching process.

[0158] Referring to FIG. 9, a template area is defined around a target block (IntraTMP block), and a template area (Best matching Template) that most closely matches the template area of ​​the target block in the reconstructed area of ​​blocks within the same frame is searched for, thereby obtaining a reference block (ref. block).

[0159] And, based on the position of the reference block (ref. block) obtained as described above, the block vector (intraTMP BV) value for (IntraTMP block) can be derived.

[0160] As described above, IntraTMP prediction is one of the intra-frame prediction modes, in which a block vector (BV) of a target block can be derived in a decoding device, and the block vector (BV) value can be used for intra prediction in the same manner as the block vector (BV) value of the IBC mode.

[0161] Meanwhile, the IntraTMP method as described above can also be used in the process of refining or compensating block vector (BV) values.

[0162] For example, for a block encoded in IBC mode, after finding the location of the initial reference block using the transmitted block vector (BV) value, an updated reference block can be obtained by more precisely correcting the block vector (BV) value through template matching in a certain area around the initial reference block.

[0163] Hereinafter, the intra prediction operation for a chroma block according to embodiments of the present disclosure is specifically described.

[0164] Additionally, the intra prediction operation for the chroma block described below can be performed by the intra / IBC prediction unit (161) of the video encoder (100) illustrated in FIG. 1 or the intra / IBC prediction unit (261) of the video decoder (200) illustrated in FIG. 2.

[0165] Whether to apply an intra prediction method to a chroma block according to embodiments of the present disclosure may be signaled as flag information in the bitstream. Whether to apply an intra prediction method to a chroma block according to embodiments of the present disclosure may be signaled by including it in units such as a Video Parameter Set (VPS), a Sequence Parameter Set (SPS), a Picture Parameter Set (PPS), a Picture Header (PH), a tile, a CTU, or a CU as High Level Syntax (HLS).

[0166] FIG. 10a illustrates a luma block and a chroma block of a 4:4:4 chroma format, FIG. 10b illustrates a luma block and a chroma block of a 4:2:2 chroma format, and FIG. 10c illustrates a luma block and a chroma block of a 4:2:0 chroma format.

[0167] Chroma format indicates the component ratio of the luminance signal and the chrominance signal that make up the video signal, and may be referred to as “color format,” “color sampling format,” “chroma subsample format,” etc.

[0168] Referring to Fig. 10a, in the 4:4:4 chroma format, the luma block and the chroma block have the same size. Referring to Fig. 10b, in the 4:2:2 chroma format, the width of the chroma block has a value equal to half the width (W) of the luma block. Referring to Fig. 10c, in the 4:2:0 chroma format, the height and width of the chroma block have a value equal to half the height (H) and width (W) of the luma block.

[0169] Meanwhile, in the 4:2:2 chroma format of FIG. 10b, since the conventional HEVC only supports square blocks (1:1 ratio) with the same height and width according to the quad tree structure, it can be processed by dividing into square blocks, but since the video encoder (100) and the video decoder (200) according to the embodiment of the present disclosure can use not only the quad tree structure but also a binary tree or ternary tree structure, in the case where the luma block in the 4:2:2 chroma format has a square shape, the corresponding chroma block can have a rectangular shape.

[0170] Figure 11 illustrates an example of a tree structure of a luma block and a chroma block in a 4:2:0 chroma format according to a dual tree structure.

[0171] To improve prediction performance, a dual-tree structure can be utilized in which the block partitions of the luma plane and the chroma plane are independent of each other. In the dual-tree structure, the partition structures from coding tree units (CTUs) to coding units (CUs) can be set differently for the luma signal and the chroma signal.

[0172] In a single tree structure, the luma plane and the chroma plane have the same block partition structure, so that the partition structure from the coding tree unit (CTU) to the coding unit (CU) for the luma signal and the chroma signal can be the same. On the other hand, the dual tree structure is applicable only to the I slice, and may not be applicable to the B slice or the P slice. As another example, for the B slice or the P slice, a specific region within the slice may be set as an intra region, and the dual tree structure may be applied to the intra region. In this case, the intra region may be a group of one or more coding units (CUs) or a group of one or more coding tree units (CTUs).

[0173] When performing IBC prediction or IntraTMP prediction in a single tree structure, the block vector (BV) value of the target luma block can be scaled according to the chroma format described above and set to the block vector (BV) value of the corresponding chroma block at the same location as the luma block. Therefore, in the case of the single tree structure, the block vector (BV) value for the chroma block is not transmitted separately, and the block vector of the chroma block can be obtained using the block vector of the luma block. In addition, as described below, a block vector obtained by updating the initial block vector using the block vector of the reference block can be used as the block vector of the luma block.

[0174] When performing IBC prediction or IntraTMP prediction in a dual tree structure, the block vector (BV) value of the target luma block may be scaled according to the aforementioned chroma format and set to the block vector (BV) value of the corresponding chroma block in the same position as the luma block. However, in the dual tree structure, the block division structure of the luma block and the block division structure of the chroma block may be different from each other as illustrated in FIG. 11. For example, referring to FIG. 11, the luma block corresponding to the left CU of the chroma block is divided into 10 lower luma blocks. In this way, when the block division structure of the luma block and the block division structure of the chroma block are different from each other, it is necessary to determine which block vector of the luma block to use as the block vector of the chroma block.

[0175] Accordingly, the present disclosure discloses a method for determining a block vector of a luma block used as a block vector of a chroma block. In addition, the present disclosure discloses a method for determining a block vector that updates an initial block vector of a luma block using a block vector of a reference block as the block vector of the luma block. Embodiments of the present disclosure are not limited to a dual tree structure, and can also be applied to cases where a luma block and a chroma block are divided according to a single tree structure.

[0176] A method for intra-predicting a chroma block according to one embodiment of the present disclosure obtains a prediction value of a chroma block by utilizing reference information utilized in the IBC mode or IntraTMP mode of the luma block when the corresponding luma block is encoded in the IBC mode or IntraTMP mode. A block vector of a luma block corresponding to the current chroma block may be used as reference information of the luma block.

[0177] FIG. 12 is a flowchart illustrating an intra prediction method of a chroma block according to one embodiment of the present disclosure.

[0178] Referring to FIG. 12, the intra / IBC prediction unit (161, 261) determines whether a luma block corresponding to a chroma block is encoded in IBC mode or IntraTMP mode (S1010).

[0179] If all pixels within a luma block are included in one block, the intra / IBC prediction unit (161, 261) can determine the prediction mode of the luma block to determine whether the luma block corresponding to the chroma block is encoded in the IBC mode or the IntraTMP mode.

[0180] As shown in FIG. 12 described above, a luma block corresponding to a chroma block can be divided into one or more blocks. In this case, the intra / IBC prediction unit (161, 261) can determine whether the luma block corresponding to the chroma block is encoded in the IBC mode or the IntraTMP mode based on one of the criteria i) to iii), including i) the number or ratio of luma blocks encoded in the IBC mode or the IntraTMP mode, ii) whether pixels at one or more predetermined positions within the luma block are encoded in the IBC mode or the IntraTMP mode, and iii) whether a luma block encoded in the IBC mode or the IntraTMP mode exists among the luma blocks including pixels at one or more predetermined positions within the luma block. A specific process for determining whether a luma block corresponding to a chroma block is encoded in the IBC mode or the IntraTMP mode will be described later with reference to FIG. 13.

[0181] The intra / IBC prediction unit (161, 261) determines the block vector of the luma block when the luma block is encoded in IBC mode or IntraTMP mode (S1020).

[0182] If all pixels within a luma block are included in one block, the intra / IBC prediction unit (161, 261) can determine a block vector derived for the luma block according to the IBC mode or IntraTMP mode of the luma block.

[0183] If a luma block corresponding to a chroma block is divided into a plurality of luma blocks, the intra / IBC prediction unit (161, 261) determines whether a luma block including a pixel at a center position within a luma block corresponding to the chroma block, a luma block including an upper-left corner pixel, a luma block including an upper-right corner pixel, a luma block including a lower-left corner pixel, and a luma block including a lower-right corner pixel are encoded in the IBC mode or the IntraTMP mode according to a predetermined priority, and determines a block vector of a luma block determined to be encoded in the IBC mode or the IntraTMP mode according to a predetermined priority as a block vector of the luma block.

[0184] For example, the predetermined priority may be a luma block including the upper right corner pixel -> a luma block including the upper left corner pixel -> a luma block including the lower right corner pixel -> a luma block including the lower left corner pixel -> a luma block including the center pixel. For another example, the predetermined priority may be a luma block including the center pixel -> a luma block including the upper right corner pixel -> a luma block including the lower right corner pixel -> a luma block including the upper left corner pixel -> a luma block including the lower left corner pixel.

[0185] This search process can be performed on a pixel-by-pixel basis. That is, when a luma block corresponding to a chroma block is divided into a plurality of luma blocks, the intra / IBC prediction unit (161, 261) determines whether the center pixel, the upper left corner pixel, the upper right corner pixel, the lower left corner pixel, and the lower right corner pixel within the luma block corresponding to the chroma block are encoded in the IBC mode or the IntraTMP mode according to a predetermined priority, and determines a block vector to be applied to the pixel of the luma block determined to be encoded in the IBC mode or the IntraTMP mode according to the predetermined priority as the block vector of the luma block. For example, the predetermined priority may be in the order of upper right corner pixel -> upper left corner pixel -> lower right corner pixel -> lower left corner pixel -> center pixel. As another example, the predetermined priority may be in the order of center pixel -> upper right corner pixel -> lower right corner pixel -> upper left corner pixel -> lower left corner pixel.

[0186] Not limited thereto, if a luma block corresponding to a chroma block is divided into multiple luma blocks, the intra / IBC prediction unit (161, 261) can determine the block vector of the luma block in various ways. The specific process of determining the block vector of the luma block will be described below with reference to FIG. 13.

[0187] Meanwhile, the block vector of the luma block can be a block vector updated using the block vector of the reference block according to the initial block vector set according to the IBC mode or IntraTMP mode of the luma block. The updated block vector of the luma block can be obtained by adding the initial block vector of the luma block and the block vector of the luma reference block. As described below, when multiple luma reference blocks are obtained through tracking the block vector of the luma reference block, the block vector of the luma block can be updated and obtained by adding the initial block vector and the block vectors of the multiple luma reference blocks.

[0188] The intra / IBC prediction unit (161, 261) determines a luma reference block pointed to by the initial block vector of the luma block, and if the luma reference block has a block vector, updates the initial block vector of the luma block using the block vector of the luma reference block to derive an updated block vector of the luma block, and determines the updated luma block vector of the luma block as the block vector of the luma block. If the luma reference block is encoded in the IBC mode or the IntraTMP mode, the luma reference block can be determined to have a block vector.

[0189] The block vector of the luma reference block can be determined by determining whether the luma reference block including the pixel at the center position within the luma reference block, the luma reference block including the upper left corner pixel, the luma reference block including the upper right corner pixel, the luma reference block including the lower left corner pixel, and the luma reference block including the lower right corner pixel are encoded in the IBC mode or the IntraTMP mode according to a predetermined priority, and the block vector of the luma reference block searched for as being encoded in the IBC mode or the IntraTMP mode according to the predetermined priority.

[0190] The process for determining whether a luma reference block is encoded in IBC mode or IntraTMP mode and the applied predetermined priorities may be the same as the process for determining whether the aforementioned luma block is encoded in IBC mode or IntraTMP mode and the applied predetermined priorities.

[0191] The intra / IBC prediction unit (161, 261) derives a block vector of a chroma block using the block vector of the determined luma block (S1030).

[0192] The block vector of a luma block can be scaled according to the chroma format. In the case of a 4:4:4 chroma format, the block vector derived for the luma block is determined as the block vector of the chroma block without a separate scaling process, and in the case of a 4:2:2 chroma format, the horizontal component of the block vector derived for the luma block is scaled by reducing it by (1 / 2), and in the case of a 4:2:0 chroma format, the horizontal and vertical components of the block vector derived for the luma block can both be scaled by reducing it by (1 / 2). For example, if the block vector determined for the luma block is (LVx, LVy), when the chroma format is 4:4:4, the block vector (CVx, CVy) of the chroma block is determined as (LVx, LVy), when the chroma format is 4:2:2, the block vector (CVx, CVy) of the chroma block is determined as ((1 / 2)*LVx, LVy), and when the chroma format is 4:2:0, the block vector (CVx, CVy) of the chroma block can be determined by being scaled as (1 / 2)*(LVx, LVy).

[0193] The intra / IBC prediction unit (161, 261) obtains a prediction value for the chroma block using the block vector of the derived chroma block (S1040). The intra / IBC prediction unit (161, 261) can obtain a prediction value for the current chroma block by determining a reference block pointed to by the block vector of the derived chroma block within the current chroma picture including the current chroma block.

[0194] Below, the process of determining whether a luma block corresponding to a chroma block is encoded in IBC mode or IntraTMP mode is described.

[0195] As described above, when all pixels within a luma block are included in one block, the intra / IBC prediction unit (161, 261) can determine the prediction mode of the luma block to determine whether the luma block corresponding to the chroma block is encoded in the IBC mode or the IntraTMP mode.

[0196] As in the example of FIG. 11 described above, a luma block corresponding to a chroma block may not be encoded as one block but may be encoded as different blocks.

[0197] In this way, when a luma block corresponding to a chroma block is divided into lower luma blocks, the intra / IBC prediction unit (261) can determine whether the luma block is encoded in IBC mode or IntraTMP mode according to one of the following methods.

[0198] - If one or more of the lower luma blocks are encoded in IBC mode or IntraTMP mode, the luma block is considered to be encoded in IBC mode or IntraTMP mode.

[0199] - If a certain number or a certain ratio of lower luma blocks among the lower luma blocks are encoded in IBC mode or IntraTMP mode, the luma block is determined to be encoded in IBC mode or IntraTMP mode (the certain number or ratio may be implicitly determined according to a predetermined method, or may be explicitly included in the bitstream and signaled as a unit such as sequence, GOP, Frame, Slice, Tile, CTU, or CU).

[0200] - If one or more pixels included in a luma block are encoded in IBC mode or IntraTMP mode, the luma block is considered to be encoded in IBC mode or IntraTMP mode.

[0201] - If a certain number or a certain ratio of pixels included in a luma block are encoded in IBC mode or IntraTMP mode, the luma block is determined to be encoded in IBC mode or IntraTMP mode (the certain number or ratio may be implicitly determined according to a predetermined method, or may be explicitly included in the bitstream and signaled as a unit such as a sequence, GOP, Frame, Slice, Tile, CTU, or CU).

[0202] FIG. 13 illustrates reference pixel locations of a luma block according to one embodiment of the present disclosure.

[0203] In addition to the method of determining whether the luma block is encoded in the IBC mode or the IntraTMP mode according to the method described above, the intra / IBC prediction unit (261) can determine that the luma block is encoded in the IBC mode or the IntraTMP mode if the reference pixel at the reference pixel position is encoded in the IBC mode or the IntraTMP mode based on the reference pixel position at a predetermined position of the luma block.

[0204] Referring to FIG. 13, the intra / IBC prediction unit (161, 261) can determine that the luma block (1300) is encoded in the IBC mode or the IntraTMP mode if at least one of the reference pixels at predetermined locations, including the center (C), upper left corner pixel (LT), upper right corner pixel (RT), lower left corner pixel (LB), and lower right corner pixel (RB) locations within the luma block (1300), is encoded in the IBC mode or the IntraTMP mode.

[0205] As described above, the intra / IBC prediction unit (161, 261) determines the block vector of the luma block when it is determined that the luma block is encoded in IBC mode or IntraTMP mode.

[0206] If all pixels within a luma block are included in one block, the intra / IBC prediction unit (161, 261) can determine the block vector of the luma block derived according to the IBC mode or IntraTMP mode as the block vector of the luma block, and determine it as the block vector of the chroma block.

[0207] If a luma block corresponding to a chroma block is divided into multiple luma blocks, the intra / IBC prediction unit (161, 261) can determine the block vector of the luma block according to one of the following methods. In the following description, a lower luma block refers to a lower depth luma block into which a luma block corresponding to a chroma block is divided.

[0208] - Determine the block vector applied to the pixel at a given position in the luma block as the block vector of the luma block (the given position may be implicitly predetermined or may be explicitly signaled by including information about the given position in the bitstream. There may be multiple given positions)

[0209] - As shown in FIG. 13, one or more block vectors among the block vectors of the lower luma blocks including pixels at the reference pixel positions of the center (C), the upper left corner (LT), the upper right corner (RT), the lower left corner (LB), and the lower right corner (RB) of the luma block (1300) are determined as the block vector of the luma block (for example, referring to FIG. 13, one or more block vectors among the block vectors of the lower luma blocks encoded in the IBC mode or the IntraTMP mode among the reference pixel positions including the center (C), the upper left corner pixel (LT), the upper right corner pixel (RT), the lower left corner pixel (LB), and the lower right corner pixel (RB) positions in the luma block (1300) are determined as the block vector of the luma block).

[0210] - As shown in FIG. 13, the lower luma blocks including pixels of the reference pixel positions of the center (C), upper left corner (LT), upper right corner (RT), lower left corner (LB), and lower right corner (RB) of the luma block (1300) are determined to be encoded in the IBC mode or the IntraTMP mode according to a predetermined priority, and the block vector of the lower luma block determined to be encoded in the IBC mode or the IntraTMP mode first according to the predetermined priority is determined as the block vector of the luma block (for example, the predetermined priority may be in the order of a luma block including the upper right corner pixel (RT) -> a luma block including the upper left corner pixel (LT) -> a luma block including the lower right corner pixel (RB) -> a luma block including the lower left corner pixel (LB) -> a luma block including the center pixel (C). As another example, the predetermined priority may be in the order of a luma block including the center pixel (C) -> a luma block including the upper right corner pixel (RT) -> (It can be in the order of luma block containing lower right corner pixel (RB) -> luma block containing upper left corner pixel (LT) -> luma block containing lower left corner pixel (LB))

[0211] - Determine the block vector of the luma block by calculating the weighted sum of the block vectors of the lower luma blocks encoded in IBC mode or IntraTMP mode among the lower luma blocks (the weights can be implicitly predetermined or explicitly signaled through the bitstream).

[0212] - Template matching is performed on each of the lower luma blocks encoded in IBC mode or IntraTMP mode among the lower luma blocks, and the block vector of the lower luma block with the smallest template matching cost is determined as the block vector of the luma block.

[0213] - Template matching is performed on each of the lower luma blocks encoded in IBC mode or IntraTMP mode among the lower luma blocks, the ratio of the template matching cost is set as a weight, and the weighted sum of the lower luma blocks encoded in IBC mode or IntraTMP mode is calculated to determine the block vector of the luma block.

[0214] - Determine the block vector of the luma block according to an implicitly predetermined method based on information such as information on the surrounding available block vectors, QP value, Intra / inter block ratio, size of coding block, aspect ratio of coding block, number of candidates, value of block vector of candidate group, number / location of intra search-based technology such as IBC, Intra Template matching, etc. used in the surrounding blocks.

[0215] - Priority information on which block vector of which lower luma block is to be determined as the block vector of the luma block is explicitly included in the bitstream and transmitted, and the block vector of the luma block is determined among the block vectors of the lower luma blocks based on the priority information (for example, the priority information can be signaled through priority index information indicating one of the priorities included in a predetermined table. For example, priority index 0 is in the order of center -> upper right corner -> lower right corner -> upper left corner -> lower left corner, and priority index 1 is in the order of upper right corner -> upper left corner -> lower right corner -> lower left corner -> center, and the priority of the reference pixel position to be checked can be determined according to the priority index value, and priority index information indicating the priority of the reference pixel position to be checked can be included in the bitstream and signaled. If the lower luma block to be checked according to the priority is encoded in the IBC mode or the IntraTMP mode, the block vector of the corresponding lower luma block is sequentially determined as the block vector of the luma block. Without being limited thereto, the table may be used to determine the block vector of the luma block based on the surrounding utilization. It can be implicitly constructed by utilizing information such as information on possible block vectors, QP values, Intra / inter block ratio, size of coding block, aspect ratio of coding block, number of candidates in candidate group, value of block vector of candidate group, number / location of intra search-based technology such as IBC, Intra Template matching, etc. used in surrounding blocks.

[0216] If there is no lower luma block or pixel encoded according to the IBC mode or IntraTMP mode in the luma block corresponding to the current chroma block, the block vector of a luma block having a block vector among the luma blocks processed before the corresponding luma block can be used as the block vector of the current chroma block.

[0217] Meanwhile, as described above, the block vector of a luma block can be updated using the block vector of the reference block based on the initial block vector set according to the IBC mode or IntraTMP mode of the luma block. The process of updating the block vector of a luma block is described below.

[0218] FIG. 14 is a diagram illustrating a block vector update process of a luma block according to one embodiment of the present disclosure.

[0219] The block vector of a luma block used as a block vector of a chroma block may be a block vector generated by updating an initial block vector using a block vector of at least one reference block. The block vector of a luma block generated through the update process using the block vector of the reference block may be referred to as AR-BVP (Auto relocated block vector prediction). In the embodiments of the present disclosure, the prediction performance of a chroma block can be improved by deriving a more precise block vector of a luma block through the update process and determining a block vector of a chroma block using the precise block vector of the luma block.

[0220] Referring to FIG. 14, the intra / IBC prediction unit (161, 261) can determine a first reference block (1420) within the current picture pointed to by the initial block vector (BV0) of the current luma block (1410). The first reference block (1420) is an area within the current picture of a luma component having the same size as the current luma block (1410). The initial block vector (BV0) of the current luma block (1410) can be a block vector initially derived for the current luma block (1410) according to the IBC mode or the IntraTMP mode, or a block vector (NV) of a neighboring block (1505) predicted in the IBC mode or the IntraTMP mode.

[0221] The intra / IBC prediction unit (161, 261) can update the initial block vector (BV0) of the current luma block (1410) using the block vector (BV1) of the first reference block (1420), if the first reference block (1420) pointed to by the initial block vector (BV0) of the current luma block (1410) has a block vector (BV1) pointing to the second reference block (1430), and determine the updated block vector (BV0') as the block vector of the current luma block (1410).

[0222] FIG. 15 illustrates an example of a process for updating a block vector of a luma block using a block vector of a reference block referenced by the luma block according to one embodiment of the present disclosure.

[0223] Referring to FIG. 15, if the initial block vector of the current luma block B1 (1510) is BV0 and the block vector of the reference block B1 (1520) pointed to by the initial block vector (BV0) is BV1, BV0+BV1, which is the sum of the initial block vector (BV0) and the block vector (BV1) of the reference block B1 (1520), can be determined as the block vector of the current luma block (1510).

[0224] Meanwhile, whether a reference block has a block vector can be determined by determining whether the reference block includes a pixel or block encoded in the IBC mode or the IntraTMP mode. That is, if the reference block includes a pixel or block encoded in the IBC mode or the IntraTMP mode, the block vector applied to the corresponding block or pixel can be determined as the block vector of the reference block. The process of determining whether the aforementioned luma block is encoded in the IBC mode or the IntraTMP mode can be applied to the process of determining whether the reference block is determined to be in the IBC mode or the IntraTMP mode.

[0225] The process of updating the block vector of the luma block can be performed recursively. That is, the intra / IBC prediction unit (161, 261) determines (A1) an updated luma reference block pointed to by the updated block vector, and (A2) if the updated luma reference block has a block vector, the updated block vector of the luma block can be updated again using the block vector of the updated luma reference block to derive a block vector of the newly updated luma block, and the process of updating the luma block vector in steps (A1) and (A2) can be performed recursively until a predetermined termination condition is satisfied.

[0226] The predetermined termination condition may mean that there is no luma reference block encoded in IBC mode or IntraTMP mode among the luma reference blocks included in the updated luma reference block pointed to by the updated block vector of the luma block, or the updated luma reference block pointed to by the updated block vector of the luma block goes out of one of the search area, Coding Tree Unit (CTU), slice, tile, or frame boundary of the IBC mode or IntraTMP mode.

[0227] In the process of repeatedly tracking the block vector of a reference block until a predetermined termination condition is satisfied, a plurality of reference blocks and a plurality of block vectors pointing to the reference block each of the plurality of reference blocks can be obtained. The intra / IBC prediction unit (161, 261) can update the block vector of the luma block by adding the block vectors obtained in the process of tracking the block vector of the reference block and the initial block vector.

[0228] Referring again to FIG. 14, assuming that the first reference block (1420) to the (N+1)-th reference block (1460) have block vectors, and that the (N+2)-th reference block (1470) referenced by the (N+1)-th reference block (1460) satisfies a predetermined termination condition and is the last reference block that does not have a block vector, the intra / IBC prediction unit (161, 261) generates a block vector BV pointing to the (N+2)-th reference block (1470) from the initial block vector (BV0). N+1 The value of adding all block vectors up to (BV0+BV1+BV2+쪋+BV N+1 ) can be determined as the updated block vector of the current chroma block (1510).

[0229] For example, it is assumed that a first reference block (1420) has a block vector (BV1) pointing to a second reference block (1430), the second reference block (1430) has a block vector (BV2) pointing to a third reference block (1440), and the third reference block (1440) does not contain a block or pixel encoded in the IBC mode or the IntraTMP mode, thereby satisfying the termination condition, and thus the third reference block (1440) does not have a block vector. In this case, the intra / IBC prediction unit (161, 261) can update the initial block vector (BV0) using the block vector (BV1) of the first reference block (1420) and the block vector (BV2) of the second reference block (1430), and determine the updated block vector (BV0') as the block vector of the current luma block (1410). That is, the block vector can be updated by adding the block vector of the reference block up to the reference block that satisfies a predetermined termination condition from the initial block vector, such as BV0'=BV0+BV1+BV2.

[0230] The intra prediction method of the chroma block described above can be performed by a video encoding device and a video decoding device according to an embodiment of the present invention, and can be performed, for example, by an intra / IBC prediction unit (161) of a video encoder (100) illustrated in FIG. 1 or an intra / IBC prediction unit (261) of a video decoder (200) illustrated in FIG. 2.

[0231] The methods described herein may be performed by a processor of a video encoder or video decoder. Furthermore, the encoder may generate a bitstream that is decoded by a video signal processing method, and the bitstream generated by the encoder may be stored in a computer-readable, non-transitory storage medium (recording medium).

[0232] The embodiments of the present invention described above may be implemented through various means. For example, the embodiments of the present invention may be implemented using hardware, firmware, software, or a combination thereof.

[0233] Some embodiments may also be implemented in the form of a computer-executable storage medium containing computer-executable instructions, such as program modules executed by a computer. Computer-readable media may be any available media that can be accessed by a computer, and includes both volatile and nonvolatile media, removable and non-removable media.

[0234] Additionally, computer-readable media may include both computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storing information, such as computer-readable instructions, data structures, program modules, or other data. Communication media typically includes other data, such as computer-readable instructions, data structures, or program modules, in a modulated data signal, or other transport mechanism, and includes any information delivery media.

Claims

1. A method for performing intra prediction for a chroma block using a block vector indicating the location of a reference block within the current picture, A step for determining whether a luma block corresponding to a chroma block is encoded in IBC (Intra Block Copy) mode or IntraTMP (Intra Template Matching Prediction) mode; A step of determining a block vector of the luma block when the luma block is encoded in IBC mode or IntraTMP mode; A step of deriving a block vector of the chroma block using the block vector of the determined luma block; and A step of obtaining a prediction value for the chroma block using a block vector of the induced chroma block is included. The block vector of the determined luma block includes a block vector that updates the initial block vector of the luma block using the block vector of the luma reference block pointed to by the initial block vector of the luma block. Intra prediction method.

2. In paragraph 1, The step of determining the block vector of the above luma block is: A luma block including a pixel at a center position in a luma block corresponding to the chroma block, a luma block including an upper left corner pixel, a luma block including an upper right corner pixel, a luma block including a lower left corner pixel, and a luma block including a lower right corner pixel are determined to be encoded in the IBC mode or the IntraTMP mode according to a predetermined priority, and a block vector of a luma block encoded in the IBC mode or the IntraTMP mode according to the predetermined priority is determined as a block vector of the luma block. Intra prediction method.

3. In paragraph 2, The above predetermined priority is characterized in that the order is a luma block including an upper right corner pixel, a luma block including an upper left corner pixel, a luma block including a lower right corner pixel, a luma block including a lower left corner pixel, and a luma block including a center pixel. Intra prediction method.

4. In paragraph 1, The step of determining the block vector of the above luma block is: a step of determining a luma reference block pointed to by the initial block vector of the above luma block; and If the luma reference block has a block vector, the method comprises the step of updating the initial block vector of the luma block using the block vector of the luma reference block to derive an updated block vector of the luma block. The updated luma block vector of the above luma block is determined as the block vector of the above luma block. Intra prediction method.

5. In paragraph 4, If the above luma reference block is encoded in IBC mode or IntraTMP mode, the luma reference block is determined to have a block vector. The block vector of the above luma reference block is a block vector determined according to the IBC mode or IntraTMP mode of the above luma reference block. Intra prediction method.

6. In paragraph 4, The block vector of the above luma reference block is, A luma reference block including a pixel at a center position within the luma reference block, a luma reference block including an upper left corner pixel, a luma reference block including an upper right corner pixel, a luma reference block including a lower left corner pixel, and a luma reference block including a lower right corner pixel are determined to be encoded in the IBC mode or the IntraTMP mode according to a predetermined priority, and a block vector of a luma reference block searched as being encoded in the IBC mode or the IntraTMP mode according to the predetermined priority is determined. Intra prediction method.

7. In paragraph 4, The updated block vector of the above luma block is Obtained by adding the initial block vector of the above luma block and the block vector of the above luma reference block, Intra prediction method.

8. In paragraph 4, (A1) a step of determining an updated luma reference block pointed to by the updated block vector; and (A2) If the updated luma reference block has a block vector, the method further includes a step of deriving a block vector of the newly updated luma block by re-updating the updated block vector of the luma block using the block vector of the updated luma reference block, The process of updating the luma block vector in steps (A1) and (A2) above is performed repeatedly until a predetermined termination condition is satisfied. Intra prediction method.

9. In paragraph 8, The above termination conditions are If there is no luma reference block encoded in IBC mode or IntraTMP mode among the luma reference blocks included in the updated luma reference block pointed to by the updated block vector of the luma block, or if the updated luma reference block pointed to by the updated block vector of the luma block is out of one of the search area, CTU (Coding Tree Unit), slice, tile, or frame boundary of the IBC mode or IntraTMP mode, If the above termination condition is satisfied, the process of updating the luma block vector is terminated. Intra prediction method.

10. In paragraph 1, The step of determining whether the luma block corresponding to the chroma block is encoded in IBC mode or IntraTMP mode is as follows. In the case where the luma block is divided into a plurality of luma blocks and encoded, it is determined based on one of the criteria of i) to iii) of i) the number or ratio of luma blocks encoded in the IBC mode or IntraTMP mode, ii) whether pixels at one or more predetermined positions within the luma block are encoded in the IBC mode or IntraTMP mode, iii) whether a luma block encoded in the IBC mode or IntraTMP mode exists among luma blocks including pixels at one or more predetermined positions within the luma block. Intra prediction method.

11. In paragraph 1, The step of deriving the block vector of the above chroma block is: A block vector of the chroma block is derived by scaling the block vector of the luma block determined based on the chroma format. Intra prediction method.

12. In paragraph 11, When the block vector determined for the above luma block is (LVx, LVy), when the chroma format is 4:4:4, the block vector (CVx, CVy) of the chroma block is determined as (LVx, LVy). When the above chroma format is 4:2:2, the block vector (CVx, CVy) of the chroma block is determined as ((1 / 2)*LVx, LVy). When the above chroma format is 4:2:0, the block vector (CVx, CVy) of the chroma block is determined by scaling it by (1 / 2)*(LVx, LVy). Intra prediction method.

13. A video decoding device performing the method of any one of claims 1 to 12.

14. A video encoding device performing any one of the methods of claims 1 to 12.

15. A computer-readable recording medium having recorded thereon a program for executing the method of any one of claims 1 to 12 on a computer.

Citation Information

Patent Citations

  • Block vector estimation method for multiview video based on intra block copy and decoder

    KR102403817B1

  • Method of providing instant investment means, and computer program recorded on record-medium for executing method thereof

    KR102442335B1

  • Graphite sheet and manufacturing method thereof

    KR102575637B1

  • Method for encoding / decoidng video signal and apparatus therefor

    KR102617439B1