Image encoding / decoding method and apparatus using intra prediction

CN116647681BActive Publication Date: 2026-10-16GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310681398.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-04-01
Filing Date
2019-04-01
Publication Date
2026-10-16
Estimated Expiration
2039-04-01

AI Technical Summary

Benefits of technology

[0017] According to the present invention, prediction can be performed more accurately and efficiently by deriving intra-frame prediction modes based on an MPM list.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116647681B_ABST
    Figure CN116647681B_ABST
Patent Text Reader

Abstract

The image encoding / decoding method and apparatus according to the present application can determine an intra prediction mode of a current block, and perform an intra prediction on the current block based on the intra prediction mode, wherein the intra prediction mode of the current block is determined for each of a luma block and a chroma block.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of Chinese patent application No. 201980024708.1, entitled "Image Coding / Decoding Method and Apparatus Using Intra-Frame Prediction", which entered the Chinese national phase of PCT international patent application PCT / KR2019 / 003776 filed on April 1, 2019. Technical Field

[0002] This invention relates to image encoding / decoding methods and apparatus. Background Technology

[0003] Recently, there has been an increasing demand for high-resolution and high-quality images, such as high-definition (HD) and ultra-high-definition (UHD) images, in various application areas, and therefore, efficient image compression technologies are being discussed.

[0004] Various techniques exist, such as inter-frame prediction techniques that use video compression to predict pixel values ​​in the current image from images preceding or following it; intra-frame prediction techniques that use pixel information from the current image to predict pixel values; and entropy coding techniques that assign short codes to values ​​with high frequency of occurrence and long codes to values ​​with low frequency of occurrence. Image data can be efficiently compressed, transmitted, or stored by using such image compression techniques. Summary of the Invention

[0005] Technical issues

[0006] The purpose of this invention is to provide a method and apparatus for deriving intra-frame prediction modes.

[0007] The purpose of this invention is to provide an intra-frame prediction method and apparatus based on component type.

[0008] The purpose of this invention is to provide a block partitioning method and apparatus for intra-frame prediction.

[0009] Technical solutions

[0010] The image encoding / decoding method and apparatus of the present invention can determine the intra-prediction mode of the current block and perform intra-prediction on the current block based on the determined intra-prediction mode.

[0011] In the image encoding / decoding method and apparatus of the present invention, the intra-frame prediction mode of the current block can be obtained for the luma block and the chroma block respectively.

[0012] In the image encoding / decoding method and apparatus of the present invention, the intra-prediction mode of the luma block is derived based on the MPM list and the MPM index, and the MPM list may include at least one of the following intra-prediction modes: the intra-prediction mode of the adjacent block (ModeA), ModeA+n, ModeA-n, or the default mode.

[0013] In the image encoding / decoding method and apparatus of the present invention, the current block is any one of a plurality of lower encoding blocks belonging to a higher encoding block, and the plurality of lower encoding blocks belonging to a higher encoding block can share an MPM list.

[0014] The image encoding / decoding method and apparatus of the present invention can specify a luminance region for inter-component reference of chroma blocks, perform downsampling on the luminance region to obtain parameters for inter-component reference of chroma blocks, and predict chroma blocks based on the downsampled luminance blocks and parameters.

[0015] In the image encoding / decoding method and apparatus of the present invention, the current block is divided into multiple sub-blocks, and the division can be performed based on at least one of the size or shape of the current block.

[0016] Beneficial effects

[0017] According to the present invention, prediction can be performed more accurately and efficiently by deriving intra-frame prediction modes based on an MPM list.

[0018] According to the present invention, the efficiency of inter-frame prediction based on inter-component reference can be improved.

[0019] This invention can improve the efficiency of intra-frame predictive coding / decoding through adaptive block partitioning. Attached Figure Description

[0020] Figure 1 This is a block diagram illustrating an image encoding apparatus according to an embodiment of the present invention.

[0021] Figure 2 This is a block diagram illustrating an image decoding apparatus according to an exemplary embodiment of the present invention.

[0022] Figure 3 An intra-frame prediction method is shown as an embodiment of applying the present invention.

[0023] Figure 4 An intra-frame prediction method based on sub-blocks is shown as an embodiment of the present invention.

[0024] Figure 5 An inter-component reference-based prediction method is illustrated in an embodiment applying the present disclosure.

[0025] Best practice

[0026] The image encoding / decoding method and apparatus of the present invention can determine the intra-prediction mode of the current block and perform intra-prediction on the current block based on the determined intra-prediction mode.

[0027] In the image encoding / decoding method and apparatus of the present invention, the intra-frame prediction mode of the current block can be obtained for the luma block and the chroma block respectively.

[0028] In the image encoding / decoding method and apparatus of the present invention, the intra-prediction mode of the luma block is derived based on the MPM list and the MPM index, and the MPM list may include at least one of the following intra-prediction modes: intra-prediction mode of adjacent blocks (mode A), mode A+n, mode An, or default mode.

[0029] In the image encoding / decoding method and apparatus of the present invention, the current block is any one of a plurality of lower encoding blocks belonging to a higher encoding block, and the plurality of lower encoding blocks belonging to a higher encoding block can share an MPM list.

[0030] The image encoding / decoding method and apparatus of the present invention can specify a luminance region for inter-component reference of chroma blocks, perform downsampling on the luminance region to obtain parameters for inter-component reference of chroma blocks, and predict chroma blocks based on the downsampled luminance blocks and parameters.

[0031] In the image encoding / decoding method and apparatus of the present invention, the current block is divided into multiple sub-blocks, and the division can be performed based on at least one of the size or shape of the current block. Detailed Implementation

[0032] This invention can be changed and modified in various ways, and can be described with reference to different exemplary embodiments, some of which are described and illustrated in the accompanying drawings. However, these embodiments are not intended to limit the invention, but are to be understood as including all modifications, equivalents, and substitutions that fall within the spirit and scope of the invention. In the drawings, the same reference numerals always refer to the same elements.

[0033] While the terms first, second, etc., can be used to describe various elements, these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, without departing from the teachings of the invention, a first element may be referred to as a second element, and likewise, a second element may be referred to as a first element. The term "and / or" includes any and all combinations of the multiple associated listed items.

[0034] It will be understood that when a component is referred to as "connected to" or "coupled to" another component, the component can be directly connected to or coupled to the other component or an intermediate component. Conversely, when a component is referred to as "directly connected to" or "directly coupled to" another component, there is no intermediate component.

[0035] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the invention. As used herein, the singular forms (“a”, “an”) and the (“the”) are intended to include the plural forms as well. It will also be understood that, when used in this specification, the terms “comprising” and / or “having” specify the presence of the stated features, numbers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, numbers, steps, operations, elements, components, and / or groups thereof.

[0036] In the following, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the drawings, the same reference numerals always refer to the same elements, and redundant descriptions of the same elements will be omitted herein.

[0037] Figure 1 This is a block diagram illustrating an image encoding apparatus according to an embodiment of the present invention.

[0038] Reference Figure 1 The image encoding device 100 includes an image segmentation unit 110, prediction units 120 and 125, a transformation unit 130, a quantization unit 135, a rearrangement unit 160, an entropy encoding unit 165, an inverse quantization unit 140, an inverse transformation unit 145, a filter unit 150, and a memory 155.

[0039] Figure 1 Each of the elements shown is illustrated independently to represent a different functional feature in the encoding device, but this does not imply that each element consists of a single hardware or software element. That is, for ease of description, the elements are arranged independently, wherein at least two elements may be combined into a single element, or a single element may be divided into multiple elements to perform a function. It should be noted that embodiments in which some elements are integrated into a combined element and / or elements are divided into multiple separate elements are included within the scope of this invention without departing from the spirit of the invention.

[0040] Some components are not essential to the essential function of this invention, but are optional components used only to improve performance. This invention can be implemented by including only the components necessary for implementing the invention (excluding components used only to improve performance). Structures that include only the necessary components (excluding optional components used only to improve performance) are within the scope of this invention.

