Interpolation filtering based intra prediction, video encoding and decoding method, apparatus and system

The intra prediction method using interpolation filtering enhances video encoding and decoding by determining filtering coefficients and predicting pixel points, addressing the limitations of existing standards for improved coding performance and reduced bandwidth.

JP2026505912APending Publication Date: 2026-02-19GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025549625
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-02-24
Publication Date
2026-02-19

AI Technical Summary

Technical Problem

Existing digital video compression standards, such as H.266/Versatile Video Coding (VVC), face challenges in reducing bandwidth and traffic burden, with intra prediction modes in block-based hybrid coding frameworks needing improvement for better coding performance.

Method used

An intra prediction method based on interpolation filtering, determining filtering coefficients and predicting pixel points using a filtering window and reconstruction values to enhance video encoding and decoding processes.

Benefits of technology

Improves coding performance by utilizing spatial redundancy and reducing prediction errors, offering better compression efficiency in video transmission and storage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026505912000001_ABST
    Figure 2026505912000001_ABST
Patent Text Reader

Abstract

In the video encoding and decoding method, apparatus, and system, intra prediction based on interpolation filtering is performed in the intra prediction process of video encoding and decoding, and filtering coefficients to be used when performing interpolation filtering on a current block are determined based on a filtering window of the current block and reconstructed values ​​of pixel points in a reconstruction region adjacent to the current block, and pixel points in the current block are predicted one by one based on the filtering window and the filtering coefficients to obtain a predicted block of the current block. The embodiments of the present disclosure can improve coding performance by obtaining a predicted block of the current block by utilizing spatial redundancy in the current block and its adjacent reconstruction region.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] FIELD Embodiments of the present disclosure relate to video technology, but are not limited thereto, and more particularly to intra-prediction based interpolation filtering, video encoding and decoding methods, apparatuses and systems. [Background technology]

[0002] Digital video compression technology primarily compresses massive amounts of digital video data for ease of transmission and storage. Currently, common video encoding and decoding standards, such as H.266 / Versatile Video Coding (VVC), all adopt a block-based hybrid coding framework. Each frame in a video is divided into square largest coding units (LCUs) of the same size (e.g., 128x128, 64x64, etc.). Each LCU can be divided into rectangular coding units (CUs) according to a rule. The coding units may be further divided into prediction units (PUs), transform units (TUs), etc. The hybrid coding framework includes modules such as prediction, transform, quantization, entropy coding, and in-loop filters. The prediction module includes intra-prediction and inter-prediction to reduce or remove redundancy inherent in video. Intrablocks are predicted using neighboring pixels, while interblocks use information from spatially adjacent blocks or other reference information within a frame. Residual information from the predicted signal is transformed, quantized, and entropy coded on a block-by-block basis to generate a bitstream. These techniques are described in standards and are implemented in various fields related to video compression.

[0003] With the rapid growth of Internet video and people's increasing demand for video definition, although existing digital video compression standards can save a lot of bandwidth, there is currently still a need to seek better digital video compression technologies to reduce the bandwidth and traffic burden of digital video transmission. Summary of the Invention

[0004] The following is a summary of the subject matter described in detail herein, which is not intended to limit the scope of protection of the claims.

[0005] An embodiment of the present disclosure provides an intra prediction method based on interpolation filtering, the method comprising: determining filtering coefficients to be used when performing interpolation filtering on the current block based on a filtering window of the current block and reconstruction values ​​of pixel points in a reconstruction region adjacent to the current block; predicting pixel points in the current block one by one according to the filtering window and the filtering coefficient to obtain a predicted block of the current block; When predicting the current pixel point, a reference pixel point adjacent to the current pixel point is determined based on the filtering window, and an interpolation filtering is performed based on the pixel value of the reference pixel point and the filtering coefficient to obtain a predicted value of the current pixel point.

[0006] An embodiment of the present disclosure further provides a video decoding method, the method comprising: decoding an interpolation filtering mode flag of the current block; When it is determined that the intra prediction of the current block is performed using the interpolation filtering mode based on the interpolation filtering mode flag obtained by decoding, determining a filtering window and a reconstruction region to be selected for the current block; Based on the determined filtering window and reconstruction region, performing intra prediction on the current block by an intra prediction method based on interpolation filtering, as described in any embodiment of the present disclosure.

[0007] An embodiment of the present disclosure further provides a video encoding method, the method comprising: Performing intra prediction on a current block based on a plurality of intra prediction modes, and when it is determined that the current block is allowed to use an interpolation filtering mode, performing intra prediction of the interpolation filtering mode on the current block by an intra prediction method described in any one of the embodiments of the present disclosure; If it is determined that intra prediction of the current block is to be performed using an interpolation filtering mode based on the rate-distortion costs of the multiple types of intra prediction modes, encoding an interpolation filtering mode flag of the current block to indicate that intra prediction of the current block is to be performed using the interpolation filtering mode.

[0008] An embodiment of the present disclosure further provides a bitstream generated by the video encoding method according to any of the embodiments of the present disclosure.

[0009] An embodiment of the present disclosure further provides an intra prediction device based on interpolation filtering, including a processor and a memory storing a computer program, wherein, when the processor executes the computer program, the intra prediction method based on interpolation filtering described in any embodiment of the present disclosure can be realized.

[0010] An embodiment of the present disclosure further provides a video decoding device including a processor and a memory storing a computer program, wherein, when the processor executes the computer program, the video decoding method described in any of the embodiments of the present disclosure can be realized.

[0011] An embodiment of the present disclosure further provides a video encoding device including a processor and a memory storing a computer program, wherein, when the processor executes the computer program, the video encoding method described in any of the embodiments of the present disclosure can be realized.

[0012] An embodiment of the present disclosure further provides a video encoding and decoding system including a video encoding device according to any one of the embodiments of the present disclosure and a video decoding device according to any one of the embodiments of the present disclosure.

[0013] An embodiment of the present disclosure further provides a non-transitory computer-readable storage medium having a computer program stored thereon, wherein the computer program, when executed by a processor, is capable of realizing the intra prediction method based on interpolation filtering described in any of the embodiments of the present disclosure, the video decoding method described in any of the embodiments of the present disclosure, or the video encoding method described in any of the embodiments of the present disclosure.

[0014] An embodiment of the present disclosure further provides a computer program product including a computer program, which, when executed by a processor, is capable of realizing the intra prediction method based on interpolation filtering described in any embodiment of the present disclosure, the video decoding method described in any embodiment of the present disclosure, or the video encoding method described in any embodiment of the present disclosure. [Brief explanation of the drawings]

[0015] The drawings are used to understand the embodiments of the present disclosure, constitute a part of the specification, and are used to interpret the technical aspects of the present disclosure together with the embodiments of the present disclosure, and are not intended to limit the technical aspects of the present disclosure.

[0016] [Figure 1A] FIG. 1 is a schematic diagram of an encoding and decoding system according to one embodiment of the present disclosure. [Figure 1B] FIG. 1 is a framework diagram for the encoder side of one embodiment of the present disclosure. [Figure 1C] FIG. 1 is a decoder-side framework diagram of one embodiment of the present disclosure. [Figure 2] FIG. 1 is a schematic diagram of intra-prediction modes according to an embodiment of the present disclosure. [Figure 3] 1 is a flowchart of an intra prediction method based on interpolation filtering according to one embodiment of the present disclosure. [Figure 4A] FIG. 2 is a schematic diagram of a filtering window used in one embodiment of the present disclosure. [Figure 4B] FIG. 2 is a schematic diagram of an interpolation filter used in one embodiment of the present disclosure. [Figure 5A] 3A and 3B are schematic diagrams of the positional relationship between a filtering window, a current block, and a reconstruction region when a current pixel point is at three different positions within the current block, respectively, according to an embodiment of the present disclosure. [Figure 5B] 3A and 3B are schematic diagrams of the positional relationship between a filtering window, a current block, and a reconstruction region when a current pixel point is at three different positions within the current block, respectively, according to an embodiment of the present disclosure. [Figure 5C] 3A and 3B are schematic diagrams of the positional relationship between a filtering window, a current block, and a reconstruction region when a current pixel point is at three different positions within the current block, respectively, according to an embodiment of the present disclosure. [Figure 6A] 3A-3C are schematic diagrams of three different spatial relationships between a reference pixel point and a current pixel point, each according to an embodiment of the present disclosure. [Figure 6B] 3A-3C are schematic diagrams of three different spatial relationships between a reference pixel point and a current pixel point, each according to an embodiment of the present disclosure. [Figure 6C] 3A-3C are schematic diagrams of three different spatial relationships between a reference pixel point and a current pixel point, each according to an embodiment of the present disclosure. [Figure 7A] 6B and 6C, respectively, according to an embodiment of the present disclosure. [Figure 7B]6B and 6C, respectively, according to an embodiment of the present disclosure. [Figure 7C] 6B and 6C, respectively, according to an embodiment of the present disclosure. [Figure 8A] 1A and 1B are schematic diagrams illustrating the reconstruction regions adjacent to the current block as a top reconstruction region, a left reconstruction region, and an L-shaped reconstruction region, respectively, according to an embodiment of the present disclosure. [Figure 8B] 1A and 1B are schematic diagrams illustrating the reconstruction regions adjacent to the current block as a top reconstruction region, a left reconstruction region, and an L-shaped reconstruction region, respectively, according to an embodiment of the present disclosure. [Figure 8C] 1A and 1B are schematic diagrams illustrating the reconstruction regions adjacent to the current block as a top reconstruction region, a left reconstruction region, and an L-shaped reconstruction region, respectively, according to an embodiment of the present disclosure. [Figure 9A] 10A-10C are schematic diagrams of sample positions selected with different step sizes when constructing the Wiener-Hopf equations, each according to an embodiment of the present disclosure. [Figure 9B] 10A-10C are schematic diagrams of sample positions selected with different step sizes when constructing the Wiener-Hopf equations, each according to an embodiment of the present disclosure. [Figure 10] FIG. 10 is a schematic diagram of a portion of a reconstruction region for calculating an average value when an L-shaped reconstruction region is adopted according to an embodiment of the present disclosure. [Figure 11] 1 is a flowchart of a video encoding method according to an embodiment of the present disclosure. [Figure 12] 1 is a flowchart of a video decoding method according to an embodiment of the present disclosure. [Figure 13A] 1A-1C are schematic diagrams of six different types of reconstruction regions used in examples of the present disclosure. [Figure 13B] 1A-1C are schematic diagrams of six different types of reconstruction regions used in examples of the present disclosure. [Figure 13C] 1A-1C are schematic diagrams of six different types of reconstruction regions used in examples of the present disclosure. [Figure 13D]1A-1C are schematic diagrams of six different types of reconstruction regions used in examples of the present disclosure. [Figure 13E] 1A-1C are schematic diagrams of six different types of reconstruction regions used in examples of the present disclosure. [Figure 13F] 1A-1C are schematic diagrams of six different types of reconstruction regions used in examples of the present disclosure. [Figure 14A] 2A-2C are schematic diagrams of two different ternary tree division methods for a current block, each according to an embodiment of the present disclosure. [Figure 14B] 2A-2C are schematic diagrams of two different ternary tree division methods for a current block, each according to an embodiment of the present disclosure. [Figure 15] FIG. 1 is a structural schematic diagram of an intra-prediction device based on interpolation filtering according to an embodiment of the present disclosure; [Figure 16A] FIG. 10 is a schematic diagram of six different scanning methods when predicting pixel points one by one, according to an embodiment of the present disclosure. [Figure 16B] FIG. 10 is a schematic diagram of six different scanning methods when predicting pixel points one by one, according to an embodiment of the present disclosure. [Figure 16C] FIG. 10 is a schematic diagram of six different scanning methods when predicting pixel points one by one, according to an embodiment of the present disclosure. [Figure 16D] FIG. 10 is a schematic diagram of six different scanning methods when predicting pixel points one by one, according to an embodiment of the present disclosure. [Figure 16E] FIG. 10 is a schematic diagram of six different scanning methods when predicting pixel points one by one, according to an embodiment of the present disclosure. [Figure 16F] FIG. 10 is a schematic diagram of six different scanning methods when predicting pixel points one by one, according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0017] While this disclosure describes several embodiments, the descriptions are illustrative rather than limiting, and those skilled in the art will recognize that many more embodiments and implementations are possible within the scope of the embodiments described in this disclosure.

[0018] In the description of the present disclosure, terms such as "exemplary" or "for example" are intended to represent or illustrate as an example, illustration, or example. Any embodiment described as "exemplary" or "for example" in the present disclosure should not be construed as being preferred or superior to other embodiments. In this specification, "and / or" is a description of one relationship between related objects and indicates that three types of relationships can exist. For example, A and / or B can represent three situations: A alone, A and B simultaneously, and B alone. "Plurality" refers to two or more. Furthermore, to facilitate clear explanation of the technical aspects of the embodiments of the present disclosure, terms such as "first" and "second" are used to distinguish between items that are essentially the same or similar in function and action. Those skilled in the art will understand that terms such as "first" and "second" do not limit the quantity or execution order, and that terms such as "first" and "second" do not necessarily limit different items. As used herein, "including any one or more of option 1, option 2, ..." or "including any one or more of option 1, option 2, ..." refers to including any one of the listed options or any combination of two or more of the listed options. For example, "including any one or more of A and B" or "including any one or more of A and B" refers to including only A, including only B, or including A and B. Also, for example, "including any one or more of A, B, and C" or "including any one or more of A, B, and C" refers to including only A, including only B, including only C, including A and B, including A and C, including B and C, or including A, B, and C. Cases with more options can also be inferred from this analogy.

[0019] When describing representative exemplary embodiments, the specification may present a method and / or process with a particular sequence of steps. However, the method or process should not be limited to the particular order of steps set forth herein, unless the method or process relies on the particular order of steps set forth herein. As one of ordinary skill in the art will appreciate, other orders of steps are possible. Thus, the particular order of steps set forth in the specification should not be construed as limiting the scope of the claims. Additionally, method and / or process claims should not be limited to performing those steps in the written order; one of ordinary skill in the art will readily appreciate that these orders can be varied and still fall within the spirit and scope of the embodiments of the present disclosure.

[0020] The intra prediction method, video encoding method, and video decoding method based on interpolation filtering according to the embodiments of the present disclosure are applicable to various video encoding and decoding standards, such as H.264 / Advanced Video Coding (AVC), H.265 / High Efficiency Video Coding (HEVC), H.266 / Versatile Video Coding (VVC), AVS (Audio Video coding Standard), and other standards formulated by MPEG (Moving Picture Experts Group), AOM (Alliance for Open Media), JVET (Joint Video Experts Team), extensions of these standards, or any other customized standards.

[0021] FIG. 1A is a block diagram of a video encoding and decoding system applicable to an embodiment of the present disclosure. As shown, the system is divided into an encoder side 1 and a decoder side 2, where the encoder side 1 generates a bitstream and the decoder side 2 decodes the bitstream. The decoder side 2 can receive the bitstream from the encoder side 1 via a link 3. The link 3 includes one or more media or devices that transmit the bitstream from the encoder side 1 to the decoder side 2. In one example, the link 3 includes one or more communication media that enable the encoder side 1 to directly transmit the bitstream to the decoder side 2. The encoder side 1 modulates the bitstream according to a communication standard and transmits the modulated bitstream to the decoder side 2. The one or more communication media may include wireless and / or wired communication media and may form part of a packet network. In another example, the bitstream may be output from an output interface 15 to a storage device, and the decoder side 2 can read the stored data from the storage device by streaming or downloading.

[0022] As shown, the encoder side 1 includes a data source 11, a video encoding device 13, and an output interface 15. The data source 11 may include a video capture device (e.g., a camera), an archive containing pre-captured data, a feed interface for receiving data from a content provider, a computer graphics system for generating data, or a combination of these sources. The video encoding device 13, which may be referred to as a video encoder, is used to encode data from the data source 11 and then output it to the output interface 15, which may include at least one of a controller, a modem, and a transmitter. The decoder side 2 includes an input interface 21, a video decoding device 23, and a display device 25. The input interface 21 includes at least one of a receiver and a modem. The input interface 21 can receive a bitstream via link 3 or can receive a bitstream from a storage device. The video decoding device 23, also referred to as a video decoder, is used to decode the received bitstream. The display device 25 is used to display the decoded data. The display device 25 may be integrated with other devices on the decoder side 2 or provided separately, and the display device 25 is selectable for the decoder side. In other examples, the decoder side may include other apparatus or devices to which the decoded data is applied.

