Method and apparatus for video coding for deriving intra prediction mode

By deriving intra prediction modes on the decoder side and employing advanced prediction techniques, the method enhances video encoding efficiency and quality, addressing the challenges of increasing video data sizes and resolutions.

WO2025244328A1PCT designated stage Publication Date: 2025-11-27HYUNDAI MOTOR CO LTD +2
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2025/006234
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-05-21
Filing Date
2025-05-09
Publication Date
2025-11-27

AI Technical Summary

Technical Problem

Existing video coding technologies face challenges in efficiently encoding and decoding video data due to increasing video size, resolution, and frame rate, requiring improved encoding efficiency and image quality, particularly in deriving intra prediction modes.

Method used

A method and device for deriving one or more intra prediction modes on the decoder side, using adjacent samples to generate a list of prediction modes, and selecting appropriate modes for current block prediction or decoding processes, employing techniques like QTBTTT structure, intra prediction units, and inter prediction units to enhance encoding efficiency and quality.

Benefits of technology

Improves video encoding efficiency and enhances video quality by effectively utilizing intra and inter prediction modes, minimizing bit-rate distortion, and optimizing video data processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2025006234_27112025_PF_FP_ABST
    Figure KR2025006234_27112025_PF_FP_ABST
Patent Text Reader

Abstract

The present embodiment discloses a video coding method and apparatus for deriving an intra prediction mode. In the present embodiment, an image decoding apparatus acquires an intra prediction technology in relation to the restoration of the current block. The image decoding apparatus derives at least one intra prediction mode by using adjacent samples of the current block on the basis of the intra prediction technology, and generates a list including the at least one intra prediction mode. The image decoding apparatus acquires a first mode index and a second mode index, and derives a first intra prediction mode and a second intra prediction mode from the list according to the first mode index and the second mode index. The image decoding apparatus reconstructs the current block on the basis of the first intra prediction mode and the second intra prediction mode.
Need to check novelty before this filing date? Find Prior Art

Description

Method and device for video coding to induce intra prediction mode

[0001] The present disclosure relates to a video coding method and device for deriving an intra prediction mode.

[0002] The content described below merely provides background information related to the present invention and does not constitute prior art.

[0003] Since video data has a large amount of data compared to voice data or still image data, it requires a lot of hardware resources, including memory, to store or transmit it without processing for compression.

[0004] Therefore, when storing or transmitting video data, the encoder compresses the video data and stores or transmits it, and the decoder receives the compressed video data, decompresses it, and plays it back. These video compression technologies include H.264 / AVC, HEVC (High Efficiency Video Coding), and VVC (Versatile Video Coding), which improves encoding efficiency by about 30% compared to HEVC.

[0005] However, as video size, resolution, and frame rate continue to increase, and the amount of data to be encoded also increases, new compression technologies with better encoding efficiency and improved image quality are required. For example, to improve video encoding efficiency and image quality, a method for efficiently performing intra prediction is needed.

[0006] The present disclosure aims to provide a video coding method and device that derives one or more intra prediction modes on a decoder side and then uses one of the derived prediction modes for prediction of a current block or uses another prediction mode for another decoding process of the current block.

[0007] According to an embodiment of the present disclosure, a method for restoring a current block, performed by an image decoding device, is provided, comprising: a step of obtaining an intra prediction technique in relation to the restoration of the current block; a step of deriving at least one intra prediction mode using adjacent samples of the current block based on the intra prediction technique, and generating a list including the at least one intra prediction mode; a step of obtaining a first mode index and a second mode index; a step of deriving a first intra prediction mode and a second intra prediction mode from the list according to the first mode index and the second mode index; and a step of restoring the current block based on the first intra prediction mode and the second intra prediction mode.

[0008] According to another embodiment of the present disclosure, a method for encoding a current block, performed by a video encoding device, is provided, comprising: acquiring an intra prediction technique in relation to encoding of the current block; deriving at least one intra prediction mode using adjacent samples of the current block based on the intra prediction technique and generating a list including the at least one intra prediction mode; deriving a first mode index indicating a first intra prediction mode and a second mode index indicating a second intra prediction mode from the list; and encoding the current block based on the first intra prediction mode or the second intra prediction mode.

[0009] According to another embodiment of the present disclosure, a method for providing video data to a video decoding device is provided, comprising: encoding the video data into a bitstream; and transmitting the bitstream to the video decoding device, wherein the encoding the video data comprises: obtaining an intra prediction technique in relation to encoding of a current block; deriving at least one intra prediction mode using adjacent samples of the current block based on the intra prediction technique, and generating a list including the at least one intra prediction mode; deriving a first mode index indicating a first intra prediction mode and a second mode index indicating a second intra prediction mode from the list; and encoding the current block based on the first intra prediction mode or the second intra prediction mode.

[0010] As described above, according to the present embodiment, there is provided a video coding method and device that derives one or more intra prediction modes on the decoder side and then uses one of the derived prediction modes for prediction of the current block or uses another prediction mode for another decoding process of the current block, thereby making it possible to improve video encoding efficiency and enhance video quality.

[0011] FIG. 1 is an exemplary block diagram of an image encoding device capable of implementing the techniques of the present disclosure.

[0012] Figure 2 is a drawing for explaining a method of dividing a block using the QTBTTT (QuadTree plus BinaryTree TernaryTree) structure.

[0013] FIGS. 3A and 3B are diagrams illustrating multiple intra prediction modes, including wide-angle intra prediction modes.

[0014] Figure 4 is an example diagram of the surrounding blocks of the current block.

[0015] FIG. 5 is an exemplary block diagram of an image decoding device capable of implementing the techniques of the present disclosure.

[0016] Figure 6 is an example diagram showing a search area used in IntraTMP (Intra Template Matching Prediction) technology.

[0017] Figure 7 is an example diagram showing a method for deriving one or more intra prediction modes in TIMD (Template-based intra mode derivation) technology.

[0018] Figures 8a and 8b are exemplary diagrams showing the type of EIP (Extrapolated intra prediction) filter and the derivation of EIP coefficients.

[0019] Figure 9 is an example diagram showing the generation order of EIP-based prediction samples.

[0020] Figure 10 is an example diagram showing a method for signaling a combination of a partitioning mode and an intra prediction mode of SGPM (Spatial Geometric Partitioning Mode).

[0021] Figure 11 is an example diagram showing a template of a current block to which SGPM mode is applied.

[0022] Figure 12 is an example diagram showing the locations of non-adjacent neighboring blocks in HoC (Histogram of Count).

[0023] Figure 13 is an example diagram showing results according to HoC.

[0024] FIG. 14 is an exemplary diagram illustrating the derivation of one or more intra prediction modes according to one embodiment of the present disclosure.

[0025] FIG. 15 is an exemplary diagram showing an adjacent block index according to one embodiment of the present disclosure.

[0026] FIG. 16 is a flowchart illustrating a method for restoring a current block performed by an image decoding device according to one embodiment of the present disclosure.

[0027] FIG. 17 is a flowchart illustrating a method of encoding a current block performed by an image encoding device according to one embodiment of the present disclosure.

[0028] Hereinafter, embodiments of the present invention will be described in detail with reference to exemplary drawings. When designating components in each drawing, it should be noted that, where possible, identical components are given the same reference numerals, even if they appear in different drawings. Furthermore, in describing the present embodiments, detailed descriptions of related known structures or functions will be omitted if they are deemed to obscure the gist of the present embodiments.

[0029] FIG. 1 is an exemplary block diagram of an image encoding device capable of implementing the techniques of the present disclosure. Hereinafter, the image encoding device and its subcomponents will be described with reference to the illustration in FIG. 1.

[0030] The video encoding device may be configured to include a picture segmentation unit (110), a prediction unit (120), a subtractor (130), a transformation unit (140), a quantization unit (145), a reordering unit (150), an entropy encoding unit (155), an inverse quantization unit (160), an inverse transformation unit (165), an adder (170), a loop filter unit (180), and a memory (190).

[0031] Each component of the video encoding device may be implemented in hardware, software, or a combination of hardware and software. Furthermore, the functions of each component may be implemented in software, with a microprocessor executing the software functions corresponding to each component.

[0032] A single image (video) is composed of one or more sequences containing multiple pictures. Each picture is divided into multiple regions, and encoding is performed for each region. For example, a single picture is divided into one or more tiles and / or slices. Here, one or more tiles can be defined as a tile group. Each tile or slice is divided into one or more Coding Tree Units (CTUs). Each CTU is then divided into one or more Coding Units (CUs) by a tree structure. Information applied to each CU is encoded as the syntax of the CU, and information commonly applied to CUs included in a CTU is encoded as the syntax of the CTU. In addition, information commonly applied to all blocks within a single slice is encoded as the syntax of the slice header, and information applied to all blocks constituting one or more pictures is encoded in the Picture Parameter Set (PPS) or the picture header. Furthermore, information commonly referenced by multiple pictures is encoded in a Sequence Parameter Set (SPS). And, information commonly referenced by one or more SPS is encoded in a Video Parameter Set (VPS). In addition, information commonly applied to one tile or tile group may be encoded as syntax of a tile or tile group header. Syntaxes included in an SPS, PPS, slice header, tile or tile group header may be referred to as high level syntax.

[0033] The picture segmentation unit (110) determines the size of the CTU. Information about the size of the CTU (CTU size) is encoded as the syntax of SPS or PPS and transmitted to the image decoding device.

[0034] The picture segmentation unit (110) divides each picture constituting an image into a plurality of CTUs having a predetermined size, and then recursively divides the CTUs using a tree structure. A leaf node in the tree structure becomes a CU, which is a basic unit of encoding.

[0035] The tree structure may be a QuadTree (QT) in which an upper node (or parent node) is divided into four lower nodes (or child nodes) of the same size, a BinaryTree (BT) in which an upper node is divided into two lower nodes, or a TernaryTree (TT) in which an upper node is divided into three lower nodes in a 1:2:1 ratio, or a structure that mixes two or more of the QT structures, BT structures, and TT structures. For example, a QTBT (QuadTree plus BinaryTree) structure may be used, or a QTBTTT (QuadTree plus BinaryTree TernaryTree) structure may be used. Here, BTTT may be combined and referred to as a MTT (Multiple-Type Tree).

[0036] Figure 2 is a drawing for explaining a method of dividing a block using the QTBTTT structure.

