Image encoding method, image decoding method, and related apparatuses

MY214659AActive Publication Date: 2026-08-06GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
MYPI2022006656
Authority / Receiving Office
MY · MY
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-05-29
Filing Date
2021-04-25
Publication Date
2026-08-06
Estimated Expiration
2041-04-25

AI Technical Summary

Technical Problem

Existing digital video compression technology still has room for improvement in terms of video compression ratio, especially in cross-component prediction mode, which lacks effective utilization of boundary adjacent pixel correlation in orthogonal directions, resulting in insufficient prediction accuracy and coding efficiency.

Method used

In the cross-component prediction mode, the prediction sample of the chroma component of each pixel is corrected by integrating the correlation of boundary adjacent pixels in the orthogonal direction to improve prediction accuracy and coding efficiency. Specific methods include using frames in the encoding and decoding processes. Intra-prediction filtering technology determines whether to perform prediction correction based on the rate distortion cost.

Benefits of technology

It improves the prediction accuracy and efficiency of image encoding and decoding, improves the video compression ratio, and reduces the complexity and computational load of the code stream.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

Disclosed are an image encoding method, an image decoding method, and related apparatuses. The image decoding method comprises: dividing an image, and determining a brightness component intra-frame prediction mode of the current encoding block and a chromaticity component intra-frame prediction mode thereof (S110); when the chromaticity component intra-frame prediction mode indicates that a brightness component of the current encoding block is used to determine a prediction value of a chromaticity component of the current encoding block, determining a prediction block of the chromaticity component of the current encoding block according to the brightness component intra-frame prediction mode (S120); and performing prediction correction on the prediction block of the chromaticity component of the current encoding block, so as to obtain a corrected prediction block of the chromaticity component of the current encoding block (S130). According to the embodiments of the present application, in a cross-component prediction mode, a prediction sample of a chromaticity component of each pixel is corrected by means of taking the correlation of boundary adjacent pixels in an orthogonal direction into consideration, thereby improving the prediction accuracy and the encoding efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Image encoding method, image decoding method and related apparatus TECHNICAL FIELD

[0001] The present application relates to the technical field of electronic equipment, in particular to an image encoding method, an image decoding method and related apparatus. BACKGROUND

[0002] Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital direct broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, tablet computers, e-book readers, digital cameras, digital recording devices, digital media players, video gaming devices, video game consoles, cellular or satellite radio telephones, video conferencing devices, streaming video devices, and many others.

[0003] Digital video devices implement video compression techniques, such as those described in standards defined by MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264 / MPEG-4, Part 10, Advanced Video Coding (AVC), ITU-T H.265 / High Efficiency Video Coding (HEVC), and extensions of such standards, to transmit and receive digital video information more efficiently. Video devices can transmit, receive, encode, decode, and / or store digital video information more efficiently by implementing such video coding techniques.

[0004] As the amount of Internet video continues to grow, there is an increasing need for video compression techniques to further compress video information.

[0005] SUMMARY

[0006] Embodiments of the present application provide an image encoding method, an image decoding method and related apparatus, so as to improve the prediction accuracy and coding efficiency by correcting the prediction sample of each pixel in the chroma component through the correlation of the boundary adjacent pixels in the orthogonal direction in the cross-component prediction mode.

[0007] In a first aspect, an embodiment of the present application provides an image coding method, comprising: dividing an image, determining a luminance component intra prediction mode and a chroma component intra prediction mode of a current coding block; when the chroma component intra prediction mode indicates that a prediction value of a chroma component of the current coding block is determined using a luminance component of the current coding block, determining a prediction block of the chroma component of the current coding block according to the luminance component intra prediction mode; and performing prediction correction on the prediction block of the chroma component of the current coding block to obtain a corrected prediction block of the chroma component of the current coding block.

[0008] Compared with the prior art, the scheme of the present application improves prediction accuracy and coding efficiency by comprehensively predicting the prediction sample of the chroma component of each pixel in the cross-component prediction mode according to the correlation of the pixels in the orthogonal direction.

[0009] In a second aspect, an embodiment of the present application provides an image decoding method, comprising: parsing a code stream, determining a luminance component intra prediction mode and a chroma component intra prediction mode of a current decoding block; when the chroma component intra prediction mode indicates that a prediction value of a chroma component of the current decoding block is determined using a reconstructed block of a luminance component of the current decoding block, determining a prediction block of the chroma component of the current decoding block according to the luminance component intra prediction mode; and performing prediction correction on the prediction block of the chroma component of the current decoding block to obtain a corrected prediction block of the chroma component of the current decoding block.

[0010] Compared with the prior art, the scheme of the present application improves prediction accuracy and decoding efficiency by comprehensively predicting the prediction sample of the chroma component of each pixel in the cross-component prediction mode according to the correlation of the pixels in the orthogonal direction.

[0011] In a third aspect, an embodiment of the present application provides an image coding apparatus, comprising: a division unit configured to divide an image, and determine a luminance component intra prediction mode and a chroma component intra prediction mode of a current coding block; a determination unit configured to, when the chroma component intra prediction mode indicates that a prediction value of a chroma component of the current coding block is determined using a luminance component of the current coding block, determine a reference prediction block of the chroma component of the current coding block according to the luminance component intra prediction mode; and a filtering unit configured to filter the reference prediction block of the chroma component of the current coding block to obtain a prediction block of the chroma component of the current coding block.

[0012] In a fourth aspect, an embodiment of the present application provides an image decoding apparatus, comprising: an analyzing unit, configured to analyze a code stream, and determine a luminance component intra prediction mode and a chroma component intra prediction mode of a current decoding block; a determining unit, configured to, when the chroma component intra prediction mode indicates that a prediction value of a chroma component of the current decoding block is determined using a reconstructed block of the luminance component of the current decoding block, determine a reference prediction block of the chroma component of the current decoding block according to the luminance component intra prediction mode; and a filtering unit, configured to filter the reference prediction block of the chroma component of the current decoding block to obtain a prediction block of the chroma component of the current decoding block.

[0013] In a fifth aspect, an embodiment of the present application provides an encoder, comprising: a processor and a memory coupled to the processor; and the processor is configured to execute the method in the first aspect.

[0014] In a sixth aspect, an embodiment of the present application provides a decoder, comprising: a processor and a memory coupled to the processor; and the processor is configured to execute the method in the second aspect.

[0015] In a seventh aspect, an embodiment of the present application provides a terminal, comprising: one or more processors, a memory and a communication interface; the memory, the communication interface and the one or more processors are connected; the terminal communicates with other devices through the communication interface; the memory is configured to store computer program code, the computer program code comprises instructions, when the one or more processors execute the instructions, the terminal executes the method in the first aspect or the second aspect.

[0016] In an eighth aspect, an embodiment of the present application provides a computer readable storage medium, the computer readable storage medium stores instructions, when the instructions run on a computer, the computer executes the method in the first aspect or the second aspect.

[0017] In a ninth aspect, an embodiment of the present application provides a computer program product comprising instructions, when the instructions run on a computer, the computer executes the method in the first aspect or the second aspect. BRIEF DESCRIPTION OF DRAWINGS

[0018] In order to more clearly illustrate the technical solutions of the embodiments of the present application or the prior art, the following will briefly introduce the drawings needed to be used in the embodiments or the prior art description. Obviously, the drawings in the following description are only some embodiments of the present application, and for those skilled in the art, other drawings can also be obtained without creative labor based on these drawings.

[0019] FIG. 1 is a schematic block diagram of a coding tree unit in an embodiment of the present application;

[0020] FIG. 2 is a schematic block diagram of a color format in an embodiment of the present application;

[0021] FIG. 3 is a schematic block diagram of a CTU and a coding unit (CU) in an embodiment of the present application;

[0022] FIG. 4 is a schematic block diagram of associated pixels of a coding unit in an embodiment of the present application;

[0023] FIG. 5 is a schematic block diagram of intra prediction modes of a luma component in an embodiment of the present application;

[0024] FIG. 6 is a schematic block diagram of neighboring pixels used for calculation of coefficients of a linear model in an embodiment of the present application;

[0025] FIG. 7 is a schematic block diagram of a downsampling filter in an embodiment of the present application;

[0026] FIG. 8 is a schematic block diagram of a change from a reconstructed block of a luma component to a predicted block of a chroma component in an embodiment of the present application;

[0027] FIG. 9 is a schematic block diagram of a video coding system in an embodiment of the present application;

[0028] FIG. 10 is a schematic block diagram of a video encoder in an embodiment of the present application;

[0029] FIG. 11 is a schematic block diagram of a video decoder in an embodiment of the present application;

[0030] FIG. 12A is a flowchart of a method of encoding an image in an embodiment of the present application;

[0031] FIG. 12B is a schematic diagram of a downsampling process in a horizontal direction in an embodiment of the present application;

[0032] FIG. 12C is a schematic diagram of a downsampling process in a vertical direction in an embodiment of the present application;

[0033] FIG. 13 is a flowchart of a method of decoding an image in an embodiment of the present application;

[0034] FIG. 14 is a functional unit block diagram of an image encoding apparatus in an embodiment of the present application;

[0035] FIG. 15 is another functional unit block diagram of an image encoding apparatus in an embodiment of the present application;

[0036] FIG. 16 is a functional unit block diagram of an image decoding apparatus in an embodiment of the present application;

[0037] FIG. 17 is another functional unit block diagram of an image decoding apparatus in an embodiment of the present application. DETAILED DESCRIPTION

[0038] In order to make the objects, technical solutions and advantages of the present application clearer, the present application will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and not to limit the present application.

[0039] It can be understood that the terms "first", "second" and the like can be used herein to describe various elements, but these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first client can be referred to as a second client, and similarly, a second client can be referred to as a first client without departing from the scope of the present application. The first client and the second client are both clients, but they are not the same client.

[0040] First, the terms and related technologies used in the embodiments of the present application are introduced.

[0041] The terms and related technologies used in the embodiments of the present application are introduced.

[0042] For the division of the image, in order to more flexibly represent the video content, the coding tree unit (CTU), coding unit (CU), prediction unit (PU) and transform unit (TU) are defined in the high efficiency video coding (HEVC) technology. The CTU, CU, PU and TU are all image blocks.

[0043] A CTU (coding tree unit) is a square image region, which contains luma and chroma samples of the image region. A CTU also contains syntax elements indicating how to partition the CTU into at least one coding unit (CU) and how to decode each CU to obtain a reconstructed image. As shown in (a) of FIG. 1, an image 10 is composed of multiple CTUs (including CTU A, CTU B, CTU C, etc.). The coding information corresponding to a CTU contains the luma and / or chroma values of the pixels in the square image region corresponding to the CTU. In addition, the coding information corresponding to a CTU can also contain syntax elements indicating how to partition the CTU into at least one CU and how to decode each CU to obtain a reconstructed image. A CTU can correspond to an image region of 64x64, 128x128 or 256x256 pixels. In an example, a CTU of 64x64 pixels contains a rectangular pixel array of 64 columns and 64 pixels per column, each pixel containing a luma component and / or a chroma component. A CTU can also correspond to a rectangular image region or an image region of other shapes. A CTU can also correspond to an image region with a different number of pixels in the horizontal direction than in the vertical direction, for example, 64x128 pixels.

[0044] A CU (coding unit) is a rectangular region in an image, which contains AxB luma and / or corresponding chroma samples, A is the width of the rectangle and B is the height of the rectangle, A and B can be the same or different, and A and B are usually integer powers of 2, for example, 128, 64, 32, 16, 8, 4. In this application, the width refers to the length in the X-axis direction (horizontal direction) of the two-dimensional rectangular coordinate system XoY shown in FIG. 1, and the height refers to the length in the Y-axis direction (vertical direction) of the two-dimensional rectangular coordinate system XoY shown in FIG. 1. A reconstructed image of a CU can be obtained by adding a prediction image and a residual image, the prediction image is generated by intra prediction or inter prediction and can be composed of one or more prediction blocks (PBs), and the residual image is generated by inverse quantization and inverse transformation of transform coefficients and can be composed of one or more transform blocks (TBs). Specifically, a CU contains coding information, including prediction mode, transform coefficient, etc. The CU is decoded according to the coding information, including prediction, inverse quantization, inverse transformation, etc., to generate a reconstructed image corresponding to the CU.

[0045] A prediction unit (PU) is a basic unit of intra prediction and inter prediction. Motion information of a picture block includes an inter prediction direction, a reference frame, a motion vector, etc. A picture block being encoded is referred to as a current coding block (CCB), and a picture block being decoded is referred to as a current decoding block (CDB). For example, when a picture block is being predicted, the current coding block or the current decoding block is a prediction block; when a picture block is being processed for a residual, the current coding block or the current decoding block is a transform block. A picture in which the current coding block or the current decoding block is located is referred to as a current frame. In the current frame, picture blocks located on the left side or the top side of the current block can be inside the current frame and have completed encoding / decoding processing to obtain a reconstructed picture, which is referred to as a reconstructed block. Information such as an encoding mode and a reconstructed pixel of the reconstructed block is available. A frame that has completed encoding / decoding processing before the current frame is being encoded / decoded is referred to as a reconstructed frame. When the current frame is a single-direction prediction frame (P frame) or a bidirectional prediction frame (B frame), the current frame has one or two reference frame lists, which are referred to as L0 and L1, respectively. Each list includes at least one reconstructed frame, which is referred to as a reference frame of the current frame. The reference frame provides reference pixels for inter prediction of the current frame.

[0046] A transform unit (TU) processes a residual of an original picture block and a predicted picture block.

[0047] A pixel (also referred to as a pixel point) refers to a pixel point in a picture, such as a pixel point in a coding unit, a pixel point (also referred to as a luma pixel) in a luma component pixel block, and a pixel point (also referred to as a chroma pixel) in a chroma component pixel block.

[0048] A sample (also referred to as a pixel value) refers to a pixel value of a pixel point. The pixel value in a luma component domain specifically refers to a luma value (i.e., a gray scale value). The pixel value in a chroma component domain specifically refers to a chroma value (i.e., a color and saturation). According to different processing stages, a sample of a pixel specifically includes an original sample, a predicted sample, and a reconstructed sample.

[0049] Intra prediction generates a predicted picture of a current block according to spatial neighboring pixels of the current block. One intra prediction mode corresponds to one method of generating a predicted picture. Division of an intra prediction unit includes 2N×2N division and N×N division. The 2N×2N division is not performed on a picture block. The N×N division divides a picture block into four equal sub-picture blocks.

[0050] Generally, digital video compression techniques act on video sequences in color encoding method YCbCr, also known as YUV, in color format 4:2:0, 4:2:2 or 4:4:4. Among them, Y represents luminance (Luma), that is, the gray scale value, Cb represents the blue chroma component, and Cr represents the red chroma component. U and V represent chrominance (Chroma), which is used to describe color and saturation. In terms of color format, 4:2:0 means that there are 4 luminance components and 2 chroma components (YYYYCbCr) for every 4 pixels, 4:2:2 means that there are 4 luminance components and 4 chroma components (YYYYCbCrCbCr) for every 4 pixels, and 4:4:4 means full pixel display (YYYYCbCrCbCrCbCrCbCr). Figure 2 shows the distribution of components in different color formats, where the circles are Y components and the triangles are UV components.