[0023] 1B is a block diagram of an exemplary video encoding device applicable to embodiments of the present disclosure. As shown, the video encoding device 10 includes a segmentation unit 101, a prediction unit 100, a residual generation unit 102, a transform processing unit 104, a quantization unit 106, an inverse quantization unit 108, an inverse transform unit 110, a reconstruction unit 112, a filter unit 113, a decoded image buffer 114, and an entropy encoding unit 115.

[0024] The division unit 101 cooperates with the prediction unit 100 and is configured to divide the received video data into slices, coding tree units (CTUs), or other large units, where the received video data may be a video sequence including video frames, such as I-frames, P-frames, or B-frames.

[0025] The prediction unit 100 is configured to divide a CTU into coding units (CUs) and perform intra-prediction coding or inter-prediction coding on the CUs. When performing intra-prediction and inter-prediction on a CU, the CU can be divided into one or more prediction units (PUs).

[0026] The prediction unit 100 includes an inter prediction unit 121 and an intra prediction unit 126 .

[0027] The inter prediction unit 121 is configured to perform inter prediction on a PU to generate prediction data for the PU. The prediction data includes a prediction block of the PU, motion information of the PU, and various syntax elements. The inter prediction unit 121 may include a motion estimation (ME) unit and a motion compensation (MC) unit. The motion estimation unit is operable to estimate motion and generate a motion vector, and the motion compensation unit is operable to obtain or generate a prediction block based on the motion vector.

[0028] Intra prediction unit 126 is configured to perform intra prediction on the PU and generate prediction data for the PU. The prediction data for the PU may include a prediction block for the PU and various syntax elements.

[0029] The residual generation unit 102 (indicated in the figure by a circle with a plus sign after the division unit 101) is configured to generate a residual block of a CU by subtracting a predicted block of a PU obtained by dividing the CU from the original block of the CU.

[0030] The transform processing unit 104 is configured to divide a CU into one or more transform units (TUs), where the division of the prediction units and the transform units may be different. A residual block associated with a TU is a sub-block obtained by dividing the residual block of the CU. One or more transforms are applied to the residual block associated with the TU to generate a coefficient block associated with the TU.

[0031] The quantization unit 106 is configured to quantize the coefficients in the coefficient block based on a quantization parameter, and can change the degree of quantization of the coefficient block by adjusting the quantizer parameter (QP).

[0032] Inverse quantization unit 108 and inverse transform unit 110 are configured to apply inverse quantization and inverse transform, respectively, to the coefficient block to obtain a reconstructed residual block associated with the TU.

[0033] The reconstruction unit 112 (denoted in the figure by a circle with a plus sign after the inverse transform processing unit 110) is configured to add the reconstructed residual block and the prediction block generated by the prediction unit 100 to generate a reconstructed image.

[0034] The filter unit 113 is configured to perform in-loop filtering on the reconstructed image.

[0035] The decoded image buffer 114 is configured to store the reconstructed image after in-loop filtering. The intra prediction unit 126 can extract reference images of blocks adjacent to the current block from the decoded image buffer 114 to perform intra prediction. The inter prediction unit 121 can perform inter prediction on the PU of the image of the current frame using the reference image of the previous frame buffered in the decoded image buffer 114.

[0036] The entropy encoding unit 115 is configured to perform entropy encoding operations on the received data (eg, syntax elements, quantized coefficient blocks, motion information, etc.) to generate a video bitstream.

[0037] In other examples, video encoding device 10 may include more, fewer, or different functional components, such as transform processing unit 104, inverse transform processing unit 110, etc., which may be canceled.

[0038] 1C is a block diagram of an exemplary video decoding device usable in embodiments of the present disclosure. As shown, the video decoding device 15 includes an entropy decoding unit 150, an inverse quantization unit 154, an inverse transform processing unit 156, a prediction unit 152, a reconstruction unit 158, a filter unit 159, and a decoded image buffer 160.

[0039] The entropy decoding unit 150 is configured to perform entropy decoding on the received coded video bitstream to extract syntax elements, motion information of quantized coefficient blocks and PUs, etc. The prediction unit 152, the inverse quantization unit 154, the inverse transform processing unit 156, the reconstruction unit 158, and the filter unit 159 can all perform corresponding operations based on the syntax elements extracted from the bitstream.

[0040] The inverse quantization unit 154 is configured to perform inverse quantization on coefficient blocks associated with the quantized TUs.

[0041] Inverse transform processing unit 156 is configured to apply one or more inverse transforms to the inverse-quantized coefficient blocks to generate reconstructed residual blocks of the TUs.

[0042] The prediction unit 152 includes an inter prediction unit 162 and an intra prediction unit 164. If the current block is encoded using intra prediction, the intra prediction unit 164 determines an intra prediction mode of the PU based on syntax elements decoded from the bitstream, and performs intra prediction in combination with reconstructed reference information neighboring the current block obtained from the decoded image buffer 160. If the current block is encoded using inter prediction, the inter prediction unit 162 determines a reference block of the current block based on motion information of the current block and corresponding syntax elements, and performs inter prediction based on the reference block obtained from the decoded image buffer 160.

[0043] The reconstruction unit 158 ​​(shown in the figure as a circle with a plus sign after the inverse transform processing unit 155) is configured to obtain a reconstructed image based on a reconstructed residual block associated with the TU and a predicted block of the current block generated by the prediction unit 152 performing intra prediction or inter prediction.

[0044] Filter unit 159 is configured to perform in-loop filtering on the reconstructed image.

[0045] The decoded image buffer 160 may be configured to store the reconstructed image after in-loop filtering as a reference image for subsequent motion compensation, intra-prediction, inter-prediction, etc., and may be configured to output the reconstructed image after filtering as decoded video data for display on a display device.

[0046] In other embodiments, video decoding device 15 may include more, fewer, or different functional components, such as canceling inverse transform processing unit 155 in some cases.

[0047] Based on the above-described video encoding device and video decoding device, the following basic encoding and decoding flows can be implemented. The encoder divides a frame into blocks, performs intra-prediction, inter-prediction, or other algorithms on the current block to generate a predicted block for the current block, subtracts the predicted block from the original block of the current block to obtain a residual block, transforms and quantizes the residual block to obtain quantized coefficients, and performs entropy coding on the quantized coefficients to generate a bitstream. The decoder performs intra-prediction or inter-prediction on the current block to generate a predicted block for the current block, decodes the bitstream, dequantizes and inversely transforms the quantized coefficients obtained to obtain a residual block, adds the predicted block and the residual block to obtain a reconstructed block, constructs a reconstructed image from the reconstructed block, and performs in-loop filtering on the reconstructed image based on the image or block to obtain a decoded image. The encoder also performs operations similar to those on the decoder side to obtain a decoded image, which may be referred to as a reconstructed image after in-loop filtering. The reconstructed image after in-loop filtering can be used as a reference frame for inter-predicting a subsequent frame. The mode information and parameter information, such as block division information, prediction, transform, quantization, entropy coding, and in-loop filtering, determined by the encoder side can be written to the bitstream. The decoder side determines the mode information and parameter information, such as block division information, prediction, transform, quantization, entropy coding, and in-loop filtering, used by the encoder side by decoding the bitstream or analyzing it based on setting information, thereby ensuring that the decoded image obtained by the encoder side is the same as the decoded image obtained by the decoder side.

[0048] Although the above is an example of a block-based hybrid coding framework, the embodiments of the present disclosure are not limited thereto, and as technology advances, one or more modules in the framework and one or more steps in the flow can be replaced or optimized. The embodiments of the present disclosure relate to, but are not limited to, the above-mentioned intra prediction units and corresponding intra prediction methods in the encoder and decoder sides.

[0049] In this specification, a current block may be a current coding unit (CU) in a current image, or may be various block-level coding units such as a coding tree unit (CTU), a current prediction unit (PU), or a sub-block obtained by dividing the current CU or the current PU. In an intra prediction process, the current block may be referred to as a prediction target block or a current prediction target block.

[0050] During intra prediction, the encoder typically predicts a current block using various angular and non-angular modes to obtain a predicted block, selects an optimal intra prediction mode for the current block based on rate-distortion information obtained by calculating the predicted block and the original block, encodes information (e.g., an index) of the intra prediction mode, and transmits it to the decoder via a bitstream. The decoder determines the intra prediction mode selected for the current block through decoding, and performs intra prediction on the current block according to the intra prediction mode. With the development of digital video encoding and decoding standards, non-angular modes have remained relatively stable, including average mode (i.e., DC mode) and planar mode (i.e., Planar mode), while angular modes have continuously increased with the evolution of digital video encoding and decoding standards. For example, the H series of international digital video coding standards includes eight conventional angular prediction modes and one conventional non-angular prediction mode, while H.265 / HEVC has been expanded to 33 conventional angular prediction modes and two conventional non-angular prediction modes. As shown in Figure 2, H.266 / VVC has the conventional intra prediction modes Planar mode, DC mode, and 65 angle modes. DC mode is applied to large flat areas, and its predicted value is obtained by averaging the reference pixels on the left and / or top edges. Planar mode is applied to situations where pixels change gradually, i.e., areas where pixel values ​​change slowly. The coding performance achieved by current intra prediction modes still has room for improvement.

[0051] An embodiment of the present disclosure provides an intra prediction method based on interpolation filtering, and as shown in FIG. 3, the method includes step S110 and step S120. In step S110, the filtering coefficients to be used when performing interpolation filtering on the current block are determined based on the filtering window of the current block and the reconstruction values ​​of pixel points in the reconstruction region adjacent to the current block. In step S120, pixel points in the current block are predicted point by point based on the filtering window and the filtering coefficients to obtain a predicted block of the current block. When predicting the current pixel point, a reference pixel point adjacent to the current pixel point is determined based on the filtering window, and an interpolation filtering is performed based on the pixel value of the reference pixel point and the filtering coefficient to obtain a predicted value of the current pixel point.

[0052] The embodiment of the present disclosure utilizes the spatial redundancy of the current block and its neighboring reconstruction regions, and applies the obtained filtering coefficients to each pixel point of the current block, and performs interpolation filtering based on the reconstruction values ​​or predicted values ​​of neighboring pixel points to obtain a predicted value of the current pixel point. After the predicted values ​​of all pixel points of the current block are obtained, a predicted block of the current block is obtained.

[0053] In this specification, such an intra prediction method according to an embodiment of the present disclosure is referred to as an interpolation filtering mode intra prediction, which serves as one selectable intra prediction mode during video encoding and decoding to improve coding performance.

[0054] A filter used for interpolation filtering in an embodiment of the present disclosure is called an interpolation filter (abbreviated as a filter). The filtering window and filtering coefficients used during interpolation filtering are called the filtering window and filtering coefficients used by the interpolation filter. The shape and number of taps of the filtering window used by the interpolation filter are also called the shape and number of taps of the interpolation filter.

[0055] The filtering window may have any shape and any size greater than three pixel points. When the filtering window is small, the number of filtering coefficients (abbreviated as coefficients) of the filter is small, and the prediction complexity is low; however, when the number of reference pixel points used for prediction is small, the prediction error may be large. When the filtering window is large, the number of filter coefficients is large, and the prediction complexity is high, and the prediction error may be small; however, if the filtering window is too large, the overfitting phenomenon may occur. In the present disclosure, the shape and size of the filtering window are not limited.

[0056] In one example, a 4x4 filtering window is used, as shown in Figure 4A. The filtering window includes a current position and 15 neighboring positions P0 to P14. The current position and the position of the current pixel point to be predicted are combined to form 15 pixel points P0 to P14, i.e., 15 reference pixel points neighboring the current pixel point. When calculating a predicted value of the current pixel point using interpolation filtering, each pixel value of the 15 reference pixel points must be multiplied by a corresponding filtering coefficient C0 to C14. Figure 4B shows a 15-tap interpolation filter, and the set of filtering coefficients used by the filter includes 15 filtering coefficients that correspond one-to-one to the 15 neighboring positions in the filtering window of Figure 4A. This set of filtering coefficients is used when performing interpolation filtering on each pixel point in the current block.

[0057] In addition to a rectangular filtering window, a filtering window with other shapes and numbers of neighboring positions can also be adopted. In one exemplary embodiment of the present disclosure, the filtering window of the current block is determined based on block parameters of the current block, the block parameters including at least one of shape, size, and position, and the size is, for example, width, height, etc. For example, a 4x4 filtering window is adopted for an 8x8 current block, and a 5x5 filtering window is adopted for a 16x16 current block.

[0058] In one exemplary embodiment of the present disclosure, the current block is predicted using filters with different tap numbers to obtain different predicted values, and then one optimal filter is selected from the obtained results and allowed to participate in rate-distortion optimization, thereby achieving better coding performance.

[0059] When predicting pixel points one by one for a current block, if the current pixel point to be predicted is located at a different position within the current block, the reference pixel points adjacent to the current pixel point may be pixel points within the reconstruction region or pixel points within the current block. As shown in Figure 5A, when the current pixel point to be predicted is located at the upper left corner of the current block, by matching the current pixel point with the current position of the filtering window, the reference pixel points adjacent to the current pixel point are all reconstructed pixel points within the reconstruction region. As shown in the example of Figure 5B, when the current pixel point to be predicted is located at a position other than the upper left corner of the first row of the current block (the first row and second column in the figure), by matching the current pixel point with the current position of the filtering window, the reference pixel points adjacent to the current pixel point include both reconstructed pixel points within the reconstruction region and predicted pixel points within the current block (for example, the pixel point at the upper left corner of the current block), and the order of predicting pixel points one by one can ensure that the reference pixel point at this time has already been predicted. In the example shown in Figure 5C, if the current pixel point to be predicted is located at the fourth row and fourth column inside the current block, when the current pixel point is aligned with the current position of the 4x4 filtering window, all of the reference pixel points adjacent to the current pixel point become predicted pixel points within the current block.

[0060] In one exemplary embodiment of the present disclosure, the reference pixel points include at least one of: reconstructed pixel points in a reconstruction region adjacent to the current block; and predicted pixel points in the current block. If the reference pixel points are all reconstructed pixel points, the pixel values ​​of the reference pixel points refer to the reconstructed values ​​of the reference pixel points; When the reference pixel points are all predicted pixel points, the pixel values ​​of the reference pixel points refer to predicted values ​​of the reference pixel points; When the reference pixel points include reconstructed pixel points and predicted pixel points, the pixel values ​​of the reference pixel points include reconstructed values ​​of reconstructed pixel points among the reference pixel points and predicted values ​​of predicted pixel points among the reference pixel points.

[0061] In this embodiment, the reconstructed value of the reconstructed pixel point and / or the predicted value of the predicted pixel point are used as inputs of the interpolation filter to calculate the predicted value of the current pixel point. To ensure that the reference pixel points in the current block have predicted values, the interpolation filtering prediction needs to be performed point by point in a certain order.

[0062] Different filtering windows (different in at least one of shape and size) can be set for different current blocks. Multiple different filtering windows can be set for the same current block. The larger the filtering window, the more neighboring positions there are within it, and the more corresponding filtering coefficients there are, making it possible to perform interpolation by referring to more neighboring spatial information. Filters of different shapes can obtain neighboring spatial information from different directions to perform interpolation.

[0063] Filtering windows are divided into three types, as shown in Figures 6A to 6C. In the figures, a crossed rectangle indicates the current pixel point to be predicted, and a sector-shaped region represents the sector in which adjacent positions in the filtering window are located when the current position of the filtering window is aligned with the position of the current pixel point, i.e., the sector in which the reference pixel point is located. The input of the interpolation filter is the reconstructed or predicted value of the pixel point in the direction limited by the sector. In the sector-shaped region shown in Figure 6A, the reference pixel point is located in the spatial area directly above, to the upper left, and directly to the left of the current pixel point, while there is no reference pixel point to the lower left or upper right of the current pixel point. In the sector-shaped region shown in Figure 6B, the reference pixel point is located in the spatial area directly above, to the upper left, directly to the left, and directly to the upper right of the current pixel point, while there is no reference pixel point to the lower left of the current pixel point. In the sector-shaped region shown in Figure 6C, the reference pixel point is located in the spatial area directly above, to the upper left, directly to the left, and directly below the current pixel point, while there is no reference pixel point to the upper right of the current pixel point.