[0037] As illustrated in FIG. 2, a CTU may first be split into a QT structure. The quadtree splitting may be repeated until the size of the splitting block reaches the minimum block size (MinQTSize) of the leaf node allowed in the QT. A first flag (QT_split_flag) indicating whether each node of the QT structure is split into four nodes of the lower layer is encoded by the entropy encoding unit (155) and signaled to the image decoding device. If the leaf node of the QT is not larger than the maximum block size (MaxBTSize) of the root node allowed in the BT, it may be further split into one or more of the BT structure or the TT structure. There may be multiple splitting directions in the BT structure and / or the TT structure. For example, there may be two directions in which the block of the corresponding node is split horizontally and two directions in which the block is split vertically. As illustrated in FIG. 2, when MTT splitting begins, a second flag (mtt_split_flag) indicating whether nodes have been split, and if splitting has occurred, a flag indicating the splitting direction (vertical or horizontal) and / or a flag indicating the splitting type (Binary or Ternary) are encoded by the entropy encoding unit (155) and signaled to the image decoding device.

[0038] Alternatively, before encoding the first flag (QT_split_flag) indicating whether each node is split into four nodes of a lower layer, a CU split flag (split_cu_flag) indicating whether the node is split may be encoded. If the CU split flag (split_cu_flag) value indicates that the node is not split, the block of the corresponding node becomes a leaf node in the split tree structure and becomes a CU (coding unit), which is a basic unit of encoding. If the CU split flag (split_cu_flag) value indicates that the node is split, the video encoding device starts encoding from the first flag in the above-described manner.

[0039] As another example of a tree structure, when QTBT is used, there may be two types: a type that horizontally splits the block of the corresponding node into two blocks of the same size (i.e., symmetric horizontal splitting) and a type that vertically splits it (i.e., symmetric vertical splitting). A split flag (split_flag) indicating whether each node of the BT structure is split into blocks of a lower layer and split type information indicating the type of split are encoded by the entropy encoding unit (155) and transmitted to the image decoding device. Meanwhile, there may additionally be a type that splits the block of the corresponding node into two blocks of an asymmetrical shape. The asymmetric shape may include a shape that splits the block of the corresponding node into two rectangular blocks with a size ratio of 1:3, or a shape that splits the block of the corresponding node in a diagonal direction.

[0040] A CU can have various sizes depending on the QTBT or QTBTTT partitioning from the CTU. Hereinafter, the block corresponding to the CU to be encoded or decoded (i.e., the leaf node of the QTBTTT) is referred to as the "current block." Depending on the QTBTTT partitioning employed, the current block may be rectangular as well as square.

[0041] The prediction unit (120) predicts the current block and generates a prediction block. The prediction unit (120) includes an intra prediction unit (122) and an inter prediction unit (124).

[0042] In general, each current block within a picture can be predictively coded. Prediction of the current block can typically be performed using either intra-prediction (using data from the picture containing the current block) or inter-prediction (using data from a picture coded before the picture containing the current block). Inter-prediction encompasses both unidirectional and bidirectional prediction.

[0043] The intra prediction unit (122) predicts pixels within the current block using pixels (reference pixels) located around the current block within the current picture including the current block. There are multiple intra prediction modes depending on the prediction direction. For example, as shown in Fig. 3a, the multiple intra prediction modes may include two non-directional modes including the Planar mode and the DC mode, and 65 directional modes. The surrounding pixels to be used and the calculation formula are defined differently depending on each prediction mode.

[0044] For efficient directional prediction for a rectangular current block, directional modes (intra prediction modes 67 to 80 and -1 to -14) indicated by dotted arrows in Fig. 3b may be additionally used. These may be referred to as "wide-angle intra-prediction modes." In Fig. 3b, the arrows point to corresponding reference samples used for prediction, and do not indicate the prediction direction. The prediction direction is opposite to the direction indicated by the arrows. Wide-angle intra-prediction modes are modes that perform prediction in the opposite direction of a specific directional mode without additional bit transmission when the current block is rectangular. At this time, among the wide-angle intra-prediction modes, some wide-angle intra-prediction modes available for the current block may be determined based on the ratio of the width and height of the rectangular current block. For example, wide-angle intra prediction modes (intra prediction modes 67 to 80) having an angle less than 45 degrees are available when the current block is a rectangular shape whose height is smaller than its width, and wide-angle intra prediction modes (intra prediction modes -1 to -14) having an angle greater than -135 degrees are available when the current block is a rectangular shape whose width is larger than its height.

[0045] The intra prediction unit (122) can determine an intra prediction mode to be used to encode the current block. In some examples, the intra prediction unit (122) can encode the current block using multiple intra prediction modes and select an appropriate intra prediction mode to be used from the tested modes. For example, the intra prediction unit (122) can calculate bit-rate distortion values ​​using rate-distortion analysis for multiple tested intra prediction modes and select an intra prediction mode with the best bit-rate distortion characteristics among the tested modes.

[0046] The intra prediction unit (122) selects one intra prediction mode from among multiple intra prediction modes and predicts the current block using surrounding pixels (reference pixels) and an operation formula determined according to the selected intra prediction mode. Information about the selected intra prediction mode is encoded by the entropy encoding unit (155) and transmitted to the image decoding device.

[0047] The inter prediction unit (124) generates a prediction block for the current block using a motion compensation process. The inter prediction unit (124) searches for a block most similar to the current block within reference pictures that were encoded and decoded before the current picture, and generates a prediction block for the current block using the searched block. Then, a motion vector (MV) corresponding to the displacement between the current block within the current picture and the prediction block within the reference picture is generated. Generally, motion estimation is performed on the luma component, and the motion vector calculated based on the luma component is used for both the luma component and the chroma component. The motion information including information on the reference picture used to predict the current block and information on the motion vector is encoded by the entropy encoding unit (155) and transmitted to the image decoding device.

[0048] The inter prediction unit (124) may perform interpolation on a reference picture or a reference block to improve prediction accuracy. That is, subsamples between two consecutive integer samples are interpolated by applying filter coefficients to a plurality of consecutive integer samples including the two integer samples. When a process of searching for a block most similar to the current block is performed on the interpolated reference picture, the motion vector can be expressed up to a precision in decimal units rather than a precision in integer sample units. The precision or resolution of the motion vector can be set differently for each target region to be encoded, such as a slice, tile, CTU, CU, etc. When such adaptive motion vector resolution (AMVR) is applied, information on the motion vector resolution to be applied to each target region must be signaled for each target region. For example, when the target region is a CU, information on the motion vector resolution applied to each CU is signaled. Information on the motion vector resolution may be information indicating the precision of a differential motion vector, which will be described later.

[0049] Meanwhile, the inter prediction unit (124) can perform inter prediction using bi-prediction. In the case of bi-prediction, two reference pictures and two motion vectors indicating the block position most similar to the current block within each reference picture are used. The inter prediction unit (124) selects a first reference picture and a second reference picture from reference picture list 0 (RefPicList0) and reference picture list 1 (RefPicList1), respectively, and searches for a block similar to the current block within each reference picture to generate a first reference block and a second reference block. Then, the first reference block and the second reference block are averaged or weighted averaged to generate a prediction block for the current block. Then, motion information including information on two reference pictures used to predict the current block and information on two motion vectors is transmitted to the entropy encoding unit (155). Here, reference picture list 0 may be composed of pictures that are before the current picture in display order among the restored pictures, and reference picture list 1 may be composed of pictures that are after the current picture in display order among the restored pictures. However, this is not necessarily limited to this, and restored pictures that are after the current picture in display order may be additionally included in reference picture list 0, and conversely, restored pictures that are before the current picture may be additionally included in reference picture list 1.

[0050] Various methods can be used to minimize the number of bits required to encode motion information.

[0051] For example, if the reference picture and motion vector of the current block are identical to those of a neighboring block, the motion information of the current block can be transmitted to the image decoding device by encoding information that can identify the neighboring block. This method is called 'merge mode'.

[0052] In merge mode, the inter prediction unit (124) selects a predetermined number of merge candidate blocks (hereinafter referred to as 'merge candidates') from the surrounding blocks of the current block.

[0053] As the surrounding blocks for deriving merge candidates, all or part of the left block (A0), the lower left block (A1), the upper block (B0), the upper right block (B1), and the upper left block (B2) adjacent to the current block within the current picture may be used, as illustrated in FIG. 4. In addition, a block located within a reference picture (which may or may not be the same as the reference picture used to predict the current block) other than the current picture in which the current block is located may be used as a merge candidate. For example, a block co-located with the current block within the reference picture or blocks adjacent to the block at the co-located block may be additionally used as a merge candidate. If the number of merge candidates selected by the method described above is less than a preset number, a 0 vector is added to the merge candidates.

[0054] The inter prediction unit (124) uses these surrounding blocks to construct a merge list containing a predetermined number of merge candidates. Among the merge candidates included in the merge list, the merge candidate to be used as motion information of the current block is selected and merge index information for identifying the selected candidate is generated. The generated merge index information is encoded by the entropy encoding unit (155) and transmitted to the video decoding device.

[0055] Merge Skip mode is a special case of merge mode. After quantization, when all transform coefficients for entropy encoding are close to zero, only neighboring block selection information is transmitted without transmitting residual signals. By utilizing merge skip mode, relatively high encoding efficiency can be achieved for low-motion images, still images, and screen content images.

[0056] Hereinafter, merge mode and merge skip mode are collectively referred to as merge / skip mode.

[0057] Another method for encoding motion information is Advanced Motion Vector Prediction (AMVP) mode.

[0058] In AMVP mode, the inter prediction unit (124) derives predicted motion vector candidates for the motion vector of the current block using neighboring blocks of the current block. As neighboring blocks used to derive predicted motion vector candidates, all or some of the left block (A0), the lower left block (A1), the upper block (B0), the upper right block (B1), and the upper left block (B2) adjacent to the current block in the current picture as shown in FIG. 4 may be used. In addition, a block located in a reference picture (which may or may not be the same as the reference picture used to predict the current block) other than the current picture in which the current block is located may be used as the neighboring block used to derive predicted motion vector candidates. For example, a block co-located with the current block in the reference picture or blocks adjacent to the block in the co-located block may be used. If the number of motion vector candidates is less than a preset number by the method described above, a 0 vector is added to the motion vector candidates.