[0051] In the process of digital video encoding, the encoder reads the pixels of the original video sequence in different color formats and encodes them. Generally, a digital encoder usually includes prediction, transformation and quantization, inverse transformation and dequantization, loop filtering, and entropy encoding, etc., for eliminating spatial, temporal, visual, and character redundancies, etc. However, the human eye is more sensitive to changes in luminance components than to changes in chroma components, so the YUV 4:2:0 color format is generally used for encoding in the original video sequence. At the same time, the digital video encoder adopts different prediction processes for luminance components and chroma components in the intra-frame encoding part. The prediction of luminance components is more detailed and complex, while the prediction of chroma components is generally simple. Cross Component Prediction (CCP) mode is a technology for acting on luminance components and chroma components to improve the video compression ratio in existing digital video encoding.

[0052] The implementation process of the cross component prediction mode acts on intra-frame encoding. The method includes determining a linear model for predicting a chrominance block using training samples of a luminance block, and determining samples of the chrominance block using the samples of the luminance block and the linear model. Among them, the luminance block and the chrominance block are pixel blocks of the encoding unit in the luminance component and the chroma component. The digital video encoder usually reads the original video sequence into images frame by frame and divides the images into coding tree units (CTU), and the coding tree unit can be further divided into encoding units (CU) of different or same sizes. The specific encoding process is carried out in the encoding units of different components. The relationship between the coding tree unit and the encoding unit is shown in Figure 3.

[0053] An example of Cross Component Prediction (CCP): In the latest video coding (Versatile Video Coding, VVC) standard, Cross Component Linear Model (CCLM) is used to reduce the redundancy between components. The linear model is trained by the original and reconstructed samples of the neighboring pixels of the original pixel block of the luma component of the current coding unit, including the original and reconstructed samples of the top neighboring pixels, the top-right neighboring pixels, the left neighboring pixels, and the bottom-left neighboring pixels of the original pixel block of the luma component of the current coding unit. FIG. 4 shows an example of the position relationship between the original pixel block and the neighboring pixels of an 8x8 luma component and the original prediction pixel block and the neighboring pixels of a 4x4 chroma component under the color format YUV4:2:0, respectively.

[0054] In the current coding unit, the prediction sample of a pixel in the prediction block of the chroma component is calculated by the reconstructed sample of a pixel in the original pixel block of the luma component of the current coding unit through a linear model, where the linear model calculation process is represented as follows:

[0055] Pred C (i, j) = a - Rec L (i, j) + β (1)

[0056] where (i, j) is the coordinate of the pixel, i specifically refers to the horizontal coordinate of the prediction block of the chroma component of the current coding unit, and its range is [0, width-1] with a step of 1, width is the width of the prediction block of the chroma component of the current coding unit, and its value can be 4, 8, 16, and 32; j specifically refers to the vertical coordinate of the prediction block of the chroma component of the current coding unit, and its range is [0, height-1] with a step of 1, height is the height of the prediction block of the chroma component of the current coding unit, and its value can be 4, 8, 16, and 32, Rec L is the reconstructed sample of a pixel in the original pixel block of the luma component, Pred c is the prediction sample of a pixel in the prediction block of the chroma component, and a and β are the coefficients of the linear model.

[0057] In the CCLM technology of VVC, there are LM, LM_L, and LM_A modes. Among them, LM_L only uses the left neighboring samples to calculate the linear model, and LM_A only uses the top neighboring samples to calculate the linear model.

[0058] In another cross-component prediction example, the latest cross-component technology proposal M4612 adopted by the Audio Video coding Standard (AVS) in China, Two Step Cross-component Prediction Mode (TSCPM). In the encoding process, as shown in FIG. 5, the intra prediction mode of the luminance component is calculated to be the maximum of 65, DC represents the mean mode, Plane represents the plane mode, Bilinear represents the bilinear mode, and Zone represents the area. The optimal result is selected according to the rate distortion (Rate Distortion) cost, and the intra prediction mode and the corresponding prediction residual are transmitted. When the pixels of the prediction block of the chrominance component are predicted by the cross-component technology, the reconstructed samples of the neighboring pixels of the original pixel block of the luminance component of the current coding unit and the reconstructed samples of the neighboring pixels of the original prediction pixel block of the chrominance component of the current coding unit are used for the calculation of the linear model. The above-mentioned neighboring pixels of the original pixel block of the luminance component include the upper and left neighboring pixels of the original pixel block of the luminance component of the current coding unit; and the above-mentioned neighboring pixels of the prediction block of the chrominance component include the upper and left neighboring pixels of the prediction block of the chrominance component of the current coding unit.

[0059] When the reconstructed samples are selected as the reference samples for calculating the coefficients of the linear model, in combination with the availability of the reconstructed samples of the neighboring pixels, the combination of the reconstructed samples of two pixels in the upper neighboring pixels and the reconstructed samples of two pixels in the left neighboring pixels can be used, and all the reconstructed samples of four pixels in the upper neighboring pixels and all the reconstructed samples of four pixels in the left neighboring pixels can also be used.

[0060] According to the selection of the reference samples, the prediction mode includes: if the reconstructed samples of the upper side neighboring pixels of the original pixel block of the luminance component and the original pixel block of the chroma component corresponding to the current coding unit (for the convenience of description, the original pixel block is collectively referred to as the original pixel block) are available, and the reconstructed samples of the left side neighboring pixels of the original pixel block of the current coding unit are available, and the reference samples used for calculating the coefficients of the linear model are from the upper side and the left side neighboring pixels, or if the reconstructed samples of the upper side neighboring pixels of the original pixel block of the current coding unit are available, and the reference samples used for calculating the coefficients of the linear model are only the reconstructed samples of the upper side neighboring pixels, or if the reconstructed samples of the left side neighboring pixels of the original pixel block of the current coding unit are available, and the reference samples used for calculating the coefficients of the linear model are only the reconstructed samples of the left side neighboring pixels, the TSCPM mode is used; if the reconstructed samples of the upper side neighboring pixels of the original pixel block of the current coding unit are available, and the reconstructed samples of the left side neighboring pixels of the original pixel block of the current coding unit are available, and the reference samples used for calculating the coefficients of the linear model are only the reconstructed samples of the upper side neighboring pixels, the TSCPM_T mode is used; and if the reconstructed samples of the upper side neighboring pixels of the original pixel block of the current coding unit are available, and the reconstructed samples of the left side neighboring pixels of the original pixel block of the current coding unit are available, and the reference samples used for calculating the coefficients of the linear model are only the reconstructed samples of the upper side neighboring pixels, the TSCPM_L mode is used.

[0061] In the above-mentioned reference samples used for calculating the coefficients of the linear model, as shown in FIG. 6, if the reference samples are from the neighboring pixels on both sides of the original pixel block corresponding to the current coding unit, the reference sample on the upper side is selected from the reconstructed sample of the leftmost pixel in the upper side neighboring pixels and the reconstructed sample of the rightmost pixel on the upper side of the width of the original pixel block corresponding to the current coding unit, and the reference sample on the left side is selected from the reconstructed sample of the uppermost pixel in the left side neighboring pixels and the reconstructed sample of the lowermost pixel in the left side neighboring pixels of the height of the original pixel block corresponding to the current coding unit; if the reference samples used for calculating the coefficients of the linear model are only from the upper side, the reconstructed samples of the four consecutive step pixels in the upper side neighboring pixels are selected with the quarter distance of the width of the original pixel block corresponding to the current coding unit as the step; and if the reference samples are only from the left side, the reconstructed samples of the four consecutive step pixels in the four left side neighboring pixels are selected with the quarter distance of the height of the original pixel block corresponding to the current coding unit as the step.

[0062] That is, the four neighboring pixels of the luminance component and the four neighboring pixels of the chroma component can be selected in three ways.

[0063] The first way: when two neighboring pixels are selected from the upper side neighboring coding block and the left side neighboring coding block respectively, the neighboring pixels can be determined by the following formula:

[0064] minStep = min(Width, Height);

[0065] TopIndex = (minStep - 1) * Width / minStep;

[0066] LeftIndex = (minStep - 1) * Height / minStep;

[0067] In the above formula, min(x, y) returns the smaller value of x and y, Width is the width of the chroma component of the current coding block, Height is the height of the chroma component of the current coding block, TopIndex is the index value of the other adjacent pixel except the first adjacent pixel when selecting the upper boundary adjacent pixel, and LeftIndex is the index value of the other adjacent pixel except the first adjacent pixel when selecting the left boundary adjacent pixel.

[0068] Method two: when four adjacent pixels are selected only from the upper adjacent coding block, starting from the leftmost first adjacent pixel, four luminance component adjacent pixels and four chroma component adjacent pixels are selected with the quarter width of the chroma component of the current coding block as the step size.

[0069] Method three: when four adjacent pixels are selected only from the left adjacent coding block, starting from the uppermost first adjacent pixel, four luminance component adjacent pixels and four chroma component adjacent pixels are selected with the quarter height of the chroma component of the current coding block as the step size.

[0070] In the above specific example AVS3, the linear model calculation formula of the cross-component technology is the same as the above formula (1), wherein α and β can be calculated by the following formula:

[0071]

[0072] β = Y Min - α · X Min (3)

[0073] wherein Y Max is the average value of two maximum reconstruction samples of the reconstruction samples of the multiple adjacent pixels of the original pixel block of the chroma component for the calculation of the coefficients of the linear model, Y Min is the average value of two minimum reconstruction samples of the reconstruction samples of the multiple adjacent pixels of the original pixel block of the chroma component for the calculation of the coefficients of the linear model. X Max is the average value of two maximum reconstruction samples of the reconstruction samples of the multiple adjacent pixels of the original pixel block of the luminance component for the calculation of the coefficients of the linear model, X MinAn average of two minimum reconstructed samples in reconstructed samples of a plurality of neighboring pixels of the original pixel block of the luma component for the calculation of the coefficients of the linear model.

[0074] According to the calculated linear model, the luma component reconstructed block of the current CU is used to generate a corresponding chroma component reference prediction pixel block. The reference prediction samples of the chroma component of each pixel of the current coding unit are calculated according to the formula (1) / (2) and (3). The size of the chroma component reference prediction block is the same as that of the original pixel block of the luma component. In a specific example, the input digital video color format is generally YUV4:2:0 format, that is, the size of the chroma component prediction block is one fourth of the size of the original pixel block of the luma component. In order to obtain a corresponding correct size chroma component prediction block, the chroma component reference prediction block needs to be down-sampled by one half in the horizontal and vertical directions respectively. After down-sampling, the chroma component prediction block is one fourth of the corresponding luma component original pixel block, which meets the size requirement of the color format constraint. The filter used for down-sampling the chroma component reference prediction block uses a two-tap same coefficient down-sampling filter in the left boundary pixel region of the chroma component reference prediction block, and a six-tap two-different-coefficient down-sampling filter in other pixel regions.

[0075] The six-tap two-different-coefficient down-sampling filter is shown in formula (4).

[0076]

[0077] wherein x, y are the coordinates of the pixel, P C is the prediction sample of the luma component of the current pixel, P 1 C and P 2 C are the prediction samples of the chroma component of the current pixel.

[0078] The two-tap same coefficient down-sampling filter is shown in formula (5).

[0079]

[0080] wherein x, y are the coordinates of the pixel, P C is the prediction sample of the luma component of the current pixel, P 1 C and P 2 C are the prediction samples of the chroma component of the current pixel.

[0081] The downsampling filter is shown in FIG. 7, where x1 represents multiplication by 1 and x2 represents multiplication by 2. FIG. 8 shows a schematic diagram of the change of the cross-component technique from the luma component reconstructed block to the chroma component predicted block, where the luma component reconstructed block size of the coding unit is 8*8, the corresponding chroma component reference predicted block size is 8*8, and the filtered chroma component predicted block size is 4*4.

[0082] AVS3 also adopts multiple cross-component prediction modes, two of which are MPCM_T and MPCM_L.

[0083] These two prediction modes act on the chroma component, but the prediction processes for the U component and the V component are different, the U component prediction process is consistent with TSCPM_T and TSCPM_L, and the prediction block for the V component is obtained by subtracting the reconstructed block of the U component from the temporary chroma prediction component block. The specific formula is as follows:

[0084] Pred C (x, y) = a' Rec L (x, y) + b' (6)

[0085] Pred Cr (x, y) = Pred C '(x, y) - Rec Cb (x, y) (7)

[0086] In the above formulas (2) and (3), Pred C (x, y) is the prediction sample at pixel (x, y) in the prediction block of the chroma component, Rec L (x, y) is the reconstructed sample at pixel (x, y) in the reconstructed block of the luma component, Pred C '(x, y) is the prediction sample at pixel (x, y) in the prediction block of the chroma component after downsampling, Rec cb (x, y) is the reconstructed sample of the U component at pixel (x, y) in the reconstructed block of the chroma component, Pred Cr (x, y) is the prediction sample of the V component at pixel (x, y) in the prediction block of the chroma component, and a' and b' are the linear parameters of the U component and the V component, respectively, and the linear parameters of the U component and the V component are calculated with reference to formulas (2) and (3). At present, the existing enhanced two-step cross-component prediction technology uses all reconstructed samples from the upper or left adjacent coding units as reference information to calculate the linear model to obtain the reference prediction block of the chroma component of the current coding unit. If only the reconstructed samples from the upper adjacent pixels are taken, the reference information from the reconstructed samples of the left adjacent pixels is lacking. If only the reconstructed samples from the left adjacent pixels are taken, the reference information from the reconstructed samples of the upper adjacent pixels is lacking.

[0087] The above-mentioned single selection of the reconstructed sample of the upper or left adjacent pixel as the reference information to calculate the linear model can effectively enhance the spatial correlation from a single side, and can achieve a certain compression rate in some specific coding units. However, the use of the reconstructed sample of the adjacent pixel on a single side as the reference information excessively depends on the sample value of the adjacent pixel on the side, that is, if the current chroma coding unit selects a mode of taking only the reconstructed sample of the upper adjacent pixel as the reference information, the correlation of the samples of the interline pixels is lacking; if the current chroma coding unit selects a mode of taking only the reconstructed sample of the left adjacent pixel as the reference information, the correlation of the samples of the intercolumn pixels is lacking. In this way, the prediction wastes a large amount of available reference information and cannot better predict the sample value of the chroma component of the current coding unit, resulting in a loss of coding efficiency.

[0088] To solve the above technical problems, the present application proposes the following design idea: in the existing enhanced two-step cross-component prediction mode, the prediction block of the chroma component after down-sampling the reference prediction block of the chroma component is predicted and corrected based on the correlation of the boundary adjacent pixels in the orthogonal direction. After the current chroma coding unit selects only the reconstructed sample of the upper adjacent pixel as the reference information and calculates the sample value of the prediction block of the chroma component, the reconstructed sample of the left adjacent pixel is selected to predict and correct each sample; after the current chroma coding unit selects only the reconstructed sample of the left adjacent pixel as the reference information and calculates the sample value of the prediction block of the chroma component, the reconstructed sample of the upper adjacent pixel is selected to predict and correct the sample of each pixel.