[0064] In one exemplary embodiment of the present disclosure, the filtering window has three types, corresponding to the three situations shown in Figures 6A to 6C: The adjacent positions in the filtering window are located directly above, above left, and to the left of the current position, and an example of such a filtering window is shown in FIG. 7A, which corresponds to FIG. 6A: The adjacent positions in the filtering window are located directly above, to the upper left, to the left, and to the upper right of the current position. An example of such a filtering window is shown in FIG. 7B, which corresponds to FIG. 6B: The adjacent positions in the filtering window are located directly above, above and to the left, to the left, and below the current position, and an example of such a filtering window is shown in FIG. 7C, corresponding to FIG. 6C.

[0065] 7A to 7C, the small square with a diagonal line represents the current position, and the other small squares represent the adjacent positions. In this embodiment, the filtering window of the current block is rectangular or L-shaped, and includes the current position corresponding to one current pixel point and at least two adjacent positions corresponding to reference pixel points.

[0066] When the type of filtering window is different, the selectable prediction order is different in order to ensure that all reference pixel points in the current block are already predicted pixel points when predicting each pixel point.

[0067] In one example of this embodiment, the prediction order for the different filtering windows is as follows: When a plurality of neighboring positions in the filtering window are located directly above, above left, and to the left of the current position, the pixel points in the current block are predicted one by one in the above-mentioned manner, such as predicting the pixel points one by one in the current block from left to right, then from top to bottom, from top to bottom, then from left to right, diagonal order, or Zig-Zag order; When a plurality of neighboring positions in the filtering window are located directly above, above left, left, and below left of the current position, the aforementioned pixel point prediction in the current block is performed by predicting pixel points one by one in the order from top to bottom, then from left to right in the current block; When multiple neighboring positions in the filtering window are located directly above, to the upper left, to the left, and to the upper right of the current position, in the above-mentioned prediction of pixel points in the current block one by one, the pixel points are predicted in the current block from left to right, and then from top to bottom.

[0068] Taking the filtering window shown in FIG. 4A as an example, the order from left to right, then top to bottom, is P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14; and the order from top to bottom, then left to right, is P0, P4, P8, P12, P1, P5, P9, P13, P2, P6, P10, P14. , P3, P7, P11. The diagonal scanning order is P0, P1, P4, P2, P5, P8, P3, P6, P9, P12, P7, P10, P13, P11, P14 or P0, P4, P1, P8, P5, P2, P12, P9, P6, P3, P13, P10, P7, P14, P11. The Zig-Zag order is a "Z"-shaped order. The left-to-right order, as shown in FIG. 16A, is also called horizontal scanning. The top-to-bottom order, as shown in FIG. 16B, is also called vertical scanning. Two diagonal scanning modes are shown in FIGS. 16C and 16D. Two "Z"-shaped scanning modes are shown in FIGS. 16E and 16F.

[0069] When using the above filtering window, the input of the filter may be from the reconstructed values ​​of the reconstructed pixel points and / or predicted values ​​of the predicted pixel points in the upper left, immediately above, upper right, immediately left, and lower left parts of the current pixel point to be predicted (i.e., the current position to be interpolated). When predicting each pixel point for one current block, it is allowed to try using multiple types of filtering windows with different shapes and / or sizes to improve prediction performance.

[0070] In addition to the filtering window, the shape and size of the reconstruction region also affect the prediction results.

[0071] In one exemplary embodiment of the present disclosure, the reconstruction region adjacent to the current block includes any one or more of the following: an upper reconstruction region adjacent to the current block and positioned above the current block; a left reconstruction region adjacent to the current block and positioned to the left of the current block; and an L-shaped reconstruction region adjacent to the current block and positioned above and to the left of the current block; Each of the upper reconstruction regions located above the current block includes one region, two consecutive regions, or three consecutive regions among the upper left region, the upper right region, and the upper right region of the current block; Each of the left reconstruction regions located on the left side of the current block includes one region, two consecutive regions, or three consecutive regions among the top left region, the true left region, and the bottom left region of the current block; Each of the L-shaped reconstruction regions located above and to the left of the current block includes the top, upper left, and extreme left regions of the current block, or includes one or two of the top, upper left, extreme left, upper right, and lower left regions of the current block.

[0072] In this specification, the above-mentioned "top reconstruction region," "left reconstruction region," and "L-shaped reconstruction region" are referred to as "types of reconstruction region."

[0073] As shown in Figure 8A, one reconstruction area adjacent to the current block is the top reconstruction area, which includes the top, top left, and top right areas of the current block. The top reconstruction area may include only the top area of ​​the current block, or only the top left area of ​​the current block, or only the top right area of ​​the current block, or only the top and top right areas of the current block, or only the top and top left areas of the current block, and the top reconstruction area in this embodiment is a continuous area.

[0074] As shown in Figure 8B, one reconstruction region adjacent to the current block is the left reconstruction region, which includes the upper left region, the true left region, and the lower left region of the current block. The left reconstruction region may include only the upper left region of the current block, or only the true left region of the current block, or only the lower left region of the current block, or only the true left region and the upper left region of the current block, or only the true left region and the lower left region of the current block, and the left reconstruction region in this embodiment is a continuous region.

[0075] 8C, one reconstruction area adjacent to the current block is an L-shaped reconstruction area, including the top right area, top left area, extreme left area, top right area, and bottom left area of ​​the current block, and the position of each area relative to the current block is defined in the figure. The L-shaped reconstruction area may include only the top right area, top left area, and extreme left area of ​​the current block, or may include only the top right area, top left area, extreme left area, and top right area of ​​the current block, or may include only the top right area, top left area, extreme left area, and bottom left area of ​​the current block, and the L-shaped reconstruction area in this embodiment is a continuous area.

[0076] In addition to the possibility of multiple types, the size of the reconstruction region adjacent to the current block can also be determined based on the size of the current block (i.e., it can be a dependent variable with the size of the current block as an independent variable). As shown in Figures 8A to 8C, the current block in the figures is a rectangular current block, with a width of M and a height of N. M and N can be expressed as the number of pixel points, such as 8x8, 8x16, 4x8, etc. Taking Figure 8C as an example, the L-shaped reconstruction region adjacent to the current block, located at the upper left, directly above, and right above the current block, has an overall width of 2M+L and a height of K. The L-shaped reconstruction region located at the immediate left and directly below the current block has an overall width of L and a height of 2N. After the width and height of the current block are determined, the reconstruction region point can be uniquely determined by combining them with the set K and L, where K represents the number of rows above the current block in the reconstruction region, and L represents the number of columns to the left of the current block in the reconstruction region. Similar to FIG. 8C, the sizes of the top reconstruction area in FIG. 8A and the left reconstruction area in FIG. 8B also change according to the size of the current block, and by combining them with the set K and L, the corresponding reconstruction area can be uniquely determined.

[0077] In one exemplary embodiment of the present disclosure, there is one reconstruction area adjacent to the current block, or there are multiple reconstruction areas adjacent to the current block, and the different reconstruction areas differ in at least one of type, width, height, and position.

[0078] In this specification, the types of reconstruction regions include an upper reconstruction region, a left reconstruction region, and an L-shaped reconstruction region, and one reconstruction region may be an upper reconstruction region, a left reconstruction region, or an L-shaped reconstruction region.

[0079] In an embodiment of the present disclosure, not only multiple types of reconstruction regions but also multiple reconstruction regions of the same type but different sizes can be set for a current block of the same size. For example, for the L-shaped reconstruction region shown in FIG. 8A, setting K=L=8 results in one reconstruction region adjacent to the current block, and setting K=L=13 results in another reconstruction region adjacent to the current block. Three types of reconstruction regions are set for the current block as shown in FIGS. 8A to 8C, and for each type of reconstruction region, two reconstruction regions are further set by setting K=L=8 and K=L=13, respectively, resulting in a total of six reconstruction regions adjacent to the current block. In other examples, K and L may take other values, for example, they may be related to the size of the current block. Current blocks of different sizes have different values ​​for K and L, and K and L are integers greater than 0. In other examples, more than three values ​​may be set for the combination of K and L to obtain more different reconstruction regions.

[0080] In the reconstruction area adjacent to the current block, the number of rows located above the current block (corresponding to K in FIG. 10) and the number of columns located to the left of the current block (corresponding to L in FIG. 10) may be determined based on the width and / or height of the current block.

[0081] For one current block, if we set two types of K and L combinations, K1 and L1, and K2 and L2, the results are as follows.

[0082] In one example, K1 is equal to L1, K1 is equal to L2, and the values ​​of K1 and K2 correspond to the relatively smallest value of the width and height of the current block, minWh=min(width height), for example, K1 is equal to 2 minWh and K2 is equal to minWh.

[0083] In one example, K1 and K2 relate to the width of the current block, and L1 and L2 relate to the height of the current block, e.g., K1 equals 2width, K2 equals width, L1 equals 2height, and L2 equals height.

[0084] In one example, K1 and K2 are associated with the height of the current block, and L1 and L2 are associated with the width of the current block, e.g., K1 is equal to 2height, K2 is equal to height, L1 is equal to 2width, and L2 is equal to width.

[0085] In another example, K1, K2, L1, L2 are related to the length and height of the current block, but are not multiplicatively related.

[0086] In one exemplary embodiment of the present disclosure, there are one or more types of filtering windows for the current block, and there are one or more reconstruction regions adjacent to the current block. The above-mentioned determining filtering coefficients to be used when performing interpolation filtering on the current block based on the filtering window of the current block and the reconstructed values ​​of pixel points in the reconstruction region adjacent to the current block includes determining, for each combination of the filtering window of the current block and the reconstruction region adjacent to the current block, a corresponding set of filtering coefficients based on the filtering window in the combination and the reconstructed values ​​of pixel points in the reconstruction region in the combination. Predicting pixel points in the current block one by one based on the filtering window and the filtering coefficients to obtain a predicted block of the current block includes, for each combination of the filtering window of the current block and a reconstruction area adjacent to the current block, predicting pixel points in the current block one by one based on the filtering window in the combination and a set of filtering coefficients corresponding to the combination to obtain one predicted block of the current block.

[0087] It is easy to understand that when the filtering window is the same but the reconstruction region is different, the reconstruction values ​​for calculating the filtering coefficients are different, and the calculated filtering coefficients are different; when the reconstruction region is the same but the filtering window is different, the reconstruction values ​​for calculating the filtering coefficients are different, and the calculated filtering coefficients are also different. For one combination of the filtering window of the current block and the reconstruction region adjacent to the current block (each combination includes one type of filtering window and one reconstruction region), one set of filtering coefficients can be calculated and obtained. When there are multiple combinations of the filtering window of the current block and the reconstruction region adjacent to the current block, multiple sets of filtering coefficients can be calculated and obtained. Each combination can be used as one sub-mode of the interpolation filtering mode. For example, when using the filtering window shown in FIG. 4A and there are six reconstruction regions (including three types shown in FIGS. 8A to 8C, each type including two reconstruction regions of different sizes), six sets of filtering coefficients can be calculated and obtained. When intra prediction is performed using the interpolation filtering mode, there are six sub-modes, and the predicted blocks of the current block obtained by predicting based on these six sub-modes are different.

[0088] In one example of this embodiment, each filtering window of the current block includes one current position and multiple adjacent positions, and a set of filtering coefficients corresponding to a combination including the filtering window includes multiple filtering coefficients that correspond one-to-one to the multiple adjacent positions. The above-mentioned predicting pixel points in the current block one by one based on the filtering windows in the combination and a set of filtering coefficients corresponding to the combination includes: matching the current pixel point with a current position of the filtering windows in the combination, determining pixel points at all adjacent positions of the filtering windows in the combination as reference pixel points adjacent to the current pixel point, and performing interpolation filtering based on pixel values ​​of the reference pixel points and a set of filtering coefficients corresponding to the combination to obtain a predicted value of the current pixel point.

[0089] Taking FIG. 4A as an example, when the position of the current pixel point is aligned with the current position of the filtering window, the pixel points at 15 adjacent positions from P0 to P14 are the reference pixel points adjacent to the current pixel point.

[0090] In one exemplary embodiment of the present disclosure, the aforementioned determining a corresponding set of filtering coefficients based on the filtering window in the combination and the reconstruction values ​​of pixel points in the reconstruction region in the combination includes: placing the filtering windows in the combination at M different positions where the reconstructed pixel points in the reconstruction region in the combination are located, where M≧1; constructing a Wiener-Hopf equation using M current positions in the filtering window of the M different positions as sample positions, and reconstructed values ​​of pixel points at all neighboring positions in the filtering window of the M different positions as inputs; and solving a Wiener-Hopf equation with the goal of minimizing the error between the predicted and reconstructed values ​​of the M current positions to obtain a set of filtering coefficients corresponding to the combination.

[0091] In this embodiment, if M is greater than 1, the filtering windows at M different positions can be determined by moving the filtering window at the initial position according to the set step width and direction.

[0092] In this embodiment, different current blocks have different reconstruction regions, so the calculated filtering coefficients are generally different, that is, different current blocks adaptively use their own filtering coefficients.

[0093] The following describes how to construct the Wiener-Hopf equation. When constructing the Wiener-Hopf equation, multiple sample positions must be determined, and these sample positions constitute a portion of the reconstruction area of ​​the current block. As shown in FIG. 9A, if a 4×4 filtering window is used, the current position is located at the lower right corner of the filtering window. If the filtering window is placed at M positions in the reconstruction area, each current position of the filtering window is one sample position. The small crossed squares in the figure represent sample positions, and the range in which these sample positions are located constitutes a portion of the reconstruction area. The reconstruction area in the figure includes the top six rows and left six columns of the current block. The 4×4 filtering window must be placed completely within the reconstruction area, so the range in which the sample positions are located is a continuous area within the top two rows and left two columns of the current block. In FIG. 9A, the filtering window is placed at each possible position in the reconstruction area, but some positions may be selected to reduce the amount of calculation. As shown in FIG. 9B, some sample positions in FIG. 9A are selected to construct the Wiener-Hopf equation, where the sample positions have a step width of 2 in the width direction and a step width of 1 in the height direction, and the range of sample positions is a set of discrete positions. Also, if the position of the current block is different, there may be no reconstructed pixel points in some areas of the reconstruction region. In this example, when the filtering windows in the combination are placed in the reconstruction region in the combination, all pixel points covered by the filtering windows at M different positions become reconstructed pixel points according to the selected positions. However, in other examples, the pixel values ​​of some pixel points covered by the filtering windows at M different positions may be pixel values ​​obtained by filling.

[0094] If a sample position is denoted as r, the range in which the sample position is located is denoted as R, and the filtering window in the combination is placed at M different positions where the reconstructed pixel point in the reconstruction region in the combination is located, there are M sample positions in the range R. If the coordinates of r are denoted as (x, y), then each sample position in the range R has a set of (x, y) values. For each sample position r, the neighboring positions in the filtering window in which the sample position is located are r+p0, r+p1, ..., r+p N-1 can be expressed as {p0, p1, ..., p N-1} is an offset to the sample position, and can also be considered as an index of multiple neighboring positions in the filtering window whose current position is sample position r, and N is the number of neighboring positions in the filtering window. In the example of Figures 4A and 4B, N = 15. N-1 ] denotes the reconstructed values ​​of a pixel point at each of N neighboring locations, and these reconstructed values ​​are the inputs to solving the Wiener-Hopf equation. t[r] denotes the reconstructed value of a pixel point at sample location r, and the set of filtering coefficients to be solved is denoted by c=[c0,c1,…,c N-1 ] T In this case, c0 is the filtering coefficient corresponding to the position p0, and c1 is the filtering coefficient corresponding to the position p1, and this is used for analogy.

[0095] The Wiener-Hopf equation we constructed is as follows:

number

number

[0096] After constructing the Wiener-Hopf equation, the Wiener-Hopf equation is solved to obtain a set of filtering coefficients corresponding to the combination, with the goal of minimizing the error between the predicted and reconstructed values ​​of M current positions. If the predicted value obtained by interpolation filtering at sample position r is t[r]', in order to minimize the error between the predicted and reconstructed values ​​of M current positions, it is necessary to minimize the error between t[r]' and t[r], among which:

number