[0059] The inter prediction unit (124) derives predicted motion vector candidates using the motion vectors of these surrounding blocks, and determines a predicted motion vector for the motion vector of the current block using the predicted motion vector candidates. Then, the predicted motion vector is subtracted from the motion vector of the current block to produce a differential motion vector.

[0060] The predicted motion vector can be obtained by applying a predefined function (e.g., median, mean, etc.) to the predicted motion vector candidates. In this case, the image decoding device also knows the predefined function. In addition, since the surrounding blocks used to derive the predicted motion vector candidates are blocks that have already been encoded and decoded, the image decoding device also already knows the motion vectors of the surrounding blocks. Therefore, the image encoding device does not need to encode information to identify the predicted motion vector candidates. Therefore, in this case, information about the differential motion vector and information about the reference picture used to predict the current block are encoded.

[0061] Alternatively, the predicted motion vector can be determined by selecting one of the predicted motion vector candidates. In this case, information for identifying the selected predicted motion vector candidate is additionally encoded, along with information about the differential motion vector and the reference picture used to predict the current block.

[0062] The subtractor (130) subtracts the prediction block generated by the intra prediction unit (122) or inter prediction unit (124) from the current block to generate a residual block.

[0063] The transformation unit (140) transforms residual signals within a residual block having pixel values ​​in a spatial domain into transform coefficients in a frequency domain. The transformation unit (140) may transform the residual signals within the residual block using the entire size of the residual block as a transformation unit, or may divide the residual block into a plurality of sub-blocks and use the sub-blocks as transformation units to perform the transformation. Alternatively, the residual signals may be transformed using only the transformation domain sub-block as a transformation unit by dividing the sub-blocks into two sub-blocks, that is, a transformation domain and a non-transform domain. Here, the transformation domain sub-block may be one of two rectangular blocks having a size ratio of 1:1 with respect to the horizontal axis (or vertical axis). In this case, a flag (cu_sbt_flag) indicating that only a sub-block has been converted, directionality (vertical / horizontal) information (cu_sbt_horizontal_flag), and / or position information (cu_sbt_pos_flag) are encoded by the entropy encoding unit (155) and signaled to the image decoding device. In addition, the size of the conversion area sub-block may have a size ratio of 1:3 with respect to the horizontal axis (or vertical axis), and in this case, a flag (cu_sbt_quad_flag) distinguishing the corresponding division is additionally encoded by the entropy encoding unit (155) and signaled to the image decoding device.

[0064] Meanwhile, the transformation unit (140) can individually perform transformations on the residual block in the horizontal and vertical directions. For the transformation, various types of transformation functions or transformation matrices can be used. For example, a pair of transformation functions for horizontal transformation and vertical transformation can be defined as a Multiple Transform Set (MTS). The transformation unit (140) can select one transformation function pair with the best transformation efficiency among the MTS and transform the residual block in the horizontal and vertical directions, respectively. Information (mts_idx) on the transformation function pair selected among the MTS is encoded by the entropy encoding unit (155) and signaled to the image decoding device.

[0065] The quantization unit (145) quantizes the transform coefficients output from the transform unit (140) using quantization parameters and outputs the quantized transform coefficients to the entropy encoding unit (155). The quantization unit (145) may directly quantize a related residual block without transformation for a certain block or frame. The quantization unit (145) may also apply different quantization coefficients (scaling values) according to the positions of the transform coefficients within the transform block. The quantization matrix applied to the quantized transform coefficients arranged in two dimensions may be encoded and signaled to an image decoding device.

[0066] The rearrangement unit (150) can perform rearrangement of coefficient values ​​for quantized residual values.

[0067] The reordering unit (150) can change a two-dimensional coefficient array into a one-dimensional coefficient sequence by using coefficient scanning. For example, the reordering unit (150) can output a one-dimensional coefficient sequence by scanning from the DC coefficient to the coefficients of the high-frequency region by using a zig-zag scan or a diagonal scan. Depending on the size of the transformation unit and the intra prediction mode, a vertical scan that scans the two-dimensional coefficient array in the column direction or a horizontal scan that scans the two-dimensional block-shaped coefficients in the row direction may be used instead of the zig-zag scan. That is, depending on the size of the transformation unit and the intra prediction mode, the scanning method to be used may be determined among the zig-zag scan, the diagonal scan, the vertical scan, and the horizontal scan.

[0068] The entropy encoding unit (155) generates a bitstream by encoding a sequence of one-dimensional quantized transform coefficients output from the rearrangement unit (150) using various encoding methods such as CABAC (Context-based Adaptive Binary Arithmetic Code) and Exponential Golomb.

[0069] In addition, the entropy encoding unit (155) encodes information related to block division, such as CTU size, CU division flag, QT division flag, MTT division type, and MTT division direction, so that the image decoding device can divide the block in the same manner as the image encoding device. In addition, the entropy encoding unit (155) encodes information about the prediction type indicating whether the current block is encoded by intra prediction or inter prediction, and encodes intra prediction information (i.e., information about the intra prediction mode) or inter prediction information (information about the encoding mode of motion information (merge mode or AMVP mode), a merge index in the case of the merge mode, and a reference picture index and a differential motion vector in the case of the AMVP mode) according to the prediction type. In addition, the entropy encoding unit (155) encodes information related to quantization, that is, information about quantization parameters and information about a quantization matrix.

[0070] The inverse quantization unit (160) inversely quantizes the quantized transform coefficients output from the quantization unit (145) to generate transform coefficients. The inverse transform unit (165) transforms the transform coefficients output from the inverse quantization unit (160) from the frequency domain to the spatial domain to restore the residual block.

[0071] An adder (170) adds the restored residual block and the predicted block generated by the prediction unit (120) to restore the current block. The pixels within the restored current block are used as reference pixels when intra-predicting the next block.

[0072] The loop filter unit (180) performs filtering on restored pixels to reduce blocking artifacts, ringing artifacts, blurring artifacts, etc. that occur due to block-based prediction and transformation / quantization. The loop filter unit (180) may include all or part of a deblocking filter (182), a sample adaptive offset (SAO) filter (184), and an adaptive loop filter (ALF, 186) as an in-loop filter.

[0073] The deblocking filter (182) filters the boundaries between restored blocks to remove blocking artifacts caused by block-based encoding / decoding, and the SAO filter (184) and the ALF (186) perform additional filtering on the deblocking-filtered image. The SAO filter (184) and the ALF (186) are filters used to compensate for the differences between restored pixels and original pixels caused by lossy coding. The SAO filter (184) improves not only subjective image quality but also encoding efficiency by applying an offset in units of CTUs. In contrast, the ALF (186) performs block-based filtering, and compensates for distortion by applying different filters by distinguishing the edges and degrees of variation of the corresponding block. Information on filter coefficients to be used in the ALF can be encoded and signaled to an image decoding device.

[0074] The restored blocks filtered through the deblocking filter (182), SAO filter (184), and ALF (186) are stored in the memory (190). When all blocks within a picture are restored, the restored picture can be used as a reference picture for inter-predicting blocks within a picture to be encoded later.

[0075] The video encoding device can store the bitstream of encoded video data on a non-transitory storage medium or transmit it to the video decoding device using a communication network.

[0076] FIG. 5 is an exemplary block diagram of an image decoding device capable of implementing the techniques of the present disclosure. Hereinafter, the image decoding device and its subcomponents will be described with reference to FIG. 5.

[0077] The video decoding device may be configured to include an entropy decoding unit (510), a rearrangement unit (515), an inverse quantization unit (520), an inverse transformation unit (530), a prediction unit (540), an adder (550), a loop filter unit (560), and a memory (570).

[0078] Similar to the video encoding device of FIG. 1, each component of the video decoding device may be implemented in hardware, software, or a combination of hardware and software. Furthermore, the functions of each component may be implemented in software, with a microprocessor executing the software functions corresponding to each component.

[0079] The entropy decoding unit (510) decodes the bitstream generated by the image encoding device to extract information related to block division, thereby determining the current block to be decoded, and extracts prediction information, information on residual signals, etc. required to restore the current block.

[0080] The entropy decoding unit (510) extracts information about the CTU size from the Sequence Parameter Set (SPS) or the Picture Parameter Set (PPS), determines the size of the CTU, and divides the picture into CTUs of the determined size. Then, the CTU is determined as the top layer of the tree structure, i.e., the root node, and the CTU is divided using the tree structure by extracting division information about the CTU.

[0081] For example, when splitting a CTU using the QTBTTT structure, first, the first flag (QT_split_flag) related to the splitting of QT is extracted, and each node is split into four nodes of the lower layer. Then, for the nodes corresponding to the leaf nodes of QT, the second flag (mtt_split_flag) related to the splitting of MTT and the split direction (vertical / horizontal) and / or split type (binary / ternary) information are extracted, and the corresponding leaf nodes are split into the MTT structure. Accordingly, each node below the leaf nodes of QT are split recursively into the BT or TT structure.

[0082] As another example, when splitting a CTU using the QTBTTT structure, the CU split flag (split_cu_flag) indicating whether the CU is split is first extracted, and if the block is split, the first flag (QT_split_flag) may be extracted. During the splitting process, each node may undergo zero or more repeated QT splits followed by zero or more repeated MTT splits. For example, a CTU may undergo an MTT split right away, or conversely, may undergo only multiple QT splits.

[0083] As another example, when splitting a CTU using the QTBT structure, the first flag (QT_split_flag) related to the splitting of QT is extracted, and each node is split into four nodes of the lower layer. Furthermore, for nodes corresponding to leaf nodes of QT, a split flag (split_flag) indicating whether to further split into BTs and splitting direction information are extracted.

[0084] Meanwhile, when the entropy decoding unit (510) determines the current block to be decoded by using the division of the tree structure, it extracts information on the prediction type indicating whether the current block is intra-predicted or inter-predicted. If the prediction type information indicates intra-prediction, the entropy decoding unit (510) extracts syntax elements for intra-prediction information (intra-prediction mode) of the current block. If the prediction type information indicates inter-prediction, the entropy decoding unit (510) extracts syntax elements for inter-prediction information, i.e., information indicating a motion vector and a reference picture referenced by the motion vector.

[0085] Additionally, the entropy decoding unit (510) extracts information about the quantized transform coefficients of the current block as information related to quantization and information about residual signals.