[0041] Image partitioning unit 110 can partition an input image into at least one processing unit. In this case, the processing unit can be a prediction unit (PU), a transform unit (TU), or a coding unit (CU). Image partitioning unit 110 can partition an image into multiple combinations of coding units, prediction units, and transform units, and select one combination of coding units, prediction units, and transform units to encode the image based on a predetermined criterion (e.g., a cost function).

[0042] For example, an image can be divided into multiple coding units. To divide an image into coding units, a recursive tree structure such as a quadtree can be used. The root image, or the largest coding block (the largest coding unit), can be divided into other coding units, and can have as many child nodes as the number of coding units. Coding units that are no longer divided according to certain constraints become leaf nodes. That is, when it is assumed that only square partitioning is possible for a coding unit, a coding unit can be divided into up to four different coding units.

[0043] In embodiments of the present invention, the encoding unit can be used not only to refer to the encoding unit but also to refer to the decoding unit.

[0044] A prediction unit may be a block within a coding unit that is divided in a shape such as at least one square or rectangle of the same size, or a prediction unit within a coding unit may have a different shape and / or size than another prediction unit.

[0045] When the prediction unit for intra-frame prediction based on the coding unit is not the smallest coding unit, intra-frame prediction can be performed without dividing it into multiple prediction units N×N.

[0046] Prediction units 120 and 125 may include an inter-frame prediction unit 120 for performing inter-frame prediction and an intra-frame prediction unit 125 for performing intra-frame prediction. Prediction units 120 and 125 can determine whether to perform inter-frame or intra-frame prediction on a PU, and can determine specific information of the determined prediction method (e.g., intra-frame prediction mode, motion vectors, and reference images). Here, the processing unit performing the prediction may be different from the processing unit that determines the prediction method and specific information. For example, the prediction method and prediction mode may be determined for each PU, while prediction may be performed for each TU. The residual value (residual block) between the generated prediction block and the original block can be input to the transform unit 130. Furthermore, prediction mode information, motion vector information, etc., used for prediction can be encoded by the entropy coding unit 165 along with the residual value and sent to the decoding device. When using a specific coding mode, the original block can be encoded and sent to the decoding device without the prediction units 120 and 125 generating the prediction block.

[0047] The inter-frame prediction unit 120 can predict the PU based on information about at least one of the previous and subsequent images of the current image. In some cases, the inter-frame prediction unit 120 can predict the PU based on information about a portion of the coded region in the current image. The inter-frame prediction unit 120 may include a reference image interpolation unit, a motion prediction unit, and a motion compensation unit.

[0048] Reference image information from memory 155 can be provided to the reference image interpolation unit, which can generate pixel information less than or equal to integer pixels in the reference image. In the case of luminance pixels, an 8-tap DCT-based interpolation filter with variable filter coefficients can be used to generate pixel information less than or equal to integer pixels in 1 / 4-pixel units. In the case of chroma pixels, a 4-tap DCT-based interpolation filter with variable filter coefficients can be used to generate pixel information less than or equal to integer pixels in 1 / 8-pixel units.

[0049] The motion prediction unit can perform motion prediction based on a reference image interpolated by the reference image interpolation unit. Various methods can be used to compute motion vectors, such as Full Search-Based Block Matching (FBMA), Three-Step Search (TSS), and New Three-Step Search (NTS). Based on the interpolated pixels, the motion vector has a value in units of 1 / 2 or 1 / 4 pixels. The motion prediction unit can use different motion prediction methods to predict the current PU. Various methods such as skip mode, merge mode, Advanced Motion Vector Prediction (AMVP) mode, and intra-block copy mode can be used as motion prediction methods.

[0050] Intra-prediction unit 125 can generate a PU based on information about reference pixels adjacent to the current block. When the block adjacent to the current PU is a block that has undergone inter-frame prediction, and the reference pixel is a pixel that has undergone inter-frame prediction, the information about the reference pixel in the block that has undergone intra-frame prediction can be replaced with information about the reference pixel in the block that has undergone intra-frame prediction. That is, when a reference pixel is unavailable, the information about an unavailable reference pixel can be replaced with information about at least one of the available reference pixels.

[0051] Intra-frame prediction modes include directional prediction modes that use reference pixel information based on the prediction direction, and non-directional prediction modes that do not use information about the direction when performing prediction. The modes used to predict luminance information and the modes used to predict chrominance information can be different from each other. Furthermore, chrominance information can be predicted using intra-frame prediction mode information used to predict luminance information or predicted luminance signal information.

[0052] When the size of the prediction unit is the same as the size of the transform unit during intra-prediction, intra-prediction can be performed based on the pixels to the left, top left, and top of the prediction unit. However, when the size of the prediction unit differs from the size of the transform unit, intra-prediction can be performed using reference pixels determined by the transform unit. Furthermore, intra-prediction using an N×N partition can be used only for the smallest coding unit.

[0053] In intra-frame prediction methods, prediction blocks can be generated by applying an adaptive intra-frame smoothing (AIS) filter to reference pixels based on the prediction mode. Different types of AIS filters can be applied to the reference pixels. In intra-frame prediction methods, the intra-frame prediction mode of the current PU can be predicted based on the intra-frame prediction modes of PUs adjacent to the current PU. When predicting the prediction mode of the current PU using mode information predicted from neighboring PUs, if the current PU and its neighboring PUs have the same intra-frame prediction mode, predetermined tagging information can be used to send information indicating that the current PU and its neighboring PUs have the same prediction mode. If the current PU and its neighboring PUs have different prediction modes, entropy coding can be used to encode information about the prediction mode of the current block.

[0054] Residual blocks including residual information can be generated. The residual information is the difference between the prediction unit generated by prediction units 120 and 125 and the original block of the prediction unit. The generated residual blocks can be input to the transformation unit 130.

[0055] Transform unit 130 can transform a residual block, which includes residual information between the prediction units generated by prediction units 120 and 125 and the original block, using a transform type such as DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), or KLT. Whether to apply DCT, DST, or KLT to transform the residual block can be determined based on the intra-frame prediction mode information of the prediction unit used to generate the residual block.

[0056] The quantization unit 135 can quantize the values ​​transformed to the frequency domain by the transformation unit 130. The quantization coefficients can be changed depending on the importance or blocks of the image. The values ​​output from the quantization unit 135 can be provided to the inverse quantization unit 140 and the rearrangement unit 160.

[0057] The rearrangement unit 160 can rearrange the coefficient values ​​of the quantization residual.

[0058] The rearrangement unit 160 can transform the coefficients of a two-dimensional (2D) block into coefficients of a one-dimensional (1D) vector using a coefficient scanning method. For example, the rearrangement unit 160 can use a Z-shaped scan method to scan the DC coefficients into coefficients in the high-frequency region and transform them into a one-dimensional vector form. Depending on the size of the transform unit and the intra-frame prediction mode, a vertical scan that scans the two-dimensional block shape coefficients in the column direction or a horizontal scan that scans the two-dimensional block shape coefficients in the row direction can be used instead of a Z-shaped scan. That is, based on the size of the transform unit and the intra-frame prediction mode, it can be determined which of the following scan methods—Z-shaped scan, vertical scan, or horizontal scan—to use.

[0059] Entropy coding unit 165 can perform entropy coding based on the value obtained by rearrangement unit 160. Various coding methods can be used for entropy coding, such as exponential Golomb coding, context-adaptive variable-length coding (CAVLC), or context-adaptive binary arithmetic coding (CABAC).

[0060] Entropy coding unit 165 can encode various information from rearrangement unit 160 and prediction units 120 and 125, such as residual coefficient information and block type information of coding unit, prediction mode information, partitioning unit information, prediction unit information, transmission unit information, motion vector information, reference frame information, block interpolation information and filtering information.

[0061] Entropy coding unit 165 can entropy code the coefficients of the CU input from rearrangement unit 160.

