Intra prediction method and method for providing video data to a video decryption device
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- HYUNDAI MOTOR CO LTD
- Filing Date
- 2022-06-03
- Publication Date
- 2026-08-07
Smart Images

Figure 0007901807000046 
Figure 0007901807000047 
Figure 0007901807000048
Abstract
Description
Technical Field
[0001] The present invention relates to a video encoding method and apparatus using improved Cross-Component Linear Model (CCLM) prediction.
Background Art
[0002] The content described below merely provides background information related to the present invention and does not constitute the prior art.
[0003] Video data has a larger amount of data compared to audio data, still image data, etc., and thus requires a lot of hardware resources including memory to store or transmit itself without compression processing.
[0004] Therefore, usually, when storing or transmitting video data, a video encoder is used to compress the video data for storage or transmission, and a decoder receives the compressed video data and decompresses it for playback. Such video compression technologies include H.264 / AVC, HEVC (High Efficiency Video Coding), etc., and there is also VVC (Versatile Video Coding) which has improved encoding efficiency by about 30% or more compared to HEVC.
[0005] However, the size, resolution, and frame rate of video are gradually increasing, and accordingly, the amount of data to be encoded is also increasing. Therefore, a new compression technology with better encoding efficiency and higher image quality improvement effect than conventional compression technologies is required.
[0006] Generally, an image to be encoded is partitioned into coding units (CUs) of various shapes and sizes, and then encoded on a CU-by-CU basis. The tree structure represents information that defines such CU-by-CU partitioning and is transmitted from the encoder to the decoder to instruct the image partitioning configuration. When partitioning into CUs, the luminous image and chroma image are partitioned independently. Alternatively, the luminous signal and chroma signal are partitioned into CUs with the same structure. In this case, the technique in which the luminous signal and chroma signal have different partitioning structures is called the CST (Chroma Separate Tree) technique or dual tree technique. When the CST technique is used, the chroma block has a different partitioning method than the luminous block. Also, the technique in which the luminous signal and chroma signal have the same partitioning structure is called the single tree technique. When the single tree technique is used, the chroma block has the same partitioning method as the luminous block.
[0007] On the other hand, a linear relationship exists between pixels of the chroma signal and their corresponding pixels of the luma signal. Therefore, CCLM (Cross-Component Linear Model) prediction is a conventional technique that can generate intra-predictors of the chroma signal from pixels of the luma signal based on such a linear relationship. Currently, for intra-prediction of a chroma block, CCLM prediction first determines the luma region corresponding to the current chroma block within the luma image. Then, CCLM prediction derives a linear model between pixels in the surrounding pixel lines of the current chroma block and their corresponding luma pixels. Finally, CCLM prediction uses the derived linear model to generate a predictor of the current chroma block from the pixel values of the corresponding luma region.
[0008] As mentioned above, CCLM prediction uses peripheral pixels of the current chroma block to guide the linear model, but there is a problem in that these peripheral pixels are not used when generating predictors. Therefore, when utilizing CCLM prediction during intra-prediction of the current chroma block to improve image quality and coding efficiency, it is necessary to consider methods for additionally utilizing the peripheral pixels of the current chroma block. [Overview of the project] [Problems that the invention aims to solve]
[0009] The present invention aims to provide a video coding method and apparatus that improves the prediction performance of CCLM (Cross-Component Linear Model) prediction in intra prediction of current chroma blocks by generating a first predictor of the current chroma block according to CCLM prediction, generating a second predictor of the current chroma block based on the surrounding pixels of the current chroma block, and then weight-couples the first and second predictors. [Means for solving the problem]
[0010] According to an embodiment of the present invention, an intra-prediction method for a current chroma block performed by a computing device is provided, characterized by comprising the steps of: acquiring a cross-component prediction mode for cross-component prediction for the current chroma block—wherein the cross-component prediction predicts the current chroma block using the pixels of the corresponding luma region for the current chroma block and the corresponding luma region; generating a first predictor of the current chroma block by performing the cross-component prediction based on the cross-component prediction mode; estimating a representative mode from the prediction modes of adjacent blocks of the current chroma block; generating a second predictor of the current chroma block by performing an intra-prediction using the surrounding pixels of the current chroma block based on the representative mode; inducing weight values for the first and second predictors; and generating an intra-predictor of the current chroma block by weighting the first and second predictors using the weight values.
[0011] According to another embodiment of the present invention, an intra-prediction method for a current chroma block performed by a computing device is provided, comprising the steps of: acquiring an intra-prediction mode using peripheral pixels of the current chroma block; generating a first predictor of the current chroma block by performing intra-prediction based on the intra-prediction mode; setting a representative mode for the current chroma block in a cross-component mode pre-configured for cross-component prediction—wherein the cross-component prediction predicts the current chroma block using pixels of the corresponding luma region for the current chroma block and the corresponding luma region—generating a second predictor of the current chroma block by performing the cross-component prediction based on the representative mode; inducing weight values for the first predictor and the second predictor; and generating an intra-predictor of the current chroma block by weighting the first predictor and the second predictor using the weight values.
[0012] According to another embodiment of the present invention, an intra-prediction device is provided, comprising: an input device that acquires a cross-component prediction mode for cross-component prediction for a current chroma block—wherein the cross-component prediction predicts the current chroma block using the pixels of the corresponding luma region for the current chroma block and the corresponding luma region; a first predictor generator that generates a first predictor for the current chroma block by performing the cross-component prediction based on the cross-component prediction mode; a second predictor generator that generates a second predictor for the current chroma block by performing an intra-prediction using the surrounding pixels of the current chroma block based on the representative mode after inferring a representative mode from the prediction modes of adjacent blocks of the current chroma block; and a weighted summer that generates an intra-predictor for the current chroma block by weighting the first and second predictors using the weighted values after inducing weighted values for the first and second predictors. [Effects of the Invention]
[0013] As described above, this embodiment provides a video coding method and apparatus that, in intra-prediction of the current chroma block, generates a first predictor of the current chroma block according to CCLM prediction, generates a second predictor of the current chroma block based on the surrounding pixels of the current chroma block, and then weight-couples the first and second predictors, thereby improving the prediction performance of CCLM prediction. [Brief explanation of the drawing]
[0014] [Figure 1] This is an exemplary block diagram relating to a video encoding device that can embody the technology of the present invention. [Figure 2] This diagram illustrates how to divide a block using the QTBTTT structure. [Figure 3a]A diagram showing a plurality of intra prediction modes including a wide-angle intra prediction mode. [Figure 3b] A diagram showing a plurality of intra prediction modes including a wide-angle intra prediction mode. [Figure 4] An exemplary diagram regarding the neighboring blocks of the current block. [Figure 5] An exemplary block diagram of a video decoding apparatus capable of embodying the technology of the present invention. [Figure 6] An exemplary diagram showing the neighboring pixels referred to for CCLM prediction. [Figure 7] An exemplary diagram showing information used in intra prediction of the chroma channel. [Figure 8] An exemplary diagram showing an intra prediction unit that performs intra prediction of a chroma block according to an embodiment of the present invention. [Figure 9] An exemplary diagram showing the neighboring pixels at a specific position among the neighboring pixels of the current chroma block according to an embodiment of the present invention. [Figure 10] An exemplary diagram showing the distribution and prediction mode of the neighboring blocks of the current chroma block according to an embodiment of the present invention. [Figure 11] An exemplary diagram showing the distribution and prediction mode of the neighboring blocks of the current chroma block according to an embodiment of the present invention. [Figure 12] An exemplary diagram showing the distribution and prediction mode of the neighboring blocks of the current chroma block according to an embodiment of the present invention. [Figure 13] An exemplary diagram showing the distribution and prediction mode of the neighboring blocks of the current chroma block according to an embodiment of the present invention. [Figure 14] An exemplary diagram showing the neighboring pixels of the current chroma block. [Figure 15] An exemplary diagram showing the neighboring pixel lines immediately adjacent to the current chroma block according to an embodiment of the present invention. [Figure 16] An exemplary diagram showing the neighboring pixel lines immediately adjacent to the current chroma block according to an embodiment of the present invention. [Figure 17]An exemplary diagram showing the distribution of surrounding blocks and prediction modes of a current chroma block according to another embodiment of the present invention. [Figure 18] An exemplary diagram showing the distribution of surrounding blocks and prediction modes of a current chroma block according to another embodiment of the present invention. [Figure 19] A flowchart showing an intra prediction method for a current chroma block according to an embodiment of the present invention. [Figure 20] An exemplary diagram showing pixels at specific positions among pixels in a corresponding luma region according to an embodiment of the present invention. [Figure 21] An exemplary diagram showing the distribution of blocks and prediction modes included in a corresponding luma region according to an embodiment of the present invention. [Figure 22] An exemplary diagram showing the distribution of blocks and prediction modes included in a corresponding luma region according to an embodiment of the present invention. [Figure 23] An exemplary diagram showing the distribution of blocks and prediction modes included in a corresponding luma region according to an embodiment of the present invention. [Figure 24] An exemplary diagram showing the distribution of blocks and prediction modes included in a corresponding luma region according to an embodiment of the present invention. [Figure 25] An exemplary diagram showing the distribution of surrounding blocks and prediction modes of a current chroma block according to another embodiment of the present invention. [Figure 26] An exemplary diagram showing the distribution of surrounding blocks and prediction modes of a current chroma block according to another embodiment of the present invention. [Figure 27] An exemplary diagram showing the distribution of surrounding blocks and prediction modes of a current chroma block according to another embodiment of the present invention. [Figure 28] An exemplary diagram showing the distribution of blocks and prediction modes included in a corresponding luma region according to another embodiment of the present invention. [Figure 29] An exemplary diagram showing the distribution of blocks and prediction modes included in a corresponding luma region according to another embodiment of the present invention. [Figure 30] An exemplary diagram showing a grouping method for intra-prediction pixels of a current chroma block according to an embodiment of the present invention. [Figure 31] This is an illustrative diagram showing the weighted values of a first predictor and a second predictor according to one embodiment of the present invention. [Figure 32] This is an illustrative diagram showing a grouping method for predictor pixels within a chroma block, according to another embodiment of the present invention. [Figure 33] This is an illustrative diagram showing a grouping method for predictor pixels in a chroma block according to another embodiment of the present invention. [Modes for carrying out the invention]
[0015] Hereinafter, embodiments of the present invention will be described in detail with reference to illustrative drawings. Note that when assigning reference numerals to components in each drawing, the same component will, to the greatest extent possible, have the same reference numeral even if shown in other drawings. Furthermore, in describing these embodiments, if a specific description of a related known configuration or function is deemed to obscure the gist of these embodiments, such detailed description will be omitted.
[0016] Figure 1 is an illustrative block diagram of a video encoding device that can embody the technology of the present invention. The video encoding device and its sub-configurations will be described below with reference to the illustration in Figure 1.
[0017] The video encoding device is configured to include a picture splitting unit 110, a prediction unit 120, a subtractor 130, a conversion unit 140, a quantization unit 145, a sorting unit 150, an entropy encoding unit 155, an inverse quantization unit 160, an inverse conversion unit 165, an adder 170, a loop filter unit 180, and a memory 190.
[0018] Each component of the video encoding device may be embodied in hardware or software, or in a combination of hardware and software. Furthermore, the function of each component may be embodied in software, and a microprocessor may be configured to execute the software function corresponding to each component.
[0019] A single video consists 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 are defined as a tile group. Each tile and / 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 applicable to each CU is encoded as the CU syntax, and information applicable to all CUs contained within a single CTU is encoded as the CTU syntax. Furthermore, information applicable to all blocks within a slice is encoded as the slice header syntax, and information applicable to all blocks constituting one or more pictures is encoded in the Picture Parameter Set (PPS) or picture header. In addition, information commonly referenced by multiple pictures is encoded in the Sequence Parameter Set (SPS). Information that one or more SPSs refer to in common is encoded in a Video Parameter Set (VPS). Furthermore, information that applies in common to a single tile or tile group may be encoded as the syntax of the tile or tile group header. The syntax contained in the SPS, PPS, slice header, tile, or tile group header is referred to as high-level syntax.
[0020] The picture segmentation unit 110 determines the size of the Coding Tree Unit (CTU). Information regarding the size of the CTU (CTU size) is encoded as SPS or PPS syntax and transmitted to the video decoding device.
[0021] The picture division unit 110 divides each picture constituting the video into multiple Coding Tree Units (CTUs) of predetermined sizes, and then recursively divides the CTUs using a tree structure. In the tree structure, the leaf nodes become coding units (CUs), which are the basic units of encoding.
[0022] In tree structures, there are quad trees (QT) where the top node (or parent node) is divided into four lower nodes (or child nodes) of the same size, binary trees (BT) where the top node is divided into two lower nodes, or ternary trees (TT) where the top node is divided into three lower nodes in a 1:2:1 ratio, or structures that combine two or more of these QT, BT, and TT structures. For example, a QTBT (Quad Tree plus Binary Tree) structure may be used, or a QTBTTT (Quad Tree plus Binary Tree Ternary Tree) structure may be used. Here, BTTT are collectively called MTT (Multiple-Type Tree).
[0023] Figure 2 is a diagram illustrating how to divide a block using the QTBTTT structure.
[0024] As illustrated in Figure 2, the CTU is initially split into a QT structure. Quad-tree splitting is repeated until the size of the splitting block reaches the minimum block size of a leaf node allowed in the QT, MinQTSize. A first flag, QT_split_flag, which indicates whether each node in the QT structure is split into four lower-layer nodes, is encoded by the entropy encoding unit 155 and signaled to the video decoder. If the leaf nodes of the QT are not larger than the maximum block size of a root node allowed in the BT, they are further split into one or more BT or TT structures. In the BT and / or TT structures, there are multiple splitting directions. For example, there are two directions in which the block of the node in question is split: horizontally and vertically. As shown in Figure 2, when MTT splitting is initiated, a second flag, mtt_split_flag, indicating whether or not a node has been split, and, if split, additional flags indicating the splitting direction (vertical or horizontal) and / or the splitting type (binary or terrary), are encoded by the entropy encoding unit 155 and signaled to the video decoding device.
[0025] Alternatively, before encoding the first flag QT_split_flag, which indicates whether each node will be split into four lower layer nodes, the CU split flag split_cu_flag, which indicates whether the node will be split, may be encoded. If the value of the CU split flag split_cu_flag indicates that the node will not be split, the block of the node becomes a leaf node in the split tree structure and becomes a coding unit (CU), which is the basic unit of encoding. If the value of the CU split flag split_cu_flag indicates that the node will be split, the video encoding device starts encoding from the first flag in the manner described above.
[0026] When QTBT is used as another example of a tree structure, there are two types: one in which the block of the node is divided horizontally into two blocks of the same size (i.e., symmetric horizontal splitting) and another in which it is divided vertically (i.e., symmetric vertical splitting). A splitting flag, split_flag, indicating whether each node in the BT structure is to be split into a lower layer block, and splitting type information indicating the type of splitting, are encoded by the entropy encoding unit 155 and transmitted to the video decoding device. On the other hand, there may be an additional type in which the block of the node is divided into two blocks in an asymmetrical manner. The asymmetrical form may include a form in which the block of the node is divided into two rectangular blocks having a size ratio of 1:3, or a form in which the block of the node is divided diagonally.
[0027] CUs can have various sizes depending on the QTBT or QTBTTT partitioning from the CTU. Hereafter, the block corresponding to the CU to be encoded or decoded (i.e., a leaf node in the QTBTTT) will be referred to as the "current block." Depending on the QTBTTT partitioning used, the shape of the current block may be a rectangle as well as a square.
[0028] The prediction unit 120 predicts the current block and generates a predicted block. The prediction unit 120 includes an intra-prediction unit 122 and an inter-prediction unit 124.
[0029] Generally, each current block in a picture is coded predictively. Generally, the prediction of the current block is performed using intra-prediction techniques (using data from the picture containing the current block) or inter-prediction techniques (using data from pictures coded before the picture containing the current block). Inter-prediction includes both one-way and two-way prediction.
[0030] The intra-prediction unit 122 predicts pixels within the current block using pixels (reference pixels) located around the current block within the current picture that contains the current block. Multiple intra-prediction modes exist depending on the prediction direction. For example, as shown in Figure 3a, the multiple intra-prediction modes include two non-directional modes, including the planar mode and the DC mode, and 65 directional modes. Each prediction mode is defined to use different surrounding pixels and calculation formulas.
[0031] For efficient directional prediction of rectangular current blocks, additional directional modes (67-80, -1-14 intra-prediction modes) are used, as shown by dashed arrows in Figure 3b. These are referred to as "wide-angle intra-prediction modes." In Figure 3b, the arrows point to the corresponding reference samples used for prediction, not to the prediction direction. The prediction direction is opposite to the direction indicated by the arrow. 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. In this case, from among the wide-angle intra-prediction modes, some of the available wide-angle intra-prediction modes for the current block are determined by the ratio of the width to height of the rectangular current block. For example, wide-angle intra-prediction modes with angles smaller than 45 degrees (intra-prediction modes 67-80) are available when the current block is in the shape of a rectangle where the height is smaller than the width, and wide-angle intra-prediction modes with angles greater than -135 degrees (intra-prediction modes -1-14) are available when the current block is in the shape of a rectangle where the width is larger than the height.
[0032] The intra-prediction unit 122 determines the intra-prediction mode to use to encode the current block. In some examples, the intra-prediction unit 122 may encode the current block using various intra-prediction modes and select the appropriate intra-prediction mode to use from the tested modes. For example, the intra-prediction unit 122 may calculate bitrate distortion values using bitrate distortion analysis for various tested intra-prediction modes and select the intra-prediction mode with the best bitrate distortion characteristics among the tested modes.
[0033] The intra-prediction unit 122 selects one intra-prediction mode from among several intra-prediction modes and predicts the current block using the surrounding pixels (reference pixels) and calculation formula determined by the selected intra-prediction mode. Information regarding the selected intra-prediction mode is encoded by the entropy coding unit 155 and transmitted to the video decoding device.
[0034] The interpretation unit 124 generates a predicted block for the current block using a motion compensation process. The interpretation unit 124 searches for the block most similar to the current block in the reference picture, which has been encoded and decoded before the current picture, and generates a predicted block for the current block using the found block. It then generates a motion vector (MV) corresponding to the displacement between the current block in the current picture and the predicted block in the reference picture. 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 and chroma components. Motion information, including information about the reference picture used to predict the current block and information about the motion vector, is encoded by the entropy encoding unit 155 and transmitted to the video decoding device.
[0035] The interpretation unit 124 may perform interpolation on a reference picture or reference block to improve the accuracy of the prediction. That is, a subsample between two consecutive integer samples is interpolated by applying a filter coefficient to a set of consecutive integer samples containing those two integer samples. When the interpolated reference picture is used to search for the block most similar to the current block, the motion vector is expressed with precision to decimal units rather than integer sample units. The precision or resolution of the motion vector is set differently for each unit of the target area to be encoded, such as a slice, tile, CTU, CU, etc. When such Adaptive Motion Vector Resolution (AMVR) is applied, information about the motion vector resolution applied to each target area must be signaled for each target area. For example, if the target area is a CU, information about the motion vector resolution applied to each CU is signaled. The information about the motion vector resolution is information indicating the precision of the differential motion vector, which will be described later.
[0036] On the other hand, the inter-prediction unit 124 performs inter-prediction using bi-prediction. In the case of bi-prediction, two reference pictures and two motion vectors representing 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, it generates a predicted block for the current block by averaging or weighting the first and second reference blocks. Finally, it transmits motion information, including information about the two reference pictures used to predict the current block and information about the two motion vectors, to the encoding unit 150. Here, reference picture list 0 consists of previously restored pictures that are prior to the current picture in display order, and reference picture list 1 consists of previously restored pictures that are from the current picture onwards in display order. However, it is not necessarily limited to this, and previously restored pictures that are from the current picture onwards in display order may be added to reference picture list 0, and conversely, previously restored pictures that are prior to the current picture may be added to reference picture list 1.
[0037] Various methods are used to minimize the number of bits required to encode motion information.
[0038] For example, if the reference picture and motion vector of the current block are the same as those of a surrounding block, the motion information of the current block can be transmitted to the video decoding device by encoding information that identifies that surrounding block. This method is called "merge mode".
[0039] In merge mode, the interpretation unit 124 selects a predetermined number of merge candidate blocks (hereinafter referred to as "merge candidates") from the surrounding blocks of the current block.
[0040] As surrounding blocks used to guide merge candidates, as shown in Figure 4, all or part of the left block A0, lower left block A1, upper block B0, upper right block B1, and upper left block A2 adjacent to the current block in the current picture are used. Furthermore, blocks located in a reference picture (which may or may not be the same as the reference picture used to predict the current block) rather than the current picture in which the current block is located may be used as merge candidates. For example, a block in the reference picture that is in the same position as the current block (a co-located block) or a block adjacent to that block in the same position may be additionally used as a merge candidate. If the number of merge candidates selected by the method described above is less than a predetermined number, the 0 vector is added to the merge candidates.
[0041] The interpretation unit 124 constructs a merge list containing a predetermined number of merge candidates using such surrounding blocks. From the merge candidates included in the merge list, it selects a merge candidate to be used as the movement information of the current block and generates merge index information to identify the selected candidate. The generated merge index information is encoded by the encoding unit 150 and transmitted to the video decoding device.
[0042] The merge skip mode is a special case of the merge mode in which, after quantization, when all transformation coefficients for entropy coding are close to zero, only peripheral block selection information is transmitted without the transmission of residual signals. By using the merge skip mode, relatively high coding efficiency can be achieved for videos with little motion, still images, and screen content.
[0043] Hereafter, merge mode and merge skip mode will be collectively referred to as merge / skip mode.
[0044] Another method for encoding motion information is AMVP (Advanced Motion Vector Prediction) mode.
[0045] In AMVP mode, the interpretation unit 124 uses the surrounding blocks of the current block to derive predicted motion vector candidates for the motion vector of the current block. The surrounding blocks used to derive predicted motion vector candidates include 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 A2 adjacent to the current block in the current picture shown in Figure 4. Furthermore, blocks located in a reference picture (which may be the same as or different from the reference picture used to predict the current block) rather than the current picture in which the current block is located may be used as surrounding blocks to derive predicted motion vector candidates. For example, a block in the same position as the current block in the reference picture (a collocated block), or a block adjacent to that block in the same position, may be used. If the number of motion vector candidates obtained by the method described above is less than a preset number, a 0 vector is added to the motion vector candidates.
[0046] The interpretation unit 124 uses the motion vectors of the surrounding blocks to derive candidate predicted motion vectors, and uses these candidate predicted motion vectors to determine the predicted motion vector relative to the current block's motion vector. Then, it subtracts the predicted motion vector from the current block's motion vector to calculate the difference motion vector.
[0047] The predicted motion vector is obtained by applying a predefined function (e.g., median, mean calculation) to the predicted motion vector candidate. In this case, the video decoder also knows the predefined function. Furthermore, since the surrounding blocks used to guide the predicted motion vector candidate are already encoded and decoded blocks, the video decoder also already knows the motion vectors of those surrounding blocks. Therefore, the video encoder does not need to encode information to identify the predicted motion vector candidate. Consequently, in this case, information about the differential motion vector and information about the reference picture used to predict the current block are encoded.
[0048] Alternatively, the predicted motion vector may be determined by selecting one of the candidate predicted motion vectors. In this case, information to identify the selected candidate predicted motion vector is additionally encoded, along with information about the differential motion vector and the reference picture used to predict the current block.
[0049] The subtractor 130 generates a residual block by subtracting the predicted block generated by the intra-prediction unit 122 or the inter-prediction unit 124 from the current block.
[0050] The conversion unit 140 converts the residual signals in the residual block, which have pixel values in the spatial domain, into conversion coefficients in the frequency domain. The conversion unit 140 may convert the residual signals in the residual block using the entire size of the residual block as the conversion unit, or it may divide the residual block into a plurality of subblocks and convert using those subblocks as the conversion unit. Alternatively, it may divide the residual block into a conversion domain and two subblocks which are non-converted domains, and convert the residual signals using only the conversion domain subblock as the conversion unit. Here, the conversion domain subblock is one of two rectangular blocks having a size ratio of 1:1 based on the horizontal axis (or vertical axis). In this case, a flag cu_sbt_flag indicating that only the subblock was converted, directional (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 video decoding device. Furthermore, the size of the conversion region subblock has a size ratio of 1:3 based on the horizontal axis (or vertical axis). In such cases, a flag cu_sbt_quad_flag that distinguishes the relevant division is additionally encoded by the entropy encoding unit 155 and signaled to the video decoding device.
[0051] Meanwhile, the transformation unit 140 performs transformations on the residual blocks separately in the horizontal and vertical directions. Various types of transformation functions or transformation matrices are used for the transformations. For example, a pair of transformation functions for horizontal and vertical transformations is defined as an MTS (Multiple Transform Set). The transformation unit 140 selects one transformation function pair from the MTS that has the best transformation efficiency and transforms the residual blocks in the horizontal and vertical directions, respectively. Information about the selected transformation function pair from the MTS, mts_idx, is encoded by the entropy encoding unit 155 and signaled to the video decoding device.
[0052] The quantization unit 145 quantizes the conversion coefficients output from the conversion unit 140 using quantization parameters and outputs the quantized conversion coefficients to the entropy coding unit 155. The quantization unit 145 may immediately quantize the associated residual blocks for any block or frame without conversion. The quantization unit 145 may apply different quantization coefficients (scaling values) to each other depending on the position of the conversion coefficients within the conversion block. The quantization matrix applied to the two-dimensionally arranged quantized conversion coefficients is encoded and signaled to the video decoding device.
[0053] The sorting unit 150 performs sorting of coefficient values for the quantized residual values.
[0054] The sorting unit 150 converts a two-dimensional coefficient array into a one-dimensional coefficient sequence using coefficient scanning. For example, the sorting unit 150 scans from the DC coefficients to the high-frequency region coefficients using a zig-zag scan or diagonal scan to output a one-dimensional coefficient sequence. Depending on the size of the conversion 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 a zig-zag scan. In other words, the scanning method used may be determined from among zig-zag scan, diagonal scan, vertical scan, and horizontal scan depending on the size of the conversion unit and the intra-prediction mode.
[0055] The entropy coding unit 155 generates a bitstream by coding the sequence of one-dimensional quantized transformation coefficients output from the sorting unit 150, using various coding schemes such as CABAC (Context-based Adaptive Binary Arithmetic Code) and Exponential Golomb.
[0056] Furthermore, the entropy coding unit 155 encodes information related to block partitioning, such as the CTU size, CU partitioning flag, QT partitioning flag, MTT partitioning type, and MTT partitioning direction, so that the video decoder can partition blocks in the same way as the video encoder. The entropy coding unit 155 also encodes information about the prediction type, indicating whether the block was currently 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 motion information encoding mode (merge mode or AMVP mode), the merge index in the case of merge mode, and the reference picture index and differential motion vector in the case of AMVP mode) depending on the prediction type. The entropy coding unit 155 also encodes information related to quantization, i.e., information about the quantization parameters and information about the quantization matrix.
[0057] The inverse quantization unit 160 inverse quantizes the quantized conversion coefficients output from the quantization unit 145 to generate conversion coefficients. The inverse conversion unit 165 converts the conversion coefficients output from the inverse quantization unit 160 from the frequency domain to the spatial domain to restore the residual block.
[0058] The addition unit 170 adds the restored residual block and the predicted block generated by the prediction unit 120 to restore the current block. The pixels in the restored current block are used as reference pixels when intra-predicting the next block in order.
[0059] The loop filter section 180 performs filtering on the restored pixels to reduce blocking artifacts, ringing artifacts, blurring artifacts, etc., that occur due to block-based prediction and transformation / quantization. The filter section 180 includes all or part of a deblocking filter 182, a Sample Adaptive Offset (SAO) filter 184, and an Adaptive Loop Filter (ALF) 186 as in-loop filters.
[0060] The deblocking filter 182 filters the boundaries between restored blocks to remove blocking artifacts caused by block-level encoding / decoding, while the SAO filter 184 and alf 186 perform additional filtering on the deblocking filtered image. The SAO filter 184 and alf 186 are used to compensate for the difference 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 CTU units. In contrast, the ALF 186 performs block-level filtering, compensating for distortion by applying different filters to the edges and degree of change of the relevant block. Information regarding the filter coefficients used in the ALF is encoded and signaled to the video decoder.
[0061] The recovered blocks filtered through the deblocking filter 182, the SAO filter 184, and the ALF 186 are stored in memory 190. Once all blocks in a picture have been recovered, the recovered picture is used as a reference picture to interpret the blocks in the picture to be encoded later.
[0062] Figure 5 is an illustrative block diagram of an image decoding device that can embody the technology of the present invention. The image decoding device and its sub-configurations will be described below with reference to Figure 5.
[0063] The video decoding device is configured to include an entropy decoding unit 510, a sorting unit 515, an inverse quantization unit 520, an inverse transform unit 530, a prediction unit 540, an adder 550, a loop filter unit 560, and a memory 570.
[0064] Similar to the video encoding device in Figure 1, each component of the video decoding device may be implemented in hardware or software, or in a combination of hardware and software. Furthermore, the function of each component may be implemented in software, and a microprocessor may be implemented to execute the software function corresponding to each component.
[0065] The entropy decoding unit 510 decodes the bitstream generated by the video encoding device and extracts information related to block division to determine the current block to be decoded, and extracts prediction information necessary to restore the current block, as well as information related to the residual signal.
[0066] The entropy decoding unit 510 extracts information about the CTU size from the SPS (Sequence Parameter Set) or PPS (Picture Parameter Set) to determine the size of the CTU and divides the picture into CTUs of the determined size. Then, it determines the CTU as the top layer of the tree structure, i.e., the root node, and extracts division information about the CTU to divide the CTU using the tree structure.
[0067] For example, when splitting a CTU using a QTBTTT structure, first, the first flag QT_split_flag associated with the QT split is extracted, and each node is split into four lower layer nodes. Then, for nodes corresponding to the QT leaf nodes, the second flag MTT_split_flag associated with the MTT split, along with split direction (vertical / horizontal) and / or split type (binary / ternary) information is extracted, and the corresponding leaf node is split into an MTT structure. This recursively splits each node below the QT leaf nodes into a BT or TT structure.
[0068] Another example is when splitting a CTU using a QTBTTT structure. First, a CU splitting flag, split_cu_flag, which indicates whether the CU can be split, is extracted. If the block is split, the first flag, QT_split_flag, is extracted. During the splitting process, each node undergoes zero or more QT splits followed by zero or more MTT splits. For example, a CTU may undergo an MTT split immediately, or conversely, it may undergo only multiple QT splits.
[0069] As another example, when splitting a CTU using a QTBT structure, the first flag QT_split_flag associated with the splitting of QT is extracted, and each node is split into four lower layer nodes. Then, for nodes corresponding to the leaf nodes of QT, the split flag split_flag indicating whether or not to split further in BT and split direction information are extracted.
[0070] On the other hand, when the entropy decoding unit 510 determines the current block to be decoded using the division of the tree structure, it extracts information about 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 related to the 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 related to inter-prediction information, i.e., information representing the motion vector and the reference picture that the motion vector refers to.
[0071] Furthermore, the entropy decoding unit 510 extracts information related to quantization and information related to the residual signal, specifically information regarding the quantized transformation coefficients of the current block.
[0072] The sorting unit 515 can change the sequence of one-dimensional quantized transformation coefficients, which have been entropically decoded by the entropy decoding unit 510, back into a two-dimensional coefficient array (i.e., blocks) in the reverse order of the coefficient scanning sequence performed by the video encoding device.
[0073] The inverse quantization unit 520 inversely quantizes the quantized transformation coefficients and inversely quantizes the quantized transformation coefficients using quantization parameters. The inverse quantization unit 520 may apply different quantization coefficients (scaling values) to the two-dimensional array of quantized transformation coefficients. The inverse quantization unit 520 performs inverse quantization by applying a matrix of quantization coefficients (scaling values) from the video encoding device to the two-dimensional array of quantized transformation coefficients.
[0074] The inverse transform unit 530 generates a residual block for the current block by inversely transforming the inversely quantized transformation coefficients from the frequency domain to the spatial domain and restoring the residual signal.
[0075] Furthermore, when the inverse transformer 530 inversely transforms only a portion of the transformation block (subblock), it extracts a flag cu_sbt_flag indicating that only the subblock of the transformation block has been transformed, a directional (vertical / horizontal) information cu_sbt_horizontal_ flag and / or position information cu_sbt_pos_flag of the subblock, restores the residual signal by inversely transforming the transformation coefficients of the corresponding subblock from the frequency domain to the spatial domain, and generates the final residual block for the current block by satisfying the value of "0" in the residual signal for the region that has not been inversely transformed.
[0076] Furthermore, when MTS is applied, the inverse transformation unit 530 uses the MTS information mts_idx signaled from the video encoding device to determine the transformation function or transformation matrix to be applied in the horizontal and vertical directions, respectively, and performs an inverse transformation on the transformation coefficients within the transformation block in the horizontal and vertical directions using the determined transformation function.
[0077] The prediction unit 540 includes 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.
[0078] The intra-prediction unit 542 determines the intra-prediction mode for the current block from among multiple intra-prediction modes based on the syntax elements for the intra-prediction modes extracted from the entropy decoding unit 510, and predicts the current block using the reference pixels surrounding the current block according to the intra-prediction mode.
[0079] The interprediction unit 544 uses the syntax elements for the interprediction mode extracted from the entropy decoding unit 510 to determine the motion vector of the current block and the reference picture that the motion vector refers to, and then predicts the current block using the motion vector and the reference picture.
[0080] The adder 550 adds the residual block output from the inverse transform unit to the predicted block output from the inter-prediction unit or intra-prediction unit to restore the current block. The pixels in the restored current block are used as reference pixels when intra-predicting blocks to be decoded later.
[0081] The loop filter section 560 includes 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 that occur due to block-level decoding. The SAO filter 564 and ALF 566 perform additional filtering on the restored blocks after deblocking to compensate for the difference between the restored pixels and the original pixels that occurs due to lossy coding. The filter coefficients of the ALF are determined using information about the filter coefficients decoded from the bitstream.
[0082] The recovered blocks filtered through the deblocking filter 562, the SAO filter 564, and the ALF 566 are stored in memory 570. Once all blocks in a picture have been recovered, the recovered picture is used as a reference picture to interpret the blocks in the picture to be encoded later.
[0083] This embodiment relates to the encoding and decoding of video as described above. More specifically, the present invention provides a video encoding method and apparatus that, in intra-prediction of the current chroma block, generates a first predictor of the current chroma block according to CCLM prediction, additionally generates a second predictor of the current chroma block based on the surrounding pixels of the current chroma block, and then weight-couples the first and second predictors.
[0084] The following embodiment applies to both the intra-prediction unit 122 within the video encoding device and the intra-prediction unit 542 within the video decoding device.
[0085] In the following explanation, the term "target block" to be encoded / decoded may be used interchangeably with the current block or coding unit (CU) as described above, or it may refer to a portion of a coding unit.
[0086] Hereinafter, the target block includes luma blocks containing luma components and chroma blocks containing chromatic components. The chroma block of the target block will be referred to as the target chroma block or the current chroma block. The luma block of the target block will be referred to as the target luma block or the current luma block.
[0087] Furthermore, the aspect ratio of a block is defined as the value obtained by dividing the width of the block by its height.
[0088] I. CCLM (Cross-component Linear Model) Prediction In VVC technology, Lumablock's intra-predictive modes include subdivided directional modes (i.e., 2 to 66) in addition to non-directional modes (i.e., planar and DC), as illustrated in Figure 3a. Furthermore, as added to the illustration in Figure 3b, Lumablock's intra-predictive modes include directional modes (-14 to -1 and 67 to 80) with wide-angle intra-prediction.
[0089] On the other hand, depending on the prediction direction used by the Lumablock, the Chromablock can also restrictively utilize intra-prediction of such subdivided directional modes. However, the intra-prediction of the Chromablock does not always utilize the diverse directional modes available to the Lumablock, other than horizontal and vertical. In order to utilize these diverse directional modes, the prediction mode of the Chromablock must currently be set to DM mode. By setting it to DM mode in this way, the Chromablock can now utilize directional modes other than the horizontal and vertical of the Lumablock.
[0090] When encoding chroma blocks, the intra-prediction modes that are frequently used or are the most fundamental for maintaining image quality include planar, DC, vertical, horizontal, and DM modes. In DM mode, the intra-prediction mode of the chroma block that currently spatially corresponds to the chroma block is used as the intra-prediction mode for the chroma block.
[0091] The video encoding device signals to the video decoding device whether the intra-prediction mode of the chroma block is DM mode or not. There are various ways to transmit the DM mode to the video decoding device. For example, the video encoding device can indicate whether it is DM mode or not by setting intra_chRoma_pred_mode, which is information for indicating the intra-prediction mode of the chroma block, to a specific value and then transmitting it to the video decoding device.
[0092] If a chroma block is encoded in intra-prediction mode, the intra-prediction unit 542 of the video decoder can set the intra-prediction mode IntraPredModeC of the chroma block according to Table 1.
[0093] In the following, to distinguish between intra_chRoma_pred_mode and IntraPredModeC, which are information related to the intra-prediction mode of the chroma block, they will be expressed as the Chroma Intra Prediction Mode Indicator and Chroma Intra Prediction Mode, respectively.
[0094] [Table 1]
[0095] Here, lumaIntraPredMode is the intra-prediction mode of the luma block currently corresponding to the chroma block (hereinafter referred to as the "luma intra-prediction mode"). lumaIntraPredMode represents one of the prediction modes exemplified in Figure 3a. For example, in Table 1, lumaIntraPredMode=0 refers to the planar prediction mode, and lumaIntraPredMode=1 refers to the DC prediction mode. When lumaIntraPredMode is 18, 50, and 66, it indicates the directional modes called horizontal, vertical, and VDIA, respectively. On the other hand, when intra_chRoma_pred_mode=0, 1, 2, and 3, it indicates the planar, vertical, horizontal, and DC prediction modes, respectively. When intra_chRoma_pred_mode=4 is the DM mode, the IntraPredModeC value, which is the chroma intra-prediction mode, is set to be equal to the lumaIntraPredMode value.
[0096] The following embodiment primarily describes the analysis of encoded information by the video decoding device. However, the video encoding device will be mentioned when necessary for the sake of explanation. Nevertheless, most of the embodiments described below are applicable to the video encoding device in the same or similar manner. On the other hand, the video encoding device determines the encoded information from the perspective of bitrate distortion optimization. Subsequently, the video encoding device encodes this information to generate a bitstream and then signals it to the video decoding device. Furthermore, the video encoding device can acquire encoded information from a higher stage and proceed with the subsequent encoding process.
[0097] In video encoding / decoding devices, the method of generating a predicted block for the current block from a color component different from the color component of the target block currently being encoded and decoded is defined as cross-component prediction. In VVC technology, cross-component prediction is performed using a linear relationship between chroma pixels and corresponding lumen pixels to intra-predict the current chroma block; this is called CCLM (Cross-component Linear Model) prediction. The following describes CCLM prediction.
[0098] First, the process of analyzing the intra-prediction mode of the chroma block, performed by the video decoding device, is shown in Table 2.
[0099] [Table 2]
[0100] The video decoder analyzes cclm_mode_flag, which indicates whether or not to use CCLM prediction mode. If cclm_mode_flag is 1 and CCLM mode is to be used, the video decoder analyzes cclm_mode_idx to determine the CCLM mode index. At this time, the value of cclm_mode_idx indicates one of the three CCLM modes. On the other hand, if cclm_mode_flag is 0 and CCLM mode is not to be used, the video decoder analyzes intra_chRoma_pred_mode, which indicates intra prediction mode, as described above.
[0101] Figure 6 is an illustrative diagram showing the surrounding pixels referenced for CCLM prediction.
[0102] Currently, when CCLM mode is applied for intra-prediction of a chroma block, the video decoder determines the region in the luma image corresponding to the current chroma block (hereinafter referred to as the "corresponding luma region"). For linear model prediction, the left reference pixels and upper reference pixels of the corresponding luma region, and the left reference pixels and upper reference pixels of the target chroma block are used. Hereafter, the left reference pixels and upper reference pixels will be combined and referred to as reference pixels, peripheral pixels, or adjacent pixels. Furthermore, the reference pixels of the chroma component will be represented as chroma reference pixels, and the reference pixels of the luma component will be represented as luma reference pixels. On the other hand, in the example in Figure 6, the size of the chroma block, i.e., the number of pixels, is represented as N × N (where N is a natural number).
[0103] In CCLM prediction, a linear model is derived between the reference pixels of the luma region and the reference pixels of the chroma block. Then, by applying this linear model to the restored pixels of the corresponding luma region, a predicted block, which is the predictor of the target chroma block, is generated. For example, as illustrated in Figure 6, four pairs of pixels, formed by combining pixels currently in the peripheral pixel lines of the chroma block with their corresponding pixels in the luma region, are used to derive the linear model. The video decoder may derive α and β representing the linear model for the four pairs of pixels, as shown in Equation 1.
[0104]
number
[0105] Here, for each of the four pairs of pixels, Xa and Xb represent the average of the two minimum values and the average of the two maximum values for the corresponding lumen pixels. Similarly, for each of the chroma pixels, Ya and Yb represent the average of the two minimum values and the average of the two maximum values. Subsequently, the video decoder generates the current chroma block predictor predC(i,j) from the pixel values rec'L(i,j) of the corresponding lumen region using a linear model, as shown in Equation 2.
[0106]
number
[0107] Before applying the linear model, the video decoder verifies whether the size of the corresponding chroma region is the same as the size of the current chroma block. If the sizes differ due to the chroma channel subsampling method, the video decoder can adjust the size of the corresponding chroma region to be the same as the size of the current chroma block by applying downsampling to the corresponding chroma region.
[0108] On the other hand, as mentioned above, the CCLM mode is divided into three modes, CCLM_LT, CCLM_L, and CCLM_T, depending on the position of the peripheral pixels used in the induction process of the linear model. The CCLM_LT mode uses two pixels in each direction from the peripheral pixels adjacent to the left and upper rows of the current chroma block, as illustrated in Figure 6. CCLM_L uses four pixels from the peripheral pixels adjacent to the left side of the current chroma block. Finally, CCLM_T uses four pixels from the peripheral pixels adjacent to the upper row of the current chroma block.
[0109] II. Current Chromablock Intraprediction in this Embodiment Figure 7 is an illustrative diagram showing the information available for intra-prediction of chroma channels.
[0110] The video decoding device uses either a method to generate predictors using information from the corresponding luma region ((1)) or a method to generate predictors using information from the same channel ((2)) for intra-prediction of the chroma channel. In VVC technology, various techniques exist for each method, and these techniques are classified into prediction modes. Furthermore, the predictor generation method is specified by indicating the prediction mode. Hereafter, setting the predictor generation method will be described as setting the prediction mode. Hereafter, generating predictors using information from the corresponding luma region ((1)) will be referred to as "cross-component prediction," and the method will be referred to as "cross-component prediction mode" or "cross-component prediction method." Similarly, generating predictors using information from the same channel ((2)) will be referred to as "same-channel prediction," and the method will be referred to as "same-channel prediction mode" or "same-channel prediction method."
[0111] For example, among the intra-prediction methods for chroma channels using VVC technology, the CCLM mode described above is a cross-component prediction method that uses information from the corresponding chroma region ((1)). Other cross-component prediction methods include methods that induce multiple linear models between the corresponding chroma region and the current chroma block and use them for prediction, methods that induce a linear model using a gradient value (i.e., change value) based on the pixel value instead of the chroma pixel value at the corresponding position and use it for prediction, and methods that use many-to-one matching to predict a single pixel value of the current chroma block, utilizing the chroma pixel corresponding to the same position and its surrounding pixel values.
[0112] On the other hand, among the intra-prediction methods for chroma channels, methods that use information from the same channel ((2)) include planar, DC, horizontal mode, and vertical mode. In addition, there are other techniques for predicting the same channel, such as ISP (Intra Sub Partition), MIP (Matrix-weighted Intra Prediction), and MRL (Multiple Reference Line). Furthermore, methods that predict by inferring the directional or non-directional mode using various reference lines around the current block, and methods that calculate a weighted value based on the distance between the corresponding chroma region pixel and the surrounding pixels of the block, and then predict by weighting the current chroma block pixel and the surrounding chroma pixel using this weighted value, can also be considered methods for predicting the same channel.
[0113] On the other hand, when generating predictors for chroma blocks using information from the luma region corresponding to the chroma block, as in CCLM prediction, there is a problem that information from the surrounding pixels of the current chroma block is not used in the predictor generation process. This is because conventional techniques generate predictors using only one of the following: information from the corresponding luma region ((1)) or information from the same channel ((2)). Furthermore, the chroma channel subsampling method may reduce the importance of information from the corresponding luma region ((1)) compared to information from the same channel ((2)), such as surrounding pixels within the current channel. This can lead to discontinuities between predictors generated in CCLM mode and adjacent surrounding pixels. These problems with existing techniques can be solved by considering the surrounding pixel information of the current channel when predicting in CCLM mode. This involves using information from (2) in addition to information from (1) to perform the prediction. Alternatively, these problems with conventional techniques can be solved by additionally using information from the luma region when performing prediction using surrounding pixel information within the same channel (for example, when performing directional or non-directional intra-prediction). This method uses information from (1) in addition to information from (2) to perform the prediction.
[0114] Figure 8 is an illustrative diagram showing an intra-prediction unit that performs intra-prediction of a chromablock according to one embodiment of the present invention.
[0115] To address the problems arising from using only one of the information from the corresponding chroma region or the same channel as described above, the intra-prediction unit 542 in the video decoding device according to this embodiment generates a predictor for the current chroma block by weighted coupling a first predictor based on CCLM mode and a second predictor additionally generated based on intra-prediction mode. Here, CCLM mode uses the information from the corresponding chroma region ((1)), and intra-prediction mode uses the information from the same channel ((2)). The intra-prediction unit 542 in this embodiment includes all or part of the input device 802, the first predictor generator 804, the second predictor generator 806, and the weighted summer 808. On the other hand, the intra-prediction unit 122 in the video encoding device also includes the same components.
[0116] The input device 802 in this embodiment can acquire a CCLM mode for CCLM prediction of the current chroma block. Alternatively, the input device 802 can acquire a cross-component prediction mode for cross-component prediction of the current chroma block.
[0117] The first predictor generator 804 performs CCLM prediction based on CCLM mode to generate the first predictor of the current chroma block. Alternatively, the first predictor generator 804 performs cross-component prediction based on cross-component prediction mode to generate the first predictor of the current chroma block.
[0118] The second predictor generator 806 generates a second predictor for the current chroma block based on an intra-prediction mode that uses surrounding pixels. That is, the second predictor generator 806 generates a second predictor based on a same-channel prediction mode that uses the same channel information.
[0119] The weighted summer 808 generates the intra predictor for the current chroma block by weighting the first predictor and the second predictor using weighted values.
[0120] At this time, the video decoding device weight-combines the first predictor and the second predictor using weighted values as shown in Equation 3.
[0121]
number
[0122] Here, (i,j) represents the pixel position, and predC(i,j) represents the intra predictor of the current chroma block. predCCLM(i,j) represents the first predictor, predintra(i,j) represents the second predictor, and wCCLM(i,j) represents the weight. As mentioned above, predCCLM(i,j) represents the predictor by CCLM prediction, but more broadly, it represents the predictor by cross-component prediction.
[0123] Hereafter, the second predictor and the "additional predictor" will be used interchangeably. If there are many additional predictors, another predintra is added to equation 3, and the weights are divided and distributed among the additional predictors within 1-wCCLM(i,j).
[0124] On the other hand, in Equation 3, the weighted values are expressed based on wCCLM, but depending on the embodiment, they may be implemented based on wintra as in Equation 4.
[0125]
number
[0126] The second predictor using the same channel prediction mode and the first predictor using the CCLM mode are weighted together as shown in Equation 4. In Equation 4, the predictor using the same channel prediction mode may be referred to as the first predictor, and the predictor using the CCLM mode may be referred to as the second predictor. In this case, as illustrated in Figure 8, the intra-prediction mode for generating the first predictor using the same channel information is analyzed, and the CCLM mode for generating the second predictor using the information of the corresponding luma region is inferred by analogy. Therefore, depending on the implementation example, the first and second predictors can include both the cases shown in Equations 3 and 4.
[0127] Unless otherwise specified, for convenience, the predictor using CCLM mode will be referred to as the first predictor, and the predictor using intra-prediction mode with peripheral pixel information will be referred to as the second predictor. The weighted values expressed based on wCCLM as shown in Equation 3 will be used. Furthermore, as illustrated in Figure 8, the CCLM prediction mode for generating the first predictor is analyzed, and the intra-prediction mode for generating the second predictor is inferred.
[0128] The video decoder can either infer an intra-prediction mode using peripheral pixels or utilize a prediction mode transmitted on the bitstream by the video encoder. Furthermore, the video decoder can either infer a method for weighted coupling the first and second predictors or use a method transmitted on the bitstream by the video encoder. Various combinations are possible for inferring / transmitting the intra-prediction mode and for inferring / transmitting the weight values. For example, the intra-prediction mode may be inferred by the video decoder, and the weighted coupling method may be transmitted via the bitstream. Conversely, the intra-prediction mode may be transmitted via the bitstream, and the weighted coupling method may be inferred by the video decoder. Below, preferred implementation examples for these various combinations are described.
[0129] <Implementation Example 1> Analogy of a method for generating weighted sum predictors This implementation analogizes the method for generating a second predictor (predintra) using surrounding pixels of the same channel, as described in Equation 3. According to this implementation, the video decoder can set a pre-configured prediction mode to the second predictor's prediction mode without the video encoder explicitly signaling the second predictor's prediction mode. Alternatively, the video decoder can infer at least one of the second predictor's prediction modes based on at least one of the following pieces of information: the width / height / area / aspect ratio / prediction mode of the surrounding chroma block and the width / height / area / aspect ratio / prediction mode of the corresponding luma block. Here, the corresponding luma block is defined as a block in which all or part of the block is included in the corresponding luma region.
[0130] On the other hand, if this implementation uses equation 4, as described above, the same channel prediction mode for generating the intra predictor (predintra) is analyzed, and a method for generating a predictor (predCCLM) using information from the corresponding chroma region is inferred. According to this embodiment, the video decoder can set a pre-configured prediction mode to the prediction mode of the predCCLM without the video encoder explicitly signaling the prediction mode of the predCCLM. Alternatively, the video decoder can infer at least one of the prediction modes of the predCCLM based on at least one piece of information from the width / height / area / aspect ratio / prediction mode of the surrounding chroma block.
[0131] <Implementation Example 1-1> Set a predefined prediction mode to the prediction mode of the second predictor. In this implementation example, the video decoder sets a predefined prediction mode to the prediction mode of the second predictor using Equation 3. The available prediction modes are those that generate predictors based on surrounding pixels, such as the 67 intra-prediction modes (predModeIntra) and MIP (Matrix-weighted Intra Prediction) modes exemplified in Figure 3a. For example, when using one second predictor (i.e., when n is 1), the prediction mode of the second predictor is the planar mode. Therefore, by applying Equation 3, the video decoder can generate predictors for the current chroma block as shown in Equation 5.
[0132]
number
[0133] As another example, when two additional predictors are used (i.e., when n is 2), the prediction modes of each additional predictor are planar mode and DC mode. Thus, the video decoder can now generate predictors for the chroma block as shown in Equation 6.
[0134]
number
[0135] Here, the weights of the additional predictors satisfy w1 + w2 = 1. In this implementation example, the pre-configured prediction mode will be referred to as the "representative mode," which will be explained later.
[0136] On the other hand, if this implementation uses Equation 4, the prediction mode of the predictor (predCCLM) that uses information from the corresponding luma region is set in advance. Such a mode is at least one of the cross-component prediction modes described above. In this case, the same-channel prediction mode for generating predictors using the same channel information is analyzed.
[0137] <Implementation Example 1-2> Currently using information from surrounding blocks of the chroma block In this implementation example, according to Equation 3, the video decoder sets the prediction mode (hereinafter referred to as the "representative mode"), which is inferred using information such as the width / height / area / aspect ratio / prediction mode of the current chroma block and surrounding chroma blocks, as the prediction mode of the second predictor. At this time, the number of representative modes derived by the video decoder depends on the number of additional predictors that are weighted together.
[0138] The video decoding device may use one of the following five methods as a method for inducing the representative mode.
[0139] As the first method, the prediction mode for the block containing peripheral pixels at a specific location among the peripheral pixels of the current chroma block is set as the representative mode. In this case, the specific location can be specified in various ways, as illustrated in Figure 9.
[0140] For example, let's assume that the distribution of surrounding blocks and prediction modes of the current chroma block are the same as in the example in Figure 10 (in the following figures, the numbers within each block indicate the prediction mode). When the video decoder derives a representative mode based on the surrounding pixel located in the upper left (position 1 in the example in Figure 9), it uses mode 18 as the representative mode.
[0141] If multiple representative modes are to be inferred, the video decoder can select multiple pixels from the surrounding pixels at the positions exemplified in Figure 9. For example, suppose the current distribution of surrounding blocks and predicted modes of the chroma block are the same as those exemplified in Figure 11. If the representative mode is derived based on the leftmost uppermost peripheral pixel (position 2 in the example in Figure 9) and the top leftmost peripheral pixel (position 3 in the example in Figure 9), the video decoder can use mode 18 and the planar (PL) mode as representative modes.
[0142] As a second method, the most frequent prediction mode derived based on the number of blocks among the prediction modes for chroma blocks and adjacent blocks is set as the representative mode.
[0143] Let's assume that the distribution of surrounding blocks and prediction modes of the chroma block are the same as in the example in Figure 12. There are a total of five adjacent blocks, and three of these blocks use the planar mode, so the video decoder uses the planar mode corresponding to the most frequent prediction mode as the representative mode. If multiple representative modes are to be inferred, the representative modes are derived in order of frequency. For example, if two representative modes are to be derived, the video decoder can infer the planar mode and mode 18 (or the planar mode and DC mode) together as representative modes.
[0144] If the frequencies of the predicted modes are the same, a representative mode is derived by specifying a priority. In this case, a predetermined order is used as the priority, such as {planar, DC, horizontal mode, vertical mode, ...} in ascending or descending order. Alternatively, a higher priority is given to the blocks of modes corresponding to the same frequency that are closer to the upper left.
[0145] For example, if a block of a given mode is assigned a higher priority the closer it is to the upper left, then in the example shown in Figure 12, the block of mode 18 is closer to the upper left than the block of DC mode and therefore has a higher priority. Thus, the video decoder can derive planar mode and mode 18 as representative modes.
[0146] In addition to the examples above, if the frequencies of the prediction modes are the same, a representative mode is inferred according to a predetermined rule.
[0147] In another embodiment, when deriving multiple representative modes, adjacent blocks are grouped, and then the most frequent mode is derived from each group. In this case, adjacent blocks are spatially grouped as {left adjacent blocks}, {upper adjacent blocks}, etc. For example, let's assume that the distribution and predicted modes of the surrounding blocks of the current chroma block are the same as in the example in Figure 13. The video decoder uses two of the three blocks adjacent to the left, which use the planar mode, as the first representative mode, and uses two of the three blocks adjacent to the upper row, which use the DC mode, as the second representative block.
[0148] As a third method, among the prediction modes for the chroma block and adjacent blocks, the most frequent prediction mode derived based on the block area is set as the representative mode.
[0149] The third method is performed similarly to the second method, which uses the most frequent prediction mode derived from the number of blocks among the prediction modes of adjacent blocks of the current chroma block as the representative mode. That is, in the third method, the most frequent mode is derived based on the area of adjacent blocks instead of the number of blocks.
[0150] As a fourth method, the most frequent prediction mode, derived based on the prediction modes of the block containing each surrounding pixel of the current chroma block, is set as the representative mode. In this case, in addition to surrounding pixels immediately adjacent to the current block, surrounding pixels slightly further away from the current block are also utilized, as illustrated in Figure 14. Only one of the various surrounding pixel lines may be selected, or two or more lines may be selected, allowing for diverse combinations and applications. Furthermore, if the necessary surrounding pixels are not present in the process of the current block generating the predictor, surrounding pixels are generated using a method such as padding, but only the originally existing surrounding pixels may be used, excluding the surrounding pixels generated by padding.
[0151] For example, consider the case where only the peripheral pixel lines immediately adjacent to the current block are used, as illustrated in Figure 15. In the example in Figure 15, of the 17 peripheral pixels, including the 16 peripheral pixels adjacent to the left and above the current chroma block, and one peripheral pixel in the upper left, there are 10 pixels that use the planar mode, making it the most numerous. Therefore, the image decoder uses the planar mode as the representative mode. When multiple representative modes are inferred, the next most frequent predicted mode is inferred based on the number of peripheral pixels, and then used as another representative mode. In the example in Figure 15, mode 18 becomes the second representative mode.
[0152] In addition to this method, as illustrated in Figure 16, the video decoder can divide the peripheral pixels adjacent to the left and adjacent to the top of the chroma block into groups, derive the most frequent mode of each group, and use these as representative modes. In this example, it is assumed that the peripheral pixels in the upper left are simultaneously included in two groups. First, of the nine peripheral pixels adjacent to the left of the chroma block, there are six peripheral pixels in planar mode, which is the most numerous, so the video decoder uses planar mode as the first representative mode. Of the nine peripheral pixels adjacent to the top of the chroma block, there are seven peripheral pixels in DC mode, which is the most numerous, so the video decoder uses DC mode as the second representative mode.
[0153] As a fifth method, the prediction mode of the block adjacent to the current chroma block that has the same (or most similar) aspect ratio as the current block is set as the representative mode. For example, assume that the distribution and prediction modes of the surrounding blocks of the current chroma block are the same as in the example in Figure 17. In the example in Figure 17, the prediction modes of blocks with the same aspect ratio as the current chroma block are the planar mode and mode 50. If multiple prediction modes are derived, the video decoder uses the mode with the larger block size as the representative mode to select one representative mode. In the example in Figure 17, the planar mode is set as the representative mode.
[0154] If multiple representative modes are to be inferred, the predicted mode of the adjacent block with the next highest aspect ratio similarity is used as another representative mode. As another example, after deriving the block with the most similar aspect ratio to the current block from the block adjacent to the left of the current chroma block and the block adjacent above it, the predicted modes used by each of those blocks are used as representative modes. For example, consider the case where two representative modes are inferred as illustrated in Figure 18. The video decoder can use mode 50, which is the predicted mode of the block adjacent to the left of the current chroma block that has the same aspect ratio as the current block, and the planar mode, which is the predicted mode of the block adjacent above it that has the same aspect ratio as the current block, as representative modes.
[0155] The following describes the current intra-prediction method for chromablocks, which utilizes a weighted sum of the first and second predictors, using the illustration in Figure 19.
[0156] Figure 19 is a flowchart showing a current chromablock intraprediction method according to one embodiment of the present invention.
[0157] The video decoder analyzes cclm_mode_idx (S1900). It analyzes the index cclm_mode_idx and obtains the CCLM mode to apply to the current chroma block. Alternatively, the video decoder analyzes the index and obtains the cross-component prediction mode to apply to the current chroma block.
[0158] The video decoding device generates a first predictor (predCCLM) by executing the existing getCclmPred() function using the analyzed CCLM mode as input (S1902). Alternatively, the video decoding device generates a first predictor using the analyzed cross-component prediction mode as input.
[0159] The video decoding device executes the getExtraIntraMode() function to infer the representative mode (S1904). Hereafter, the getExtraIntraMode() function will be referred to as the "representative mode induction function" or simply the "induction function".
[0160] The video decoding device generates a second predictor (predintra) by executing the existing getIntraPred() function using the representative mode as input (S1906).
[0161] The video decoding device generates the current chroma block predictor (predC) by weighting the first predictor and the second predictor (S1908).
[0162] In this case, the induction function getExtraIntraMode(), which infers the representative mode by analogy with the five representative mode induction methods in Implementation Example 1-2, is implemented in various ways. The getExtraIntraMode() implemented in this example is provided with the coordinates (x0, y0), width, and height of the top-left pixel of the current chroma block as basic inputs. In the first method of Implementation Example 1-2, the relative coordinate value offset of the surrounding pixels referenced based on the coordinates of the top-left pixel of the current block is additionally provided as input.
[0163] On the other hand, the getPU() function used within the function is an existing function that takes pixel coordinates and channel information as input and returns information about the block containing the pixel at the corresponding position.
[0164] The operation of the induction function getExtraIntraMode(x0, y0, width, height, offset) using the first method in Implementation Example 1-2 is described below.
[0165] The induction function derives the position (xR, yR) of a neighboring pixel referenced based on the coordinates (x0, y0) of the top-left pixel of the current block and its offset.
[0166] The induction function generates information for the corresponding block by inputting the (xR, yR) coordinates and chroma channel into the getPU() function, and then outputs the prediction mode as the representative mode from the generated information.
[0167] The operation of the induction function getExtraIntraMode(x0,y0,width,height) using the second method in Implementation Example 1-2 is described below.
[0168] The induction function searches for the positions (xR, yR) of surrounding pixels based on the coordinates (x0, y0), width, and height of the top-left pixel of the current block.
[0169] The induction function is derived by inputting the (xR,yR) coordinates and chroma channel into the getPU() function to generate information for the corresponding block, and then deriving the prediction mode from the generated information.
[0170] The induction function adds the corresponding prediction mode to the "prediction mode frequency list" if the previously searched peripheral pixels are in a different block than the currently searched peripheral pixels, and does not add the corresponding prediction mode to the prediction mode frequency list if the previously searched peripheral pixels are in the same block as the currently searched peripheral pixels.
[0171] The induction function completes the predicted mode frequency list by performing the position search described above for all surrounding pixels.
[0172] The induction function outputs the most frequent prediction mode among the prediction modes included in the prediction mode frequency list as the representative mode.
[0173] The operation of the induction function getExtraIntraMode(x0,y0,width,height) using the third method in Implementation Example 1-2 is described below.
[0174] The induction function searches for the positions (xR, yR) of surrounding pixels based on the coordinates (x0, y0), width, and height of the top-left pixel of the current block.
[0175] The induction function is derived by first inputting the (xR,yR) coordinates and chroma channel into the getPU() function to generate information for the corresponding block, and then deriving the prediction mode, width wR, and height hR from the generated information.
[0176] The induction function adds wR × hR prediction modes to the "prediction mode frequency list" if previously searched peripheral pixels are in a different block than the currently searched peripheral pixels, and does not add the prediction mode to the prediction mode frequency list if previously searched peripheral pixels are in the same block as the currently searched peripheral pixels.
[0177] The induction function completes the predicted mode frequency list by performing the position search described above for all surrounding pixels.
[0178] The induction function outputs the most frequent prediction mode among the prediction modes included in the prediction mode frequency list as the representative mode.
[0179] The operation of the induction function getExtraIntraMode(x0,y0,width,height) using the fourth method in Implementation Example 1-2 is described below.
[0180] The induction function searches for the positions (xR, yR) of surrounding pixels based on the coordinates (x0, y0), width, and height of the top-left pixel of the current block.
[0181] The induction function generates information for the corresponding block by inputting the (xR,yR) coordinates and chroma channel into the getPU() function, and then adds the prediction mode from the generated information to the prediction mode frequency list.
[0182] The induction function completes the predicted mode frequency list by performing the position search described above for all surrounding pixels.
[0183] The induction function outputs the most frequent prediction mode from the prediction mode frequency list as the representative mode.
[0184] The operation of the induction function getExtraIntraMode(x0,y0,width,height) using the fifth method in Implementation Example 1-2 is described below.
[0185] The induction function calculates the aspect ratio of the current block using its width and height.
[0186] The induction function searches for the positions (xR, yR) of surrounding pixels based on the coordinates (x0, y0), width, and height of the top-left pixel of the current block.
[0187] The induction function first inputs the (xR,yR) coordinates and chroma channel into the getPU() function to generate information about the corresponding block. From this generated information, it derives the prediction mode, width wR, and height hR, and then calculates the aspect ratio of the corresponding block using the width wR and height hR.
[0188] The induction function adds the pair of the prediction mode and the calculated aspect ratio to the "aspect ratio similarity list" if the previously searched peripheral pixels are in a different block than the currently searched peripheral pixels, but does not add the pair of the prediction mode and the calculated aspect ratio to the aspect ratio similarity list if the previously searched peripheral pixels are in the same block as the currently searched peripheral pixels.
[0189] The induction function performs this position search for all surrounding pixels to complete the aspect ratio similarity list.
[0190] The induction function outputs the representative mode of the prediction mode for the element pair with the highest similarity to the current block's aspect ratio, based on the aspect ratio of each element pair included in the aspect ratio similarity list. For example, there are seven aspect ratios {8, 4, 2, 1, 1 / 2, 1 / 4, 1, 8}, and the smaller the absolute value of the index difference between two aspect ratios in such a list, the higher the similarity is considered to be.
[0191] The above description of the behavior of the induction function getExtraIntraMode(), which is one of the five types of representative mode induction methods, describes the case where one representative mode is generated. If multiple representative modes are to be generated, the induction function is extended by inputting the number of representative modes, numExtraMode.
[0192] On the other hand, if this implementation follows equation 4, the prediction mode of the predictor (predCCLM) is inferred using information from the current chroma block and surrounding chroma blocks. Here, the prediction mode is at least one of the cross-component prediction modes described above. For example, the prediction mode of the block containing a peripheral pixel at a specific position among the surrounding pixels of the current chroma block is set as the representative mode. The most frequent prediction mode derived from the number of blocks among the prediction modes of the blocks adjacent to the current chroma block is set as the representative mode. The most frequent prediction mode derived from the block area among the prediction modes of the blocks adjacent to the current chroma block is set as the representative mode. The most frequent prediction mode derived from the prediction modes of the blocks containing each peripheral pixel of the current chroma block is set as the representative mode. In addition, the representative mode is inferred according to the aspect ratio of the current chroma block. Subsequently, the inferred representative mode is set as the prediction mode of the predictor (predCCLM).
[0193] <Implementation Example 1-3> Use information from blocks included in the corresponding luma area In this implementation example, according to equation 3, the video decoder sets the prediction mode (hereinafter referred to as the "representative mode"), which is inferred using information such as the width / height / area / aspect ratio / prediction mode of the blocks currently contained in the chroma region corresponding to the chroma block (hereinafter referred to as the "corresponding chroma region"), as the prediction mode of the second predictor. At this time, the number of representative modes derived by the video decoder depends on the number of second predictors that are weighted together.
[0194] The video decoding device uses one of the following four methods as a method for inducing the representative mode.
[0195] As the first method, the prediction mode of the block containing a pixel at a specific location within the corresponding luma region is set as the representative mode. In this case, the specific location can be specified in various ways, as illustrated in Figure 20.
[0196] For example, assume that the distribution of blocks and prediction modes within the corresponding luma region are the same as in the example in Figure 21. When the video decoder derives a representative mode based on the pixel located in the exact center (position 5 in the example in Figure 20), it uses mode 22 as the representative mode.
[0197] When inferring multiple representative modes, the video decoder can select multiple pixels from the pixels at the positions illustrated in Figure 20. As illustrated in Figure 22, the prediction mode of the block containing pixels located in the upper right and lower left sections within the corresponding luma region is used as the representative mode. That is, the video decoder uses mode 66, which is the prediction mode of the block containing the pixel located in the upper right section (position 3 in the example in Figure 20), as the first representative mode, and the planar mode, which is the prediction mode of the block containing the pixel located in the lower left section (position 7 in the example in Figure 20), as the second representative mode.
[0198] As a second method, the most frequent prediction mode, derived based on the number of blocks, among the prediction modes of the blocks included in the corresponding Luma region, is set as the representative mode.
[0199] Assume that the distribution of blocks and prediction modes within the corresponding luma region are the same as in the example in Figure 23. There are a total of five blocks in the corresponding luma region, and since two of these blocks use the planar mode, the video decoder uses the planar mode as the representative mode. If multiple representative modes are to be inferred, the video decoder uses the prediction mode used by the second most numerous blocks in the example in Figure 23 as yet another representative mode.
[0200] If the frequencies of the predicted modes are the same, a representative mode is derived by specifying a priority. In this case, the priority is determined by an order such as {planar, DC, horizontal mode, vertical mode, ...}, ascending order, or descending order. Alternatively, a higher priority is given to the mode blocks that occupy a larger area within the corresponding luma region.
[0201] For example, if a block of a given mode is assigned a higher priority the larger the area it occupies within the corresponding luma region, then in the example shown in Figure 23, the block of mode 22 occupies a larger area within the corresponding luma region than the blocks of modes DC and 18, and therefore has a higher priority. Consequently, the video decoder derives planar mode and mode 22 as representative modes.
[0202] In addition to the examples above, if the frequencies of the prediction modes are the same, a representative mode is inferred according to a predetermined rule.
[0203] As a third method, among the prediction modes of blocks included in the corresponding Luma region, the most frequent prediction mode derived based on the block area is set as the representative mode.
[0204] The third method is performed similarly to the second method, which uses the most frequent prediction mode derived from the number of blocks in the corresponding luma region as the representative mode. In the third method, the most frequent mode is derived based on the area of the blocks in the corresponding luma region instead of the number of blocks.
[0205] As a fourth method, the prediction mode of the block with the same (or most similar) aspect ratio as the current block among the blocks included in the corresponding chroma region is set as the representative mode. For example, assume that the distribution of blocks included in the corresponding chroma region and their prediction modes are the same as in the example in Figure 24. In the example in Figure 24, the prediction modes for blocks with the same aspect ratio as the current chroma block are the planar mode and the DC mode. If multiple prediction modes are derived, the video decoder uses the mode with the larger block size as the representative mode to select one representative mode. In the example in Figure 24, the planar mode is set as the representative mode.
[0206] If multiple representative modes are to be inferred, the prediction mode of the block with the next highest aspect ratio similarity is used as another representative mode. In the example in Figure 24, the video decoder uses the planar mode and DC mode as representative modes.
[0207] The representative mode induction methods described in Implementation Examples 1-3 above are included as part of the intra prediction method illustrated in Figure 19. In this case, getExtraIntraMode(), which infers the representative mode by analogy with the four representative mode induction methods of Implementation Examples 1-3, is implemented in various ways. The induction function getExtraIntraMode() that implements this example is provided with the coordinates (x0, y0), width, and height of the top-left pixel of the current chroma block as basic inputs. In the first method of Implementation Example 1-3, the relative coordinate value offset of the pixel position referenced based on the coordinates of the luma pixel corresponding to the coordinates of the top-left pixel of the current chroma block is additionally provided as input.
[0208] The getPU() function used within the function is an existing function that takes the pixel coordinates and channel information as input and returns information about the block containing the pixel at that position. The getColocPos() function is an existing function that takes the pixel coordinates, current channel information, and corresponding channel information as input and returns the corresponding position within the corresponding channel for a pixel in the current channel. The getColocLen() function is also an existing function that takes the block width / height, current channel information, and corresponding channel information as input and returns the length within the corresponding channel for the width / height of the current channel.
[0209] The operation of the induction function getExtraIntraMode(x0,y0,width,height,offset) using the first method in Implementation Example 1-3 is described below.
[0210] The induction function takes the coordinates (x0, y0) of the top-left pixel of the current block, the current channel as the chroma channel, and the corresponding channel as the luma channel as inputs to derive the coordinates (x0L, y0L) of the corresponding luma pixel.
[0211] The induced function derives the position of the referenced pixel (xR, yR) based on (x0L, y0L) and the offset.
[0212] The induction function generates information for the corresponding block by inputting (xR, yR) coordinates and a luma channel to the getPU() function, and then outputs the prediction mode from the generated information as the representative mode.
[0213] The operation of the induction function getExtraIntraMode(x0,y0,width,height) using the second method in Implementation Example 1-3 is described below.
[0214] The induction function takes the coordinates (x0, y0) of the top-left pixel of the current block, the current channel as the chroma channel, and the corresponding channel as the luma channel as inputs to derive the coordinates (x0L, y0L) of the corresponding luma pixel.
[0215] The induction function takes the current block's width or height, the current channel as the chroma channel, and the corresponding channel as the luma channel as inputs, and derives the lengths widthL and heightL in the corresponding luma channel.
[0216] The induction function searches for the position (xR, yR) of the corresponding luma region pixel based on (x0L, y0L), widthL, and heightL.
[0217] The induction function is derived by first inputting the (xR, yR) coordinates and the luma channel into the getPU() function to generate information for the corresponding block, and then deriving the prediction mode from the generated information.
[0218] The induction function adds the corresponding prediction mode to the "prediction mode frequency list" if the previously searched pixel is in a different block than the currently searched pixel, and does not add the corresponding prediction mode to the prediction mode frequency list if the previously searched pixel is in the same block as the currently searched pixel.
[0219] The induction function completes the predicted mode frequency list by performing the position search described above for all pixels within the corresponding luma region.
[0220] The induction function outputs the most frequent prediction mode from the prediction mode frequency list as the representative mode.
[0221] The operation of the induction function getExtraIntraMode(x0,y0,width,height) using the third method in Implementation Example 1-3 is described below.
[0222] The induction function takes the coordinates (x0, y0) of the top-left pixel of the current block, the current channel as the chroma channel, and the corresponding channel as the luma channel as inputs to derive the coordinates (x0L, y0L) of the corresponding luma pixel.
[0223] The induction function takes the current block's width or height, the current channel as the chroma channel, and the corresponding channel as the luma channel as inputs, and derives the lengths widthL and heightL in the corresponding luma channel.
[0224] The induction function searches for the position (xR, yR) of the corresponding luma region pixel based on (x0L, y0L), widthL, and heightL.
[0225] The induction function is generated by inputting the (xR, yR) coordinates and the luma channel into the getPU() function, and then deriving the prediction mode, width wR, and height hR from the generated information.
[0226] The induction function adds wR × hR prediction modes to the "prediction mode frequency list" if previously searched pixels are in a different block than the currently searched pixels, and does not add the prediction mode to the prediction mode frequency list if previously searched surrounding pixels are in the same block as the currently searched surrounding pixels.
[0227] The induction function completes the predicted mode frequency list by performing the position search described above for all pixels within the corresponding luma region.
[0228] The induction function outputs the most frequent prediction mode from the prediction mode frequency list as the representative mode.
[0229] The operation of the induction function getExtraIntraMode(x0,y0,width,height) using the fourth method in Implementation Example 1-3 is described below.
[0230] The induction function calculates the aspect ratio of the current block using its width and height.
[0231] The induction function takes the coordinates (x0, y0) of the top-left pixel of the current block, the current channel as the chroma channel, and the corresponding channel as the luma channel as inputs to derive the coordinates (x0L, y0L) of the corresponding luma pixel.
[0232] The induction function takes the current block's width or height, the current channel as the chroma channel, and the corresponding channel as the luma channel as inputs, and derives the lengths widthL and heightL in the corresponding luma channel.
[0233] The induction function searches for the position (xR, yR) of the corresponding luma region pixel based on (x0L, y0L), widthL, and heightL.
[0234] The induction function generates information about the corresponding block by inputting the (xR, yR) coordinates and luma channel into the getPU() function. From the generated information, it derives the prediction mode, width wR, and height hR, and then calculates the aspect ratio of the corresponding block using the width wR and height hR.
[0235] The induction function adds the pair of the prediction mode and the calculated aspect ratio to the "aspect ratio frequency list" if the previously searched pixel is in a different block than the currently searched pixel, but does not add the pair of the prediction mode and the calculated aspect ratio to the aspect ratio frequency list if the previously searched pixel is in the same block as the currently searched pixel.
[0236] The induction function completes the aspect ratio frequency list by performing the position search described above for all pixels within the corresponding luma region.
[0237] The induction function outputs the representative mode as the prediction mode for the element pair with the highest similarity to the aspect ratio of the current block, based on the aspect ratio of each element pair included in the aspect ratio similarity list. For example, there are seven aspect ratios {8, 4, 2, 1, 1 / 2, 1 / 4, 1, 8}, and the smaller the absolute value of the index difference between two aspect ratios in such a list, the higher the similarity is considered to be.
[0238] The above description of the behavior of the induction function getExtraIntraMode(), which is one of the four representative mode induction methods, describes the case where one representative mode is generated. If multiple representative modes are to be generated, the induction function is extended by inputting the number of representative modes, numExtraMode.
[0239] <Implementation Example 1-4> Combination of Implementation Example 1-1, Implementation Example 1-2, and Implementation Example 1-3 In this implementation, when the video decoding device generates multiple second predictors using Equation 3, it selects and uses one of the methods presented in Implementation Examples 1-1, 1-2, and 1-3 to infer the prediction mode (hereinafter referred to as the "representative mode") for generating each second predictor. The aforementioned implementations already describe a method for simultaneously inferring multiple representative modes using one specific method within each implementation. In this implementation, the video decoding device infers the representative mode using different methods when generating each second predictor.
[0240] For example, when generating two additional predictors, the video decoder might infer the first representative mode using Implementation 1-1 and the second representative mode using Implementation 1-2. Alternatively, the first representative mode might be inferred based on the second method of Implementation 1-2 (a method that derives the most frequent prediction mode based on the number of adjacent blocks), and the second representative mode might be inferred based on the third method of Implementation 1-2 (a method that derives the most frequent prediction mode based on the area of adjacent blocks). As another example, a variety of combinations of inference methods exist, and a wider variety of combinations of inference methods are used as the number of additional predictors increases.
[0241] <Implementation Example 2> Method for setting weight values for weighted coupling This implementation describes a method for weight-combining a second predictor generated based on the representative mode inferred by Implementation 1, and a first predictor generated by existing CCLM prediction, based on Equation 3. The video decoder can consider at least one of the following for weight-combination: the pixel position and width / height / area / prediction mode within the current block, the width / height / area / prediction mode of the surrounding block, and the width / height / area / prediction mode of the corresponding luma block.
[0242] The video decoding device can implement various weighted coupling methods by appropriately setting w(i,j) in equation 3. The following description primarily focuses on the case where, in addition to the first predictor (a predictor based on information from the corresponding luma region ((1))) generated in the existing CCLM mode, there is one second predictor (a predictor based on information from the same channel ((2))), but the same method can be applied even when there are multiple additional predictors.
[0243] The following implementation examples 2-1 to 2-3 are methods for setting the same weight value for all pixels within the predictor. The weighting combination method for these implementation examples is described without considering the influence of the pixel coordinates (i,j) within the predictor, as shown in Equation 7.
[0244]
number
[0245] Implementation Example 2-4 is a method in which the weighting values are set differently depending on the pixel coordinates (i,j) within the predictor, and is therefore described using the notation in Equation 3.
[0246] On the other hand, the above also applies to the implementation example using Mathematics 4.
[0247] <Implementation Example 2-1> Using predefined weight values In this embodiment, the video decoding device uses a predefined weighting value wCCLM according to Equation 3. In this case, the predefined weighting values used are equal weighting values, high weighting values based on CCLM prediction (3:1, 7:1, ...), or low weighting values based on CCLM prediction (1:3, 1:7, ...).
[0248] For example, as shown in Equation 8, the video decoding device can set equal weighting values for all predictors.
[0249]
number
[0250] Alternatively, as shown in Equation 9, the video decoding device can set a higher weighting value for the first predictor based on CCLM prediction.
[0251]
number
[0252] <Implementation Example 2-2> Currently using information from surrounding blocks of the chroma block In this implementation example, according to Equation 3, the video decoder sets a weight value using information such as the width, height, area, and prediction mode of the surrounding blocks adjacent to the current chroma block. Generally, there is a relationship between the current block and adjacent blocks. Therefore, the relationship between the adjacent block and the current block using the prediction mode for the second predictor generation (hereinafter referred to as the "representative mode") is quantified. Hereinafter, this quantified relationship will be referred to as the peripheral pixel correlation degree rC. The video decoder can set the value of the weight value wCCLM using the peripheral pixel correlation degree rC.
[0253] The video decoding device can use one of the following three methods as a method for inducing the peripheral pixel correlation rC.
[0254] As a first method, among the blocks adjacent to the current chroma block, the ratio of adjacent blocks using the representative mode is calculated based on the number of blocks to derive rC.
[0255] For example, after calculating the ratio of the number of adjacent blocks using the representative mode among the total number of peripheral blocks adjacent to the current chroma block, this ratio is set to rC. As shown in Equation 10, the video decoder can use this ratio as the weighting value of the second predictor and set the value obtained by subtracting the corresponding ratio from 1 as the weighting value of the first predictor generated in the CCLM mode.
[0256]
Equation
[0257] Assume that the block distribution and prediction mode of the blocks adjacent to the current chroma block are the same as the example shown in FIG. 25. In the example of FIG. 25, there are a total of five blocks adjacent to the current chroma block, and three of these adjacent blocks use the planar mode, which is the representative mode. Therefore, according to Equation 10, the video decoder sets 3 / 5 as the weighting value of the second predictor and 2 / 5 as the weighting value of the first predictor generated in the CCLM mode. If multiple additional predictors are weighted and combined, after calculating the weighting values of each additional predictor in the same way, the video decoder sets the value obtained by subtracting the sum of the weighting values of the additional predictors from 1 as the weighting value of the first predictor.
[0258] On the other hand, instead of calculating the number of adjacent blocks using the representative mode described above, the video decoder can refer to only a few specific locations, rather than all surrounding blocks currently adjacent to the chroma block. For example, if only pixels at two locations (the leftmost peripheral pixel at position 4 and the topmost peripheral pixel at position 5) are referred to in the example in Figure 9, the weighting values according to the number of representative modes are set to 1:3, 2:2, and 3:1. That is, the more representative modes there are, the higher the weighting value set for the predictor that selected the representative mode. Assume that the block distribution and predicting mode of the blocks currently adjacent to the chroma block are the same as in Figure 25. If the representative mode is planar mode, the representative mode exists at one of the two locations. Therefore, the video decoder sets 2 / 4 as the weighting value for the second predictor and the same value of 2 / 4 as the weighting value for the first predictor generated by CCLM mode. If the representative mode is VER mode (mode 50), there are no representative modes at the two locations. Therefore, the video decoding device sets the weighting value of the second predictor to a small value of 1 / 4 and the weighting value of the first predictor generated by CCLM mode to a large value of 3 / 4.
[0259] As a second method, the ratio of adjacent blocks using a representative mode among the blocks currently adjacent to the chroma block is calculated based on the block area, and rC is derived from this.
[0260] For example, after calculating the ratio of the area of the adjacent block using the representative mode to the total area of the surrounding blocks adjacent to the current chroma block, this ratio is set to rC. As shown in Equation 11, the video decoding device uses this ratio as the weight value of the second predictor and sets the value obtained by subtracting this ratio from 1 as the weight value of the first predictor generated by the CCLM mode.
[0261]
number
[0262] Let's assume that the block distribution and prediction mode of the blocks adjacent to the current chroma block are the same as in the example in Figure 26. In the example in Figure 26, the total area of the blocks adjacent to the current chroma block is 68, of which 28 is the area of the adjacent blocks using the representative mode, the planar mode. Therefore, the video decoder sets 28 / 68 as the weight value of the second predictor and 40 / 68 as the weight value of the first predictor generated by CCLM mode, according to equation 11. If multiple additional predictors are weighted together, the video decoder calculates the weight value of each additional predictor in the same way, and then sets the weight value of the first predictor to 1 minus the sum of the weight values of the additional predictors.
[0263] As a third method, the current chroma block's rC is induced based on the ratio of the lengths of all sides adjacent to the surrounding adjacent blocks for the adjacent block using the representative mode, compared to the lengths of the sides adjacent to the current block.
[0264] For example, the ratio of the lengths of the sides adjacent to the current chroma block by the adjacent block using the representative mode to the current chroma block is calculated, and this ratio is set to rC. The video decoder uses this ratio as the weight value of the second predictor, as shown in Equation 12, and sets the value obtained by subtracting this ratio from 1 as the weight value of the first predictor generated by the CCLM mode.
[0265]
number
[0266] Let's assume that the block distribution and prediction mode of the blocks adjacent to the current chroma block are the same as in the example in Figure 27. In the example in Figure 27, the total length of the adjacent blocks adjacent to the current chroma block is 16, of which the length of the adjacent blocks using the representative mode, planar mode, adjacent to the current chroma block is 10. Therefore, the video decoder sets 10 / 16 as the weight value of the second predictor and 6 / 16 as the weight value of the first predictor generated by CCLM mode, according to equation 12. If multiple additional predictors are weighted together, the video decoder calculates the weight value of each additional predictor in the same way, and then sets the weight value of the first predictor to 1 minus the sum of the weight values of the additional predictors.
[0267] In this implementation example, if the total number of adjacent blocks or the area of all adjacent blocks is not in the form of a square of 2 during the process of calculating the peripheral pixel correlation rC, the computational complexity increases significantly during the division process when this is implemented in hardware. Therefore, in the process of deriving the peripheral pixel correlation, the video decoding device performs approximation in the form of a square of 2 using the operations shown in Equation 13 for each denominator and numerator, and then derives the peripheral pixel correlation using Equations 10 to 12.
[0268]
number
[0269] On one hand, when this implementation example follows Equation 4, a prediction mode for generating a predictor (predCCLM) of the current chroma block (hereinafter referred to as the "representative mode"), and the relevance rC (= 1 - wintra) of the peripheral pixels of the predictor (predCCLM) are inferred using information on peripheral blocks adjacent to the current chroma block. Here, the prediction modes of the current chroma block and each peripheral block are cross-component prediction modes as described above. For example, among the blocks adjacent to the current chroma block, the ratio of adjacent blocks using the representative mode is calculated based on the number of blocks to induce rC. Among the blocks adjacent to the current chroma block, the ratio of adjacent blocks using the representative mode is calculated based on the block area to induce rC. Also, based on the ratio of the length of the side where the adjacent block using the representative mode is adjacent to the current block among the total lengths of all sides where the current chroma block is adjacent to the peripheral adjacent blocks, rC is induced. Thereafter, the peripheral pixel relevance is set as the weighting value of the predictor (predCCLM).
[0270] <Example 2-3> Use information on blocks included in the corresponding luma region In this implementation example, following Equation 3, the video decoder sets a weighting value using information such as the width / height / area / prediction mode of the blocks included in the luma region (hereinafter referred to as the "corresponding luma region") corresponding to the current chroma block. There is a certain correlation between the current chroma block and the corresponding luma region. Therefore, the relevance between the intra-blocks using the prediction mode for generating the second predictor (hereinafter referred to as the "representative mode") and the current chroma block is quantified. Hereinafter, the quantified relevance is referred to as the luma pixel relevance rL. The video decoder sets the value of the weighting value wCCLM using the luma pixel relevance rL.
[0271] As a method for inducing the luma pixel relevance rL, the video decoder uses one of the following two methods.
[0272] As the first method, among the blocks included in the corresponding luma region, rL is induced by calculating the ratio of the blocks using the representative mode based on the number of blocks.
[0273] For example, after calculating the ratio of the number of blocks using the representative mode to the total number of blocks included in the corresponding Luma region, this ratio is set to rL. As shown in Equation 14, the video decoder uses this ratio as the weight value of the second predictor and sets the value obtained by subtracting this ratio from 1 as the weight value of the first predictor generated by the CCLM mode.
[0274]
number
[0275] Assume that the block distribution and prediction mode of the blocks included in the corresponding luma region are the same as in the example in Figure 28. In the example in Figure 28, there are a total of 5 blocks included in the corresponding luma region, of which 2 blocks use the planar mode, which is the representative mode. Therefore, the video decoder sets 2 / 5 as the weight value of the second predictor and 3 / 5 as the weight value of the first predictor generated by CCLM mode, according to equation 14. If multiple additional predictors are weighted together, the video decoder calculates the weight value of each additional predictor in the same way, and then sets the weight value of the first predictor to 1 minus the sum of the weight values of the additional predictors.
[0276] As a second method, rL is derived by calculating the proportion of blocks that use representative modes among the blocks included in the corresponding Luma region, based on the block area.
[0277] For example, after calculating the ratio of the area of the corresponding luma region to the area where the block using the representative mode overlaps with the corresponding luma region, this ratio is set to rL. As shown in Equation 15, the video decoder uses this ratio as the weight value of the second predictor and sets the value obtained by subtracting this ratio from 1 as the weight value of the first predictor generated by the CCLM mode.
[0278]
number
[0279] Assume that the block distribution and prediction mode of the blocks included in the corresponding luma region are the same as in Figure 29. In the example in Figure 29, the total area of the corresponding luma region is 256, of which 96 is the area where blocks using the representative mode, the planar mode, overlap with the corresponding luma region. Therefore, the video decoder sets 96 / 256 as the weight value of the second predictor according to equation 15, and 160 / 256 as the weight value of the first predictor generated by the CCLM mode. If multiple additional predictors are weighted together, the video decoder calculates the weight value of each additional predictor in the same way, and then sets the weight value of the first predictor to 1 minus the sum of the weight values of the additional predictors.
[0280] In this implementation example, if the number of blocks using all representative modes or the overlapping area with all blocks is not in the form of a square of 2 when calculating the luma pixel relevance rL, the complexity of the calculation increases significantly in the division process when this is implemented in hardware. Therefore, in the process of deriving the luma pixel relevance, the video decoder performs approximation in the form of a square of 2 using an operation similar to that shown in Equation 13 for each denominator and numerator, and then derives the luma pixel relevance using Equations 14 and 15.
[0281] <Implementation Example 2-4> Currently set according to the position of pixels within the chroma block. Unlike the three implementations described above, where a single unified weight value is set for the entire predictor, this implementation sets a weight value for each pixel within the predictor. While it is possible to set independent weight values for each pixel, it is more effective to group the pixels and then set the weight value for each group. Therefore, in this implementation, the video decoder groups the pixels of the predictor and then sets the weight value for each group. The pixels within the predictor are grouped according to various methods, as illustrated in Figure 30. In the example in Figure 30, four groups are used for each method, but the number of groups can be varied depending on the size and shape of the blocks.
[0282] The image decoding device either uses one of the grouping methods shown in Figure 30 (a) to (h) as a fixed method for grouping pixels, or determines the grouping method based on a representative mode. For example, for prediction modes that use both upper and left peripheral pixels (i.e., planar mode, DC mode, and prediction modes between 19 and 49), grouping methods like those shown in Figure 30 (a), (e), and (g) are used. For prediction modes that use only left peripheral pixels (i.e., prediction modes 18 and below, DC mode, etc.), grouping methods like those shown in Figure 30 (a), (b), (d), (e), and (h) are used. Furthermore, for prediction modes that use only upper peripheral pixels (i.e., prediction modes 50 and above, DC mode, etc.), grouping methods like those shown in Figure 30 (a), (b), (c), (e), and (f) are used.
[0283] On the other hand, the grouping methods in Figure 30(a), (c), and (d) are very similar to the method used when applying PDPC (Position Dependent Prediction Combination) technology to correct intra predictors of luma channels, where luma pixels within a predictor are grouped according to their distance from surrounding pixels. PDPC technology complements predictor pixels by weighting the predictor pixel with the surrounding pixel in the opposite direction of the prediction mode direction when the predictor pixel position and the position of the used surrounding pixel are far apart. In this case, the closer the distance to the corresponding predictor pixel is to the surrounding pixel in the opposite direction, the greater the weighting of the surrounding pixel in the opposite direction. PDPC technology is applied to prediction modes where surrounding pixels in the opposite direction of the prediction mode direction can be used. Such prediction modes include modes smaller than the horizontal mode (mode 18), modes larger than the vertical mode (mode 50), and four specific modes (planar mode, DC mode, horizontal mode (mode 18), and vertical mode (mode 50)).
[0284] The PDPC technology corrects predictors for planar and DC modes using equation 16, predictors for horizontal modes (mode 18) using equation 17, and predictors for vertical modes (mode 50) using equation 18. Furthermore, the PDPC technology corrects predictors for modes smaller than horizontal modes (mode 18) using equation 19, and predictors for modes larger than vertical modes (mode 50) using equation 20.
[0285]
number
[0286]
number
[0287]
number
[0288]
number
[0289]
number
[0290] Here, [x][y] represents pixels relative to the coordinates of the top-left pixel of the current block. pred[x][y] is the initial predictor generated in prediction mode, and p[x][-1] and p[-1][y] are the surrounding pixels used for predictor correction. nTbW and nTbH represent the width and height of the current block, and wL[x] and wT[y] represent the weights applied to the predictor pixels and surrounding pixels. Clip1 is expressed as the clipping function as shown in equation 21.
[0291]
number
[0292] Furthermore, invAngle is a variable used to determine the position of surrounding pixels necessary when generating predictors for each direction in intra-prediction mode. In VVC technology, invAngle is calculated as shown in Equation 22.
[0293]
number
[0294] Here, intraPredAngle is a value determined by the intra-prediction mode (PredModeIntra).
[0295] The PDPC method, specifically the method applied in the horizontal or vertical mode, is incompatible with this embodiment because it corrects the predictor using the change in surrounding pixels. Therefore, the method applied when the representative mode is the planar mode, DC mode, a mode smaller than the horizontal mode (mode 18), and a mode larger than the vertical mode (mode 50) is applied to the weighted coupling method according to this embodiment. By utilizing the last parts of equations 15, 18, and 19 to replace pred[x][y] with the second predictor predintra[x][y] generated in the representative mode, and replacing p[x][-1], p[-1] [y], refL[x][y], and refT[x][y] with the first predictor predCCLM[x][y] generated in the CCLM mode, the weighting value of the predictor pixels generated in the representative mode increases as the distance to the surrounding pixels used during prediction in the representative mode decreases.
[0296] This embodiment uses equation 23 to correct the predictor according to the planar mode and DC mode. Furthermore, this embodiment uses equation 24 to correct the predictor according to modes smaller than the horizontal mode (mode 18), and uses equation 25 to correct the predictor according to modes larger than the vertical mode (mode 50). Equations 23 to 25 ensure that the correction principles of existing PDPCs are directly compatible with this implementation.
[0297]
number
[0298]
number
[0299]
number
[0300] On the other hand, if the PDPC method is not used, the video decoding device sets weighting values for each group after grouping the predictor pixels, taking into account the distance from the surrounding pixels. The weighting value for the first predictor by CCLM prediction is set to be larger the further it is from the surrounding pixels, and the weighting value for the second predictor by representative mode is set to be smaller the further it is from the surrounding pixels.
[0301] For example, if pixels are grouped using the method shown in Figure 30(e), the weights of the first and second predictors are set as shown in the example in Figure 31. In the example in Figure 31, the predictor predC(0,0) for the current chroma block position (0,0) is calculated as shown in equation 26.
[0302]
number
[0303] The example in Figure 30 shows a grouping method for when the chroma blocks are currently square in shape. If the blocks are currently rectangular in shape, the grouping method shown in Figure 30 is used after being modified to fit the rectangular blocks. For example, the example in Figure 32 shows a grouping method for rectangular blocks where the height is greater than the width, and the example in Figure 33 shows a grouping method for rectangular blocks where the width is greater than the height.
[0304] <Implementation Example 3> Method for signaling the prediction mode and weight values of the second predictor In this implementation, the video decoder uses information signaled from the video encoder without currently inferring information for intra-prediction of chroma blocks. That is, information related to the prediction mode of the second predictor, weighted coupling information, etc., are transmitted from the video encoder to the video decoder. Furthermore, the application method of this embodiment is also signaled from the video encoder to the video decoder.
[0305] <Implementation Example 3-1> Method for signaling prediction mode-related information In this implementation, information related to the prediction mode for generating the second predictor (hereinafter referred to as the "representative mode") is directly signaled from the video encoding device to the video decoding device. This information includes the number of representative modes, the representative mode induction method, and the representative mode index.
[0306] As the first method, the number of representative modes is signaled as follows. For example, as shown in Table 3, the number of representative modes sps_ccip_extra_mode_num is predefined at a higher level (e.g., SPS).
[0307] [Table 3]
[0308] The video encoding device encodes a predefined number of representative modes and then includes them in the bitstream before signaling to the video decoding device. Here, "ccip" in the variable name is an abbreviation for "Cross CCLM Intra Prediction". Hereafter, "ccip" will be inserted into the variable names of signals related to this embodiment.
[0309] The video decoding device analyzes sps_ccip_extra_mode_num within the bitstream. Subsequently, the number of representative modes to be derived during prediction is determined by the value of sps_ccip_extra_mode_num.
[0310] As another example, the representative mode count is signaled each time a prediction is performed at the CU level. The intra-predictive mode analysis process for the chroma channel described above in Table 2 is modified as shown in the example in Table 4. According to Table 4, by analyzing ccip_extra_mode_num in addition to cclm_mode_idx, the representative mode count information required for each block prediction is signaled.
[0311] [Table 4]
[0312] As a second method, the representative mode induction method is signaled as follows. First, the representative mode induction method presented in Implementation Example 1 is categorized by index as illustrated in Table 5.
[0313] [Table 5]
[0314] From this point forward, as shown in Table 6, the index sps_ccip_mode_infer_idx for the representative mode induction method is predefined at a higher level.
[0315] [Table 6]
[0316] The video encoder encodes an index of a predefined representative mode induction method, includes it in the bitstream, and signals the video decoder. The video decoder analyzes sps_ccip_mode_infer_idx in the bitstream. Then, it determines the representative mode induction method to be used during prediction based on the value of sps_ccip_mode_infer_idx.
[0317] As another example, the representative mode induction method is signaled at the CU level each time a prediction is performed. As shown in Table 7, after analyzing cclm_mode_idx during the intra-predictive mode analysis process of the chroma channel, the representative mode induction method used during each block prediction is signaled by additionally analyzing ccip_mode_infer_idx.
[0318] [Table 7]
[0319] As a third method, the representative mode index is signaled at the CU level each time a prediction is performed. As shown in Table 8, after analyzing cclm_mode_idx during the intra-prediction mode analysis process of the chroma channel, the representative mode to be used during each block prediction is signaled by additionally analyzing ccip_extra_mode_idx.
[0320] [Table 8]
[0321] In this case, ccip_extra_mode_idx displays one index if there is only one representative mode. If multiple representative modes are used, ccip_extra_mode_idx becomes a list of various representative mode indices.
[0322] As an example of this implementation, the representative mode number information is signaled along with the representative mode induction method. Alternatively, a pre-set number is used without signaling the representative mode number information, and the index of the representative mode is signaled instead of the representative mode induction method information. In addition to these, a variety of prediction methods can be generated by selecting various combinations of related information to be signaled and related information not to be signaled.
[0323] <Implementation Example 3-2> Method for signaling weighted coupling-related information In this implementation example, weighted coupling-related information is signaled from the video encoding device to the video decoding device. At this time, the weighted coupling-related information includes the weighted coupling method, the method for grouping pixels within a block in implementation example 2-4, and the weighted coupling weight value.
[0324] As the first method, the weighted coupling method is signaled as follows. First, the weighted coupling method presented in Implementation Example 2 is categorized by index as illustrated in Table 9.
[0325] [Table 9]
[0326] From this point forward, as shown in Table 10, the index sps_ccip_weight_calc_mode_idx for the weighted join method is predefined at a higher level (e.g., SPS).
[0327] [Table 10]
[0328] The video encoder encodes an index of a predefined weighted coupling method, includes it in the bitstream, and signals the video decoder. The video decoder analyzes sps_ccip_weight_calc_mode_idx in the bitstream. Subsequently, the value of sps_ccip_weight_calc_mode_idx determines the weighted coupling method to be used during prediction.
[0329] As another example, the weighted coupling method is signaled at the CU level each time a prediction is performed. As shown in Table 11, the weighted coupling method used during each block prediction is signaled by analyzing ccip_weight_calc_mode_idx after analyzing cclm_mode_idx during the intra-predictive mode analysis process of the chroma channel.
[0330] [Table 11]
[0331] As a second method, the grouping method of pixels within a block is signaled at the CU level each time a prediction is performed. The signaling of the grouping method is applied when setting different weight values for each pixel position within a block using the weighted coupling method in Implementation Example 2-4. Since the available grouping methods differ depending on the representative mode, the grouping methods are distinguished by index as illustrated in Table 12.
[0332] [Table 12]
[0333] Subsequently, as shown in Table 13, after analyzing cclm_mode_idx during the intra-predictive mode analysis process of the chroma channel, the grouping method to be used during each block prediction is signaled by additionally analyzing ccip_weight_group_idx.
[0334] [Table 13]
[0335] As a third method, the weight values of the weighted coupling are signaled at the CU level each time a prediction is performed. As shown in Table 14, after analyzing cclm_mode_idx during the intra-predictive mode analysis process of the chroma channel, the weight values to be applied to each predictor during each block prediction are signaled by analyzing ccip_pred_weight.
[0336] [Table 14]
[0337] In this case, if there is only one representative mode, ccip_pred_weight represents one weight value for the first predictor (or second predictor). Also, if multiple representative modes are used, the number of weight values that make up the list of ccip_pred_weight increases in proportion to the number of representative modes.
[0338] <Implementation Example 3-3> A method for signaling how the present invention is applied. The application of the present invention is signaled by the user as follows: In this implementation, a flag sps_ccip_mode_flag is defined at a higher level (e.g., SPS) as shown in Table 15 to instruct the use of an improved predictor (i.e., predictor predC as exemplified in Equations 3 and 4) that is a combination of the implementations of the present invention, rather than an existing CCLM mode predictor.
[0339] [Table 15]
[0340] The video encoder encodes a flag sps_ccip_mode_flag that instructs the use of a predefined improved predictor, and then signals the video decoder by including it in the bitstream.
[0341] The video decoding device can generate predictors using the existing CCLM mode if sps_ccip_mode_flag=0, and using the improved CCLM mode if sps_ccip_mode_flag=1.
[0342] As an example of the present invention, a combination of Implementation Example 3-1 and Implementation Example 3-2 is possible. For example, once it is determined that the present invention will be applied by signaling whether or not the present invention will be applied, the methods of Implementation Example 3-1 and Implementation Example 3-2 are applied thereafter.
[0343] The application of the present invention may be signaled at a higher level as shown in Table 15, or it may be signaled at a lower level. That is, the application of the present invention is determined at the CU level using ccip_mode_flag. If ccip_mode_flag is 0, the video decoder uses the existing CCLM mode, and if ccip_mode_flag is 1, it generates a final predictor by weighting and combining a first predictor from the CCLM mode and a second predictor from the intra-prediction mode.
[0344] The video decoding device analyzes the ccip_mode_flag according to the type of prediction mode, as shown in Tables 16 and 17.
[0345] [Table 16]
[0346] [Table 17]
[0347] Alternatively, as shown in Table 18, ccip_mode_flag may be analyzed regardless of the type of prediction mode.
[0348] [Table 18]
[0349] On the other hand, if the prediction mode is one of the CCLM modes and ccip_mode_flag is 1, the representative mode according to the present invention is a same-channel prediction mode that generates predictors using information from the same channel ((2)). On the other hand, if the prediction mode is one of the prediction modes that utilize same-channel information and ccip_mode_flag is 1, the representative mode according to the present invention is a cross-component prediction mode that generates predictors using information from the corresponding luma region ((1)).
[0350] <Example 4> A method for adaptively determining how to apply the present invention. This implementation example describes a method for inferring the applicability of the present invention to the current block by considering at least one of the conditions described below. Even without signaling the applicability of the present invention, the video encoding device and video decoding device can similarly infer its applicability. For this purpose, information such as the width / height / area of the current block, the prediction mode of the surrounding chroma block or corresponding luma block, the degree of association between the current chroma block and surrounding pixels, the degree of association between the current chroma block and corresponding luma pixels, and the degree of association between the reference sample and corresponding luma sample of the current chroma block are considered as conditions.
[0351] As a first example, the applicability of the present invention is adaptively determined according to the size of the block. The video encoding device and video decoding device apply the present invention if the block area is greater than or equal to a preset threshold, but do not apply it if it is less than that threshold. In this case, the threshold is pre-set to various values such as 16, 32, and 64. The applicability of the present invention can also be determined based on various other area conditions.
[0352] As a second example, the applicability of the present invention is adaptively determined using the peripheral pixel relevance and luma pixel relevance exemplified in Implementation Examples 2-2 and 2-3, which are methods for combining multiple predictors in Implementation Example 2. The peripheral pixel relevance rC is calculated as a numerical value representing the relationship between the current block and adjacent blocks, as shown in Equations 10 to 12. The luma pixel relevance rL is calculated as a numerical value representing the relationship between blocks in the corresponding luma region and the current chroma block, as shown in Equations 14 and 15. After deriving the peripheral pixel relevance or luma pixel relevance, the video encoding device and video decoding device do not apply the present invention if the relevance value is less than a preset threshold, and apply it if it is greater than or equal to the threshold. In this case, since the relevance value is distributed between 0 and 1, the threshold is set in advance to a variety of values such as 0.2, 0.25, 0.3, 0.5, etc.
[0353] As a third example, the degree of association between two sample sets is calculated for the current chroma block reference sample and the corresponding luma sample, and then the applicability of the present invention is adaptively determined according to the calculated degree of association value. In this case, the degree of association is expressed as a correlation coefficient ρ, which quantifies the linear correlation between the two variables, as shown in Equation 27.
[0354]
number
[0355] Here, C is the chroma reference sample, L is the corresponding luma sample, and n is the total number of chroma reference samples. Also, Cm is the mean of the chroma reference samples, and Lm is the mean of the corresponding luma samples. The correlation coefficient ρ is a value between -1 and 1, and the closer its absolute value is to 1, the stronger the linear relationship between the two variables.
[0356] The video encoding and decoding devices can determine whether the present invention applies by deriving ρ and comparing it with a preset threshold. If the current block's prediction mode is CCLM mode, the present invention does not apply if the absolute value of ρ is greater than or equal to the preset threshold, and applies if it is less than the threshold. Conversely, if the current block's prediction mode is an intra predictor generation prediction mode, the present invention applies if the absolute value of ρ is greater than or equal to the preset threshold, and does not apply if it is less than the threshold. In this case, since the absolute value of ρ is distributed between 0 and 1, the threshold can be preset to various values such as 0.2, 0.25, 0.3, 0.5, etc.
[0357] In addition, after measuring the degree of correlation between the chromatic and luminal components using various methods, the applicability of the present invention is determined based on the measured degree of correlation.
[0358] While the flowcharts / timing diagrams in this specification describe the sequential execution of each process, this is merely an illustrative example of the technical concept of one embodiment of the present invention. In other words, any person with ordinary skill in the art to which one embodiment of the present invention belongs can modify and adapt the flowcharts / timing diagrams in various ways, such as changing the order of execution as described in the flowcharts / timing diagrams, or executing one or more of the processes in parallel, without departing from the essential characteristics of one embodiment of the present invention. Therefore, the flowcharts / timing diagrams are not limited to a chronological order.
[0359] It should be understood that the exemplary embodiments described above can be embodied in many different ways. The functions or methods described in one or more examples can be embodied in hardware, software, firmware, or any combination thereof. It should be understood that the functional components described herein are labeled as "units" to particularly emphasize their independent implementation.
[0360] On the other hand, the various functions or methods described in this embodiment may be embodied in instruction words stored on a non-temporary recording medium that can be read and executed by one or more processors. The non-temporary recording medium includes, for example, any kind of recording device in which data is stored in a format readable by a computer system. For example, the non-temporary recording medium includes storage media such as EPROM (erasable programmable read-only memory), flash drives, optical drives, magnetic hard drives, and solid-state drives (SSDs).
[0361] The above description is merely illustrative of the technical concept of this embodiment, and any person with ordinary skill in the art to which this embodiment belongs will be able to make various modifications and variations without departing from the essential characteristics of this embodiment. Therefore, this embodiment is for illustrative purposes only and not to limit the technical concept of this embodiment, and the scope of the technical concept of this embodiment is not limited by such embodiment. The scope of protection of this embodiment should be interpreted by the claims, and all technical concepts within an equivalent scope should be interpreted as being included in the scope of rights of this embodiment.
[0362] CROSS-REFERENCETORELATED APPLICATION This patent application claims priority over patent application No. 10-2021-0073659 filed in Korea on June 7, 2021, and patent application No. 10-2022-0067918 filed in Korea on June 3, 2022, and all contents of those applications are merged into this patent application as references. [Explanation of Symbols]
[0363] 122 Intra Prediction Unit 542 Intra Prediction Unit 802 Input Unit 804 First Predictor Generator 806 Second Predictor Generator 808 Weighted summation device
Claims
1. In the current intra-prediction method for chroma blocks performed by the video decoding device, The steps include determining a cross-component prediction mode for the current chroma block, Here, the cross-component prediction includes predicting the current chroma block using the pixels of the corresponding luma region of the current chroma block. The steps include generating a first predictor for the current chroma block by performing the cross-component prediction based on the cross-component prediction mode, The steps include: inferring a representative mode from the intra-predictive mode derived from the adjacent blocks of the current chroma block; The steps include generating a second predictor for the current chroma block by performing intra-prediction using the surrounding pixels of the current chroma block based on the representative mode, A step of inducing weighted values for the first predictor and the second predictor, The steps include generating an intra predictor for the current chroma block by weighting the first predictor and the second predictor using the weighted values, Includes, An intra-prediction method characterized in that the weighted value is derived based on a prediction mode used to predict two adjacent blocks located above and to the left of the current chroma block, respectively.
2. The step of inferring the aforementioned representative mode is: The intra prediction method according to claim 1, characterized in that the prediction mode of a block including a peripheral pixel at a specific position among the peripheral pixels of the current chroma block is set to the representative mode.
3. The step of inferring the aforementioned representative mode is: The intra prediction method according to claim 1, characterized in that, among the prediction modes of adjacent blocks of the current chroma block, the most frequent prediction mode derived based on the number of blocks is set as the representative mode.
4. The step of inferring the aforementioned representative mode is: The intra prediction method according to claim 1, characterized in that, among the prediction modes of the adjacent blocks of the current chroma block, the most frequent prediction mode derived based on the block area is set as the representative mode.
5. The step of inferring the aforementioned representative mode is: The intra prediction method according to claim 1, characterized in that the most frequent prediction mode derived based on the prediction mode of the block containing each peripheral pixel of the current chroma block is set as the representative mode.
6. The step of inferring the aforementioned representative mode is: The intra prediction method according to claim 1, characterized in that, among the adjacent blocks, the prediction mode of the block whose aspect ratio is the same as or most similar to the current chroma block is set as the representative mode.
7. In the current intra-prediction method for chroma blocks performed by the video encoding device, The steps include determining the cross-component prediction mode for the current cross-component prediction of the chroma block, Here, the cross-component prediction includes predicting the current chroma block using the pixels of the corresponding luma region of the current chroma block. The steps include generating a first predictor for the current chroma block by performing the cross-component prediction based on the cross-component prediction mode, The steps include: inferring a representative mode from the intra-predictive mode derived from the adjacent blocks of the current chroma block; The steps include generating a second predictor for the current chroma block by performing intra-prediction using the surrounding pixels of the current chroma block based on the representative mode, A step of inducing weighted values for the first predictor and the second predictor, The steps include generating an intra predictor for the current chroma block by weighting the first predictor and the second predictor using the weighted values, Includes, An intra-prediction method characterized in that the weighted value is derived based on a prediction mode used to predict two adjacent blocks located above and to the left of the current chroma block, respectively.
8. The steps of encoding video data into a bitstream, The steps include transmitting the bitstream to a video decryption device, Includes, The encoding of the aforementioned video data is Currently, the steps involve determining the cross-component prediction mode for cross-component prediction of chromablocks, Here, the cross-component prediction includes predicting the current chroma block using pixels in the luma region corresponding to the current chroma block, The steps include generating a first predictor for the current chroma block by performing the cross-component prediction based on the cross-component prediction mode, The steps include: inferring a representative mode from the intra-predictive mode derived from the adjacent blocks of the current chroma block; The steps include generating a second predictor for the current chroma block by performing intra-prediction using the surrounding pixels of the current chroma block based on the representative mode, Steps include: inducing weight values for the first predictor and the second predictor; and generating an intra predictor for the current chroma block by weighting the first predictor and the second predictor using the weight values; Includes, A method for providing video data to a video decryption device, characterized in that the weighted value is derived based on a prediction mode used to predict two adjacent blocks currently located above and to the left of the chroma block, respectively.
Citation Information
Patent Citations
Method, apparatus and computer program product for video encoding and video decoding
JP2023527920A
Method and apparatus of advanced intra prediction for chroma components in video coding
US20190045184A1