[0086] The rearrangement unit (515) can change the sequence of one-dimensional quantized transform coefficients entropy-decoded in the entropy decoding unit (510) back into a two-dimensional coefficient array (i.e., block) in the reverse order of the coefficient scanning performed by the image encoding device.

[0087] The inverse quantization unit (520) inversely quantizes the quantized transform coefficients and inversely quantizes the quantized transform coefficients using the quantization parameters. The inverse quantization unit (520) may also apply different quantization coefficients (scaling values) to the quantized transform coefficients arranged in two dimensions. The inverse quantization unit (520) may perform inverse quantization by applying a matrix of quantized coefficients (scaling values) from an image encoding device to a two-dimensional array of quantized transform coefficients.

[0088] The inverse transform unit (530) inversely transforms the inverse quantized transform coefficients from the frequency domain to the spatial domain to restore residual signals, thereby generating a residual block for the current block.

[0089] In addition, when the inverse transform unit (530) inversely transforms only a portion of a transform block (sub-block), it extracts a flag (cu_sbt_flag) indicating that only a sub-block of the transform block has been transformed, directionality (vertical / horizontal) information (cu_sbt_horizontal_flag) of the sub-block, and / or position information (cu_sbt_pos_flag) of the sub-block, and inversely transforms the transform coefficients of the corresponding sub-block from the frequency domain to the spatial domain to restore residual signals, and fills “0” values ​​with residual signals for areas that have not been inversely transformed, thereby generating a final residual block for the current block.

[0090] In addition, when MTS is applied, the inverse transform unit (530) determines a transform function or a transform matrix to be applied in the horizontal and vertical directions using MTS information (mts_idx) signaled from the image encoding device, and performs inverse transform on the transform coefficients within the transform block in the horizontal and vertical directions using the determined transform function.

[0091] The prediction unit (540) may include an intra prediction unit (542) and an inter prediction unit (544). The intra prediction unit (542) is activated when the prediction type of the current block is intra prediction, and the inter prediction unit (544) is activated when the prediction type of the current block is inter prediction.

[0092] The intra prediction unit (542) determines the intra prediction mode of the current block among a plurality of intra prediction modes from the syntax elements for the intra prediction mode extracted from the entropy decoding unit (510), and predicts the current block using reference pixels around the current block according to the intra prediction mode.

[0093] The inter prediction unit (544) uses the syntax elements for the inter prediction mode extracted from the entropy decoding unit (510) to determine the motion vector of the current block and the reference picture referenced by the motion vector, and predicts the current block using the motion vector and the reference picture.

[0094] An adder (550) adds the residual block output from the inverse transform unit (530) and the predicted block output from the inter prediction unit (544) or the intra prediction unit (542) to restore the current block. The pixels within the restored current block are used as reference pixels when intra-predicting a block to be decoded later.

[0095] The loop filter unit (560) may include a deblocking filter (562), an SAO filter (564), and an ALF (566) as in-loop filters. The deblocking filter (562) deblocks the boundaries between restored blocks to remove blocking artifacts caused by block-by-block decoding. The SAO filter (564) and the ALF (566) perform additional filtering on restored blocks after deblocking filtering to compensate for differences between restored pixels and original pixels caused by lossy coding. The filter coefficients of the ALF are determined using information about filter coefficients decoded from the non-stream.

[0096] The restored blocks filtered through the deblocking filter (562), SAO filter (564), and ALF (566) are stored in the memory (570). When all blocks within a picture are restored, the restored picture is used as a reference picture for inter-predicting blocks within a picture to be encoded later.

[0097] The present embodiment relates to encoding and decoding of images (video) as described above. More specifically, the present invention provides a video coding method and device, which derives one or more intra prediction modes on the decoder side, and then uses one of the derived prediction modes for predicting the current block, or uses another prediction mode for another decoding process of the current block.

[0098] The following embodiments may be performed by an intra prediction unit (122) within a video encoding apparatus. In addition, the following embodiments may be performed by an intra prediction unit (542) within a video decoding apparatus.

[0099] The video encoding device can generate signaling information related to the present embodiment in terms of rate distortion optimization in encoding the current block. The video encoding device can encode the signaling information using the entropy encoding unit (155) and then transmit it to the video decoding device. The video decoding device can decode the signaling information related to the decoding of the current block from the bitstream using the entropy decoding unit (510).

[0100] In the following description, the term "target block" may be used interchangeably with the current block or coding unit (CU). Alternatively, the term "target block" may also refer to a portion of a coding unit.

[0101] Also, a value of a flag being true indicates that the flag is set to 1. Also, a value of a flag being false indicates that the flag is set to 0.

[0102] The decoder side includes all or part of the inverse quantization unit (160), the inverse transform unit (165), the prediction unit (120), the adder (170), the loop filter unit (180), and the memory (190) in the video encoding device illustrated in FIG. 1. Alternatively, the decoder side includes all or part of the inverse quantization unit (520), the inverse transform unit (530), the prediction unit (540), the adder (550), the loop filter unit (560), and the memory (570) in the video decoding device illustrated in FIG. 5. With respect to a series of decoding processes, the decoder side of the video encoding device and the decoder side of the video decoding device perform the same operation. The video encoding device determines information related to the operation of the decoder side and signals the determined information to the video decoding device. The video decoding device can decode the signaled information and operate the decoder side based on the decoded information.

[0103] I-1. VVC's intra prediction technology

[0104] In intra prediction of VVC, the angular prediction direction is subdivided into 65, as shown in the example of Fig. 3a. Depending on the prediction angle of the intra prediction mode, prediction modes (predModeIntra) from 2 to 66 can be used. By introducing Wide-Angle Intra Prediction (WAIP), prediction modes of -14 to -1 and 67 to 80, which are directional modes with larger angles, can be used depending on the aspect ratio of the block. In intra prediction, a prediction block can be generated based on 67 Intra Prediction Modes (IPMs). The 67 IPMs refer to 67 intra prediction modes that can be signaled according to the aspect ratio of the block among prediction modes -14 to 80, including non-directional prediction modes such as Planar and DC modes.

[0105] In addition, VVC's intra prediction technology can generate intra prediction blocks using technologies such as MRLP (Multiple Reference Line intra Prediction), CCLM (Cross-Component Linear Model), PDPC (Position Dependent intra Prediction Combination), ISP (Intra Sub-Partitions), and MIP (Matrix-based Intra Prediction).

[0106] I-2. IBC (Intra Block Copy)

[0107] IBC performs intra prediction of the current block by copying a reference block within the same frame using a block vector to generate a prediction block of the current block.

[0108] A video encoding device performs block matching to derive an optimal block vector. Here, the block vector represents the displacement from the current block to the reference block. In order to increase encoding efficiency, the video encoding device may not transmit the block vector as is, but may divide it into a block vector predictor (BVP) and a block vector difference (BVD), encode the BVP and BVD, and then transmit them to the video decoding device.

[0109] In terms of utilizing block vectors, IBC features inter prediction. Therefore, IBC can be divided into IBC Merge / Skip mode and IBC AMVP mode.

[0110] In IBC merge / skip mode, a video encoding device constructs an IBC merge list. In order to optimize encoding efficiency, the video encoding device can select a block vector from among the candidates included in the IBC merge list and use the selected candidate as a block vector predictor (BVP). The video encoding device determines a merge index indicating the selected block vector. However, the video encoding device does not generate a BVD. The video encoding device encodes the merge index and transmits it to the video decoding device. The IBC merge list can be constructed by the video encoding device and the video decoding device in the same manner. The video decoding device can decode the merge index and then generate a block vector from the IBC merge list using the merge index.

[0111] The video encoding device uses the same block vector transmission method as the IBC merge mode in the case of the IBC skip mode, but does not transmit a residual block corresponding to the difference between the current block and the predicted block.

[0112] In IBC AMVP mode, in order to optimize encoding efficiency, the video encoding device determines a block vector and constructs an IBC AMVP list. The video encoding device determines a candidate index that designates one of the candidate block vectors included in the IBC AMVP list as a BVP. The video encoding device calculates the BVD, which is the difference between the BVP and the block vector. Thereafter, the video encoding device encodes the candidate index and BVD and transmits them to the video decoding device.

[0113] The video decoding device decodes the candidate index and BVD. The video decoding device can obtain the BVP indicated by the candidate index from the IBC AMVP list, and then restore the block vector by adding the BVP and BVD.

[0114] I-3. Template Matching Prediction

[0115] Template Matching Prediction (TMP) searches for a prediction block that minimizes the difference between templates in a predefined restoration region, i.e., a search region, within the current frame. The template of the current block (hereinafter, "current template") consists of upper and left neighboring samples. The difference between the template of the current block and the template of the predicted block found in the search region is defined as a cost function. Template Matching Prediction determines the prediction block with the minimum cost as the prediction block of the current block. The Sum of Absolute Differences (SAD) is used as the cost function.

[0116] IntraTMP (Intra Template Matching Prediction) technology in ECM (Enhanced Compression Model), the next-generation technology of VVC, sets an L-shaped / left / upper template around the current block, searches for the template most similar to the current template in the restoration area of ​​the current frame, and then uses a block adjacent to the searched template and having the same size as the current block as the prediction block of the current block. IntraTMP technology searches for similar templates based on a cost function, and uses SAD (Sum of Absolute Differences) as the cost function. The video encoding device transmits whether to use IntraTMP mode, and the video decoding device can perform the same template matching task when applying IntraTMP mode.

[0117] Figure 6 is an example diagram showing a search area used in IntraTMP technology.

[0118] To save memory, the current CTU (coding tree unit) where the current block is located, the upper left CTU, the upper CTU, and the left CTU can be limited to the possible search areas. In Fig. 6, the search areas are represented by R1 to R4. In addition, among the possible search areas, an area generated according to the product of the width and height (w, h) of the current block and a preset constant a can be adaptively set as the search range. For example, by setting a = 5, the search ranges SearchRange_w and SearchRange_h can be determined as in Equation 1.

[0119]

[0120] In mathematical expression 1, BlkW and BlkH represent the width and height of the current block.

[0121] The template search area in IntraTMP mode can be defined in advance according to an agreement between the video encoding device and the video decoding device.

[0122] IntraTMP technology may include sub-modes such as a mode using a single template (TMP single), a technology that fuses multiple templates (TMP fusion), a sub-pixel precision mode, and a linear filter model mode.