[0089] Specifically, at the encoding end, when encoding a coding unit, first, it is determined whether the coding unit can use the intra prediction filtering technology,

[0090] If the intra prediction filtering can be used, the intra prediction is performed on the luminance component of the coding unit, and the prediction sample correction is performed on the samples of the prediction block of the luminance component after the prediction ends. Then, the intra prediction is performed on the chroma component of the coding unit, and the prediction sample correction is performed on the samples of the prediction block of the chroma component after the prediction ends. It is determined whether to use the intra prediction filtering technology (i.e., the prediction correction based on the correlation of the boundary adjacent pixels in the orthogonal direction) according to the rate-distortion cost calculated from the samples of the uncorrected prediction block and the samples of the corrected prediction block.

[0091] The above-mentioned prediction process of the chroma component of the coding unit includes the encoding process in other prediction modes and the encoding process in the enhanced two-step cross-component prediction mode.

[0092] If the current coding unit chroma component intra prediction is in other non-enhanced two-step cross-component prediction modes, no prediction correction is performed on the samples of the prediction block after the prediction ends.

[0093] If the current CU chroma component intra prediction is in the enhanced two-step cross-component prediction mode,

[0094] If the current enhanced two-step cross-component prediction mode is to use only the reconstructed sample of the top neighboring pixel as the reference information to calculate the linear model, and the samples of the prediction block of the chroma component of the current CU are calculated and down-sampled by the linear model, then after the prediction mode ends, the reconstructed sample of the left neighboring pixel is used as the reference information to perform prediction correction on the prediction samples of all the pixels of the chroma component of the CU using the intra chroma component prediction filter.

[0095] If the current enhanced two-step cross-component prediction mode is to use only the reconstructed sample of the left neighboring pixel as the reference information to calculate the linear model, and the samples of the prediction block of the chroma component of the current CU are calculated and down-sampled by the linear model, then after the prediction mode ends, the reconstructed sample of the top neighboring pixel is used as the reference information to perform prediction correction on the prediction samples of all the pixels of the chroma component of the CU using the intra chroma component prediction filter.

[0096] The prediction correction on the samples of the prediction block after the enhanced two-step cross-component prediction mode includes taking the distance between the current pixel being processed and the neighboring pixel as a filter coefficient index value, taking the size of the current CU as a filter coefficient group index value, searching for an intra chroma component prediction filter coefficient group according to the filter coefficient group index value, finding an intra chroma component prediction filter coefficient in the group according to the filter coefficient index value, calculating a final prediction sample value according to the found filter coefficient and a filter formula, and determining whether to enable the prediction correction technology according to the rate-distortion cost of the uncorrected prediction block and the rate-distortion cost of the corrected prediction block of the luma component and the chroma component of the current CU in the intra coding mode.

[0097] If the rate-distortion cost of the uncorrected prediction block of the current CU is less than the rate-distortion cost of the corrected prediction block, the current CU does not use the prediction correction technology based on the correlation of the neighboring pixels in the orthogonal direction, and specifically, the identification position used by the filter technology is false.

[0098] If the rate-distortion cost of the uncorrected prediction block of the current CU is greater than the rate-distortion cost of the corrected prediction block, the current CU uses the prediction correction technology based on the correlation of the neighboring pixels in the orthogonal direction, and specifically, the identification position used by the filter technology is true.

[0099] Specifically, at the decoding end, when the current coding unit is encoded by selecting the intra prediction, it is analyzed whether the enhanced two-step cross-component prediction mode is enabled for the current coding unit and whether the intra prediction prediction modification technology is enabled for the current coding unit. If the color component intra prediction of the current coding unit enables the enhanced two-step cross-component prediction mode, the current color prediction mode is the enhanced two-step cross-component prediction mode, and the current coding unit uses the intra prediction filtering technology, then:

[0100] If the current coding unit only selects the reconstructed sample of the upper neighboring pixel as the reference information to calculate the linear model, and the reference prediction block of the color component of the current coding unit is calculated by the linear model, and then down-sampling is performed to obtain the prediction block of the color component, then the reconstructed sample of the left neighboring pixel is taken as the reference information, the intra color component prediction filter is used to perform prediction modification on the prediction block of the color component to obtain the final prediction sample of the block.

[0101] If the current coding unit only selects the reconstructed sample of the left neighboring pixel as the reference information to calculate the linear model, and the reference prediction block of the color component of the current coding unit is calculated by the linear model, and then down-sampling is performed to obtain the prediction block of the color component, then the reconstructed sample of the upper neighboring pixel is taken as the reference information, the intra color component prediction filter is used to perform prediction modification on the prediction block of the color component to obtain the final prediction sample, and whether the intra prediction prediction modification technology is selected is determined according to the prediction rate distortion cost of the luminance component and the color component of the current coding unit.

[0102] If yes, when decoding a unit block, the parsed intra prediction prediction modification identification value and the intra prediction mode index value are obtained. If the intra prediction prediction modification identification value of the current decoding block is true, and the color component prediction mode of the current decoding block is the enhanced two-step cross-component prediction mode, then the prediction modification technology based on the orthogonal direction of the boundary neighboring pixel is used for decoding. First, the luminance component of the current decoding block is predicted and reconstructed, the reference information is calculated by only selecting the reconstructed sample of the upper neighboring pixel or the reconstructed sample of the left neighboring pixel according to the prediction mode index value of the color component of the current decoding block, the reference prediction block of the color component of the current decoding block is calculated according to the linear model, and then down-sampling is performed to obtain the prediction block of the color component. Then, the coefficients of the intra color prediction filter are selected according to the size of the current decoding block and the distance between the current pixel and the neighboring pixel as the index value, the prediction sample of the current pixel and the reconstructed sample of the neighboring pixel are weighted and summed to obtain the final prediction sample.

[0103] The embodiments of the present application predict the sample of each pixel by comprehensively considering the correlation of the boundary neighboring pixels in the orthogonal direction, thereby improving the prediction accuracy and the coding efficiency.

[0104] The technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application.

[0105] FIG. 9 is a block diagram of a video coding system 1 of one example described in the embodiments of the present application. As used herein, the term "video coder" generally refers to both video encoders and video decoders. In this application, the term "video coding" or "coding" can generally refer to video encoding or video decoding. The video encoder 100 and the video decoder 200 of the video coding system 1 are used to implement the cross-component prediction method proposed in the present application.

[0106] As shown in FIG. 9, the video coding system 1 includes a source device 10 and a destination device 20. The source device 10 generates encoded video data. Accordingly, the source device 10 can be referred to as a video encoding device. The destination device 20 can decode the encoded video data generated by the source device 10. Accordingly, the destination device 20 can be referred to as a video decoding device. Various embodiments of the source device 10, the destination device 20, or both, can include one or more processors and a memory coupled to the one or more processors. The memory can include, but is not limited to, RAM, ROM, EEPROM, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer, as described herein.

[0107] The source device 10 and the destination device 20 can comprise various devices, including a desktop computer, a mobile computing device, a notebook (e.g., laptop) computer, a tablet computer, a set-top box, a telephone handset such as a so-called "smart" phone, a television, a camera, a display device, a digital media player, a video gaming console, an automobile computer, or similar device or devices.

[0108] Destination device 20 can receive the encoded video data from source device 10 via a link 30. Link 30 can comprise one or more media or devices capable of moving the encoded video data from source device 10 to destination device 20. In one example, link 30 can comprise one or more communication media that enable source device 10 to transmit encoded video data directly to destination device 20 in real-time. In this example, source device 10 can modulate the encoded video data according to a communication standard, such as a wireless communication protocol, and can transmit the modulated video data to destination device 20. The one or more communication media can include wireless and / or wired communication media, such as a radio frequency (RF) spectrum or one or more physical transmission lines. The one or more communication media can form part of a packet-based network, such as a local area network, a wide-area network, or a global network such as the Internet. The one or more communication media can include routers, switches, base stations, or other equipment that facilitates communication from source device 10 to destination device 20. In another example, the encoded data can be output from output interface 140 to a storage device 40.

[0109] The image coding techniques of this disclosure can be applied to video coding to support a variety of multimedia applications, such as over-the-air television broadcasts, cable television transmissions, satellite television transmissions, streaming video transmissions (e.g., via the Internet), encoding of video data for storage on data storage media, decoding of video data stored on data storage media, or other applications. In some examples, video coding system 1 can be configured to support one-way or two-way video transmission to support applications such as video streaming, video playback, video broadcasting, and / or video telephony.

[0110] Video coding system 1 illustrated in FIG. 9 is merely one example, and the techniques of this disclosure can be applied to video coding settings (e.g., video encoding or video decoding) that do not necessarily involve any communication of data between an encoding device and a decoding device. In other examples, data is retrieved from local memory, streamed over a network, and so on. A video encoding device can encode and store data to memory, and / or a video decoding device can retrieve and decode data from memory. In many examples, encoding and decoding are performed by devices that do not communicate with each other, but rather only encode data to memory and / or retrieve data from memory and decode data.

[0111] In the example of FIG. 9, source device 10 includes a video source 120, video encoder 100, and an output interface 140. In some examples, output interface 140 can include a modulator / demodulator (modem) and / or a transmitter. Video source 120 can include a video capture device, e.g., a video camera, a video archive containing previously captured video data, a video feed interface to receive video data from a video content provider, and / or a computer graphics system for generating video data, or a combination of such sources of video data.

[0112] Video encoder 100 can encode video data from video source 120. In some examples, source device 10 directly transmits the encoded video data to destination device 20 via output interface 140. In other examples, the encoded video data can also be stored onto storage device 40 for later access by destination device 20 for decoding and / or playback.

[0113] In the example of FIG. 9, destination device 20 includes an input interface 240, a video decoder 200, and a display device 220. In some examples, input interface 240 includes a receiver and / or a modem. Input interface 240 can receive encoded video data from a storage device 40 and / or via a link 30. Display device 220 can be integrated with, or can be external to, destination device 20. In general, display device 220 displays decoded video data. Display device 220 can comprise various display devices such as a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or other types of display devices.

[0114] Although not shown in FIG. 9, in some aspects, video encoder 100 and video decoder 200 can each be integrated with an audio encoder and decoder, and can include appropriate MUX-DEMUX units, or other hardware and software, to handle encoding of both audio and video in a common data stream or separate data streams. If separate data streams are used, either video encoder 100 or video decoder 200 can operate in a unidirectional send / receive mode or bidirectional send / receive mode.

[0115] Video encoder 100 and video decoder 200 each can be implemented as any of a variety of circuitry, such as one or more microprocessors, a

[0116] FIG. 10 is an example block diagram of a video encoder 100 described in embodiments of the present disclosure. Video encoder 100 is configured to output video to post-processing entity 41. Post-processing entity 41 represents an example of a video entity that can process encoded video data from video encoder 100, such as a media aware network element (MANE) or splicing / editing device. In some cases, post-processing entity 41 can be an example of a network entity. In some video coding systems, post-processing entity 41 and video encoder 100 can be portions of separate devices, while in other cases, the functionality described with respect to post-processing entity 41 can be performed by the same device that includes video encoder 100. In one example, post-processing entity 41 is an example of storage device 40 of FIG. 1.

[0117] In the example of FIG. 10, video encoder 100 includes prediction processing unit 108, filter unit 106, memory 107, summer 112, transformer 101, quantizer 102, and entropy encoder 103. Prediction processing unit 108 includes inter-predictor 110 and intra-predictor 109. For image block reconstruction, video encoder 100 also includes inverse quantizer 104, inverse transformer 105, and summer 111. Filter unit 106 represents one or more loop filters such as a deblocking filter, an adaptive loop filter (ALF), and a sample adaptive offset (SAO) filter. Although filter unit 106 is shown in FIG. 10 as an in-loop filter, in other implementations, filter unit 106 can be implemented as a post-loop filter. In one example, video encoder 100 can also include a video data memory, a partitioning unit (not shown).

[0118] Video encoder 100 receives video data and stores that video data in a video data memory. Partitioning unit 104 partitions the video data into image blocks, which can be further partitioned into smaller blocks, e.g., based on a quadtree or binary tree block partitioning structure. Prediction processing unit 108 can select one of a plurality of possible coding modes, such as one of a plurality of intra-coding modes or one of a plurality of inter-coding modes, for the current image block. Prediction processing unit 108 can provide the resulting intra-, inter- coded block to summer 112 to generate a residual block, and to summer 111 to reconstruct the encoded block for use as a reference image. Intra-predictor 109 within prediction processing unit 108 can perform intra predictive encoding of the current image block relative to one or more neighboring blocks in the same frame or slice as the current block to be coded to remove spatial redundancy. Inter-predictor 110 within prediction processing unit 108 can perform inter predictive encoding of the current image block relative to one or more predictive blocks in one or more reference images to remove temporal redundancy. Prediction processing unit 108 provides information indicative of the selected intra- or inter-prediction mode for the current image block to entropy encoder 103 to facilitate entropy encoder 103 encoding information indicative of the selected inter-prediction mode.

[0119] After prediction processing unit 108 generates a predictive block for a current image block via inter-prediction / intra-prediction, video encoder 100 forms a residual image block by subtracting the predictive block from the current image block to be coded. Summer 112 represents the component or components that perform this subtraction operation. The residual video data in the residual block can be included in one or more TUs and applied to transformer 101. Transformer 101 transforms the residual video data into residual transform coefficients using a transform, such as a discrete cosine transform (DCT) or a conceptually similar transform. Transformer 101 can convert the residual video data from a pixel value domain to a transform domain, such as a frequency domain.

[0120] Transformer 101 can send the resulting transform coefficients to quantizer 102. Quantizer 102 quantizes the transform coefficients to further reduce bit rate. In some examples, quantizer 102 can then perform a scan of the matrix including the quantized transform coefficients. Alternatively, entropy encoder 103 can perform the scan.

[0121] After quantization, the entropy coder 103 entropy encodes the quantized transform coefficients. For example, the entropy coder 103 can perform Context- Adaptive Variable Length Coding (CAVLC), Context- Adaptive Binary Arithmetic Coding (CABAC), Syntax-Based Context- Adaptive Binary Arithmetic Coding (SBAC), Probability Interval Partitioning Entropy (PIPE) coding, or another entropy coding method or techniques. After being entropy encoded by the entropy coder 103, the encoded code stream can be transmitted to the video decoder 200 or archived for later transmission or retrieval by the video decoder 200. The entropy coder 103 can also entropy encode syntax elements for the current image block being coded.

[0122] The inverse quantizer 104 and the inverse transformer 105 apply inverse quantization and inverse transform, respectively, to reconstruct the residual block in the pixel domain, e.g., for later use as a reference block of a reference picture. The summer 111 adds the reconstructed residual block to the prediction block produced by the inter or intra predictor 110 to produce a reconstructed image block. The filter unit 106 can be applied to the reconstructed image block to reduce distortion, such as block artifacts. The reconstructed image block is then stored in the memory 107 as a reference block, which can be used by the inter predictor 110 as a reference block to inter predict blocks in subsequent video frames or pictures.