[0062] Inverse quantization unit 140 and inverse transform unit 145 dequantize the values ​​quantized by quantization unit 135 and perform inverse transform on the values ​​transformed by transform unit 130. Reconstructed blocks can be generated by adding residual values ​​to the prediction PU. Residual values ​​can be generated by inverse quantization unit 140 and inverse transform unit 145. The prediction PU can be predicted by the motion vector prediction unit, motion compensation unit, and intra-frame prediction unit of prediction units 120 and 125.

[0063] The filter unit 150 may include at least one of a deblocking filter, an offset unit, and an adaptive loop filter (ALF).

[0064] Deblocking filters remove block distortion caused by boundaries between blocks in a reconstructed image. Whether to apply a deblocking filter to a current block can be determined based on the pixels included in several rows or columns of the block. When applying a deblocking filter to a block, a strong or weak filter can be applied depending on the desired deblocking intensity. Horizontal and vertical filtering can be performed in parallel when applying a deblocking filter.

[0065] The offset unit can apply an offset relative to the original image to the deblocked filtered image on a pixel-by-pixel basis. The regions to which the offset can be applied can be determined after dividing the image's pixels into a predetermined number of regions. The offset can be applied to the determined regions by considering edge information about each pixel or by employing methods for applying offsets to the determined regions.

[0066] ALF can perform filtering based on a comparison between the filtered reconstructed image and the original image. The pixels in the image can be divided into predetermined groups, the filter to be applied to each group can be determined, and differential filtering can be performed for each group. Information about whether to apply ALF can be transmitted by each coding unit (CU), and the shape and filter coefficients of the ALF to be applied to each block can vary. Furthermore, ALFs with the same form (fixed form) can be applied to blocks regardless of their characteristics.

[0067] The memory 155 can store the reconstructed blocks or reconstructed images output from the filter unit 150, and when performing inter-frame prediction, the stored reconstructed blocks or reconstructed images can be provided to the prediction units 120 and 125.

[0068] Figure 2 This is a block diagram illustrating an image decoding apparatus according to an exemplary embodiment of the present invention.

[0069] Reference Figure 2 The image decoding device 200 may include an entropy decoding unit 210, a rearrangement unit 215, a dequantization unit 220, an inverse transform unit 225, prediction units 230 and 235, a filter unit 240, and a memory 245.

[0070] When an image bitstream is input from an image encoding device, the input bitstream can be decoded in the reverse process of the image encoding device.

[0071] The entropy decoding unit 210 can perform entropy decoding in a process that is the reverse of the entropy encoding process performed in the entropy encoding unit of the image encoding apparatus. For example, various methods such as exponential Golomb coding, CAVLC, or CABAC can be applied corresponding to the methods performed by the image encoding apparatus.

[0072] The entropy decoding unit 210 can decode information associated with intra-frame prediction and inter-frame prediction performed by the coding device.

[0073] The rearrangement unit 215 can perform rearrangement of the bitstream entropy decoded by the entropy decoding unit 210 based on the rearrangement method of the encoding device. The rearrangement unit 215 can reconstruct the coefficients of a 1D vector into the coefficients of a 2D block and rearrange them. Information about the coefficient scan performed by the encoding device can be provided to the rearrangement unit 215, and the rearrangement unit 215 can perform rearrangement using a method of inverse scanning of the coefficients based on the scan order performed by the encoding device.

[0074] Dequantization unit 220 can perform dequantization based on quantization parameters provided by the encoding device and the block rearrangement coefficients.

[0075] The inverse transform unit 225 can perform inverse transforms, namely inverse DCT, inverse DST, and inverse KLT, relative to the transforms (i.e., DCT, DST, and KLT) performed by the transform unit on the quantization result performed by the image coding apparatus. The inverse transform can be performed based on the transmission unit determined by the image coding apparatus. The inverse transform unit 225 of the image decoding apparatus can selectively perform transform techniques (e.g., DCT, DST, KLT) based on multiple pieces of information such as the prediction method, the size of the current block, and the prediction direction.

[0076] Prediction units 230 and 235 can generate prediction blocks based on provided information for generating prediction blocks and information about previously decoded blocks or images. The information for generating prediction blocks can be provided by entropy decoding unit 210. The information about previously decoded blocks or images can be provided by memory 245.

[0077] As described above, when intra-frame prediction is performed in the same manner as the operation of the image coding apparatus, if the size of the prediction unit is the same as the size of the transform unit, intra-frame prediction of the prediction unit can be performed based on the pixels to the left, the upper left, and the top of the prediction unit. However, when intra-frame prediction is performed, if the size of the prediction unit and the size of the transform unit are different from each other, intra-frame prediction of the prediction unit can be performed using reference pixels determined based on the transform unit. Furthermore, intra-frame prediction using N×N partitioning can be used only for the smallest coding unit.

[0078] Prediction units 230 and 235 may include a prediction unit determination unit, an inter-frame prediction unit, and an intra-frame prediction unit. The prediction unit determination unit can receive various information from the entropy decoding unit 210, such as prediction unit information, prediction mode information of the intra-frame prediction method, and motion prediction-related information of the inter-frame prediction method, and can determine the prediction unit of the current coding unit. The prediction unit determination unit can determine whether to perform inter-frame prediction or intra-frame prediction on the prediction unit. The inter-frame prediction unit 230 can perform inter-frame prediction on the current prediction unit based on information about at least one of the previous and subsequent images that include the current image of the current prediction unit. In this document, the inter-frame prediction unit 230 can use the information required for inter-frame prediction of the current prediction unit provided by the image coding apparatus. Inter-frame prediction can be performed based on information about a pre-reconstructed partial region in the current image that includes the current prediction unit.

[0079] To perform inter-frame prediction, the motion prediction method of the prediction units included in the coding unit can be determined on a unit-by-unit basis: skip mode, merge mode, AMVP mode, or intra-block copy mode.

[0080] Intra-prediction unit 235 can generate prediction blocks based on pixel information in the current image. When the prediction unit is one that performs intra-prediction, intra-prediction can be performed based on intra-prediction mode information about the prediction unit provided by the image coding apparatus. Intra-prediction unit 235 may include an AIS (Adaptive Intra-Smoothing) filter, a reference pixel interpolation unit, and a DC filter. The AIS filter performs filtering on the reference pixels of the current block. The AIS filter can determine whether to apply the filter based on the prediction mode of the current prediction unit. AIS filtering can be performed on the reference pixels of the current block using the information about the AIS filter provided by the image coding apparatus and the prediction mode of the prediction unit. When the prediction mode of the current block is a mode in which AIS filtering is not performed, the AIS filter may not be applied.

[0081] When the prediction mode of the prediction unit indicates a prediction mode that performs intra-frame prediction based on pixel values ​​obtained by interpolating reference pixels, the reference pixel interpolation unit can generate reference pixels by interpolating the reference pixels in fractional pixels less than integer pixels (i.e., full pixels). When the prediction mode of the current prediction unit indicates a prediction mode that generates the prediction block without interpolating reference pixels, interpolation of reference pixels is not required. When the prediction mode of the current block is DC mode, the DC filter can generate the prediction block by filtering.

[0082] The reconstructed blocks or reconstructed images can be provided to the filter unit 240. The filter unit 240 includes a deblocking filter, an offset unit, and an ALF.

[0083] The image encoding device can provide information about whether a deblocking filter is applied to a corresponding block or image, and about which filter (strong or weak) is applied when using the deblocking filter. Information about the deblocking filter from the image encoding device can be provided to the deblocking filter of the image decoding device, and the deblocking filter can perform deblocking filtering on the corresponding block.

[0084] Offset units can apply offsets to reconstructed images based on information about the type and value of offsets applied to the image during encoding.

[0085] ALF can be applied to the coding unit based on information provided by the coding device regarding whether to apply ALF and ALF coefficient information. ALF information can be included in a specific parameter set and is provided in that specific parameter set.

[0086] The memory 245 can store reconstructed images or reconstructed blocks used as reference images or reference blocks, and can provide the reconstructed images to the output unit.

[0087] As described above, in embodiments of the present invention, for ease of description, the encoding unit is used as the encoding unit, but the encoding unit may be a unit that performs not only encoding but also decoding.