[0097] Since the encoder and decoder need to derive values ​​for the filtering coefficients that are more consistent with the reconstruction domain, in this embodiment, taking into consideration platform issues and computational complexity, the filtering coefficients are calculated using integer precision (i.e., calculated using all integers), and the solution method is not limited, including, but not limited to, a method of decomposing the autocorrelation coefficient matrix of the Wiener-Hopf equation using Cholesky decomposition or lower unit triangular matrix (LDL) decomposition.

[0098] In one example of the embodiment of the present disclosure, performing interpolation filtering based on the pixel values ​​of the reference pixel points and a set of filtering coefficients corresponding to the combination to obtain a predicted value of the current pixel point may include: Calculating the predicted value pred of the current pixel point using the formula:

number

number

number

[0099] The above formula (2) is a specific calculation method proposed to avoid decimal arithmetic, of which C n Regarding C in Eq. (1), n Therefore, to get the correct pred, the accumulated result needs to be modified by the coefficients offset and shift, where offset is for the offset and shift is for the scaling.

[0100] In another exemplary embodiment of the present disclosure, when obtaining filter coefficients by the Wiener-Hopf equation, a mean value removal operation is performed on the input reconstruction value. In this embodiment, determining a corresponding set of filtering coefficients according to the filtering window in the combination and the reconstruction value of the pixel point in the reconstruction region in the combination includes: placing the filtering windows in the combination at M different positions where the reconstructed pixel points in the reconstruction region in the combination are located, where M≧1; constructing a Wiener-Hopf equation using M current positions in the filtering window of the M different positions as sample positions, and mean-removed reconstruction values ​​of pixel points at all neighboring positions in the filtering window of the M different positions as inputs; and solving a Wiener-Hopf equation with the goal of minimizing the error between the predicted and reconstructed values ​​of the M current positions to obtain a set of filtering coefficients corresponding to the combination.

[0101] The method of constructing the Wiener-Hopf equation in this embodiment is different from the previous embodiment in that the Wiener-Hopf equation is constructed using the reconstructed values ​​as inputs in the previous embodiment, whereas the Wiener-Hopf equation is constructed using the reconstructed values ​​with the mean removed as inputs in this embodiment.

[0102] Assuming the mean value is m, the Wiener-Hopf equation constructed in this embodiment is as follows:

number

[0103] In one example of this embodiment, the reconstructed value with the mean removed is obtained by subtracting the mean from the reconstructed value, the mean being: A method of calculating an average value for the reconstruction values ​​of all pixel points in the reconstruction region in the combination to obtain the average value; A method of calculating an average value for the reconstruction values ​​of some pixel points in the reconstruction region in the combination to obtain the average value; Alternatively, the average value may be obtained by taking the reconstructed value of one designated pixel point in the reconstruction region in the combination as the average value.

[0104] 10, the reconstruction area of ​​the current block includes K rows above the current block and L columns to the left of the current block, and calculating the average value of the reconstruction values ​​of all pixel points in the reconstruction area during the combination means calculating the average value of all pixel points in the entire reconstruction area to obtain the average value. When calculating the average value of the reconstruction values ​​of some pixel points in the reconstruction area during the combination, the some pixel points may include pixel points in one or more rows above the current block and / or pixel points in one or more columns to the left of the current block. The exemplary some pixel points in FIG. 10 are located in the area where the cross-section line is filled in the one row above and one row to the left of the current block, and include pixel points located in the one row above the current block in the reconstruction area and directly above and to the right of the current block, and pixel points located in the one column to the left of the current block in the reconstruction area and directly to the left and to the bottom left of the current block. The above-mentioned average value of the reconstructed value of a designated pixel point in the reconstruction region of the combination may be the average value of the reconstructed value of a pixel point adjacent to the upper left corner of the current block in the reconstruction region, which pixel point is indicated by a small square with a cross in the figure. Calculating the average value using the reconstructed values ​​of some pixel points can simplify the calculation. Note that averaging the reconstructed value of one pixel point not only simplifies the calculation, but also avoids the division operation when calculating the average value.

[0105] In the case of solving based on the reconstruction value from which the mean value of the filtering coefficients has been removed, when predicting the current pixel point, the mean value needs to be removed from the pixel value of the reference pixel point, and then multiplied by the corresponding filtering coefficient and accumulated, and the mean value needs to be added to the accumulated result.

[0106] In one example of this embodiment, if the set of filtering coefficients is obtained by solving a Wiener-Hopf equation using the reconstruction value with the mean value removed as input, performing interpolation filtering based on the pixel value of the reference pixel point and the set of filtering coefficients corresponding to the combination to obtain a predicted value of the current pixel point includes calculating the predicted value pred of the current pixel point using the following formula:

number

number

[0107] In this embodiment, mean-value-removed interpolation filtering is used, and the corresponding filter may be called a mean-value-removal filter. The filtering coefficients obtained by constructing a Wiener-Hopf equation using the mean-value-removed reconstruction values ​​as input can achieve better prediction results during prediction. The mean value used to remove the mean value may be the mean value of the reconstruction values ​​of pixel points in the entire reconstruction region, or may be the mean value derived from the reconstruction values ​​of some pixel points (which may be one or more pixel points) in the reconstruction region.

[0108] In the intra prediction method based on the interpolation filter proposed in the embodiments of the present disclosure, when predicting some positions, it is necessary to use previously calculated predicted values ​​as input. However, the error of the predicted value relative to the original value is often larger than the error of the reconstructed value relative to the original value, and such recursive prediction may cause an increase in the accumulated error. By limiting the range of the output of the interpolation filter, the influence of the accumulated error on the prediction effect can be mitigated.

[0109] In one exemplary embodiment of the present disclosure, the step of performing interpolation filtering based on the pixel value of the reference pixel point and the filtering coefficient to obtain a predicted value of the current pixel point includes the steps of: performing interpolation filtering based on the pixel values ​​of the reference pixel points and the filtering coefficients to obtain initial predicted values; If the initial predicted value exceeds a predicted value range of the current block, modifying the initial predicted value so that the modified predicted value falls within the predicted value range of the current block; and setting the corrected predicted value as the predicted value for the current pixel point.

[0110] In one example of the embodiment of the present disclosure, correcting the initial predicted value includes: if the initial predicted value is greater than a maximum value of the range of predicted values, then setting the maximum value as the corrected predicted value; If the initial predicted value is smaller than the minimum value of the range of predicted values, the minimum value is set as the corrected predicted value.

[0111] In this example, the predicted value range can be determined in one of the following ways: Each output value is kept within the predicted value range allowed by the data. This predicted value range can be determined based on the data depth of the predicted value. For example, for a predicted value with 8-bit depth, the predicted result is set to 0 to 2. 8 Should be limited to the range -1. This range may be narrowed, for example, based on the maximum and minimum reconstructed values ​​of pixel points in the reconstruction region or a local region thereof used in determining the filtering coefficients. In one example, after finding the minimum and maximum reconstructed values ​​of pixel values ​​in the corresponding reference region or a local region thereof, the minimum reconstructed value is set as the minimum value of the predicted value range, and the maximum reconstructed value is set as the maximum value of the predicted value range. In another example, the range of the minimum and maximum values ​​in the previous clause may be appropriately increased or decreased, and the minimum value of the predicted value range may be set as the value obtained by subtracting a set deviation from the found minimum reconstructed value, and the maximum value of the predicted value range may be set as the value obtained by adding another set deviation to the found minimum reconstructed value, where the set deviation is a positive or negative value.

[0112] The embodiments of the present disclosure can limit the output range of the interpolation filter to avoid excessive accumulation of errors due to point-by-point prediction.

[0113] An embodiment of the present disclosure further provides a video encoding method, as shown in FIG. 11, the method includes the following steps: In step S210, intra prediction is performed on the current block based on a plurality of intra prediction modes, and if it is determined that the current block is allowed to use the interpolation filtering mode, intra prediction of the interpolation filtering mode is performed on the current block according to the intra prediction method based on interpolation filtering described in any embodiment of the present disclosure. In step S220, if it is determined that the intra prediction of the current block is to be performed using an interpolation filtering mode based on the rate-distortion costs of the multiple types of intra prediction modes, an interpolation filtering mode flag of the current block is encoded to indicate that the intra prediction of the current block is to be performed using the interpolation filtering mode.

[0114] The embodiment of the present disclosure introduces an interpolation filtering mode as one intra prediction mode, and when it is determined that the interpolation filtering mode is used to perform intra prediction of the current block, an interpolation filtering mode flag of the current block is encoded. The use of the newly added intra prediction mode can improve compression efficiency.

[0115] In one example of this embodiment, the rate-distortion costs of the multiple types of intra prediction modes are compared, and if the rate-distortion cost of the interpolation filtering mode is the smallest, it is determined to perform intra prediction of the current block using the interpolation filtering mode.

[0116] Some restrictions may be added to the use of the interpolation filtering mode. For example, if the current block is a chroma block, intra prediction is not performed using the interpolation filtering mode during encoding, but a direct mode (DM) may be selected for the chroma block, allowing the chroma block to directly use the intra prediction mode of the luma block. For example, a flag at the sequence level, image level, or slice level may indicate whether the use of the interpolation filtering mode is permitted during encoding of the current block, or related general constraints information (GCI) may be set to indicate whether the use of the interpolation filtering mode is prohibited. For example, the size of the current block for which the interpolation filtering mode is used may be restricted. Furthermore, if the current block is located on the boundary of an image, the use of the interpolation filtering mode may be prohibited because there is not enough reconstruction area for the filtering window to be placed.

[0117] In one exemplary embodiment of the present disclosure, the determining that the interpolation filtering mode is permitted to be used for the current block includes determining that the interpolation filtering mode is permitted to be used for the current block if none of the conditions prohibiting the use of the interpolation filtering mode are met, where the conditions prohibiting the use of the interpolation filtering mode are: The current block is a chroma block, the presence of a sequence-level flag indicating that the use of interpolation filtering mode is not permitted, the presence of an image level flag indicating that the use of interpolation filtering mode is not permitted; the presence of a slice level flag indicating that the use of interpolation filtering mode is not permitted; the presence of a GCI sign indicating that the use of interpolation filtering mode is prohibited; the size of the current block does not meet the maximum block size and / or the minimum block size for enabling the interpolation filtering mode; The difference between the horizontal coordinate of the upper left corner of the current block and the horizontal coordinate of the upper left corner of the current image is less than a set first threshold value; the difference between the vertical coordinate of the top left corner of the current block and the vertical coordinate of the top left corner of the current image is less than a set second threshold.

[0118] In one exemplary embodiment of the present disclosure, on the encoder side, as described in the previous embodiment, one current block can be subjected to intra prediction based on interpolation filtering using combinations of multiple types of filtering windows and reconstruction regions, and each combination can be regarded as one sub-mode of the interpolation filtering mode.

[0119] In this embodiment, performing intra prediction in interpolation filtering mode on the current block is The present invention includes determining a combination of a filtering window of a current block and a reconstruction region adjacent to the current block to be used when performing intra prediction of an interpolation filtering mode on the current block, wherein K types of combinations correspond to K sub-modes of the interpolation filtering mode, and performing intra prediction based on interpolation filtering on the current block based on the filtering window of the current block and the reconstruction region adjacent to the current block in the combinations corresponding to each sub-mode, where K is the number of combinations and K≧2. When it is determined to perform intra prediction of the current block using an interpolation filtering mode based on the rate-distortion costs of the multiple intra prediction modes, the minimum value among the rate-distortion costs of the K sub-modes is set as the rate-distortion cost of the interpolation filtering mode, and is compared with the rate-distortion costs of other intra prediction modes among the multiple intra prediction modes. If the interpolation filtering mode has the lowest rate-distortion cost, the method further includes encoding index information to indicate the sub-mode among the K sub-modes that has the lowest rate-distortion cost.

[0120] When the encoder side decides to use the interpolation filtering mode to perform intra prediction for the current block and multiple types of sub-modes exist, the index of the sub-mode with the lowest rate-distortion cost (i.e., the selected sub-mode) can be embedded in the bitstream to avoid having to select a sub-mode again at the decoder side.

[0121] In one exemplary embodiment of the present disclosure, the index indicating the submode among the K submodes with the smallest rate-distortion cost includes any one or more of the following indexes: a submode index, a reconstruction region index of the current block, a parameter index of the reconstruction region of the current block, a filtering window index of the current block, and a parameter index of the filtering window of the current block. Each submode index corresponds to one combination of the filtering window of the current block and the reconstruction region adjacent to the current block. Each of the reconstruction region indexes of the current block corresponds to one type of reconstruction region. The parameters of the reconstruction area include at least one of a size and a type, and the size includes at least one of a number of rows in the reconstruction area above the current block and a number of columns in the reconstruction area to the left of the current block. There may be multiple parameter indexes for the reconstruction area, such as one size index and one type index, or there may be only one parameter index, such as one value of the parameter index representing one combination of the size and type of the current block. Each of the filtering window indexes of the current block corresponds to one type of filtering window. The parameters of the filtering window include at least one of a shape, a size, and a number of neighboring locations.

[0122] In this embodiment, the submode index information may be expressed in various ways. In the above example, the current block performs intra prediction based on interpolation filtering using one filtering window (4x4) and six reconstruction regions (two top reconstruction regions, two left reconstruction regions, and two L-shaped reconstruction regions). There are a total of six combinations of filtering windows and reconstruction regions, resulting in six submodes. The submode index is an index obtained by uniformly numbering all submodes. For example, if the first submode has the lowest rate-distortion cost, the submode index is 0, and if the fifth submode has the lowest rate-distortion cost, the submode index is 4. Since there is only one filtering window, the submode index in this example can also be considered as a reconstruction region index. In addition to uniformly numbering the submodes, in another example, the filtering windows and reconstruction regions participating in the combination may be individually numbered to obtain their respective indices. For example, in the case of three types of filtering windows (see FIGS. 7A to 7C) and six reconstruction regions used in the current block, if the second type of filtering window and the fourth type of reconstruction region have the smallest rate-distortion cost, one filtering window index (value is 1) and one reconstruction region index (value is 3) can be coded. Alternatively, more finely divided parameter indexes can be combined to represent submode index information. For example, if the current block uses one type of filtering window and six reconstruction regions, and these six reconstruction regions include three types, namely, top reconstruction region, left reconstruction region, and L-shaped reconstruction region, and each type further includes reconstruction regions of two different sizes (e.g., K=L=8 and K=L=13), a 2-bit reconstruction region type index can represent the type of the selected submode, and a 1-bit size index can represent the values ​​of K and L of the selected submode, thereby making it possible to uniquely determine the reconstruction region in the combination corresponding to the selected submode.If the current block uses multiple types of filtering windows and the multiple types of filtering windows are divided based on multiple parameters, the filtering window in the combination corresponding to the selected submode may be represented by the parameter index of the filtering window, which will not be described again.

[0123] In an embodiment of the present disclosure, before determining the prediction mode and transformation mode to be used for each intra-coded block, it is determined whether the current block is capable of using the intra prediction technique of the interpolation filtering mode. If the relevant flags, such as the current sequence level flag, allow the interpolation filtering prediction technique and the conditions, such as the size and position of the current block, also meet the requirements, the filter coefficients of the corresponding sub-mode are obtained based on each combination of the filtering window of the current block and the reconstruction region adjacent to the current block. Then, pixel points of the current block are predicted one by one based on the filter coefficients of the corresponding sub-mode to obtain a predicted block of the current block.

[0124] Among the multiple intra prediction modes of the current block, one mode to be used for the current block can be selected by comparing the costs of the two stages. In the coarse selection stage of the prediction mode of the current block, the cost of each potential intra prediction mode (including each sub-mode of the interpolation filtering mode) is calculated, and the cost calculation formula is as follows: cost=D+λR where R represents the expected bit overhead required for encoding the intra prediction mode, λ is the Lagrangian multiplier, which is related to the quantization parameter used for the current encoding, and D represents the distortion value between the predicted block and the original block in the current prediction mode, which can be calculated using the following formula: D = min(SAD x 2, SATD) Among them, SAD represents the sum of absolute differences between the predicted block and the original block, and SATD represents the sum of Hadamard transformed differences between the predicted block and the original block.