[0123] In single-template mode, the template search process involves two steps. In the first step, a search is performed at 3-pixel intervals, and block vectors (BVs) designating 30 candidate templates (i.e., templates of candidate reference blocks) are included in a candidate list. In the second step, an additional search is performed at 1-pixel intervals in a surrounding 3×3 region for the 30 BVs in the candidate list, resulting in a final selection of 19 BVs. Thereafter, an optimal reference block is selected in terms of rate-distortion optimization, and a candidate list index indicating the finally selected BV is signaled from the video encoding device to the video decoding device.

[0124] TMP fusion combines multiple reference templates and reference blocks using weights.

[0125] Sub-pixel precision mode searches for similar templates based on precisions of 1 / 2-Pel, 1 / 4-Pel, and 3 / 4-Pel.

[0126] The linear filter model mode utilizes a 6-tap filter to filter predicted blocks. The 6-tap filter is a cross-shaped 5-tap filter with an added bias. The filter coefficients can be calculated based on the relationship between the current template and the reference template. The current block is predicted using the reference block to which the generated filter is applied.

[0127] I-4. DIMD (Decoder-side Intra Mode Derivation) technology

[0128] The DIMD method sets reconstructed pixels adjacent to the current block as a template, and performs gradient analysis on the set template to derive directional intra prediction modes. The DIMD method extracts orientation and magnitude information by analyzing vertical and horizontal gradients within the template. The DIMD method can calculate the horizontal gradient Gx and the vertical gradient Gy, respectively, by applying a horizontal Sobel filter and a vertical Sobel filter to the pixel position at the center of the template. The angle (orientation) at the corresponding pixel position is calculated through atan(Gy / Gx), and the sum of the absolute values ​​of Gx and Gy can be calculated as the magnitude of the angle (orientation). The size of the template may be equal to or larger than the size of the Sobel filter. The template may include adjacent samples at the lower left and upper right of the current block.

[0129] The angle and magnitude calculated for each pixel position in the center of the template region are used to generate a Histogram of Gradient (HoG), which is constructed by accumulating the angle along the x-axis and the magnitude along the y-axis. The DIMD method can derive or determine corresponding intra prediction modes and corresponding weights by mapping a plurality of angles (e.g., up to 5) with relatively high accumulated magnitude values ​​on the HoG to directional modes. The intra prediction modes determined by the DIMD method may be referred to as DIMD modes, and can then be utilized to generate a Most Probable Mode (MPM).

[0130] To form the final predicted block, the predictors of the intra prediction modes determined by DIMD can be weighted and combined with non-directional predictors (based on planar or block vectors).

[0131] Meanwhile, in intra prediction, MPM technology utilizes the intra prediction modes of surrounding blocks when intra-predicting the current block. The video encoding device generates an MPM list that includes intra-prediction modes derived from predefined locations spatially adjacent to the current block. By transmitting the index of the MPM list instead of the index of the prediction mode, the video encoding device can improve the encoding efficiency of the intra-prediction mode.

[0132] I-5. TIMD (Template-based Intra Mode Derivation) technology

[0133] TIMD technology performs template prediction by applying the intra prediction mode of the MPM list to the template region surrounding the current block. TIMD technology calculates the Sum of Absolute Transformed Differences (SATD) cost between the predicted value in the template region and the reconstructed template value. Based on the estimated cost, TIMD technology selects the mode with the lowest cost (costMode1) (hereinafter, the first mode) and the mode with the second lowest cost (costMode2) (hereinafter, the second mode). The undirected mode with the lower SATD cost (costMode3) among DC or Planar is selected as the third mode. Undirected modes can also be used if the following conditions are met.

[0134] - If the third non-directional mode is different from the first and second modes.

[0135] - If costMode3 < 1.5×costMode1

[0136] When both of the above conditions are true, the predicted blocks according to the three intra prediction modes are combined using weights as shown in Equation 2.

[0137]

[0138] If either of the two conditions described above is false, the first and second modes are used. The TIMD technique determines whether to combine the weights of the two TIMD modes according to Equation 3.

[0139]

[0140] If Equation 3 is satisfied, prediction blocks according to the two modes are weighted and combined. Conversely, if Equation 3 is not satisfied, the prediction mode with the lower cost is used. When two modes are combined, a greater weight is assigned to the mode with the lower SATD cost according to Equation 4.

[0141]

[0142] Figure 7 is an example diagram showing a method for deriving one or more intra prediction modes in TIMD technology.

[0143] The size of the template area can be determined based on the size of the current block, as shown in Fig. 7. If the width (W) or height (H) of the current block is greater than 8, the template size L1 or L2 is set to 4. If the width or height of the current block is 8 or less, L1 or L2 is set to 2.

[0144] I-6. EMRL (Extended Multiple Reference Line) technology

[0145] In VVC, lines 0, 1, and 2 are used as reference lines for intra prediction. In contrast, in ECM, lines 0, 1, 3, 5, 7, and 12 can be used as extended reference lines.

[0146] I-7. Extrapolated Intra Prediction (EIP) technology

[0147] In ECM, EIP technology is utilized in the intra prediction process. The image decoding device derives EIP filter coefficients (hereinafter, used interchangeably with EIP coefficients) using three types of filters as shown in Fig. 8a and a reference sample area around the current block as shown in Fig. 8b, and predicts the current block using the derived EIP filter. In Fig. 8a, the EIP filter includes an input pixel area corresponding to the input (hereinafter, used interchangeably with the input area) and an output pixel area corresponding to the output (hereinafter, used interchangeably with the output area). The output area corresponds to one pixel. To generate an output sample, the EIP coefficients are applied to samples of the input pixel area. In Fig. 8b, fWhidth and fHeight represent the height and width of the EIP filter, respectively, and leftSize and aboveSize define the reference sample area used for the EIP.

[0148] The EIP technique includes 1) a process of deriving EIP coefficients, 2) a process of recursively generating prediction samples within the current block, and 3) a process of analyzing the gradient of the predicted block to derive the mode of the predicted block, and using the derived mode to select a kernel such as MTS (Multiple Transform Set) or LFNST (Low-frequency Non-separable Transform).

[0149] The video decoding device derives the EIP coefficients as follows.

[0150] For a filter selected from the three types in Fig. 8a, EIP coefficients can be calculated by moving pixels one by one in the reference sample area. In the output area of ​​the EIP, EIP coefficients can be calculated using an auto-correlation matrix and a cross-correlation vector to predict output samples. The auto-correlation matrix can be calculated based on the samples in the input area shown in Fig. 8a, and the cross-correlation vector can be calculated based on the input samples and the reconstructed samples in the output area.

[0151] The video decoding device can select a filter type based on syntax transmitted from the video encoding device.

[0152] The video decoding device can generate a prediction sample of the current block as follows. The video decoding device predicts a sample at the (x, y) location using 15 filter taps as in Equation 5.

[0153]

[0154] In Equation 5, pred(x,y) is the predicted value at the (x, y) location within the current block, and c i is the EIP coefficient. t(x-offsetX i , y-offsetY i ) represents a restored sample or a predicted sample. The prediction process uses a recursive structure that uses the values ​​output by EIP as input again.

[0155] Figure 9 is an example diagram showing the generation order of EIP-based prediction samples.

[0156] The video decoding device generates prediction samples of EIP in diagonal order from the upper right to the lower left, as shown in Fig. 9.

[0157] If the current block is coded in EIP mode, the video encoding device can signal an EIP Merge Flag, which indicates whether information inherited from a block previously coded in EIP mode can be used. If the EIP Merge Flag is true, the video decoding device can inherit filter shapes and filter coefficients from a block previously coded in EIP mode. On the other hand, if the EIP Merge Flag is false, the video decoding device parses an index indicating the type of the filter and the type of the reference sample area, and derives the EIP coefficients based on the parsed index. Table 1 shows the syntax related to the EIP mode.

[0158]

[0159] I-8. SGPM (Spatial Geometric Partitioning Mode) technology

[0160] SGPM technology divides the current block into two regions and performs different intra predictions on each region. As illustrated in Fig. 10, the current block can be divided into two parts with different intra prediction modes ("intra_pred_mode0" and "intra_pred_mode1") using a partition mode. This information can be expressed as a single candidate index ("sgpm_cand_idx") that indicates a combination of one partition mode ("partition mode idx") and two intra prediction modes ("intra_pred_mode0_idx" and "intra_pred_mode1_idx"), as illustrated in Fig. 10.

[0161] The order of candidates in the list is reorganized in order of lowest SAD cost in the template area, as shown in Fig. 11. That is, templates can be used to generate a candidate list. Fig. 11 illustrates a template (1120) represented by a current block (1110) and two template parts (1120a, 1120b).

[0162] For each possible combination of one partition mode and two intra prediction modes, a prediction for a template (1120) is generated, and blending weights for the current block are extended to the template (1120). Alternatively, each template region can use a single value as a blending weight based on the partition boundary. For example, a value of 0 or 1 can be used as the weight of each template region. The combinations described above are ranked in ascending order according to the sum of absolute difference (SAD) cost between the template prediction and reconstruction. The size of the candidate list can be set to, for example, 16, and these candidates are considered the most probable SGPM combinations of the current block. The video encoding device and the video decoding device construct the same candidate list using the template (1120). The video encoding device selects an optimal candidate and signals the index of the selected candidate to the video decoding device.

[0163] To reduce the complexity of candidate list generation, both the number of available partition modes and the number of available intra prediction modes can be limited. For example, in the SGPM adopted for ECM, 26 partition modes and 9 intra prediction modes are used to form combinations. The 9 intra prediction modes include some of the typical intra prediction modes illustrated in Fig. 3a (e.g., a directional mode parallel to the partition boundary, a directional mode perpendicular to the partition boundary, and a PLANAR mode), and may further include prediction modes based on block vectors obtained from neighboring blocks (e.g., an IntraTMP mode or an IBC mode).

[0164] I-9. OBIC (Occurrence-based Intra Coding) technology

[0165] OBIC technology derives an intra prediction mode based on neighboring reference sample information of the current block at the decoder side, and combines it with an existing prediction mode (planar or non-directional prediction based on block vectors) to generate a final prediction block. The video decoding device can generate a HoC by counting the frequency of the intra prediction mode used to predict the surrounding reference samples for each sample. The video decoding device predetermines a neighboring block area that is immediately adjacent or not adjacent to the current block, collects the intra prediction mode of the corresponding block, and constructs the HoC based on the occurrence frequency of the intra prediction mode. The occurrence frequency is calculated based on the number of samples encoded with a specific intra prediction mode. For example, if a block ui having a length of horizontal uiWidth and a length of vertical uiHeight is encoded with a specific intra prediction mode IPM (Intra prediction mode), the HoC [IPM] is calculated as in Equation 6.