[0088] Figure 3 An intra-frame prediction method is shown as an embodiment of applying the present invention.

[0089] Reference Figure 3 The intra-prediction mode of the current block can be determined (S300).

[0090] The current block is a concept that includes a luma block and a chroma block, and an intra-prediction mode can be determined for each of the luma and chroma blocks. In the following text, it is assumed that the predefined intra-prediction modes in the decoding device include non-directional modes (planar mode, DC mode) and 65 directional modes.

[0091] 1. Derivation of the intra-frame prediction mode for luma blocks

[0092] The intra-prediction mode of a luma block can be derived based on the MPM list and MPM index. The MPM list includes multiple MPMs, and the MPM can be determined based on the intra-prediction modes of the current block's neighboring blocks. The number of MPMs is r, and r can be an integer of 3, 4, 5, 6, or larger.

[0093] For example, the MPM list may include at least one of the following: intra-prediction mode (mode A), mode An, mode A+n, or default mode for adjacent blocks. The value of n can be an integer of 1, 2, 3, 4, or greater. Adjacent blocks may refer to the blocks adjacent to the left and / or top of the current block. The default mode may be at least one of the following: planar mode, DC mode, or predetermined orientation mode. Predetermined orientation modes may include at least one of the following: horizontal mode (mode V), vertical mode (mode H), mode Vk, mode V+k, mode Hk, or mode H+k.

[0094] The MPM index can specify an MPM in the MPM list that has the same intra-prediction mode as the luma block. That is, the MPM specified by the MPM index can be set as the intra-prediction mode of the luma block.

[0095] Simultaneously, an MPM list can be generated based on predetermined higher-level coded blocks, and lower-level coded blocks belonging to higher-level coded blocks can share the MPM list. Here, the lower-level coded blocks can correspond to the aforementioned current block or luma block. In this case, the MPM index can be signaled on a per-higher-level coded block basis. In this case, the same intra-prediction mode can be used to predict lower-level coded blocks belonging to higher-level coded blocks. Alternatively, the MPM index can be signaled for each lower-level coded block. In this case, lower-level coded blocks share an MPM list, but can use different intra-prediction modes for prediction.

[0096] Higher-level coded blocks can be defined as blocks of nodes that share the MPM list, and lower-level coded blocks can be defined as blocks of leaf nodes that are no longer divided into smaller coded blocks.

[0097] (Implementation Method 1) MPM list sharing can only be performed when the higher-order coded block is greater than or equal to a predetermined first threshold size. Here, the first threshold size can be defined as the minimum size of the blocks that enable the sharing of the MPM list. Conversely, MPM list sharing can only be performed when the higher-order coded block is less than or equal to the predetermined first threshold size. Here, the threshold size can be defined as the maximum size of the blocks that enable the sharing of the MPM list. Here, the first threshold size can be represented by width (W), height (H), W×H, W*H, etc., and W and H can be integers of 8, 16, 32, or larger.

[0098] (Implementation Method 2) MPM list sharing can only be performed if at least one of the lower coded blocks belonging to a higher coded block is less than or equal to a predetermined second threshold size. Here, the second threshold size can be represented by width (W), height (H), W×H, W*H, etc., and W and H can be integers of 4, 8, 16, 32, or larger. However, the second threshold size can be set to be less than or equal to the first threshold size.

[0099] (Implementation Method 3) The type of higher coding block partitioning can be considered to adaptively implement MPM list sharing. For example, if the higher coding block is partitioned based on a quadtree (QT), MPM list sharing is allowed; otherwise, MPM list sharing may be allowed. Alternatively, when the higher coding block is partitioned based on a binary tree (BT), MPM list sharing may be allowed, and when the higher coding block is partitioned based on a ternary tree (TT), MPM list sharing may be disallowed.

[0100] The sharing of the MPM list can be selectively used based on any one of the above embodiments 1 to 3, or the sharing of the MPM list can be selectively used based on a combination of at least two of the embodiments 1 to 3.

[0101] Additionally, the encoding device can use signals to notify information regarding whether to share the MPM list, the size and shape of the shared nodes in the MPM list, and the partitioning depth. Sharing of the MPM list can be performed based on the information notified by the signals.

[0102] 2. Derivation of intra-frame prediction mode for chroma blocks

[0103] The intra-prediction mode of the chroma block can be derived based on information (intra_chroma_pred_mode) provided by the coding device via a signal, as shown in Table 1 or Table 2 below.

[0104] [Table 1]

[0105]

[0106] According to Table 1, the intra-prediction mode of the chroma block can be determined based on the information notified by the signal and the intra-prediction mode of the luma block. In Table 1, mode 66 represents the diagonal mode in the upper right direction, mode 50 represents the vertical mode, mode 18 represents the horizontal mode, and mode 1 represents the DC mode. For example, when the value of the notified information intra_chroma_pred_mode is 4, the intra-prediction mode of the chroma block can be set to the same as the intra-prediction mode of the luma block.

[0107] [Table 2]

[0108]

[0109]

[0110] Table 2 can be applied when inter-component reference-based prediction is allowed for chroma blocks. Table 2 supports using modes 81, 82, and 83 as intra-prediction modes for chroma blocks, which correspond to inter-component reference-based prediction modes.

[0111] Reference Figure 3 Based on the intra-prediction mode derived in S300, intra-prediction can be performed on the current block (S310).

[0112] Intra-frame prediction can be performed on a sub-block basis within the current block. To do this, the current block can be divided into multiple sub-blocks. (Refer to...) Figure 4 Describe the division method in detail.

[0113] Simultaneously, when the derived intra-frame prediction mode corresponds to a prediction mode based on inter-component reference, chrominance blocks can be predicted based on the pre-reconstructed luma blocks, which will refer to... Figure 5 Provide a detailed description.

[0114] Figure 4 An intra-frame prediction method based on sub-blocks is shown as an embodiment of the present invention.

[0115] As described above, the current block can be divided into multiple sub-blocks. In this case, the current block can correspond to a leaf node. A leaf node can represent a coded block that is no longer divided into smaller coded blocks.

[0116] The partitioning can be performed based on the size of the current block (Implementation Method 1).

[0117] Reference Figure 4 When the size of the current block 400 is less than a predetermined threshold size, the current block can be divided into two sub-blocks vertically or horizontally. Conversely, when the size of the current block 410 is greater than or equal to the threshold size, the current block can be divided into four sub-blocks vertically or horizontally.

[0118] The threshold size can be notified by a signal from the encoding device, or it can be a fixed value predefined in the decoding device. For example, the threshold size is expressed as N×M, and N and M can be 4, 8, 16, or larger. N and M can be the same or different from each other.

[0119] Alternatively, if the size of the current block is less than a predetermined threshold, the current block may not be divided (splittered); otherwise, the current block may be divided into two or four sub-blocks.

[0120] The partitioning can be performed based on the shape of the current block (Implementation Method 2).

[0121] If the current block is a square, it can be divided into four sub-blocks; otherwise, it can be divided into two sub-blocks. Conversely, if the current block is a square, it can be divided into two sub-blocks; otherwise, it can be divided into four sub-blocks.

[0122] Alternatively, if the current block is a square, it can be divided into two or four sub-blocks; otherwise, it can remain undivided. Conversely, if the current block is a square, it can remain undivided; otherwise, it can be divided into two or four sub-blocks.

[0123] The division can be made by selectively applying either Embodiment 1 or Embodiment 2, or by a combination of Embodiment 1 and Embodiment 2.

[0124] 2. Divide into two sub-blocks in the vertical or horizontal direction, and 4. Divide into four sub-blocks in the vertical or horizontal direction, or into four sub-blocks in both the vertical and horizontal directions.

[0125] In the above embodiments, two or four divisions are described, but the present invention is not limited thereto, and the current block can be divided into three sub-blocks in the vertical or horizontal direction. In this case, the width or height ratio can be (1∶1∶2), (1∶2∶1), or (2∶1∶1).