[0123] Specifically, the video encoder 100 specifically performs the image encoding method provided by the embodiments of the present application, the input video is divided into a plurality of coding tree units, and each coding tree unit is further divided into a plurality of coding units which are rectangular or square. When a current coding unit is selected to be encoded in an intra prediction mode, it is analyzed whether the enhanced two-step cross-component prediction mode is enabled for the current coding unit, a plurality of prediction modes are calculated for the luminance component of the current coding unit and the optimal prediction mode is selected according to the rate-distortion cost, and a plurality of prediction modes are calculated for the chrominance component of the current coding unit and the optimal prediction mode is selected according to the rate-distortion cost.

[0124] The above-mentioned intra prediction process for the chrominance component includes:

[0125] If the enhanced two-step cross-component prediction mode is enabled for the current video coding sequence, the prediction and prediction refinement method provided by the embodiments of the present application is applied. First, the reconstructed samples of the neighboring pixels on the top or left side of the luma component of the current coding unit and the reconstructed samples of the neighboring pixels on the top or left side of the chroma component of the current coding unit are extracted, and a linear model applied to the current coding unit is calculated, and then a reference prediction block of the chroma component of the current coding unit is calculated according to the linear model, the reference prediction block is down-sampled, and prediction refinement based on the correlation of the neighboring pixels in the orthogonal direction is performed on the down-sampled prediction block to obtain a final prediction block of the chroma component of the current coding unit. If the rate-distortion cost is optimal, the technique of the present application is selected as the final prediction mode, and the mode index is transmitted to the decoding end as the prediction mode coding parameter of the current coding unit in the code stream.

[0126] If the enhanced two-step cross-component prediction mode is not enabled for the current video coding sequence, the intra prediction process does not apply the intra prediction technology based on prediction refinement of the present application, and at this time, the chroma component prediction should adopt the direction mode or the mean mode to obtain the final prediction block of the chroma component.

[0127] Then, the residual between the original video block and the prediction block is calculated, and the residual is subsequently processed by variation and quantization, entropy coding, etc. to form the output code stream, and is processed by inverse transformation and inverse quantization, loop filtering, etc. to form the reconstructed samples as the reference information for the subsequent video compression.

[0128] The intra predictor 109 can also provide information indicating the selected intra prediction mode of the current coding unit to the entropy encoder 103, so that the entropy encoder 103 encodes the information indicating the selected intra prediction mode.

[0129] FIG. 11 is an example block diagram of a video decoder 200 described in the embodiments of the present application. In the example of FIG. 11, the video decoder 200 includes an entropy decoder 203, a prediction processing unit 208, an inverse quantizer 204, an inverse transformer 205, a summer 211, a filter unit 206, and a memory 207. The prediction processing unit 208 can include an inter predictor 210 and an intra predictor 209. In some examples, the video decoder 200 can perform a decoding process generally reciprocal to the encoding process described with respect to the video encoder 100 from FIG. 10.

[0130] In the decoding process, video decoder 200 receives an encoded video bitstream that represents image blocks of an encoded video slice and associated syntax elements from video encoder 100. Video decoder 200 can receive the video data from network entity 42, optionally also store the video data in a video data memory (not shown). The video data memory can store video data, such as an encoded video bitstream, to be decoded by the components of video decoder 200. The video data stored in the video data memory can be obtained, for example, from storage device 40, from a local video source such as a camera, via wired or wireless network communication of video data, or by accessing physical data storage media. The video data memory can serve as a decoded picture buffer (DPB) for storing decoded video data from an encoded video bitstream.

[0131] Network entity 42 can be, for example, a server, a MANE, a video editor / splicer, or other such device for implementing one or more of the techniques described above. Network entity 42 can or can not include a video encoder, such as video encoder 100. Network entity 42 can implement portions of the techniques described in this disclosure prior to sending an encoded video bitstream to video decoder 200. In some video decoding systems, network entity 42 and video decoder 200 can be parts of separate devices, while in other cases, the functionality described with respect to network entity 42 can be performed by the same device that includes video decoder 200.

[0132] Entropy decoder 203 of video decoder 200 entropy decodes the bitstream to produce quantized coefficients and some syntax elements. Entropy decoder 203 forwards the syntax elements to prediction processing unit 208. Video decoder 200 can receive the syntax elements at the video slice level and / or the image block level. When the video slice is decoded as an intra coded (I) slice, intra-predictor 209 of prediction processing unit 208 generates a prediction block for an image block of the current video slice based on the signaled intra-prediction mode and data from previously decoded blocks of the current frame or image. When the video slice is decoded as an inter coded (i.e., B or P) slice, inter-predictor 210 of prediction processing unit 208 can determine, based on syntax elements received from entropy decoder 203, an inter-prediction mode for decoding a current image block of the current video slice, decode (e.g., perform inter-prediction) the current image block based on the determined inter-prediction mode.

[0133] The inverse quantizer 204 de-quantizes, i.e., inverse quantizes, the quantized transform coefficients provided in the bitstream and decoded by the entropy decoder 203. The inverse quantization process can include determining a degree of quantization that should be applied, and likewise a degree of inverse quantization that should be applied, using a quantization parameter calculated by the video encoder 100 for each image block in the video slice. The inverse transformer 205 applies an inverse transform, e.g., an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process, to the transform coefficients in order to produce residual blocks in the pixel domain.

[0134] After the inter-predictor 210 generates the prediction block for the current image block or sub-block of the current image block, the video decoder 200 forms a reconstructed block, i.e., a decoded image block, by summing the residual block from the inverse transformer 205 with the corresponding prediction block generated by the inter-predictor 210. The summer 211 represents the component that performs this summation operation. When needed, loop filters (in-loop or post-loop) can also be used to smooth pixel transitions or otherwise improve the video quality. The filter unit 206 can represent one or more loop filters such as a deblocking filter, an adaptive loop filter (ALF), and a sample adaptive offset (SAO) filter. Although the filter unit 206 is shown in FIG. 11 as an in-loop filter, in other implementations, the filter unit 206 can be implemented as a post-loop filter.

[0135] The image decoding method performed by the video decoder 200 specifically includes, after parsing the bitstream, inverse transforming and inverse quantizing, obtaining the prediction mode index of the current coding unit.

[0136] If the prediction mode index of the chroma component of the current coding unit is the enhanced two-step cross-component prediction mode, then the reconstructed samples from only the top or left neighboring pixels of the current coding unit are selected according to the index value for the calculation of the linear model, the reference prediction block of the chroma component of the current coding unit is calculated according to the linear model, the down-sampling is performed, and the prediction correction based on the correlation of the orthogonal direction boundary neighboring pixels is performed on the down-sampled prediction block to obtain the final prediction block of the chroma component.

[0137] The subsequent bitstream is used as reference information for subsequent video decoding, and is output as a video signal after post-filtering processing.

[0138] It should be understood that other structural variations of the video decoder 200 can be used to decode an encoded video bitstream. For example, the video decoder 200 can generate an output video stream without processing by the filter unit 206; or, for certain image blocks or image frames, the entropy decoder 203 of the video decoder 200 does not decode quantized coefficients, and accordingly does not require processing by the inverse quantizer 204 and the inverse transformer 205.

[0139] Specifically, the intra predictor 209 can use the image decoding method described in the embodiments of the present application in the generation of the prediction block.

[0140] FIG. 12A is a flow diagram of an image encoding method according to an embodiment of the present application. The image encoding method can be applied to the source device 10 in the video coding system 1 shown in FIG. 9 or the video encoder 100 shown in FIG. 10. The flow diagram shown in FIG. 12A is described taking the video encoder 100 shown in FIG. 10 as an example. As shown in FIG. 12A, the cross-component prediction method provided in the embodiments of the present application includes the following steps.

[0141] In step 110, the image is divided to determine the intra prediction mode of the luminance component and the intra prediction mode of the chroma component of the current coding block.

[0142] The color format of the video to which the image belongs includes but is not limited to 4:2:0, 4:2:2, etc.

[0143] For example, when the color format is 4:2:0, as shown in (C) of FIG. 2, the pixel ratio of the original pixel block of the luminance component to the original pixel block of the chroma component of the current coding block is 4:1. Taking an 8*8 forward square pixel array as an example, the size of the original pixel block of the corresponding luminance component is 8*8, and the size of the original pixel block of the corresponding chroma component is 4*4.

[0144] For another example, when the color format is 4:2:2, as shown in (B) of FIG. 2, the pixel ratio of the original pixel block of the luminance component to the original pixel block of the chroma component of the current coding block is 2:1. Taking an 8*8 forward square pixel array as an example, the size of the original pixel block of the corresponding luminance component is 8*8, and the size of the original pixel block of the corresponding chroma component is 8*4.

[0145] As shown in FIG. 5, the intra coding luminance component calculates a maximum of 65 intra prediction modes. In a specific implementation, the luminance component calculates and selects a maximum of 62 angle prediction modes and 3 non-angle prediction modes to transmit an optimal intra prediction mode, and the intra prediction mode of the chroma component calculates a maximum of 6 prediction modes. The intra prediction mode of the luminance component of the current coding block is a prediction mode with an optimal rate-distortion cost in a plurality of intra prediction modes, and the plurality of intra prediction modes are the intra prediction modes used for the intra prediction of the luminance component of the current coding block.

[0146] In step 120, when the intra prediction mode of the chroma component indicates that the prediction value of the chroma component of the current coding block is determined using the luminance component of the current coding block, the prediction block of the chroma component of the current coding block is determined according to the intra prediction mode of the luminance component.

[0147] In the possible example, the determining the prediction block of the chroma component of the current coding block according to the intra prediction mode of the luma component comprises: determining a reference prediction block of the chroma component of the current coding block according to the intra prediction mode of the luma component; and filtering the reference prediction block of the chroma component of the current coding block to obtain the prediction block of the chroma component of the current coding block.

[0148] In the implementation, the device can determine that the chroma component intra prediction mode indicates that the prediction value of the chroma component of the current coding block is determined using the luma component of the current coding block when it is determined that the intra prediction mode of the luma component is a preset intra prediction mode. The preset intra prediction mode is a preset directional luma component intra prediction mode, which includes but is not limited to a horizontal direction (for example, a direction along the X-axis in the two-dimensional rectangular coordinate system XoY as shown in FIG. 1) and a vertical direction (for example, a direction along the negative direction of the Y-axis in the two-dimensional rectangular coordinate system XoY as shown in FIG. 1).

[0149] In the possible example, the filtering the reference prediction block of the chroma component of the current coding block comprises: filtering the reference prediction block of the chroma component of the current coding block using a third filter.

[0150] In the possible example, the third filter comprises a filter for filtering a left side boundary pixel region of the reference prediction block of the chroma component and a filter for filtering a non-left side boundary pixel region of the reference prediction block of the chroma component.

[0151] In the possible example, the filter for filtering the left side boundary pixel region of the reference prediction block of the chroma component comprises a third two-tap filter; and the third two-tap filter comprises:

[0152] P C (x, y) = (P' C (2x, 2y) + P' C (2x, 2y+1) + 1) >> 1

[0153] wherein x, y are coordinates of a pixel, P' C is a prediction sample of a pixel in the reference prediction block of the chroma component, and P C is a prediction sample of the chroma component of a current pixel in the prediction block of the chroma component.

[0154] In the possible example, the filter for filtering the non-left side boundary pixel region of the reference prediction block of the chroma component comprises a first six-tap filter; and the first six-tap filter comprises:

[0155]

[0156] wherein x, y are coordinates of the current pixel, P C is a prediction sample of a pixel in the reference prediction block of the chroma component, P C is a prediction sample of the chroma component of the current pixel in the prediction block of the chroma component.

[0157] In the possible example, the determining the reference prediction block of the chroma component of the current coding block according to the intra prediction mode of the luma component comprises: determining a reconstructed block of the luma component of the current coding block according to the intra prediction mode of the luma component; and determining the reference prediction block of the chroma component of the current coding block according to the reconstructed block of the luma component of the current coding block.

[0158] wherein the size of the reference prediction block of the chroma component is the same as the size of the reconstructed block of the luma component. For example, the reconstructed block of the luma component and the reference prediction block of the chroma component in the prediction process shown in FIG. 8 are both 8*8 pixel arrays.

[0159] In the possible example, the determining the reference prediction block of the chroma component of the current coding block according to the reconstructed block of the luma component of the current coding block comprises: determining a linear model for cross-component prediction using the reconstructed block of the luma component of the current coding block; and calculating the reference prediction block of the chroma component of the current coding block according to the linear model.

[0160] wherein the linear model can be the linear model of the aforementioned formula (1) or (2) (3) for example.

[0161] In the possible example, the determining the linear model for cross-component prediction using the reconstructed block of the luma component of the current coding block comprises: determining reference pixels for calculating the linear model, the reference pixels comprising at least one neighboring pixel of the current coding block; and calculating the linear model according to the reference pixels.

[0162] wherein the selection of the reference pixels for calculating the linear model can be extended to the neighboring pixels of the lower left side, the left side, the upper left side, the upper side and the upper right side of the current coding block.

[0163] Optionally, if the current coding block is a partial image block in the current coding block, the device can select a linear model suitable for the current coding block from a plurality of linear models, and specifically can select the linear model suitable for the current coding block according to the image characteristics. Since the coefficients of the linear model have not been determined, the linear model also needs to be calculated according to the reference pixels. It can be seen that the device can provide a more refined prediction mechanism for the chroma component prediction of the current coding block, and realize more refined image prediction.

[0164] In the possible example, the determining the reference pixels for calculating the linear model comprises: determining the reference pixels for calculating the linear model according to available information of reconstructed samples of neighboring pixels of the current coding block and the intra prediction mode of the chroma component.

[0165] The intra prediction mode of the chroma component of the current coding block comprises any one of TSCPM_T, TSCPM_L, MPCM_T and MPCM_L. The available information specifically comprises two-side available and one-side available (for example, left-side available and right-side available). Details are described below.

[0166] If the intra prediction mode of the chroma component of the current coding block is TSCPM_T or MPCM_T, and reconstructed samples of the upper neighboring pixels of the original pixel block corresponding to the current coding block and reconstructed samples of the left neighboring pixels of the original pixel block corresponding to the current coding block are available, the reference neighboring pixels for calculating the coefficients of the linear model are four of the upper neighboring pixels of the original pixel block, as shown in (b) of FIG. 6.

[0167] If the intra prediction mode of the chroma component of the current coding block is TSCPM_L or MPCM_L, and reconstructed samples of the upper neighboring pixels of the original pixel block corresponding to the current coding block and reconstructed samples of the left neighboring pixels of the original pixel block corresponding to the current coding block are available, the reference neighboring pixels for calculating the coefficients of the linear model are four of the upper neighboring pixels of the original pixel block, as shown in (c) of FIG. 6.

[0168] It can be seen that in the example, the reference neighboring pixels for calculating the coefficients of the linear model can be flexibly set according to the availability of reconstructed samples of neighboring pixels and the intra prediction mode of the chroma component.

[0169] In the possible example, the determining the reference pixels for calculating the linear model comprises: determining the reference pixels for calculating the linear model according to a rate-distortion cost optimal intra prediction mode of a luminance component of a neighboring coding block of the current coding block.