[0125] For prediction modes that pass the rough selection, complete residual transform, quantization, inverse quantization, inverse transform, and reconstruction are performed, and the rate-distortion cost of each mode combination (i.e., a combination of prediction mode + transform mode + quantization mode) is compared to determine the final prediction mode, transform mode, and quantized residual value. At this stage, the rate-distortion cost calculation is still cost = D + λR, where D represents the sum of squared error (SSE) between the reconstructed block and the original block, and R represents all bit overhead such as mode indicators, coefficients, etc. for encoding the current block.

[0126] The method of calculating the rate-distortion cost used in the present disclosure is not limited to this, and for example, the error in the rate-distortion cost formula may be expressed as the mean absolute difference (MAD), the mean squared error (MSE), or the like.

[0127] An embodiment of the present disclosure further provides a video decoding method, as shown in FIG. 12, the method includes the following steps: In step S310, the interpolation filtering mode flag of the current block is decoded. In step S320, if it is determined that the interpolation filtering mode is used to perform intra prediction of the current block based on the interpolation filtering mode flag obtained by decoding, the filtering window and reconstruction region to be selected for the current block are determined. In step S330, based on the determined filtering window and reconstruction region, intra prediction is performed on the current block according to the interpolation filtering-based intra prediction method described in any embodiment of the present disclosure.

[0128] The filtering window and reconstruction region selected for the current block as mentioned above are one filtering window and one reconstruction region in one combination (corresponding to the selected submode) selected by the encoder for the current block. If there are multiple combinations of filtering windows and reconstruction regions in the interpolation filtering mode on the encoder side, the encoder side can write index information of the selected combination into the bitstream, and the decoder side does not need to select multiple combinations, and only needs to perform interpolation filtering based on one combination of filtering window and reconstruction region.

[0129] A video decoding method according to an embodiment of the present disclosure can determine whether to use an interpolation filtering mode when performing intra prediction on a current block by analyzing a syntax element related to an interpolation filtering mode of the current block. Introducing the interpolation filtering mode can improve the overall efficiency of video encoding and decoding.

[0130] In one exemplary embodiment of the present disclosure, before decoding the interpolation filtering mode flag of the current block as described above, the method further comprises: decoding a sequence level flag indicating whether use of an interpolation filtering mode is permitted, and continuing to decode the interpolation filtering mode flag of the current block if the value of the sequence level flag indicates that use of an interpolation filtering mode is permitted, and skipping decoding the interpolation filtering mode flag of the current block if the value of the sequence level flag indicates that use of an interpolation filtering mode is not permitted; decoding a picture level flag indicating whether use of an interpolation filtering mode is permitted, and continuing to decode the interpolation filtering mode flag of the current block if the value of the picture level flag indicates that use of an interpolation filtering mode is permitted, and skipping decoding the interpolation filtering mode flag of the current block if the value of the picture level flag indicates that use of an interpolation filtering mode is not permitted; decoding a slice level flag indicating whether use of an interpolation filtering mode is permitted, and continuing to decode the interpolation filtering mode flag of the current block only if the value of the slice level flag indicates that use of an interpolation filtering mode is permitted, and skipping decoding the interpolation filtering mode flag of the current block if the value of the slice level flag indicates that use of an interpolation filtering mode is not permitted; The method further includes any one or more of the following processes: decoding a general constraint information (GCI) indicator indicating whether use of an interpolation filtering mode is prohibited; if the value of the GCI indicator indicates that use of an interpolation filtering mode is not prohibited, continuing to decode a sequence level flag indicating whether use of an interpolation filtering mode is permitted; if the value of the GCI indicator indicates that use of an interpolation filtering mode is prohibited, skipping decoding the sequence level flag indicating whether use of an interpolation filtering mode is permitted and silently accepting that the sequence level flag indicates that use of an interpolation filtering mode is not permitted.

[0131] In one example embodiment, a sequence level flag is used to indicate whether the use of interpolation filtering mode is allowed, and the associated syntax elements are as shown in the table below.

[0132] Sequence Parameter Set (SPS) Syntax Element Indicator [Table 1]

[0133] In the above table, sps_eip_enabled_flag equal to 1 indicates that the use of the interpolation filtering mode is allowed, i.e., defines that the interpolation filtering intra prediction technique is allowed to be turned on in the coded layer video sequence (CLVS). Sps_eip_enabled_flag equal to 0 indicates that the use of the interpolation filtering mode is not allowed, i.e., defines that the interpolation filtering intra prediction technique is turned off in the coded layer video sequence.

[0134] In one example of this embodiment, a GCI indicator is used to indicate whether the use of interpolation filtering mode is prohibited, and the associated syntax elements are as shown in the table below.

[0135] General Constraints Information (GCI) Syntax Element Indicator [Table 2]

[0136] In the above table, gci_no_eip_constraint_flag equal to 1 indicates that the use of interpolation filtering mode is prohibited, that is, it defines that the sequence-level interpolation filtering intra prediction technique must be 0 for all images and is not allowed to be used. gci_no_cip_constraint_flag equal to 0 indicates that the use of interpolation filtering mode is not prohibited, so no restriction that prohibits the use of interpolation filtering mode is introduced.

[0137] In one example embodiment, an image level flag is used to indicate whether the use of interpolation filtering mode is allowed, and the associated syntax elements are as shown in the table below.

[0138] Picture Header Structure Syntax Element Indicator [Table 3]

[0139] In the above table, ph_eip_enabled_flag equal to 1 indicates that the use of interpolation filtering mode is allowed, i.e., defines that the interpolation filtering intra prediction technique is allowed to be turned on in the current picture. ph_eip_enabled_flag equal to 0 indicates that the use of interpolation filtering mode is not allowed, i.e., defines that the interpolation filtering intra prediction technique is turned off in the current picture. If this syntax element does not exist in the current sequence, it defaults to 0.

[0140] The picture level flag indicating whether the use of the interpolation filtering mode is allowed may be a picture parameter set syntax original indicator (PPS) other than a syntax indicator in the picture header structure.

[0141] In one example of this embodiment, a slice level flag is used to indicate whether the use of interpolation filtering mode is allowed, and the associated syntax elements are as shown in the table below.

[0142] slice-level header syntax element indicators [Table 4]

[0143] In the above table, sh_eip_enabled_flag equal to 1 indicates that the use of the interpolation filtering mode is permitted, i.e., defines that the interpolation filtering intra prediction technique is available for the current slice. sh_eip_enabled_flag equal to 0 indicates that the use of the interpolation filtering mode is not permitted, i.e., defines that the interpolation filtering intra prediction technique is unavailable for the current slice.

[0144] In one exemplary embodiment of the present disclosure, determining the filtering window selected for the current block as described above may include: determining one set filtering window as the filtering window of the current block, which relates to a case where the encoder and decoder both use one type of filtering window, for example, a 4x4 filtering window, when performing intra prediction in an interpolation filtering mode for different current blocks; in this case, the encoder does not need to encode index information of the filtering window, and the decoder can directly determine the set filtering window as the filtering window to be selected for the current block; or determining a filtering window corresponding to block parameters of the current block as the filtering window selected for the current block, wherein the block parameters include at least one of position, shape, and size, which relates to a case where the encoder and decoder can determine a type of filtering window that can be used when the current block performs intra prediction in interpolation filtering mode based on the block parameters of the current block; in this case, there is no need to encode index information of the filtering window, and the decoder determines the filtering window to be selected for the current block based on the block parameters of the current block; or continuing to decode sub-mode indexes of the current block and determining the filtering window selected for the current block based on the sub-mode indexes, where each sub-mode index corresponds to one combination of the filtering window of the current block and a reconstruction region adjacent to the current block; or continuing to decode filtering window indexes of the current block, and determining the filtering window selected for the current block based on the filtering window indexes, where each filtering window index corresponds to one type of filtering window; Or, the method includes continuing to decode a parameter index of a filtering window of the current block, determining parameters of the filtering window based on the parameter index of the filtering window, and determining the filtering window to be selected for the current block based on the parameters, wherein the parameters of the filtering window include at least one of a shape, a size, and a number of neighboring positions.

[0145] In one exemplary embodiment of the present disclosure, determining the neighboring reconstruction region selected for the current block as described above includes: determining a reconstruction region to be selected for a current block based on parameters of the set reconstruction region, which relates to a case where an encoder side and a decoder side both use a reconstruction region with one parameter set in advance when performing intra prediction in an interpolation filtering mode on different current blocks, and in this case, there is no need to decode index information; Or, determining a reconstruction region corresponding to the block parameters of the current block as the reconstruction region adjacent to the current block, the block parameters including at least one of position, shape, and size, which is related to the case where the encoder side and the decoder side can determine a reconstruction region that can be used when the current block performs intra prediction in interpolation filtering mode based on the block parameters of the current block, for example, using an L-shaped reconstruction region as shown in FIG. 8C and K=L=13, in such a case, index information of the reconstruction region is not required, and the decoder side can determine the filtering window to be selected for the current block based on the block parameters of the current block and the set type, K, and L values; or continuing to decode sub-mode indexes of the current block and determining the reconstruction region selected for the current block based on the sub-mode indexes, where each sub-mode index corresponds to one combination of a filtering window of the current block and a reconstruction region adjacent to the current block; or continuing to decode reconstruction region indexes of the current block, and determining the reconstruction region selected for the current block based on the reconstruction region indexes, where each reconstruction region index corresponds to one type of reconstruction region; Or, the method includes continuing to decode a parameter index of a reconstruction region of the current block, determining parameters of the reconstruction region based on the parameter index of the reconstruction region, and determining the reconstruction region to be selected for the current block based on the parameters. In one example, the parameter index of the reconstruction area includes at least one of a size index of the reconstruction area and a type index of the reconstruction area, and the size of the reconstruction area includes at least one of a number of rows in the reconstruction area above the current block and a number of columns in the reconstruction area to the left of the current block.

[0146] For the above-mentioned submode index, reconstruction region index, filtering window index, reconstruction region parameter index, and filtering window parameter index, reference can be made to the corresponding descriptions in the encoding method. The above-mentioned size index may include multiple indexes, such as a row number index and a column number index.

[0147] Furthermore, when determining the filtering window and reconstruction region to be selected for the current block, the filtering window and the adjacent reconstruction region may be determined simultaneously based on the submode index, or they may be determined separately (i.e., the filtering window may be determined based on the setting information or index information of the filtering window, and the adjacent reconstruction region may be determined based on the setting information or index information of the reconstruction region).

[0148] For a current block of an intra prediction, the surrounding reconstructed parts (i.e., adjacent reconstructed regions) may include regions located directly above, above left, above right, left, and below left of the current block. Due to different block sizes, positions, and divisions, these five regions do not always have reconstructed pixel points. For example, if the current block is located at the top edge of the image, there will be no reconstructed pixel points above the current block (including directly above, above left, and above right). If the current block is located at the left edge of the image, there will be no reconstructed pixel points to the left of the current block (including the upper left, directly left, and below left). Therefore, such situations can be avoided by limiting the difference between the coordinates of the upper left corner of the current block and the coordinates of the upper left corner of the image.

[0149] 14A and 14B, which are examples of two types of ternary tree division, the two types of division situations are different in position, so if the lower left and upper right regions of the current block are within the current CTU, the more distant reference row in the reconstruction area may have a reconstructed value (i.e., a reconstructed pixel point), and the closer reference row may not have a reconstructed pixel point. If the lower left and upper right regions are both located in different CTUs, the reference row in the reconstruction area may have a reconstructed value.

[0150] In one exemplary embodiment of the present disclosure, before decoding the interpolation filtering mode flag of the current block as described above, the method further comprises: determining whether the size of the current block satisfies a maximum block size and / or a minimum block size for enabling an interpolation filtering mode, and if so, continuing to decode the interpolation filtering mode flag of the current block; if not, skipping decoding the interpolation filtering mode flag of the current block, wherein the size includes at least one of a size (i.e., the number of pixel points included), a width, and a height, and setting the maximum block size condition can avoid excessive accumulation of errors; Determining whether a difference between the horizontal coordinate of the upper left corner of the current block and the horizontal coordinate of the upper left corner of the current image is equal to or greater than a first threshold, and if the difference is equal to or greater than the first threshold, continuing to decode the interpolation filtering mode flag of the current block, and if the difference is less than the first threshold, skipping the decoding of the interpolation filtering mode flag of the current block; and The method may include any one or more of the following processes: determining whether the difference between the vertical coordinate of the upper left corner of the current block and the vertical coordinate of the upper left corner of the current image is equal to or greater than a set second threshold; if the difference is equal to or greater than the set second threshold, continuing to decode the interpolation filtering mode flag of the current block; and if the difference is less than the second threshold, skipping the decoding of the interpolation filtering mode flag of the current block.

[0151] In addition to using higher-level syntax elements to indicate whether the use of interpolation filtering modes is permitted, in this embodiment, block-level syntax elements are used to restrict the use of interpolation filtering modes. These block-level syntax elements may be in a unified decoding hierarchy with syntax elements related to other block-level intra-prediction modes. In VVC, the analysis of block-level intra-prediction mode indicators is at the coding unit (CU) level; in some cases, or in other standards, prediction mode indicators may be at the prediction unit (PU) level. Below, we will use VVC as an example to describe block-level syntax elements related to interpolation filtering modes at the decoder side (the ellipsis in the table represents the decoding of some other block-level syntax elements, such as other intra-prediction modes).

[0152] In one example, there are three reconstruction regions available for obtaining filtering coefficients for the current block on the encoder side, and the types and sizes of the three reconstruction regions are as shown in Figures 13A to 13C, where M and N represent the width and height of the current block, respectively.

[0153] The decoder's analysis of the block-level syntax elements of the current coding unit is shown in the table below.

[0154] [Table 5]

[0155] In the above table, eip_tpl_type_idx is the type index of the reconstruction region of the current block, which defines the type of reconstruction region used when the encoder obtains the filtering coefficients selected for the current block. It contains two bits. In the table, x0 and y0 represent the difference in the horizontal and vertical coordinates between the top-left corner of the current block (the current coding unit in this example) and the top-left corner of the image. XX and YY represent the coordinate position of the top-left corner of the current block in the image, respectively, which must be met to enable (i.e., allow use of) the interpolation filtering mode. If the coordinates of the top-left corner of the image are (0,0), XX and YY are the first and second thresholds mentioned above. In the above table, SIZE_A represents the maximum block size condition that must be met to enable the interpolation filtering mode. In one example, SIZE_A is set to 1024, and XX and YY are set to 13. If there are not enough reconstruction rows or columns to the left or above the current block, the usage condition is not met.

[0156] Based on the above syntax elements, the decoder side continues to decode the block-level interpolation filtering mode flag intra_eip_flag and determines whether to perform intra prediction of the current block using the interpolation filtering mode based on intra_eip_flag only if the sequence-level flag sps_eip_enabled_flag indicates that the use of the interpolation filtering mode is enabled, the size of the current block (width x height, cbWidth*cbHeight) is less than or equal to SIZE_A, the abscissa x0 of the upper left corner of the current block is greater than or equal to XX, and the ordinate x1 of the upper left corner of the current block is greater than or equal to YY. If intra_eip_flag is 1 (i.e., indicating that the current block uses the interpolation filtering mode), the decoder continues to decode the reconstruction region type flag eip_tpl_type_idx to determine the type of reconstruction region selected for the current block. In this example, the number of rows and columns above the current block in the reconstruction region are both 13, and one type of filtering window is used, so a unique reconstruction region and one combination of filtering window and reconstruction region can be directly determined based on eip_tpl_type_idx, which can also be regarded as a reconstruction region index and a submode index.

[0157] In this example, the correspondence between eip_tpl_type_idx and the three reconstruction regions shown in FIGS. 13A to 13C is as follows:

[0158] [Table 6]

[0159] In another example, there are six reconstruction regions used for the current block on the encoder side, which is based on the previous example where K=L=13, and adds one top reconstruction region, one left reconstruction region, and one L-shaped reconstruction region with K=L=8, as shown in Figures 13A to 13F. In this case, the decoder side analysis of the block-level syntax elements of the current coding unit is as shown in the following table.

[0160] [Table 7]

[0161] In the above table, the meanings of sps_eip_enabled_flag, eip_tpl_type_idx, intra_eip_flag, SIZE_A, XX, and YY are the same as in the previous example and will not be repeated. In this example, XX and YY are set to 13. In the current ECM, other intra prediction techniques use a maximum of 13 rows and 13 columns of reference rows, so the intra interpolation filtering prediction is also set to 13 rows and 13 columns. If there are not enough reconstructed rows or columns to the left or above the current block, the usage conditions will not be met.