[0126] Information regarding whether a block should be divided into sub-blocks, whether it should be divided into four sub-blocks, the direction of the division, and the number of divisions can be communicated by the encoding device via signals, or can be variably determined by the decoding device based on predetermined encoding parameters. Here, encoding parameters represent block size / shape, division type (4-block, 2-block, 3-block), intra-prediction mode, the range / position of adjacent pixels used for intra-prediction, and component types (e.g., luma and chroma), maximum / minimum size of the transform block, transform type (e.g., transform skip, DCT2, DST7, DCT8), etc.

[0127] Figure 5 An inter-component reference-based prediction method is illustrated in an embodiment applying the present disclosure.

[0128] Based on the component type, the current block can be divided into a luma block and a chroma block. The chroma block can be predicted using the pixels of the reconstructed luma block. This is called inter-component referencing. In this implementation, it is assumed that the size of the chroma block is (nTbW × nTbH), and the size of the luma block corresponding to the chroma block is (2*nTbW × 2*nTbH).

[0129] Reference Figure 5 You can specify the luminance region used for inter-component reference of the chroma block (S500).

[0130] A luminance region may include at least one of a luminance block or a neighboring region adjacent to a luminance block. Here, a luminance block may be defined as a region including pixels pY[x][y] (x = 0..nTbW*2-1, y = 0..nTbH*2-1). Pixels may represent reconstructed values ​​before the application of a loop filter.

[0131] The adjacent region can include at least one of the left adjacent region, the top adjacent region, or the top-left adjacent region. The left adjacent region can be set to include pixels pY[x][y] (x = -1..-3, y = 0..2*numSampL-1). This setting can only be performed if the value of numSampL is greater than 0. The top adjacent region can be set to include pixels pY[x][y] (x = 0..2*numSampT-1, y = -1..-3). This setting can only be performed if the value of numSampT is greater than 0. The top-left adjacent region can be set to include pixels pY[x][y] (x = -1, y = -1, -2). This setting can only be performed if the top-left region of the luminance block is available.

[0132] The above numSampL and numSampT can be determined based on the intra-prediction mode of the current block.

[0133] For example, when the intra-prediction mode of the current block is INTRA_LT_CCLM, numSampL and numSampT can be derived based on Equation 1. Here, INTRA_LT_CCLM can represent the mode of performing inter-component reference based on the left and upper neighbor regions of the current block.

[0134] [Equation 1]

[0135] numSampT=availT? nTbW:0

[0136] numSampL = availL? nTbH:0

[0137] According to Equation 1, when the upper adjacent region of the current block is available, numSampT is calculated as nTbW. Otherwise, numSampT can be calculated as 0. Similarly, when the left adjacent region of the current block is available, numSampL is calculated as nTbH. Otherwise, numSampT can be calculated as 0.

[0138] Conversely, when the intra-prediction mode of the current block is not INTRA_LT_CCLM, numSampL and numSampT can be derived based on Equation 2 below.

[0139] [Equation 2]

[0140] numSampT=(availT&&predModeIntra==INTRA_T_CCLM)? (nTbW+numTopRight):0

[0141] numSampL=(availL&&predModeIntra==INTRA_L_CCLM)? (nTbH+numLeftBelow):0

[0142] In Equation 2, INTRA_T_CCLM can refer to the mode of performing inter-component reference based on the upper adjacent region of the current block. INTRA_L_CCLM can represent the mode of performing inter-component reference based on the left adjacent region of the current block. numTopRight can represent the number of all or some pixels belonging to the upper right adjacent region of the chroma block. Some pixels can refer to the available pixels in the lowest pixel row of the corresponding region. In availability determination, the availability of pixels can be determined sequentially from left to right. This process can be performed until an unavailable pixel is found. numLeftBelow can represent the number of all or some pixels belonging to the lower left adjacent region of the chroma block. Some pixels can refer to the available pixels in the rightmost pixel row (column) of the corresponding region. In availability determination, the availability of pixels can be determined sequentially from top to bottom. This process can be performed until an unavailable pixel is found.

[0143] Reference Figure 5 It is possible to perform downsampling on the brightness area specified in S500 (S510).

[0144] Downsampling can include at least one of the following: 1. downsampling of a luma block, 2. downsampling of the left adjacent region of a luma block, or 3. downsampling of the upper adjacent region of a luma block. This will be described in detail below.

[0145] 1. Downsampling of luminance blocks

[0146] (Implementation Method 1)

[0147] The pixel pDsY[x][y] of the downsampled luminance block (x = 0..nTbW-1, y = 0..nTbH-1) can be derived based on the corresponding pixel pY[2*x][2*y] of the luminance block and its neighboring pixels. Neighboring pixels can represent at least one of the left, right, top, or bottom neighbor pixels of the corresponding pixel. For example, pixel pDsY[x][y] can be derived based on Equation 3 below.

[0148] [Equation 3]

[0149] pDsY[x][y]=(pY[2*x][2*y-1]+pY[2*x-1][2*y]+4*pY[2*x][2*y]+pY[2*x+1][2*y]+pY[2*x][2*y+1]+4)>>3

[0150] However, there may be cases where the left / top adjacent regions of the current block are unavailable. When the left adjacent region of the current block is unavailable, the pixel pDsY[0][y] (y = 1..nTbH-1) of the downsampled luminance block can be derived based on the corresponding pixel pY[0][2*y] of the luminance block and the adjacent pixels of the corresponding pixel. Adjacent pixels can represent at least one of the upper or lower adjacent pixels of the corresponding pixel. For example, the pixel pDsY[0][y] (y = 1..nTbH-1) can be derived based on Equation 4 below.

[0151] [Equation 4]

[0152] pDsY[0][y]=(pY[0][2*y-1]+2*pY[0][2*y]+pY[0][2*y+1]+2)>>2

[0153] When the upper adjacent region of the current block is unavailable, the pixel pDsY[x][0] (x = 1..nTbW-1) of the downsampled luminance block can be derived based on the corresponding pixel pY[2*x][0] of the luminance block and the adjacent pixels of the corresponding pixel. The adjacent pixels can represent at least one of the left or right adjacent pixels of the corresponding pixel. For example, the pixel pDsY[x][0] (x = 1..nTbW-1) can be derived based on Equation 5 below.

[0154] [Equation 5]

[0155] pDsY[x][0]=(pY[2*x-1][0]+2*pY[2*x][0]+pY[2*x+1][0]+2)>>2

[0156] The pixel pDsY[0][0] of the downsampled luminance block can be derived based on the corresponding pixel pY[0][0] of the luminance block and / or the neighboring pixels of the corresponding pixel. The position of the neighboring pixels may vary depending on whether the left / top neighboring region of the current block is available.

[0157] For example, when the left adjacent region is available but the upper adjacent region is not available, pDsY[0][0] can be obtained based on Equation 6 below.

[0158] [Equation 6]

[0159] pDsY[0][0]=(pY[-1][0]+2*pY[0][0]+pY[1][0]+2)>>2

[0160] Conversely, when the left adjacent region is unavailable but the upper adjacent region is available, pDsY[0][0] can be derived based on Equation 7 below.

[0161] [Equation 7]

[0162] pDsY[0][0]=(pY[0][-1]+2*pY[0][0]+pY[0][1]+2)>>2

[0163] In another example, when neither the left nor the top adjacent region is available, pDsY[0][0] can be set to the corresponding pixel pY[0][0] of the luminance block.

[0164] (Implementation Method 2)

[0165] The pixel pDsY[x][y] of the downsampled luminance block (x = 0..nTbW-1, y = 0..nTbH-1) can be derived based on the corresponding pixel pY[2*x][2*y] of the luminance block and its neighboring pixels. Neighboring pixels can represent at least one of the following: the lower neighbor, left neighbor, right neighbor, lower-left neighbor, or lower-right neighbor of the corresponding pixel. For example, pixel pDsY[x][y] can be derived based on Equation 8 below.

[0166] [Equation 8]

[0167] pDsY[x][y]=(pY[2*x-1][2*y]+pY[2*x-1][2*y+1]+2*pY[2*x][2*y]+2*pY[2*x][2*y+1]+pY[2*x+1][2*y]+pY[2*x+1][2*y+1]+4)>>3