[0170] The rate-distortion cost optimal intra prediction mode of the luminance component of the neighboring coding block can be the same as or different from a rate-distortion cost optimal intra prediction mode of the luminance component of the current coding block.

[0171] Step 130, performing prediction correction on the prediction block of the chroma component of the current coding block to obtain a corrected prediction block of the chroma component of the current coding block.

[0172] In the possible example, the prediction block of the chroma component of the current coding block is predicted and corrected, including: determining a filter according to the intra prediction mode of the chroma component; and using the filter to predict and correct the prediction block of the chroma component of the current coding block.

[0173] The filter direction is orthogonal to the direction of the adjacent pixels used to calculate the linear model by the intra prediction mode of the chroma component, including a vertical direction and a horizontal direction, the vertical direction corresponds to using the upper adjacent pixel to calculate the linear model, and the horizontal direction corresponds to using the left adjacent pixel to calculate the linear model.

[0174] In the possible example, the filter is determined according to the intra prediction mode of the chroma component, including: when the intra prediction mode of the chroma component is TSCPM_T or MPCM_T, the filter is set as a first filter.

[0175] In the possible example, the first filter is used to filter the pixel region adjacent to the left boundary of the prediction block of the chroma component of the current coding block and the pixel region of the prediction block of the chroma component of the current coding block.

[0176] For example, as shown in FIG. 12B, the down-sampling process in the horizontal direction of the 4*4 pixel array, taking the pixels in the prediction block of the chroma component and the left boundary adjacent pixels as an example, first, the first two-tap filter is used to down-sample the pixel a and the left boundary adjacent pixel 1 to form the pixel A of the corrected prediction block of the chroma component, in the horizontal direction, the first two-tap filter is used to down-sample the pixel b and the left boundary adjacent pixel 1 to form the pixel B of the corrected prediction block of the chroma component, and the other columns are the same, until the first two-tap filter is used to down-sample the pixel p and the left boundary adjacent pixel 4 to form the pixel P of the corrected prediction block of the chroma component.

[0177] In the possible example, the first filter includes a first two-tap filter; and the first two-tap filter includes:

[0178] P'(x, y) = f(x) P(-1, y) + (1-f(x)) P(x, y)

[0179] P'(x, y) = P(-1, y) + f(x) * (P(x, y) - P(-1, y)), wherein x, y are coordinates of the current pixel, the value of x does not exceed the value range of the width of the current coding block, the value of y does not exceed the value range of the height of the current coding block, P'(x, y) is the final prediction sample of pixel (x, y) of the prediction block of the chroma component of the current coding block, P(-1, y) is the reconstructed sample of the pixel adjacent to the left boundary located in the y row, f(x) is the horizontal filtering coefficient of which pixel (x, y) refers to the pixel P(-1, y), and P(x, y) is the original prediction sample of pixel (x, y).

[0180] In the possible example, the horizontal filtering coefficient is determined by a first parameter set, and the first parameter set includes a size of the prediction block of the chroma component and a distance between pixel (x, y) and pixel P(-1, y).

[0181] In the possible example, the value of the horizontal filtering coefficient is related to the size of the chroma component of the current coding block and the distance between the prediction pixel and the left adjacent pixel in the prediction block of the current chroma component.

[0182] Specifically, the selection of the filtering coefficient is related to the size of the chroma component, the prediction block of the chroma component of the current coding block is divided into different filter coefficient groups according to the size, and the corresponding filter coefficient group is selected according to the size of the prediction block of the current chroma component. The selection of the horizontal filtering coefficient is related to the distance between the current prediction pixel and the left adjacent pixel, the distance between the current prediction pixel and the left adjacent pixel is taken as an index value, and the corresponding filtering coefficient is selected from the corresponding filter coefficient group. The intra chroma prediction filtering coefficient is specifically shown in Table 1. It is worth noting that all the coefficients in the table can be enlarged and shifted in the specific encoding process to reduce the calculation complexity.

[0183] Table 1: Intra chroma prediction filtering coefficient

[0184]

[0185] In addition, the filter coefficient of the technology can be stored in a coefficient truncation manner, that is, the filtering coefficients of all pixels whose distance between the current prediction pixel and the left adjacent pixel is greater than 10 are consistent.

[0186] In the possible example, the filter is determined according to the intra prediction mode of the chroma component, and the filter is set as a second filter when the intra prediction mode of the chroma component is TSCPM_L or MPCM_L.

[0187] In the possible example, the second filter is used to filter a pixel region adjacent to the upper boundary of the prediction block of the chroma component of the current coding block and a pixel region of the prediction block of the chroma component of the current coding block.

[0188] For example, as shown in FIG. 12C, the down-sampling process in the vertical direction in the 4*4 pixel array, taking the pixels in the prediction block of the chroma component and the upper side neighboring pixels as an example, first, the first two-tap filter is used for down-sampling the pixels a and the upper side neighboring pixel 1 to form the pixel A of the modified prediction block of the chroma component, in the vertical direction, the first two-tap filter is used for down-sampling the pixels e and the upper side neighboring pixel 1 to form the pixel E of the modified prediction block of the chroma component, and the other columns are processed in the same way until the first two-tap filter is used for down-sampling the pixels p and the upper side neighboring pixel 4 to form the pixel P of the modified prediction block of the chroma component.

[0189] In the possible example, the second filter includes a second two-tap filter; the second two-tap filter includes:

[0190] P'(x, y) = f(y) P(x, -1) + (1-f(y)) P(x, y)

[0191] wherein x and y are coordinates of the current pixel, the value of x is not more than the value range of the width of the current coding block, the value of y is not more than the value range of the height of the current coding block, P'(x, y) is the final prediction sample of the pixel (x, y) of the prediction block of the chroma component of the current coding block, P(x, -1) is the reconstructed sample of the pixel adjacent to the upper side boundary in the x column, f(y) is the vertical filter coefficient of the pixel (x, y) referring to the pixel P(x, -1), and P(x, y) is the original prediction sample of the pixel (x, y).

[0192] In the possible example, the vertical filter coefficient is determined by a second parameter set, and the second parameter set includes the size of the prediction block of the chroma component and the distance between the pixel (x, y) and the pixel P(x, -1).

[0193] wherein the value of the vertical filter coefficient is related to the size of the chroma component of the current coding block and the distance between the prediction pixel and the left neighboring pixel in the prediction block of the current chroma component.

[0194] Specifically, the selection of the filter coefficient is related to the size of the chroma component, and the filter coefficient is selected according to the size of the prediction block of the chroma component of the current coding block. The selection of the vertical filter coefficient is related to the distance between the current prediction pixel and the upper side neighboring pixel, and the distance between the current prediction pixel and the upper side neighboring pixel is taken as an index value to select the corresponding filter coefficient from the corresponding filter coefficient set. The intra chroma prediction filter coefficient is specifically shown in Table 1.

[0195] In addition, the filter coefficients of the technology can be reduced in coefficient truncation manner to reduce coefficient storage, i.e., the filter coefficients of all pixels whose distance from the current predicted pixel to the upper adjacent pixel is greater than 10 are consistent.

[0196] In a specific implementation, after the modified prediction block of the chroma component of the current coding block is determined, the device can further calculate a reconstructed block of the chroma component, and determine a reconstructed image block of the current coding block according to the reconstructed block of the chroma component and the reconstructed block of the luma component.

[0197] It can be seen that, in the cross-component intra prediction mode, the scheme provided in the embodiments of the present application improves the prediction accuracy and coding efficiency by correcting the prediction sample of the chroma component of each pixel by comprehensively considering the correlation of the adjacent pixels in the orthogonal direction.

[0198] In one possible example, the prediction correction on the prediction block of the chroma component of the current coding block includes: calculating a first rate-distortion cost of the current coding block in an uncorrected case, and calculating a second rate-distortion cost of the current coding block in a corrected case; determining that the first rate-distortion cost is greater than the second rate-distortion cost; and performing the prediction correction on the prediction block of the chroma component of the current coding block.

[0199] It can be seen that, in the example, the number of rate-distortion cost calculations is not increased, and no additional rate-distortion cost calculation is required, thereby avoiding a large increase in calculation complexity.

[0200] In one possible example, the prediction correction is indicated by using an existing flag bit; no additional flag bit is added, thereby saving the transmission code stream. Alternatively,

[0201] The prediction correction is indicated by using an independent flag bit. The indication is more clear and efficient. If the enhanced two-step cross-component prediction mode is used for the chroma component of the current coding block, the flag bit is used to indicate whether the current coding block uses the intra chroma component prediction filtering technology.

[0202] In one possible example, the linear model applicable to the current coding block can be replaced by a linear model applicable to each row.

[0203] Corresponding to the image coding method described in FIG. 12A, FIG. 13 is a flowchart of an image coding method according to an embodiment of the present application. The image coding method can be applied to the destination device 20 in the video coding system 1 shown in FIG. 9 or the video decoder 200 shown in FIG. 11. The flowchart shown in FIG. 13 is described by taking the video encoder 200 shown in FIG. 11 as an example. As shown in FIG. 13, the cross-component prediction method provided in the embodiments of the present application includes:

[0204] At step 210, the code stream is parsed to determine the luma component intra prediction mode and the chroma component intra prediction mode of the current decoding block.

[0205] The color format of the video of the code stream includes, but is not limited to, 4:2:0, 4:2:2, etc.

[0206] In specific implementations, the code stream is subjected to entropy decoding to obtain a syntax element, which is used to determine the luma component intra prediction mode and the chroma component intra prediction mode used for predicting the current decoding block. The luma component intra prediction mode is the optimal luma component intra prediction mode from a plurality of intra prediction modes used for luma component intra prediction.

[0207] At step 220, when the chroma component intra prediction mode indicates that the reconstructed block of the luma component of the current decoding block is used to determine the predicted value of the chroma component of the current decoding block, a predicted block of the chroma component of the current decoding block is determined according to the luma component intra prediction mode.

[0208] In this possible example, the determination of the predicted block of the chroma component of the current decoding block according to the luma component intra prediction mode includes: determining a reference predicted block of the chroma component of the current decoding block according to the luma component intra prediction mode; and filtering the reference predicted block of the chroma component of the current decoding block to obtain the predicted block of the chroma component of the current decoding block.

[0209] In specific implementations, the device can determine that the chroma component intra prediction mode indicates that the luma component of the current decoding block is used to determine the chroma component of the current decoding block when it is determined that the luma component intra prediction mode is a preset intra prediction mode. The preset intra prediction mode is a luma component intra prediction mode of a preset direction, which includes, but is not limited to, a horizontal direction (for example, along the X-axis direction in the two-dimensional rectangular coordinate system XoY as shown in FIG. 1) and a vertical direction (for example, along the negative direction of the Y-axis in the two-dimensional rectangular coordinate system XoY as shown in FIG. 1).

[0210] In this possible example, the filtering of the reference predicted block of the chroma component of the current decoding block includes filtering the reference predicted block of the chroma component of the current decoding block using a third filter.

[0211] In this possible example, the third filter includes a filter for filtering a left side boundary pixel region of the reference predicted block of the chroma component and a filter for filtering a non-left side boundary pixel region of the reference predicted block of the chroma component.

[0212] In the possible example, the filter for filtering the left-side boundary pixel region of the reference prediction block of the chroma component comprises a third two-tap filter; the third two-tap filter comprises:

[0213] P C (x, y) = (P' C (2x, 2y) + P' C (2x, 2y+1) + 1) » 1

[0214] wherein x, y are coordinates of the pixel, P' C is a prediction sample of a pixel in the reference prediction block of the chroma component, P C is a prediction sample of the chroma component of the current pixel in the prediction block of the chroma component.

[0215] In the possible example, the filter for filtering the non-left-side boundary pixel region of the reference prediction block of the chroma component comprises a first six-tap filter; the first six-tap filter comprises:

[0216]

[0217] wherein x, y are coordinates of the current pixel, P' C is a prediction sample of a pixel in the reference prediction block of the chroma component, P C is a prediction sample of the chroma component of the current pixel in the prediction block of the chroma component.

[0218] In the possible example, the determining the reference prediction block of the chroma component of the current decoding block according to the intra prediction mode of the luma component comprises: determining a reconstructed block of the luma component of the current decoding block according to the intra prediction mode of the luma component; and determining the reference prediction block of the chroma component of the current decoding block according to the reconstructed block of the luma component of the current decoding block.

[0219] wherein the size of the reference prediction block of the chroma component is the same as the size of the reconstructed block of the luma component. For example, the reconstructed block of the luma component and the reference prediction block of the chroma component in the prediction process shown in FIG. 8 are both 8*8 pixel arrays.

[0220] In the possible example, the determining the reference prediction block of the chroma component of the current decoding block according to the reconstructed block of the luma component of the current decoding block comprises: determining a linear model for cross-component prediction using the reconstructed block of the luma component of the current decoding block; and calculating the reconstructed block of the luma component according to the linear model to obtain the reference prediction block of the chroma component of the current decoding block.

[0221] The linear model may be, for example, the linear model of the aforementioned formula (1) or (2) (3).

[0222] In the possible example, the determining the linear model for cross-component prediction using the reconstructed block of the luma component of the current decoding block comprises: determining reference pixels for calculating the linear model, the reference pixels comprising at least one neighboring pixel of the current decoding block; and calculating the linear model according to the reference pixels.

[0223] The selection of the reference pixels for calculating the linear model may be extended to the neighboring pixels of the lower left side, the left side, the upper left side, the upper side, and the upper right side of the current decoding block.

[0224] In the possible example, the determining the reference pixels for calculating the linear model comprises: determining the reference pixels for calculating the linear model according to available information of reconstructed samples of the neighboring pixels of the current decoding block and the intra prediction mode of the chroma component.

[0225] The intra prediction mode of the chroma component of the current decoding block comprises any one of TSCPM_T, TSCPM_L, MPCM_T, and MPCM_L. The available information specifically comprises two-side available and one-side available (for example, left-side available and right-side available). It can be seen that, in the example, the reference neighboring pixels for calculating the coefficients of the linear model can be flexibly set according to the availability of the reconstructed samples of the neighboring pixels and the intra prediction mode of the chroma component.

[0226] In the possible example, the determining the reference pixels for calculating the linear model comprises: determining the reference pixels for calculating the linear model according to a rate-distortion cost optimal intra prediction mode of a luma component of a neighboring decoding block of the current decoding block. The rate-distortion cost optimal intra prediction mode of the luma component of the neighboring decoding block may be the same as or different from a rate-distortion cost optimal intra prediction mode of the luma component of the current decoding block.

[0227] In step 230, a prediction block of the chroma component of the current decoding block is prediction corrected to obtain a corrected prediction block of the chroma component of the current decoding block.

[0228] In the possible example, the prediction correcting the prediction block of the chroma component of the current decoding block comprises: determining a filter according to the intra prediction mode of the chroma component; and prediction correcting the prediction block of the chroma component of the current decoding block using the filter.

[0229] The filter is determined according to the chroma component intra prediction mode, and the filter direction of the filter is orthogonal to a direction of adjacent pixels used by the chroma component intra prediction mode to calculate a linear model relative to a current coding block.

[0230] In the possible example, the filter is determined according to the chroma component intra prediction mode, and when the chroma component intra prediction mode is TSCPM_T or MPCM_T, the filter is set as a first filter.