[0162] Unlike the previous example, this example uses two types of reconstruction area parameter indexes to indicate the selected reconstruction area among the six selectable reconstruction areas. In addition to using the reconstruction area type index eip_tpl_type_idx to indicate the type of reconstruction area selected for the current block, a 1-bit reconstruction area size index eip_tpl_size_idx is used to indicate the number of rows above the current block and the number of columns to the left of the selected reconstruction area. Because the number of rows and the number of columns are equal, eip_tpl_size_idx can also be considered as a row number index and a column number index. If the number of rows and columns varies frequently, a single row number index and a column number index may be used.

[0163] In this example, eip_tpl_size_idx being 0 indicates that the number of rows above and the number of columns to the left of the current block in the reconstruction area used are both 8, and eip_tpl_size_idx being 1 indicates that the number of rows above and the number of columns to the left of the current block in the reconstruction area used are both 13. In this example, eip_tpl_type_idx and eip_tpl_size_idx are used to uniquely identify the reconstruction area selected for the current block, and because there is only one type of filtering window, they can also uniquely identify the sub-mode of the interpolation filtering mode selected for the current block.

[0164] In this example, the correspondence between the values ​​of eip_tpl_type_idx and eip_tpl_size_idx and the reconstruction area is as shown in the table below.

[0165] [Table 8]

[0166] In this embodiment, the decoded binary indicator is not limited to a context-based context model or an equal probability model, but in some embodiments, better compression effects can be achieved by changing the binarization method of the submode or changing the probability model of the binary indicator indicating the submode.

[0167] In this example, determining the reconstruction region selected for the current block is Continuing to decode the type index of the reconstruction region of the current block, and determining the type of the reconstruction region selected for the current block based on the type index obtained by the decoding, wherein the type is a top reconstruction region, a left reconstruction region, or an L-shaped reconstruction region; Continuing to decode the size index of the reconstruction area of ​​the current block, and determining the size of the reconstruction area selected for the current block based on the decoded size index, for example, the number of rows above the current block in the reconstruction area and the number of columns to the left of the current block (e.g., K=L=8 or K=L=13); determining the reconstruction region selected for the current block based on the type and size of the reconstruction regions adjacent to the current block and the position and size of the current block.

[0168] In yet another example, there is one reconstruction region used for the current block on the encoder side, for example, an L-shaped reconstruction region as shown in Figure 13C, where K = L = 13, and a 4x4 window is used for the filtering window, in this case, the decoder side analysis of the block-level syntax elements of the current coding unit is as shown in the table below.

[0169] [Table 9]

[0170] In the above table, intra_eip_flag represents the block-level (CU) interpolation filtering mode flag, where intra_eip_flag equal to 1 indicates that the current block (CU) uses the intra prediction technique of the interpolation filtering mode, and equal to 0 indicates that the current block (CU) does not use the intra prediction technique of the interpolation filtering mode. If this syntax element does not exist in the current bitstream, it defaults to 0, i.e., does not use the interpolation filtering mode. In the table, when intra_eip_flag equals 1, processing for other syntax elements in the interpolation filtering mode, such as decoding of related indexes, is omitted. The meaning of sps_eip_enabled_flag is the same as in the previous example.

[0171] In this example, the use of the interpolation filtering mode is permitted for blocks of all sizes. When the interpolation filtering intra prediction is based on a restricted use of the block size, it is necessary to determine whether the current block size meets the requirements, and then decode the block-level flag position of the interpolation filtering intra prediction.

[0172] For example, in another example, when the width of the current block needs to be less than MAX_WIDTH and the height needs to be less than MAX_HEIGHT, the analysis of the block-level syntax elements is as shown in the following table.

[0173]

Table 10

[0174] In the above table, cbWidth < MAX_WIDTH and cbHeight < MAX_HEIGHT are two conditions for decoding the interpolation filtering mode flag intra_eip_flag. Additionally, there is another condition that the sequence-level flag sps_eip_enabled_flag indicating whether the use of the interpolation filtering mode is permitted is 1. If any of the conditions are not met, skip the decoding of intra_eip_flag.

[0175] Also, for example, in another example, when the width of the current block needs to be greater than MIN_WIDTH and the height needs to be greater than MIN_HEIGHT, the analysis of the block-level syntax elements is as shown in the following table.

[0176]

Table 11

[0177] In the above table, cbWidth>MIN_WIDTH and cbHeight>MIN_HEIGHT are two conditions for decoding the interpolation filtering mode flag intra_eip_flag. Additionally, there is another condition that the sequence level flag sps_eip_enabled_flag, which indicates whether the use of the interpolation filtering mode is permitted, is 1. If none of the conditions are met, the decoding of intra_eip_flag is skipped.

[0178] Also, for example, in another example, when the width of the current block needs to be less than MAX_WIDTH and greater than MIN_WIDTH, and the height needs to be less than MAX_HEIGHT and greater than MIN_HEIGHT, the analysis of the block-level syntax elements is as shown in the following table.

[0179]

Table 12

[0180] In the table, MIN_WIDTH<cbWidth, cbWidth<MAX_WIDTH, MIN_HEIGHT<cbHeight, and cbHeight<MAX_HEIGHT are four conditions for decoding the interpolation filtering mode flag intra_eip_flag. Additionally, there is another condition that the sequence level flag sps_eip_enabled_flag, which indicates whether the use of the interpolation filtering mode is permitted, is 1. If none of the conditions are met, the decoding of intra_eip_flag is skipped.

[0181] In one example, when the encoder performs interpolation filtering on the current block, it can use multiple types of filtering windows and multiple reconstruction regions, and the parameters of the filtering window include the number of neighboring positions (which may also be called the number of filter coefficients) and the shape (for example, the three types shown in Figures 7A to 7C). In this example, the selected filtering window and reconstruction region are indicated by the parameter index of the filtering window and the parameter index of the reconstruction region. The analysis of block-level syntax elements is shown in the table below.

[0182] [Table 13]

[0183] In the above table, eip_shape_idx is the filtering window shape index and defines the index of the selected filter shape. eip_num_coeff_idx is the filtering window adjacent position number index and defines the number of adjacent positions of the selected filtering window. For example, eip_num_coeff_idx = 0 indicates that the number of adjacent positions of the filtering window is 15, and eip_num_coeff_idx = 1 indicates that the number of adjacent positions of the filtering window is 24. If there is only one type of filtering window shape for the combination corresponding to the submode, the filtering window shape index may be omitted from the syntax table, and the same applies to the number of adjacent positions of the filtering window.

[0184] In the above table, eip_tpl_type_idx is the type index of the reconstruction area, and eip_tpl_size_idx is the size index of the reconstruction area, which is the same as the above embodiment and will not be described again.

[0185] In another example, the filtering window and reconstruction region selected for the current block are directly indicated using a single syntax element, such as a submode index, rather than using multiple syntax elements. The analysis of block-level syntax elements is shown in the table below.

[0186] [Table 14]

[0187] In the above table, eip_mode_idx is the submode index of the interpolation filtering mode selected for the current block, and one submode index corresponds to one combination of the reconstruction region and the filtering window, and the number of combinations can be determined based on the type of available reconstruction region, the number of rows, the number of columns, the shape of the filtering window, the number of adjacent positions, etc. Therefore, the reconstruction region and filtering window selected for the current block can be determined based on the submode index. Specifically, the combination corresponding to the value of eip_mode_idx can be determined by looking up or calculating in the table.

[0188] In one exemplary embodiment of the present disclosure, the video decoding method includes: further comprising decoding an intra sub-block split ISP mode flag; If the ISP mode flag indicates that the ISP mode is used for the current coding unit, the current block on which interpolation filtering is performed is a sub-block obtained by dividing the current coding unit; If the ISP mode flag indicates that the ISP mode is not used for the current coding unit, the current block on which interpolation filtering is performed is the current coding unit.

[0189] In this embodiment, the interpolation filtering mode and the intra sub-block partition (ISP) technology are used together, and when decoding the intra mode syntax element, the interpolation filtering mode and the intra sub-block partition mode need to be analyzed simultaneously. An example of the block-level intra prediction mode analysis is as follows:

[0190] [Table 15]

[0191] According to the above table, when the ISP mode flag intra_subpartitions_mode_flag and the interpolation filtering mode flag intra_eip_flag are both set to 1, i.e., the current coding unit being used has ISP selected and can be further divided into multiple sub-blocks, and intra prediction is performed using the interpolation filtering mode for each sub-block. During interpolation filtering, the divided multiple sub-blocks may share one set of filtering coefficients, or each different sub-block may obtain its own filtering coefficient.

[0192] In one exemplary embodiment of the present disclosure, after performing intra prediction on the current block as described above, the video decoding method includes: decoding a position-dependent prediction combination (PDPC) mode flag; If the PDCP mode flag indicates that the PDCP mode is used for the current block, the method further includes weighting a prediction block of the current block obtained by interpolation filtering using smooth unfiltered reconstructed values ​​of pixel points in at least one row and one column adjacent to the current block.

[0193] In this embodiment, the PDPC technique is used to further optimize the interpolation filtered prediction block. In some embodiments, it is possible to implicitly use the PDPC technique for all prediction blocks obtained by interpolation filtering. In some embodiments, it is possible to determine whether to use the PDPC technique based on the size or shape of the block. In some embodiments, it is possible to determine whether to use the PDPC technique for the current block by analyzing the PDPC mode flag eip_pdpc_flag from the bitstream. An example of analysis of the corresponding syntax elements is shown in the table below.

[0194] [Table 16]

[0195] In the above table, eip_pdpc_flag equal to 1 indicates that PDPC mode (i.e., PCPC technology) is used for the current block, and equal to 0 indicates that PDPC mode is not used for the current block. If this syntax element is not present in the bitstream, it defaults to 0, i.e., PDPC mode is not used for the current block. In some embodiments, eip_pdpc_flag can be parsed based on conditions such as block size and shape.

[0196] In one exemplary embodiment of the present disclosure, after performing intra prediction on the current block, the video decoding method further includes performing intra prediction on the current block based on one or more intra prediction modes different from the interpolation filtering mode, and weighting the predicted block of the current block obtained by predicting based on the one or more intra prediction modes and the predicted block of the current block obtained by predicting based on the interpolation filtering mode to obtain a final predicted block of the current block. In this embodiment, the interpolation filtering mode can be used together with any one or more intra prediction modes, and a final predicted signal is obtained by weighting the prediction result of the interpolation filtering and the prediction result of the other prediction modes. The weights used for weighting may be fixed weights or derived weights. If there are various combinations of weights, weight indexes can be analyzed from the bitstream.

[0197] In one exemplary embodiment of the present disclosure, after performing intra prediction on the current block, the video decoding method further includes: determining a residual of the current block according to the original value and the predicted value of the current block, and performing a transform and an inverse transform on the residual, wherein: a transformation kernel used when performing a transformation and an inverse transformation on the residual is a transformation kernel obtained by training based on residual samples in an interpolation filtering mode; Alternatively, when performing a transform and an inverse transform on the residual, limiting the number of combinations of a primary transform kernel and a secondary transform kernel; Alternatively, when performing a transform and an inverse transform on the residual, the number of combinations of the primary transform kernel and the secondary transform kernel is limited based on the size and / or shape of the current block; Alternatively, when performing transform and inverse transform on the residual, the transform kernel employed when performing intra prediction based on the planar mode is used.

[0198] In this embodiment, in the prediction of the interpolation filtering mode, a predicted value of a previous pixel point in the current block may be used as input for interpolation filtering of the pixel point to be next predicted. As a result, prediction errors are accumulated, and the distribution of the residual differs from that of other existing prediction modes. This means that when transforming and inverse transforming the residual of the interpolation filtering mode using a non-separable linear transform or a non-separable secondary transform, the transform kernel used may be a predefined transform kernel trained based on the interpolation filtering error. In some embodiments, since the distribution of the residual of the interpolation filtering mode differs from that of other existing prediction modes, the number of combinations of the linear transform kernel and the secondary transform kernel of the residual may be limited; for example, only the DCT transform may be allowed for the linear transform. In some embodiments, since the distribution of the residual of the interpolation filtering mode differs from that of other existing prediction modes, the number of combinations of the linear transform kernel and the secondary transform kernel of the residual may be limited based on the block parameters (e.g., size, shape) of the current block.

[0199] In one exemplary embodiment of the present disclosure, after performing intra prediction on the current block as described above, the video decoding method further includes: determining a residual of the current block based on the original value and the predicted value of the current block, skipping transformation on the residual using a transform skip mode, and performing block-wise quantization, inverse quantization, and reconstruction on the current block; or determining a residual of the current block based on the original value and the predicted value of the current block, skipping transformation on the residual using a transform skip mode, and performing point-by-point quantization, inverse quantization, and reconstruction on pixel points of the current block.

[0200] In this embodiment, since the distribution of residuals in the interpolation filtering mode is different from that in other existing prediction modes, the transform skip mode can be used to skip the transform of residuals in the interpolation filtering prediction mode. When the transform of residuals in the interpolation filtering prediction mode is skipped, quantization, inverse quantization, and reconstruction can be performed on a block-by-block basis for the current block, or quantization, inverse quantization, and reconstruction can be performed on a point-by-point basis for the pixel points of the current block. In this way, it is possible to avoid the defect of excessive accumulation of errors caused by using the predicted value of the current position as the input for the filter of the next position.

[0201] In one exemplary embodiment of the present disclosure, after performing intra prediction on the current block as described above, the video decoding method further includes setting the planar mode as the intra prediction mode used for the current block when constructing a list of most probable modes (MPMs) for the current block as a neighboring block of other coding blocks.

[0202] In one exemplary embodiment of the present disclosure, decoding of the interpolation filtering mode flag of the current block is allowed only if the current block is a luma block, or decoding of the interpolation filtering mode flag of the current block is allowed both if the current block is a luma block or a chroma block.

[0203] In one exemplary embodiment of the present disclosure, the current block is a luma block, and after performing intra prediction on the current block using an interpolation filtering mode, the method includes: If the chroma block at the location of the current block adopts the DM mode, determining that the mode used for intra prediction of the chroma block is a planar mode (i.e., a planar mode), and in this case, the chroma block does not use an interpolation filtering mode; Or, if the chroma block where the current block is located adopts the DM mode, determining that the mode used for intra prediction of the chroma block is the interpolation filtering mode, and in such a case, allowing the chroma block to use the interpolation filtering mode; Alternatively, if the chroma block at the location of the current block adopts DM mode, continuing to decode the interpolation filtering mode flag of the chroma block, and determining whether the mode used for intra prediction of the chroma block is interpolation filtering mode based on the value of the interpolation filtering mode flag; in such a case, the chroma block allows the use of interpolation filtering mode, but the decision on whether to use it must be made in combination with the interpolation filtering mode flag of the chroma block.

[0204] Hereinafter, specific embodiments of some processes performed by the above-mentioned embodiments will be described, taking intra prediction based on interpolation filtering performed on the decoder side as an example.

[0205] ■ Obtaining the reconstruction area range and maximum and minimum values When obtaining the filtering coefficients, first decode the size index eip_tpl_size_idx of the reconstruction area of ​​the current block to determine the number of rows and columns of the reconstruction area selected for the current block, which is temporarily set as refSize. Then, based on the coordinates puX and puY of the pixel point at the upper left corner of the current block, and the width puWidth and height puHeight of the current block, Reference area width refWidth=puWidth*2+refSize, The height of the reference area is refHeight=puHeight*2+refSize. The abscissa of the upper left corner of the reference area is refPosPicX=puX-refSize. The ordinate of the upper right corner of the reference area is refPosPicY=puY-refSize. Get the parameter. According to the coordinates and size of the reference area, the refBuffer of the reference area is obtained from the reconstructed image buffer, and ref[x][y] represents the reconstructed pixel value in refBuffer that is (x,y) away from the upper left corner of the reference area. To avoid division operations when calculating the average value, the reconstructed value of the pixel point at the intersection of the first row above and the first column to the left of the current block is used as the average value.

[0206] The average value is mean=ref[refSize-1][refSize-1].

[0207] The process for obtaining the maximum and minimum values ​​is as shown in the table below. [Table 17]

[0208] ■Finding the filtering coefficients Using a 4x4 rectangular window as the filtering window, obtaining a set of filtering coefficients for interpolation filtering based on the reconstruction region selected for the current block includes the following steps:

[0209] First step Arrays A[][] and C[] are used to buffer the reconstructed samples of the corresponding regions, where the first index of array A represents the index of the sample position, the second index represents the indexes of multiple adjacent positions within the filtering window when the sample position represented by the first index is aligned with the current position of the filtering window (which may also be called input sample indexes), and the index of array C represents the index of the filtering coefficient output by the interpolation filter (which may also be called output sample indexes). The process of obtaining elements in arrays A and C is as shown in the table below.

[0210] [Table 18(1)] [Table 18(2)]

[0211] In this example, the value of refType is equal to eip_tpl_type_idx, numSamples represents the number of sample positions in the reconstruction region, and in this example, the step size by which the filtering window moves is 1 in both the width and height directions. refHeight represents the height of the reconstruction region, and refWidth represents the width of the reconstruction region.

[0212] Second step Based on array A, the autocorrelation coefficient matrix ATA[][] (as can be seen from the above, the coefficients of the autocorrelation coefficient matrix are symmetric with respect to the diagonal direction, so some calculations can be omitted during construction) and the cross-correlation coefficient matrix ATY[] are constructed. The steps are as shown in the table below.

[0213] [Table 19(1)] [Table 19(2)]

[0214] Regarding the solution of the filtering coefficients, other than formulating and solving the Wiener filter equation, other novel algorithmic methods can also be adopted to find the filtering coefficients.

[0215] Third step The autocorrelation coefficient matrix is ​​decomposed and the interpolation filtering coefficients are solved by back-substitution. This can be achieved by adopting the Cholesky decomposition or lower unit triangular matrix (LDL) decomposition method.

[0216] ■ Prediction process based on interpolation filtering The inputs of this process are the buffer piPred of the block to be predicted, the width and height of the predicted block, and the interpolation filter coefficients C={c0,...,c 14}, minimum value min, maximum value max, mean value mean, and reconstructed pixel buffer refBuffer. The buffer for temporarily storing reconstructed pixel values ​​and intermediate values ​​of the prediction process is tempBuff[MAX_CU_SIZE+3][MAX_CU_SIZE+3], The process for generating the prediction is as follows.

[0217] In step 1, the reconstructed pixels are filled into tempBuff, which can be achieved by employing the calculation process shown in the table below.

[0218] [Table 20]

[0219] In step 2, the prediction is completed.

[0220] [Table 21(1)] [Table 21(2)]

[0221] In the above table, shift is the magnification factor when calculating the filtering coefficients, and offset is the offset value (the magnification factor is used to magnify the coefficients when obtaining them, allowing the interpolated filtering coefficients to have a larger dynamic range).

[0222] The ECM (enhanced compression model) is a reference software based on the VTM-10.0 reference software of the VVC test software, and integrates various new tools to further improve encoding and decoding performance. Based on the intra prediction method described in the embodiments of the present disclosure, by using the six types of reference regions and 4x4 filtering window shown in Figures 13A to 13F, the performance of the ECM-6.0 reference software is expressed as follows:

[0223] [Table 22]

[0224] The meaning of the parameters in the table is as follows:

[0225] EncT is the encoding time. 10X% means that the encoding time after integration of the reference row sorting technique is 10X% compared to before integration, meaning that the encoding time has increased by X%.

[0226] DecT is the decoding time. 10X% indicates that the decoding time after integration of the reference row sorting technique is 10X% of that before integration, meaning that the decoding time has increased by X%.

[0227] Class A1 and Class A2 are test video sequences with a resolution of 3840x2160, Class B is a test sequence with a resolution of 1920x1080, Class C is 832x480, Class D is 416x240, Class E is 1280x720, and Class F is a screen content sequence with several different resolutions.

[0228] Y, U, and V are the three color components, and the Y, U, and V columns represent the BD-rate (Bjontegaard-Delta rate) index for Y, U, and V in the test results. The smaller the value, the better the coding performance.

[0229] All intra is a test configuration in which everything is intra-frame.

[0230] Encoding and decoding intra prediction using the interpolation filtering mode according to an embodiment of the present disclosure results in objective compression improvements of 0.15%, 0.13%, and 0.15% for the Y / U / V components, respectively, under common test conditions.

[0231] An embodiment of the present disclosure further provides a bitstream, wherein the bitstream is generated by a video encoding method according to any embodiment of the present disclosure.

[0232] An embodiment of the present disclosure further provides an intra prediction device based on interpolation filtering, which, as shown in FIG. 15 , includes a processor 71 and a memory 73 storing a computer program, wherein the processor 71, when executing the computer program, can realize the intra prediction method based on interpolation filtering described in any embodiment of the present disclosure.

[0233] An embodiment of the present disclosure further provides a video decoding device, see FIG. 15, which includes a processor and a memory storing a computer program, wherein the processor, when executing the computer program, is capable of realizing the video decoding method described in any embodiment of the present disclosure.

[0234] An embodiment of the present disclosure further provides a video encoding device, see FIG. 15, which includes a processor and a memory storing a computer program, wherein the processor, when executing the computer program, is capable of realizing the video encoding method described in any of the embodiments of the present disclosure.

[0235] The processor in the above-described embodiments of the present disclosure may be a general-purpose processor, including a central processing unit (CPU), a network processor (abbreviated as NP), a microprocessor, or other conventional processor, or may be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a discrete logic or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, or other equivalent integrated element or discrete logic circuit, or a combination of such devices. That is, the processor in the above-described embodiments may be any processor or combination of processors that implements each method, step, and logical block diagram disclosed in the embodiments of the present disclosure. When the embodiments of the present disclosure are implemented in part by software, the methods of the embodiments of the present disclosure can be implemented by storing instructions used in the software in a suitable non-transitory computer-readable storage medium and executing the instructions in hardware by one or more processors. As used herein, the term "processor" may refer to the above-described configuration or any other configuration suitable for implementing the techniques described herein.

[0236] One embodiment of the present disclosure further provides a video encoding and decoding system, which includes a video encoding device described in any embodiment of the present disclosure and a video decoding device described in any embodiment of the present disclosure.

[0237] An embodiment of the present disclosure further provides a non-transitory computer-readable storage medium, the computer-readable storage medium storing a computer program, which, when executed by a processor, is capable of realizing an intra prediction method based on interpolation filtering described in any embodiment of the present disclosure, a video decoding method described in any embodiment of the present disclosure, or a video encoding method described in any embodiment of the present disclosure.

[0238] An embodiment of the present disclosure further provides a computer program product including a computer program, wherein the computer program, when executed by a processor, is capable of realizing the intra prediction method based on interpolation filtering described in any embodiment of the present disclosure, the video decoding method described in any embodiment of the present disclosure, or the video encoding method described in any embodiment of the present disclosure.

[0239] In one or more exemplary embodiments described above, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over a computer-readable medium as one or more instructions or code and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media, which correspond to tangible media, such as data storage media, or communication media, including any medium that facilitates the transfer of a computer program from one place to another, for example via a communications protocol. In this manner, computer-readable media may generally correspond to non-transitory tangible computer-readable storage media or communication media, such as a signal or carrier wave. Data storage media may be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and / or data structures to implement the techniques described in this disclosure. A computer program product may include computer-readable media.

[0240] By way of example, and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage, flash memory, or any other medium usable to store desired program code in the form of instructions or data structures and accessible by a computer. Additionally, any connection may be referred to as a computer-readable medium; for example, if instructions are transmitted from a website, server, or other remote source via coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included within the definition of medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transitory (transient) media, but rather cover non-transitory tangible storage media. As used herein, magnetic disks and optical disks include compact disks (CDs), laser disks, optical disks, digital versatile disks (DVDs), floppy disks, and Blu-ray disks, among which magnetic disks typically reproduce data magnetically, and optical disks reproduce data optically using laser light. Combinations of the above should also be included within the scope of computer-readable media.

[0241] In some aspects, the functionality described herein may be provided in dedicated hardware and / or software modules configured and used for encoding and decoding, or may be incorporated into a combined encoder / decoder, and the techniques may be implemented entirely in one or more circuits or logic elements.

[0242] Technical aspects of embodiments of the present disclosure may be implemented in a wide variety of apparatuses or devices, including a wireless mobile phone, an integrated circuit (IC), or a set of ICs (e.g., a chipset). In embodiments of the present disclosure, various components, modules, or units are described to emphasize functional aspects of apparatuses configured to perform the described techniques, but are not necessarily implemented by different hardware units. Rather, as described above, various units may be combined in encoder and decoder hardware units, or may be provided by a collection of interoperable hardware units (including one or more processors, as described above) in combination with appropriate software and / or firmware.

Claims

1. 1. An intra prediction method based on interpolation filtering, comprising: determining filtering coefficients to be used when performing interpolation filtering on the current block based on a filtering window of the current block and reconstruction values ​​of pixel points in a reconstruction region adjacent to the current block; predicting pixel points in the current block one by one based on the filtering window and the filtering coefficient to obtain a predicted block of the current block; When predicting the current pixel point, determining a reference pixel point adjacent to the current pixel point based on the filtering window, and performing interpolation filtering based on the pixel value of the reference pixel point and the filtering coefficient to obtain a predicted value of the current pixel point; Intra prediction method.

2. the reference pixel points include at least one of reconstructed pixel points in a reconstruction region adjacent to the current block and predicted pixel points in the current block; If the reference pixel points are all reconstructed pixel points, the pixel values ​​of the reference pixel points refer to the reconstructed values ​​of the reference pixel points; When the reference pixel points are all predicted pixel points, the pixel values ​​of the reference pixel points refer to predicted values ​​of the reference pixel points; When the reference pixel points include reconstructed pixel points and predicted pixel points, pixel values ​​of the reference pixel points include reconstructed values ​​of reconstructed pixel points among the reference pixel points and predicted values ​​of predicted pixel points among the reference pixel points. The intra prediction method according to claim 1 .

3. The filtering window of the current block is determined based on block parameters of the current block, the block parameters including at least one of a shape, a size, and a position. The intra prediction method according to claim 1 .

4. There are one or more types of filtering windows for the current block, and there are one or more reconstruction regions adjacent to the current block; The above-mentioned determining the filtering coefficients to be used when performing interpolation filtering on the current block based on the filtering window of the current block and the reconstruction values ​​of pixel points in the reconstruction region adjacent to the current block includes: determining, for each combination of a filtering window of the current block and a reconstruction region adjacent to the current block, a corresponding set of filtering coefficients based on reconstruction values ​​of pixel points in the filtering window and the reconstruction region in the combination; Predicting pixel points in the current block one by one based on the filtering window and the filtering coefficients to obtain a predicted block of the current block, For each combination of a filtering window of the current block and a reconstruction region adjacent to the current block, predicting pixel points in the current block one by one based on the filtering window in the combination and a set of filtering coefficients corresponding to the combination to obtain one predicted block of the current block; The intra prediction method according to claim 1 .

5. Each filtering window of the current block includes one current position and a plurality of adjacent positions, and a set of filtering coefficients corresponding to a combination including the filtering window includes a plurality of filtering coefficients corresponding one-to-one to the plurality of adjacent positions; The above-mentioned predicting pixel points in the current block one by one based on the filtering windows in the combination and the set of filtering coefficients corresponding to the combination includes: Matching a current pixel point with a current position of the filtering window in the combination, determining pixel points at all adjacent positions of the filtering window in the combination as reference pixel points adjacent to the current pixel point, and performing interpolation filtering according to pixel values ​​of the reference pixel points and a set of filtering coefficients corresponding to the combination to obtain a predicted value of the current pixel point; The intra prediction method according to claim 4 .

6. Determining a corresponding set of filtering coefficients based on the filtering window in the combination and the reconstruction values ​​of pixel points in the reconstruction region in the combination, as described above, includes: placing the filtering windows in the combination at M different positions where the reconstructed pixel points are located in the reconstruction region in the combination, where M≧1; constructing a Wiener-Hopf equation using M current positions in the filtering window of the M different positions as sample positions, and reconstruction values ​​or mean-removed reconstruction values ​​of pixel points at all neighboring positions within the filtering window of the M different positions as inputs; and solving a Wiener-Hopf equation to obtain a set of filtering coefficients corresponding to the combination, with the goal of minimizing the error between the predicted and reconstructed values ​​of the M current positions. The intra prediction method according to claim 5 .

7. The solution of the Wiener-Hopf equation is based on all integer calculations, and the autocorrelation coefficient matrix of the Wiener-Hopf equation is decomposed by Cholesky decomposition or lower unit triangular matrix LDL decomposition. The intra prediction method according to claim 6 .

8. The above-mentioned interpolation filtering is performed based on the pixel values ​​of the reference pixel points and a set of filtering coefficients corresponding to the combination to obtain a predicted value of the current pixel point, Calculating the predicted value pred of the current pixel point by the following formula: [Equation 1] or calculating a predicted value pred for the current pixel point according to the following formula: [Equation 2] Among them, [Equation 3] is the pixel value of the nth reference pixel point of the current pixel point, where n=0, 1, . . . , N−1, and C n is a filtering coefficient corresponding to the nth reference pixel point among the set of filtering coefficients, N is the number of the reference pixel points, offset and shift are predefined values, and “>>” represents a binary right shift operation; The intra prediction method according to claim 6 .

9. The above-mentioned interpolation filtering is performed based on the pixel values ​​of the reference pixel points and a set of filtering coefficients corresponding to the combination to obtain a predicted value of the current pixel point, If the set of filtering coefficients is obtained by solving a Wiener-Hopf equation using the mean-removed reconstruction as input, then calculating a predicted value pred for the current pixel point as follows: [Equation 4] or calculating a predicted value pred for the current pixel point according to the following formula: [Equation 5] Among them, [Equation 6] is the pixel value of the nth reference pixel point of the current pixel point, where n=0, 1, . . . , N−1, and C n is a filtering coefficient corresponding to the nth reference pixel point among the set of filtering coefficients, N is the number of the reference pixel points, m is the mean value used in calculating the reconstructed value with the mean value removed, offset and shift are predefined values, and ">>" represents a binary right shift operation. The intra prediction method according to claim 6 .

10. The mean-removed reconstructed value is obtained by subtracting the mean from the reconstructed value, said mean being: A method of calculating an average value for the reconstruction values ​​of all pixel points in the reconstruction region in the combination to obtain the average value; Or, a method of calculating an average value for the reconstruction values ​​of some pixel points in the reconstruction region in the combination to obtain the average value; Or, the reconstruction value of one designated pixel point in the reconstruction region in the combination is obtained by the method of taking the average value. The intra prediction method according to claim 6 .

11. In calculating an average value for the reconstruction values ​​of a part of pixel points in the reconstruction region in the combination, the part of pixel points includes pixel points in one or more rows adjacent to the current block above, and / or pixel points in one or more columns adjacent to the current block to the left; The above-mentioned setting of the reconstructed value of one designated pixel point in the reconstruction region in the combination as the average value means setting the reconstructed value of one pixel point adjacent to the upper left corner of the current block in the reconstruction region as the average value. The intra prediction method according to claim 10.

12. The reconstruction region adjacent to the current block includes any one or more of an upper reconstruction region adjacent to the current block and positioned above the current block, a left reconstruction region adjacent to the current block and positioned to the left of the current block, and an L-shaped reconstruction region adjacent to the current block and positioned above and to the left of the current block; Each of the upper reconstruction regions includes one region, two consecutive regions, or three consecutive regions of an upper left region, an immediately upper region, and an upper right region of a current block; each of the left reconstruction regions includes one region, two consecutive regions, or three consecutive regions among an upper left region, a true left region, and a lower left region of a current block; each of the L-shaped reconstruction regions includes an area directly above, an upper left area, and an area directly to the left of the current block, or includes one or two of an area directly above, an upper left area, an area directly to the left of, an upper right area, and an area directly to the bottom left of the current block; The intra prediction method according to claim 1 .

13. The size of the reconstruction region adjacent to the current block is determined based on the size of the current block; In a reconstruction area adjacent to the current block, the number of rows located above the current block and the number of columns located to the left of the current block are determined based on the width and / or height of the current block; There is one reconstruction region adjacent to the current block, or there are multiple reconstruction regions adjacent to the current block, and the different reconstruction regions differ in at least one of type, width, height, and position. The intra prediction method according to claim 1 .