[0166]

[0167] In Equation 6, IPM can be one of the 67 intra prediction modes illustrated in Fig. 3a.

[0168] The locations of non-adjacent neighboring blocks used in HoC can be illustrated as in Fig. 12. The numbers indicated on the blocks in Fig. 12 indicate the indexes of the blocks.

[0169] The results according to HoC can be illustrated as shown in Figure 13. In Figure 13, the accumulated sample frequency according to Equation 6 for each IPM on the horizontal axis is expressed on the vertical axis. Figure 13 also shows a HoC that includes a portion of all IPMs. IPM is one of the intra prediction modes used in ECM or VVC.

[0170] The video decoding device selects five IPMs according to the order of the most frequent values ​​of the HoC. The video decoding device generates prediction blocks based on the five selected prediction modes and weights and combines the generated prediction blocks to generate a prediction block. Similar to DIMD, the predictors of the intra prediction modes determined according to the HoC can be weighted and combined with non-directional predictors (based on planar or block vectors) to form the final prediction block. Meanwhile, the weights associated with each prediction mode can be set in descending order of the HoC value based on the HoC value.

[0171] The video decoding device applies the HoC-based intra prediction mode only to luma blocks. Furthermore, the HoC-based intra prediction mode is not applied to blocks containing fewer than 64 samples. The HoC-based intra prediction mode is signaled using a PU-level flag. The HoC-based intra prediction mode is used as a submode of DIMD, and this flag can be transmitted after the DIMD flag.

[0172] The following embodiments are described with a focus on a video decoding device, but can be implemented in the same or similar manner in a video encoding device. Alternatively, the following embodiments are described with a focus on the decoder side of a video decoding device, but can also be implemented in the same or similar manner in the decoder side of a video encoding device.

[0173] II. Embodiments according to the present disclosure

[0174] In the present disclosure, an image decoding device derives one or more intra prediction modes and then uses them in the decoding process of a current block. The method for deriving the intra prediction mode related to the present disclosure, i.e., the intra prediction technique, may be one or a combination of DIMD, TIMD, or OBIC used in conventional ECM.

[0175] First, we describe a method for deriving one or more intra prediction modes.

[0176] In the process of deriving an intra prediction mode, the video decoding device derives one or more prediction modes by differently setting reference sample areas related to the current block, as shown in Fig. 14. The video decoding device sets different adjacent areas and calculates a gradient histogram containing different information based on each adjacent area. The video decoding device derives a prediction mode related to each histogram and stores it in cand[0] to cand[N-1]. For example, the video decoding device can select the prediction mode with the highest frequency in each histogram and store the selected prediction mode in cand[0] to cand[N-1]. Hereinafter, cand[0] to cand[N-1] are used interchangeably with a candidate list or list.

[0177] Specifically, in the process of deriving the HoG (Histogram of gradient) of DIMD, the image decoding device determines the intra prediction mode derived using the three closest reference lines as cand[0]. With respect to the intra prediction modes derived using reference lines located further away, the image decoding device determines the intra prediction modes as cand[1]~cand[N-1] by increasing the index by one.

[0178] For example, in the process of deriving an intra prediction mode, an image decoding device derives one or more prediction modes by applying different cost functions. As cost functions, the Sum of Absolute Difference (SAD), which measures the distance between two blocks in the pixel domain, and the Sum of Absolute Transformed Difference (SATD), which measures the distance between two blocks in the frequency domain, can be used. The image decoding device can utilize cand[0] derived according to SAD and cand[1] derived according to SATD.

[0179] Specifically, in TIMD, the intra prediction mode induced according to SAD can be determined as cand[0], and the intra prediction mode induced according to SATD can be determined as cand[1].

[0180] As another example, in the process of deriving an intra prediction mode, the video decoding device derives one or more prediction modes by differently considering the modes of the referenced blocks. For example, by including or omitting some of the mode information of blocks encoded as MIP blocks, IntraTMP blocks, IBC blocks, and EIP blocks, the video decoding device derives cand[0]~cand[N-1].

[0181] Specifically, when OBIC is used for an intra prediction slice, the video decoding device determines the prediction mode derived according to HoC as cand[0] without using the number of pixels included in the blocks encoded as MIP blocks, IntraTMP blocks, IBC blocks, and EIP blocks. Additionally, the derived mode is determined as cand[1] regardless of the block mode.

[0182] As another example, in the process of deriving an intra prediction mode, the video decoding device derives one or more prediction modes by considering different sizes of reference blocks. For example, the video decoding device derives a prediction mode based on blocks having 64 or more samples, and derives a prediction mode based on blocks having fewer than 64 samples, and then determines the derived prediction modes as cand[0] to cand[N-1].

[0183] As another example, in the process of deriving an intra prediction mode, the video decoding device derives one or more prediction modes by considering different reference channels. For example, the video decoding device determines the prediction mode derived from the luma channel and the prediction mode derived from the chroma channel as cand[0] and cand[1], respectively.

[0184] As another example, the video decoding device can designate an existing intra prediction mode used in ECM to one of cand[0] to cand[N-1] in addition to the derived modes. For example, the existing intra prediction mode used in ECM can designate a planar mode, an intra prediction mode according to SGPM, etc. When the current block is predicted according to MIP, EIP, IntraTMP, etc., the planar mode can represent a prediction technique such as MIP, EIP, IntraTMP, etc. in the decoding process. Hereinafter, using an existing intra prediction mode means using a prediction technique such as SGPM, MIP, EIP, IntraTMP, etc. The existing intra prediction mode can be used for the prediction of the current block. As an example, the existing intra prediction mode can be designated as cand[0]. Alternatively, the existing intra prediction mode can be designated as cand[i] (i≠0).

[0185] In the above-described method, in the process of deriving the intra prediction mode, the video decoding device configures different cand[0] to cand[N-1] depending on the differences in the way reference samples are used, the way reference blocks are used, and the way cost functions are used. However, even while using the same method, the video decoding device can determine the value selected as the best mode as cand[0] and set the mode with the next highest priority as cand[1]. For example, in OBIC, the video decoding device selects the most frequent mode as cand[0] and the mode with the next highest frequency as cand[1]. In DIMD, the video decoding device selects the mode with the highest HoG as cand[0] and the mode with the next highest priority as cand[1]. In TIMD, the video decoding device normalizes the magnitudes of the SAD cost function and the SATD cost function, and then compares the normalized costs. The video decoding device selects the mode corresponding to a lower cost as cand[0] and the mode corresponding to a higher cost as cand[1].

[0186] As described above, the order of cand0]~cand[N-1] can be determined arbitrarily. However, the order of cand[0]~cand[N-1] can be determined in descending or ascending order depending on the importance. For example, in OBIC, the image decoding device selects the mode with the highest HoC in different derivation processes as cand[0] and determines the lower-order modes as cand[n] (n=1...). In DIMD, the image decoding device selects the mode with the highest HoG as cand[0] and determines the lower-order modes as cand[n] (n=1...). Alternatively, the mode with the HoG derived from the area closest to the current block can be determined as cand[0].

[0187] Below, a method for using the derived intra prediction mode in the decoding process of the current block is described.

[0188] The video decoding device can use the intra prediction mode cand[i] among cand[0] to cand[N-1] derived as described above for the prediction of the current block. cand[i] can be one of the derived modes or the existing intra prediction mode described above. If cand[i] is the existing intra prediction mode, cand[j] (j≠i) can be the derived prediction mode. As another example, both cand[i] and cand[j] can be derived prediction modes. Additionally, the video decoding device can use cand[j] (j≠i) in the decoding process, such as 1) reconstructing the intra prediction mode index, 2) configuring the MPM, 3) mixing the intra prediction block, and 4) selecting the transform kernel.

[0189] For example, in the existing ECM GPM mode, the directionality of the current block is derived at the decoder side when selecting an intra prediction mode. The video decoding device can use cand[j] instead of cand[i] as the directionality of the current block. In the future, the video decoding device can select a transform kernel using the directionality of the current block set to cand[j].

[0190] As another example, in the existing ECM MPM, the directionality of the current block is derived at the decoder side, and the derived directionality is input to the MPM. The video decoding device can use cand[j] instead of cand[i] as the directionality of the current block.

[0191] As another example, in the existing ECM intra-merge technique, the intra prediction mode of an adjacent block is inherited, and the inherited prediction mode is used in the current block. The video decoding device can use cand[j], rather than cand[i], as the inherited prediction mode.

[0192] As another example, when generating a block by mixing one or more blocks in ECM, the image decoding device uses cand[j] instead of cand[i] as in Equation 7.

[0193]

[0194] In Equation 7, w0 and w1 represent weights. P cand[j] is the block predicted using cand[j] and P I is a block predicted using the existing intra prediction mode.

[0195] As another example, cand[j] can be used to select a transformation kernel in ECM.

[0196] When performing intra prediction using IntraTMP in a conventional ECM, the DIMD process is executed during the process of selecting the MTS for the corresponding block. For blocks predicted using IntraTMP, the image decoding device can utilize cand[j] according to DIMD during the process of selecting the MTS.

[0197] When performing intra prediction using MIP or IntraTMP in the existing ECM, the DIMD process is executed in the process of selecting the LFNST kernel of the corresponding block. With respect to a block predicted using MIP or IntraTMP, the image decoding device can use cand[j] according to DIMD in the process of selecting the LFNST kernel. As another example, the image decoding device can use cand[j] according to DIMD in the process of selecting the first transformation kernel, and cand[i] according to DIMD in the process of selecting the second transformation kernel.

[0198] When performing intra prediction using EIP in the existing ECM, the intra prediction mode determined by the execution of DIMD is utilized in the process of selecting LFNST, NSPT, and MTS of the corresponding block. With respect to a block predicted using the EIP filter, the image decoding device can utilize cand[j] according to DIMD in the process of selecting LFNST, NSPT, and MTS. As another example, the image decoding device can utilize cand[j] according to DIMD in the process of selecting the first transformation kernel, and cand[i] according to DIMD in the process of selecting the second transformation kernel.