[0168] However, when the left adjacent region of the current block is unavailable, the pixel pDsY[0][y] (y = 0..nTbH-1) of the downsampled luminance block can be derived based on the corresponding pixel pY[0][2*y] of the luminance block and its next adjacent pixels. For example, the pixel pDsY[0][y] (y = 0..nTbH-1) can be derived based on Equation 9 below.

[0169] [Equation 9]

[0170] pDsY[0][y]=(pY[0][2*y]+pY[0][2*y+1]+1)>>1

[0171] Luminance block downsampling can be performed based on one of Embodiments 1 and 2 as described above. Here, one of Embodiments 1 and 2 can be selected based on a predetermined marker. The marker can indicate whether the downsampled luminance pixel has the same position as the original luminance pixel. For example, when the marker is a first value, the downsampled luminance pixel has the same position as the original luminance pixel. Conversely, when the marker is a second value, the downsampled luminance pixel has the same position as the original luminance pixel in the horizontal direction, but is offset by half a pixel in the vertical direction.

[0172] 2. Downsampling of the left adjacent region of the brightness block

[0173] (Implementation Method 1)

[0174] The pixel pLeftDsY[y] (y = 0..numSampL-1) of the downsampled left adjacent region can be derived based on the corresponding pixel pY[-2][2*y] of the left adjacent region and the neighboring pixels of the corresponding pixel. The neighboring pixels can represent at least one of the left neighboring pixel, right neighboring pixel, top neighboring pixel, or bottom neighboring pixel of the corresponding pixel. For example, the pixel pLeftDsY[y] can be derived based on the following equation 10.

[0175] [Equation 10]

[0176] pLeftDsY[y]=(pY[-2][2*y-1]+pY[-3][2*y]+4*pY[-2][2*y]+pY[-1][2*y]+pY[-2][2*y+1]+4)>>3

[0177] However, when the upper left adjacent region of the current block is unavailable, the pixel pLeftDsY[0] of the downsampled left adjacent region can be derived based on the corresponding pixel pY[-2][0] of the left adjacent region and the adjacent pixels of the corresponding pixel. The adjacent pixel can represent at least one of the left or right adjacent pixels of the corresponding pixel. For example, the pixel pLeftDsY[0] can be derived based on Equation 11 below.

[0178] [Equation 11]

[0179] pLeftDsY[0]=(pY[-3][0]+2*pY[-2][0]+pY[-1][0]+2)>>2

[0180] (Implementation Method 2)

[0181] The pixel pLeftDsY[y] (y = 0..numSampL-1) of the downsampled left adjacent region can be derived based on the corresponding pixel pY[-2][2*y] of the left adjacent region and the neighboring pixels around the corresponding pixel. The neighboring pixels can represent at least one of the following: the lower neighbor pixel, the left neighbor pixel, the right neighbor pixel, the lower left neighbor pixel, or the lower right neighbor pixel. For example, the pixel pLeftDsY[y] can be derived based on the following Equation 12.

[0182] [Equation 12]

[0183] pLeftDsY[y]=(pY[-1][2*y]+pY[-1][2*y+1]+2*pY[-2][2*y]+2*pY[-2][2*y+1]+pY[-3][2*y]+pY[-3][2*y+1]+4)>>3

[0184] Similarly, downsampling of the left adjacent region can be performed based on one of Embodiments 1 and 2 as described above. Here, one of Embodiments 1 and 2 can be selected based on a predetermined marker. The marker indicates whether the downsampled luminance pixel has the same position as the original luminance pixel. This is the same as described above.

[0185] Downsampling of the left neighbor region can only be performed when the numSampL value is greater than 0. When the numSampL value is greater than 0, it indicates that the left neighbor region of the current block is available and the intra-prediction mode of the current block is INTRA_LT_CCLM or INTRA_L_CCLM.

[0186] 3. Downsampling of the upper adjacent region of the brightness block

[0187] (Implementation Method 1)

[0188] We can consider whether the upper adjacent region belongs to a different CTU than the one to which the luminance block belongs, in order to obtain the pixel pTopDsY[x] (x=0..numSampT-1) of the downsampled upper adjacent region.

[0189] When the upper adjacent region belongs to the same CTU as the luma block, the pixel pTopDsY[x] of the downsampled upper adjacent region can be derived based on the corresponding pixel pY[2*x][-2] of the upper adjacent region and the neighboring pixels of the corresponding pixel. The neighboring pixels can represent at least one of the left neighboring pixel, right neighboring pixel, upper neighboring pixel, or lower neighboring pixel of the corresponding pixel. For example, the pixel pTopDsY[x] can be derived based on Equation 13 below.

[0190] [Equation 13]

[0191] pTopDsY[x]=(pY[2*x][-3]+pY[2*x-1][-2]+4*pY[2*x][-2]+pY[2*x+1][-2]+pY[2*x][-1]+4)>>3

[0192] Conversely, when the upper adjacent region belongs to a CTU different from the luma block, the pixel pTopDsY[x] of the downsampled upper adjacent region can be derived based on the corresponding pixel pY[2*x][-1] of the upper adjacent region and the neighboring pixels of the corresponding pixel. The neighboring pixels can represent at least one of the left or right neighboring pixels of the corresponding pixel. For example, the pixel pTopDsY[x] can be derived based on Equation 14 below.

[0193] [Equation 14]

[0194] pTopDsY[x]=(pY[2*x-1][-1]+2*pY[2*x][-1]+pY[2*x+1][-1]+2)>>2

[0195] Alternatively, when the upper left adjacent region of the current block is unavailable, the adjacent pixel can represent at least one of the upper or lower adjacent pixels of the corresponding pixel. For example, pixel pTopDsY[0] can be derived based on Equation 15 below.

[0196] [Equation 15]

[0197] pTopDsY[0]=(pY[0][-3]+2*pY[0][-2]+pY[0][-1]+2)>>2

[0198] Alternatively, when the upper left adjacent region of the current block is unavailable and the upper adjacent region belongs to a CTU different from the luminance block, pixel pTopDsY[0] can be set to pixel pY[0][-1] of the upper adjacent region.

[0199] (Implementation Method 2)

[0200] We can consider whether the upper adjacent region belongs to a CTU that is different from the luma block to obtain the pixel pTopDsY[x] (x=0..numSampT-1) of the downsampled upper adjacent region.

[0201] When the upper adjacent region belongs to the same CTU as the luma block, the pixel pTopDsY[x] of the downsampled upper adjacent region can be derived based on the corresponding pixel pY[2*x][-2] of the upper adjacent region and the neighboring pixels of the corresponding pixel. The neighboring pixels can represent at least one of the lower neighboring pixel, left neighboring pixel, right neighboring pixel, lower left neighboring pixel, or lower right neighboring pixel of the corresponding pixel. For example, the pixel pTopDsY[x] can be derived based on Equation 16 below.

[0202] [Equation 16]

[0203] pTopDsY[x]=(pY[2*x-1][-2]+pY[2*x-1][-1]+2*pY[2*x][-2]+2*pY[2*x][-1]+pY[2*x+1][-2]+pY[2*x+1][-1]+4)>>3

[0204] Conversely, when the upper adjacent region belongs to a CTU different from the luma block, the pixel pTopDsY[x] of the downsampled upper adjacent region can be derived based on the corresponding pixel pY[2*x][-1] of the upper adjacent region and the neighboring pixels of the corresponding pixel. The neighboring pixels can represent at least one of the left or right neighboring pixels of the corresponding pixel. For example, the pixel pTopDsY[x] can be derived based on Equation 17 below.

[0205] [Equation 17]

[0206] pTopDsY[x]=(pY[2*x-1][-1]+2*pY[2*x][-1]+pY[2*x+1][-1]+2)>>2

[0207] Alternatively, when the upper left adjacent region of the current block is unavailable, the adjacent pixel can represent at least one of the upper or lower adjacent pixels of the corresponding pixel. For example, the pixel pTopDsY[0] can be derived based on Equation 18 below.