14. The plurality of adjacent locations in the filtering window may include: Is it located directly above, to the upper left, or to the left of your current location? Or, directly above, to the upper left, to the left and to the upper right of the current position, Or, located directly above, to the upper left, to the left, and to the lower left of the current position, The intra prediction method according to claim 5 .

15. When the plurality of neighboring positions in the filtering window are located directly above, above-left, and left of the current position, the aforementioned predicting pixel points in the current block one by one is to predict pixel points in the current block one by one in a left-to-right, then top-to-bottom order, a top-to-bottom, then left-to-right order, a diagonal order, or a Zig-Zag order; When the plurality of neighboring positions in the filtering window are located directly above, above-left, left, and below-left of the current position, the aforementioned predicting pixel points in the current block one by one refers to predicting pixel points in the current block one by one in the order from top to bottom, then from left to right; When the neighboring positions in the filtering window are located directly above, above-left, left, and above-right of the current position, predicting the pixel points in the current block one by one as described above means predicting the pixel points in the current block one by one in the order from left to right, then from top to bottom. The intra prediction method according to claim 14.

16. the filtering window is rectangular or L-shaped in shape and includes one current position corresponding to a current pixel point and at least two adjacent positions corresponding to reference pixel points; The intra prediction method according to claim 1 .

17. The above-mentioned interpolation filtering based on the pixel value of the reference pixel point and the filtering coefficient to obtain a predicted value of the current pixel point includes: performing interpolation filtering based on the pixel values ​​of the reference pixel points and the filtering coefficients to obtain initial predicted values; If the initial predicted value exceeds a predicted value range of the current block, modifying the initial predicted value so that the modified predicted value falls within the predicted value range of the current block; and setting the corrected predicted value as the predicted value for the current pixel point. The intra prediction method according to claim 1 .

18. The step of correcting the initial predicted value includes: if the initial predicted value is greater than a maximum value of the range of predicted values, then setting the maximum value as the corrected predicted value; If the initial predicted value is smaller than a minimum value of the range of predicted values, setting the minimum value as the corrected predicted value; The predicted value range is determined based on the data depth of the predicted value, or based on the maximum and minimum reconstructed values ​​of pixel points in the reconstruction region or a local region thereof used in determining the filtering coefficients. The intra prediction method of claim 17.

19. decoding an interpolation filtering mode flag of the current block; When it is determined that the intra prediction of the current block is performed using the interpolation filtering mode based on the interpolation filtering mode flag obtained by decoding, determining a filtering window and a reconstruction region to be selected for the current block; and performing intra prediction on the current block by the method for intra prediction based on interpolation filtering according to any one of claims 1 to 18 based on the determined filtering window and reconstruction region. Video decoding methods.

20. As mentioned above, determining the filtering window to be selected for the current block includes: determining the set one filtering window as the filtering window selected for the current block; or determining a filtering window corresponding to block parameters of the current block as the filtering window selected for the current block, wherein the block parameters include at least one of a position, a shape, and a size; or continuing to decode sub-mode indexes of the current block and determining the filtering window selected for the current block based on the sub-mode indexes, where each sub-mode index corresponds to one combination of the filtering window of the current block and a reconstruction region adjacent to the current block; or continuing to decode filtering window indexes of the current block, and determining the filtering window selected for the current block based on the filtering window indexes, where each filtering window index corresponds to one type of filtering window; or continuing to decode a parameter index of a filtering window of the current block, determining parameters of the filtering window based on the parameter index of the filtering window, and determining the filtering window selected for the current block based on the parameters, wherein the parameters of the filtering window include at least one of a shape, a size, and a number of neighboring positions.

20. The video decoding method of claim 19.

21. As mentioned above, determining the reconstruction region selected for the current block includes: determining a reconstruction region to be selected for the current block based on parameters of the set reconstruction region; or determining one reconstruction region corresponding to block parameters of the current block as the reconstruction region selected for the current block, wherein the block parameters include at least one of a position, a shape, and a size; or continuing to decode sub-mode indexes of the current block and determining the reconstruction region selected for the current block based on the sub-mode indexes, where each sub-mode index corresponds to one combination of a filtering window of the current block and a reconstruction region adjacent to the current block; or continuing to decode reconstruction region indexes of the current block, and determining the reconstruction region selected for the current block based on the reconstruction region indexes, wherein each reconstruction region index corresponds to one type of reconstruction region; or continuing to decode parameter indexes of the reconstruction regions of the current block, determining parameters of the reconstruction regions based on the parameter indexes of the reconstruction regions, and determining the reconstruction regions to be selected for the current block based on the parameters.

20. The video decoding method of claim 19.

22. the parameter index of the reconstruction area includes at least one of a type index of the reconstruction area and a size index of the reconstruction area, and the size of the reconstruction area includes at least one of a number of rows above the current block of the reconstruction area and a number of columns to the left of the current block of the reconstruction area; 22. The video decoding method of claim 21.

23. As mentioned above, determining the neighboring reconstruction region to be selected for the current block includes: Continuing to decode a type index of the reconstruction region of the current block, and determining a type of the reconstruction region selected for the current block based on the type index obtained by the decoding, the type being a top reconstruction region, a left reconstruction region, or an L-shaped reconstruction region; Continuing to decode a size index of the reconstruction region of the current block and determining a size of the reconstruction region selected for the current block based on the decoded size index; determining the reconstruction area selected for the current block based on the type, number of rows and columns of the reconstruction areas adjacent to the current block, and the position and size of the current block; 20. The video decoding method of claim 19.

24. Allow decoding of the interpolation filtering mode flag of the current block only if the current block is a luma block, or Or, if the current block is a luma block or a chroma block, either allows decoding of the interpolation filtering mode flag of the current block; 22. The video decoding method of claim 21.

25. Before decoding the interpolation filtering mode flag of the current block as described above, The video decoding method includes: decoding a sequence level flag indicating whether use of an interpolation filtering mode is permitted, and continuing to decode the interpolation filtering mode flag of the current block if the value of the sequence level flag indicates that use of an interpolation filtering mode is permitted, and skipping decoding the interpolation filtering mode flag of the current block if the value of the sequence level flag indicates that use of an interpolation filtering mode is not permitted; decoding a picture level flag indicating whether use of an interpolation filtering mode is permitted, and continuing to decode the interpolation filtering mode flag of the current block if the value of the picture level flag indicates that use of an interpolation filtering mode is permitted, and skipping decoding the interpolation filtering mode flag of the current block if the value of the picture level flag indicates that use of an interpolation filtering mode is not permitted; decoding a slice level flag indicating whether use of an interpolation filtering mode is permitted, and continuing to decode the interpolation filtering mode flag of the current block only if the value of the slice level flag indicates that use of an interpolation filtering mode is permitted, and skipping decoding the interpolation filtering mode flag of the current block if the value of the slice level flag indicates that use of an interpolation filtering mode is not permitted; decoding a general constraint information (GCI) indicator indicating whether use of an interpolation filtering mode is prohibited, and if the value of the GCI indicator indicates that use of an interpolation filtering mode is not prohibited, continuing to decode a sequence level flag indicating whether use of an interpolation filtering mode is permitted, and if the value of the GCI indicator indicates that use of an interpolation filtering mode is prohibited, skipping decoding the sequence level flag indicating whether use of an interpolation filtering mode is permitted and silently accepting that the sequence level flag indicates that use of an interpolation filtering mode is not permitted.

22. The video decoding method of claim 21.

26. the current block is a luma block, After performing intra prediction on the current block as described above, The video decoding method includes: If the chroma block at the location of the current block adopts a DM mode, determining that a mode used for intra prediction of the chroma block is a planar mode; Or, if the chroma block where the current block is located adopts a DM mode, determining that the mode used for intra prediction of the chroma block is an interpolation filtering mode; Alternatively, if the chroma block where the current block is located adopts the DM mode, continuing to decode the interpolation filtering mode flag of the chroma block, and determining whether the mode used for intra prediction of the chroma block is the interpolation filtering mode based on the value of the interpolation filtering mode flag.

20. The video decoding method of claim 19.

27. Before decoding the interpolation filtering mode flag of the current block as described above, The video decoding method includes: determining whether a size of the current block satisfies a maximum block size and / or a minimum block size for enabling an interpolation filtering mode, and if so, continuing to decode the interpolation filtering mode flag of the current block; and if not, skipping decoding the interpolation filtering mode flag of the current block, wherein the size includes at least one of a length, a width, and a height; determining whether a difference between the abscissa of the upper left corner of the current block and the abscissa of the upper left corner of the current image is equal to or greater than a first threshold value; if the difference is equal to or greater than the first threshold value, continuing to decode the interpolation filtering mode flag of the current block; and if the difference is less than the first threshold value, skipping decoding the interpolation filtering mode flag of the current block; determining whether a difference between the vertical coordinate of the upper left corner of the current block and the vertical coordinate of the upper left corner of the current image is equal to or greater than a set second threshold, and if the difference is equal to or greater than the set second threshold, continuing to decode the interpolation filtering mode flag of the current block; and if the difference is less than the second threshold, skipping decoding the interpolation filtering mode flag of the current block.

20. The video decoding method of claim 19.

28. further comprising decoding an intra-sub-block partitioning (ISP) mode flag; If the ISP mode flag indicates that the ISP mode is used for the current coding unit, the current block on which interpolation filtering is performed is a sub-block obtained by dividing the current coding unit; If the ISP mode flag indicates that ISP mode is not used for the current coding unit, the current block on which interpolation filtering is performed is the current coding unit.

20. The video decoding method of claim 19.

29. After performing intra prediction on the current block as described above, The video decoding method includes: decoding a position dependent prediction combining (PDCP) mode flag; If the PDCP mode flag indicates that the PDCP mode is used for the current block, weighting the predicted block of the current block obtained by interpolation filtering using non-smooth filtered reconstructed values ​​of pixel points in at least one row and one column adjacent to the current block.

20. The video decoding method of claim 19.

30. After performing intra prediction on the current block as described above, The video decoding method includes: and performing intra prediction on the current block based on one or more types of intra prediction modes different from the interpolation filtering mode, and weighting a predicted block of the current block obtained by predicting based on the one or more types of intra prediction modes and a predicted block of the current block obtained by predicting based on the interpolation filtering mode to obtain a final predicted block of the current block.

20. The video decoding method of claim 19.

31. After performing intra prediction on the current block, the video decoding method further includes: determining a residual of the current block based on an original value and a predicted value of the current block; and performing a transform and an inverse transform on the residual; a transformation kernel used when performing a transformation and an inverse transformation on the residual is a transformation kernel obtained by training based on residual samples in an interpolation filtering mode; Alternatively, when performing a transform and an inverse transform on the residual, limiting the number of combinations of a primary transform kernel and a secondary transform kernel; Alternatively, when performing a transform and an inverse transform on the residual, the number of combinations of the primary transform kernel and the secondary transform kernel is limited based on the size and / or shape of the current block; Alternatively, when performing a transform and an inverse transform on the residual, a transform kernel employed when performing intra prediction based on a planar mode is used.

20. The video decoding method of claim 19.

32. After performing intra prediction on the current block as described above, The video decoding method includes: determining a residual of the current block based on the original value and the predicted value of the current block, skipping transform on the residual using a transform skip mode, and performing block-wise quantization, dequantization, and reconstruction on the current block; Or, the method further includes determining a residual of the current block based on the original value and the predicted value of the current block, skipping the transform on the residual using a transform skip mode, and performing point-by-point quantization, dequantization, and reconstruction on pixel points of the current block.

20. The video decoding method of claim 19.

33. After performing intra prediction on the current block as described above, The video decoding method includes: and when constructing a list of most probable modes for the current block as a neighboring block of another coding block, the planar mode is set as the intra prediction mode to be used for the current block.

20. The video decoding method of claim 19.

34. performing intra prediction on a current block based on a plurality of types of intra prediction modes, and when it is determined that the current block is permitted to use an interpolation filtering mode, performing intra prediction of the interpolation filtering mode on the current block according to the intra prediction method of any one of claims 1 to 18; If it is determined that the intra prediction of the current block is performed using an interpolation filtering mode based on the rate-distortion costs of the multiple types of intra prediction modes, encoding an interpolation filtering mode flag of the current block to indicate that the intra prediction of the current block is performed using the interpolation filtering mode. Video coding methods.

35. The determination that the interpolation filtering mode is permitted to be used for the current block includes determining that the interpolation filtering mode is permitted to be used for the current block if any of the conditions prohibiting the use of the interpolation filtering mode are not satisfied; The conditions for prohibiting the use of the interpolation filtering mode are as follows: The current block is a chroma block, the presence of a sequence-level flag indicating that the use of interpolation filtering mode is not permitted, the presence of an image level flag indicating that the use of interpolation filtering mode is not permitted; the presence of a slice level flag indicating that the use of interpolation filtering mode is not permitted; the presence of a GCI indicator indicating that the use of interpolation filtering mode is prohibited; the size of the current block does not meet the maximum block size and / or the minimum block size for enabling the interpolation filtering mode; The difference between the horizontal coordinate of the upper left corner of the current block and the horizontal coordinate of the upper left corner of the current image is less than a set first threshold value; a difference between the vertical coordinate of the top left corner of the current block and the vertical coordinate of the top left corner of the current image is less than a set second threshold; 35. The video encoding method of claim 34.

36. As described above, performing intra prediction in the interpolation filtering mode on the current block is determining a combination of a filtering window of a current block and a reconstruction region adjacent to the current block used when performing intra prediction of an interpolation filtering mode on the current block, K types of combinations corresponding to K sub-modes of the interpolation filtering mode, and performing intra prediction based on interpolation filtering on the current block based on the filtering window of the current block and the reconstruction region adjacent to the current block in the combination corresponding to each sub-mode, where K is the number of combinations, and K≧2; When it is determined to perform intra prediction of the current block using an interpolation filtering mode based on the rate-distortion costs of the plurality of intra prediction modes, a minimum value of the rate-distortion costs of the K sub-modes is determined as a rate-distortion cost of the interpolation filtering mode, and the minimum value is compared with the rate-distortion costs of other intra prediction modes among the plurality of intra prediction modes; If the interpolation filtering mode has the lowest rate-distortion cost, the video encoding method further includes encoding index information to indicate the sub-mode among the K sub-modes having the lowest rate-distortion cost.

35. The video encoding method of claim 34.

37. The index information indicating the submode having the smallest rate-distortion cost among the K submodes includes any one or more indexes of a submode index, a reconstruction region index of a current block, a parameter index of a reconstruction region of a current block, a filtering window index of a current block, and a parameter index of a filtering window of a current block; each of the sub-mode indexes corresponds to one combination of a filtering window of a current block and a reconstruction region adjacent to the current block; Each of the reconstruction area indexes of the current block corresponds to one type of reconstruction area; a parameter index of the reconstruction area of ​​the current block including at least one of a size index and a type index, and a size of the reconstruction area including at least one of a number of rows in the reconstruction area above the current block and a number of columns in the reconstruction area to the left of the current block; Each of the filtering window indexes of the current block corresponds to one type of filtering window; The parameters of the filtering window include at least one of a shape, a size, and a number of neighboring locations.

37. The video encoding method of claim 36.

38. Produced by a video encoding method according to any one of claims 34 to 37 Bitstream.

39. a processor and a memory in which a computer program is stored; When the processor executes the computer program, the processor is capable of implementing the method for intra prediction based on interpolation filtering according to any one of claims 1 to 18. An intra-predictor based on interpolation filtering.

40. a processor and a memory in which a computer program is stored; The processor, when executing the computer program, is capable of implementing the video decoding method of any one of claims 19 to 33. Video decoder.

41. a processor and a memory in which a computer program is stored; The processor, when executing the computer program, is capable of implementing the video encoding method of any one of claims 34 to 37. Video coding device.

42. A video encoding device according to claim 41 and a video decoding device according to claim 40, Video encoding and decoding system.

43. A computer program is stored The computer program, when executed by a processor, is capable of implementing the method for intra prediction based on interpolation filtering according to any one of claims 1 to 18, the video decoding method according to any one of claims 19 to 33 or the video encoding method according to any one of claims 34 to 37. A non-transitory computer-readable storage medium.

44. including computer programs, The computer program, when executed by a processor, is capable of implementing the method for intra prediction based on interpolation filtering according to any one of claims 1 to 18, the video decoding method according to any one of claims 19 to 33 or the video encoding method according to any one of claims 34 to 37. Computer program products.