[0231] In the possible example, the first filter is used to filter a pixel region adjacent to a left side boundary of a prediction block of the chroma component of the current decoding block and the pixel region of the prediction block of the chroma component of the current decoding block.

[0232] In the possible example, the first filter includes a first two-tap filter, and the first two-tap filter includes:

[0233] P'(x, y) = f(x) P(-1, y) + (1-f(x)) P(x, y)

[0234] wherein x and y are coordinates of a current pixel, a value of x is not more than a value range of a width of a current coding block, a value of y is not more than a value range of a height of the current coding block, P'(x, y) is a final prediction sample of a pixel (x, y) of a prediction block of the chroma component of the current coding block, P(-1, y) is a reconstructed sample of a pixel adjacent to a left side boundary located in a y-th row, f(x) is a horizontal filter coefficient of the pixel (x, y) referring to the pixel P(-1, y), and P(x, y) is an original prediction sample of the pixel (x, y).

[0235] In the possible example, the horizontal filter coefficient is determined by a first parameter set, and the first parameter set includes a size of the prediction block of the chroma component and a distance between the pixel (x, y) and the pixel P(-1, y).

[0236] In the possible example, the filter is determined according to the chroma component intra prediction mode, and the filter includes:

[0237] When the chroma component intra prediction mode is TSCPM_L or MPCM_L, the filter is set as a second filter.

[0238] In the possible example, the second filter is used to filter a pixel region adjacent to an upper side boundary of a prediction block of the chroma component of the current decoding block and the pixel region of the prediction block of the chroma component of the current decoding block.

[0239] In the possible example, the second filter comprises a second two-tap filter; the second two-tap filter comprises:

[0240] P'(x, y) = f(y) P(x, -1) + (1 - f(y)) P(x, y)

[0241] wherein x, y are coordinates of the current pixel, the value of x is not more than the value range of the width of the current coding block, the value of y is not more than the value range of the height of the current coding block, P'(x, y) is the final prediction sample of the pixel (x, y) of the prediction block of the chroma component of the current coding block, P(x, -1) is the reconstructed sample of the pixel adjacent to the upper boundary in the x column, f(y) is the vertical filtering coefficient of the pixel (x, y) referring to the pixel P(x, -1), and P(x, y) is the original prediction sample of the pixel (x, y).

[0242] In the possible example, the vertical filtering coefficient is determined by a second parameter set, and the second parameter set comprises a size of the prediction block of the chroma component and a distance between the pixel (x, y) and the pixel P(x, -1).

[0243] wherein the value of the vertical filtering coefficient is related to the size of the chroma component of the current decoding block and the distance between the prediction pixel and the left adjacent pixel in the prediction block of the current chroma component.

[0244] Specifically, the selection of the filtering coefficient is related to the size of the chroma component, the prediction block of the chroma component of the current decoding block is divided into different filter coefficient groups according to the size, and the corresponding filter coefficient group is selected according to the size of the prediction block of the current chroma component. The selection of the vertical filtering coefficient is related to the distance between the current prediction pixel and the upper adjacent pixel, the distance between the current prediction pixel and the upper adjacent pixel is taken as an index value, and the corresponding filtering coefficient is selected from the corresponding filter coefficient group. The intra chroma prediction filtering coefficient is specifically shown in Table 1.

[0245] In addition, the filter coefficient of the technology can reduce the coefficient storage in the form of coefficient truncation, that is, the filtering coefficients of all pixels whose distance between the current prediction pixel and the upper adjacent pixel is greater than 10 are consistent.

[0246] In a specific implementation, after the prediction block of the chroma component of the current decoding block is determined, the device can further calculate the reconstructed block of the chroma component, and determine the reconstructed image of the current decoding block according to the reconstructed block of the chroma component and the reconstructed block of the luma component.

[0247] It can be seen that, in the cross-component intra prediction mode, the prediction accuracy and the decoding efficiency are improved by correcting the prediction sample of the chroma component of each pixel by comprehensively considering the correlation of the orthogonal directions in the scheme of the present application compared with the prior art.

[0248] In one possible example, the prediction modification on the prediction block of the chroma component of the current decoding block comprises: parsing the bitstream to obtain a flag; determining that the flag indicates that the prediction modification is performed using a filter; and performing the prediction modification on the prediction block of the chroma component of the current decoding block. In this example, the prediction modification is directly indicated by the flag.

[0249] In one possible example, the prediction modification is indicated by a shared flag; no additional flag is added, and the transmission of the bitstream is saved.

[0250] Alternatively,

[0251] The prediction modification is indicated by an independent flag. The indication is more clear and efficient. If the enhanced two-step cross-component prediction mode is used for the chroma component of the current decoding block, the flag is used to indicate whether the intra chroma component prediction filtering technology is used for the current decoding block.

[0252] The proposed technology is implemented on the AVS reference software HPM6.0, and 1-second sequence tests are performed on the all intra mode and the random access mode under the general test condition and the video sequence. The specific performance is shown in Table 2 and Table 3.

[0253] Table 2: All Intra test results

[0254]

[0255] Table 3: Random Access test results

[0256]

[0257] As can be seen from Table 2 and Table 3, the UV component of the test sequence has an average performance gain of more than 0.3%, and the Y component has an average performance gain of 0.06% under the RA test condition.

[0258] Embodiments of the present application provide an image encoding apparatus, which can be a video decoder or a video encoder. Specifically, the image encoding apparatus is configured to perform the steps performed by the video decoder in the above decoding method. The image encoding apparatus provided by the embodiments of the present application can include modules corresponding to the steps.

[0259] The embodiments of the present application can divide the functional modules of the image coding device according to the above method examples. For example, each functional module can be divided according to each function, or two or more functions can be integrated into one processing module. The integrated module can be realized in the form of hardware or in the form of a software functional module. The division of the modules in the embodiments of the present application is illustrative, and is merely a logical functional division. In actual implementation, another division manner can be used.

[0260] In the case of dividing each functional module according to each function, FIG. 14 shows a possible structural schematic diagram of the image coding device involved in the above embodiments. As shown in FIG. 14, the image coding device 14 includes a division unit 140, a determination unit 141, and a correction unit 142.

[0261] The division unit 140 is configured to divide an image, and determine an intra prediction mode of a luminance component and an intra prediction mode of a chroma component of a current coding block.

[0262] The determination unit 141 is configured to, when the intra prediction mode of the chroma component indicates that a prediction value of the chroma component of the current coding block is determined using the luminance component of the current coding block, determine a prediction block of the chroma component of the current coding block according to the intra prediction mode of the luminance component.

[0263] The correction unit 142 is configured to perform prediction correction on the prediction block of the chroma component of the current coding block, to obtain a corrected prediction block of the chroma component of the current coding block.

[0264] In the possible example, in the aspect of performing prediction correction on the prediction block of the chroma component of the current coding block, the correction unit 142 is specifically configured to determine a filter according to the intra prediction mode of the chroma component, and perform prediction correction on the prediction block of the chroma component of the current coding block using the filter.

[0265] In the possible example, in the aspect of determining the filter according to the intra prediction mode of the chroma component, when the intra prediction mode of the chroma component is a two-step cross-component prediction mode TSCPM_T or a multi-step cross-component prediction mode MPCM_T, the filter is set as a first filter.

[0266] In the possible example, the first filter is configured to filter a pixel region adjacent to a left boundary of the prediction block of the chroma component of the current coding block and the pixel region of the prediction block of the chroma component of the current coding block.

[0267] In the possible example, the first filter includes a first two-tap filter.

[0268] The first two-tap filter comprises:

[0269] P'(x, y) = f(x) P(-1, y) + (1 - f(x)) P(x, y)

[0270] wherein x, y are coordinates of the current pixel, the value of x does not exceed the value range of the width of the current coding block, the value of y does not exceed the value range of the height of the current coding block, P'(x, y) is the final prediction sample of pixel (x, y) of the prediction block of the chroma component of the current coding block, P(-1, y) is the reconstructed sample of the pixel adjacent to the left boundary located in the y-th row, f(x) is a horizontal filter coefficient of pixel (x, y) referring to pixel P(-1, y), and P(x, y) is the original prediction sample of pixel (x, y).

[0271] In the possible example, the horizontal filter coefficient is determined by a first parameter set comprising a size of the prediction block of the chroma component and a distance between pixel (x, y) and pixel P(-1, y).

[0272] In the possible example, in the aspect of determining the filter according to the intra prediction mode of the chroma component, the correction unit 142 is specifically configured to set the filter as a second filter when the intra prediction mode of the chroma component is TSCPM_L or MPCM_L.

[0273] In the possible example, the second filter is used to filter a pixel region adjacent to the upper boundary of the prediction block of the chroma component of the current coding block and a pixel region of the prediction block of the chroma component of the current coding block.

[0274] In the possible example, the second filter comprises a second two-tap filter.

[0275] The second two-tap filter comprises:

[0276] P'(x, y) = f(y) P(x, -1) + (1 - f(y)) P(x, y)

[0277] wherein x, y are coordinates of the current pixel, the value of x does not exceed the value range of the width of the current coding block, the value of y does not exceed the value range of the height of the current coding block, P'(x, y) is the final prediction sample of pixel (x, y) of the prediction block of the chroma component of the current coding block, P(x, -1) is the reconstructed sample of the pixel adjacent to the upper boundary located in the x-th column, f(y) is a vertical filter coefficient of pixel (x, y) referring to pixel P(x, -1), and P(x, y) is the original prediction sample of pixel (x, y).

[0278] In a possible example, the vertical filter coefficient is determined by a second parameter set, the second parameter set comprising a size of the prediction block of the chroma component and a distance between the pixel (x, y) and the pixel P(x, -1).

[0279] In a possible example, in the prediction correction of the prediction block of the chroma component of the current coding block, the correction unit 142 is specifically configured to: calculate a first rate-distortion cost of the current coding block in an uncorrected case, and calculate a second rate-distortion cost of the current coding block in a corrected case; and determine that the first rate-distortion cost is greater than the second rate-distortion cost; and perform the prediction correction on the prediction block of the chroma component of the current coding block.

[0280] In a possible example, the prediction correction is indicated by a shared flag.

[0281] The prediction correction is indicated by an independent flag.

[0282] In a possible example, in the determination of the prediction block of the chroma component of the current coding block according to the luma component intra prediction mode, the determination unit 141 is specifically configured to: determine a reference prediction block of the chroma component of the current coding block according to the luma component intra prediction mode; and filter the reference prediction block of the chroma component of the current coding block to obtain the prediction block of the chroma component of the current coding block.

[0283] In a possible example, in the filtering of the reference prediction block of the chroma component of the current coding block, the determination unit 141 is specifically configured to: filter the reference prediction block of the chroma component of the current coding block by using a third filter.

[0284] In a possible example, the third filter comprises a filter for filtering a left side boundary pixel region of the reference prediction block of the chroma component and a filter for filtering a non-left side boundary pixel region of the reference prediction block of the chroma component.

[0285] In a possible example, the filter for filtering the left side boundary pixel region of the reference prediction block of the chroma component comprises a third two-tap filter.

[0286] The third two-tap filter comprises:

[0287] P C (x, y) = (P' C (2x, 2y) + P' C (2x, 2y+1) + 1) >> 1

[0288] wherein x, y are coordinates of the current pixel, P C is a prediction sample of the pixel in the reference prediction block of the chroma component, P C is a prediction sample of the chroma component of the current pixel in the prediction block of the chroma component.

[0289] In the possible example, the filter for filtering the non-left-side boundary pixel region of the reference prediction block of the chroma component comprises a first six-tap filter.

[0290] The first six-tap filter comprises:

[0291]

[0292] wherein x, y are coordinates of the current pixel, P C is a prediction sample of the pixel in the reference prediction block of the chroma component, P C is a prediction sample of the chroma component of the current pixel in the prediction block of the chroma component.

[0293] In the possible example, in the determining the reference prediction block of the chroma component of the current coding block according to the intra prediction mode of the luma component, the determining unit 141 is specifically configured to determine a reconstructed block of the luma component of the current coding block according to the intra prediction mode of the luma component; and determine the reference prediction block of the chroma component of the current coding block according to the reconstructed block of the luma component.

[0294] In the possible example, in the determining the reference prediction block of the chroma component of the current coding block according to the reconstructed block of the luma component of the current coding block, the determining unit 141 is specifically configured to determine a linear model for cross-component prediction using the reconstructed block of the luma component of the current coding block; and obtain the reference prediction block of the chroma component of the current coding block according to the linear model.

[0295] In the possible example, in the determining the linear model for cross-component prediction using the reconstructed block of the luma component of the current coding block, the determining unit 141 is specifically configured to determine a reference pixel for calculating the linear model, the reference pixel comprising at least one neighboring pixel of the current coding block; and calculate the linear model according to the reference pixel.

[0296] In the possible example, in the determining the reference pixel for calculating the linear model, the determining unit 141 is specifically configured to determine the reference pixel for calculating the linear model according to available information of reconstructed samples of the neighboring pixels of the current coding block and the intra prediction mode of the chroma component.

[0297] In the possible example, in the determining reference pixels for calculating the linear model, the determining unit 141 is specifically configured to determine the reference pixels for calculating the linear model according to the rate-distortion cost optimal luma component intra prediction mode of the neighboring coding block of the current coding block.

[0298] All the related content of each step involved in the method embodiments can be cited to the function description of the corresponding function module, which will not be repeated here. Of course, the image coding apparatus provided by the embodiments of the present application includes but is not limited to the above-mentioned modules, for example: the image coding apparatus can also include a storage unit 143. The storage unit 143 can be used to store the program code and data of the image coding apparatus.

[0299] In the case of using integrated units, the structural diagram of the image coding apparatus provided by the embodiments of the present application is shown in FIG. 15. In FIG. 15, the image coding apparatus 15 includes a processing module 150 and a communication module 151. The processing module 150 is used to control and manage the actions of the image coding apparatus, for example, to execute the steps performed by the division unit 140, the determining unit 141 and the correction unit 142, and / or to execute other processes of the technology described herein. The communication module 151 is used to support the interaction between the image coding apparatus and other devices. As shown in FIG. 15, the image coding apparatus can also include a storage module 152, which is used to store the program code and data of the image coding apparatus, for example, to store the contents stored by the storage unit 143.

[0300] The processing module 150 can be a processor or a controller, for example, a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), an ASIC, an FPGA or other programmable logic device, a transistor logic device, a hardware component or any combination thereof. It can implement or execute various exemplary logical blocks, modules and circuits described in combination with the disclosure of the present application. The processor can also be a combination of computing functions, such as one or more microprocessor combinations, combinations of DSP and microprocessor, etc. The communication module 151 can be a transceiver, RF circuit or communication interface, etc. The storage module 152 can be a memory.

[0301] All the related content of each scene involved in the above method embodiments can be cited to the function description of the corresponding function module, which will not be repeated here. The image encoding device 14 and the image encoding device 15 can both perform the image encoding method shown in FIG. 12A. The image encoding device 14 and the image encoding device 15 can be a video image encoding device or other device with video encoding function.