[0208] [Equation 18]

[0209] pTopDsY[0]=(pY[0][-2]+pY[0][-1]+1)>>1

[0210] Alternatively, when the upper left adjacent region of the current block is unavailable and the upper adjacent region belongs to a CTU different from the luminance block, pixel pTopDsY[0] can be set to pixel pY[0][-1] of the upper adjacent region.

[0211] Similarly, downsampling of the upper adjacent region can be performed based on one of Embodiments 1 and 2 as described above. Here, one of Embodiments 1 and 2 can be selected based on a predetermined marker. The marker indicates whether the downsampled luminance pixel has the same position as the original luminance pixel. This is the same as described above.

[0212] In one example, downsampling of the upper neighbor region can only be performed if the numSampT value is greater than 0. When the numSampT value is greater than 0, this indicates that the upper neighbor region of the current block is available and the intra-prediction mode of the current block is INTRA_LT_CCLM or INTRA_T_CCLM.

[0213] The parameters for inter-component reference of the chromaticity block can be obtained (S520).

[0214] The parameters can be determined by considering the intra-frame prediction mode of the current block. The parameters can be derived using at least one of the pixels from the top / left adjacent region of the chroma block or the pixels from the luma region. Here, the luma region can include the luma block or at least one of the top / left adjacent regions of the luma block. The luma region can represent the region where the aforementioned downsampling has been applied.

[0215] Chroma blocks can be predicted based on downsampled luminance blocks and parameters (S530).

[0216] The number of parameters applied to the luminance block can be k. Here, k can be an integer of 1, 2, 3, or greater. At least one of the parameters can be a scaling factor applied to the pixel values ​​of the luminance block. The parameters may also include offset parameters applied to the pixel values ​​of the luminance block or scaling the pixel values.

[0217] The method according to the invention can be implemented in the form of program instructions, which can be executed by various computer devices and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc., individually or in combination. The program instructions recorded on the computer-readable medium may be specifically designed and configured for this invention, or may be known and usable by those skilled in the art of computer software.

[0218] Examples of computer-readable media may include hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter, as well as machine language code such as that generated by a compiler. The aforementioned hardware devices may be configured to operate as at least one software module to perform the operations of the present invention, and vice versa.

[0219] Furthermore, the above-described methods or apparatus can be implemented by combining all or part of their configurations or functions, or they can be implemented individually.

[0220] Although the invention has been described above with reference to preferred embodiments, those skilled in the art will make various modifications and changes to the invention without departing from the spirit and scope of the invention as described in the appended claims.

[0221] Industrial applicability

[0222] This invention can be used to encode / decode images.

Claims

1. A method for decoding an image, comprising: Determine the intra-prediction mode for the current block; The current block is divided into multiple sub-blocks based on its size; wherein, when the size of the current block is less than a predetermined threshold, the current block is vertically divided into two sub-blocks; or the current block is horizontally divided into two sub-blocks; when the size of the current block is greater than or equal to the predetermined threshold, the current block is vertically divided into four sub-blocks; or the current block is horizontally divided into four sub-blocks; and, Intra-prediction is performed on the current block based on the intra-prediction mode. Specifically, the intra-prediction mode of the current block is determined for each of the luma and chroma blocks; Specifically, the intra-frame prediction mode of the lumen block is derived based on the MPM list and MPM index, and The intra-frame prediction includes: Specify the luminance region used for inter-component reference of the chroma block; Downsampling is performed on the brightness region; The parameters for the inter-component reference of the chromaticity block are derived; and The chromaticity block is predicted based on the downsampled luminance region and the parameters.

2. The method according to claim 1, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: The brightness block is downsampled based on the following formula: pDsY[x][y]=(pY[2×x][2×y-1]+pY[2×x-1][2×y]+4×pY[2×x][2×y]+pY[2×x+1][2×y]+pY[2×x][2×y+1]+4)>>3.

3. The method according to claim 1, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: The brightness block is downsampled based on the following formula: pDsY[x][y]=(pY[2×x-1][2×y]+pY[2×x-1][2×y+1]+2×pY[2×x][2×y]+2×pY[2×x][2×y+1]+pY[2×x+1][2×y]+pY[2×x+1][2×y+1]+4)>>3.

4. The method according to claim 1, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: Downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pLeftDsY[y]=(pY[-2][2×y-1]+pY[-3][2×y]+4×pY[-2][2×y]+pY[-1][2×y]+pY[-2][2×y+1]+4)>>3.

5. The method according to claim 1, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: Downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pLeftDsY[0]=(pY[-3][0]+2×pY[-2][0]+pY[-1][0]+2)>>2.

6. The method according to claim 1, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: Downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pLeftDsY[y]=(pY[-1][2×y]+pY[-1][2×y+1]+2×pY[-2][2×y]+2×pY[-2][2×y+1]+pY[-3][2×y]+pY[-3][2×y+1]+4)>>3.

7. The method according to claim 1, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: When the brightness region and the brightness block belong to the same CTU, downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pTopDsY[x]=(pY[2×x][-3]+pY[2×x-1][-2]+4×pY[2×x][-2]+pY[2×x+1][-2]+pY[2×x][-1]+4)>>3.

8. The method according to claim 1, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: When the brightness region and the brightness block belong to different CTUs, downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pTopDsY[x]=(pY[2×x-1][-1]+2×pY[2×x][-1]+pY[2×x+1][-1]+2)>>2.

9. The method according to claim 1, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: When the brightness region and the brightness block belong to the same CTU, downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pTopDsY[x]=(pY[2×x-1][-2]+pY[2×x-1][-1]+2×pY[2×x][-2]+2×pY[2×x][-1]+pY[2×x+1][-2]+pY[2×x+1][-1]+4)>>3.

10. A method for encoding an image, comprising: Determine the intra-prediction mode for the current block; The current block is divided into multiple sub-blocks based on its size; wherein, when the size of the current block is less than a predetermined threshold, the current block is vertically divided into two sub-blocks; or the current block is horizontally divided into two sub-blocks; when the size of the current block is greater than or equal to the predetermined threshold, the current block is vertically divided into four sub-blocks; or the current block is horizontally divided into four sub-blocks; and, Intra-prediction is performed on the current block based on the intra-prediction mode, wherein the intra-prediction mode of the current block is determined for each of the luma block and the chroma block respectively. Write the MPM index into the bitstream; The MPM index is obtained based on the MPM list and the intra-frame prediction mode of the luma block, and The intra-frame prediction includes: Specify the luminance region used for inter-component reference of the chroma block; Downsampling is performed on the brightness region; The parameters for the inter-component reference of the chromaticity block are derived; and The chromaticity block is predicted based on the downsampled luminance region and the parameters.

11. The method according to claim 10, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: The brightness block is downsampled based on the following formula: pDsY[x][y]=(pY[2×x][2×y-1]+pY[2×x-1][2×y]+4×pY[2×x][2×y]+pY[2×x+1][2×y]+pY[2×x][2×y+1]+4)>>3.

12. The method according to claim 10, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: The brightness block is downsampled based on the following formula: pDsY[x][y]=(pY[2×x-1][2×y]+pY[2×x-1][2×y+1]+2×pY[2×x][2×y]+2×pY[2×x][2×y+1]+pY[2×x+1][2×y]+pY[2×x+1][2×y+1]+4)>>3.

13. The method according to claim 10, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: Downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pLeftDsY[y]=(pY[-2][2×y-1]+pY[-3][2×y]+4×pY[-2][2×y]+pY[-1][2×y]+pY[-2][2×y+1]+4)>>3.

14. The method according to claim 12, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: Downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pLeftDsY[0]=(pY[-3][0]+2×pY[-2][0]+pY[-1][0]+2)>>2.

15. The method according to claim 10, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: Downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pLeftDsY[y]=(pY[-1][2×y]+pY[-1][2×y+1]+2×pY[-2][2×y]+2×pY[-2][2×y+1]+pY[-3][2×y]+pY[-3][2×y+1]+4)>>3.

