Video encoder, video decoder and corresponding methods

By correcting and filtering chroma and luminance pixels, the problem of insufficient video coding efficiency in existing technologies is solved, achieving more efficient video data compression and decoding.

CN112637590BActive Publication Date: 2026-04-24HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2020-08-12
Publication Date
2026-04-24

AI Technical Summary

Technical Problem

Existing video coding technologies struggle to further compress video data without sacrificing image quality, especially after the HEVC standard, and new technologies are still needed to improve decoding efficiency.

Method used

The current image patch is reconstructed by correcting the luminance pixel values ​​of the current chroma pixel and its four adjacent chroma pixels, and then filtering them using a preset filter. Specifically, this method involves using various mathematical formulas to correct the chroma pixel values ​​and performing multiplication operations using the filter coefficients to improve decoding efficiency.

Benefits of technology

It improves the efficiency of video decoding, enhances the compression capability of video data, and reduces the amount of data transmitted and stored.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112637590B_ABST
    Figure CN112637590B_ABST
Patent Text Reader

Abstract

The application discloses a video image decoding method, comprising the following steps: determining a current chroma pixel (coordinate C(0, 0)) to be recovered in a current image block; determining four adjacent chroma pixels of the current chroma pixel to be recovered, which are respectively a left chroma pixel, a right chroma pixel, an upper chroma pixel and a lower chroma pixel (coordinates are C(-1, 0), C(1, 0), C(0, -1) and C(0, 1) respectively); correcting the value of the current chroma pixel according to at least one luminance pixel corresponding to the current chroma pixel and four adjacent chroma pixels respectively and a preset filter; and reconstructing the current image block based on the value of the corrected current chroma pixel. The application can improve the decoding efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments disclosed herein generally relate to the field of video coding, and more specifically, to video encoders, video decoders, and corresponding methods. Background Technology

[0002] Video encoding (video encoding and decoding) is widely used in digital video applications, such as broadcast digital television, video transmission over the Internet and mobile networks, real-time conversational applications such as video chat and video conferencing, DVD and Blu-ray discs, video content capture and editing systems, and security applications for portable cameras.

[0003] With the development of block-based hybrid video coding in the H.261 standard in 1990, new video coding technologies and tools were developed, laying the foundation for new video coding standards. Other video coding standards include MPEG-1 video, MPEG-2 video, ITU-T H.262 / MPEG-2, 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 to these standards, such as scalable and / or 3D (three-dimensional) extensions. As video creation and use become increasingly widespread, video traffic has become a major burden on communication networks and data storage. Therefore, one of the goals of most video coding standards is to reduce the bitrate compared to previous standards without sacrificing picture quality. Even though the latest High Efficiency Video Coding (HEVC) can compress video approximately twice as much as AVC without sacrificing picture quality, there is still a pressing need for new technologies to further compress video compared to HEVC. Summary of the Invention

[0004] This invention discloses a video encoder, a video decoder, and a corresponding method, which can improve decoding efficiency.

[0005] The first aspect discloses a video image decoding method, comprising: determining a current chroma pixel (coordinate C(0,0)) to be recovered in a current image block; determining four adjacent chroma pixels of the chroma pixel to be recovered, namely a left chroma pixel, a right chroma pixel, an upper chroma pixel, and a lower chroma pixel (coordinates C(-1,0), C(1,0), C(0,-1), and C(0,1)), respectively); correcting the value of the current chroma pixel based at least on the value of at least one luminance pixel corresponding to the current chroma pixel and the four adjacent chroma pixels, and a preset filter; and reconstructing the current image block based on the corrected value of the current chroma pixel.

[0006] In conjunction with the first aspect, in one embodiment of the first aspect, the step of correcting the value of the current chroma pixel based on the values ​​of the current chroma pixel and at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and a preset filter, includes: correcting the value of the current chroma pixel based on the product of the values ​​of the two luminance pixels corresponding to the current chroma pixel with the first coefficient of the filter, the product of the values ​​of the two luminance pixels corresponding to the left adjacent chroma pixels with the second coefficient of the filter, the product of the values ​​of the two luminance pixels corresponding to the right adjacent chroma pixels with the third coefficient of the filter, the product of the values ​​of the two luminance pixels corresponding to the upper adjacent chroma pixels with the fourth coefficient of the filter, and the product of the values ​​of the two luminance pixels corresponding to the lower adjacent chroma pixels with the fifth coefficient of the filter.

[0007] In conjunction with the first aspect or any of the foregoing embodiments of the first aspect, in another embodiment of the first aspect, the step of correcting the value of the current chroma pixel based on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and a preset filter, includes: correcting the value of the current chroma pixel according to the following mathematical formula:

[0008] D=((L(Xl0, Yl0)+L(Xl0, Yl0+Sz))*Coeff(0)+(L(Xl1, Yl1)+L(Xl1, Yl1+Sz))*Coeff(1)+(L(Xl2, Yl2)+L(Xl2, Yl2+S z))*Coeff(2)+(L(Xl3, Yl3)+L(Xl3, Yl3+Sz))*Coeff(3)+(L(Xl4, Yl4)+L(Xl4, Yl4+Sz))*Coeff(4)+offset)>>shift

[0009] D represents the correction value of the current chroma pixel, Coeff(0) to Coeff(4) represent the first to fifth coefficients of the filter, L(Xl0, Yl0) and L(Xl0, Yl0+Sz) represent the values ​​of the two luminance pixels corresponding to the current chroma pixel, L(Xl1, Yl1) and L(Xl1, Yl1+Sz) represent the values ​​of the two luminance pixels corresponding to the left chroma pixel, L(Xl2, Yl2) and L(Xl2, Yl2+Sz) represent the values ​​of the two luminance pixels corresponding to the right chroma pixel, L(Xl3, Yl3) and L(Xl3, Yl3+Sz) represent the values ​​of the two luminance pixels corresponding to the upper chroma pixel, and L(Xl4, Yl4) and L(Xl4, Yl4+Sz) represent the values ​​of the two luminance pixels corresponding to the lower chroma pixel.

[0010] In conjunction with the first aspect or any of the foregoing embodiments of the first aspect, in another embodiment of the first aspect, the step of correcting the value of the current chroma pixel based on the values ​​of the current chroma pixel and at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and a preset filter, includes: correcting the value of the current chroma pixel based on the product of the value of the upper luminance pixel corresponding to the current chroma pixel and the first coefficient of the filter, the product of the value of the lower luminance pixel corresponding to the current chroma pixel and the second coefficient of the filter, the product of the values ​​of the two luminance pixels corresponding to the left adjacent chroma pixels and the third coefficient of the filter, the product of the values ​​of the two luminance pixels corresponding to the right adjacent chroma pixels and the fourth coefficient of the filter, the product of the values ​​of the two luminance pixels corresponding to the upper adjacent chroma pixels and the fifth coefficient of the filter, and the product of the values ​​of the two luminance pixels corresponding to the lower adjacent chroma pixels and the sixth coefficient of the filter.

[0011] In conjunction with the first aspect or any of the foregoing embodiments of the first aspect, in another embodiment of the first aspect, the step of correcting the value of the current chroma pixel based on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and a preset filter, includes: correcting the value of the current chroma pixel according to the following mathematical formula:

[0012] D=(L(Xl0, Yl0)*Coeff(0)+L(Xl0, Yl0+Sz)*Coeff(1)+((L(Xl1, Yl1)+L(Xl1, Yl1+Sz))*Coeff(2)+((L(Xl2, Yl2)+L(Xl2, Yl 2+Sz))*Coeff(3)+((L(Xl3,Yl3)+L(Xl3,Yl3+Sz))*Coeff(4)+((L(Xl4,Yl4)+L(Xl4,Yl4+Sz))*Coeff(5)+offset)>>shift

[0013] D represents the correction value of the current chroma pixel, Coeff(0) to Coeff(5) represent the first to sixth coefficients of the filter, L(Xl0, Yl0) and L(Xl0, Yl0+Sz) represent the values ​​of the two luminance pixels corresponding to the current chroma pixel, L(Xl1, Yl1) and L(Xl1, Yl1+Sz) represent the values ​​of the two luminance pixels corresponding to the left chroma pixel, L(Xl2, Yl2) and L(Xl2, Yl2+Sz) represent the values ​​of the two luminance pixels corresponding to the right chroma pixel, L(Xl3, Yl3) and L(Xl3, Yl3+Sz) represent the values ​​of the two luminance pixels corresponding to the upper chroma pixel, and L(Xl4, Yl4) and L(Xl4, Yl4+Sz) represent the values ​​of the two luminance pixels corresponding to the lower chroma pixel.

[0014] In conjunction with the first aspect or any of the foregoing embodiments of the first aspect, in another embodiment of the first aspect, the step of correcting the value of the current chroma pixel based on the values ​​of the current chroma pixel and at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and a preset filter, includes: correcting the value of the current chroma pixel based on the product of the value of the upper luminance pixel corresponding to the current chroma pixel and a first coefficient of the filter, the product of the value of the lower luminance pixel corresponding to the current chroma pixel and a second coefficient of the filter, the product of the value of the upper luminance pixel corresponding to the left adjacent chroma pixel and a third coefficient of the filter, the product of the value of the lower luminance pixel corresponding to the right adjacent chroma pixel and a fourth coefficient of the filter, the product of the value of the upper luminance pixel corresponding to the upper adjacent chroma pixel and a fifth coefficient of the filter, and the product of the value of the lower luminance pixel corresponding to the lower adjacent chroma pixel and a sixth coefficient of the filter.

[0015] In conjunction with the first aspect or any of the foregoing embodiments of the first aspect, in another embodiment of the first aspect, the step of correcting the value of the current chroma pixel based on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and a preset filter, includes: correcting the value of the current chroma pixel according to the following mathematical formula:

[0016] D=(L(Xl0,Yl0)*Coeff(0)+L(Xl0,Yl0+Sz)*Coeff(1)+L(Xl1,Yl1)*Coeff(2)+L(Xl2,Y l2+Sz)*Coetf(3)+L(Xl3, Yl3)*Coeff(4)+L(Xl4, Yl4+Sz)*Coeff(5)+offset)>>shift

[0017] D represents the correction value of the current chroma pixel, Coeff(0) to Coeff(5) represent the first to sixth coefficients of the filter, L(Xl0, Yl0) and L(Xl0, Yl0+Sz) represent the values ​​of the two luminance pixels corresponding to the current chroma pixel, L(Xl1, Yl1) represents the value of the upper luminance pixel corresponding to the left chroma pixel, L(Xl2, Yl2+Sz) represents the value of the lower luminance pixel corresponding to the right chroma pixel, L(Xl3, Yl3) represents the value of the upper luminance pixel corresponding to the upper chroma pixel, and L(Xl4, Yl4+Sz) represents the value of the lower luminance pixel corresponding to the lower chroma pixel.

[0018] In conjunction with the first aspect or any of the foregoing embodiments of the first aspect, in another embodiment of the first aspect, the step of correcting the value of the current chroma pixel based on the values ​​of the current chroma pixel and at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and a preset filter, includes: multiplying the values ​​of the two luminance pixels corresponding to the current chroma pixel by the first coefficient of the filter, multiplying the values ​​of the two luminance pixels corresponding to the left adjacent chroma pixels by the second coefficient of the filter, multiplying the values ​​of the two luminance pixels corresponding to the right adjacent chroma pixels by the third coefficient of the filter, multiplying the values ​​of the two luminance pixels corresponding to the upper adjacent chroma pixels by the fourth coefficient of the filter, and multiplying the values ​​of the two luminance pixels corresponding to the lower adjacent chroma pixels by the fourth coefficient of the filter. The value of the current chroma pixel is corrected by multiplying the values ​​of the upper luminance pixel corresponding to the upper luminance pixel of the left adjacent chroma pixel, the lower luminance pixel corresponding to the lower luminance pixel of the left adjacent chroma pixel, the upper luminance pixel corresponding to the upper luminance pixel of the right adjacent chroma pixel, and the lower luminance pixel corresponding to the lower luminance pixel of the right adjacent chroma pixel with the seventh coefficient of the filter, and by multiplying the values ​​of the right luminance pixel corresponding to the upper luminance pixel of the left adjacent chroma pixel, the lower luminance pixel corresponding to the lower luminance pixel of the left adjacent chroma pixel, the upper luminance pixel corresponding to the upper luminance pixel of the right adjacent chroma pixel, and the lower luminance pixel corresponding to the lower luminance pixel of the right adjacent chroma pixel with the sixth coefficient of the filter.

[0019] In conjunction with the first aspect or any of the foregoing embodiments of the first aspect, in another embodiment of the first aspect, the step of correcting the value of the current chroma pixel based on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and a preset filter, includes: correcting the value of the current chroma pixel according to the following mathematical formula:

[0020] D=((L(Xl0, Yl0)+L(Xl0, Yl0+Sz))*Coeff(0)+((L(Xl1, Yl1)+L(Xl1, Yl1+Sz))*Coeff(1)+((L(Xl2, Yl2)+L(Xl2, Yl2+Sz))*Coeff(2)+((L(Xl3, Yl3)+L(Xl3, Yl3+Sz))*Coeff(3)+((L(Xl4, Yl4)+L(Xl4, Yl4+Sz))*Coeff(4)+ ((L(Xl0-1,Yl0)+L(Xl0+1,Yl0))*Coeff(5)+((L(Xl0-1,Yl0+Sz)+L(Xl0+1,Yl0+Sz))*Coeff(5)+((L(Xl0-2,Y l0-Sz)+L(Xl0+2,Yl0-Sz))*Coeff(6)+(L(Xl0-2,Yl0+Sz*2)+L(Xl0+2,Yl0+Sz*2))*Coeff(6)+offset)>>shift

[0021] D represents the correction value of the current chroma pixel, Coeff(0) to Coeff(6) represent the first to seventh coefficients of the filter, L(Xl0, Yl0) and L(Xl0, Yl0+Sz) represent the values ​​of the two luminance pixels corresponding to the current chroma pixel, L(Xl1, Yl1) and L(Xl1, Yl1+Sz) represent the values ​​of the two luminance pixels corresponding to the left chroma pixel, and L(Xl2, Yl2) and L(Xl2, Yl1+Sz) represent the values ​​of the two luminance pixels corresponding to the left chroma pixel. L(Xl2+Sz) represents the values ​​of the two luminance pixels corresponding to the right-side chrominance pixel; L(Xl3, Yl3) and L(Xl3, Yl3+Sz) represent the values ​​of the two luminance pixels corresponding to the upper-side chrominance pixel; L(Xl4, Yl4) and L(Xl4, Yl4+Sz) represent the values ​​of the two luminance pixels corresponding to the lower-side chrominance pixel; L(Xl0-1, Yl0), L(Xl0+1, Yl0), L(Xl0-1, Yl0+Sz) L(Xl0+1, Yl0+Sz) and L(Xl0+1, Yl0+Sz) represent the values ​​of the right luminance pixels of the upper luminance pixels corresponding to the left adjacent chrominance pixels, the right luminance pixels of the lower luminance pixels corresponding to the left adjacent chrominance pixels, the left luminance pixels of the upper luminance pixels corresponding to the right adjacent chrominance pixels, and the left luminance pixels of the lower luminance pixels corresponding to the right adjacent chrominance pixels, respectively. L(Xl0-2, Yl0-Sz), L(Xl0+2, Yl0-Sz), L(Xl0-2, Yl0+Sz*2) and L(Xl0+2, Yl0+Sz*2) represent the values ​​of the upper luminance pixels of the upper luminance pixels corresponding to the left adjacent chrominance pixels, the lower luminance pixels of the lower luminance pixels corresponding to the left adjacent chrominance pixels, the upper luminance pixels of the upper luminance pixels corresponding to the right adjacent chrominance pixels, and the lower luminance pixels of the lower luminance pixels corresponding to the right adjacent chrominance pixels, respectively.

[0022] In conjunction with the first aspect or any of the foregoing embodiments of the first aspect, in another embodiment of the first aspect, the step of correcting the value of the current chroma pixel based on the values ​​of at least one luminance pixel corresponding to each of the four adjacent chroma pixels and a preset filter includes: correcting the value of the current chroma pixel based on the product of the value of the upper luminance pixel corresponding to the current chroma pixel and the first coefficient of the filter, the product of the value of the lower luminance pixel corresponding to the current chroma pixel and the second coefficient of the filter, the product of the values ​​of the two luminance pixels corresponding to the left adjacent chroma pixels and the third coefficient of the filter, the product of the values ​​of the two luminance pixels corresponding to the right adjacent chroma pixels and the fourth coefficient of the filter, the product of the value of the upper luminance pixel corresponding to the upper adjacent chroma pixel and the fifth coefficient of the filter, and the product of the value of the lower luminance pixel corresponding to the lower adjacent chroma pixel and the sixth coefficient of the filter.

[0023] In conjunction with the first aspect or any of the foregoing embodiments of the first aspect, in another embodiment of the first aspect, the step of correcting the value of the current chroma pixel based on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and a preset filter, includes: correcting the value of the current chroma pixel according to the following mathematical formula:

[0024] D=(L(Xl0, Yl0)*Coeff(0)+L(Xl0, Yl0+Sz)*Coeff(1)+((L(Xl1, Yl1)+L(Xl1, Yl1+Sz))*Coeff(2)+((L(Xl 2, Yl2)+L(Xl2, Yl2+Sz))*Coeff(3)+(L(Xl3, Yl3)*Coeff(4)+L(Xl4, Yl4+Sz)*Coeff(5)+offset)>>shift.

[0025] The second aspect discloses a video image decoding method, the method comprising: determining the current chroma pixel (coordinate C(0,0)) to be recovered in the current image block; correcting the value of the current chroma pixel based on the value of the upper luminance pixel, the value of the lower luminance pixel, the value of the left luminance pixel of the upper luminance pixel, the value of the upper luminance pixel of the upper luminance pixel, the value of the lower luminance pixel of the lower luminance pixel, the value of the right luminance pixel of the lower luminance pixel, and a preset filter; and reconstructing the current image block based on the corrected value of the current chroma pixel.

[0026] In conjunction with the second aspect, in one embodiment of the second aspect, the step of correcting the value of the current chroma pixel based on the values ​​of the upper luminance pixel, the lower luminance pixel, the left luminance pixel of the upper luminance pixel, the upper luminance pixel of the upper luminance pixel, the lower luminance pixel of the lower luminance pixel, the right luminance pixel of the lower luminance pixel, and a preset filter includes: correcting the value of the current chroma pixel based on the product of the upper luminance pixel value and the first coefficient of the filter, the lower luminance pixel value and the second coefficient of the filter, the left luminance pixel value of the upper luminance pixel and the third coefficient of the filter, the upper luminance pixel value of the upper luminance pixel and the fifth coefficient of the filter, the lower luminance pixel value of the lower luminance pixel and the sixth coefficient of the filter, and the right luminance pixel value of the lower luminance pixel and the fourth coefficient of the filter.

[0027] In conjunction with the second aspect or any of the foregoing embodiments of the second aspect, in another embodiment of the second aspect, the step of correcting the value of the current chroma pixel based on the values ​​of the upper luminance pixel, the lower luminance pixel, the left luminance pixel of the upper luminance pixel, the upper luminance pixel of the upper luminance pixel, the lower luminance pixel of the lower luminance pixel, the right luminance pixel of the lower luminance pixel, and a preset filter includes: correcting the value of the current chroma pixel according to the following mathematical formula:

[0028] D=(L(X0,Y0)*Coeff(0)+L(X1,Y1)*Coeff(1)+L(X0-1,Y0)*Coeff(2)+L(X1+1,Y1)*Coeff(3)+(L(X0,Y0-1)*Coeff(4)+L(X1,Y1+1)*Coeff(5)+offset)>>shift

[0029] Where X0 = X1 = Xc0 * Sx, Y0 = Yc0 * Sy, Y1 = Y0 + 1.

[0030] A third aspect provides a video image decoding method, the method comprising: determining the current chroma pixel (coordinate C(0,0)) to be recovered in the current image block; determining the offset value to be used; determining four luminance pixels to be used to correct the value of the current chroma pixel based on the offset value; correcting the value of the current chroma pixel based on the values ​​of the upper and lower luminance pixels corresponding to the current chroma pixel, the values ​​of the four luminance pixels, and a preset filter; and reconstructing the current image block based on the corrected value of the current chroma pixel.

[0031] In conjunction with the third aspect, in one embodiment of the third aspect, the offset value is 1; the four luminance pixels include: the left luminance pixel of the upper luminance pixel, the upper luminance pixel of the upper luminance pixel, the lower luminance pixel of the lower luminance pixel, and the right luminance pixel of the lower luminance pixel.

[0032] In conjunction with the third aspect or any of the foregoing embodiments of the third aspect, in another embodiment of the third aspect, the step of correcting the value of the current chroma pixel based on the values ​​of the upper and lower luminance pixels corresponding to the current chroma pixel, the values ​​of the four luminance pixels, and a preset filter includes: correcting the value of the current chroma pixel based on the product of the value of the upper luminance pixel corresponding to the current chroma pixel and the first coefficient of the filter, the product of the value of the lower luminance pixel corresponding to the current chroma pixel and the second coefficient of the filter, the product of the value of the left luminance pixel of the upper luminance pixel and the third coefficient of the filter, the product of the value of the upper luminance pixel of the upper luminance pixel and the fifth coefficient of the filter, the product of the value of the lower luminance pixel of the lower luminance pixel and the sixth coefficient of the filter, and the product of the value of the right luminance pixel of the lower luminance pixel and the fourth coefficient of the filter.

[0033] In conjunction with the third aspect or any of the foregoing embodiments of the third aspect, in another embodiment of the third aspect, the offset value is 2; the four luminance pixels include: the upper luminance pixel corresponding to the left adjacent chrominance pixel of the current chrominance pixel, the lower luminance pixel corresponding to the right adjacent chrominance pixel of the current chrominance pixel, the upper luminance pixel corresponding to the upper adjacent chrominance pixel of the current chrominance pixel, and the lower luminance pixel corresponding to the lower adjacent chrominance pixel of the current chrominance pixel.

[0034] In conjunction with the third aspect or any of the foregoing embodiments of the third aspect, in another embodiment of the third aspect, the step of correcting the value of the current chroma pixel based on the values ​​of the upper and lower luminance pixels corresponding to the current chroma pixel, the values ​​of the four luminance pixels, and a preset filter includes: correcting the value of the current chroma pixel based on the product of the value of the upper luminance pixel corresponding to the current chroma pixel and the first coefficient of the filter, the product of the value of the lower luminance pixel corresponding to the current chroma pixel and the second coefficient of the filter, the product of the value of the upper luminance pixel corresponding to the left adjacent chroma pixel and the third coefficient of the filter, the product of the value of the lower luminance pixel corresponding to the right adjacent chroma pixel and the fourth coefficient of the filter, the product of the value of the upper luminance pixel corresponding to the upper adjacent chroma pixel and the fifth coefficient of the filter, and the product of the value of the lower luminance pixel corresponding to the lower adjacent chroma pixel and the sixth coefficient of the filter.

[0035] In conjunction with the third aspect or any of the foregoing embodiments of the third aspect, in another embodiment of the third aspect, the step of correcting the value of the current chroma pixel based on the values ​​of the upper and lower luminance pixels corresponding to the current chroma pixel, the values ​​of the four luminance pixels, and a preset filter includes: correcting the value of the current chroma pixel according to the following mathematical formula:

[0036] D=(L(X0,Y0)*Coeff(0)+L(X1,Y1)*Coeff(1)+L(X0-S,Y0)*Coeff(2)+L(X1+S,Y1)*Coeff(3)+(L(X0,Y0-S)*Coeff(4)+L(X1,Y1+S)*Coeff(5)+offset)>>shift

[0037] Where X0 = X1 = Xc0 * Sx, Y0 = Yc0 * Sy, Y1 = Y0 + 1, and S is the offset.

[0038] A fourth aspect provides a video decoder, including: a module for performing the method described in any one of the first aspect and its embodiments, the second aspect and its embodiments, and the third aspect and its embodiments.

[0039] The fifth aspect provides a video encoding / decoding apparatus, comprising: a non-volatile memory and a processor coupled to each other, the processor calling program code stored in the memory to perform a method as described in any one of the first aspect and its embodiments, the second aspect and its embodiments, and the third aspect and its embodiments.

[0040] A sixth aspect provides a computer-readable storage medium storing a computer program that, when run on a processor, implements the method as described in any one of the first aspect and its embodiments, the second aspect and its embodiments, and the third aspect and its embodiments.

[0041] The foregoing and other objectives are achieved through the subject matter of the independent claims. Other implementations are apparent from the dependent claims, the specification, and the drawings.

[0042] It should be understood that the second to sixth aspects of this application are consistent with the technical solutions of the first aspect of this application, and the beneficial effects achieved by each aspect and the corresponding feasible implementation are similar, so they will not be described again.

[0043] Details of one or more embodiments are set forth in the accompanying drawings and the following description. Other features, objects, and advantages will be apparent from the description, the drawings, and the claims. Attached Figure Description

[0044] To more clearly illustrate the technical solutions in the embodiments of this application or the background art, the accompanying drawings used in the embodiments of this application or the background art will be described below.

[0045] Figure 1A This is a block diagram for implementing an example of the video encoding and decoding system 10 of the embodiments of this application;

[0046] Figure 1B This is a block diagram for implementing an example of the video decoding system 40 according to the embodiments of this application;

[0047] Figure 2 This is a block diagram for implementing the encoder 20 instance structure of the embodiments of this application;

[0048] Figure 3 This is a block diagram for implementing the decoder 30 instance structure of the embodiments of this application;

[0049] Figure 4 This is a block diagram for implementing an example of the video decoding device 400 according to the embodiments of this application;

[0050] Figure 5 This is a block diagram of another example of an encoding or decoding device for implementing the embodiments of this application;

[0051] Figure 6 Schematic diagram of a 5x5 diamond-shaped chroma filter (left) and a 7x7 diamond-shaped luminance filter (right) in a VVC;

[0052] Figure 7 A schematic diagram of CCALF;

[0053] Figure 8 These are the filter coefficients of CCALF in the JVET-P0080 proposal;

[0054] Figure 9 This is an example diagram illustrating the coefficients of a CCALF filter according to one embodiment;

[0055] Figure 10 This is a diagram illustrating example CCALF filter coefficients according to another embodiment;

[0056] Figure 11 This is a diagram illustrating example CCALF filter coefficients according to another embodiment;

[0057] Figure 12 This is a diagram illustrating example CCALF filter coefficients according to another embodiment;

[0058] Figure 13 This is an example diagram of CCALF filter coefficients according to another embodiment;

[0059] Figure 14 This is an example diagram illustrating the CCALF filter coefficients according to another embodiment.

[0060] Unless otherwise specified in the following notes, "identical references" refers to the same or at least functionally equivalent features. Detailed Implementation

[0061] The embodiments of this application are described below with reference to the accompanying drawings. In the following description, reference is made to the accompanying drawings, which form part of this disclosure and illustrate specific aspects of the embodiments of this application or to which specific aspects of the embodiments of this application may be used. It should be understood that the embodiments of this application may be used in other aspects and may include structural or logical variations not depicted in the drawings. Therefore, the following detailed description should not be construed in a limiting sense, and the scope of this application is defined by the appended claims. For example, it should be understood that the disclosure of the described methods is equally applicable to corresponding devices or systems for performing the methods, and vice versa. For example, if one or more specific method steps are described, the corresponding device may include one or more units, such as functional units, to perform the described one or more method steps (e.g., one unit performs one or more steps, or multiple units, each performing one or more of multiple steps), even if such one or more units are not explicitly described or illustrated in the drawings. On the other hand, for example, if a specific apparatus is described based on one or more units such as functional units, the corresponding method may include a step to perform the functionality of one or more units (e.g., a step to perform the functionality of one or more units, or multiple steps, each of which performs the functionality of one or more units among a plurality of units), even if such one or more steps are not explicitly described or illustrated in the accompanying drawings. Furthermore, it should be understood that, unless otherwise expressly stated, features of the various exemplary embodiments and / or aspects described herein can be combined with each other.

[0062] The technical solutions involved in the embodiments of this application may be applied not only to existing video coding standards (such as H.264, HEVC, etc.) but also to future video coding standards (such as H.266). The terminology used in the implementation section of this application is only for explaining specific embodiments of this application and is not intended to limit this application. A brief introduction to some concepts that may be involved in the embodiments of this application is given below.

[0063] Video coding generally refers to the processing of a sequence of images that form a video or video sequence. In the field of video coding, the terms "picture," "frame," or "image" can be used synonymously. As used in this application (or this disclosure), video coding refers to video encoding or video decoding. Video coding is performed on the source side and typically involves processing (e.g., by compression) the raw video picture to reduce the amount of data required to represent that video picture (thus storing and / or transmitting it more efficiently). Video decoding is performed on the destination side and typically involves inverse processing relative to the encoder to reconstruct the video picture. The "encoding" of video pictures (or collectively referred to as pictures, as explained below) involved in the embodiments should be understood as "encoding" or "decoding" of a video sequence. The combination of encoding and decoding portions is also referred to as encoding and decoding (encoding and decoding).

[0064] A video sequence consists of a series of pictures, which are further divided into slices, and slices into blocks. Video coding is performed on a block-by-block basis. In some newer video coding standards, the concept of a block has been further expanded. For example, the H.264 standard uses macroblocks (MBs), which can be further divided into multiple prediction blocks (partitions) for predictive coding. The High Efficiency Video Coding (HEVC) standard uses basic concepts such as coding units (CUs), prediction units (PUs), and transform units (TUs) to functionally divide various block units, and employs a novel tree-based structure for description. For instance, a CU can be divided into smaller CUs using a quadtree, and these smaller CUs can be further divided, forming a quadtree structure. The CU is the basic unit for partitioning and encoding the image. Similar tree structures exist for PUs and TUs. A PU corresponds to a prediction block and is the basic unit for predictive coding. CUs are further divided into multiple PUs according to partitioning patterns. TU can correspond to a transform block, which is the basic unit for transforming the prediction residual. However, whether it is CU, PU or TU, they all essentially belong to the concept of a block (or image block).

[0065] For example, in HEVC, the CTU is split into multiple CUs using a quadtree structure represented as a coding tree. At the CU level, a decision is made on whether to use inter-picture (temporal) or intra-picture (spatial) prediction to encode picture regions. Each CU can be further split into one, two, or four PUs based on the PU splitting type. The same prediction process is applied within a PU, and relevant information is transmitted to the decoder based on the PU. After obtaining residual blocks by applying the prediction process based on the PU splitting type, the CU can be segmented into transform units (TUs) according to other quadtree structures similar to the coding tree used for CUs. In the latest developments in video compression technology, quadtree and binary tree (QTBT) frame segmentation is used to divide coding blocks. In the QTBT block structure, CUs can be square or rectangular in shape.

[0066] In this paper, for ease of description and understanding, the image block to be processed in the current image can be referred to as the current block or the image block to be processed. For example, in encoding, it refers to the block currently being encoded; in decoding, it refers to the block currently being decoded. The decoded image block in the reference image used to predict the current block is called the reference block. That is, the reference block is the block that provides a reference signal for the current block, where the reference signal represents the pixel value within the image block. The block in the reference image that provides the prediction signal for the current block can be called the prediction block, where the prediction signal represents the pixel value, sampled value, or sampled signal within the prediction block. For example, after traversing multiple reference blocks, an optimal reference block is found. This optimal reference block will provide prediction for the current block; this block is called the prediction block.

[0067] In lossless video coding, the original video images can be reconstructed, meaning the reconstructed video images have the same quality as the original (assuming no transmission loss or other data loss during storage or transmission). In lossy video coding, further compression is performed, for example, through quantization, to reduce the amount of data required to represent the video images. However, the decoder cannot fully reconstruct the video images, meaning the quality of the reconstructed video images is lower or worse than the original.

[0068] Several H.261 video coding standards fall under the category of "lossy hybrid video coding and decoding" (i.e., combining spatial and temporal prediction in the sample domain with 2D transform coding in the transform domain for applying quantization). Each frame of a video sequence is typically segmented into a non-overlapping set of blocks, usually encoded at the block level. In other words, the encoder typically processes, i.e., encodes the video at the block (video block) level, for example, by generating prediction blocks through spatial (intra-frame) and temporal (inter-frame) predictions, subtracting the prediction blocks from the current block (the currently processed or pending block) to obtain residual blocks, transforming and quantizing the residual blocks in the transform domain to reduce the amount of data to be transmitted (compressed), while the decoder applies the inverse processing relative to the encoder to the encoded or compressed blocks to reconstruct the current block for representation. Additionally, the encoder replicates the decoder processing loop, causing the encoder and decoder to generate the same predictions (e.g., intra-frame and inter-frame predictions) and / or reconstructions for processing, i.e., encoding subsequent blocks.

[0069] As used herein, the term "block" can be a portion of a picture or frame. For ease of description, embodiments of the invention are described with reference to Versatile Video coding (VVC) or High-Efficiency Video Coding (HEVC), developed by the ITU-T Video Coding Experts Group (VCEG) and the Joint Collaboration Team on Video Coding (JCT-VC) of the ISO / IEC Motion Picture Experts Group (MPEG). Those skilled in the art will understand that embodiments of the invention are not limited to HEVC or VVC. CU, PU, ​​and TU may refer to CU, PU, ​​and TU. In HEVC, a CTU is split into multiple CUs using a quadtree structure represented as a coding tree. At the CU level, a decision is made on whether to use inter-picture (temporal) or intra-picture (spatial) prediction to encode picture regions. Each CU can be further split into one, two, or four PUs depending on the PU splitting type. The same prediction process is applied within a PU, and relevant information is transmitted to the decoder on a PU basis. After obtaining residual blocks through a prediction process based on PU splitting type, the CU can be segmented into transform units (TUs) according to other quadtree structures similar to those used for the CU. In recent developments in video compression technology, quad-tree and binary tree (QTBT) frame segmentation is used to divide coded blocks. In the QTBT block structure, the CU can be square or rectangular. In VVC, the coding tree unit (CTU) is first segmented by a quadtree structure. The leaf nodes of the quadtree are further segmented by a binary tree structure. The leaf nodes of the binary tree are called coding units (CUs), and these segments are used for prediction and transform processing without any further segmentation. This means that the CU, PU, ​​and TU have the same block size in the QTBT coding block structure. Simultaneously, multiple segmentation methods, such as ternary tree segmentation, have been proposed to be used with the QTBT block structure.

[0070] The embodiments of this application are described below with reference to the accompanying drawings. In the following description, reference is made to the accompanying drawings, which form part of this disclosure and illustrate specific aspects of the embodiments of this application or to which specific aspects of the embodiments of this application may be used. It should be understood that the embodiments of this application may be used in other aspects and may include structural or logical variations not depicted in the drawings. Therefore, the following detailed description should not be construed in a limiting sense, and the scope of this application is defined by the appended claims. For example, it should be understood that the disclosure of the described methods is equally applicable to corresponding devices or systems for performing the methods, and vice versa. For example, if one or more specific method steps are described, the corresponding device may include one or more units, such as functional units, to perform the described one or more method steps (e.g., one unit performs one or more steps, or multiple units, each performing one or more of multiple steps), even if such one or more units are not explicitly described or illustrated in the drawings. On the other hand, for example, if a specific apparatus is described based on one or more units such as functional units, the corresponding method may include a step to perform the functionality of one or more units (e.g., a step to perform the functionality of one or more units, or multiple steps, each of which performs the functionality of one or more units among a plurality of units), even if such one or more steps are not explicitly described or illustrated in the accompanying drawings. Furthermore, it should be understood that, unless otherwise expressly stated, features of the various exemplary embodiments and / or aspects described herein can be combined with each other.

[0071] The technical solutions involved in the embodiments of this application may be applied not only to existing video coding standards (such as H.264, HEVC, etc.) but also to future video coding standards (such as H.266). The terminology used in the implementation section of this application is only for explaining specific embodiments of this application and is not intended to limit this application. A brief introduction to some concepts that may be involved in the embodiments of this application is given below.

[0072] Video coding generally refers to the processing of a sequence of images that form a video or video sequence. In the field of video coding, the terms "picture," "frame," or "image" can be used synonymously. As used herein, video coding refers to either video encoding or video decoding. Video coding is performed on the source side and typically involves processing (e.g., by compression) the raw video images to reduce the amount of data required to represent them, thereby enabling more efficient storage and / or transmission. Video decoding is performed on the destination side and typically involves inverse processing relative to the encoder to reconstruct the video images. The "encoding" of video images in the embodiments should be understood as involving the "encoding" or "decoding" of a video sequence. The combination of encoding and decoding portions is also referred to as encoding and decoding (encoding and decoding).

[0073] A video sequence consists of a series of pictures, which are further divided into slices, and slices into blocks. Video coding is performed on a block-by-block basis. In some newer video coding standards, the concept of a block has been further expanded. For example, the H.264 standard uses macroblocks (MBs), which can be further divided into multiple prediction blocks (partitions) for predictive coding. The High Efficiency Video Coding (HEVC) standard uses basic concepts such as coding units (CUs), prediction units (PUs), and transform units (TUs) to functionally divide various block units, and employs a novel tree-based structure for description. For instance, a CU can be divided into smaller CUs using a quadtree, and these smaller CUs can be further divided, forming a quadtree structure. The CU is the basic unit for partitioning and encoding the image. Similar tree structures exist for PUs and TUs. A PU corresponds to a prediction block and is the basic unit for predictive coding. CUs are further divided into multiple PUs according to partitioning patterns. TU can correspond to a transform block, which is the basic unit for transforming the prediction residual. However, whether it is CU, PU or TU, they all essentially belong to the concept of a block (or image block).

[0074] For example, in HEVC, the CTU is split into multiple CUs using a quadtree structure represented as a coding tree. At the CU level, a decision is made on whether to use inter-picture (temporal) or intra-picture (spatial) prediction to encode picture regions. Each CU can be further split into one, two, or four PUs based on the PU splitting type. The same prediction process is applied within a PU, and relevant information is transmitted to the decoder based on the PU. After obtaining residual blocks by applying the prediction process based on the PU splitting type, the CU can be segmented into transform units (TUs) according to other quadtree structures similar to the coding tree used for CUs. In the latest developments in video compression technology, quadtree and binary tree (QTBT) frame segmentation is used to divide coding blocks. In the QTBT block structure, CUs can be square or rectangular in shape.

[0075] In this paper, for ease of description and understanding, the image block to be processed in the current image can be referred to as the current block or the image block to be processed. For example, in encoding, it refers to the block currently being encoded; in decoding, it refers to the block currently being decoded. The decoded image block in the reference image used to predict the current block is called the reference block. That is, the reference block is the block that provides a reference signal for the current block, where the reference signal represents the pixel value within the image block. The block in the reference image that provides the prediction signal for the current block can be called the prediction block, where the prediction signal represents the pixel value, sampled value, or sampled signal within the prediction block. For example, after traversing multiple reference blocks, an optimal reference block is found. This optimal reference block will provide prediction for the current block; this block is called the prediction block.

[0076] In lossless video coding, the original video images can be reconstructed, meaning the reconstructed video images have the same quality as the original (assuming no transmission loss or other data loss during storage or transmission). In lossy video coding, further compression is performed, for example, through quantization, to reduce the amount of data required to represent the video images. However, the decoder cannot fully reconstruct the video images, meaning the quality of the reconstructed video images is lower or worse than the original.

[0077] Several H.261 video coding standards fall under the category of "lossy hybrid video coding and decoding" (i.e., combining spatial and temporal prediction in the sample domain with 2D transform coding in the transform domain for applying quantization). Each frame of a video sequence is typically segmented into a non-overlapping set of blocks, usually encoded at the block level. In other words, the encoder typically processes, i.e., encodes the video at the block (video block) level, for example, by generating prediction blocks through spatial (intra-frame) and temporal (inter-frame) predictions, subtracting the prediction blocks from the current block (the currently processed or pending block) to obtain residual blocks, transforming and quantizing the residual blocks in the transform domain to reduce the amount of data to be transmitted (compressed), while the decoder applies the inverse processing relative to the encoder to the encoded or compressed blocks to reconstruct the current block for representation. Additionally, the encoder replicates the decoder processing loop, causing the encoder and decoder to generate the same predictions (e.g., intra-frame and inter-frame predictions) and / or reconstructions for processing, i.e., encoding subsequent blocks.

[0078] The system architecture used in the embodiments of this application is described below. See also Figure 1A , Figure 1A A schematic block diagram of the video encoding and decoding system 10 used in the embodiments of this application is provided as an example. Figure 1AAs shown, the video encoding and decoding system 10 may include a source device 12 and a destination device 14. The source device 12 generates encoded video data; therefore, the source device 12 may be referred to as a video encoding device. The destination device 14 can decode the encoded video data generated by the source device 12; therefore, the destination device 14 may be referred to as a video decoding device. Various embodiments of the source device 12, the destination device 14, or both may include one or more processors and memory coupled to said one or more processors. The memory may include, but is not limited to, RAM, ROM, EEPROM, flash memory, or any other media that can be used to store desired program code in the form of computer-accessible instructions or data structures, as described herein. The source device 12 and the destination device 14 may include a variety of devices, including desktop computers, mobile computing devices, notebook (e.g., laptop) computers, tablet computers, set-top boxes, handsets such as so-called "smartphones," televisions, cameras, display devices, digital media players, video game consoles, in-vehicle computers, wireless communication devices, or the like.

[0079] Although Figure 1A Source device 12 and destination device 14 are illustrated as separate devices, but device embodiments may also include the functionality of both source device 12 and destination device 14, or both; that is, the functionality of source device 12 or its corresponding functionality and the functionality of destination device 14 or its corresponding functionality. In such embodiments, the functionality of source device 12 or its corresponding functionality and the functionality of destination device 14 or its corresponding functionality may be implemented using the same hardware and / or software, or using separate hardware and / or software, or any combination thereof.

[0080] A communication connection can be established between source device 12 and destination device 14 via link 13, through which destination device 14 can receive encoded video data from source device 12. Link 13 may include one or more media or devices capable of moving encoded video data from source device 12 to destination device 14. In one example, link 13 may include one or more communication media enabling source device 12 to transmit encoded video data directly to destination device 14 in real time. In this example, source device 12 may modulate the encoded video data according to a communication standard (e.g., a wireless communication protocol) and transmit the modulated video data to destination device 14. The one or more communication media may include wireless and / or wired communication media, such as radio frequency (RF) spectrum or one or more physical transmission lines. The one or more communication media may form part of a packet-based network, such as a local area network, wide area network, or global network (e.g., the Internet). The one or more communication media may include routers, switches, base stations, or other devices facilitating communication from source device 12 to destination device 14.

[0081] The source device 12 includes an encoder 20. Optionally, the source device 12 may also include an image source 16, an image preprocessor 18, and a communication interface 22. In specific implementations, the encoder 20, image source 16, image preprocessor 18, and communication interface 22 may be hardware components or software programs within the source device 12. These are described below:

[0082] Image source 16 may include or be any type of image capture device for, for example, capturing real-world images, and / or any type of image or commentary (for screen content encoding, some text on the screen is also considered part of the image or picture to be encoded) generation device, such as a computer graphics processor for generating computer-animated images, or any type of device for acquiring and / or providing real-world images, computer-animated images (e.g., screen content, virtual reality (VR) images), and / or any combination thereof (e.g., augmented reality (AR) images). Image source 16 may be a camera for capturing images or a memory for storing images. Image source 16 may also include any type of (internal or external) interface for storing previously captured or generated images and / or acquiring or receiving images. When image source 16 is a camera, image source 16 may be, for example, a local or integrated camera integrated into a source device; when image source 16 is a memory, image source 16 may be a local or, for example, integrated memory integrated into a source device. When the image source 16 includes an interface, the interface may be, for example, an external interface for receiving images from an external video source. The external video source may be, for example, an external image capture device, such as a camera, external storage, or an external image generation device. The external image generation device may be, for example, an external computer graphics processor, a computer, or a server. The interface may be any type of interface according to any proprietary or standardized interface protocol, such as a wired or wireless interface, or an optical interface.

[0083] An image can be viewed as a two-dimensional array or matrix of pixels. Pixels in the array are also called sampling points. The number of sampling points in the array or image along the horizontal and vertical directions (or axes) defines the image's size and / or resolution. To represent color, three color components are typically used; that is, an image can be represented as or contain three sampling arrays. For example, in RGB format or color space, an image includes corresponding red, green, and blue sampling arrays. However, in video coding, each pixel is typically represented in a luma / chroma format or color space. For example, for a YUV format image, this includes a luma component indicated by Y (sometimes also indicated by L) and two chroma components indicated by U and V. The luma component Y represents the brightness or grayscale level intensity (e.g., both are the same in grayscale images), while the two chroma components U and V represent chroma or color information components. Accordingly, a YUV format image includes a luma sampling array of luma sample values ​​(Y) and two chroma sampling arrays of chroma values ​​(U and V). An RGB format image can be converted or transformed to a YUV format, and vice versa; this process is also called color transformation or conversion. If the image is black and white, it may only include a luminance sampling array. In this embodiment, the image transmitted from image source 16 to image processor can also be referred to as raw image data 17.

[0084] Image preprocessor 18 is configured to receive raw image data 17 and perform preprocessing on the raw image data 17 to obtain a preprocessed image 19 or preprocessed image data 19. For example, the preprocessing performed by image preprocessor 18 may include retouching, color format conversion (e.g., from RGB format to YUV format), color correction, or noise reduction.

[0085] Encoder 20 (or video encoder 20) is used to receive preprocessed image data 19 and process the preprocessed image data 19 using a relevant prediction mode (such as the prediction mode in the various embodiments of this document), thereby providing encoded image data 21 (which will be further based on...). Figure 2 or Figure 4 or Figure 5 (Description of structural details of encoder 20). In some embodiments, encoder 20 can be used to perform the various embodiments described below to implement the chroma block prediction method described in this application on the encoding side.

[0086] Communication interface 22 can be used to receive encoded image data 21 and transmit the encoded image data 21 to destination device 14 or any other device (such as a memory) via link 13 for storage or direct reconstruction. The other device can be any device used for decoding or storage. Communication interface 22 can, for example, be used to encapsulate the encoded image data 21 into a suitable format, such as data packets, for transmission over link 13.

[0087] Destination device 14 includes decoder 30. Optionally, destination device 14 may also include communication interface 28, image post-processor 32, and display device 34. These are described below:

[0088] Communication interface 28 can be used to receive encoded image data 21 from source device 12 or any other source, such as a storage device, for example, an encoded image data storage device. Communication interface 28 can be used to transmit or receive encoded image data 21 via link 13 between source device 12 and destination device 14 or via any type of network, such as a direct wired or wireless connection, any type of network such as wired or wireless networks or any combination thereof, or any type of private and public network, or any combination thereof. Communication interface 28 can be used, for example, to decapsulate data packets transmitted by communication interface 22 to obtain encoded image data 21.

[0089] Both communication interface 28 and communication interface 22 can be configured as unidirectional or bidirectional communication interfaces, and can be used, for example, to send and receive messages to establish connections, acknowledge and exchange any other information related to the communication link and / or data transmission, such as encoded image data transmission.

[0090] Decoder 30 (or decoder 30) is used to receive encoded image data 21 and provide decoded image data 31 or decoded image 31 (hereinafter further based on...) Figure 3 or Figure 4 or Figure 5 (Description of structural details of decoder 30). In some embodiments, decoder 30 can be used to perform the various embodiments described below to implement the chroma block prediction method described in this application on the decoding side.

[0091] Image post-processor 32 is used to perform post-processing on decoded image data 31 (also known as reconstructed image data) to obtain post-processed image data 33. The post-processing performed by image post-processor 32 may include: color format conversion (e.g., from YUV format to RGB format), color correction, retouching or resampling, or any other processing, and may also be used to transmit post-processed image data 33 to display device 34.

[0092] Display device 34 is used to receive post-processed image data 33 to display the image to, for example, a user or viewer. Display device 34 can be or can include any class of display for presenting the reconstructed image, such as an integrated or external display or monitor. For example, the display can include a liquid crystal display (LCD), an organic light emitting diode (OLED) display, a plasma display, a projector, a micro-LED display, liquid crystal on silicon (LCoS), a digital light processor (DLP), or any other class of display.

[0093] Although, Figure 1A Source device 12 and destination device 14 are illustrated as separate devices, but device embodiments may also include the functionality of both source device 12 and destination device 14, or both; that is, the functionality of source device 12 or its corresponding functionality and the functionality of destination device 14 or its corresponding functionality. In such embodiments, the functionality of source device 12 or its corresponding functionality and the functionality of destination device 14 or its corresponding functionality may be implemented using the same hardware and / or software, or using separate hardware and / or software, or any combination thereof.

[0094] Based on the description, it is obvious to those skilled in the art that the functionality of different units is different. Figure 1A The presence and (precise) division of the functionality of the source device 12 and / or destination device 14 shown may vary depending on the actual device and application. The source device 12 and destination device 14 may include any of a variety of devices, encompassing any category of handheld or stationary devices, such as laptops or notebooks, mobile phones, smartphones, tablets or tablet computers, cameras, desktop computers, set-top boxes, televisions, cameras, in-vehicle devices, display devices, digital media players, video game consoles, video streaming devices (e.g., content service servers or content distribution servers), broadcast receiver devices, broadcast transmitter devices, etc., and may or may not use any type of operating system.

[0095] Both encoder 20 and decoder 30 can be implemented as any of a variety of suitable circuits, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, hardware, or any combination thereof. If the technology is implemented in part in software, the device can store software instructions in a suitable non-transitory computer-readable storage medium, and one or more processors can be used to execute the instructions in hardware to perform the technology of this disclosure. Any of the foregoing (including hardware, software, combinations of hardware and software, etc.) can be considered as one or more processors.

[0096] In some cases, Figure 1A The video encoding and decoding system 10 shown is merely an example, and the technology of this application can be applied to video encoding setups (e.g., video encoding or video decoding) that do not necessarily involve any data communication between the encoding and decoding devices. In other instances, data may be retrieved from local storage, streamed over a network, etc. A video encoding device may encode data and store it in storage, and / or a video decoding device may retrieve data from storage and decode it. In some instances, encoding and decoding are performed by devices that do not communicate with each other but only encode data to storage and / or retrieve data from storage and decode the data.

[0097] See Figure 1B , Figure 1B It is a inclusion according to an exemplary embodiment Figure 2 encoder 20 and / or Figure 3 The illustrated diagram shows an example of a video decoding system 40 with decoder 30. The video decoding system 40 can implement various combinations of technologies according to embodiments of this application. In the illustrated embodiments, the video decoding system 40 may include an imaging device 41, an encoder 20, a decoder 30 (and / or a video codec implemented by logic circuitry 47 of processing circuitry 46), an antenna 42, one or more processors 43, one or more memories 44, and / or a display device 45.

[0098] like Figure 1B As shown, the imaging device 41, antenna 42, processing circuit 46, logic circuit 47, encoder 20, decoder 30, processor 43, memory 44, and / or display device 45 are capable of communicating with each other. As discussed, although the video decoding system 40 is illustrated with encoder 20 and decoder 30, in different instances, the video decoding system 40 may contain only encoder 20 or only decoder 30.

[0099] In some instances, antenna 42 can be used to transmit or receive encoded bitstreams of video data. Additionally, in some instances, display device 45 can be used to present video data. In some instances, logic circuitry 47 can be implemented using processing circuitry 46. Processing circuitry 46 can include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, etc. Video decoding system 40 can also include an optional processor 43, which can similarly include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, etc. In some instances, logic circuitry 47 can be implemented in hardware, such as dedicated video encoding hardware, while processor 43 can be implemented in general-purpose software, an operating system, etc. Furthermore, memory 44 can be any type of memory, such as volatile memory (e.g., Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), etc.) or non-volatile memory (e.g., flash memory, etc.). In a non-limiting example, memory 44 can be implemented using cache memory. In some instances, logic circuitry 47 may access memory 44 (e.g., for implementing an image buffer). In other instances, logic circuitry 47 and / or processing circuitry 46 may include memory (e.g., cache, etc.) for implementing image buffers, etc.

[0100] In some instances, the encoder 20 implemented via logic circuitry may include (e.g., implemented via processing circuitry 46 or memory 44) an image buffer and (e.g., implemented via processing circuitry 46) a graphics processing unit. The graphics processing unit may be communicatively coupled to the image buffer. The graphics processing unit may include the encoder 20 implemented via logic circuitry 47 to implement a reference. Figure 2 And / or any other encoder system or subsystem described herein, and the various modules discussed herein. Logic circuits may be used to perform the various operations discussed herein.

[0101] In some instances, decoder 30 can be implemented in a similar manner via logic circuitry 47 to implement reference. Figure 3The decoder 30 and / or any other decoder system or subsystem described herein are various modules discussed. In some instances, the logic circuit-implemented decoder 30 may include an image buffer (implemented via processing circuitry 44 or memory 44) and a graphics processing unit (e.g., implemented via processing circuitry 46). The graphics processing unit may be communicatively coupled to the image buffer. The graphics processing unit may include the decoder 30 implemented via logic circuitry 47 to implement reference... Figure 3 And / or the various modules discussed in any other decoder system or subsystem described herein.

[0102] In some instances, antenna 42 can be used to receive encoded bitstreams of video data. As discussed herein, the encoded bitstream may contain data related to encoded video frames, indicators, index values, mode selection data, etc., such as data related to encoded segmentation (e.g., transform coefficients or quantized transform coefficients, optional indicators, and / or data defining encoded segmentation). Video decoding system 40 may also include decoder 30 coupled to antenna 42 for decoding the encoded bitstream. Display device 45 is used to display the video frames.

[0103] It should be understood that, for the instances described with reference to encoder 20 in the embodiments of this application, decoder 30 can be used to perform the reverse process. Regarding signaling syntax elements, decoder 30 can be used to receive and parse such syntax elements, and accordingly decode the associated video data. In some examples, encoder 20 can entropy-encode syntax elements into an encoded video bitstream. In such instances, decoder 30 can parse such syntax elements and accordingly decode the associated video data.

[0104] It should be noted that the video image encoding method described in this application embodiment occurs at encoder 20, and the video image decoding method described in this application embodiment occurs at decoder 30. Encoder 20 and decoder 30 in this application embodiment can be encoders / decoders corresponding to video standard protocols such as H.263, H.264, HEVV, MPEG-2, MPEG-4, VP8, VP9, ​​or next-generation video standard protocols (such as H.266).

[0105] See Figure 2 , Figure 2 A schematic / conceptual block diagram illustrating an example of an encoder 20 used to implement embodiments of this application is shown. Figure 2In this example, encoder 20 includes a residual calculation unit 204, a transform processing unit 206, a quantization unit 208, an inverse quantization unit 210, an inverse transform processing unit 212, a reconstruction unit 214, a buffer 216, a loop filter 220, a decoded picture buffer (DPB) 230, a prediction processing unit 260, and an entropy coding unit 270. Prediction processing unit 260 may include inter-frame prediction unit 244, intra-frame prediction unit 254, and mode selection unit 262. Inter-frame prediction unit 244 may include a motion estimation unit and a motion compensation unit (not shown). Figure 2 The encoder 20 shown can also be called a hybrid video encoder or a video encoder based on a hybrid video codec.

[0106] For example, the residual calculation unit 204, transform processing unit 206, quantization unit 208, prediction processing unit 260, and entropy coding unit 270 form the forward signal path of the encoder 20, while, for example, the inverse quantization unit 210, inverse transform processing unit 212, reconstruction unit 214, buffer 216, loop filter 220, decoded picture buffer (DPB) 230, and prediction processing unit 260 form the backward signal path of the encoder, wherein the backward signal path of the encoder corresponds to the signal path of the decoder (see...). Figure 3 Decoder 30 in the middle.

[0107] Encoder 20 receives, for example, image 201 or image block 203 of image 201 via input 202, such as images in a sequence of images forming a video or video sequence. Image block 203 may also be referred to as the current image block or the image block to be encoded, and image 201 may be referred to as the current image or the image to be encoded (especially in video encoding when distinguishing the current image from other images, such as previously encoded and / or decoded images in the same video sequence, i.e., including the current image).

[0108] Embodiments of encoder 20 may include a segmentation unit ( Figure 2 (Not shown in the image) is used to segment image 201 into multiple blocks, such as image blocks 203, typically into multiple non-overlapping blocks. The segmentation unit can be used to apply the same block size and corresponding raster defining the block size to all images in a video sequence, or to change the block size between images, subsets, or groups of images, and segment each image into corresponding blocks.

[0109] In one instance, the prediction processing unit 260 of encoder 20 can be used to perform any combination of the segmentation techniques described above.

[0110] As with image 201, image patch 203 is also, or can be considered as, a two-dimensional array or matrix of sampled points with sampled values, although its size is smaller than that of image 201. In other words, image patch 203 may include, for example, a single sampled array (e.g., a luminance array in the case of black and white image 201) or three sampled arrays (e.g., a luminance array and two chrominance arrays in the case of a color image) or any other number and / or type of array depending on the applied color format. The number of sampled points in the horizontal and vertical directions (or axes) of image patch 203 defines the size of image patch 203.

[0111] like Figure 2 The encoder 20 shown is used to encode the image 201 block by block, for example, to perform encoding and prediction for each image block 203.

[0112] The residual calculation unit 204 is used to calculate the residual block 205 based on the image block 203 and the prediction block 265 (other details of the prediction block 265 are provided below). For example, the residual block 205 is obtained in the sample domain by subtracting the sample value of the prediction block 265 from the sample value of the image block 203 on a sample-by-sample (pixel-by-pixel) basis.

[0113] The transform processing unit 206 applies a transform, such as a discrete cosine transform (DCT) or a discrete sine transform (DST), to the sample values ​​of the residual block 205 to obtain transform coefficients 207 in the transform domain. The transform coefficients 207 can also be called transform residual coefficients and represent the residual block 205 in the transform domain.

[0114] Transform processing unit 206 can be used to apply integer approximations of DCT / DST, such as those specified for HEVC / H.265. These integer approximations are typically scaled by a factor compared to orthogonal DCT transforms. To maintain the norm of the residual blocks processed by the forward and inverse transforms, an additional scaling factor is applied as part of the transform process. The scaling factor is typically chosen based on certain constraints, such as a power of 2 for the shift operation, the bit depth of the transform coefficients, accuracy, and implementation cost. For example, a specific scaling factor can be specified on the decoder 30 side via, for example, inverse transform processing unit 212 (and on the encoder 20 side via, for example, inverse transform processing unit 212 for the corresponding inverse transform), and correspondingly, a corresponding scaling factor can be specified on the encoder 20 side via transform processing unit 206 for the forward transform.

[0115] Quantization unit 208 is used to quantize the transform coefficients 207, for example, by applying scalar quantization or vector quantization, to obtain quantized transform coefficients 209. Quantized transform coefficients 209 can also be referred to as quantized residual coefficients 209. The quantization process can reduce the bit depth associated with some or all of the transform coefficients 207. For example, n-bit transform coefficients can be rounded down to m-bit transform coefficients during quantization, where n is greater than m. The degree of quantization can be modified by adjusting the quantization parameter (QP). For example, for scalar quantization, different scales can be applied to achieve finer or coarser quantization. Smaller quantization steps correspond to finer quantization, while larger quantization steps correspond to coarser quantization. The appropriate quantization step size can be indicated by the quantization parameter (QP). For example, the quantization parameter can be an index of a predefined set of appropriate quantization steps. For example, a smaller quantization parameter can correspond to fine quantization (smaller quantization step size), a larger quantization parameter can correspond to coarse quantization (larger quantization step size), and vice versa. Quantization can involve division by the quantization step size and a corresponding quantization or inverse quantization, performed, for example, by inverse quantization 210, or it can involve multiplication by the quantization step size. The quantization step size can be determined using quantization parameters according to some standard embodiments, such as HEVC. Generally, the quantization step size can be calculated based on the quantization parameters using a fixed-point approximation of an equation involving division. Additional scaling factors can be introduced for quantization and inverse quantization to recover the norm of the residual block, which may have been modified due to the scaling used in the fixed-point approximation of the equations used for the quantization step size and quantization parameters. In one example implementation, the scaling of the inverse transform and inverse quantization can be combined. Alternatively, a custom quantization table can be used and transmitted from the encoder to the decoder via a signal, for example, in a bitstream. Quantization is a lossy operation, where the loss increases with the quantization step size.

[0116] The inverse quantization unit 210 is used to apply the inverse quantization of the quantization unit 208 to the quantized coefficients to obtain the dequantized coefficients 211. For example, it applies the inverse quantization scheme of the quantization scheme applied by the quantization unit 208 based on or using the same quantization step size as the quantization unit 208. The dequantized coefficients 211 can also be called the dequantized residual coefficients 211, corresponding to the transform coefficients 207, although the loss due to quantization is usually different from that of the transform coefficients.

[0117] The inverse transform processing unit 212 is used to apply the inverse transform of the transform applied by the transform processing unit 206, such as the inverse discrete cosine transform (DCT) or the inverse discrete sine transform (DST), to obtain the inverse transform block 213 in the sample domain. The inverse transform block 213 can also be referred to as the inverse transform dequantized block 213 or the inverse transform residual block 213.

[0118] Reconstruction unit 214 (e.g., summer 214) is used to add inverse transform block 213 (i.e. reconstructed residual block 213) to prediction block 265 to obtain reconstructed block 215 in the sample domain, for example, by adding the sample value of reconstructed residual block 213 to the sample value of prediction block 265.

[0119] Optionally, for example, buffer unit 216 (or simply "buffer" 216) of line buffer 216 is used to buffer or store reconstructed block 215 and corresponding sample values ​​for, for example, intra-frame prediction. In other embodiments, the encoder can be used to perform any type of estimation and / or prediction, such as intra-frame prediction, using the unfiltered reconstructed block and / or corresponding sample values ​​stored in buffer unit 216.

[0120] For example, embodiments of encoder 20 can be configured such that buffer unit 216 is used not only to store the reconstructed block 215 for intra-frame prediction 254, but also for the loop filter 220 unit (in Figure 2 (not shown in the image), and / or, for example, such that buffer unit 216 and decoded image buffer unit 230 form a buffer. Other embodiments may be used to filter block 221 and / or blocks or samples from decoded image buffer 230 (not shown in the image), and / or, for example, such that buffer unit 216 and decoded image buffer unit 230 form a buffer. Figure 2 (Not shown in the image) is used as input or basis for intra-frame prediction 254.

[0121] Loop filter unit 220 (or simply "loop filter" 220) is used to filter the reconstructed block 215 to obtain the filtered block 221, thereby facilitating pixel transformation or improving video quality. Loop filter unit 220 is intended to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or other filters such as a bilateral filter, an adaptive loop filter (ALF), or a sharpening or smoothing filter, or a co-filter. Although loop filter unit 220 is used in... Figure 2 The loop filter unit 220 is shown as an in-loop filter, but in other configurations, it can be implemented as a post-loop filter. The filtered block 221 can also be referred to as the filtered reconstructed block 221. The decoded image buffer 230 can store the reconstructed encoded block after the loop filter unit 220 performs the filtering operation on it.

[0122] An embodiment of encoder 20 (correspondingly, loop filter unit 220) can be used to output loop filter parameters (e.g., sample adaptive offset information), for example, directly output or entropy encoded by entropy encoding unit 270 or any other entropy encoding unit, such that decoder 30 can receive and apply the same loop filter parameters for decoding.

[0123] The decoded picture buffer (DPB) 230 can be a reference picture memory for storing reference picture data for the encoder 20 to encode video data. The DPB 230 can be formed from any of a variety of memory devices, such as dynamic random access memory (DRAM) (including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM)) or other types of memory devices. The DPB 230 and buffer 216 can be provided by the same memory device or separate memory devices. In one example, the decoded picture buffer (DPB) 230 is used to store filtered block 221. The decoded picture buffer 230 can be further used to store other previously filtered blocks of the same current picture or different pictures, such as previously reconstructed pictures, for example, previously reconstructed and filtered blocks 221, and can provide complete previously reconstructed, i.e., decoded pictures (and corresponding reference blocks and samples) and / or partially reconstructed current pictures (and corresponding reference blocks and samples), for example, for inter-frame prediction. In one instance, if reconstructed block 215 can be reconstructed without in-loop filtering, the decoded picture buffer (DPB) 230 is used to store reconstructed block 215.

[0124] The prediction processing unit 260, also known as the block prediction processing unit 260, is used to receive or acquire image block 203 (current image block 203 of current image 201) and reconstructed image data, such as reference samples of the same (current) image from buffer 216 and / or reference image data 231 of one or more previously decoded images from decoded image buffer 230, and to process such data to make predictions, i.e., to provide prediction block 265 which can be inter-frame prediction block 245 or intra-frame prediction block 255.

[0125] The mode selection unit 262 can be used to select a prediction mode (e.g., intra-frame or inter-frame prediction mode) and / or the corresponding prediction block 245 or 255 used as prediction block 265 to compute residual block 205 and reconstructed block 215.

[0126] Embodiments of the mode selection unit 262 can be used to select a prediction mode (e.g., from those prediction modes supported by the prediction processing unit 260), which provides the best match or minimum residual (minimum residual means better compression in transmission or storage), or provides minimum signaling overhead (minimum signaling overhead means better compression in transmission or storage), or considers or balances both. The mode selection unit 262 can be used to determine the prediction mode based on rate distortion optimization (RDO), i.e., selecting the prediction mode that provides minimum RDO optimization, or selecting the prediction mode whose relevant rate distortion at least meets the prediction mode selection criteria.

[0127] The following will explain in detail the prediction processing performed by an instance of encoder 20 (e.g., by prediction processing unit 260) and the mode selection performed (e.g., by mode selection unit 262).

[0128] As described above, encoder 20 is used to determine or select the best or optimal prediction mode from a (predetermined) set of prediction modes. The set of prediction modes may include, for example, intra-frame prediction modes and / or inter-frame prediction modes.

[0129] The intra-prediction mode set can include 35 different intra-prediction modes, such as non-directional modes like DC (or mean) mode and planar mode, or directional modes as defined in H.265, or it can include 67 different intra-prediction modes, such as non-directional modes like DC (or mean) mode and planar mode, or directional modes as defined in the developing H.266.

[0130] In possible implementations, the set of inter-frame prediction modes depends on the available reference image (i.e., at least a portion of the decoded image stored in the DBP 230 as described above) and other inter-frame prediction parameters, such as whether to use the entire reference image or only a portion of the reference image, such as a search window region surrounding the current block, to search for the best matching reference block, and / or whether to apply pixel interpolation such as half-pixel and / or quarter-pixel interpolation. The set of inter-frame prediction modes may include, for example, skip and merge modes. In specific implementations, the set of inter-frame prediction modes may include a skip-based merge with motion vector difference (MMVD) mode or a merge-based MMVD mode as described in this application. In one instance, the intra-frame prediction unit 254 may be used to perform any combination of the inter-frame prediction techniques described below.

[0131] In addition to the prediction modes mentioned above, the embodiments of this application may also apply skip mode and / or direct mode.

[0132] The prediction processing unit 260 can be further used to segment the image block 203 into smaller block partitions or sub-blocks, for example, by iteratively using quad-tree (QT) segmentation, binary-tree (BT) segmentation, or triple-tree (TT) segmentation, or any combination thereof, and to perform prediction for each of the block partitions or sub-blocks, for example, wherein mode selection includes selecting the tree structure of the segmented image block 203 and selecting a prediction mode to be applied to each of the block partitions or sub-blocks.

[0133] Inter-frame prediction unit 244 may include motion estimation (ME) units. Figure 2 (not shown in the image) and motion compensation (MC) unit ( Figure 2 (Not shown in the image). The motion estimation unit is used to receive or acquire image block 203 (current image block 203 of current image 201) and decoded image 231, or at least one or more previously reconstructed blocks, such as reconstructed blocks of one or more other / different previously decoded images 231, to perform motion estimation. For example, a video sequence may include the current image and the previously decoded image 31, or in other words, the current image and the previously decoded image 31 may be part of an image sequence that forms a video sequence, or form that image sequence.

[0134] For example, encoder 20 can be used to select a reference block from multiple reference blocks of the same or different images in multiple other images, and send it to the motion estimation unit (…). Figure 2(Not shown in the image) Provides a reference image and / or provides the offset (spatial offset) between the position (X, Y coordinates) of the reference block and the position of the current block as an inter-frame prediction parameter. This offset is also called a motion vector (MV).

[0135] The motion compensation unit is used to acquire inter-frame prediction parameters and perform inter-frame prediction based on or using these parameters to obtain inter-frame prediction block 245. (The motion compensation unit...) Figure 2 Motion compensation performed (not shown) can involve extracting or generating prediction blocks based on motion / block vectors determined through motion estimation (possibly performing interpolation with subpixel accuracy). Interpolation filtering can generate additional pixel samples from known pixel samples, potentially increasing the number of candidate prediction blocks available for encoding picture blocks. Once the motion vector of the PU for the current picture block is received, the motion compensation unit 246 can locate the prediction block pointed to by the motion vector in a list of reference pictures. The motion compensation unit 246 can also generate syntax elements associated with blocks and video stripes for the decoder 30 to use when decoding picture blocks of the video stripe.

[0136] Specifically, the inter-frame prediction unit 244 can transmit syntax elements to the entropy coding unit 270. These syntax elements include inter-frame prediction parameters (e.g., indication information for selecting the inter-frame prediction mode for the current block prediction after traversing multiple inter-frame prediction modes). In some application scenarios, if there is only one inter-frame prediction mode, the inter-frame prediction parameters may not be carried in the syntax elements; in this case, the decoding end 30 can directly use the default prediction mode for decoding. It is understood that the inter-frame prediction unit 244 can be used to perform any combination of inter-frame prediction techniques.

[0137] Intra-prediction unit 254 is used to acquire, for example, image block 203 (current image block) of the same image and one or more previously reconstructed blocks, such as reconstructed adjacent blocks, for intra-prediction. For example, encoder 20 can be used to select an intra-prediction mode from a plurality of (predetermined) intra-prediction modes.

[0138] An embodiment of encoder 20 can be used to select an intra-prediction mode based on optimization criteria, such as based on minimum residual (e.g., providing an intra-prediction mode that most closely resembles the current image block 203) or minimum bitrate distortion.

[0139] Intra-prediction unit 254 is further configured to determine intra-prediction block 255 based on intra-prediction parameters as selected for the intra-prediction mode. In any case, after selecting the intra-prediction mode for the block, intra-prediction unit 254 is also configured to provide intra-prediction parameters to entropy coding unit 270, i.e., to provide information indicating the selected intra-prediction mode for the block. In one instance, intra-prediction unit 254 can be used to perform any combination of intra-prediction techniques.

[0140] Specifically, the intra-prediction unit 254 can transmit syntax elements to the entropy coding unit 270. These syntax elements include intra-prediction parameters (e.g., indication information for selecting the intra-prediction mode for the current block prediction after traversing multiple intra-prediction modes). In some application scenarios, if there is only one intra-prediction mode, the intra-prediction parameters may not be carried in the syntax elements; in this case, the decoder 30 can directly use the default prediction mode for decoding.

[0141] Entropy coding unit 270 is used to apply an entropy coding algorithm or scheme (e.g., variable length coding (VLC), context adaptive VLC (CAVLC), arithmetic coding, context adaptive binary arithmetic coding (CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy (PIPE) coding, or other entropy coding methods or techniques) to one or all (or not to apply) of the quantized residual coefficients 209, inter-frame prediction parameters, intra-frame prediction parameters, and / or loop filter parameters to obtain encoded picture data 21 that can be output as, for example, an encoded bitstream 21, through output 272. The encoded bitstream can be transmitted to video decoder 30, or archived for later transmission or retrieval by video decoder 30. Entropy coding unit 270 can also be used to entropy code other syntax elements of the current video strip being encoded.

[0142] Other structural variations of the video encoder 20 can be used to encode video streams. For example, a non-transform-based encoder 20 can directly quantize the residual signal without a transform processing unit 206 for certain blocks or frames. In another embodiment, the encoder 20 may have a quantization unit 208 and an inverse quantization unit 210 combined into a single unit.

[0143] Specifically, in the embodiments of this application, the encoder 20 can be used to implement the video image encoding method described in the embodiments below.

[0144] It should be understood that other structural variations of the video encoder 20 can be used to encode the video stream. For example, for certain image blocks or frames, the video encoder 20 can directly quantize the residual signal without processing by the transform processing unit 206, and correspondingly, without processing by the inverse transform processing unit 212; or, for certain image blocks or frames, the video encoder 20 does not generate residual data, and correspondingly, without processing by the transform processing unit 206, the quantization unit 208, the inverse quantization unit 210, and the inverse transform processing unit 212; or, the video encoder 20 can directly store the reconstructed image block as a reference block without processing by the filter 220; or, the quantization unit 208 and the inverse quantization unit 210 in the video encoder 20 can be combined. The loop filter 220 is optional, and for lossless compression coding, the transform processing unit 206, the quantization unit 208, the inverse quantization unit 210, and the inverse transform processing unit 212 are optional. It should be understood that, depending on the application scenario, the inter-frame prediction unit 244 and the intra-frame prediction unit 254 may be selectively enabled.

[0145] See Figure 3 , Figure 3 A schematic / conceptual block diagram illustrating an example of a decoder 30 for implementing embodiments of this application is shown. The video decoder 30 is used to receive encoded picture data (e.g., encoded bitstream) 21, for example, encoded by the encoder 20, to obtain a decoded picture 231. During the decoding process, the video decoder 30 receives video data from the video encoder 20, such as encoded video bitstreams representing picture blocks of encoded video stripes and associated syntax elements.

[0146] exist Figure 3 In one example, decoder 30 includes an entropy decoding unit 304, an inverse quantization unit 310, an inverse transform processing unit 312, a reconstruction unit 314 (e.g., a summer 314), a buffer 316, a loop filter 320, a decoded image buffer 330, and a prediction processing unit 360. Prediction processing unit 360 may include an inter-frame prediction unit 344, an intra-frame prediction unit 354, and a mode selection unit 362. In some instances, video decoder 30 can perform substantially the same functions as the referenced unit. Figure 2 The video encoder 20 describes the encoding passes as the inverse of the decoding passes.

[0147] Entropy decoding unit 304 is used to perform entropy decoding on encoded image data 21 to obtain, for example, quantization coefficients 309 and / or decoded encoded parameters. Figure 3(Not shown in the image), for example, any one or all of the (decoded) inter-frame prediction, intra-frame prediction parameters, loop filter parameters, and / or other syntax elements. The entropy decoding unit 304 is further configured to forward the inter-frame prediction parameters, intra-frame prediction parameters, and / or other syntax elements to the prediction processing unit 360. The video decoder 30 may receive syntax elements at the video strip level and / or video block level.

[0148] The inverse quantization unit 310 can function the same as the inverse quantization unit 110, the inverse transform processing unit 312 can function the same as the inverse transform processing unit 212, the reconstruction unit 314 can function the same as the reconstruction unit 214, the buffer 316 can function the same as the buffer 216, the loop filter 320 can function the same as the loop filter 220, and the decoded image buffer 330 can function the same as the decoded image buffer 230.

[0149] The prediction processing unit 360 may include an inter-frame prediction unit 344 and an intra-frame prediction unit 354, wherein the inter-frame prediction unit 344 may be functionally similar to the inter-frame prediction unit 244, and the intra-frame prediction unit 354 may be functionally similar to the intra-frame prediction unit 254. The prediction processing unit 360 is typically used to perform block prediction and / or obtain prediction blocks 365 from encoded data 21, and to receive or obtain prediction-related parameters and / or information about the selected prediction mode from, for example, an entropy decoding unit 304 (explicitly or implicitly).

[0150] When a video strip is encoded as an intra-coded (I) strip, the intra-prediction unit 354 of the prediction processing unit 360 generates a prediction block 365 for a picture block of the current video strip based on the intra-prediction mode of the signal representation and data from previously decoded blocks of the current frame or picture. When a video frame is encoded as an inter-coded (i.e., B or P) strip, the inter-prediction unit 344 (e.g., a motion compensation unit) of the prediction processing unit 360 generates a prediction block 365 for a video block of the current video strip based on motion vectors and other syntax elements received from the entropy decoding unit 304. For inter-frame prediction, a prediction block can be generated from a reference picture within a list of reference pictures. The video decoder 30 can construct a list of reference frames, list 0 and list 1, based on reference pictures stored in the DPB 330 using a default construction technique.

[0151] The prediction processing unit 360 is used to determine prediction information for video blocks of the current video slice by parsing motion vectors and other syntax elements, and to generate prediction blocks for the current video slice for proper decoding using the prediction information. In one embodiment of this application, the prediction processing unit 360 uses some received syntax elements to determine the prediction mode (e.g., intra-frame or inter-frame prediction), inter-frame prediction slice type (e.g., B-slice, P-slice, or GPB-slice) for the video blocks used to encode the video slice, the construction information of one or more of the reference picture lists for the slice, the motion vector for each inter-frame coded video block of the slice, the inter-frame prediction state of each inter-frame coded video block of the slice, and other information to decode the video blocks of the current video slice. In another embodiment of this disclosure, the syntax elements received by the video decoder 30 from the bitstream include syntax elements from one or more of the adaptive parameter set (APS), sequence parameter set (SPS), picture parameter set (PPS), or slice header.

[0152] The inverse quantization unit 310 can be used to inverse quantize (i.e., dequantize) the quantized transform coefficients provided in the bitstream and decoded by the entropy decoding unit 304. The inverse quantization process may involve using quantization parameters calculated by the video encoder 20 for each video block in the video strip to determine the degree of quantization to be applied and similarly determine the degree of inverse quantization to be applied.

[0153] The inverse transform processing unit 312 is used to apply an inverse transform (e.g., inverse DCT, inverse integer transform, or a conceptually similar inverse transform process) to the transform coefficients in order to generate a residual block in the pixel domain.

[0154] Reconstruction unit 314 (e.g., summer 314) is used to add inverse transform block 313 (i.e. reconstructed residual block 313) to prediction block 365 to obtain reconstructed block 315 in the sample domain, for example by adding the sample values ​​of reconstructed residual block 313 to the sample values ​​of prediction block 365.

[0155] Loop filter unit 320 (during or after the encoding loop) is used to filter the reconstructed block 315 to obtain the filtered block 321, thereby facilitating pixel transformation or improving video quality. In one instance, loop filter unit 320 can be used to perform any combination of the filtering techniques described below. Loop filter unit 320 is intended to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or other filters such as a bilateral filter, an adaptive loop filter (ALF), or a sharpening or smoothing filter, or a co-filter. Although loop filter unit 320 is used in... Figure 3 The loop filter unit 320 is shown as an in-loop filter, but in other configurations, it can be implemented as a post-loop filter.

[0156] The decoded video block 321 in the given frame or image is then stored in the decoded image buffer 330, which stores a reference image for subsequent motion compensation.

[0157] Decoder 30 is used, for example, to output decoded image 31 via output 332 for presentation to or viewing by the user.

[0158] Other variations of the video decoder 30 can be used to decode compressed bitstreams. For example, the decoder 30 can generate an output video stream without the loop filter unit 320. For example, the non-transform-based decoder 30 can directly inverse quantize the residual signal without the inverse transform processing unit 312 for certain blocks or frames. In another embodiment, the video decoder 30 may have an inverse quantization unit 310 and an inverse transform processing unit 312 combined into a single unit.

[0159] Specifically, in this embodiment, the decoder 30 is used to implement the video image decoding method described in the following embodiments.

[0160] It should be understood that other structural variations of the video decoder 30 can be used to decode the encoded video bitstream. For example, the video decoder 30 may generate an output video stream without processing by filter 320; or, for certain image blocks or frames, the entropy decoding unit 304 of the video decoder 30 may not decode the quantized coefficients, and accordingly, processing by the inverse quantization unit 310 and the inverse transform processing unit 312 is unnecessary. The loop filter 320 is optional; and for lossless compression, the inverse quantization unit 310 and the inverse transform processing unit 312 are optional. It should be understood that, depending on the application scenario, the inter-frame prediction unit and the intra-frame prediction unit may be selectively enabled.

[0161] It should be understood that in the encoder 20 and decoder 30 of this application, the processing result of a certain stage can be further processed and output to the next stage. For example, after the interpolation filtering, motion vector derivation or loop filtering stages, the processing result of the corresponding stage can be further clipped or shifted.

[0162] For example, the motion vectors of the control points of the current image block derived from the motion vectors of adjacent affine coded blocks, or the motion vectors of the sub-blocks of the current image block derived from them, can be further processed, and this application does not limit this. For example, the range of motion vector values ​​can be constrained to a certain bit width. Assuming the allowed bit width of the motion vector is bitDepth, the range of the motion vector is -2^(bitDepth-1) to 2^(bitDepth-1)-1, where the "^" symbol represents a power. If bitDepth is 16, the value range is -32768 to 32767. If bitDepth is 18, the value range is -131072 to 131071. As another example, the values ​​of the motion vectors (e.g., the motion vectors MV of four 4x4 sub-blocks within an 8x8 image block) can be constrained so that the maximum difference between the integer parts of the four 4x4 sub-blocks MV does not exceed N pixels, for example, not more than one pixel.

[0163] See Figure 4 , Figure 4 This is a schematic diagram of the structure of a video decoding device 400 (e.g., a video encoding device 400 or a video decoding device 400) provided in an embodiment of this application. The video decoding device 400 is suitable for implementing the embodiments described herein. In one embodiment, the video decoding device 400 may be a video decoder (e.g., ... Figure 1A decoder 30) or video encoder (e.g. Figure 1A The encoder 20). In another embodiment, the video decoding device 400 may be the one described above. Figure 1A decoder 30 or Figure 1A One or more components in encoder 20.

[0164] The video decoding device 400 includes: an input port 410 and a receiving unit (Rx) 420 for receiving data; a processor, logic unit, or central processing unit (CPU) 430 for processing data; a transmitter unit (Tx) 440 (or simply transmitter 440) and an output port 450 for transmitting data; and a memory 460 (e.g., RAM 460) for storing data. The video decoding device 400 may also include photoelectric conversion components and electro-optical (EO) components coupled to the input port 410, the receiver unit 420 (or simply receiver 420), the transmitter unit 440, and the output port 450 for the input or output of optical or electrical signals.

[0165] Processor 430 is implemented in both hardware and software. Processor 430 can be implemented as one or more CPU chips, cores (e.g., multi-core processors), FPGAs, ASICs, and DSPs. Processor 430 communicates with ingress port 410, receiver unit 420, transmitter unit 440, egress port 450, and memory 460. Processor 430 includes a decoding module 470 (e.g., encoding module 470 or decoding module 470). Encoding / decoding module 470 implements the embodiments disclosed herein to implement the chroma block prediction method provided in the embodiments of this application. For example, encoding / decoding module 470 implements, processes, or provides various encoding operations. Therefore, encoding / decoding module 470 provides a substantial improvement to the functionality of video decoding device 400 and affects the transitions of video decoding device 400 to different states. Alternatively, encoding / decoding module 470 can be implemented with instructions stored in memory 460 and executed by processor 430.

[0166] Memory 460 includes one or more disks, tape drives, and solid-state drives, which can be used as overflow data storage devices to store programs while they are selectively executed, and to store instructions and data read during program execution. Memory 460 can be volatile and / or non-volatile, and can be read-only memory (ROM), random access memory (RAM), ternary content-addressable memory (TCAM), and / or static random access memory (SRAM).

[0167] See Figure 5 , Figure 5 It is available as an exemplary embodiment. Figure 1A A simplified block diagram of device 500 comprising one or both of the source device 12 and the destination device 14. Device 500 can implement the technology of this application. In other words, Figure 5This is a schematic block diagram illustrating one implementation of an encoding or decoding device (hereinafter referred to as decoding device 500) according to an embodiment of this application. The decoding device 500 may include a processor 510, a memory 530, and a bus system 550. The processor and memory are connected via the bus system. The memory stores instructions, and the processor executes the instructions stored in the memory. The memory of the decoding device stores program code, and the processor can call the program code stored in the memory to execute various video image encoding or decoding methods described in this application, particularly video encoding or decoding methods under various inter-frame prediction modes or intra-frame prediction modes. To avoid repetition, further details are omitted here.

[0168] In this embodiment, the processor 510 may be a central processing unit (CPU), or it may be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), off-the-shelf programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor.

[0169] The memory 530 may include a read-only memory (ROM) device or a random access memory (RAM) device. Any other suitable type of storage device may also be used as memory 530. Memory 530 may include code and data 531 accessed by processor 510 using bus 550. Memory 530 may further include an operating system 533 and an application program 535, which includes at least one program that allows processor 510 to execute the video encoding or decoding methods described in this application (especially the video image prediction method or inter-frame prediction method described in this application). For example, application program 535 may include applications 1 to N, which further include a video encoding or decoding application (hereinafter referred to as a video decoding application) that executes the video encoding or decoding methods described in this application.

[0170] In addition to the data bus, the bus system 550 may also include a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as bus system 550 in the diagram.

[0171] Optionally, the decoding device 500 may also include one or more output devices, such as a display 570. In one example, the display 570 may be a haptic display that combines a display with a haptic unit capable of operatively sensing touch input. The display 570 may be connected to the processor 510 via a bus 550.

[0172] JVET-O0636 proposes a cross-component adaptive loop filter (CCALF) method that corrects a chroma pixel based on the filter values ​​of multiple luminance pixels surrounding it. The luminance pixels mentioned are those that have not undergone the adaptive loop filter (ALF), such as the reconstructed pixel obtained by adding the predicted pixel and the residual pixel, or the reconstructed pixel after deblocking filtering, or the reconstructed pixel after deblocking filtering and SAO. The chroma pixels are those that have undergone the adaptive loop filter. Examples of adaptive loop filters include the luminance ALF of the 7x7 diamond-shaped filter based on luminance gradient classification in H.266 / VVC; and the luminance ALF of the 5x5 diamond-shaped filter in H.266 / VVC. Figure 6 As shown. For more information on luminance ALF and chromaticity ALF, please refer to section 3.7.1 of JVET-O2002.

[0173] The CCALF method proposed by JVET-O0636 is as follows, where the YUV format is, for example, YUV4:2:0. Figure 7 As shown:

[0174] 1. Parse the bitstream and obtain the CCALF filter coefficients; specifically, determine the CCALF filter coefficients for Cb and Cr pixels respectively.

[0175] 2. Correct the chroma pixels (which can be Cb pixels and Cr pixels) in the chroma image after ALF processing, including...

[0176] a) Obtain the luminance pixels at preset positions within a 5x6 region surrounding the chrominance pixels. According to the description in JVET-P0080, the correspondence between these luminance pixels and the filter coefficients is as follows: Figure 8 The numbers in the image are shown. The current chroma pixel is C(0, 0), which, in YUV4:2:0 format, is located between luminance pixels 4 and 7. Let the coordinates of C(0, 0) relative to the top-left corner of the chroma image be (Xc0, Yc0). Then the coordinates of luminance pixel 4 relative to the top-left corner of the luminance image are (Xc0*2, Yc0*2), and the coordinates of luminance pixel 4 relative to the top-left corner of the luminance image are (Xc0*2, Yc0*2+1). Pixel 0 corresponds to coefficient 0 in the filter coefficients, pixel 1 corresponds to coefficient 1 in the filter coefficients, pixel 12 (4 in total) corresponds to coefficient 12 in the filter coefficients, and pixel 13 (2 in total) corresponds to coefficient 13 in the filter coefficients.

[0177] b) Set the brightness pixel at the preset position (i.e. Figure 8 The correction amount D is obtained by multiplying the brightness pixels (with digital identifiers) with the corresponding filter coefficients and summing the results. Specifically, pixel 0 is multiplied by coefficient 0 of the filter coefficients, pixel 1 is multiplied by coefficient 1 of the filter coefficients, four pixels 12 are multiplied by coefficient 12 of the filter coefficients, and two pixels 13 are multiplied by coefficient 13 of the filter coefficients.

[0178] c) Add the correction amount D to the chromaticity pixel C(0,0) to obtain the chromaticity pixel C1(0,0).

[0179] The method in the JVET-P0080 proposal requires a 14-tap filter, resulting in high computational complexity. Therefore, this invention proposes an alternative CCALF filter with fewer taps.

[0180] Example 1:

[0181] Step 1: Parse the bitstream and obtain the CCALF filter coefficients; specifically, determine the CCALF filter coefficients for Cb and Cr pixels respectively. Same as JVET-P0080.

[0182] Step 2: Correct the chroma pixels (which can be Cb pixels and Cr pixels) in the chroma image after ALF processing, including...

[0183] a) Obtain the luminance pixels at preset positions within a 5x6 region surrounding the chrominance pixels. The correspondence between these luminance pixels and the filter coefficients is as follows: Figure 9 , Figure 10 , Figure 11 , Figure 12 , Figure 13 or Figure 14 The numbers in the table are shown.

[0184] b) Multiply the brightness pixels at the preset positions by their corresponding filter coefficients and sum them to obtain the correction amount D. Pixel 0 is multiplied by coefficient 0 of the filter coefficients, pixel 1 is multiplied by coefficient 1 of the filter coefficients, and so on. Pixel Cb uses the filter corresponding to Cb, and the correction amount D is superimposed on the Cb pixel; similarly, pixels Cr use the filter corresponding to Cr, and the correction amount D is superimposed on the Cr pixel.

[0185] c) Add the correction amount D to the chromaticity pixel C(0,0) to obtain the chromaticity pixel C1(0,0).

[0186] Figure 9 The CCALF filter in the image contains 5 coefficients (also known as a 5-tap filter). Let C(0, 0) be (Xc0, Yc0) relative to the top-left corner of the chroma image. The correction D is calculated using the following filtering method:

[0187] Find the brightness pixels corresponding to C(0,0), C(-1,0), C(1,0), C(0,-1), and C(0,1), as follows:

[0188] C(0,0) corresponds to two brightness pixels, that is Figure 9 The coordinates of the middle pixel 0 are (Xl0, Yl0) and (Xl0, Yl0+Sz).

[0189] C(-1, 0) corresponds to two brightness pixels, that is Figure 9 The coordinates of the middle pixel 1 are (Xl1, Yl1) and (Xl1, Yl1+Sz).

[0190] C(1, 0) corresponds to two brightness pixels, that is Figure 9 The middle pixel 2 has coordinates (Xl2, Yl2) and (Xl2, Yl2+Sz) respectively;

[0191] C(0, -1) corresponds to two brightness pixels, i.e. Figure 9 The coordinates of the middle pixel 3 are (Xl3, Yl3) and (Xl3, Yl3+Sz);

[0192] C(0, 1) corresponds to two brightness pixels, that is Figure 9 The middle pixel 4 has coordinates (Xl4, Yl4) and (Xl4, Yl4+Sz).

[0193] Xl0 = Xc0 * Sx, Yl0 = Yc0 * Sy

[0194] Xl1=Xc0*Sx-Sx, Yl1=Yc0*Sy

[0195] Xl2=Xc0*Sx+Sx, Yl2=Yc0*Sy

[0196] Xl3=Xc0*Sx,Yl3=Yc0*Sy-Sy*WP

[0197] Xl4=Xc0*Sx, Yl4=Yc0*Sy+Sy*WP

[0198] For YUV4:2:0 format, Sx = 2, Sy = 2, Sz = 1; for YUV4:2:2 format, Sx = 1, Sy = 2, Sz = 0 or Sz = 1; for YUV4:4:4 format, Sx = 1, Sy = 1, Sz = 0. When Sz is 0, each chroma pixel can be considered to correspond to only one luminance pixel, such as C(0, 0) corresponding to (Xl0, Yl0), or C(0, -1) corresponding to (Xl3, Yl3). WP is a preset constant, which is usually greater than or equal to the width of the luminance image.

[0199] It should be noted that this correspondence is particularly applicable to the case where the chroma pixel is located between two luminance pixels in YUV4:2:0 (as shown in Figure 6-1 of VVC draft 6). When other methods are used for chroma downsampling, such as when the chroma pixel and a luminance pixel overlap, Sz can be set to 0, that is, each chroma corresponds to one luminance pixel, such as C(0,0) corresponding to (Xl0,Yl0), or C(0,-1) corresponding to (Xl3,Yl3).

[0200] D=((L(Xl0, Yl0)+L(Xl0, Yl0+Sz))*Coeff(0)+(L(Xl1, Yl1)+L(Xl1, Yl1+Sz))*Coeff(1)+(L(Xl2, Yl2)+L(Xl2, Yl2+S z))*Coeff(2)+(L(Xl3, Yl3)+L(Xl3, Yl3+Sz))*Coeff(3)+(L(Xl4, Yl4)+L(Xl4, Yl4+Sz))*Coeff(4)+offset)>>shift

[0201] where shift and offset are preset constants, such as shift = 7, offset = 1 << (shift-1); Coeff(i) represents the filter coefficients.

[0202] As another approach, the average value of multiple luminance pixels corresponding to a chrominance pixel can be multiplied by the filter coefficients (it should be noted that if a chrominance pixel corresponds to two identical luminance pixels, and the average value is the same as the luminance pixel value, it can also be considered as corresponding to one luminance pixel). In this case... Figure 9 The corresponding method for calculating the chromaticity correction value D under the filter can be as follows:

[0203] D=(((L(Xl0,Yl0)+L(Xl0,Yl0+Sz)+1)>>1)*Coeff(0)+((L(Xl1,Yl1) +L(Xl1,Yl1+Sz)+1)>>1)*Coeff(1)+((L(Xl2,Yl2)+L(Xl2,Yl2+Sz)+ 1)>>1)*Coeff(2)+((L(Xl3,Yl3)+L(Xl3,Yl3+Sz)+1)>>1)*Coeff(3)+((L(Xl4,Yl4)+L(Xl4,Yl4+Sz)+1)>>1)*Coeff(4)+offset)>>shift

[0204] Figure 10 The filter consists of 6 coefficients, where the two luminance pixels corresponding to C(0,0) have different filter coefficients. The correction value D is calculated using this method as follows:

[0205] D=(L(Xl0, Yl0)*Coeff(0)+L(Xl0, Yl0+Sz)*Coeff(1)+(L(Xl1, Yl1)+L(Xl1, Yl1+Sz))*Coeff(2)+(L(Xl2, Yl2)+L(Xl2, Yl 2+Sz))*Coeff(3)+(L(Xl3, Yl3)+L(Xl3, Yl3+Sz))*Coeff(4)+(L(Xl4, Yl4)+L(Xl4, Yl4+Sz))*Coeff(5)+offset)>>shift

[0206] where shift and offset are preset constants, such as shift = 7, offset = 1 << (shift-1); Coeff(i) represents the filter coefficients.

[0207] Figure 11 The filter consists of 6 coefficients, where C(-1, 0), C(1, 0), C(0, -1), and C(0, 1) correspond to a brightness pixel. Figure 10 The filter is simplified, and the correction value D is calculated using this method as follows:

[0208] D=(L(Xl0,Yl0)*Coeff(0)+L(Xl0,Yl0+Sz)*Coeff(1)+L(Xl1,Yl1)*Coeff(2)+L(Xl2,Y l2+Sz)*Coeff(3)+L(Xl3, Yl3)*Coeff(4)+L(Xl4, Yl4+Sz)*Coeff(5)+offset)>>shift

[0209] Figure 12 The filter consists of 7 coefficients, of which Figure 9 Based on this method, two taps are added. The correction value D is calculated as follows:

[0210] D=((L(Xl0, Yl0)+L(Xl0, Yl0+Sz))*Coeff(0)+(L(Xl1, Yl1)+L(Xl1, Yl1+Sz))*Coeff(1)+(L(Xl2, Yl2)+L(Xl 2, Yl2+Sz))*Coeff(2)+(L(Xl3, Yl3)+L(Xl3, Yl3+Sz))*Coeff(3)+(L(Xl4, Yl4)+L(Xl4, Yl4+Sz))*Coeff(4)+ (L(Xl0-1, Yl0)+L(Xl0+1, Yl0))*Coeff(5)+(L(Xl0-1, Yl0+Sz)+L(Xl0+1, Yl0+Sz))*Coeff(5)+(L(Xl0-2, Yl0 -Sz)+L(Xl0+2, Yl0-Sz))*Coeff(6)+(L(Xl0-2, Yl0+Sz*2)+L(Xl0+2, Yl0+Sz*2))*Coeff(6)+offset)>>shift

[0211] Figure 13 The filter consists of 6 coefficients, where C(0, -1) and C(0, 1) correspond to a brightness pixel. Figure 10 The filter is simplified, and the correction value D is calculated using this method as follows:

[0212] D=(L(Xl0, Yl0)*Coeff(0)+L(Xl0, Yl0+Sz)*Coeff(1)+(L(Xl1, Yl1)+L(Xl1, Yl1+Sz)*Coeff(2)+(L(Xl 2, Yl2)+L(Xl2, Yl2+Sz)*Coeff(3)+L(Xl3, Yl3)*Coeff(4)+L(Xl4, Yl4+Sz)*Coeff(5)+offset)>>shift

[0213] Figure 14 The filter consists of 6 coefficients. The correction value D is calculated using this method as follows:

[0214] D=(L(X0,Y0)*Coeff(0)+L(X1,Y1)*Coeff(1)+L(X0-S,Y0)*Coeff(2)+L(X1+S,Y1)*Coeff(3)+(L(X0,Y0-S)*Coeff(4)+L(X1,Y1+S)*Coeff(5)+offset)>>shift

[0215] Where X0 = X1 = Xc0 * Sx, Y0 = Yc0 * Sy, Y1 = Y0 + 1, and S is a preset constant representing the position offset; corresponding to Figure 14 If , then S = 1.

[0216] It should be noted that, Figure 11 The filter can also be expressed by the above formula, where S = 2.

[0217] When using this method, first find two luminance pixels L(X0, Y0) and L(X1, Y1) based on the currently filtered chrominance pixels, where X0 = X1 and Y1 = Y0 + 1. Take luminance pixels L(X0-S, Y0) and L(X0, Y0-S) with a spacing of S luminance pixels to the left and top of L(X0, Y0); take luminance pixels L(X1+S, Y1) and L(X1, Y1+S) with a spacing of S luminance pixels to the right and bottom of L(X1, Y1); and perform filtering on these six luminance pixels to obtain the correction value D.

[0218] Example 2:

[0219] Step 1: Parse the bitstream and obtain the CCALF filter coefficients; specifically, determine the CCALF filter coefficients for Cb and Cr pixels respectively. Same as JVET-P0080.

[0220] Step 2: Parse the bitstream and obtain the position offset constant S in CCALF. The position offset constant S can be represented by a flag bit, for example. A value of 1 indicates S equals 2, and a value of 0 indicates S equals 1. This flag bit is identified in the ALF data syntax structure (such as the alf_data() syntax structure in section 7.3.2.14 Adaptive loop filter data syntax in VVC) within the Sequence Parameter Set (SPS) or Adaptation Parameter Set (APS).

[0221] Step 3: Based on the position offset constant S, correct the chroma pixels (which can be Cb pixels and Cr pixels) in the chroma image after ALF, including...

[0222] a) If S is 1, obtain the luminance pixels at preset positions within a 3x4 region surrounding the chrominance pixel C(0,0), and use... Figure 14 The filter in the image filters the luminance pixels to obtain the correction amount D.

[0223] b) If S is 2, obtain the luminance pixels at preset positions within a 5x6 region surrounding the chrominance pixel C(0,0), and use... Figure 11 The filter in the image filters the luminance pixels to obtain the correction amount D.

[0224] c) Add the correction amount D to the chromaticity pixel C(0,0) to obtain the chromaticity pixel C1(0,0).

[0225] Arithmetic operators

[0226] See 0 for the definitions of arithmetic operators.

[0227] Arithmetic operator definitions

[0228]

[0229] Logical operators

[0230] See 0 for the definition of logical operators.

[0231] Logical operator definition

[0232] Logical operators definition a&&b AND logical operation between a and b a||b OR logical operation between a and b ! Logical NOT operation

[0233] Relational operators

[0234] See 0 for the definition of relational operators.

[0235] Relational operator definition

[0236] Relational operators definition > Greater than >= Greater than or equal to < Less than <= Less than or equal to == equal != Not equal to

[0237] Bitwise operators

[0238] See 0 for the definitions of bitwise operators.

[0239] Bitwise operator definition

[0240] Bitwise operators definition & AND operation | OR operation ~ Invert operation a>>b Shift 'a' to the right by 'b' bits in its two's complement representation. This operation is defined only if 'b' is positive. a << b Shift 'a' to the left by 'b' bits in its two's complement representation. This operation is defined only if 'b' is positive.

[0241] Assignment

[0242] The assignment operation is defined in 0.

[0243] Assignment operation definition

[0244] Assignment operation definition = Assignment operators ++ Incrementing, x++ is equivalent to x = x + 1. When used for array subscripts, the variable value is evaluated before the increment operation. -- Decrement, x - is equivalent to x = x - 1. When used for array indices, the variable value is calculated before the decrement operation. += Incrementing by a specified value, for example, x += 3 is equivalent to x = x + 3, and x += (-3) is equivalent to x = x + (-3). -= Decrement by a specified value, for example, x - = 3 is equivalent to x = x - 3, and x - = (-3) is equivalent to x = x - (-3).

[0245] Mathematical functions

[0246] The mathematical function is defined in equations (1) to (11).

[0247]

[0248] In the formula:

[0249] x — Independent variable x.

[0250]

[0251] In the formula:

[0252] x — Independent variable x.

[0253] Clip1(x) = Clip3(0, 2) BitDepth -1,x)........................(3)

[0254] In the formula:

[0255] x — Independent variable x;

[0256] BitDepth — Encoded sample precision.

[0257]

[0258] In the formula:

[0259] x — Independent variable x;

[0260] i — lower bound;

[0261] j ——— Upper boundary.

[0262] Median(x, y, z)=x+y+z-Min(x, Min(y, z))-Max(x, Max(y, z))......(5)

[0263] In the formula:

[0264] x — Independent variable x;

[0265] y — independent variable y;

[0266] z — Independent variable z.

[0267]

[0268] In the formula:

[0269] x — Independent variable x;

[0270] y — Independent variable y.

[0271]

[0272] In the formula:

[0273] x — Independent variable x;

[0274] y — Independent variable y.

[0275]

[0276] In the formula:

[0277] x — Independent variable x.

[0278] Log(x)=log2 x.............................(9)

[0279] In the formula:

[0280] x — Independent variable x.

[0281] Ln(x) = log e x........................................(10)

[0282] In the formula:

[0283] x — Independent variable x;

[0284] e is the base of the natural logarithm, with a value of 2.718281828….

[0285] Rounding(x, s)=Sign(x)×((Abs(x)+(1<<(s-1)))>>s)s≥1............(11)

[0286] In the formula:

[0287] x — Independent variable x;

[0288] s — Independent variable s.

[0289] Structural relational characters

[0290] See 0 for the definition of structural relational operators.

[0291] Structural relational characters

[0292] Structural relational characters definition -> For example: a->b means that a is a structure and b is a member variable of a.

[0293] Those skilled in the art will appreciate that the functionality described in conjunction with the various illustrative logic blocks, modules, and algorithmic steps disclosed herein can be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functionality described by the various illustrative logic blocks, modules, and steps can be stored or transmitted as one or more instructions or codes on a computer-readable medium and executed by a hardware-based processing unit. The computer-readable medium may comprise a computer-readable storage medium, which corresponds to a tangible medium, such as a data storage medium, or a communication medium that includes any medium facilitating the transfer of a computer program from one place to another (e.g., according to a communication protocol). In this way, the computer-readable medium may substantially correspond to (1) a non-transitory tangible computer-readable storage medium, or (2) a communication medium, such as a signal or carrier wave. The data storage medium may be any available medium accessible by one or more computers or one or more processors to retrieve instructions, code, and / or data structures for implementing the techniques described in this application. A computer program product may comprise a computer-readable medium.

[0294] By way of example and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disc storage devices, magnetic disk storage devices or other magnetic storage devices, flash memory, or any other media that can be used to store desired program code in the form of instructions or data structures and is accessible by a computer. Furthermore, any connection is properly referred to as computer-readable media. For example, if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of media. However, it should be understood that the computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other temporary media, but are specifically addressed to non-temporary tangible storage media. As used herein, disks and optical discs include compact optical discs (CDs), laser optical discs, optical discs, digital versatile optical discs (DVDs), and Blu-ray discs, where disks typically reproduce data magnetically, while optical discs reproduce data optically using lasers. The combination of the above items should also be included in the scope of computer-readable media.

[0295] Instructions can be executed by one or more processors, such as digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Therefore, the term "processor" as used herein can refer to any of the foregoing structures or any other structures suitable for implementing the techniques described herein. Furthermore, in some aspects, the functionality described in the various illustrative logic blocks, modules, and steps described herein can be provided within dedicated hardware and / or software modules configured for encoding and decoding, or incorporated into combined codecs. Moreover, the techniques can be fully implemented within one or more circuit or logic elements.

[0296] The technology of this application can be implemented in a wide variety of devices or apparatuses, including wireless handheld devices, integrated circuits (ICs), or a set of ICs (e.g., chipsets). The various components, modules, or units described in this application are intended to emphasize functional aspects of the apparatus for performing the disclosed technology, but do not necessarily need to be implemented by different hardware units. In fact, as described above, the various units can be combined with suitable software and / or firmware within a codec hardware unit, or provided via interoperable hardware units (containing one or more processors as described above).

[0297] The above description is merely an exemplary embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A video image decoding method, characterized in that, The method includes: Determine the current chroma pixel to be recovered in the current image patch, with coordinates C(0,0); The four adjacent chromaticity pixels of the current chromaticity pixel to be recovered are determined as the left adjacent chromaticity pixel, the right adjacent chromaticity pixel, the upper adjacent chromaticity pixel and the lower adjacent chromaticity pixel, with coordinates C(-1,0), C(1,0), C(0,-1) and C(0,1) respectively. The value of the current chroma pixel is corrected based at least on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, as well as a preset filter. The current image patch is reconstructed based on the corrected values ​​of the current chroma pixels; The step of correcting the value of the current chroma pixel based on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and a preset filter includes: The value of the current chroma pixel is corrected by multiplying the values ​​of the two luminance pixels corresponding to the current chroma pixel by the first coefficient of the filter, the values ​​of the two luminance pixels corresponding to the left adjacent chroma pixel by the second coefficient of the filter, the values ​​of the two luminance pixels corresponding to the right adjacent chroma pixel by the third coefficient of the filter, the values ​​of the two luminance pixels corresponding to the upper adjacent chroma pixel by the fourth coefficient of the filter, and the values ​​of the two luminance pixels corresponding to the lower adjacent chroma pixel by the fifth coefficient of the filter.

2. The method according to claim 1, characterized in that, The step of correcting the value of the current chroma pixel based on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and the value of the preset filter, further includes: The value of the current chromaticity pixel is corrected according to the following mathematical formula: D = ((L(Xl0, Yl0) + L(Xl0, Yl0+Sz)) × Coeff(0) + (L(Xl1, Yl1) + L(Xl1, Yl1+Sz)) × Coeff(1) + (L(Xl2, Yl2) + L(Xl2, Yl2+Sz)) × Coeff(2) + (L(Xl3, Yl3) + L(Xl3, Yl3+Sz)) × Coeff(3) + (L(Xl4, Yl4) + L(Xl4, Yl4+Sz)) × Coeff(4) + offset ) >> shift D represents the correction value of the current chroma pixel, Coeff(0) to Coeff(4) represent the first to fifth coefficients of the filter respectively, L(Xl0, Yl0) and L(Xl0, Yl0+Sz) represent the values ​​of the two luminance pixels corresponding to the current chroma pixel, L(Xl1, Yl1) and L(Xl1, Yl1+Sz) represent the values ​​of the two luminance pixels corresponding to the left adjacent chroma pixel, L(Xl2, Yl2) and L(Xl2, Yl2+Sz) represent the values ​​of the two luminance pixels corresponding to the right adjacent chroma pixel, L(Xl3, Yl3) and L(Xl3, Yl3+Sz) represent the values ​​of the two luminance pixels corresponding to the upper adjacent chroma pixel, and L(Xl4, Yl4) and L(Xl4, Yl4+Sz) represent the values ​​of the two luminance pixels corresponding to the lower adjacent chroma pixel.

3. A video image decoding method, characterized in that, The method includes: Determine the current chroma pixel to be recovered in the current image patch, with coordinates C(0,0); The four adjacent chromaticity pixels of the current chromaticity pixel to be recovered are determined as the left adjacent chromaticity pixel, the right adjacent chromaticity pixel, the upper adjacent chromaticity pixel and the lower adjacent chromaticity pixel, with coordinates C(-1,0), C(1,0), C(0,-1) and C(0,1) respectively. The value of the current chroma pixel is corrected based at least on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, as well as a preset filter. The current image patch is reconstructed based on the corrected values ​​of the current chroma pixels; The step of correcting the value of the current chroma pixel based on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and the value of the preset filter, further includes: The value of the current chroma pixel is corrected based on the product of the value of the upper luminance pixel corresponding to the current chroma pixel and the first coefficient of the filter, the product of the value of the lower luminance pixel corresponding to the current chroma pixel and the second coefficient of the filter, the product of the values ​​of the two luminance pixels corresponding to the left adjacent chroma pixels and the third coefficient of the filter, the product of the values ​​of the two luminance pixels corresponding to the right adjacent chroma pixels and the fourth coefficient of the filter, the product of the values ​​of the two luminance pixels corresponding to the upper adjacent chroma pixels and the fifth coefficient of the filter, and the product of the values ​​of the two luminance pixels corresponding to the lower adjacent chroma pixels and the sixth coefficient of the filter.

4. The method according to claim 3, characterized in that, The step of correcting the value of the current chroma pixel based on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and the value of the preset filter, further includes: The value of the current chromaticity pixel is corrected according to the following mathematical formula: D = ( L(Xl0, Yl0) × Coeff(0) + L(Xl0, Yl0+Sz) × Coeff(1) + ((L(Xl1, Yl1) + L(Xl1, Yl1+Sz)) × Coeff(2) + ((L(Xl2, Yl2) + L(Xl2, Yl2+Sz)) × Coeff(3) + ((L(Xl3, Yl3) + L(Xl3, Yl3+Sz)) × Coeff(4) + ((L(Xl4, Yl4) + L(Xl4, Yl4+Sz)) × Coeff(5) + offset ) >> shift D represents the correction value of the current chroma pixel, Coeff(0) to Coeff(5) represent the first to sixth coefficients of the filter, L(Xl0, Yl0) represents the value of the upper luminance pixel corresponding to the current chroma pixel, L(Xl0, Yl0+Sz) represents the value of the lower luminance pixel corresponding to the current chroma pixel, L(Xl1, Yl1) and L(Xl1, Yl1+Sz) represent the values ​​of the two luminance pixels corresponding to the left adjacent chroma pixels, L(Xl2, Yl2) and L(Xl2, Yl2+Sz) represent the values ​​of the two luminance pixels corresponding to the right adjacent chroma pixels, L(Xl3, Yl3) and L(Xl3, Yl3+Sz) represent the values ​​of the two luminance pixels corresponding to the upper adjacent chroma pixels, and L(Xl4, Yl4) and L(Xl4, Yl4+Sz) represent the values ​​of the two luminance pixels corresponding to the lower adjacent chroma pixels.

5. A video image decoding method, characterized in that, The method includes: Determine the current chroma pixel to be recovered in the current image patch, with coordinates C(0,0); The four adjacent chromaticity pixels of the current chromaticity pixel to be recovered are determined as the left adjacent chromaticity pixel, the right adjacent chromaticity pixel, the upper adjacent chromaticity pixel and the lower adjacent chromaticity pixel, with coordinates C(-1,0), C(1,0), C(0,-1) and C(0,1) respectively. The value of the current chroma pixel is corrected based at least on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, as well as a preset filter. The current image patch is reconstructed based on the corrected values ​​of the current chroma pixels; The step of correcting the value of the current chroma pixel based on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and the value of the preset filter, further includes: The value of the current chroma pixel is corrected based on the product of the value of the upper luminance pixel corresponding to the current chroma pixel and the first coefficient of the filter, the product of the value of the lower luminance pixel corresponding to the current chroma pixel and the second coefficient of the filter, the product of the value of the upper luminance pixel corresponding to the left adjacent chroma pixel and the third coefficient of the filter, the product of the value of the lower luminance pixel corresponding to the right adjacent chroma pixel and the fourth coefficient of the filter, the product of the value of the upper luminance pixel corresponding to the upper adjacent chroma pixel and the fifth coefficient of the filter, and the product of the value of the lower luminance pixel corresponding to the lower adjacent chroma pixel and the sixth coefficient of the filter.

6. The method according to claim 5, characterized in that, The step of correcting the value of the current chroma pixel based on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and the value of the preset filter, further includes: The value of the current chromaticity pixel is corrected according to the following mathematical formula: D = (L(Xl0, Yl0) × Coeff(0) + L(Xl0, Yl0+Sz) × Coeff(1) + L(Xl1, Yl1) × Coeff(2) + L(Xl2, Yl2+Sz) × Coeff(3) + L(Xl3, Yl3) × Coeff(4) + L(Xl4, Yl4+Sz) × Coeff(5) + offset ) >> shift D represents the correction value of the current chroma pixel, Coeff(0) to Coeff(5) represent the first to sixth coefficients of the filter, L(Xl0, Yl0) represents the value of the upper luminance pixel corresponding to the current chroma pixel, L(Xl0, Yl0+Sz) represents the value of the lower luminance pixel corresponding to the current chroma pixel, L(Xl1, Yl1) represents the value of the upper luminance pixel corresponding to the left adjacent chroma pixel, L(Xl2, Yl2+Sz) represents the value of the lower luminance pixel corresponding to the right adjacent chroma pixel, L(Xl3, Yl3) represents the value of the upper luminance pixel corresponding to the upper adjacent chroma pixel, and L(Xl4, Yl4+Sz) represents the value of the lower luminance pixel corresponding to the lower adjacent chroma pixel.

7. A video image decoding method, characterized in that, The method includes: Determine the current chroma pixel to be recovered in the current image patch, with coordinates C(0,0); The four adjacent chromaticity pixels of the current chromaticity pixel to be recovered are determined as the left adjacent chromaticity pixel, the right adjacent chromaticity pixel, the upper adjacent chromaticity pixel and the lower adjacent chromaticity pixel, with coordinates C(-1,0), C(1,0), C(0,-1) and C(0,1) respectively. The value of the current chroma pixel is corrected based at least on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, as well as a preset filter. The current image patch is reconstructed based on the corrected values ​​of the current chroma pixels; The step of correcting the value of the current chroma pixel based on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and the value of the preset filter, further includes: The values ​​of the two luminance pixels corresponding to the current chroma pixel are multiplied by the first coefficient of the filter, the values ​​of the two luminance pixels corresponding to the left adjacent chroma pixel are multiplied by the second coefficient of the filter, the values ​​of the two luminance pixels corresponding to the right adjacent chroma pixel are multiplied by the third coefficient of the filter, the values ​​of the two luminance pixels corresponding to the upper adjacent chroma pixel are multiplied by the fourth coefficient of the filter, the values ​​of the two luminance pixels corresponding to the lower adjacent chroma pixel are multiplied by the fifth coefficient of the filter, and the values ​​of the upper luminance pixels corresponding to the left adjacent chroma pixels and the lower luminance pixels corresponding to the left adjacent chroma pixels are multiplied by the first coefficient of the filter, the values ​​of the two luminance pixels corresponding to the left adjacent chroma pixels are multiplied by the second coefficient of the filter, the values ​​of the two luminance pixels corresponding to the right adjacent chroma pixels are multiplied by the third coefficient of the filter, the values ​​of the two luminance pixels corresponding to the upper adjacent luminance pixels and the values ​​of the two luminance pixels corresponding to the lower adjacent chroma pixels are multiplied by the first coefficient of the filter, the values ​​of the two luminance pixels corresponding to the left adjacent chroma pixels are multiplied by the second coefficient of the filter, the values ​​of the two luminance pixels corresponding to the left adjacent chroma pixels are multiplied by the third coefficient of the filter, and the values ​​of the two luminance pixels corresponding to the upper adjacent luminance pixels and the values ​​of the two luminance pixels corresponding to the lower adjacent chroma pixels are multiplied by the first coefficient of the filter, the values ​​of the two luminance pixels corresponding to the left adjacent chroma pixels are multiplied by the third coefficient of the filter, and the values ​​of the two luminance pixels corresponding to the upper adjacent luminance pixels and the values ​​of the two luminance pixels corresponding to the lower adjacent chroma pixels are multiplied by the third coefficient of the filter. The value of the current chroma pixel is corrected by multiplying the value of the lower chroma pixel of the side chroma pixel, the value of the upper chroma pixel corresponding to the right adjacent chroma pixel, and the value of the lower chroma pixel corresponding to the right adjacent chroma pixel with the seventh coefficient of the filter, respectively. The values ​​of the right chroma pixels of the upper chroma pixel corresponding to the left adjacent chroma pixel, the right chroma pixels of the lower chroma pixel corresponding to the left adjacent chroma pixel, the left chroma pixels of the upper chroma pixel corresponding to the right adjacent chroma pixel, and the left chroma pixels of the lower chroma pixel corresponding to the right adjacent chroma pixel with the sixth coefficient of the filter.

8. The method according to claim 7, characterized in that, The value of the luminance pixel is determined based on the current chroma pixel and the values ​​of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and a preset filter is applied to the current chroma pixel. Correcting the values ​​of the front chroma pixels also includes: The value of the current chromaticity pixel is corrected according to the following mathematical formula: D = ( (L(Xl0, Yl0) + L(Xl0, Yl0+Sz)) × Coeff(0) + ((L(Xl1, Yl1) + L(Xl1, Yl1+Sz)) × Coeff(1) + ((L(Xl2, Yl2) + L(Xl2, Yl2+Sz)) × Coeff(2) + ((L(Xl3, Yl3) + L(Xl3, Yl3+Sz)) × Coeff(3) + ((L(Xl4, Yl4) + L(Xl4, Yl4+Sz)) ×Coeff(4) + ((L(Xl0-1, Yl0) + L(Xl0+1, Yl0)) × Coeff(5) + ((L(Xl0-1, Yl0+Sz) + L(Xl0+1, Yl0+Sz)) × Coeff(5) + ((L(Xl0-2, Yl0-Sz) + L(Xl0+2, Yl0-Sz)) × Coeff(6) + (L(Xl0-2, Yl0+Sz×2) + L(Xl0+2, Yl0+Sz×2)) × Coeff(6)+ offset ) >>shift D represents the correction value of the current chroma pixel, Coeff(0) to Coeff(6) represent the first to seventh coefficients of the filter, L(Xl0, Yl0) and L(Xl0, Yl0+Sz) represent the values ​​of the two luminance pixels corresponding to the current chroma pixel, L(Xl1, Yl1) and L(Xl1, Yl1+Sz) represent the values ​​of the two luminance pixels corresponding to the left adjacent chroma pixel, L(Xl2, Yl2) and L(Xl2, Yl2+Sz) represent the values ​​of the two luminance pixels corresponding to the right adjacent chroma pixel, L(Xl3, Yl3) and L(Xl3, Yl3+Sz) represent the values ​​of the two luminance pixels corresponding to the upper adjacent chroma pixel, L(Xl4, Yl4) and L(Xl4, Yl4+Sz) represent the values ​​of the two luminance pixels corresponding to the lower adjacent chroma pixel, L(Xl0-1, Yl0), L(Xl0+1, L(Xl0), L(Xl0-1, Yl0+Sz), and L(Xl0+1, Yl0+Sz) represent the values ​​of the right-hand luminance pixel of the upper luminance pixel corresponding to the left-adjacent chrominance pixel, the right-hand luminance pixel of the lower luminance pixel corresponding to the left-adjacent chrominance pixel, the left-hand luminance pixel of the upper luminance pixel corresponding to the right-adjacent chrominance pixel, and the left-hand luminance pixel of the lower luminance pixel corresponding to the right-adjacent chrominance pixel, respectively; L(Xl0-2, Yl0-Sz), L(Xl0+2, Yl0-Sz), L(Xl0-2, Yl0+Sz×2), and L(Xl0+2, Yl0+Sz×2) represent the values ​​of the upper luminance pixel corresponding to the upper luminance pixel of the left adjacent chroma pixel, the lower luminance pixel corresponding to the lower luminance pixel of the left adjacent chroma pixel, the upper luminance pixel corresponding to the upper luminance pixel of the right adjacent chroma pixel, and the lower luminance pixel corresponding to the lower luminance pixel of the right adjacent chroma pixel, respectively.

9. A video image decoding method, characterized in that, The method includes: Determine the current chroma pixel to be recovered in the current image patch, with coordinates C(0,0); The four adjacent chromaticity pixels of the current chromaticity pixel to be recovered are determined as the left adjacent chromaticity pixel, the right adjacent chromaticity pixel, the upper adjacent chromaticity pixel and the lower adjacent chromaticity pixel, with coordinates C(-1,0), C(1,0), C(0,-1) and C(0,1) respectively. The value of the current chroma pixel is corrected based at least on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, as well as a preset filter. The current image patch is reconstructed based on the corrected values ​​of the current chroma pixels; The step of correcting the value of the current chroma pixel based on the value of the current chroma pixel and the value of at least one luminance pixel corresponding to each of the four adjacent chroma pixels, and the value of the preset filter, further includes: The value of the current chroma pixel is corrected based on the product of the value of the upper luminance pixel corresponding to the current chroma pixel and the first coefficient of the filter, the product of the value of the lower luminance pixel corresponding to the current chroma pixel and the second coefficient of the filter, the product of the values ​​of the two luminance pixels corresponding to the left adjacent chroma pixels and the third coefficient of the filter, the product of the values ​​of the two luminance pixels corresponding to the right adjacent chroma pixels and the fourth coefficient of the filter, the product of the value of the upper luminance pixel corresponding to the upper adjacent chroma pixel and the fifth coefficient of the filter, and the product of the value of the lower luminance pixel corresponding to the lower adjacent chroma pixel and the sixth coefficient of the filter.

10. The method according to claim 9, characterized in that, The based on the current chromaticity The values ​​of the pixel and at least one luminance pixel corresponding to each of the four adjacent chroma pixels, as well as the correction of the value of the current chroma pixel by the preset filter, further include: The value of the current chromaticity pixel is corrected according to the following mathematical formula: D = (L(Xl0, Yl0) × Coeff(0) + L(Xl0, Yl0+Sz) × Coeff(1) + ((L(Xl1, Yl1) + L(Xl1, Yl1+Sz)) × Coeff(2) + ((L(Xl2, Yl2) + L(Xl2, Yl2+Sz)) × Coeff(3) + (L(Xl3, Yl3) × Coeff(4) +L(Xl4, Yl4+Sz) × Coeff(5) + offset ) >> shift D represents the correction value of the current chroma pixel, Coeff(0) to Coeff(5) represent the first to sixth coefficients of the filter, L(Xl0, Yl0) represents the value of the upper luminance pixel corresponding to the current chroma pixel, L(Xl0, Yl0+Sz) represents the value of the lower luminance pixel corresponding to the current chroma pixel, L(Xl1, Yl1) and L(Xl1, Yl1+Sz) represent the values ​​of the two luminance pixels corresponding to the left adjacent chroma pixels, L(Xl2, Yl2) and L(Xl2, Yl2+Sz) represent the values ​​of the two luminance pixels corresponding to the right adjacent chroma pixels, L(Xl3, Yl3) represents the value of the upper luminance pixel corresponding to the upper adjacent chroma pixel, and L(Xl4, Yl4+Sz) represents the value of the lower luminance pixel corresponding to the lower adjacent chroma pixel.

11. A video image decoding method, characterized in that, The method includes: Determine the current chroma pixel to be recovered in the current image patch, with coordinates C(0,0); The value of the current chroma pixel is corrected based on the values ​​of the upper luminance pixel, the lower luminance pixel, the left luminance pixel of the upper luminance pixel, the upper luminance pixel of the upper luminance pixel, the lower luminance pixel of the lower luminance pixel, the right luminance pixel of the lower luminance pixel, and a preset filter. The current image patch is reconstructed based on the corrected values ​​of the current chroma pixels; The step of correcting the value of the current chroma pixel based on the values ​​of the upper luminance pixel, the lower luminance pixel, the left luminance pixel of the upper luminance pixel, the upper luminance pixel of the upper luminance pixel, the lower luminance pixel of the lower luminance pixel, the right luminance pixel of the lower luminance pixel, and a preset filter includes: The value of the current chroma pixel is corrected by multiplying the value of the upper luminance pixel corresponding to the current chroma pixel by the first coefficient of the filter, the value of the lower luminance pixel corresponding to the current chroma pixel by the second coefficient of the filter, the value of the left luminance pixel of the upper luminance pixel by the third coefficient of the filter, the value of the upper luminance pixel of the upper luminance pixel by the fifth coefficient of the filter, the value of the lower luminance pixel of the lower luminance pixel by the sixth coefficient of the filter, and the value of the right luminance pixel of the lower luminance pixel by the fourth coefficient of the filter.

12. The method according to claim 11, characterized in that, The step of correcting the value of the current chroma pixel based on the values ​​of the upper luminance pixel, the lower luminance pixel, the left luminance pixel of the upper luminance pixel, the upper luminance pixel of the upper luminance pixel, the lower luminance pixel of the lower luminance pixel, the right luminance pixel of the lower luminance pixel, and a preset filter further includes: The value of the current chromaticity pixel is corrected according to the following mathematical formula: D = (L(X0, Y0) × Coeff(0) + L(X1, Y1) × Coeff(1) + L(X0-1, Y0) × Coeff(2) + L(X1+1, Y1) × Coeff(3) + (L(X0, Y0-1) × Coeff(4) + L(X1, Y1+1) × Coeff(5) + offset ) >> shift Where X0 = X1 = Xc0 × Sx, Y0 = Yc0 × Sy, Y1 = Y0 + 1 D represents the correction value of the current chroma pixel, Coeff(0) to Coeff(5) represent the first to sixth coefficients of the filter, L(X0, Y0) represents the value of the upper luminance pixel corresponding to the current chroma pixel, L(X1, Y1) represents the value of the lower luminance pixel corresponding to the current chroma pixel, L(X0-1, Y0) represents the value of the left luminance pixel of the upper luminance pixel, L(X1+1, Y1) represents the value of the right luminance pixel of the lower luminance pixel, L(X0, Y0-1) represents the value of the upper luminance pixel of the upper luminance pixel, and L(X1, Y1+1) represents the value of the lower luminance pixel of the lower luminance pixel.

13. A video image decoding method, characterized in that, The method includes: Determine the current chroma pixel to be recovered in the current image patch, with coordinates C(0,0); Determine the offset value to be used; Based on the offset value, determine the four luminance pixels needed to correct the value of the current chroma pixel; The value of the current chroma pixel is corrected based on the values ​​of the upper and lower luminance pixels corresponding to the current chroma pixel, the values ​​of the four luminance pixels, and a preset filter. The current image patch is reconstructed based on the corrected values ​​of the current chroma pixels; The four brightness pixels include: the left brightness pixel of the upper brightness pixel, the upper brightness pixel of the upper brightness pixel, the lower brightness pixel of the lower brightness pixel, and the right brightness pixel of the lower brightness pixel.

14. The method as described in claim 13, characterized in that, The offset value is 1.

15. The method as described in claim 14, characterized in that, The step of correcting the value of the current chroma pixel based on the values ​​of the upper and lower luminance pixels corresponding to the current chroma pixel, the values ​​of the four luminance pixels, and a preset filter includes: The value of the current chroma pixel is corrected by multiplying the value of the upper luminance pixel corresponding to the current chroma pixel by the first coefficient of the filter, the value of the lower luminance pixel corresponding to the current chroma pixel by the second coefficient of the filter, the value of the left luminance pixel of the upper luminance pixel by the third coefficient of the filter, the value of the upper luminance pixel of the upper luminance pixel by the fifth coefficient of the filter, the value of the lower luminance pixel of the lower luminance pixel by the sixth coefficient of the filter, and the value of the right luminance pixel of the lower luminance pixel by the fourth coefficient of the filter.

16. The method as described in claim 13, characterized in that, The offset value is 2; The four luminance pixels include: the upper luminance pixel corresponding to the left adjacent chrominance pixel of the current chrominance pixel, the lower luminance pixel corresponding to the right adjacent chrominance pixel of the current chrominance pixel, the upper luminance pixel corresponding to the upper adjacent chrominance pixel of the current chrominance pixel, and the lower luminance pixel corresponding to the lower adjacent chrominance pixel of the current chrominance pixel.

17. The method as described in claim 16, characterized in that, The step of correcting the value of the current chroma pixel based on the values ​​of the upper and lower luminance pixels corresponding to the current chroma pixel, the values ​​of the four luminance pixels, and a preset filter includes: The value of the current chroma pixel is corrected based on the product of the value of the upper luminance pixel corresponding to the current chroma pixel and the first coefficient of the filter, the product of the value of the lower luminance pixel corresponding to the current chroma pixel and the second coefficient of the filter, the product of the value of the upper luminance pixel corresponding to the left adjacent chroma pixel and the third coefficient of the filter, the product of the value of the lower luminance pixel corresponding to the right adjacent chroma pixel and the fourth coefficient of the filter, the product of the value of the upper luminance pixel corresponding to the upper adjacent chroma pixel and the fifth coefficient of the filter, and the product of the value of the lower luminance pixel corresponding to the lower adjacent chroma pixel and the sixth coefficient of the filter.

18. The method as described in claim 16 or 17, characterized in that, The step of correcting the value of the current chroma pixel based on the values ​​of the upper and lower luminance pixels corresponding to the current chroma pixel, the values ​​of the four luminance pixels, and a preset filter includes: The value of the current chromaticity pixel is corrected according to the following mathematical formula: D = (L(X0, Y0) × Coeff(0) + L(X1, Y1) × Coeff(1) + L(X0-S, Y0) × Coeff(2) + L(X1 + S, Y1)× Coeff(3) + (L(X0, Y0-S) × Coeff(4) + L(X1, Y1+S) ×Coeff(5) + offset ) >> shift Where X0 = X1 = Xc0 × Sx, Y0 = Yc0 × Sy, Y1 = Y0+1, and S is the offset value. D represents the correction value of the current chroma pixel, Coeff(0) to Coeff(5) represent the first to sixth coefficients of the filter, L(X0, Y0) represents the value of the upper luminance pixel corresponding to the current chroma pixel, L(X1, Y1) represents the value of the lower luminance pixel corresponding to the current chroma pixel, L(X0-S, Y0) represents the value of the upper luminance pixel corresponding to the left adjacent chroma pixel, L(X1+S, Y1) represents the value of the lower luminance pixel corresponding to the right adjacent chroma pixel, L(X0, Y0-S) represents the value of the upper luminance pixel corresponding to the upper adjacent chroma pixel, and L(X1, Y1+S) represents the value of the lower luminance pixel corresponding to the lower adjacent chroma pixel.

19. A video decoder, characterized in that, include: A module for performing the method as described in any one of claims 1-18.

20. A video encoding / decoding device, comprising: A non-volatile memory and a processor are coupled together, the processor calling program code stored in the memory to perform the method described in any one of claims 1-18.

21. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when run on a processor, implements the method described in any one of claims 1-18.