[0302] The application also provides a video encoder, comprising a non-volatile storage medium storing an executable program, and a central processing unit connected with the non-volatile storage medium and executing the executable program to realize the image encoding method of the embodiments of the application.

[0303] The embodiments of the application provide an image decoding device, which can be a video decoder or a video decoder. Specifically, the image decoding device is used to perform the steps performed by the video decoder in the above decoding method. The image decoding device provided by the embodiments of the application can include modules corresponding to the corresponding steps.

[0304] The embodiments of the application can divide the image decoding device into function modules according to the above method examples. For example, each function module can be divided according to each function, or two or more functions can be integrated into one processing module. The above integrated module can be realized in the form of hardware or software function module. The division of modules in the embodiments of the application is illustrative, and is only a logical function division. When actually implemented, there can be another division mode.

[0305] In the case of dividing each function module according to each function, FIG. 16 shows a possible structure schematic diagram of the image decoding device involved in the above embodiments. As shown in FIG. 16, the image decoding device 16 comprises an analysis unit 160, a determination unit 161 and a correction unit 162.

[0306] The analysis unit 160 is configured to analyze a code stream, and determine an intra prediction mode of a luminance component and an intra prediction mode of a chroma component of a current decoding block.

[0307] The determination unit 161 is configured to, when the intra prediction mode of the chroma component indicates that a prediction value of the chroma component of the current decoding block is determined using a reconstructed block of the luminance component of the current decoding block, determine a prediction block of the chroma component of the current decoding block according to the intra prediction mode of the luminance component.

[0308] The correction unit 162 is configured to perform prediction correction on the prediction block of the chroma component of the current decoding block to obtain a corrected prediction block of the chroma component of the current decoding block.

[0309] In a possible example, in the prediction correction of the prediction block of the chroma component of the current decoding block, the correction unit 162 is specifically configured to: determine a filter according to the intra prediction mode of the chroma component; and perform prediction correction on the prediction block of the chroma component of the current decoding block using the filter.

[0310] In a possible example, in the determination of the filter according to the intra prediction mode of the chroma component, the correction unit 162 is specifically configured to: when the intra prediction mode of the chroma component is TSCPM_T or MPCM_T, the filter is set as a first filter.

[0311] In a possible example, the first filter is used to filter a pixel region adjacent to a left boundary of the prediction block of the chroma component of the current decoding block and the pixel region of the prediction block of the chroma component of the current decoding block.

[0312] In a possible example, the first filter includes a first two-tap filter.

[0313] The first two-tap filter includes:

[0314] P'(x, y) = f(x) P(-1, y) + (1-f(x)) P(x, y)

[0315] wherein x and y are coordinates of a current pixel, x is not greater than a width of a current coding block, y is not greater than a height of the current coding block, P'(x, y) is a final prediction sample of a pixel (x, y) of the prediction block of the chroma component of the current coding block, P(-1, y) is a reconstructed sample of a pixel adjacent to a left boundary in a y-th row, f(x) is a horizontal filter coefficient of the pixel (x, y) referring to the pixel P(-1, y), and P(x, y) is an original prediction sample of the pixel (x, y).

[0316] In a possible example, the horizontal filter coefficient is determined by a first parameter set, and the first parameter set includes a size of the prediction block of the chroma component and a distance between the pixel (x, y) and the pixel P(-1, y).

[0317] In a possible example, the determination of the filter according to the intra prediction mode of the chroma component includes:

[0318] When the intra prediction mode of the chroma component is TSCPM_L or MPCM_L, the filter is set as a second filter.

[0319] In a possible example, the second filter is configured to filter a pixel region adjacent to an upper side boundary of the prediction block of the chroma component of the current decoded block and the pixel region of the prediction block of the chroma component of the current decoded block.

[0320] In a possible example, the second filter comprises a second two-tap filter.

[0321] The second two-tap filter comprises:

[0322] P'(x, y) = f(y) P(x, -1) + (1-f(y)) P(x, y)

[0323] wherein x and y are coordinates of the current pixel, x is not greater than a width of the current coding block, y is not greater than a height of the current coding block, P'(x, y) is a final prediction sample of a pixel (x, y) of the prediction block of the chroma component of the current coding block, P(x, -1) is a reconstructed sample of a pixel adjacent to the upper side boundary in the x-th column, f(y) is a vertical filtering coefficient of the pixel (x, y) referring to the pixel P(x, -1), and P(x, y) is an original prediction sample of the pixel (x, y).

[0324] In a possible example, the vertical filtering coefficient is determined by a second parameter set, and the second parameter set comprises a size of the prediction block of the chroma component and a distance between the pixel (x, y) and the pixel P(x, -1).

[0325] In a possible example, in the prediction correction of the prediction block of the chroma component of the current decoded block, the correction unit 162 is specifically configured to: parse the code stream to obtain a flag; determine that the flag indicates that the prediction correction is performed by using the filter; and perform the prediction correction on the prediction block of the chroma component of the current decoded block.

[0326] In a possible example, the prediction correction is indicated by a common flag.

[0327] The prediction correction is indicated by an independent flag.

[0328] In a possible example, in the determination of the prediction block of the chroma component of the current decoded block according to the intra prediction mode of the luma component, the determination unit 161 is specifically configured to: determine a reference prediction block of the chroma component of the current decoded block according to the intra prediction mode of the luma component; and filter the reference prediction block of the chroma component of the current decoded block to obtain the prediction block of the chroma component of the current decoded block.

[0329] In a possible example, the determining unit 161 is configured to determine the reference prediction block of the chroma component of the current decoded block according to the intra prediction mode of the luma component.

[0330] In a possible example, the third filter comprises a filter configured to filter a left-side boundary pixel region of the reference prediction block of the chroma component and a filter configured to filter a non-left-side boundary pixel region of the reference prediction block of the chroma component.

[0331] In a possible example, the filter configured to filter the left-side boundary pixel region of the reference prediction block of the chroma component comprises a third two-tap filter.

[0332] The third two-tap filter comprises:

[0333] P C (x, y) = (P' C (2x, 2y) + P' C (2x, 2y+1) + 1) » 1

[0334] wherein x, y are coordinates of a pixel, P' C is a prediction sample of a pixel in the reference prediction block of the chroma component, and P C is a prediction sample of the chroma component of the current pixel in the prediction block of the chroma component.

[0335] In a possible example, the filter configured to filter the non-left-side boundary pixel region of the reference prediction block of the chroma component comprises a first six-tap filter.

[0336] The first six-tap filter comprises:

[0337]

[0338] wherein x, y are coordinates of a current pixel, P' C is a prediction sample of a pixel in the reference prediction block of the chroma component, and P C is a prediction sample of the chroma component of the current pixel in the prediction block of the chroma component.

[0339] In a possible example, the determining unit 161 is configured to determine the reference prediction block of the chroma component of the current decoded block according to the intra prediction mode of the luma component by: determining a reconstructed block of the luma component of the current decoded block according to the intra prediction mode of the luma component; and determining the reference prediction block of the chroma component of the current decoded block according to the reconstructed block of the luma component of the current decoded block.

[0340] In a possible example, in the determining the reference prediction block of the chroma component of the current decoding block according to the reconstructed block of the luma component of the current decoding block, the determining unit 161 is specifically configured to: determine a linear model for cross-component prediction using the reconstructed block of the luma component of the current decoding block; and calculate the reference prediction block of the chroma component of the current decoding block according to the linear model.

[0341] In a possible example, in the determining the linear model for cross-component prediction using the reconstructed block of the luma component of the current decoding block, the determining unit 161 is specifically configured to: determine reference pixels for calculating the linear model, the reference pixels including at least one neighboring pixel of the current decoding block; and calculate the linear model according to the reference pixels.

[0342] In a possible example, in the determining the reference pixels for calculating the linear model, the determining unit 161 is specifically configured to: determine the reference pixels for calculating the linear model according to available information of reconstructed samples of the neighboring pixels of the current decoding block and the intra prediction mode of the luma component.

[0343] In a possible example, in the determining the reference pixels for calculating the linear model, the determining unit 161 is specifically configured to: determine the reference pixels for calculating the linear model according to a rate-distortion cost optimal intra prediction mode of the luma component of a neighboring decoding block of the current decoding block.

[0344] Wherein, all the related content of each step involved in the above method embodiments can be cited to the function description of the corresponding function module, which will not be repeated here. Of course, the image decoding apparatus provided by the embodiments of the present application includes but is not limited to the above-mentioned modules, for example: the image decoding apparatus can also include a storage unit 163. The storage unit 163 can be used to store the program code and data of the image decoding apparatus.

[0345] In the case of using integrated units, the structural diagram of the image decoding apparatus provided by the embodiments of the present application is shown in FIG. 17. In FIG. 17, the image decoding apparatus 17 includes: a processing module 170 and a communication module 171. The processing module 170 is used to control and manage the actions of the image decoding apparatus, for example, to execute the steps performed by the parsing unit 160, the determining unit 161 and the correction unit 162, and / or to execute other processes of the technologies described herein. The communication module 171 is used to support the interaction between the image decoding apparatus and other devices. As shown in FIG. 15, the image decoding apparatus can also include a storage module 172, which is used to store the program code and data of the image decoding apparatus, for example, to store the contents saved by the storage unit 163.

[0346] The processing module 170 can be a processor or a controller, for example, a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), an ASIC, an FPGA, or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. The processing module 170 can implement or execute various example logical blocks, modules, and circuits described in connection with the disclosure. The processing module 170 can also be a combination of computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like. The communication module 171 can be a transceiver, an RF circuit, a communication interface, or the like. The storage module 172 can be a memory.

[0347] The above method embodiments involve all related content of each scene, which can be cited to the function description of the corresponding function module, and will not be repeated here. The image decoding apparatus 16 and the image decoding apparatus 17 can perform the image decoding method shown in FIG. 13, and the image decoding apparatus 16 and the image decoding apparatus 17 can be a video image decoding apparatus or other device with video decoding function.

[0348] The present application also provides a video decoder, including a non-volatile storage medium and a central processing unit, the non-volatile storage medium stores an executable program, and the central processing unit is connected with the non-volatile storage medium and executes the executable program to realize the image decoding method of the embodiments of the present application.

[0349] The present application also provides a terminal, which includes one or more processors, a memory, and a communication interface. The memory and the communication interface are coupled with the one or more processors; the memory is configured to store computer program code including instructions, and when the one or more processors execute the instructions, the terminal executes the image encoding and / or image decoding method of the embodiments of the present application. The terminal here can be a video display device, a smart phone, a portable computer, and other devices that can process or play video.

[0350] Another embodiment of the present application also provides a computer-readable storage medium, which includes one or more programs, and the one or more programs include instructions, and when a processor in a decoding device executes the program code, the decoding device executes the image encoding method and the image decoding method of the embodiments of the present application.

[0351] In another embodiment of the present application, a computer program product is also provided, which includes computer-executable instructions stored in a computer-readable storage medium; at least one processor of a decoding device can read the computer-executable instructions from the computer-readable storage medium, and the at least one processor executes the computer-executable instructions to enable the terminal to implement the image encoding method and the image decoding method according to the embodiments of the present application.

[0352] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware, or any combination thereof. When implemented by software, all or part of the embodiments can be in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present application are generated.

[0353] The computer can be a general purpose computer, a special purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions can be transmitted from one website, computer, server or data center to another website, computer, server or data center through wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) mode. The computer readable storage medium can be any available medium accessible by the computer or data storage device such as server, data center, etc. integrated with one or more available medium sets. The available medium can be a magnetic medium (such as floppy disk, hard disk, magnetic tape), an optical medium (such as DVD) or a semiconductor medium (such as solid state disk (SSD)) and the like.

[0354] The computer readable storage medium can be any available medium accessible by the computer or data storage device such as server, data center, etc. integrated with one or more available medium sets. The available medium can be a magnetic medium (such as floppy disk, hard disk, magnetic tape), an optical medium (such as DVD) or a semiconductor medium (such as solid state disk (SSD)) and the like.

[0355] From the above description of the embodiments, those skilled in the art can clearly understand that, for the convenience and brevity of description, only the division of the above functional modules is taken as an example for illustration, and in actual application, the above functions can be completed by different functional modules according to needs, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above.

[0356] In several embodiments provided in the present application, it should be understood that the disclosed apparatus and method can be implemented by other manners. For example, the apparatus embodiments described above are merely illustrative, for example, the division of the modules or units is merely a logical function division, and actual implementation can have another division manner, for example, a plurality of units or components can be combined or integrated into another apparatus, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between the units or components shown or discussed can be indirect coupling or communication connection through some interfaces, apparatuses or units, and can be electrical, mechanical or other forms.

[0357] The units described as separate components can or can not be physically separate, and the components shown as units can be one physical unit or a plurality of physical units, that is, can be located in one place, or can be distributed to a plurality of different places. Part or all of the units can be selected according to actual needs to achieve the purpose of the embodiment scheme.

[0358] In addition, the functional units in each embodiment of the present application can be integrated in one processing unit, or each unit can be physically present separately, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of a software functional unit.

[0359] The integrated unit, if realized in the form of a software functional unit and sold or used as an independent product, can be stored in a readable storage medium. Based on this understanding, the technical solutions of the embodiments of the present application essentially or the part of the prior art that contributes to the technical solutions or all or part of the technical solutions can be embodied in the form of a software product, which is stored in a storage medium and includes a plurality of instructions for causing an apparatus (which can be a single-chip microcomputer, a chip, etc.) or a processor to execute all or part of the steps of the method described in the embodiments of the present application. The foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and various storage medium capable of storing program codes. The above is merely a specific embodiment of the present application, but the protection scope of the present application is not limited thereto, and any change or replacement within the technical scope disclosed in the present application should be covered in the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims

1. An image encoding method, characterized in that, Comprising: Dividing an image to determine the intra prediction mode of the luminance component and the intra prediction mode of the chrominance component of the current coding block; When the intra prediction mode of the chrominance component indicates that the prediction value of the chrominance component of the current coding block is determined using the luminance component of the current coding block, determining the prediction block of the chrominance component of the current coding block according to the intra prediction mode of the luminance component; Performing prediction correction on the prediction block of the chrominance component of the current coding block to obtain the corrected prediction block of the chrominance component of the current coding block.

2. The method according to claim 1, characterized in that, The performing prediction correction on the prediction block of the chrominance component of the current coding block includes: Determining a filter according to the intra prediction mode of the chrominance component; Using the filter to perform prediction correction on the prediction block of the chrominance component of the current coding block.

3. The method according to claim 2, characterized in that, The determining a filter according to the intra prediction mode of the chrominance component includes: When the intra prediction mode of the chrominance component is the two-step cross-component prediction mode TSCPM_T or the multi-step cross-component prediction mode MPCM_T, the filter is set as the first filter.

4. The method according to claim 3, characterized in that, The first filter is used to filter the pixel region adjacent to the left boundary of the prediction block of the chrominance component of the current coding block and the pixel region of the prediction block of the chrominance component of the current coding block.