[0199] When performing inter prediction in a conventional ECM, the intra prediction mode determined by DIMD execution is utilized when selecting the LFNST and NSPT for the corresponding block. For blocks predicted using inter prediction, the image decoding device can utilize cand[j] according to DIMD when selecting the LFNST and NSPT.

[0200] When performing intra prediction of chroma components using Cross-Component Prediction (CCP) in conventional ECM, the DIMD process is executed during the process of selecting the LFNST and NSPT kernels for the corresponding block. For blocks predicted using CCP, the image decoding device can utilize cand[j] according to DIMD during the process of selecting the LFNST and NSPT kernels.

[0201] Below, a method for determining cand[i] and cand[j] based on one or more intra prediction modes is described.

[0202] The video encoding device can signal indices i and j of cand[i] and cand[j] at a higher level such as a sequence, picture, subpicture, slice, tile, etc., and / or at a block level such as a coding tree unit (CTU), coding unit (CU).

[0203] As another example, the indices i and j may be determined according to a predefined method between the video encoding device and the video decoding device. For example, i may be determined as 0 and j as 1. Alternatively, i may be determined as 1 and j as 0. As another example, i may be determined as 0 and j as n (n≠0). Alternatively, i may be determined as n (n≠0) and j as 0.

[0204] As another example, the aforementioned methods can be combined. For example, the video encoding device can signal an index i and set j to 0. Alternatively, the video encoding device can signal an index j and set i to 0.

[0205] The above-described embodiments can be combined as follows.

[0206] For example, in the DIMD mode as described above, the video encoding device can output different HoG values ​​using different reference lines, and derive one or more intra prediction modes from the different HoG values. The video encoding device uses HoG[0] derived from the nearest reference region in the decoding process of intra prediction, not intra prediction. In this case, the video encoding device can signal HoG[n] (n≠0) to use it as the intra prediction mode.

[0207] As another example, in TIMD mode, the video encoding device uses TIMD[0] derived by SAD in the intra prediction decoding process. At this time, the video encoding device can signal TIMD[1] derived by SATD to use it as an intra prediction mode.

[0208] As another example, in intra merge mode, instead of re-deriving and transmitting intra prediction-related parameters related to DIMD, TIMD, IntraTMP, OBIC, etc. from the current block, the video encoding device can transmit information on which encoding has been completed in an adjacent block using a block index. The block index of an adjacent block used in intra merge mode is exemplified as in Fig. 15.

[0209] When configuring the candidate list IntraMergeCand of the intra merge mode, the DIMD, TIMD, IntraTMP, and OBIC block information can be configured as follows.

[0210] DIMD block information includes the corresponding intra prediction mode, weighting factors used for block mixing, etc.

[0211] TIMD block information includes the corresponding intra prediction mode, weighting factors used for block mixing, etc.

[0212] IntraTMP block information includes block vectors, corresponding intra prediction modes, lighting compensation parameters, etc.

[0213] OBIC block information includes the corresponding intra prediction mode, weighting factors used for block mixing, etc.

[0214] As an example, the video encoding device includes one or more intra prediction modes, DIMDCand[i] and DIMDCand[j], in the DIMD mode, in the IntraMergeCand. In addition, the video encoding device includes one or more intra prediction modes, TIMDCand[i] and TIMDCand[j], in the TIMD mode, in the IntraMergeCand. In addition, the video encoding device includes one or more intra prediction modes, OBICCand[i] and OBICCand[j], in the IntraMergeCand, in the OBIC mode.

[0215] The rankings of DIMDCand[i] and DIMDCand[j] within the list can be determined based on the size of the HoG value derived during the DIMD process. For example, an index with a larger HoG can be placed first.

[0216] The rankings of TIMDCand[i] and TIMDCand[j] within the list can be determined based on the size of the template matching cost derived from the TIMD process. For example, indices with smaller costs can be ranked first.

[0217] Additionally, the rankings of OBICCand[i] and OBICCand[j] within the list can be determined based on the size of the HoC value derived from the OBIC process. For example, an index with a larger HoC can be placed first.

[0218] Hereinafter, using the cities of FIGS. 16 and 17, a method of deriving at least one intra prediction mode on the decoder side and utilizing the derived intra prediction modes is described.

[0219] Hereinafter, cand[0]~cand[N-1] may be at least one intra prediction mode or a list including at least one intra prediction mode. The list may also include an existing intra prediction mode. As an example, an existing intra prediction mode may be designated as cand[i] (i≠0). Alternatively, an existing intra prediction mode may be designated as cand[0]. Hereinafter, cand[j] may be a first intra prediction mode indicated by a first mode index, and cand[i] may be a second intra prediction mode indicated by a second mode index. Alternatively, cand[j] may be a second intra prediction mode indicated by a second mode index, and cand[i] may be a first intra prediction mode indicated by a first mode index.

[0220] FIG. 16 is a flowchart illustrating a method of encoding a current block performed by an image encoding device according to one embodiment of the present disclosure.

[0221] The video encoding device acquires intra prediction technology in relation to the current block (S1600).

[0222] An image encoding device can acquire an intra prediction technique for predicting the current block from a higher level. Alternatively, the image encoding device can determine the intra prediction technique from a rate-distortion optimization perspective. The intra prediction technique can be a technique that derives at least one intra prediction mode using adjacent samples of the current block, such as DIMD, TIMD, or OBIC.

[0223] As another example, in relation to the encoding process of the current block, the image encoding device may acquire the intra prediction technology described above from a higher level. The encoding process may be setting an intra prediction mode in the GPM, configuring an MPM, generating a candidate list in the intra merge technology, fusing at least one prediction block, or selecting a transform kernel.

[0224] The video encoding device derives at least one intra prediction mode using adjacent samples of a current block based on an intra prediction technique, and generates a list including at least one intra prediction mode (S1602).

[0225] For example, if the intra prediction technique is a DIMD technique, i.e., a method of deriving at least one intra prediction mode based on a gradient histogram, the image encoding device can set different adjacent regions related to the current block and calculate a gradient histogram containing different information based on each adjacent region. The image encoding device can generate a list by deriving a prediction mode related to each gradient histogram.

[0226] When the intra prediction technology is DIMD, the image encoding device can place the prediction mode having the largest gradient histogram value at the top of the list, and place the prediction mode having the second gradient histogram value at the second position in the list, with respect to the gradient histogram generated by applying DIMD.

[0227] As another example, if the intra prediction technique is a method of deriving at least one intra prediction mode based on TIMD, i.e., template matching, the image encoding device can derivate at least one prediction mode by applying different cost functions.

[0228] As another example, if the intra prediction technique is a method of deriving at least one intra prediction mode based on an OBIC, i.e., an occurrence histogram, the video encoding device can derive at least one prediction mode based on whether a reference block predicted according to the preset intra prediction technique is utilized for frequency accumulation of the OBIC with respect to a reference block of the current block.

[0229] As another example, the video encoding device can derive at least one prediction mode based on the size of a reference block of the current block.

[0230] As another example, the list may include existing intra prediction modes related to intra prediction of the current block in addition to at least one intra prediction mode.

[0231] The video encoding device derives a first mode index indicating a first intra prediction mode and a second mode index indicating a second intra prediction mode from the list (S1604).

[0232] For example, when the intra prediction technique is DIMD, the image encoding device can determine a first mode index from the list to indicate a prediction mode corresponding to the highest gradient histogram, and can determine a second mode index from the list to indicate a prediction mode corresponding to the next-ranked gradient histogram.

[0233] The video encoding device encodes the first mode index and the second mode index (S1606).

[0234] The video encoding device encodes the current block based on the first intra prediction mode or the second intra prediction mode (S1608).

[0235] For example, the video encoding device can generate a prediction block of the current block according to the second intra prediction mode. The video encoding device can perform the encoding process of the current block, as described above, based on the first intra prediction mode.

[0236] As an example, when selecting the intra prediction mode of GPM during the encoding process of the current block, the image encoding device can use the first intra prediction mode as the directionality of the current block.

[0237] As another example, when MPM is used in the encoding process, the video encoding device can use the first intra prediction mode as the directionality of the current block to generate the MPM.

[0238] As another example, when DIMD is used to select a transform kernel used in an encoding process, the image encoding device can select the transform kernel based on the first intra prediction mode.

[0239] As another example, when fusing at least one prediction block during the encoding process, the image encoding device can fuse a block predicted according to an existing intra prediction mode and a block predicted based on a first intra prediction mode.

[0240] As another example, if the encoding process is an intra merge mode and an adjacent block of the current block is predicted based on a prediction technique that generates at least one intra prediction mode, the video encoding device may encode a block index indicating the adjacent block. In addition, the video encoding device may include a first intra prediction mode and a second intra prediction mode based on the prediction technique of the adjacent block in the candidate list of the intra merge mode.

[0241] As another example, assume that the list includes an existing intra prediction mode related to intra prediction of the current block in addition to at least one intra prediction mode, and the second intra prediction mode indicates the existing intra prediction mode. When DIMD is used as the intra prediction technique, the video encoding device can generate a prediction block of the current block according to the existing intra prediction mode related to intra prediction of the current block, and select a transform kernel of the current block based on the first intra prediction mode.

[0242] FIG. 17 is a flowchart illustrating a method for restoring a current block performed by an image decoding device according to one embodiment of the present disclosure.

[0243] The video decoding device acquires intra prediction technology in relation to the current block (S1700).

[0244] A video decoding device may, for example, decode an intra prediction technique for predicting a current block from a bitstream. The intra prediction technique may be a technique that derives at least one intra prediction mode using adjacent samples of the current block, such as DIMD, TIMD, or OBIC.

[0245] As another example, in relation to the decoding process of the current block, the image decoding device may acquire the intra prediction technology described above from a higher level. The decoding process may include setting an intra prediction mode in the GPM, configuring an MPM, generating a candidate list in the intra merge technology, fusing at least one prediction block, or selecting a transform kernel.

[0246] The video decoding device derives at least one intra prediction mode using adjacent samples of the current block based on intra prediction technology, and generates a list including at least one intra prediction mode (S1702).

[0247] For example, if the intra prediction technique is DIMD, that is, a method of deriving at least one intra prediction mode based on a gradient histogram, the image decoding device can set different adjacent regions related to the current block and calculate a gradient histogram containing different information based on each adjacent region. The image decoding device can generate a list by deriving a prediction mode related to each gradient histogram.