16. The method according to claim 10, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: When the brightness region and the brightness block belong to the same CTU, downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pTopDsY[x]=(pY[2×x][-3]+pY[2×x-1][-2]+4×pY[2×x][-2]+pY[2×x+1][-2]+pY[2×x][-1]+4)>>3.

17. The method according to claim 10, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: When the brightness region and the brightness block belong to different CTUs, downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pTopDsY[x]=(pY[2×x-1][-1]+2×pY[2×x][-1]+pY[2×x+1][-1]+2)>>2.

18. The method according to claim 10, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: When the brightness region and the brightness block belong to the same CTU, downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pTopDsY[x]=(pY[2×x-1][-2]+pY[2×x-1][-1]+2×pY[2×x][-2]+2×pY[2×x][-1]+pY[2×x+1][-2]+pY[2×x+1][-1]+4)>>3.

19. A decoder, comprising a memory and a processor, characterized in that, The memory is configured to store computer programs that can run on the processor; The processor is configured to run the computer program to perform the following steps: Determine the intra-prediction mode of the current block; divide the current block into multiple sub-blocks based on its size; wherein, when the size of the current block is less than a predetermined threshold, the current block is vertically divided into two sub-blocks; or the current block is horizontally divided into two sub-blocks; when the size of the current block is greater than or equal to the predetermined threshold, the current block is vertically divided into four sub-blocks; or the current block is horizontally divided into four sub-blocks; and, Intra-prediction is performed on the current block based on the intra-prediction mode. Specifically, the intra-prediction mode of the current block is determined for each of the luma and chroma blocks; Specifically, the intra-frame prediction mode of the lumen block is derived based on the MPM list and MPM index, and The intra-frame prediction includes: Specify the luminance region used for inter-component reference of the chroma block; Downsampling is performed on the brightness region; The parameters for the inter-component reference of the chromaticity block are derived; and The chromaticity block is predicted based on the downsampled luminance region and the parameters.

20. The decoder according to claim 19, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: The brightness block is downsampled based on the following formula: pDsY[x][y]=(pY[2×x][2×y-1]+pY[2×x-1][2×y]+4×pY[2×x][2×y]+pY[2×x+1][2×y]+pY[2×x][2×y+1]+4)>>3.

21. The decoder according to claim 19, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: The brightness block is downsampled based on the following formula: pDsY[x][y]=(pY[2×x-1][2×y]+pY[2×x-1][2×y+1]+2×pY[2×x][2×y]+2×pY[2×x][2×y+1]+pY[2×x+1][2×y]+pY[2×x+1][2×y+1]+4)>>3.

22. The decoder according to claim 19, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: Downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pLeftDsY[y]=(pY[-2][2×y-1]+pY[-3][2×y]+4×pY[-2][2×y]+pY[-1][2×y]+pY[-2][2×y+1]+4)>>3.

23. The decoder according to claim 22, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: Downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pLeftDsY[0]=(pY[-3][0]+2×pY[-2][0]+pY[-1][0]+2)>>2.

24. The decoder according to claim 19, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: Downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pLeftDsY[y]=(pY[-1][2×y]+pY[-1][2×y+1]+2×pY[-2][2×y]+2×pY[-2][2×y+1]+pY[-3][2×y]+pY[-3][2×y+1]+4)>>3.

25. The decoder according to claim 19, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: When the brightness region and the brightness block belong to the same CTU, downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pTopDsY[x]=(pY[2×x][-3]+pY[2×x-1][-2]+4×pY[2×x][-2]+pY[2×x+1][-2]+pY[2×x][-1]+4)>>3.

26. The decoder according to claim 19, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: When the brightness region and the brightness block belong to different CTUs, downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pTopDsY[x]=(pY[2×x-1][-1]+2×pY[2×x][-1]+pY[2×x+1][-1]+2)>>2.

27. The decoder according to claim 19, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: When the brightness region and the brightness block belong to the same CTU, downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pTopDsY[x]=(pY[2×x-1][-2]+pY[2×x-1][-1]+2×pY[2×x][-2]+2×pY[2×x][-1]+pY[2×x+1][-2]+pY[2×x+1][-1]+4)>>3.

28. An encoder, comprising a memory and a processor, characterized in that, The memory is configured to store computer programs that can run on the processor; The processor is configured to run the computer program to perform the following steps: Determine the intra-prediction mode of the current block; divide the current block into multiple sub-blocks based on its size; wherein, when the size of the current block is less than a predetermined threshold, the current block is vertically divided into two sub-blocks; or the current block is horizontally divided into two sub-blocks; when the size of the current block is greater than or equal to the predetermined threshold, the current block is vertically divided into four sub-blocks; or the current block is horizontally divided into four sub-blocks; and, Intra-prediction is performed on the current block based on the intra-prediction mode, wherein the intra-prediction mode of the current block is determined for each of the luma block and the chroma block respectively. Write the MPM index into the bitstream; The MPM index is obtained based on the MPM list and the intra-frame prediction mode of the luma block, and The intra-frame prediction includes: Specify the luminance region used for inter-component reference of the chroma block; Downsampling is performed on the brightness region; The parameters for the inter-component reference of the chromaticity block are derived; and The chromaticity block is predicted based on the downsampled luminance region and the parameters.

29. The encoder according to claim 28, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: The brightness block is downsampled based on the following formula: pDsY[x][y]=(pY[2×x][2×y-1]+pY[2×x-1][2×y]+4×pY[2×x][2×y]+pY[2×x+1][2×y]+pY[2×x][2×y+1]+4)>>3.

30. The encoder according to claim 28, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: The brightness block is downsampled based on the following formula: pDsY[x][y]=(pY[2×x-1][2×y]+pY[2×x-1][2×y+1]+2×pY[2×x][2×y]+2×pY[2×x][2×y+1]+pY[2×x+1][2×y]+pY[2×x+1][2×y+1]+4)>>3.

31. The encoder according to claim 28, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: Downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pLeftDsY[y]=(pY[-2][2×y-1]+pY[-3][2×y]+4×pY[-2][2×y]+pY[-1][2×y]+pY[-2][2×y+1]+4)>>3.

32. The encoder according to claim 28, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: Downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pLeftDsY[0]=(pY[-3][0]+2×pY[-2][0]+pY[-1][0]+2)>>2.

33. The encoder according to claim 28, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: Downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pLeftDsY[y]=(pY[-1][2×y]+pY[-1][2×y+1]+2×pY[-2][2×y]+2×pY[-2][2×y+1]+pY[-3][2×y]+pY[-3][2×y+1]+4)>>3.

34. The encoder according to claim 28, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: When the brightness region and the brightness block belong to the same CTU, downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pTopDsY[x]=(pY[2×x][-3]+pY[2×x-1][-2]+4×pY[2×x][-2]+pY[2×x+1][-2]+pY[2×x][-1]+4)>>3.

35. The encoder according to claim 28, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: When the brightness region and the brightness block belong to different CTUs, downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pTopDsY[x]=(pY[2×x-1][-1]+2×pY[2×x][-1]+pY[2×x+1][-1]+2)>>2.

36. The encoder according to claim 28, characterized in that, The brightness region includes a brightness block and adjacent regions adjacent to the brightness block, wherein downsampling is performed on the brightness region, including: When the brightness region and the brightness block belong to the same CTU, downsampling is performed on the adjacent regions adjacent to the brightness block based on the following formula: pTopDsY[x]=(pY[2×x-1][-2]+pY[2×x-1][-1]+2×pY[2×x][-2]+2×pY[2×x][-1]+pY[2×x+1][-2]+pY[2×x+1][-1]+4)>>3.

37. A computer storage medium having a computer program stored thereon, characterized in that, The computer program is executed by a first processor to perform the method according to any one of claims 1 to 9, or the computer program is executed by a second processor to perform the method according to any one of claims 10 to 18.

Citation Information

Patent Citations

  • Method and apparatus of video data processing with restricted block size in video coding

    WO2017157249A1

  • Image encoding / decoding method and device, and recording medium in which bitstream is stored

    WO2018016823A1