5. The method according to claim 4, characterized in that, The first filter includes a first two-tap filter; The first two-tap filter includes: P′(x, y) = f(x)·P(-1, y)+(1 - f(x))·P(x, y) where x and y are the coordinates of the current pixel, the value of x does not exceed the value range of the width of the current coding block, the value of y does not exceed the value range of the height of the current coding block, P′(x, y) is the final prediction sample of the pixel (x, y) of the prediction block of the chrominance component of the current coding block, P(-1, y) is the reconstructed sample of the pixel adjacent to the left boundary in row y, f(x) is the horizontal filtering coefficient of the pixel (x, y) referring to the pixel P(-1, y), and P(x, y) is the original prediction sample of the pixel (x, y).

6. The method according to claim 5, characterized in that, The horizontal filtering coefficient is determined by a first parameter set, and the first parameter set includes the size of the prediction block of the chrominance component and the distance between the pixel (x, y) and the pixel P(-1, y).

7. The method according to claim 2, characterized in that, The determining a filter according to the intra prediction mode of the chrominance component includes: When the intra prediction mode of the chrominance component is TSCPM_L or MPCM_L, the filter is set as the second filter.

8. The method according to claim 7, characterized in that, The second filter is used to filter the pixel region adjacent to the upper boundary of the prediction block of the chrominance component of the current coding block and the pixel region of the prediction block of the chrominance component of the current coding block.

9. The method according to claim 8, characterized in that, The second filter includes a second two-tap filter; The second two-tap filter includes: P′(x, y) = f(y)·P(x, -1)+(1 - f(y))·P(x, y) Wherein, x and y are the coordinates of the current pixel, the value of x does not exceed the value range of the width of the current coding block, the value of y does not exceed the value range of the height of the current coding block, P'(x, y) is the final prediction sample of the pixel (x, y) of the prediction block of the chrominance component of the current coding block, P(x, -1) is the reconstructed sample of the pixel adjacent to the upper boundary in column X, f(y) is the vertical filtering coefficient of the pixel (x, y) with reference to the pixel P(x, -1), and P(x, y) is the original prediction sample of the pixel (x, y).

10. The method according to claim 9, characterized in that, The vertical filtering coefficient is determined by a second parameter set, and the second parameter set includes the size of the prediction block of the chrominance component and the distance between the pixel (x, y) and the pixel P(x, -1).

11. The method according to claim 1, characterized in that, The prediction correction for the prediction block of the chrominance component of the current coding block includes: Calculating a first rate-distortion cost of the current coding block without correction, and calculating a second rate-distortion cost of the current coding block with correction; Determining that the first rate-distortion cost is greater than the second rate-distortion cost; Performing prediction correction on the prediction block of the chrominance component of the current coding block.

12. The method according to claim 1, characterized in that, The prediction correction is indicated by sharing an existing flag bit; or, the prediction correction is indicated by an independent flag bit.

13. The method according to claim 1, characterized in that The determining of the prediction block of the chrominance component of the current coding block according to the intra-frame prediction mode of the luminance component includes: Determining a reference prediction block of the chrominance component of the current coding block according to the intra-frame prediction mode of the luminance component; Filtering the reference prediction block of the chrominance component of the current coding block to obtain the prediction block of the chrominance component of the current coding block.

14. The method according to claim 13, characterized in that The filtering of the reference prediction block of the chrominance component of the current coding block includes: Filtering the reference prediction block of the chrominance component of the current coding block using a third filter.

15. The method according to claim 14, characterized in that The third filter includes a filter for filtering the left boundary pixel region of the reference prediction block of the chrominance component and a filter for filtering the non-left boundary pixel region of the reference prediction block of the chrominance component.

16. The method according to claim 15, characterized in that The filter for filtering the left boundary pixel region of the reference prediction block of the chrominance component includes a third two-tap filter; The third two-tap filter includes: P C (x, y) = (P' C (2x, 2y) + P' C (2x, 2y + 1) + 1) >> 1 where x and y are the coordinates of the pixel, and P' C is the predicted sample of the pixel in the reference prediction block of the chrominance component, and P C is the predicted sample of the chrominance component of the current pixel in the prediction block of the chrominance component.

17. The method according to claim 16, characterized in that The filter for filtering the non-left boundary pixel region of the reference prediction block of the chrominance component includes a first six-tap filter; The first six-tap filter includes: where x and y are the coordinates of the current pixel, and P' C is the predicted sample of the pixel in the reference prediction block of the chrominance component, and P C is the predicted sample of the chrominance component of the current pixel in the prediction block of the chrominance component.

18. The method according to any one of claims 13 - 17, characterized in that The determining of the reference prediction block of the chrominance component of the current coding block according to the intra-frame prediction mode of the luminance component includes: Determining a reconstructed block of the luminance component of the current coding block according to the intra-frame prediction mode of the luminance component; Determining a reference prediction block of the chrominance component of the current coding block according to the reconstructed block of the luminance component of the current coding block.

19. The method according to claim 18, characterized in that The determining of the reference prediction block of the chrominance component of the current coding block according to the reconstructed block of the luminance component of the current coding block includes: Determining a linear model for cross-component prediction using the reconstructed block of the luminance component of the current coding block; Calculate the reconstructed block of the luminance component according to the linear model to obtain the reference prediction block of the chrominance component of the current coding block.

20. The method according to claim 19, characterized in that The determining of the linear model for cross-component prediction using the reconstructed block of the luminance component of the current coding block includes: Determine the reference pixels for calculating the linear model, where the reference pixels include at least one adjacent pixel of the current coding block; Calculate the linear model according to the reference pixels.

21. The method according to claim 20, characterized in that The determining of the reference pixels for calculating the linear model includes: Determine the reference pixels for calculating the linear model according to the available information of the reconstructed samples of the adjacent pixels of the current coding block and the intra prediction mode of the chrominance component.

22. The method according to claim 20, characterized in that The determining of the reference pixels for calculating the linear model includes: Determine the reference pixels for calculating the linear model according to the rate-distortion cost-optimal intra prediction mode of the luminance component of the adjacent coding block of the current coding block.

23. An image decoding method, characterized in that Includes: Parse the code stream to determine the intra prediction mode of the luminance component and the intra prediction mode of the chrominance component of the current decoding block; When the intra prediction mode of the chrominance component indicates using the reconstructed block of the luminance component of the current decoding block to determine the predicted value of the chrominance component of the current decoding block, determine the predicted block of the chrominance component of the current decoding block according to the intra prediction mode of the luminance component; Perform prediction correction on the predicted block of the chrominance component of the current decoding block to obtain the corrected predicted block of the chrominance component of the current decoding block.

24. The method according to claim 23, wherein The performing of the prediction correction on the predicted block of the chrominance component of the current decoding block includes: Determine the filter according to the intra prediction mode of the chrominance component; Use the filter to perform prediction correction on the predicted block of the chrominance component of the current decoding block.

25. The method according to claim 24, wherein The determining of the filter according to the intra prediction mode of the chrominance component includes: When the intra prediction mode of the chrominance component is TSCPM_T or MPCM_T, the filter is set as the first filter.

26. The method according to claim 25, wherein The first filter is used to filter the pixel region adjacent to the left boundary of the predicted block of the chrominance component of the current decoding block and the pixel region of the predicted block of the chrominance component of the current decoding block.

27. The method according to claim 26, wherein The first filter includes a first two-tap filter; The first two-tap filter includes: P′(x, y) = f(x)·P(-1, y)+(1 - f(x))·P(x, y) where x, y are the coordinates of the current pixel, the value of x does not exceed the value range of the width of the current coding block, the value of y does not exceed the value range of the height of the current coding block, P’(x, y) is the final predicted sample of the pixel (x, y) of the predicted block of the chrominance component of the current coding block, P(-1, y) is the reconstructed sample of the pixel adjacent to the left boundary located in the y row, f(x) is the horizontal filtering coefficient of the pixel (x, y) referring to the pixel P(-1, y), and P(x, y) is the original predicted sample of the pixel (x, y).

28. The method according to claim 27, wherein The horizontal filtering coefficient is determined by a first parameter set, and the first parameter set includes the size of the predicted block of the chrominance component and the distance between the pixel (x, y) and the pixel P(-1, y).

29. The method according to claim 24, wherein The filter determined according to the chrominance component intra prediction mode includes: When the chrominance component intra prediction mode is TSCPM_L or MPCM_L, the filter is set to the second filter.

30. The method according to claim 29, wherein The second filter is used to filter the pixel region adjacent to the upper side boundary of the prediction block of the chrominance component of the current decoded block and the pixel region of the prediction block of the chrominance component of the current decoded block.

31. The method according to claim 30, wherein The second filter includes a second two-tap filter; The second two-tap filter includes: P(x, y) = f(y)·P(x, -1) + (1 - f(y))·P(x, y) Where x and y are the coordinates of the current pixel, the value of x does not exceed the value range of the width of the current coded block, the value of y does not exceed the value range of the height of the current coded block, P’(x, y) is the final predicted sample of the pixel (x, y) of the prediction block of the chrominance component of the current coded block, P(x, -1) is the reconstructed sample of the pixel adjacent to the upper side boundary located in column X, f(y) is the vertical filtering coefficient of the pixel (x, y) referring to the pixel P(x, -1), and P(x, y) is the original predicted sample of the pixel (x, y).

32. The method according to claim 31, wherein The vertical filtering coefficient is determined by a second parameter set, and the second parameter set includes the size of the prediction block of the chrominance component and the distance between the pixel (x, y) and the pixel P(x, -1).

33. The method according to claim 23, wherein The prediction correction for the prediction block of the chrominance component of the current decoded block includes: Parsing the bitstream to obtain a flag bit; Determining that the flag bit indicates using the filter for the prediction correction; Performing the prediction correction on the prediction block of the chrominance component of the current decoded block.

34. The method according to claim 23, wherein The prediction correction is indicated by sharing an existing flag bit; or, The prediction correction is indicated by an independent flag bit.

35. The method according to claim 23, wherein Determining the prediction block of the chrominance component of the current decoded block according to the luminance component intra prediction mode includes: Determining a reference prediction block of the chrominance component of the current decoded block according to the luminance component intra prediction mode; Filtering the reference prediction block of the chrominance component of the current decoded block to obtain the prediction block of the chrominance component of the current decoded block.

36. The method according to claim 35, wherein The filtering of the reference prediction block of the chrominance component of the current decoded block includes: Using a third filter to filter the reference prediction block of the chrominance component of the current decoded block.

37. The method according to claim 36, wherein The third filter includes a filter for filtering the left boundary pixel region of the reference prediction block of the chrominance component and a filter for filtering the non-left boundary pixel region of the reference prediction block of the chrominance component.

38. The method according to claim 37, wherein The filter for filtering the left boundary pixel region of the reference prediction block of the chrominance component includes a third two-tap filter; The third two-tap filter includes: P C (x, y) = (P' C (2x, 2y) + P' C (2x, 2y + 1) + 1) >> 1 where x and y are the coordinates of the pixel, and P' C is the predicted sample of the pixel in the reference prediction block of the chrominance component, and P C is the predicted sample of the chrominance component of the current pixel in the prediction block of the chrominance component.

39. The method according to claim 38, wherein The filter for filtering the non-left boundary pixel region of the reference prediction block of the chrominance component includes a first six-tap filter; The first six-tap filter includes: where x and y are the coordinates of the current pixel, and P' C is the predicted sample of the pixel in the reference prediction block of the chrominance component, and P C is the predicted sample of the chrominance component of the current pixel in the prediction block of the chrominance component.

40. The method according to any one of claims 35-39, wherein Determining the reference prediction block of the chrominance component of the current decoded block according to the luminance component intra prediction mode includes: Determine the reconstructed block of the luminance component of the current decoded block according to the intra prediction mode of the luminance component; Determine the reference prediction block of the chrominance component of the current decoded block according to the reconstructed block of the luminance component of the current decoded block.

41. The method according to claim 40, wherein The determining the reference prediction block of the chrominance component of the current decoded block according to the reconstructed block of the luminance component of the current decoded block includes: Determine a linear model for cross-component prediction using the reconstructed block of the luminance component of the current decoded block; Calculate the reconstructed block of the luminance component according to the linear model to obtain the reference prediction block of the chrominance component of the current decoded block.

42. The method according to claim 41, wherein The determining a linear model for cross-component prediction using the reconstructed block of the luminance component of the current decoded block includes: Determine the reference pixels for calculating the linear model, where the reference pixels include at least one neighboring pixel of the current decoded block; Calculate the linear model according to the reference pixels.

43. The method according to claim 42, wherein The determining the reference pixels for calculating the linear model includes: Determine the reference pixels for calculating the linear model according to the available information of the reconstructed samples of the neighboring pixels of the current decoded block and the intra prediction mode of the chrominance component.

44. The method according to claim 42, wherein The determining the reference pixels for calculating the linear model includes: Determine the reference pixels for calculating the linear model according to the rate-distortion cost-optimal intra prediction mode of the luminance component of the neighboring decoded blocks of the current decoded block.

45. An image encoding apparatus, wherein Includes: A partitioning unit for partitioning an image to determine the intra prediction mode of the luminance component and the intra prediction mode of the chrominance component of the current coding block; A determining unit for, when the intra prediction mode of the chrominance component indicates using the luminance component of the current coding block to determine the predicted value of the chrominance component of the current coding block, determining the prediction block of the chrominance component of the current coding block according to the intra prediction mode of the luminance component; A correction unit for performing prediction correction on the prediction block of the chrominance component of the current coding block to obtain the corrected prediction block of the chrominance component of the current coding block.

46. An image decoding device, characterized in that, Includes: A parsing unit for parsing a bitstream to determine the intra prediction mode of the luminance component and the intra prediction mode of the chrominance component of the current decoded block; A determining unit for, when the intra prediction mode of the chrominance component indicates using the reconstructed block of the luminance component of the current decoded block to determine the predicted value of the chrominance component of the current decoded block, determining the prediction block of the chrominance component of the current decoded block according to the intra prediction mode of the luminance component; A correction unit for performing prediction correction on the prediction block of the chrominance component of the current decoded block to obtain the corrected prediction block of the chrominance component of the current decoded block.

47. An encoder, comprising a non-volatile storage medium and a central processing unit, characterized in that, The non-volatile storage medium stores an executable program, the central processing unit is connected to the non-volatile storage medium, and when the central processing unit executes the executable program, the encoder executes the bidirectional inter prediction method according to any one of claims 1-22.

48. A decoder, comprising a non-volatile storage medium and a central processing unit, characterized in that, The non-volatile storage medium stores an executable program, and the central processing unit is connected to the non-volatile storage medium. When the central processing unit executes the executable program, the decoder executes the bidirectional inter-frame prediction method according to any one of claims 23-44.

49. A terminal, characterized in that, The terminal includes: one or more processors, a memory, and a communication interface; the memory and the communication interface are connected to the one or more processors; the terminal communicates with other devices through the communication interface, and the memory is used to store computer program code, and the computer program code includes instructions. When the one or more processors execute the instructions, the terminal executes the method according to any one of claims 1-44.

50. A computer program product containing instructions, characterized in that, When the computer program product runs on the terminal, the terminal is caused to execute the method according to any one of claims 1-44.

51. A computer-readable storage medium, comprising instructions, characterized in that, When the instructions run on the terminal, the terminal is caused to execute the method according to any one of claims 1-44.