[0248] When the intra prediction technology is DIMD, the image decoding device can place the prediction mode having the largest gradient histogram value at the top of the list, and place the prediction mode having the second gradient histogram value at the second position in the list, with respect to the gradient histogram generated by applying DIMD.

[0249] As another example, if the intra prediction technique is a method of deriving at least one intra prediction mode based on TIMD, i.e., template matching, the image decoding device can derive at least one prediction mode by applying different cost functions.

[0250] As another example, if the intra prediction technique is a method of deriving at least one intra prediction mode based on an OBIC, i.e., an occurrence histogram, the image decoding device can derive at least one prediction mode based on whether a reference block predicted according to the preset intra prediction technique is utilized for frequency accumulation of the OBIC with respect to a reference block of the current block.

[0251] As another example, the video decoding device can derive at least one prediction mode based on the size of a reference block of the current block.

[0252] As another example, the list may include existing intra prediction modes related to intra prediction of the current block in addition to at least one intra prediction mode.

[0253] The video decoding device obtains a first mode index and a second mode index (S1704).

[0254] For example, the video decoding device can decode a first mode index and a second mode index from a bitstream.

[0255] The video decoding device derives a first intra prediction mode and a second intra prediction mode from the list according to the first mode index and the second mode index (S1706).

[0256] The video decoding device restores the current block based on the first intra prediction mode or the second intra prediction mode (S1708).

[0257] For example, the video decoding device can generate a prediction block of the current block based on the second intra prediction mode. The video decoding device can perform the decoding process of the current block, as described above, based on the first intra prediction mode.

[0258] As an example, when selecting the intra prediction mode of GPM during the decoding process of the current block, the image decoding device can use the first intra prediction mode as the directionality of the current block.

[0259] As another example, when MPM is used in the decoding process, the image decoding device can use the first intra prediction mode as the directionality of the current block to generate the MPM.

[0260] As another example, when DIMD is used to select a transform kernel used in the decoding process, the image decoding device can select the inverse transform kernel based on the first intra prediction mode.

[0261] As another example, when fusing at least one prediction block during the decoding process, the image decoding device can fuse a block predicted according to an existing intra prediction mode and a block predicted based on a first intra prediction mode.

[0262] As another example, if the decoding process is in intra merge mode and the adjacent blocks of the current block are predicted based on a prediction technique that generates at least one intra prediction mode, the video decoding device may decode a block index indicating the adjacent block from the bitstream. Furthermore, the video decoding device may include a first intra prediction mode and a second intra prediction mode based on the prediction technique of the adjacent block in the candidate list of the intra merge mode.

[0263] As another example, assume that the list includes at least one intra prediction mode, as well as an existing intra prediction mode related to intra prediction of the current block, and that the second intra prediction mode indicates the existing intra prediction mode. When DIMD is used as the intra prediction technique, the video decoding device can generate a prediction block of the current block based on the existing intra prediction mode and select an inverse transform kernel of the current block based on the first intra prediction mode.

[0264] Although the flowchart / timing diagram of this specification describes each process as being executed sequentially, this is merely an illustrative description of the technical idea of ​​one embodiment of the present disclosure. In other words, a person of ordinary skill in the art to which one embodiment of the present disclosure belongs may modify and apply various modifications and variations by changing the order described in the flowchart / timing diagram without departing from the essential characteristics of one embodiment of the present disclosure, or by executing one or more of the processes in parallel. Therefore, the flowchart / timing diagram is not limited to a chronological order.

[0265] It should be understood that the exemplary embodiments described above can be implemented in many different ways. The functions or methods described in one or more examples can be implemented in hardware, software, firmware, or any combination thereof. It should be understood that the functional components described herein are labeled as "units" to further emphasize their implementation independence.

[0266] Meanwhile, the various functions or methods described in this embodiment may also be implemented as instructions stored on a non-transitory storage medium that can be read and executed by one or more processors. Non-transitory storage media include, for example, all types of storage devices that store data in a form readable by a computer system. For example, non-transitory storage media include storage media such as erasable programmable read-only memory (EPROM), flash drives, optical drives, magnetic hard drives, and solid-state drives (SSDs).

[0267] The above description is merely an example of the technical idea of ​​the present embodiment, and those skilled in the art will appreciate that various modifications and variations can be made without departing from the essential characteristics of the present embodiment. Therefore, the present embodiments are not intended to limit the technical idea of ​​the present embodiment, but rather to explain it, and the scope of the technical idea of ​​the present embodiment is not limited by these embodiments. The scope of protection of the present embodiment should be interpreted by the claims below, and all technical ideas within a scope equivalent thereto should be interpreted as being included in the scope of rights of the present embodiment.

[0268]

[0269]

[0270] CROSS-REFERENCE TO RELATED APPLICATION

[0271] This patent application claims priority to Korean patent application No. 10-2024-0066064, filed on May 21, 2024, the entire contents of which are incorporated herein by reference.

Claims

1. In a method for restoring a current block performed by an image decryption device, In relation to the restoration of the current block, a step of obtaining an intra prediction technique; A step of deriving at least one intra prediction mode using adjacent samples of the current block based on the intra prediction technology and generating a list including the at least one intra prediction mode; A step of obtaining a first mode index and a second mode index; A step of deriving a first intra prediction mode and a second intra prediction mode from the list according to the first mode index and the second mode index; and A step of restoring the current block based on the first intra prediction mode and the second intra prediction mode. A method comprising:

2. In paragraph 1, If the above intra prediction technology is a method of deriving at least one intra prediction mode based on a gradient histogram, the step of generating the list includes: A step of setting different adjacent areas related to the current block; A step of calculating a gradient histogram containing different information based on each adjacent area; and A step of generating the above list by deriving a prediction mode associated with each gradient histogram. A method comprising:

3. In paragraph 1, The steps to create the above list are: A method for positioning a prediction mode having the largest gradient histogram value at the top of the list, in relation to a gradient histogram generated by applying the intra prediction technique, when the intra prediction technique is a method for deriving at least one intra prediction mode based on a gradient histogram.

4. In paragraph 1, The steps to create the above list are: A method for deriving at least one intra prediction mode by applying different cost functions, when the intra prediction technology is a method for deriving at least one intra prediction mode based on template matching.

5. In paragraph 1, The steps to restore the current block above are: A step of generating a prediction block of the current block according to the second intra prediction mode; and A step of performing a decoding process of the current block based on the first intra prediction mode. A method comprising:

6. In paragraph 5, The step of performing the decryption process of the current block above is: A method for generating the MPM using the first intra prediction mode as the directionality of the current block when the MPM (Most Probable Mode) is used in the decoding process.

7. In paragraph 5, The step of performing the decryption process of the current block above is: A method for selecting an inverse transform kernel of the current block based on the first intra prediction mode, when a method of deriving at least one intra prediction mode based on a gradient histogram is used as the intra prediction technique.

8. In paragraph 1, The above list is, A method comprising, in addition to the at least one intra prediction mode, an existing intra prediction mode related to intra prediction of the current block.

9. In paragraph 1, The steps to restore the current block above are: When a method of deriving at least one intra prediction mode based on a gradient histogram is used as the intra prediction technique, A step of generating a prediction block of the current block according to an existing intra prediction mode related to the intra prediction of the current block; and A step of selecting an inverse transform kernel of the current block based on the first intra prediction mode. A method comprising:

10. In a method for encoding a current block performed by a video encoding device, In relation to encoding of the current block, a step of obtaining an intra prediction technique; A step of deriving at least one intra prediction mode using adjacent samples of the current block based on the intra prediction technology and generating a list including the at least one intra prediction mode; A step of deriving a first mode index indicating a first intra prediction mode and a second mode index indicating a second intra prediction mode from the above list; and A step of encoding the current block based on the first intra prediction mode or the second intra prediction mode. A method comprising:

11. In paragraph 10, The steps to create the above list are: A method for positioning a prediction mode having the largest gradient histogram value at the top of the list, in relation to a gradient histogram generated by applying the intra prediction technique, when the intra prediction technique is a method for deriving at least one intra prediction mode based on a gradient histogram.

12. In paragraph 10, The step of deriving the first mode index and the second mode index is: A method wherein, when the intra prediction technique is a method of deriving at least one intra prediction mode based on a gradient histogram, the first mode index is determined from the list to indicate a prediction mode corresponding to the highest gradient histogram, and the second mode index is determined from the list to indicate a prediction mode corresponding to a gradient histogram of the next rank.

13. In paragraph 10, The step of encoding the current block above. A step of generating a prediction block of the current block according to the second intra prediction mode; and A step of performing an encoding process of the current block based on the first intra prediction mode. A method comprising:

14. In paragraph 13, The step of performing the encoding process of the current block above is: A method for selecting a transformation kernel of the current block based on the first intra prediction mode, when a method of deriving at least one intra prediction mode based on a gradient histogram is used as the intra prediction technique.

15. In paragraph 10, The above list is, A method comprising, in addition to the at least one intra prediction mode, an existing intra prediction mode related to intra prediction of the current block.

16. In paragraph 10, The steps to restore the current block above are: When a method of deriving at least one intra prediction mode based on a gradient histogram is used as the intra prediction technique, A step of generating a prediction block of the current block according to an existing intra prediction mode related to the intra prediction of the current block; and A step of selecting a transformation kernel of the current block based on the first intra prediction mode. A method comprising:

17. A method for providing video data to a video decoding device, A step of encoding the above video data into a bitstream; and A step of transmitting the above bitstream to the image decoding device Including, The step of encoding the above video data is: In relation to encoding of the current block, a step of obtaining intra prediction technology; A step of deriving at least one intra prediction mode using adjacent samples of the current block based on the intra prediction technology and generating a list including the at least one intra prediction mode; A step of deriving a first mode index indicating a first intra prediction mode and a second mode index indicating a second intra prediction mode from the above list; and A step of encoding the current block based on the first intra prediction mode or the second intra prediction mode. A method comprising:

Citation Information

Patent Citations

  • Ambient controlled transfer module and process system

    KR1020230010791A

  • Method And Apparatus for De-Identifying License Plate Included in Image

    KR1020250145176A

  • Server providing franchise store operation support platform and controlling method thereof

    KR1020250166385A

  • Adaptive Implicit Transform Setting

    US20190320204A1

  • KR20240026180A