Intraprediction methods based on interpolation filtering and non-transient storage media.
The intraprediction method using interpolation filtering addresses bandwidth challenges in video compression by enhancing prediction accuracy and efficiency, thereby improving encoding performance.
Patent Information
- Application Number
- BR112025017550
- Authority / Receiving Office
- BR · BR
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-02-24
- Publication Date
- 2026-07-07
AI Technical Summary
Current digital video compression standards face challenges in efficiently managing bandwidth and traffic pressure due to the increasing demand for higher video resolution, necessitating more advanced compression technologies.
An intraprediction method based on interpolation filtering is introduced, which involves determining a filtering coefficient using a filtering window and reconstructed pixel values to perform pixel-by-pixel prediction, enhancing the prediction accuracy and efficiency of video encoding and decoding processes.
The method improves encoding performance by utilizing spatial redundancy through interpolation filtering, leading to better compression efficiency and reduced bandwidth requirements.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
1 / 112 Intraprediction methods based on filtering of Interpolation and Non-Transient Storage Media FIELD OF TECHNIQUE
[001] The embodiments of the present disclosure relate to, but are not limited to, video technologies, and more specifically, to an intraprediction method and apparatus based on interpolation filtering, a video encoding method and apparatus, a video decoding method and apparatus, and a system. BACKGROUND
[002] Digital video compression technologies primarily compress large amounts of digital image and video data to facilitate transmission and storage. In current common video encoding and decoding standards, for example, H.266 / Versatile Video Code Conversion (VVC), a block-based hybrid encoding structure is used. Each frame in a video is partitioned into larger square encoding units (LCUs) of the same size (e.g., 128*128 or 64*64). Each larger encoding unit can be partitioned into rectangular encoding units (CUs) according to a rule. An encoding unit can be further partitioned into a prediction unit (PU), a transform unit (TU), and the like. The hybrid encoding structure includes a prediction module, a transform module, a quantization module, and an entropy encoding module. Petition 870250073414, dated 08 / 20 / 2025, page 8 / 292 2 / 112 coding), an in-loop filter module, and similar technologies. The prediction module includes intraprediction and interprediction, which are used to reduce or eliminate redundancies within a video. An intrablock is predicted using pixels around the block as a reference, while an interblock is predicted using information about a spatially adjacent block and reference information from other frames. Residual information, relative to a prediction signal, is transformed, quantized, and entropy-encoded into blocks to generate a bitstream. These technologies are described in standards and implemented in various fields related to video compression.
[003] With the explosive growth of internet videos and people's demands for higher video resolution, existing digital video compression standards can save significant amounts of bandwidth. However, there is currently still a need to develop more advanced digital video compression technologies to alleviate bandwidth and traffic pressure during digital video transmission. SUMMARY
[004] The following is a summary of the matters detailed in this document. The summary is not intended to limit the scope of protection of the claims.
[005] One embodiment of the present disclosure provides an intraprediction method based on interpolation filtering, including:
[006] determine, based on a filtering window of a current block and a reconstructed pixel value Petition 870250073414, dated 08 / 20 / 2025, page 9 / 292 3 / 112 in a reconstruction area adjacent to the current block, a filtering coefficient used to perform interpolation filtering in the current block; and
[007] perform pixel-by-pixel prediction in pixels on the current block according to the filtering window and the filtering coefficient, to obtain a predicted block from the current block,
[008] where, when performing the prediction on a current pixel, the reference pixels neighboring the current pixel are determined based on the filtering window and the interpolation filtering is performed based on the pixel values of the reference pixels and the filtering coefficient, to obtain a predicted value of the current pixel.
[009] One embodiment of the present disclosure further provides a method for decoding video, including:
[0010] decode an interpolation filtering mode flag of a current block;
[0011] in a case where it is determined, based on the decoded interpolation filtering mode flag, to perform intraprediction on the current block using an interpolation filtering mode, determining a selected filtering window for the current block and a selected reconstruction area for the current block; and
[0012] perform intraprediction in the current block based on the determined filtering window and the determined reconstruction area using the intraprediction method based on interpolation filtering according to any of the embodiments of the present disclosure.
[0013] A modality of the present disclosure Petition 870250073414, dated 08 / 20 / 2025, page 10 / 292 4 / 112 additionally provides a video encoding method that includes:
[0014] perform intraprediction on a current block based on a plurality of intraprediction modes, where it is determined that an interpolation filtering mode can be used for the current block, intraprediction in interpolation filtering mode is performed on the current block using the intraprediction method according to any of the embodiments of the present disclosure; and
[0015] if it is determined, based on the rate distortion costs of the plurality of intraforecast modes, to perform intraforecasting on the current block using the interpolation filtering mode, encode an interpolation filtering mode flag for the current block, to indicate the execution of intraforecasting on the current block using the interpolation filtering mode.
[0016] One embodiment of the present disclosure further provides a bitstream, where the bitstream is generated according to the video encoding method according to any of the embodiments of the present disclosure.
[0017] One embodiment of the present disclosure further provides an intraprediction apparatus based on interpolation filtering, including a processor and a memory that stores a computer program, wherein when executing the computer program, the processor is able to implement the intraprediction method based on interpolation filtering according to any of the embodiments of the present disclosure.
[0018] One embodiment of the present disclosure further provides a video decoding apparatus, including a processor and a memory that stores a program of Petition 870250073414, dated 08 / 20 / 2025, page 11 / 292 5 / 112 computer, wherein, when executing the computer program, the processor is capable of implementing the video decoding method, as defined in any of the embodiments of this disclosure.
[0019] One embodiment of the present disclosure further provides a video encoding apparatus, including a processor and a memory that stores a computer program, wherein, when executing the computer program, the processor is capable of implementing the video encoding method as defined in any of the embodiments of the present disclosure.
[0020] One embodiment of the present disclosure further provides a video encoding and decoding system, including the video encoding apparatus according to any of the embodiments of the present disclosure and the video decoding apparatus according to any of the embodiments of the present disclosure.
[0021] One embodiment of the present disclosure further provides a non-transient, computer-readable storage medium. The computer-readable storage medium stores a computer program where, when executed by a processor, the computer program implements the intraprediction method based on interpolation filtering according to any of the embodiments of the present disclosure, or the video decoding method according to any of the embodiments of the present disclosure, or the video encoding method according to any of the embodiments of the present disclosure.
[0022] One embodiment of the present disclosure further provides a computer program product, including Petition 870250073414, dated 08 / 20 / 2025, page 12 / 292 6 / 112 a computer program wherein, when executed by a processor, the computer program is capable of implementing the intraprediction method based on interpolation filtering according to any of the embodiments of the present disclosure, the video decoding method according to any of the embodiments of the present disclosure, or the video encoding method according to any of the embodiments of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] The drawings are used to provide an understanding of the embodiments of the present disclosure and form a part of the descriptive report, and explain the technical solutions of the present disclosure together with the embodiments of the present disclosure, but do not constitute a limitation to the technical solutions of the present disclosure.
[0024] Figure 1A is a schematic diagram of an encoding and decoding system according to an embodiment of the present disclosure.
[0025] Figure 1B is a block diagram of an encoding terminal according to an embodiment of the present disclosure.
[0026] Figure 1C is a block diagram of a decoding terminal according to an embodiment of the present disclosure.
[0027] Figure 2 is a schematic diagram of an intraprediction mode according to an embodiment of the present disclosure.
[0028] Figure 3 is a flowchart of an intraprediction method based on interpolation filtering according to an embodiment of the present disclosure. Petition 870250073414, dated 08 / 20 / 2025, page 13 / 292 7 / 112
[0029] Figure 4A is a schematic diagram of a filtering window used in an embodiment of the present disclosure.
[0030] Figure 4B is a schematic diagram of an interpolation filter used in an embodiment of the present disclosure.
[0031] Figure 5A, Figure 5B and Figure 5C are respectively schematic diagrams of positional relationships between a filtering window, a current block and a reconstruction area when a current pixel is located in three different positions of the current block according to an embodiment of the present disclosure.
[0032] Figure 6A, Figure 6B and Figure 6C are, respectively, schematic diagrams of three different spatial position relationships between reference pixels and an actual pixel according to an embodiment of the present disclosure.
[0033] Figure 7A, Figure 7B and Figure 7C are, respectively, schematic diagrams of filtering windows in three different forms that correspond to Figure 6A, Figure 6B and Figure 6C according to an embodiment of the present disclosure.
[0034] Figure 8A, Figure 8B and Figure 8C are respectively schematic diagrams of cases in which a reconstruction area adjacent to an existing block is an upper reconstruction area, a left reconstruction area or an L-shaped reconstruction area according to an embodiment of the present disclosure.
[0035] Figure 9A and Figure 9B are, respectively, schematic diagrams of sample positions selected according to different steps to construct Petition 870250073414, dated 08 / 20 / 2025, page 14 / 292 8 / 112 a Wiener-Hopf equation according to an embodiment of the present disclosure.
[0036] Figure 10 is a schematic diagram of a portion of a reconstruction area used to obtain an average value when an L-shaped reconstruction area is used according to an embodiment of the present disclosure.
[0037] Figure 11 is a flowchart of a video encoding method according to an embodiment of the present disclosure.
[0038] Figure 12 is a flowchart of a video decoding method according to an embodiment of the present disclosure.
[0039] Figures 13A to 13F are, respectively, schematic diagrams of six different reconstruction areas used in one embodiment of the present disclosure.
[0040] Figure 14A and Figure 14B are, respectively, schematic diagrams of two different ways of performing ternary partitioning on a current block according to an embodiment of the present disclosure.
[0041] Figure 15 is a schematic structural diagram of an intraprediction apparatus based on interpolation filtering according to an embodiment of the present disclosure.
[0042] Figure 16A through Figure 16F are schematic diagrams of six different scanning methods for performing pixel-by-pixel prediction according to an embodiment of the present disclosure. DESCRIPTION OF MODALITIES
[0043] The present disclosure provides descriptions of Petition 870250073414, dated 08 / 20 / 2025, p. 15 / 292 9 / 112 a plurality of modalities, but the descriptions are illustrative rather than restrictive. Furthermore, it is evident to those of common skill in the technique that there may be more modalities and implementations within the scope of the modalities described in the present disclosure.
[0044] In the descriptions of the present disclosure, terms such as exemplary or for example are used to represent an example, an instance, or an illustration. Any embodiment described as exemplary or for example in this disclosure should not be construed as being more preferred or advantageous than other embodiments. In this descriptive report, the term "and / or" is a description of an association relationship between associated objects, and represents that there can be three relationships. For example, A and / or B can represent three cases: only A exists, both A and B exist, and only B exists. A plurality of means two or more of two. Furthermore, to clearly describe the technical solutions in the embodiments of the present disclosure, terms such as "first" and "second" are used to distinguish between the same items or similar items that essentially have the same function and use. Those skilled in the art may understand that terms such as "first" and "second" are not intended to limit a quantity or order of execution; and terms such as "first" and "second" do not indicate a definite difference. In this descriptive report, you include any one or more of the following: option 1, option 2, ...or including any one or more of option 1, option 2, ...means that any of the listed options is included, or any combination of a plurality of the listed options is included. For example, including Petition 870250073414, dated 08 / 20 / 2025, p. 16 / 292 10 / 112 any or more of the following: A or B or including any or more of A or B means that only A is included, or only B is included, or A and B are included. For another example, including any or more of the following: A, B, or C or including any or more of A, B, or C means that only A is included, or only B is included, or only C is included, or A and B are included, or B and C are included, or A, B, and C are included. The rest can be deduced by analogy if there are more options.
[0045] When representative exemplary embodiments are described, methods and / or processes may be presented as specific sequences of steps in the descriptive report. However, to the extent that the methods or processes are independent of the specific order of steps described herein, the methods or processes should not be limited to the steps in the specific order. As those of common skill in the art will understand that sequences of steps are also possible. Therefore, the specific order of steps described in the descriptive report should not be interpreted as a limitation on the claims. Furthermore, the claims for the methods and / or processes should not be limited to the steps performed in the order described. Skilled in the art can readily understand that the order of steps may vary while still falling within the spirit and scope of the embodiments of the present disclosure.
[0046] The intraprediction method based on interpolation filtering, the video encoding method and the video decoding method according to the embodiments of the present disclosure can be applied to various standards of Petition 870250073414, dated 08 / 20 / 2025, page 17 / 292 11 / 112 video encoding and decoding, 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 Pictures Experts Group), AOM (Alliance for Open Media), and JVET (Joint Video Experts Team) and their extensions, or any other customized standards.
[0047] Figure 1A is a block diagram of a video encoding and decoding system to which the embodiments of the present disclosure apply. As shown in Figure 1A, the system includes an encoding end 1 and a decoding end 2, wherein the encoding end 1 generates a bitstream, and the decoding end 2 decodes the bitstream. The decoding end 2 can receive the bitstream from the encoding end 1 via a link 3. The link 3 includes one or more media or devices that can transmit the bitstream from the encoding end 1 to the decoding end 2. In one example, the link 3 includes one or more communication media that cause the encoding end 1 to directly transmit the bitstream to the decoding end 2.The encoding end 1 modulates the bit stream according to a communication standard and transmits the modulated bit stream to the decoding end 2. One or more communication media may include wireless and / or wired communication media, which may... Petition 870250073414, dated 08 / 20 / 2025, page 18 / 292 12 / 112 constitute part of a packet network. In another example, the bit stream can alternatively be emitted from an output interface 15 to a storage device. The decoding terminal 2 can read the stored data from the storage device by streaming or downloading.
[0048] As shown in Figure 1A, the encoding side 1 includes a data source 11, a video encoding device 13, and the output interface 15. The data source 11 includes a video capture device (e.g., a camera), a file containing previously captured data, a feed interface configured to receive data from a content provider, a computer graphics system configured to generate data, or a combination of these sources. The video encoding device 13 may also be called a video encoder and is configured to encode data from the data source 11 and send the encoded data to the output interface 15. The output interface 15 may include at least one of a regulator, a modem, or a transmitter. The decoding terminal 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 or a modem.Input interface 21 can receive the bitstream via link 3 or from the storage device. Video decoding device 23 is also known as a video decoder and is configured to decode the received bitstream. Display device 25 is configured to display the decoded data. Display device 25 can be integrated into or separate from another device at the decoding end 2. Display device 25 is optional for the side of... Petition 870250073414, dated 08 / 20 / 2025, page 19 / 292 13 / 112 decoding. In another example, the decoding side may include another appliance or device to which the decoded data is applied.
[0049] Figure 1B is a block diagram of an exemplary video encoding apparatus to which the embodiments of the present disclosure apply. As shown in Figure 1B, the video encoding apparatus 10 includes the following units.
[0050] A partitioning unit 101 is configured to work with a prediction unit 100, to partition received video data into slices, coding tree units (CTUs), or other larger units. The received video data can be a video sequence that includes video frames, such as I-frames, P-frames, or B-frames.
[0051] Prediction unit 100 is configured to partition a CTU into coding units (CU: Coding Unit) and perform intra-prediction coding or inter-prediction coding on the CUs. When intra- and inter-prediction is performed on a CU, the CU can be partitioned into one or more prediction units (PU: prediction unit).
[0052] The prediction unit 100 includes an interprediction unit 121 and an intraprediction unit 126.
[0053] Interprediction unit 121 is configured to perform forecasting between a PU, to generate predicted data for the PU. The predicted data includes a predicted block for the PU, motion information from the PU, and various syntax elements. Interprediction unit 121 may include a motion estimation unit (ME: motion). Petition 870250073414, dated 08 / 20 / 2025, page 20 / 292 14 / 112 estimation) and a motion compensation (MC) unit. The motion estimation unit can be configured to perform motion estimation, to generate a motion vector, and the motion compensation unit can be configured to obtain or generate a predicted block according to the motion vector.
[0054] Intraforecasting unit 126 is configured to perform intraforecasting on a PU, to generate forecasted data for the PU. The forecasted data for the PU may include a forecasted block for the PU and various syntax elements.
[0055] A residual generation unit 102 (represented by a circle with a plus symbol inside behind the partitioning unit 101 in Figure 1B) is configured to generate a residual block for a CU by subtracting, from an original CU block, the block predicted for the PU obtained by partitioning the CU.
[0056] A transformation processing unit 104 is configured to partition the CU into one or more transform units (TU: Transform Unit). The partitioning of forecast units may differ from that of transform units. A residual block associated with a TU is a sub-block obtained by partitioning the residual block for the CU. A coefficient block associated with a TU is generated by applying one or more transformations to a residual block associated with the TU.
[0057] A quantization unit 106 is configured to quantize a coefficient in the coefficient block based on a quantizer parameter and can change the degree of quantization of the coefficient block. Petition 870250073414, dated 08 / 20 / 2025, page 21 / 292 15 / 112 adjusting the quantizer parameter (QP: Quantizer Parameter).
[0058] A dequantization unit 108 and an inverse transform unit 110 are configured respectively to apply dequantization and inverse transform to the coefficient block, to obtain a reconstructed residual block associated with the TU.
[0059] A reconstruction unit 112 (represented by a circle with a plus symbol inside the inverse transform processing unit 110 in Figure 1B) is configured to add the reconstructed residual block and the predicted block generated by the prediction unit 100, to generate a reconstructed image.
[0060] A filter unit 113 is configured to perform in-loop filtering on the reconstructed image.
[0061] A temporary decoded image storage 114 is configured to store the reconstructed image obtained after filtering in the loop. The intraprediction unit 126 can extract a reference image from a block adjacent to the current block of the temporary decoded image storage 114, to perform intraprediction. The interprediction unit 121 can perform interprediction on a PU of an image from a current frame using a reference image from a previous frame of temporary storage in the temporary decoded image storage 114.
[0062] An entropy encoding unit 115 is configured to perform an entropy encoding operation on received data (such as a syntax element, a quantized coefficient block, and motion information) to generate a video bitstream. Petition 870250073414, dated 08 / 20 / 2025, page 22 / 292 16 / 112
[0063] In another example, the video encoding apparatus 10 may include more or fewer function components than those shown in this example, or different function components than those shown in this example. For example, the transform processing unit 104 and the inverse transform processing unit 110 may not be included.
[0064] Figure 1C is a block diagram of an exemplary video decoding apparatus to which the embodiments of the present disclosure are applicable. As shown in Figure 1C, the video decoding apparatus 15 includes the following units.
[0065] An entropy decoding unit 150 is configured to perform entropy decoding on a received encoded video bitstream, to extract a syntax element, a quantized coefficient block, motion information from a PU, and the like. A prediction unit 152, a dequantization unit 154, an inverse transform processing unit 156, a reconstruction unit 158, and a filter unit 159 can perform corresponding operations based on the syntax element extracted from the bitstream.
[0066] The dequantization unit 154 is configured to perform dequantization on a quantized coefficient block associated with a TU.
[0067] The inverse transform processing unit 156 is configured to apply one or more inverse transforms to an inverse quantized coefficient block, to generate a reconstructed residual block for the TU.
[0068] Forecast unit 152 includes a Petition 870250073414, dated 08 / 20 / 2025, page 23 / 292 17 / 112 interprediction unit 162 and an intraprediction unit 164. If intraprediction encoding is used for a current block, the intraprediction unit 164 determines an intraprediction mode for the PU based on a decoded syntax element from the bitstream and performs intraprediction based on reconstructed reference information from a block neighboring the current block obtained from a decoded temporary image storage 160. If interprediction encoding is used for a current block, the interprediction unit 162 determines a reference block from the current block based on the motion information of the current block and a corresponding syntax element, and performs interprediction on the reference block obtained from the decoded temporary image storage 160.
[0069] Reconstruction unit 158 (represented by a circle with a plus symbol inside inverse transform processing unit 155 in Figure 1C) is configured to obtain a reconstructed image based on the reconstructed residual block associated with the TU and the predicted block for the current block that is generated by prediction unit 152 performing intraprediction or interprediction.
[0070] A 159 filter unit is configured to perform in-loop filtering on the reconstructed image.
[0071] Temporary decoded image storage 160 is configured to store the reconstructed image obtained after in-circuit filtering as the reference image for subsequent motion compensation, intraprediction, interprediction and the like, and can also produce the reconstructed image obtained after filtering as Petition 870250073414, dated 08 / 20 / 2025, page 24 / 292 18 / 112 video data decoded for display on a display device.
[0072] In another embodiment, the video decoding apparatus 15 may include more, fewer, or different functional components. For example, in some cases, the inverse transform processing unit 155 may not be included.
[0073] Using the video encoding and video decoding apparatus described above, the following basic encoding and decoding processes can be performed. On the encoding side, an image frame is partitioned into blocks, intraprediction, interprediction or another algorithm is applied to a current block to generate a predicted block for the current block, a residual block is obtained by subtracting the predicted block from an original block from the current block, the residual block is transformed and quantized to obtain a quantized coefficient, and the quantized coefficient is encoded into entropy to generate a bitstream.At the end of the decoding, intra- or interprediction is performed on the current block to generate a predicted block for the current block. Then, the quantized coefficient obtained by decoding the bitstream is dequantized and inversely transformed to obtain a residual block. The predicted block and the residual block are added to obtain a reconstructed block. The reconstructed blocks form a reconstructed image, and loop filtering is performed on the reconstructed image based on images or blocks to obtain a decoded image. The encoding side performs operations similar to those of the decoding side to obtain the decoded image, which can also be called a decoded image. Petition 870250073414, dated 08 / 20 / 2025, page 25 / 292 19 / 112 Reconstructed image obtained after in-circuit filtering. The reconstructed image obtained after in-circuit filtering can be used as a reference frame to perform inter-frame prediction in a subsequent frame. Block partitioning, prediction, transform, quantization, entropy coding, in-circuit filtering, and other mode and parameter information that is determined at the encoding end can be written to the bitstream. The decoding end determines, by decoding the bitstream or parsing the specified information, the block partitioning, prediction, transform, quantization, entropy coding, in-circuit filtering, and other mode and parameter information that is used by the encoding end, thus ensuring that the decoded image obtained at the encoding end is the same as the decoded image obtained at the decoding end.
[0074] Although a block-based hybrid coding structure is used as an example above, the embodiments of the present disclosure are not limited to it. With the development of technologies, one or more modules in the structure and one or more steps in the process may be replaced or optimized. The embodiments of the present disclosure are related to, but not limited to, the intraprediction units mentioned at the end of the coding and at the end of the decoding and the corresponding intraprediction methods.
[0075] In this descriptive report, a current block (current block) can be a current encoding unit (CU) in a current image, or it can be multiple encoding units. Petition 870250073414, dated 08 / 20 / 2025, page 26 / 292 20 / 112 at the block level, such as a coding tree unit (CTU), a current forecast unit (PU), a current PU, or a sub-block obtained by partitioning a current CU. In an intraforecasting process, a current block may also be called a block to be forecasted or a current block to be predicted.
[0076] During intraprediction at the end of encoding, a current block is typically predicted using multiple angular and non-angular modes to obtain a predicted block. Based on the rate distortion information calculated according to the predicted block and an original block, an optimal intraprediction mode is selected for the current block, and information (e.g., an index) about the intraprediction mode is encoded and transmitted to the decoding end via a bitstream. The intraprediction mode selected for the current block is determined by the decoding end via decoding, and intraprediction is performed on the current block in intraprediction mode. After the development of successive generations of digital video encoding and decoding standards, non-angular modes remain relatively stable and include an average value mode (i.e., a DC mode), a planar mode (i.e., a planar mode), and the like.The number of angular modes increases with the evolution of digital video encoding and decoding standards. The international digital video coding standard H series is used as an example. An H.264 / AVC standard has only eight conventional angular prediction modes and one non-conventional angular prediction mode, while H.265 / HEVC is extended to 33 conventional angular prediction modes and two non-conventional angular prediction modes. Figure 2 shows the modes. Petition 870250073414, dated 08 / 20 / 2025, page 27 / 292 21 / 112 conventional intraprediction modes in H.266 / VVC, including planar mode, DC mode, and 65 angular modes. DC mode is applicable to a large flat area, and a predicted area value is obtained by averaging reference pixels to the left of the area and / or reference pixels above the area. Planar mode is applicable to pixel gradients, i.e., an area where a pixel value changes slowly. The coding performance achieved by the current intraprediction modes still needs improvement.
[0077] One embodiment of the present disclosure provides an intraprediction method based on interpolation filtering. As shown in Figure 3, the method includes the following steps.
[0078] Step S110: Determine, based on a filtering window of a current block and a reconstructed pixel value in a reconstruction area adjacent to the current block, a filtering coefficient used to perform interpolation filtering on the current block.
[0079] Step S120: Perform pixel-by-pixel prediction on the current block according to the filtering window and filtering coefficient, to obtain a predicted block from the current block.
[0080] When performing the prediction on a current pixel, the reference pixels neighboring the current pixel are determined based on the filtering window, and interpolation filtering is performed based on the pixel values of the reference pixels and the filtering coefficient, to obtain a predicted value of the current pixel.
[0081] In this embodiment of the present disclosure, using the spatial redundancy of a current block and an area of Petition 870250073414, dated 08 / 20 / 2025, page 28 / 292 22 / 112 reconstruction adjacent to the current block, a filtering coefficient obtained is applied pixel by pixel to the current block. Thus, a predicted value of a current pixel is obtained by interpolation filtering according to a reconstructed value or a predicted value of an adjacent pixel, which is repeated until the predicted values of all pixels of the current block are obtained. That is, a predicted block of the current block is obtained.
[0082] In this descriptive report, the intraprediction method according to this embodiment of the present disclosure is referred to as intraprediction in an interpolation filtering mode and is used as an optional intraprediction mode during video encoding and decoding, thereby improving encoding performance.
[0083] A filter used for interpolation filtering in this embodiment of the present disclosure is referred to as an interpolation filter (filter for short). A filtering window and a filtering coefficient used during interpolation filtering are called the filtering window and a filtering coefficient used by the interpolation filter. A shape and a number of touches of the filtering window used by the interpolation filter are also called the shape and a number of touches of the interpolation filter.
[0084] The filtering window can be of any shape and dimension larger than three pixels. When the filtering window is relatively small, the filter has a small number of filtering coefficients (coefficients for short) and low prediction complexity, but a number of reference pixels are used for prediction. Petition 870250073414, dated 08 / 20 / 2025, page 29 / 292 23 / 112 small and a forecast error can be relatively large. When the filtering window is relatively large, the filter has a large number of coefficients and high forecast complexity, and a forecast error can become smaller, but an excessively large filtering window can also cause overfitting. In the present disclosure, the shape and size of the filtering window are not limited.
[0085] In one example, a 4x4 filtering window shown in Figure 4A is used. The filtering window includes a current position and 15 neighboring positions, i.e., P0 to P14. When the current position is aligned with the position of a current pixel to be predicted, 15 pixels in P0 to P14 are 15 reference pixels neighboring the current pixel. When a predicted value of the current pixel is calculated in an interpolation filtering manner, the pixel values of the 15 reference pixels need to be multiplied respectively by the corresponding filtering coefficients, i.e., C0 to C14. Figure 4B shows a 15-touch interpolation filter. A group of filtering coefficients used by this filter includes 15 filtering coefficients that are in a one-to-one correspondence with 15 neighboring positions in the filtering window shown in Figure 4A. The group of filtering coefficients is used when interpolation filtering is performed on each pixel in the current block.
[0086] In addition to a rectangular filtering window, a filtering window of a different shape and with a different number of neighboring positions may alternatively be used. In an exemplary embodiment of the present disclosure, the filtering window of the current block is determined based on a block parameter of the current block, where the Petition 870250073414, dated 08 / 20 / 2025, page 30 / 292 The 24 / 112 block parameter includes at least one shape, dimension, or position, and the dimension is, for example, a width or a height. For example, a 4*4 filter window is used for an 8*8 current block, and a 5*5 filter window is used for a 16*16 current block.
[0087] In an exemplary embodiment of the present disclosure, for the current block, filters using a plurality of tap quantities can be used for prediction, to obtain different predicted values. Then, an optimal filter is selected from among the filters to participate in rate distortion optimization, to obtain better coding performance.
[0088] When performing pixel-by-pixel prediction on the current block, since the current pixels to be predicted are located in different positions within the current block, the reference pixels adjacent to the current pixels can be pixels in a reconstruction area or they can be pixels within the current block. As shown in Figure 5A, when the current pixel to be predicted is located in an upper-left corner of the current block, after the current pixel is aligned with a current position in the filtering window, the reference pixels adjacent to the current pixels are all reconstructed pixels in the reconstruction area.As shown in the example in Figure 5B, when the current pixel to be predicted is located in a position in the first row of the current block, except in the upper left corner (in the first row and a second column in Figure 5B), after the current pixel is aligned with a current position in the filtering window, the reference pixels adjacent to the current pixels will include not only reconstructed pixels in the reconstruction area, but also a pixel. Petition 870250073414, dated 08 / 20 / 2025, page 31 / 292 25 / 112 predicted in the current block (for example, the pixel in the upper left corner of the current block), and this can be guaranteed, by a pixel-by-pixel prediction sequence, that the reference pixels are already predicted at this point. As shown in the example in Figure 5C, when the current pixel to be predicted is located in a fourth row and a fourth column within the current block, after the current pixel is aligned with a current position of the 4x4 filtering window, the reference pixels neighboring the current pixel are all predicted pixels in the current block.
[0089] In an exemplary embodiment of the present disclosure, the reference pixels include at least one of the following: a reconstructed pixel in the reconstruction area adjacent to the current block or a predicted pixel in the current block; and
[0090] in a case where the reference pixels are all reconstructed pixels, the values of the reference pixels refer to the reconstructed values of the reference pixels; or
[0091] in a case where the reference pixels are all predicted pixels, the reference pixel values refer to the predicted values of the reference pixels; or
[0092] in a case where the reference pixels include a reconstructed pixel and a predicted pixel, the reference pixel values include a reconstructed value of the reconstructed pixel in the reference pixels and a predicted value of the predicted pixel in the reference pixels.
[0093] In this mode, reconstructed pixel values and / or predicted pixel values are used as inputs to an interpolation filter, to calculate the predicted pixel values. Petition 870250073414, dated 08 / 20 / 2025, p. 32 / 292 26 / 112 current. To ensure that the reference pixels in a current block have predicted values, the prediction based on interpolation filtering needs to be performed pixel by pixel in a specific sequence.
[0094] Different filter windows (at least one of which is different in shape or dimension) can be defined for different current blocks. For the same current block, a plurality of different filter windows can be defined. A larger filter window indicates a greater number of neighboring positions in the filter window, a greater number of corresponding filter coefficients, and more adjacent spatial information that can be referenced for interpolation. Filters in different shapes can obtain adjacent spatial information from different directions for interpolation.
[0095] The filtering window can be classified into three types, as shown in Figures 6A to 6C. In Figures 6A to 6C, a rectangle with a cross represents a current pixel to be predicted, and a sector area represents a sector area in which neighboring positions in a filtering window are located, i.e., a sector area in which the reference pixels are located when a current position in the filtering window is aligned with a position of the current pixel. The inputs of an interpolation filter are reconstructed values or predicted values of pixels in directions bounded by the sector area. In the sector area shown in Figure 6A, the reference pixels are spatially located in an area directly above the current pixel, an area in the upper left corner of the current pixel, and an area directly to the left of the current pixel, and there is no Petition 870250073414, dated 08 / 20 / 2025, page 33 / 292 27 / 112 reference pixels in the lower left or upper right direction of the current pixel. In the sector area shown in the Figure In Figure 6B, the reference pixels are spatially located in an area directly above the current pixel, an area in the upper-left corner of the current pixel, an area directly to the left of the current pixel, and an area in the upper-right corner of the current pixel, and there is no reference pixel in the lower-left direction of the current pixel. In the sector area shown in Figure 6C, the reference pixels are spatially located in an area directly above the current pixel, an area in the upper-left corner of the current pixel, an area directly to the left of the current pixel, and an area in the lower-left corner of the current pixel, and there is no reference pixel in an upper-right direction of the current pixel.
[0096] In an exemplary embodiment of the present disclosure, corresponding to the three cases shown in Figures 6A to 6C, the filtering window has the following three types:
[0097] a plurality of neighboring positions in the filtering window is located directly above the current position, in the upper left corner of the current position, or to the left of the current position, where an example of such a filtering window is shown in Figure 7A and corresponds to Figure 6A;
[0098] a plurality of neighboring positions in the filtering window is located directly above the current position, in the upper left corner of the current position, to the left of the current position and in the upper right corner of the current position, where an example of such a filtering window is shown in Figure 7B and corresponds to Figure 6B; and
[0099] a plurality of neighboring positions in the filtering window is located directly above the Petition 870250073414, dated 08 / 20 / 2025, page 34 / 292 28 / 112 current position, in the upper left corner of the current position, to the left of the current position and in the lower left corner of the current position, where an example of such a filtering window is shown in Figure 7C and corresponds to Figure 6C.
[00100] In Figure 7A through Figure 7C, a small square with diagonal lines represents the current position, and other small squares represent neighboring positions. In this embodiment, the current block filtering window is rectangular or L-shaped and includes a current position corresponding to the current pixel and at least two neighboring positions corresponding to the reference pixels.
[00101] In different types of filtering windows, to ensure that the reference pixels in the current block used in pixel-by-pixel prediction are all predicted pixels, different prediction sequences can be selected.
[00102] In an example of this modality, the prediction sequences for different filtering windows are as follows:
[00103] In a case where the plurality of neighboring positions in the filtering window is located directly above the current position, in the upper left corner of the current position, and to the left of the current position, performing pixel-by-pixel prediction on the pixels of the current block includes: performing pixel-by-pixel prediction on the current block in a sequence from left to right and then from top to bottom, or in a sequence from top to bottom and then from left to right, or in a sequence in the diagonal direction, or in a zigzag sequence; or
[00104] In a case where there is a plurality of positions Petition 870250073414, dated 08 / 20 / 2025, p. 35 / 292 29 / 112 neighbors in the filtering window are located directly above the current position, in the upper left corner of the current position, to the left of the current position, and in the lower left corner of the current position. Performing pixel-by-pixel prediction on the pixels of the current block includes: performing pixel-by-pixel prediction on the current block in a top-to-bottom sequence and then from left to right; or
[00105] In a case where the plurality of neighboring positions in the filtering window is located directly above the current position, in the upper left corner of the current position, to the left of the current position, and in the upper right corner of the current position, performing pixel-by-pixel prediction on the pixels of the current block includes: performing pixel-by-pixel prediction on the current block in a sequence from left to right and then from top to bottom.
[00106] The filtering window shown in Figure 4A is used as an example. A sequence from left to right and then from top to right is P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14, a sequence from top to right and then from left to right is P0,P4,P8,P12,P1,P5,P9,P13,P2,P6,P10,P14,P3,P7,P11, a sequence in a diagonal direction 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, and a zigzag sequence is an alternating sequence. Scanning from left to right is also called horizontal scanning, as shown in Figure 16A, and scanning from top to bottom is also called vertical scanning, as shown in Figure 16B. The two forms of diagonal scanning are shown in Figure 16C and Figure 16D. Petition 870250073414, dated 08 / 20 / 2025, page 36 / 292 30 / 112 and the two zigzag scanning methods are shown in Figure 16E and Figure 16F.
[00107] When the previous filtering windows are used, the inputs to a filter can come from reconstructed pixel values and / or predicted pixel values in a portion in the upper left corner of a current pixel to be predicted (i.e., a current position to be interpolated), a portion directly above the current pixel to be predicted, a portion in the upper right corner of the current pixel to be predicted, a portion directly to the left of the current pixel to be predicted, and a portion in the lower left corner of the current pixel to be predicted. When performing pixel-by-pixel prediction on a current block, a plurality of filtering windows in different shapes and / or dimensions can be used for trials, thus improving prediction performance.
[00108] In addition to the filtering windows, the shape and size of a reconstruction area also affect a prediction result.
[00109] In an exemplary embodiment of the present disclosure, the reconstruction area adjacent to the existing block includes any one or more of the following areas adjacent to the existing block:
[00110] an upper reconstruction area above the current block, where each upper reconstruction area includes one area or two consecutive areas or three consecutive areas between an area in the upper left corner of the current block, an area directly above the current block and an area in the upper right corner of the current block;
[00111] a reconstruction area to the left of the current block, where each reconstruction area to the left includes Petition 870250073414, dated 08 / 20 / 2025, page 37 / 292 31 / 112 an area or two consecutive areas or three consecutive areas between an area in the upper left corner of the current block, an area directly to the left of the current block, and an area in the lower left corner of the current block; or
[00112] an L-shaped reconstruction area above and to the left of the current block, where each L-shaped reconstruction area includes an area directly above the current block, an area in the upper left corner of the current block and an area directly to the left of the current block, or includes one or two of an area directly above the current block, an area in the upper left corner of the current block, an area directly to the left of the current block, an area in the upper right corner of the current block or an area in the lower left corner of the current block.
[00113] In this descriptive report, the upper reconstruction area, left reconstruction area, and L-shaped reconstruction area are referred to as reconstruction area types.
[00114] As shown in Figure 8A, a reconstruction area adjacent to a current block is a top reconstruction area, including an area directly above the current block, an area in the upper-left corner of the current block, and an area in the upper-right corner of the current block. Alternatively, the top reconstruction area may include only the area directly above the current block, or only the area in the upper-left corner of the current block, or only the area in the upper-right corner of the current block, or only the area directly above the current block and the area in the upper-right corner of the current block, or only the area directly above the current block and the area in the upper-left corner of the current block. Petition 870250073414, dated 08 / 20 / 2025, page 38 / 292 32 / 112 current block. In this modality, the upper reconstruction area is a continuous area.
[00115] As shown in Figure 8B, a reconstruction area adjacent to a current block is a left reconstruction area, including an area in the upper-left corner of the current block, an area directly to the left of the current block, and an area in the lower-left corner of the current block. Alternatively, the left reconstruction area may include only the area in the upper-left corner of the current block, or only the area directly to the left of the current block, or only the area in the lower-left corner of the current block, or only the area directly to the left of the current block and the area in the upper-left corner of the current block, or only the area directly to the left of the current block and the area in the lower-left corner of the current block. In this embodiment, the left reconstruction area is a continuous area.
[00116] As shown in Figure 8C, a reconstruction area adjacent to a current block is an L-shaped reconstruction area, including an area directly above the current block, an area in the upper-left corner of the current block, an area directly to the left of the current block, an area in the upper-right corner of the current block, and an area in the lower-left corner of the current block. The position of each area relative to the current block is defined in Figure 8C. Alternatively, the L-shaped reconstruction area may include only the area directly above the current block, the area in the upper-left corner of the current block, and the area directly to the left of the current block, or it may include only the area directly above the current block, the area in the upper-left corner of the current block, the area directly to the left of the current block, and Petition 870250073414, dated 08 / 20 / 2025, page 39 / 292 33 / 112 the area in the upper right corner of the current block, or include only the area directly above the current block, the area in the upper left corner of the current block, the area directly to the left of the current block, and the area in the lower left corner of the current block. In this mode, the L-shaped reconstruction area is a continuous area.
[00117] In addition to a plurality of types, a dimension of the reconstruction area adjacent to the current block can also be determined based on a dimension of the current block (i.e., it can be a dependent variable that uses the dimension of the current block as an independent variable). As shown in Figures 8A to 8C, a current block is a rectangular current block, a current block width is M, and a current block height is N, where M and N can be represented by quantities of pixels, for example, 8*8, 8x16, or 4x8. Figure 8C is used as an example. The total width and total height of the part in the upper left corner of the current block, the part directly above the current block, and the part in the upper right corner of the current block that are in the L-shaped reconstruction area adjacent to the current block are respectively 2M+L and K; and a total width and total height of a portion directly to the left of the current block and a portion in the lower left corner of the current block that are in the L-shaped reconstruction area are respectively L and 2N. After the width and height of the current block are determined, the reconstruction area can be determined uniquely with reference to the K and L presets, where K represents a number of rows of the reconstruction area above the current block and L represents a number of columns of the reconstruction area to the left of the current block. Similar to Figure Petition 870250073414, dated 08 / 20 / 2025, p. 40 / 292 34 / 112 8C, a dimension of the upper reconstruction area in Figure 8A and a dimension of the left reconstruction area in Figure 8B also changes with a dimension of the current block, and a corresponding reconstruction area can be determined exclusively with reference to the predefined K and L.
[00118] In an exemplary embodiment of the present revelation, the reconstruction area adjacent to the current block comprises only one reconstruction area. Alternatively, the reconstruction area adjacent to the current block comprises a plurality of reconstruction areas, and the reconstruction areas differ from one another in at least one type, width, height, or position.
[00119] In this descriptive report, reconstruction area types include an upper reconstruction area, a left reconstruction area, and an L-shaped reconstruction area, and a reconstruction area can be an upper reconstruction area, a left reconstruction area, or an L-shaped reconstruction area.
[00120] In this embodiment of the present disclosure, for actual blocks in the same dimension, a plurality of reconstruction area types or a plurality of reconstruction areas of the same type but in different dimensions can be defined. The L-shaped reconstruction area shown in Figure 8A is used as an example. By defining K = L = 8, a reconstruction area adjacent to the actual block is obtained; or by defining K = L = 13, another reconstruction area adjacent to the actual block is obtained. If the three reconstruction area types shown in Figures 8A to 8C are defined for the same actual block, two reconstruction areas are obtained for each reconstruction area type by defining K = L = 8 and K = L Petition 870250073414, dated 08 / 20 / 2025, page 41 / 292 35 / 112 = 13, a total of six reconstruction areas adjacent to the current block can be obtained. In another example, the values of K and L can be other values, for example, they can be associated with a dimension of a current block, so that the values of K and L of current blocks of different sizes are different, where K and L are integers greater than 0. In another example, more than three sets of values can be defined for the combination of K and L, to obtain more different reconstruction areas.
[00121] A quantity (corresponding to K in Figure 10) of rows that are in a reconstruction area adjacent to a current block and are above the current block, and a quantity (corresponding to L in Figure 10) of columns that are in the reconstruction area adjacent to the current block and are to the left of the current block can also be determined based on the width of the current block and / or the height of the current block.
[00122] For a current block, it is assumed that two sets of values are defined for the combination of K and L, namely, K1 and L1, and K2 and L2. Then:
[00123] In one example, K1 equals L1, K1 equals L2, and the values of K1 and K2 correspond to a smaller value in the width of a current block and in the height of the current block, that is, minWh = min(width,height). For example, K1 equals twice minWh and K2 equals minWh.
[00124] In one example, K1 and K2 are associated with the width of a current block, and L1 and L2 are associated with the height of the current block. For example, K1 is equal to twice the width, K2 is equal to the width, L1 is equal to twice the height, and L2 is equal to the height.
[00125] In one example, K1 and K2 are associated with Petition 870250073414, dated 08 / 20 / 2025, p. 42 / 292 36 / 112 is the height of a current block, and L1 and L2 are associated with the width of the current block. For example, K1 is equal to twice the height, K2 is equal to the height, L1 is equal to twice the width, and L2 is equal to the width.
[00126] In other examples, K1, K2, L1, and L2 are associated with a length and height of an actual block, but are not multiples of the length and height.
[00127] In an exemplary embodiment of the present disclosure, there is one or more filtering windows for a current block and there is one or more reconstruction areas adjacent to the current block.
[00128] Determining, based on the filtering window of the current block and the reconstructed pixel value in the reconstruction area adjacent to the current block, the filtering coefficient used to perform interpolation filtering on the current block includes: for each combination of a filtering window of the current block and a reconstruction area adjacent to the current block, determining a group of filtering coefficients corresponding to the combination based on the filtering window in the combination and a reconstructed pixel value in the reconstruction area in the combination.
[00129] Performing pixel-by-pixel prediction on the pixels of the current block according to the filtering window and the filtering coefficient, to obtain the predicted block of the current block includes: for each combination of a filtering window of the current block and a reconstruction area adjacent to the current block, perform pixel-by-pixel prediction on the pixels of the current block according to the filtering window in the combination and a group of filtering coefficients corresponding to the combination, to obtain a predicted block of the current block. Petition 870250073414, dated 08 / 20 / 2025, page 43 / 292 37 / 112
[00130] It is easy to understand that when the filtering windows are the same, but the reconstruction areas are different, the reconstructed values used to obtain the filtering coefficients are different, and therefore the filtering coefficients obtained are different. Furthermore, when the reconstruction areas are the same, but the filtering windows are different, the reconstructed values used to obtain the filtering coefficients are also different, and therefore the filtering coefficients obtained are also different. For a combination of a filtering window of a current block and a reconstruction area adjacent to the current block (each combination includes a filtering window and a reconstruction area), a group of filtering coefficients can be obtained through calculation.If there are multiple combinations of a filtering window of a current block and a reconstruction area adjacent to the current block, multiple groups of filtering coefficients can be obtained through calculation. Each combination can be used as a submode of an interpolation filtering mode. For example, when a filtering window as shown in Figure 4A and six reconstruction areas (including the three types shown in Figures 8A to 8C, where each type includes two reconstruction areas in different dimensions) are used, six groups of filtering coefficients can be obtained through calculation. When performing intraprediction using the interpolation filtering mode, there are six submodes. Predicted blocks of a current block obtained through prediction according to the six submodes are different.
[00131] In an example of this mode, for each of the filtering windows of the current block, the window of Petition 870250073414, dated 08 / 20 / 2025, p. 44 / 292 38 / 112 filtering includes a current position and a plurality of neighboring positions, and the group of filtering coefficients corresponding to a combination including the filtering window includes a plurality of filtering coefficients that are in a one-to-one correspondence with the plurality of neighboring positions.
[00132] Performing pixel-by-pixel prediction on the pixels of the current block according to the filtering window in the combination and the group of filtering coefficients corresponding to the combination includes: aligning the current pixel with a current position in the filtering window in the combination, determining pixels in all neighboring positions of the filtering window in the combination as the reference pixels neighboring the current pixel, and performing interpolation filtering based on the pixel values of the reference pixels and the group of filtering coefficients corresponding to the combination, to obtain the predicted value of the current pixel.
[00133] Figure 4A is used as an example. When a current pixel position is aligned with a current position of a filtering window, the pixels in 15 neighboring positions, i.e., P0 to P14, are reference pixels neighboring the current pixel.
[00134] In an exemplary embodiment of the present disclosure, the determination of the group of filtering coefficients corresponding to the combination based on the filtering window in the combination and the reconstructed pixel value in the reconstruction area in the combination includes:
[00135] place the filtering window in the combination at M different positions that reconstruct pixels in the reconstruction area in the combination, where M > 1; Petition 870250073414, dated 08 / 20 / 2025, page 45 / 292 39 / 112
[00136] construct a Wiener-Hopf equation using M current positions in the filtering window at M different positions as sample positions and using reconstructed pixel values at all neighboring positions in the filtering window at M different positions as inputs; and
[00137] solve the Wiener-Hopf equation with the aim of minimizing errors between the predicted values and the reconstructed values of the actual positions M, in order to obtain the group of filtering coefficients corresponding to the combination.
[00138] In this mode, when M is greater than 1, the filtering window at different positions M can be determined by moving a filtering window at an initial position according to a predefined step and in a predefined direction.
[00139] In this mode, the reconstruction areas of different current blocks are different. Therefore, the filtering coefficients obtained through calculation are generally different. That is, different current blocks adaptively use their respective filtering coefficients.
[00140] Next, we describe how to construct a Wiener-Hopf equation. When constructing a Wiener-Hopf equation, a plurality of sample positions needs to be determined, and the plurality of sample positions is part of a reconstruction area of a current block. As shown in Figure 9A, a 4x4 filtering window is assumed to be used. A current position is located in a lower right corner of the filtering window, and when the filtering window is placed in positions M of a reconstruction area, the current position of the filtering window at each position is a sample position. Squares with crosses in Petition 870250073414, dated 08 / 20 / 2025, page 46 / 292 40 / 112 Figure 9A shows sample positions, and the interval in which these sample positions are located forms part of a reconstruction area. The reconstruction area in Figure 9A includes six rows above the current block and six columns to the left of the current block, and the 4^4 filtering window needs to be completely placed within the reconstruction area. Therefore, the interval in which the sample positions are located is a continuous area that includes two rows above the current block and two columns to the left of the current block. In Figure 9A, the filtering window is placed at every possible position in the reconstruction area, but alternatively, some of the positions can be selected to reduce the amount of computation. As shown in Figure 9B, some of the sample positions in Figure 9A are selected to construct the Wiener-Hopf equation.A sample position step in a width direction is 2, a sample position step in a height direction is 1, and a sample position range is a set of discrete positions. Furthermore, when the positions of the current blocks are different, the reconstructed pixels may not exist in a portion of a reconstruction area. In this example, by placing the filter window in the combination within the reconstruction area, the position is selected such that the pixels covered by the filter window in M different positions are all reconstructed pixels. However, in another example, the pixel values of some pixels covered by the filter window in the different M positions can alternatively be obtained through padding.
[00141] A sample position is denoted as r, and an interval in which the sample positions are located Petition 870250073414, dated 08 / 20 / 2025, page 47 / 292 41 / 112 is denoted as ^. When the filtering window in the combination is placed in M different positions that have reconstructed pixels in the reconstruction area in the combination, there are M sample positions in the interval ^. If the coordinates of r are indicated as (x,y), each sample position in the interval ^ will have a group of (x,y) values. For each sample position r, a neighboring position in the filtering window in which the sample position is located can be represented as r+p0,r+p1,...,r+pN-1, {p0, P1,—, PN-1} are offsets relative to the sample positions and can also be considered as indices of a plurality of neighboring positions in a filtering window with the sample position r as the current position, where N is a number of neighboring positions in the filtering window. In the examples shown in Figure 4A and Figure 4B, N = 15. t[r + p0], t[r + p1] and t[r + pN-1] are used to represent, respectively, reconstructed pixel values at N neighboring positions, and these reconstructed values are inputs to solve the Wiener-Hopf equation. t[r] represents a reconstructed value of a pixel at sample position r, and a group of filtering coefficients to be solved is denoted as c = [c0, c1, —, cN-1]T, where c0 is a filtering coefficient corresponding to a position p0, c1 is a filtering coefficient corresponding to a position p1, and the rest can be deduced by analogy.
[00142] The Wiener-Hopf equation constructed is as follows: Petition 870250073414, dated 08 / 20 / 2025, p. 48 / 292 42 / 112 ^t[r + p0]t[r + p0] - ^t[r + pN-i]t[r + p0] imi iWi Σ t[r + po]t[r + Pn-i] - ^ t[r + PN-i]t[r + Pn-i] -ll^ii iwi m L Cn-iJ Σ t[r]t[r + po] |W| Σ t[r]t[r + Pn-i] imi
[00143] The N*N matrix on the left side of the previous formula is an autocorrelation coefficient matrix of the Wiener-Hopf equation, where Σ||κ|| t[r + p0]t[r + p0] represents the accumulation of t[r + p0]t[r + p0] corresponding to all sample positions r in the interval ^, and the remainder can be deduced by analogy.
[00144] After constructing the previous Wiener-Hopf equation, the Wiener-Hopf equation is solved with the aim of minimizing the errors between the predicted values and the reconstructed values of the current positions M, to obtain a group of filtering coefficients corresponding to the combination. It is assumed that a predicted value that can be obtained by performing interpolation filtering at the sample position r is t[r]'. Then, to minimize the errors between the predicted values and the reconstructed values of the current positions M, an error between t[r]' and t[r] needs to be minimized, where t[r]' = ΣN = -1Cn X t[r + pn] .
[00145] Since consistent values of filtering coefficients need to be derived by an encoder and a decoder using a reconstruction area, considering platform problems and computational complexity, the Petition 870250073414, dated 08 / 20 / 2025, page 49 / 292 43 / 112 integer precision is used to calculate the filtering coefficients (i.e., the computation is performed using only integers) in this mode. One, but not limited to, is decomposing the autocorrelation of the Cholesky decomposition equation, or a way of solving it that includes the coefficient matrix of Wiener-Hopf through the decomposition of the lower triangular matrix (LDL).
[00146] In an example of this embodiment of the present disclosure, performing interpolation filtering based on the pixel values of the reference pixels and the group of filtering coefficients corresponding to the combination, to obtain the predicted value of the current pixel includes:
[00147] Calculate the predicted value (pred) of the current pixel according to the following formula: pred = ^-1(tPnx cn) (1),
[00148] or calculate the predicted value pred of the current pixel according to the following formula: N-1 pred = (<Σ (tPnx cn)) n=0 + displacement') >> deviation,
[00149] where t is a pixel value of a reference pixel nth of the current pixel, n = 0,1,..., N-1, c is a filtering coefficient that corresponds to the nth reference pixel in the filtering coefficient group, N is a number of reference pixels, i.e., a number of filtering coefficients included in the filtering coefficient group, offset and deviation are predefined values and >> indicates a right shift operation on a binary number. For example, >>3 represents a right shift of three bits, and formula (2) Petition 870250073414, dated 08 / 20 / 2025, page 50 / 292 44 / 112 represents a right shift in bit size.
[00150] Formula (2) is a specific algorithm proposed to avoid fractional arithmetic. In formula (2), cné is enlarged in relation to cnna formula (1). Therefore, an accumulation result needs to be corrected using the displacement and deviation coefficients, where displacement is used for compensation and deviation is used for scaling, to obtain an accurate value of pred.
[00151] In another exemplary embodiment of the present disclosure, an average removal operation is performed on reconstructed values inserted when the filtering coefficients are obtained using the Wiener-Hopf equation. In this embodiment, the determination of the corresponding group of filtering coefficients based on the filtering window in the combination and the reconstructed pixel value in the reconstruction area in the combination includes:
[00152] place the filtering window in the combination at M different positions that reconstruct pixels in the reconstruction area in the combination, where M > 1;
[00153] construct a Wiener-Hopf equation using M current positions in the filtering window at M different positions as sample positions and using reconstructed values removed from the pixel average at all neighboring positions in the filtering window at M different positions as inputs; and
[00154] solve the Wiener-Hopf equation with the aim of minimizing errors between the predicted values and the reconstructed values of the actual positions M, in order to obtain the group of filtering coefficients corresponding to the combination.
[00155] A difference between the method for Petition 870250073414, dated 08 / 20 / 2025, page 51 / 292 45 / 112 The difference between constructing the Wiener-Hopf equation in this mode and the previous mode lies in the fact that: the reconstructed values are used as inputs to construct the Wiener-Hopf equation in the previous mode, while the reconstructed values removed from the mean are used as inputs to construct the Wiener-Hopf equation in this mode.
[00156] Assuming the average value is m, the Wiener-Hopf equation constructed in this way is as follows: ^(t[r + p0]-m)(t[r + p0]-m) — Σ (t[r + pw_1] - m)(t[r + p0] - m) IWI IWII ^(t[r + Po]- m)(t[r + pw-i] - m) — ^(t[r+ Pn-i]- m)(t[r + pw-i]- m) -II^II m- ^(t[r] - m)(t[r + p0] - m) ^(t[r] - m)(t[r + pw-1] - m) IWI
[00157] In an example of this modality, the values The reconstructed IJ values removed from the mean are obtained by subtracting the mean value from the reconstructed values, and the mean value is obtained as follows:
[00158] calculating the average of the reconstructed values of all pixels in the reconstruction area in the combination, to obtain the average value; or
[00159] calculating the average of the reconstructed values of some pixels in the reconstruction area in the combination, to obtain the average value; or
[00160] using a reconstructed value of a specified pixel in the reconstruction area in the combination as the average value. Petition 870250073414, dated 08 / 20 / 2025, page 52 / 292 46 / 112
[00161] With reference to the example shown in Figure 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. When calculating the average of the reconstructed values of all pixels in the reconstruction area in the combination, the reconstructed values of all pixels throughout the reconstruction area are calculated to obtain the average value. When calculating the average of the reconstructed value of some pixels in the reconstruction area in the combination, some pixels may include pixels in one or more adjacent rows above the current block and / or pixels in one or more adjacent columns to the left of the current block. For example, in Figure 10, some pixels are located in an area filled with cross-section lines, which includes an adjacent row above the current block and an adjacent column to the left of the current block.Pixels include pixels directly above the current block and in the upper-right direction of the current block, in an adjacent row above the current block, and pixels directly to the left of the current block and in the lower-left direction of the current block, in an adjacent column to the left of the current block. Using the reconstructed value of a pixel specified in the reconstruction area in the combination as the average value can be done by using a reconstructed value of a pixel that is in the reconstruction area and is adjacent to an upper-left corner of the current block as the average value. The pixel is represented by a small square with a cross in Figure 10. Calculating the average value using reconstructed values of some pixels can simplify the calculation. In addition to simplifying the calculation, using a reconstructed value of a pixel as the average value can also avoid a division operation in the average value calculation. Petition 870250073414, dated 08 / 20 / 2025, page 53 / 292 47 / 112
[00162] In a case where the filtering coefficients are solved based on reconstructed values removed from the average, when performing the prediction on the current pixel, the pixel values of the reference pixels need to be removed by the average first and then multiplied by the corresponding filtering coefficients and accumulated, and the average result needs to be added to an accumulation result.
[00163] In an example of this embodiment, in a case where the filtering coefficient group is obtained by solving the Wiener-Hopf equation using reconstructed values with the mean removed as inputs, performing interpolation filtering based on the pixel values of the reference pixels and the filtering coefficient group corresponding to the combination, to obtain the predicted value of the current pixel includes: calculating the predicted value (pred) of the current pixel according to the following formula: pred = ^-1((tPn-m)xcn) + mr
[00164] where t is a pixel value of a reference pixel nth of the current pixel, n = 0,1,..., N-1, c is a filtering coefficient that corresponds to the nth reference pixel in the group of filtering coefficients, N is a quantity of reference pixels, that is, a quantity of filtering coefficients included in the group of filtering coefficients, and is the average value used to calculate the reconstructed values removed from the average.
[00165] In this mode, mean-removed interpolation filtering is used, and a corresponding filter can be called a mean-removed filter. The filtering coefficients obtained by constructing the equation Petition 870250073414, dated 08 / 20 / 2025, page 54 / 292 Wiener-Hopf's 48 / 112 method, using reconstructed values removed from the mean as inputs, can achieve a better predictive effect. The mean value used for mean removal can be an average of reconstructed pixel values across the entire reconstruction area, or it can be an average derived from reconstructed values of a few pixels (which may be one or more pixels) within the reconstruction area.
[00166] According to the intraprediction method based on interpolation filtering proposed in the embodiments of the present disclosure, previously calculated predicted values can be used as inputs to predict some positions. Since the errors of the predicted values relative to an original value are generally larger than the errors of the reconstructed values relative to the original value, this recursive prediction can cause an increase in accumulated error. The impact of error accumulation on a prediction effect can be mitigated by limiting the output range of an interpolation filter.
[00167] In an exemplary embodiment of the present disclosure, performing interpolation filtering based on the pixel values of the reference pixels and the filtering coefficient, to obtain the predicted value of the current pixel includes:
[00168] perform interpolation filtering based on the pixel values of the reference pixels and the filtering coefficient, to obtain an initial predicted value;
[00169] when the initial forecast value exceeds a range of forecast values for the current block, correct the initial forecast value so that the corrected forecast value falls within the range of forecast values for the current block; Petition 870250073414, dated 08 / 20 / 2025, page 55 / 292 49 / 112 and
[00170] use the corrected predicted value as the predicted value of the current pixel.
[00171] In an example of an embodiment of the present disclosure, the correction of the initial projected value includes:
[00172] when the initial predicted value is greater than a maximum value in the range of predicted values, use the maximum value as the corrected predicted value; or
[00173] when the initial predicted value is less than a minimum value in the range of predicted values, use the minimum value as the corrected predicted value.
[00174] In this example, the range of predicted values can be determined in one of the following ways.
[00175] Each output value is made to fall within a range of predicted values allowed by the data, where the range of predicted values can be determined based on a data depth of a predicted value. For example, for a predicted value with a depth of eight bits, a prediction result should be limited within a range of 0 to 28 — 1.
[00176] The range can be reduced. For example, the range is determined based on a reconstructed maximum value and a reconstructed minimum value of pixels in all or part of a reconstruction area used to determine the filtering coefficient. In one example, after a reconstructed minimum value and a reconstructed maximum value of pixel values in a corresponding reference area or part of the reference area are found, the reconstructed minimum value is used as the minimum value of the range of predicted values and the reconstructed maximum value is used as Petition 870250073414, dated 08 / 20 / 2025, page 56 / 292 50 / 112 is the maximum value of the range of predicted values. In another example, the previous range formed by the minimum and maximum values can be expanded or reduced appropriately. The reconstructed minimum value found, reduced by a predefined deviation, is used as the minimum value of the range of predicted values. The reconstructed minimum value found, plus another predefined deviation, is used as the maximum value of the range of predicted values. The predefined deviations are either positive or negative values.
[00177] By limiting the output range of an interpolation filter, this embodiment of the present disclosure can avoid the excessive accumulation of errors caused by pixel-by-pixel prediction.
[00178] One embodiment of the present disclosure further provides a method for encoding video. As shown in Figure 11, the method includes the following steps.
[00179] Step S210: Perform intraprediction on a current block based on a plurality of intraprediction modes, where in a case where it is determined that an interpolation filtering mode can be used for the current block, intraprediction in interpolation filtering mode is performed on the current block using the intraprediction method based on interpolation filtering according to any of the embodiments of the present disclosure.
[00180] Step S220: In a case where it is determined, based on the rate distortion costs of the plurality of intraforecast modes, to perform intraforecasting on the current block using the interpolation filtering mode, encode a filtering mode flag. Petition 870250073414, dated 08 / 20 / 2025, page 57 / 292 51 / 112 current block interpolation, to indicate the execution of intra-forecasting in the current block using the interpolation filtering mode.
[00181] In this embodiment of the present disclosure, an interpolation filtering mode is introduced as an intraprediction mode, and when it is determined to use the interpolation filtering mode to perform intraprediction on the current block, a current block interpolation filtering mode flag is encoded. The use of the newly added intraprediction mode can improve compaction efficiency.
[00182] In an example of this modality, the rate distortion costs of the plurality of intraforecast modes can be compared with each other, and when a rate distortion cost of the interpolation filtering mode is the lowest, it is determined that the intraforecast is performed in the current block using the interpolation filtering mode.
[00183] Some limiting conditions can be added for the use of the interpolation filtering mode. For example, when the current block is a chroma block, the interpolation filtering mode is not used for intraprediction during encoding, but a DM (direct mode) mode can be selected for the chroma block, so that an intraprediction mode of a luma block can be used directly for the chroma block. As another example, a flag at a sequence level, an image level, or a slice level can be used to indicate whether the interpolation filtering mode can be used to encode the current block, or related general constraint information (GCI: general constraint information) can be set for Petition 870250073414, dated 08 / 20 / 2025, page 58 / 292 52 / 112 indicates whether the interpolation filtering mode is prohibited from being used. As another example, a dimension of the current block for which the interpolation filtering mode is used may be limited. Additionally, when the current block is located on an image boundary, the interpolation filtering mode may be prohibited from being used because there is not enough reconstruction area to place a filtering window.
[00184] In an exemplary embodiment of the present disclosure, determining that the interpolation filtering mode can be used for the current block includes: determining that the interpolation filtering mode can be used for the current block when none of the conditions for prohibiting the use of the interpolation filtering mode are met, where the conditions for prohibiting the use of the interpolation filtering mode include any one or more of the following conditions:
[00185] the current block is a chroma block;
[00186] a sequence level flag indicates that the interpolation filtering mode cannot be used;
[00187] an image level flag indicates that the interpolation filtering mode cannot be used;
[00188] A slice-level flag indicates that the interpolation filtering mode cannot be used;
[00189] a GCI identifier indicates that the interpolation filtering mode is prohibited from being used;
[00190] a dimension of the current block does not meet a maximum block dimension and / or a minimum block dimension to enable interpolation filtering mode;
[00191] a difference between a horizontal coordinate of an upper left corner of the current block and a Petition 870250073414, dated 08 / 20 / 2025, page 59 / 292 53 / 112 horizontal coordinate of an upper left corner of a current image is less than a first predefined limit; or
[00192] a difference between a vertical coordinate of an upper left corner of the current block and a vertical coordinate of an upper left corner of a current image is less than a second predefined limit.
[00193] In an exemplary embodiment of the present disclosure, in a coding end, as described in the previous embodiment, a plurality of combinations of a filtering window and a reconstruction area can be used to perform intraprediction based on interpolation filtering in a current block, and each combination can be considered as a submode of the interpolation filtering mode.
[00194] In this mode, the execution of intraprediction in interpolation filtering mode in the current block includes:
[00195] determine a combination of a filtering window of the current block and a reconstruction area adjacent to the current block that is used to perform intraprediction in the interpolation filtering mode in the current block, where K combinations correspond to K submodes of the interpolation filtering mode, and for each of the submodes, perform, based on the filtering window of the current block and the reconstruction area adjacent to the current block that are in a combination corresponding to the respective submode, intraprediction based on interpolation filtering in the current block, where K is a number of combinations and K > 2;
[00196] determine, based on the rate distortion costs of the plurality of intraforecast modes, Petition 870250073414, dated 08 / 20 / 2025, page 60 / 292 54 / 112 to perform intraforecasting in the current block using the interpolation filtering mode includes: using a lower value in the rate distortion costs of the K submodes as a rate distortion cost of the interpolation filtering mode and comparing the rate distortion cost of the interpolation filtering mode with a rate distortion cost of another intraforecasting mode in the plurality of intraforecasting modes; and
[00197] when the rate distortion cost of the interpolation filtering mode is the lowest, the method also includes: encoding index information that is used to indicate a submode with the lowest rate distortion cost in the K submodes.
[00198] In a case where the encoding end determines the use of the interpolation filtering mode to perform intraprediction in the current block and there is a plurality of submodes, to prevent a decoding end from reselecting a submode, an index of a selected submode with the lowest rate distortion cost (i.e., the selected submode) may be encoded into a bitstream.
[00199] In an exemplary embodiment of the present disclosure, the index indicating the submode with the lowest rate distortion cost in the K submodes includes any one or more of the following indices:
[00200] a submode index, where each submode index corresponds to a combination of a filtering window of the current block and a reconstruction area adjacent to the current block;
[00201] an index of the current block reconstruction area, where each reconstruction area index corresponds to a reconstruction area; Petition 870250073414, dated 08 / 20 / 2025, page 61 / 292 55 / 112
[00202] a reconstruction area parameter index of the current block, wherein a reconstruction area parameter includes at least one dimension or type, the dimension includes at least one of a number of reconstruction area rows above the current block or a number of reconstruction area columns to the left of the current block, there may be a plurality of reconstruction area parameter indices, for example, including a dimension index and a type index, and there may be only one parameter index, for example, a parameter index value indicates a combination of a current block dimension and a current block type;
[00203] a filtering window index of the current block, where each filtering window index corresponds to a filtering window; or
[00204] an index of the filter window parameter of the current block, where a filter window parameter includes at least one shape, dimension, or number of neighboring positions.
[00205] In this mode, the index information of a submode can be indicated in several ways. In the previous example, intraprediction based on interpolation filtering is performed on the current block using a filtering window (4x4) and six reconstruction areas (two upper reconstruction areas, two left reconstruction areas, and two L-shaped reconstruction areas). There are a total of six combinations of a filtering window and a reconstruction area, and there are six submodes. A submode index is an index obtained by uniformly numbering all submodes. For example, in a case where a rate distortion cost Petition 870250073414, dated 08 / 20 / 2025, page 62 / 292 If the rate distortion cost of a first submode is the lowest (56 / 112), the submode index is 0; or if the rate distortion cost of a fifth submode is the lowest, the submode index is 4. Since there is only one filtering window, the submode index in this example can also be considered a reconstruction area index. In addition to uniformly numbering the submodes, in other examples, the filtering windows and reconstruction areas participating in the combinations can be numbered separately to obtain their respective indices. For example, when three filtering windows (referring to Figure 7A through Figure 7C) and six reconstruction areas are used for the current block, if the rate distortion cost of the combination of a second filtering window and a fourth reconstruction area is the lowest, a filtering window index can be encoded and has a value of 1. Furthermore, a reconstruction area index is encoded and has a value of 3.Furthermore, a finer parameter index can also be used to indicate index information of a submode. For example, a filtering window and six reconstruction areas are used for the current block. When the six reconstruction areas are divided into three types, namely, a top reconstruction area, a left reconstruction area, and an L-shaped reconstruction area, and each type has two reconstruction areas in different dimensions (e.g., K = L = 8 and K = L = 13), a 2-bit reconstruction area type index can be used to indicate a type of a selected submode, and a 1-bit dimension index is used to indicate a K and L value of the selected submode. That is, a reconstruction area in a combination corresponding to the selected submode can be uniquely determined. When a plurality of windows... Petition 870250073414, dated 08 / 20 / 2025, page 63 / 292 57 / 112 filtering is used for the current block, and the plurality of filtering windows is partitioned based on a plurality of parameters. A parameter index of a filtering window can be used to indicate a filtering window in a combination corresponding to a selected submode, and the details are not described again.
[00206] In this embodiment of the present disclosure, before a prediction mode and a transformation mode used for each intracoding block are decided, it is determined whether an intraprediction technology in interpolation filtering mode can be used for the current block. If a current related flag, for example, a sequence-level flag, allows the use of interpolation filtering-based prediction technology and conditions such as size and position of the current block are met, the filtering coefficients in a corresponding submode will be obtained according to each combination of a filtering window of the current block and a reconstruction area adjacent to the current block. Furthermore, pixel-by-pixel prediction is performed on the current block based on the submode filtering coefficients, to obtain a predicted block from the current block.
[00207] The plurality of intraprediction modes for the current block can be compared with each other using two-phase costs, to select a mode used for the current block. In a coarse screening phase of a prediction mode for the current block, a cost for each potential intraprediction mode (including each submode of the interpolation filtering mode) is calculated, and a formula for calculating the cost is as follows: cost = D + AR, Petition 870250073414, dated 08 / 20 / 2025, page 64 / 292 58 / 112
[00208] where R represents an estimated bit overhead to be consumed for encoding the intraprediction mode, is a Lagrange multiplier, which is related to a quantizer parameter used for the current encoding, and represents a distortion value between a predicted block and an original block in a current prediction mode. The distortion value can be calculated using the following formula: D = min(SAD X 2,SATD),
[00209] where SAD represents a sum of absolute differences (the sum of the absolute difference) between the predicted block and the original block, and SATD represents a sum of the Hadamard transformed differences (the sum of the transformed difference) between the predicted block and the original block.
[00210] The complete residual transformation, quantization, inverse quantization, inverse transform, and reconstruction are performed on each prediction mode obtained by coarse screening, and the rate distortion costs of the mode combinations (i.e., combinations of a prediction mode, a transform mode, and a quantization mode) are compared to each other to determine a final prediction mode, a final transform mode, and a final quantized residual value. At this stage, a rate distortion cost is still calculated as follows: cost = D + AR. However, in this document, D represents a sum of squared errors (SSE: the sum of squared errors) between a reconstructed block and the original block, and R indicates an overall bit overhead used to encode a mode identifier, a coefficient, and the like of the current block. Petition 870250073414, dated 08 / 20 / 2025, page 65 / 292 59 / 112
[00211] A rate distortion cost algorithm used in the present disclosure is not limited to this. For example, an error in a rate distortion cost formula can also be indicated using a mean absolute difference (MAD), a mean squared error (MSE), or something similar.
[00212] One embodiment of the present disclosure further provides a method for decoding video. As shown in Figure 12, the method includes the following steps.
[00213] Step S310: Decode an interpolation filtering mode flag from a current block.
[00214] Step S320: In a case where it is determined, based on the decoded interpolation filtering mode flag, to perform intraprediction on the current block using an interpolation filtering mode, determine a selected filtering window for the current block and a selected reconstruction area for the current block.
[00215] Step S330: Perform intraprediction on the current block based on the determined filtering window and the determined reconstruction area using the interpolation filtering-based intraprediction method according to any of the modalities of the present disclosure.
[00216] The filtering window and reconstruction area selected for the current block are a filtering window and a reconstruction area in a combination (corresponding to a selected submode) selected by an encoding end for the current block. When there is a plurality of combinations of a filtering window and a reconstruction area in the interpolation filtering mode Petition 870250073414, dated 08 / 20 / 2025, page 66 / 292 60 / 112 from the encoding end, the encoding end can encode index information from a selected combination into a bitstream. At the decoding end, interpolation filtering needs to be performed based on only one combination of a filtering window and a reconstruction area, and selecting a plurality of combinations is not necessary.
[00217] According to the video decoding method in this embodiment of the present disclosure, whether intraprediction is performed in the current block using the interpolation filtering mode can be determined by analyzing syntax elements related to the interpolation filtering mode of the current block. By introducing the interpolation filtering mode, the overall efficiency of video encoding and decoding can be improved.
[00218] In an exemplary embodiment of the present disclosure, prior to decoding the interpolation filtering mode flag of the current block, the method further includes one or more of the following processes:
[00219] decode a sequence-level flag that indicates whether an interpolation filtering mode can be used and decode the current block's interpolation filtering mode flag in a case where a sequence-level flag value indicates that the interpolation filtering mode can be used, or ignore decoding the current block's interpolation filtering mode flag in a case where a sequence-level flag value indicates that the interpolation filtering mode cannot be used;
[00220] decode a level flag Petition 870250073414, dated 08 / 20 / 2025, page 67 / 292 61 / 112 image indicating whether an interpolation filtering mode can be used and decoding the current block's interpolation filtering mode flag in a case where an image-level flag value indicates that the interpolation filtering mode can be used, or ignoring the decoding of the current block's interpolation filtering mode flag in a case where an image-level flag value indicates that the interpolation filtering mode cannot be used;
[00221] decode a slice-level flag that indicates whether an interpolation filtering mode can be used and decode the current block's interpolation filtering mode flag in a case where a slice-level flag value indicates that the current block's interpolation filtering mode flag can be used, or ignore decoding the current block's interpolation filtering mode flag in a case where a slice-level flag value indicates that the interpolation filtering mode is not allowed to be used; or
[00222] Decode a GCI identifier from general constraint information that indicates whether an interpolation filtering mode is prohibited from being used, and decode, in a case where a value of the GCI identifier indicates that the interpolation filtering mode is not prohibited from being used, a sequence-level flag that indicates whether the interpolation filtering mode can be used, or skip decoding, in a case where a value of the GCI identifier indicates that the interpolation filtering mode is prohibited from being used, a sequence-level flag that indicates whether the interpolation filtering mode can be used. Petition 870250073414, dated 08 / 20 / 2025, page 68 / 292 62 / 112 can be used, where the sequence level flag indicates by default that the interpolation filtering mode cannot be used.
[00223] In one example of this mode, a sequence-level flag indicating whether the interpolation filtering mode can be used is used, and a related syntax element is shown in Table 1 below.
[00224] TABLE 1 SET SYNTAX ELEMENT IDENTIFIER SEQUENCE LEVEL PARAMETERS (SPS) (SET SYNTAX) (SEQUENCE PARAMETERS) seq_parameter_set_rbsp( ) { Descriptor sps_eip_enabled_flag u(1)}
[00225] In the previous table, if sps_eip_enabled_flag equals 1, it indicates that the interpolation filtering mode can be used, i.e., it is defined that an intraprediction technology based on interpolation filtering can be enabled in a coded layer video sequence (CLVS: coded layer video sequence). If sps_eip_enabled_flag equals 0, it indicates that the interpolation filtering mode cannot be used, i.e., it is defined that the intraprediction technology based on interpolation filtering is disabled in the coded layer video sequence.
[00226] In one example of this modality, a GCI identifier indicates whether the filtering mode of Petition 870250073414, dated 08 / 20 / 2025, page 69 / 292 63 / 112 interjection is prohibited from being used, and a related syntax element is shown in Table 2 below.
[00227] TABLE 2 INFORMATION SYNTAX ELEMENT IDENTIFIER GENERAL RESTRICTIONS INFORMATION (GCI) (SYNTAX OF GENERAL RESTRICTIONS INFORMATION) general_constraints_info( ) { Descriptor gci_present_flag u(1) if( gci_present_flag ) { gci_no_eip_constraint_flag u(1)}
[00228] In the previous table, if gci_no_eip_constraint_flag equals 1, it indicates that the interpolation filtering mode is prohibited from being used, i.e., it is defined that a sequence-level intraprediction technology based on interpolation filtering must be 0 for all images, i.e., it cannot be used. If gci_no_eip_constraint_flag equals 0, this indicates that the interpolation filtering mode is not prohibited from being used and a restriction that the interpolation filtering mode is prohibited from being used is not introduced.
[00229] In one example of this mode, an image level flag indicating whether the interpolation filtering mode can be used is used, and a related syntax element is shown in Table 3 below.
[00230] TABLE 3 IDENTIFIER OF A SYNTAX ELEMENT Petition 870250073414, dated 08 / 20 / 2025, p. 70 / 292 64 / 112 IMAGE HEADER STRUCTURE (IMAGE HEADER STRUCTURE SYNTAX) picture_header_structure( ) { Descriptor if ( sps_eip_enabled_flag ) { ph_eip_enabled_flag u(1)} ... ...}
[00231] In the previous table, if ph_eip_enabled_flag equals 1, it indicates that the interpolation filtering mode can be used, i.e., it is defined that an intraprediction technology based on interpolation filtering can be enabled in a current image. If ph_eip_enabled_flag equals 0, it indicates that the interpolation filtering mode cannot be used, i.e., it is defined that the intraprediction technology based on interpolation filtering is disabled in the current image. If this syntax element does not exist in a current sequence, a default value of 0 will be used.
[00232] In addition to a syntax identifier in an image header structure, an image-level flag indicating whether interpolation filtering mode can be used may alternatively be a primitive syntax identifier of an image parameter set (PPS: image parameter set syntax).
[00233] In an example of this mode, a flag at the slice level indicates whether the interpolation filtering mode can be used, and a related syntax element is shown in Table 4. Petition 870250073414, dated 08 / 20 / 2025, p. 71 / 292 65 / 112 next.
[00234] TABLE 4 IDENTIFIER OF A HEADING SYNTAX ELEMENT SLICE LEVEL (SLICE HEADER SYNTAX) slice_header( ) { Descriptor if( sps_eip_enabled_flag ) { sh_eip_enabled_flag u(1)}}
[00235] In the previous table, if sh_eip_enabled_flag is equal to 1, it indicates that the interpolation filtering mode can be used, that is, it is defined that the intraprediction technology based on interpolation filtering can be used for a current slice. If sh_eip_enabled_flag is equal to 0, it indicates that the interpolation filtering mode cannot be used, that is, it is defined that the intraprediction technology based on interpolation filtering cannot be used for the current slice.
[00236] In an exemplary embodiment of the present disclosure, the determination of the filtering window selected for the current block includes:
[00237] determine a predefined filtering window as the filtering window of the current block, which is for a case where the encoding end and the decoding end use a filtering window when performing intraprediction in interpolation filtering mode on different current blocks, for example, the filtering window Petition 870250073414, dated 08 / 20 / 2025, page 72 / 292 66 / 112 x 4, where in this case, the encoding end does not need to encode the filtering window index information, and the decoding end can directly determine the predefined filtering window as the selected filtering window for the current block; or
[00238] determine a filtering window corresponding to a block parameter of the current block as the filtering window selected for the current block, wherein the block parameter includes at least one of a position, a shape, or a dimension, which is for a case where the encoding end and the decoding end can determine, based on the block parameter of the current block, the filtering window used to perform intraprediction in interpolation filtering mode on the current block, wherein, in this case, the filtering window index information also does not need to be encoded, and the decoding end determines, based on the block parameter of the current block, the filtering window selected for the current block; or
[00239] decode a submode index of the current block and determine, based on the submode index, the filtering window selected for the current block, where each submode index corresponds to a combination of a filtering window of the current block and a reconstruction area adjacent to the current block; or
[00240] decode a filtering window index of the current block and determine, based on the filtering window index, the filtering window selected for the current block, where each filtering window index corresponds to a filtering window; or
[00241] decode a parameter index of Petition 870250073414, dated 08 / 20 / 2025, page 73 / 292 67 / 112 current block filtering window, determine a filtering window parameter based on the filtering window parameter index and determine, based on the parameter, the filtering window selected for the current block, where the filtering window parameter includes at least one of a shape, dimension, or number of neighboring positions.
[00242] In an exemplary embodiment of the present disclosure, the determination of the selected neighboring reconstruction area for the current block includes:
[00243] determine, based on a predefined reconstruction area parameter, the reconstruction area selected for the current block, which is for a case where the encoding end and the decoding end use a reconstruction area with a predefined parameter when performing intraprediction in interpolation filtering mode on different current blocks and, in this case, the index information does not need to be decoded; or
[00244] determine a reconstruction area corresponding to a block parameter of the current block as the reconstruction area adjacent to the current block, where the block parameter includes at least one of a position, a shape, or a dimension, which is for a case where the encoding end and the decoding end can determine, based on the block parameter of the current block, the reconstruction area used for intraprediction pre-execution in interpolation filtering mode in the current block, where, for example, if the L-shaped reconstruction area shown in Figure 8C is used and K = L = 13, the index information of the reconstruction area does not need to be encoded and the decoding end determines, based on the block parameter of the Petition 870250073414, dated 08 / 20 / 2025, page 74 / 292 68 / 112 current block and in the type and predefined values of K and L, the filtering window selected for the current block; or
[00245] decode a submode index of the current block and determine, based on the submode index, the selected reconstruction area for the current block, where each submode index corresponds to a combination of a filtering window of the current block and a reconstruction area adjacent to the current block; or
[00246] decode a reconstruction area index of the current block and determine, based on the reconstruction area index, the selected reconstruction area for the current block, where each reconstruction area index corresponds to a reconstruction area; or
[00247] decode a reconstruction area parameter index of the current block, determine a reconstruction area parameter based on the reconstruction area parameter index, and determine, based on the parameter, the reconstruction area selected for the current block. In one example, the reconstruction area parameter index includes at least one reconstruction area dimension index or a reconstruction area type index, and a reconstruction area dimension includes at least one of a number of reconstruction area rows above the current block or a number of reconstruction area columns to the left of the current block.
[00248] For details on the previous submode index, reconstruction area index, filtering window index, reconstruction area parameter index, and filtering window parameter index, see the corresponding descriptions in the coding method. The previous dimension index may, Petition 870250073414, dated 08 / 20 / 2025, page 75 / 292 69 / 112 Alternatively, include a plurality of indexes, such as a row count index and a column count index.
[00249] It should be noted that when determining the filtering window and the selected reconstruction area for the current block, the filtering window and the adjacent reconstruction area can be determined together based on the submode index, or they can be determined separately, i.e., the filtering window is determined based on the configuration information or the index information of the filtering window, and the adjacent reconstruction area is determined based on the configuration information or the index information of the reconstruction area.
[00250] For a current block on which intraprediction is performed, a reconstructed portion (i.e., a neighboring reconstruction area) around the current block may include an area directly above the current block, an area in the upper-left corner of the current block, an area in the upper-right corner of the current block, an area to the left of the current block, and an area in the lower-left corner of the current block. Due to differences in block sizes, positions, and partitioning, there are not always reconstructed pixels in all five areas. For example, when the current block is located on a top edge of an image, there is no reconstructed pixel above the current block (including the area directly above the current block, the area in the upper-left corner of the current block, and the area in the upper-right corner of the current block).When the current block is located on a left edge of the image, there are no reconstructed pixels to the left of the current block (including the area in the upper left corner of the current block, the area directly to it). Petition 870250073414, dated 08 / 20 / 2025, page 76 / 292 70 / 112 left of the current block and the area in the lower left corner of the current block). Therefore, this case can be avoided by limiting the difference between a coordinate of an upper left corner of the current block and a coordinate of an upper left corner of the image.
[00251] As shown in Figure 14A and Figure 14B, Figure 14A and Figure 14B are examples of two types of ternary partitioning. In these two types of partitioning, due to differences in positions, when a lower-left area of a current block and an upper-right area of the current block are located in a current CTU, more distant reference lines in a reconstruction area may have reconstructed values (i.e., reconstructed pixels), but closer reference lines may not have reconstruction pixels. When the area in the lower-left area of the current block and the area in the upper-right area of the current block are located in another CTU, the reference lines in the reconstruction area have reconstructed values.
[00252] In an exemplary embodiment of the present disclosure, prior to decoding the interpolation filtering mode flag of the current block, the method further includes one or more of the following processes:
[00253] determine whether a dimension of the current block meets a maximum block dimension and / or a minimum block dimension to enable interpolation filtering mode and decode the interpolation filtering mode flag of the current block in the case where the current block dimension meets the maximum block dimension and / or the minimum block dimension to enable interpolation filtering mode, or ignore the decoding of the flag. Petition 870250073414, dated 08 / 20 / 2025, page 77 / 292 71 / 112 Current block interpolation filtering mode in the case where the current block dimension does not meet the maximum block dimension and / or the minimum block dimension to enable interpolation filtering mode, where the dimension includes at least one size (i.e., a number of included pixels), a width or a height, and excessive error accumulation can be avoided by setting a condition for a maximum block dimension;
[00254] determine whether a difference between a horizontal coordinate of an upper-left corner of the current block and a horizontal coordinate of an upper-left corner of a current image is greater than or equal to a first predefined limit, and decode the interpolation filtering mode flag of the current block in a case where the difference is greater than or equal to the first predefined limit, or skip decoding the interpolation filtering mode flag of the current block in a case where the difference is less than the first limit; or
[00255] determine whether a difference between a vertical coordinate of an upper left corner of the current block and a vertical coordinate of an upper left corner of a current image is greater than or equal to a second predefined threshold and decode the interpolation filtering mode flag of the current block in a case where the difference is greater than or equal to the second predefined threshold, or ignore decoding the interpolation filtering mode flag of the current block in a case where the difference is less than the second threshold.
[00256] In this mode, in addition to using top-level syntax elements to indicate whether the mode of Petition 870250073414, dated 08 / 20 / 2025, p. 78 / 292 72 / 112 interpolation filtering can be used, the use of the interpolation filtering mode may be limited by the use of block-level syntax elements. These block-level syntax elements may be at the same decoding level as syntax elements related to other block-level intraprediction modes. In VVC, an identifier for a block-level intraprediction mode is parsed at the level of a coding unit (CU). In some cases or in other standards, a forecast mode identifier may also be at the level of a forecast unit (PU). The following uses VVC as an example to describe block-level syntax elements related to the interpolation filtering mode at a decoding end (an ellipsis in the table represents the decoding of some other block-level syntax elements, for example, another intraprediction mode).
[00257] In one example, at one end of the encoding, a current block has three reconstruction areas that can be used to obtain filtering coefficients. The types and dimensions of the three reconstruction areas are shown in Figure 13A to Figure 13C, where M and N in Figure 13A to Figure 13C indicate, respectively, the width of the current block and the height of the current block.
[00258] A decoding end parses a block-level syntax element of a current encoding unit, as shown in the following table.
[00259] TABLE 5 coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { Descriptor Petition 870250073414, dated 08 / 20 / 2025, page 79 / 292 73 / 112 if( CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_INTRA | | CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_PLT ) { if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_LUMA ) { if( sps_eip_enabled_flag&& cbWidth*cbHeight <=SIZE_A && x0>=XX && y0>=YY ) { intra_eip_flag ae(v)} if( intra_eip_flag ){ eip_tpl_type_idx [ x0 ][ y0 ] ae(v)} else {}}}}
[00260] In the previous table, eip_tpl_type_idx is a type index of a reconstruction area of the current block, defines a reconstruction area type that is selected by the encoding end for the current block and used to obtain the filtering coefficients, and includes two bits. In the table, x0,y0 indicate, respectively, a difference in horizontal coordinates and a difference in vertical coordinates between an upper-left corner of the current block (which is the current encoding unit in this example) and an upper-left corner of an image, and XX and YY represent coordinate positions of the upper-left corner of the current block in the image, which need to be met when filtering mode Petition 870250073414, dated 08 / 20 / 2025, page 80 / 292 74 / 112 interpolation is enabled (i.e., it can be used). When the coordinates of the upper left corner of the image are (0,0), XX and YY are, respectively, the first and second limits described above. In the previous table, SIZE_A represents a condition for a maximum block dimension that needs to be met to enable the interpolation filtering mode. In an example, SIZE_A is set to 1024 and XX and YY are set to 13. When there are not enough reconstruction rows or reconstruction columns to the left of the current block or above the current block, the condition is not met.
[00261] According to the preceding syntax element, only when the sequence-level flag sps_eip_enabled_flag indicates that the interpolation filtering mode can be used, a current block size (which is width times height, i.e., cbWidth*cbHeight) is less than or equal to SIZE_A, a horizontal coordinate x0 of the upper-left corner of the current block is greater than or equal to XX, and a vertical coordinate of the upper-left corner of the current block is greater than or equal to YY, the decoding end decodes a block-level interpolation filtering mode flag, i.e., intra_eip_flag, and determines, based on intra_eip_flag, whether to perform intraprediction on the current block using the interpolation filtering mode.In a case where intra_eip_flag equals 1, meaning that the interpolation filtering mode is used for the current block, the decoding end decodes the eip_tpl_type_idx type flag of the reconstruction area to determine the type of reconstruction area selected for the current block. In this example, a number of lines from the reconstruction area. Petition 870250073414, dated 08 / 20 / 2025, page 81 / 292 75 / 112 above the current block and a number of columns in the reconstruction area above the current block is 13, and a filtering window is used. Therefore, a single reconstruction area and a combination of a filtering window and a reconstruction area can be directly determined based on eip_tpl_type_idx, where eip_tpl_type_idx can also be considered as a reconstruction area index and a submode index.
[00262] In this example, a correspondence between eip_tpl_type_idx and the three reconstruction areas shown in Figure 13A to Figure 13C is as follows:
[00263] TABLE 6 Code word for eip_tpl_type_idx Reconstruction area corresponding to Figure 12 0 Reconstruction area shown in Figure 13C 10 Reconstruction area shown in Figure 13A 11 Reconstruction area shown in Figure 13B
[00264] In another example, at one encoding end, six reconstruction areas are used for a current block. As shown in Figures 13A to 13F, based on K = L = 13 in the previous example, a top reconstruction area, a left reconstruction area, and an L-shaped reconstruction area with K = L = 8 are added. In this case, a decoding end parses a block-level syntax element of a current encoding unit, as shown in the following table.
[00265] TABLE 7 Petition 870250073414, dated 08 / 20 / 2025, p. 82 / 292 76 / 112 coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { Descriptor if( CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_INTRA | | CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_PLT ) { if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_LUMA ) { if( sps_eip_enabled_flag && cbWidth*cbHeight <=SIZE_A && x0>=XX && y0>=YY){ intra_eip_flag ae(v)} if( intra_eip_flag ){ eip_tpl_size_idx [ x0 ][ y0 ] ae(v) eip_tpl_type_idx [ x0 ][ y0 ] ae(v)} else {}}}}
[00266] The meanings of sps_eip_enabled_flag, eip_tpl_type_idx, intra_eip_flag, SIZE_A, XX, and YY in the previous table are the same as in the previous example and are not described again. In this example, XX and YY are defined as 13. In a Currently, in ECM, a maximum of 13 rows and 13 columns are used for reference in other intraforecasting technologies. Therefore, for intraforecasting based on interpolation filtering, 13 rows and 13 columns are defined. When there are no rows and Petition 870250073414, dated 08 / 20 / 2025, page 83 / 292 77 / 112 sufficient reconstruction columns to the left of the current block or above the current block, the usage condition is not met.
[00267] Unlike the previous example, two parameter indices of a reconstruction area are used in this example, to represent a reconstruction area selected from the six optional reconstruction areas. In addition to using a reconstruction area type index eip_tpl_type_idx to indicate a reconstruction area type selected for the current block, a 1-bit dimension index eip_tpl_size_idx of the reconstruction area is also used to indicate a number of rows in the selected reconstruction area above the current block and a number of columns in the selected reconstruction area to the left of the current block. Since the number of rows is equal to the number of columns, eip_tpl_size_idx can also be considered as a row count index and a column count index.If the number of rows and the number of columns change frequently, a separate row count index and a separate column count index can be used interchangeably.
[00268] In this example, if eip_tpl_size_idx equals 0, this indicates that the number of rows in the reconstruction area used above the current block and the number of columns in the reconstruction area used to the left of the current block are both 8. If eip_tpl_size_idx equals 1, it indicates that the number of rows in the reconstruction area used above the current block and the number of columns in the reconstruction area used to the left of the current block are both 13. In this example, eip_tpl_type_idx and eip_tpl_size_idx are used to uniquely identify the selected reconstruction area. Petition 870250073414, dated 08 / 20 / 2025, page 84 / 292 78 / 112 for the current block. Since there is only one filtering window, a submode of an interpolation filtering mode selected for the current block can alternatively be uniquely identified.
[00269] In this example, a correspondence between the reconstruction area and the values of eip_tpl_type_idx and eip_tpl_size_idx is shown in the following table.
[00270] TABLE 8 Codeword for eip_tpl_size_idx Codeword for eip_tpl_type_idx Reconstruction area corresponding to Figure 12 0 0 Reconstruction area shown in Figure 13F 0 10 Reconstruction area shown in Figure 13D 0 11 Reconstruction area shown in Figure 13E 1 0 Reconstruction area shown in Figure 13C 1 10 Reconstruction area shown in Figure 13A 1 11 Reconstruction area shown in Figure 13B
[00271] In this embodiment, whether a decoded binarization identifier is context-based or equiprobable is not limited. However, in some embodiments, a better compression effect can be achieved by altering a submode binarization method or by altering a probability model that indicates a submode binarization identifier.
[00272] In this example, determining the area of Petition 870250073414, dated 08 / 20 / 2025, page 85 / 292 79 / 112 Selected reconstruction for the current block includes:
[00273] decode a reconstruction area type index of the current block and determine, based on the decoded type index, a selected reconstruction area type for the current block, where the type is a top reconstruction area, a left reconstruction area, or an L-shaped reconstruction area;
[00274] decode a dimension index of the reconstruction area of the current block and determine, based on the decoded dimension index, a dimension of the reconstruction area selected for the current block, where, for example, the number of rows of the reconstruction area above the current block and the number of columns of the reconstruction area to the left of the current block are defined as, for example, K = L = 8 or K = L = 13; and
[00275] determine, based on a type and dimension of the reconstruction area adjacent to the current block and a position and dimension of the current block, the reconstruction area selected for the current block.
[00276] In yet another example, at one encoding end, a reconstruction area is used for a current block, for example, the L-shaped reconstruction area shown in Figure 13C, where K = L = 13. A 4x4 filtering window is used. In this case, a decoding end parses a block-level syntax element of a current encoding unit, as shown in the following table.
[00277] TABLE 9 coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { Descriptor Petition 870250073414, dated 08 / 20 / 2025, page 86 / 292 80 / 112 if ( CuPredMode !intra_eip_flag ){}}}}
[00278] In the previous table, intra_eip_flag represents an interpolation filtering mode flag at a block (CU) level. If intra_eip_flag equals 1, this indicates that an intraprediction technology in an interpolation filtering mode is used for the current block (CU). If intra_eip_flag equals 0, this indicates that the intraprediction technology in the interpolation filtering mode is not used for the current block (CU). When this syntax element does not exist in a current bitstream, a default value is 0, meaning the interpolation filtering mode is not used. In the previous table, the processing of other syntax elements in the interpolation filtering mode when intra_eip_flag equals 1, for example, decoding related indices, is omitted. A meaning of sps_eip_enabled_flag is the same as in the previous example. Petition 870250073414, dated 08 / 20 / 2025, page 87 / 292 81 / 112
[00279] In this example, the interpolation filtering mode can be used for blocks of all sizes. If the use of intraprediction based on interpolation filtering is restricted by a block size, it must be determined whether a current block size meets the restriction or whether an intraprediction block-level flag based on interpolation filtering is subsequently decoded.
[00280] For example, in another example, when a current block width needs to be less than MAX_WIDTH and a current block height needs to be less than MAX_HEIGHT, a block-level syntax element is parsed as shown in the following table.
[00281] TABLE 10 coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { Descriptor if( CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_INTRA | | CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_PLT ) { if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_LUMA ) { if( sps_eip_enabled_flag && cbWidth <MAX_WIDTH && cbHeight<MAX_HEIGHT) { intra_eip_flag ae(v)} if( !intra_eip_flag ){}}}} Petition 870250073414, dated 08 / 20 / 2025, p. 88 / 292 82 / 112
[00282] In the previous table, cbWidth < MAX_WIDTH and cbHeight < MAX_HEIGHT are two conditions for decoding the intra_eip_flag interpolation filtering mode flag, and another condition is that a sequence-level flag sps_eip_enabled_flag indicating whether the interpolation filtering mode can be used is 1. If either of these conditions is not met, intra_eip_flag will not be decoded.
[00283] In another example, the width of the current block needs to be greater than MIN_WIDTH and the height of the current block needs to be greater than MIN_HEIGHT. In this case, a block-level syntax element is parsed as shown in the following table.
[00284] TABLE 11 coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { Descriptor if( CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_INTRA | | CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_PLT ) { if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_LUMA ) { if( sps_eip_enabled_flag && cbWidth>MIN_WIDTH && cbHeight>MIN_HEIGHT) { intra_eip_flag ae(v)} if( ! intra_eip_flag ){}} Petition 870250073414, dated 08 / 20 / 2025, p. 89 / 292 83 / 112 }}
[00285] In the previous table, cbWidth > MIN_WIDTH and cbHeight > MIN_HEIGHT are two conditions for decoding the intra_eip_flag interpolation filtering mode flag, and another condition is that a sequence-level flag sps_eip_enabled_flag indicating whether the interpolation filtering mode that can be used is 1. If either of these conditions is not met, intra_eip_flag will not be decoded.
[00286] In another example, if the width of the current block needs to be less than MAX_WIDTH and greater than MIN_WIDTH, and the height of the current block needs to be less than MAX_HEIGHT and greater than MIN_HEIGHT, a block-level syntax element is parsed as shown in the following table.
[00287] TABLE 12 coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { Descriptor if( CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_INTRA | | CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_PLT ) { if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_LUMA ) { if( sps_eip_enabled_flag && cbWidth <MAX_WIDTH && cbHeight<MAX_HEIGHT && cbWidth> MIN_WIDTH && cbHeight>MIN_HEIGHT) { intra_eip_flag ae(v)} if( !intra_eip_flag ){ Petition 870250073414, dated 08 / 20 / 2025, pp. 90 / 292 84 / 112 }}}}
[00288] In the previous table, MIN_WIDTH < cbWidth, cbWidth < MAX_WIDTH, MIN_HEIGHT < cbHeight and cbHeight < MAX_HEIGHT are four conditions for decoding the intra_eip_flag interpolation filtering mode flag, and another condition is that a sequence-level flag sps_eip_enabled_flag indicating whether the interpolation filtering mode that can be used is 1. If any of these conditions are not met, intra_eip_flag will not be decoded.
[00289] In one example, when performing interpolation filtering on a current block, a coding end can use a plurality of filter windows and a plurality of reconstruction areas, and the parameters of a filter window include a number of neighboring positions (which can also be called the number of coefficients of a filter) and a shape (for example, the three types shown in Figure 7A through Figure 7C). In this example, a filter window parameter index and a reconstruction area parameter index are used to indicate the selected filter window and the selected reconstruction area. A block-level syntax element is parsed as shown in the following table.
[00290] TABLE 13 coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { Descriptor Petition 870250073414, dated 08 / 20 / 2025, pp. 91 / 292 85 / 112 if( CuPredMode[ chType ][ x0 ][ y0 ] == MODE_INTRA | | CuPredMode[ chType ][ x0 ][ y0 ] == MODE_PLT ) { if( treeType == SINGLE_TREE | | treeType == DUAL_TREE_LUMA ) { if( sps_eip_enabled_flag ) { How does an intraprediction mode first need to be encoded and decoded? intra_eip_flag ae(v)} if( intra_eip_flag ){ eip_shape_idx [ x0 ][ y0 ] ae(v) eip_num_coeff_idx [ x0 ][ y0 ] ae(v) eip_tpl_type_idx [ x0 ][ y0 ] ae(v) eip_tpl_size_idx [ x0 ][ y0 ] ae(v)} else{}}}}
[00291] In the previous table, eip_shape_idx is a shape index of the filtering window and defines an index of a selected filter shape; and eip_num_coeff_idx is an index of a number of neighboring positions in the filtering window and defines a number of neighboring positions in the selected filtering window. For example, if eip_num_coeff_idx is equal to 0, this indicates that the number Petition 870250073414, dated 08 / 20 / 2025, pp. 92 / 292 86 / 112 of neighboring positions in the filtering window is 15. If eip_num_coeff_idx equals 1, this indicates that the number of neighboring positions in the filtering window is 24. When a filtering window in a combination corresponding to a submode has only one shape, a shape index of the filtering window can be omitted from a syntax table, which can also be applied to the number of neighboring positions in the filtering window.
[00292] In the previous table, eip_tpl_type_idx is a type index of a reconstruction area and eip_tpl_size_idx is a size index of the reconstruction area. This is the same as in the previous embodiment, and the details are not described again.
[00293] In another example, a syntax element, for example, a submode index, instead of a plurality of syntax elements, is used directly to indicate the filtering window and the selected reconstruction area for the current block. A block-level syntax element is parsed as shown in the following table.
[00294] TABLE 14 coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { Descriptor if( CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_INTRA | | CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_PLT ) { if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_LUMA ) { if( sps_eip_enabled_flag ) { intra_eip_flag ae(v) Petition 870250073414, dated 08 / 20 / 2025, pp. 93 / 292 87 / 112 } if( intra_eip_flag ){ eip_mode_idx[ x0 ][ y0 ] ae(v)} else{}}}}
[00295] In the previous table, eip_mode_idx is a submode index of an interpolation filtering mode selected for the current block. Since a submode index corresponds to a combination of a reconstruction area and a filtering window, a number of combinations can be determined based on the type, number of rows, and number of columns of a reconstruction area that can be used, and the shape, number of neighboring and similar positions of a filtering window. Therefore, the reconstruction area and filtering window selected for the current block can be determined based on the submode index. Specifically, a combination corresponding to a value of eip_mode_idx can be determined by searching or table calculation.
[00296] In an exemplary embodiment of the present disclosure, the video decoding method further includes: decoding an intra-subpartition ISP mode beacon, where
[00297] in a case where the ISP mode signaling indicates that an ISP mode is used for a coding unit Petition 870250073414, dated 08 / 20 / 2025, page 94 / 292 88 / 112 current, the current block in which the interpolation filtering is performed is a sub-block obtained by partitioning the current encoding unit; or
[00298] In a case where the ISP mode flag indicates that an ISP mode is not used for a current encoding unit, the current block in which interpolation filtering is performed is the current encoding unit.
[00299] In this mode, the interpolation filtering mode and the intra subpartition (ISP: Intra Sub Partition) are used together. When decoding a syntax element of an intra mode, both the interpolation filtering mode and an intra subpartition mode need to be analyzed. An example of analyzing a block-level intraprediction mode is as follows:
[00300] TABLE 15 coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { Descriptor if( CuPredMode[ chType ][ x0 ][ y0 ] == MODE_INTRA | | CuPredMode[ chType ][ x0 ][ y0 ] == MODE_PLT ) { if( treeType == SINGLE_TREE | | treeType == DUAL_TREE_LUMA ) { if( sps_eip_enabled_flag ) { intra_eip_flag ae(v)} if( intra_eip_flag ){ ...... / / Decode an interpolation filtering submode. Petition 870250073414, dated 08 / 20 / 2025, pp. 95 / 292 89 / 112 if( sps_isp_enabled_flag && intra_luma_ref_idx = = 0 && ( cbWidth <= MaxTbSizeY && cbHeight <= MaxTbSizeY ) && ( cbWidth * cbHeight > MinTbSizeY * MinTbSizeY ) ) intra_subpartitions_mode_flag ae(v) if( intra_subpartitions_mode_flag = = 1 ) intra_subpartitions_split_flag ae(v)} else{}}}}
[00301] According to the previous table, when an ISP mode flag intra_subpartitions_mode_flag and an interpolation filtering mode flag intra_eip_flag are both 1, i.e., enabled, a current encoding unit can be partitioned into a plurality of sub-blocks because ISP is selected. In this case, intraprediction is performed on each sub-block using the interpolation filtering mode. During interpolation filtering, the plurality of sub-blocks obtained through partitioning can share a group of filtering coefficients, or filtering coefficients can be obtained respectively for different sub-blocks.
[00302] In an exemplary embodiment of the present disclosure, after intraprediction is performed in the current block, the video decoding method also includes:
[00303] decode a mode flag Petition 870250073414, dated 08 / 20 / 2025, page 96 / 292 90 / 112 Position-dependent prediction combination (PDPC); and
[00304] when the PDCP mode flag indicates that a PDCP mode is used for the current block, perform weighting on a predicted block of the current block obtained through interpolation filtering using reconstructed pixel values in at least one row and at least one column adjacent to the current block that are not filtered by smoothing.
[00305] In this embodiment, a predicted block obtained through interpolation filtering is further optimized using PDPC technology. In some embodiments, PDPC technology may be used by default for all predicted blocks obtained through interpolation filtering. In some embodiments, the use of PDPC technology may be determined based on the size and shape of a block. In some embodiments, a PDPC mode flag eip_pdpc_flag may be obtained by analyzing a bitstream to determine whether PDPC technology should be used for the current block. An example of analysis of a corresponding syntax element is shown in the following table.
[00306] TABLE 16 coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { Descriptor if( CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_INTRA | | CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_PLT ) { if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_LUMA ) { if( sps_eip_enabled_flag ) { Petition 870250073414, dated 08 / 20 / 2025, p. 97 / 292 91 / 112 intra_eip_flag ae(v)} if( intra_eip_flag ){ ...... / / Decode an interpolation filtering submode. eip_pdpc_flag ae(v)} else{}}}}
[00307] In the previous table, if eip_pdpc_flag equals 1, it indicates that PDPC mode (i.e., PCPC technology) is used for the current block. If eip_pdpc_flag equals 0, this indicates that PDPC mode is not used for the current block. When this syntax element does not exist in the bitstream, a default value of 0 is used, meaning PDPC mode is not used for the current block. In some modes, eip_pdpc_flag can be parsed based on conditions such as block size and shape.
[00308] In an exemplary embodiment of the present disclosure, after performing intraprediction on the current block, the video decoding method further includes: performing intraprediction on the current block according to one or more intraprediction modes that are different from the interpolation filtering mode and performing weighting on a predicted block of the current block obtained by prediction based on one or more intraprediction modes and a predicted block of the current block. Petition 870250073414, dated 08 / 20 / 2025, page 98 / 292 92 / 112 obtained through prediction based on the interpolation filtering mode, to obtain a predicted final block from the current block. In this mode, an interpolation filtering mode can be used with any one or more intraprediction modes, and weighting is performed on an interpolation filtering prediction result and a prediction result from another prediction mode, to obtain a final prediction signal. A weight used for weighting can be a fixed weight or a derived weight. When there is a plurality of weight combinations, a weight index can be obtained through bitstream analysis.
[00309] In an exemplary embodiment of the present disclosure, after performing intraprediction on the current block, the video decoding method further includes: determining a residual of the current block based on an original value and the predicted value of the current block, and performing the transform and the inverse transform on the residual, where
[00310] When performing the transform and inverse transform on the residual, a transform kernel used is a transform kernel obtained based on residual sample training in interpolation filtering mode; or
[00311] When performing the transform and inverse transform on the residual, the number of combinations of a primary transform kernel and a secondary transform kernel is limited; or
[00312] When performing the transform and inverse transform on the residual, the number of combinations of a primary transform kernel and a secondary transform kernel is limited according to a Petition 870250073414, dated 08 / 20 / 2025, page 99 / 292 93 / 112 dimension and / or shape of the current block; or
[00313] When performing the transform and inverse transform on the residual, a transform kernel used to perform intraprediction based on a planar mode is used.
[00314] In this mode, during prediction in interpolation filtering mode, a predicted value of a previous pixel in the current block can be used as an interpolation filtering input for a next pixel to be predicted. Therefore, a prediction error is accumulated, so that the residual distribution is different from that of another existing prediction mode. This means that when the transform and inverse transform are performed on a residual of the interpolation filtering mode by means of non-separable primary transform or non-separable secondary transform, a transform kernel used can be a predefined transform kernel that is trained based on an interpolation filtering error.In some embodiments, because the residual distribution of the interpolation filtering mode is different from that of another existing prediction mode, the number of combinations of a primary transform kernel and a secondary transform kernel of a residual may be limited. For example, only the DCT transform can be used for the primary transform. In some embodiments, because the residual distribution of the interpolation filtering mode is different from that of another existing prediction mode, the number of combinations of a primary transform kernel and a secondary transform kernel of a residual may be limited according to a block parameter (e.g., a size or shape) of the. Petition 870250073414, dated 08 / 20 / 2025, page 100 / 292 94 / 112 current block.
[00315] In an exemplary embodiment of the present disclosure, after performing intraprediction on the current block, the video decoding method further includes: determining a residue of the current block based on an original value and the predicted value of the current block, skipping, using a transform-hopping mode, transforming the residue and performing block-based quantization, dequantization and reconstruction on the current block; or determining a residue of the current block based on an original value and the predicted value of the current block, skipping, using a transform-hopping mode, transforming the residue and performing pixel-by-pixel quantization, dequantization and reconstruction on the pixels of the current block.
[00316] In this mode, since the residual distribution of the interpolation filtering mode is different from that of another existing forecasting mode, the transform jump mode can be used to ignore the transform of a residual in an interpolation filtering-based forecasting mode. When the transform of the residual in the interpolation filtering-based forecasting mode is ignored, block-based quantization, dequantization, and reconstruction can be performed on the current block, or pixel-by-pixel quantization, dequantization, and reconstruction can be performed on the pixels of the current block. This can prevent excessive error accumulation resulting from using a predicted value from a current position as input to a filter at a subsequent position.
[00317] In an exemplary embodiment of the present disclosure, after performing intraprediction in the current block, the video decoding method further includes: when constructing Petition 870250073414, dated 08 / 20 / 2025, page 101 / 292 95 / 112 a most likely mode (MPM) list using the current block as a neighboring block of another encoding block, using a planar mode as an intraprediction mode used for the current block.
[00318] In an exemplary embodiment of the present disclosure, only when the current block is a luma block, the interpolation filtering mode flag of the current block can be decoded; or it doesn't matter if the current block is a luma block or a chroma block, the interpolation filtering mode flag of the current block can be decoded.
[00319] In an exemplary embodiment of the present disclosure, the current block is a luma block; and after performing intraprediction on the current block using the interpolation filtering mode, the method further includes:
[00320] when a DM mode is used for a chroma block at a position where the current block is located, determine that an intraprediction mode used for the chroma block is the planar mode (i.e., the planar mode), where, in this case, the interpolation filtering mode is not used for the chroma block; or
[00321] when a DM mode is used for a chroma block in a position where the current block is located, determine that an intraprediction mode used for the chroma block is an interpolation filtering mode, where, in this case, the interpolation filtering mode can be used for the chroma block; or
[00322] when a DM mode is used for a chroma block in a position where the current block is located, decode a chroma block interpolation filtering mode flag and determine, based on a value of Petition 870250073414, dated 08 / 20 / 2025, page 102 / 292 96 / 112 Interpolation Filtering Mode Flag, if an intraprediction mode used for the chroma block is an interpolation filtering mode. In this case, the interpolation filtering mode can be used for the chroma block, but the use of the interpolation filtering mode needs to be determined with reference to an interpolation filtering mode flag of the chroma block.
[00323] Using intraprediction based on interpolation filtering performed by a decoding end as an example, the following describes specific modes of some processing performed in the previous mode. Obtaining a range for a reconstruction area, a maximum value, and a minimum value.
[00324] When acquiring filtering coefficients, an eip_tpl_size_idx dimension index of a reconstruction area of a current block is first decoded to determine a number of rows and a number of columns of the reconstruction area selected for the current block, which are assumed to be refSize. Additionally, the following parameters are obtained according to the puX and puY coordinates of a pixel in an upper-left corner of the current block: a puWidth width of the current block and a puHeight height of the current block.
[00325] Width of a reference area: refWidth = puWidth * 2 + refSize
[00326] Reference area height: refHeight = puHeight * 2 + refSize
[00327] Horizontal coordinate of an upper left corner of the reference area: refPosPicX = puX - refSize
[00328] Vertical coordinate of an upper corner Petition 870250073414, dated 08 / 20 / 2025, page 103 / 292 97 / 112 right of the reference area: refPosPicY = puY - refSize
[00329] Based on the coordinates and size of the reference area, refBuffer of the reference area is obtained from a reconstructed image buffer, and ref[x][y] indicates a reconstructed pixel value in refBuffer at a distance of (x,y) from the upper left corner of the reference area. To avoid a division operation during averaging, a reconstructed pixel value at the intersection of a first row above the current block and a first column to the left of the current block is used as an average value. Average value = ref[refSize - 1][refSize - 1]
[00330] A process for obtaining a minimum value and a maximum value is shown in the following table.
[00331] TABLE 17 min = INT16_max; max = 0; Set the initial values for the maximum and minimum values. for(y = 0; y < refHeight; ++y) { for(x = 0; y < refWidth; ++x) { if(x>=refSize && y>=refSize) When x > refSize and y > refSize, this position is not reconstructed and is therefore ignored. Continue isValid = cs.isDecomp(refPos, chType) && cs.getCURestricted(refPos, cu, chType) != NULL Determine if a pixel value at a current position is a reconstructed pixel value. if(isValid){ max = ref[x][y] > max? ref[x][y] : max Search for the maximum value. Petition 870250073414, dated 08 / 20 / 2025, page 104 / 292 98 / 112 min = ref[x][y] < min? ref[x][y] : min Search for the minimum value.}}} Solving a Filtration Coefficient
[00332] A 4x4 rectangular window is used as a filtering window. Obtaining, according to a reconstruction area selected for a current block, a group of filtering coefficients used for interpolation filtering includes the following steps. STAGE 1
[00333] Store in temporary storage a sample reconstruction of a corresponding area using matrices A[][] and C[], where a first index of matrix A represents an index of a sample position, a second index of matrix A represents an index (which may be called the input sample index) of a plurality of neighboring positions in the filtering window after the sample position represented by the first index is aligned with a current position in the filtering window, and an index of matrix C represents an index (which may also be called the output sample index) of a filtering coefficient generated by an interpolation filter. One process for obtaining elements in matrices A and C is as follows:
[00334] TABLE 18 numSamples = 0 Record a number of valid samples. for(y = 3; y < refHeight; ++y) { Petition 870250073414, dated 08 / 20 / 2025, page 105 / 292 99 / 112 for(x = 3; x< refWidth; ++x) { if(x>=refSize && y>=refSize &&refType==0) If refType equals 0, ignore a position that is not in the specified area. continue if(y>=refSize &&refType==1) If refType equals 1, ignore a position that is not in the specified area. continue if(x>=refSize &&refType==2) If refType equals 2, ignore a position that is not in the specified area. continue isValid = cs.isDecomp(refPos, chType) && cs.getCURestricted(refPos , cu, chType) ! = NULL Determine if a pixel value at a current position is a reconstructed pixel value. if(isValid){ A[0][numSamples]=ref[x][y -1]-mean A[1][numSamples]=ref[x][y -2]-mean A[2][numSamples]=ref[x][y -3]-mean A[3][numSamples]=ref[x1][y]-mean A[4][numSamples]=ref[x- 1][y-1]-mean A[5][numSamples]=ref[x- 1][y-2]-mean Petition 870250073414, dated 08 / 20 / 2025, p. 106 / 292 100 / 112 A[6][numSamples]=ref[x- 1][y-3]-mean A[7][numSamples]=ref[x2][y]-mean A[8][numSamples]=ref[x- 2][y-1]-mean A[9][numSamples]=ref[x2][y-2]-mean A
[10] [numSamples]=ref[x2][y-3]-mean A
[11] [numSamples]=ref[x3][y]-mean A
[12] [numSamples]=ref[x3][y-1]-mean A
[13] [numSamples]=ref[x- 3][y-2]-mean A
[14] [numSamples]=ref[x- 3][y-3]-mean C[numSamples++]=ref[x][y] -mean}}}
[00335] In this example, a refType value is equal to eip_tpl_type_idx and numSamples indicates a number of sample positions in the reconstruction area. In this example, the step sizes for moving the filtering window in a width direction and a height direction are both 1. refHeight represents a height of the reconstruction area, and refWidth represents a width of the reconstruction area. STAGE 2
[00336] Constructing a coefficient matrix of Petition 870250073414, dated 08 / 20 / 2025, p. 107 / 292 101 / 112 autocorrelation ATA[][] and a cross-correlation coefficient matrix ATY[] according to matrix A[] (note that, as can be found above, the coefficients of the autocorrelation coefficient matrix are symmetrical with respect to a diagonal direction, therefore some calculations can be omitted during construction). This step is as follows:
[00337] TABLE 19 for ( coli0 = 0; coli0 < 15; coli0++ ) { for ( coli1 = coli0; coli1 < 15; coli1++ ) { ATA[coli0][coli1] = 0 for ( rowi = 0; rowi < numSamples; rowi++) { ATA[coli0][coli1] += A[coli0][rowi] * A[coli1][rowi] Obtain an autocorrelation coefficient.}}} for ( coli = 0; coli < 15; coli++ ) { ATY[coli] = 0 for ( rowi = 0; rowi < numSamples; rowi++ ) { ATY[coli] += A[coli][rowi]*C[rowi] Obtain a cross-correlation coefficient.}} matrixShift = 28 - 2 * model.bd - ceilLog2(numSamples); Get a matrix coefficient scaling factor. if(matrixShift > 0){ for ( coli0 = 0; coli0 < 15; coli0++ ) { Petition 870250073414, dated 08 / 20 / 2025, page 108 / 292 102 / 112 for ( coli1 = coli0; coli1 < 15; coli1++ ) { ATA[coli0][coli1] <<= matrixShift Reduce the autocorrelation coefficient.}} for ( coli = 0; coli < 15; coli++ ) { ATY[coli] <<= matrixShift Reduce the cross-correlation coefficient.}} else if (matrixShift < 0) { matrixShift = -matrixShift for ( coli0 = 0; coli0 < 15; coli0++ ) { for ( coli1 = coli0; coli1 < 15; coli1++ ) { ATA[coli0][coli1] >>= matrixShift Reduce the autocorrelation coefficient.}} for ( coli = 0; coli < 15; coli++ ) { ATY[coli] >>= matrixShift Reduce the cross-correlation coefficient.}}
[00338] To solve for a filtering coefficient, in addition to constructing a Wiener filtering equation, another algorithm or method can be used to obtain the filtering coefficient. Petition 870250073414, dated 08 / 20 / 2025, page 109 / 292 103 / 112 STAGE 3
[00339] Decompose the autocorrelation coefficient matrix and solve for an interpolation filtering coefficient by means of back substitution. This can be implemented by means of Cholesky decomposition or lower triangular matrix decomposition (LDL) of unity. FORECASTING PROCESS BASED ON INTERPOLATION FILTERING
[00340] The inputs for this process include: a temporary storage piPred of a block to be predicted, a width and a height of the predicted block, an interpolation filter coefficient C, which is equal to {c0,..., c14}, a minimum value min, a maximum value max, a mean value mean, a temporary storage of reconstructed pixels refBuffer and a buffer tempBuff[MAX_CU_SIZE+3][MAX_CU_SIZE+3] used to temporarily store reconstructed pixel values and intermediate values during prediction.
[00341] A process for generating a predicted value is as follows:
[00342] Step 1: Fill the reconstructed pixels in tempBuff, which can be implemented using the following calculation process:
[00343] TABLE 20 for (y=0; y <height+3; ++y) { for (x=0; x<width+3; ++x) { if(x> =3 && y>=3) Skip an unreconstructed position. continue Petition 870250073414, dated 08 / 20 / 2025, page 110 / 292 104 / 112 tempBuff[x][y] = ref[x-3][y-3] Get a reconstructed value from a corresponding position in refBuffer, where [0][0] indicates a position in the upper-left corner of a current block.
[00344] Stage 2: Complete forecast.
[00345] TABLE 21 for (y=3; y <height+3; ++y) { for (x=3; x<width+3; ++x) { val=c0 x (tempBuff[x][y — 1] — mean) val+=c1 x (tempBuff[x][y — 2] — mean) val+=c2 x (tempBuff[x][y — 3] — mean) val+= c3 x (tempBuff[x — 1][y — 0] — mean) val+= c4 x (tempBuff[x — 1][y — 1] — mean) val+= c5 x (tempBuff[x — 1][y — 2] — mean) val+= c6 x (tempBuff[x — 1][y — 3] — mean) val+=c7 x (tempBuff[x — 2][y] — mean) val+= c8 x (tempBuff[x — 2][y — 1] — mean) val+= c9 x (tempBuff[x — 2][y — 2] — mean) val+= c10 x (tempBuff[x — 2][y — 3] — mean) val+= c11 x (tempBuff[x — 3][y] — mean) Petition 870250073414, dated 08 / 20 / 2025, p. 111 / 292 105 / 112 val+= c12 x (tempBuff[x — 3][y — 1] — mean) val+= c13 x (tempBuff[x — 3][y — 2] — mean) val+= c14 x (tempBuff[x — 3][y — 3] — mean) val=((val+offset)>>shift)+mean Calculate a predicted value for a position (x,y). val=clip3(min,max,val) Limit the predicted value within a range. tempBuff[x][y]=val Temporarily store the predicted value in tempBuff, to facilitate predicting the next position. piPred[x-3][y-3]=val Assign the predicted value to a temporary prediction store.}}
[00346] In the previous table, shift is a scaling factor for calculating a filter coefficient, and offset is an offset value. (The scaling factor is used to ensure a larger dynamic range for an interpolation filter coefficient. Therefore, scaling is performed during the calculation of the coefficient.)
[00347] Based on the VTM10.0 reference software of the VVC test software, the ECM (enhanced compression model) integrates several new tools to further explore encoding and decoding performance. Based on the intraprediction method described in the embodiments of the present disclosure, the performance of using the six reference areas shown in Figure 13A to Figure 13F and the window of Petition 870250073414, dated 08 / 20 / 2025, page 112 / 292 106 / 112 4*4 filtering in the ECM-6.0 reference software is as follows:
[00348] TABLE 22 All Intra Main 10 Above 20220905-ECM6.0 YUV EncT DecT Class A1 Class A2 Class B Class C Class E -0.09% -0.18% -0.08% -0.13% -0.10% -0.10% -0.13% -0.03% -0.06% -0.11% -0.13% -0.24% -0.30% -0.27% -0.30% 108% 92% 107% 94% 111% 96% 110% 95% 111% 91% Overall -0.15% -0.13% -0.15% 110% 94% Class D Class F Class TGM -0.01 % 0.02 % -0.07 % -0.13 % 0.01 % -0.07 % #VALUE! #VALUE! #VALUE! 109 % 84 % 100 % 97 % #VALUE! #VALUE!
[00349] The meanings of the parameters in the tables are as follows:
[00350] EncT: Encoding time, encoding time. 10X % represents that, after the integration of a reference line classification technology, the encoding time is 10X % compared to the time prior to integration, meaning there is an X % increase in encoding time.
[00351] DecT: Decoding time, decoding time. 10X% represents that, after the integration of a reference line classification technology, the decoding time is 10X% compared to before integration, meaning there is an X% increase in time. Petition 870250073414, dated 08 / 20 / 2025, page 113 / 292 107 / 112 decoding.
[00352] Class A1 and Class A2 are test video sequences with a resolution of 3840 x 2160, Class B is a test sequence with a resolution of 1920 x 1080, Class C is 832 x 480, Class D is 416 x 240 and Class E is 1280 x 720; and Class F are various screen content sequences with different resolutions.
[00353] Y, U, and V are three components of a color. The columns in which Y, U, and V are located indicate the BD (Bjontegaard-Delta) ratio indices of a test result in Y, U, and V. A lower value indicates better coding performance.
[00354] All intra indicates a test configuration for an all intra configuration.
[00355] Performing intraprediction encoding and decoding, using the interpolation filtering mode according to the embodiments of the present disclosure, improves an objective compression effect by 0.15%, 0.13% and 0.15%, respectively, for the Y, U and V components under a common test condition.
[00356] One embodiment of the present disclosure further provides a bitstream, where the bitstream is generated using the video encoding method according to any of the embodiments of the present disclosure.
[00357] An embodiment of the present disclosure further provides an intraprediction apparatus based on interpolation filtering. As shown in Figure 15, the apparatus includes a processor 71 and a memory 73 that stores a computer program, wherein when executing the computer program, the processor 71 is able to implement the method Petition 870250073414, dated 08 / 20 / 2025, p. 114 / 292 108 / 112 intraprediction based on interpolation filtering according to any of the modalities of this disclosure.
[00358] One embodiment of the present disclosure further provides a video decoding device. With reference to Figure 15, the device includes a processor and a memory that stores a computer program, wherein when executing the computer program, the processor is able to implement the video decoding method according to any of the embodiments of the present disclosure.
[00359] One embodiment of the present disclosure further provides a video encoding apparatus. With reference to Figure 15, the apparatus includes a processor and a memory that stores a computer program, wherein when executing the computer program, the processor is able to implement the video encoding method according to any of the embodiments of the present disclosure.
[00360] The processor in the preceding embodiments of the present disclosure may be a general-purpose processor, including a central processing unit (CPU), a network processor (NP for short), a microprocessor, or other conventional processor. The processor may alternatively 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, another equivalent discrete or integrated logic circuit, or a combination of the aforementioned components. In other words, the processor in the preceding embodiment may be any device of Petition 870250073414, dated 08 / 20 / 2025, page 115 / 292 109 / 112 processing or a combination of devices that implement the methods, steps, and logic diagrams disclosed in the embodiments of the present invention. If the embodiments of the present disclosure are partially implemented in software, the instructions for the software may be stored on a suitable non-volatile computer-readable storage medium, and the instructions may be executed in the hardware by one or more processors to implement a method in the embodiments of the present disclosure. The term processor used herein may refer to the structure described above or to any other structure suitable for implementing the techniques described herein.
[00361] One embodiment of the present disclosure further provides a video encoding and decoding system, including the video encoding apparatus according to any of the embodiments of the present disclosure and the video decoding apparatus according to any of the embodiments of the present disclosure.
[00362] One embodiment of the present disclosure further provides a non-transient, computer-readable storage medium. The computer-readable storage medium stores a computer program and, when executed by a processor, the computer program is capable of implementing the intra-interpolation filtering-based prediction method according to any of the embodiments of the present disclosure, or the video decoding method according to any of the embodiments of the present disclosure, or the video encoding method according to any of the embodiments of the present disclosure.
[00363] One of the modalities of the present revelation Petition 870250073414, dated 08 / 20 / 2025, p. 116 / 292 110 / 112 also provides a computer program product, including a computer program, wherein, when executed by a processor, the computer program is capable of implementing the intraprediction method based on interpolation filtering according to any of the embodiments of the present disclosure, the video decoding method according to any of the embodiments of the present disclosure, or the video encoding method according to any of the embodiments of the present disclosure.
[00364] In one or more of the above exemplary embodiments, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If the embodiments are implemented in software, the functionality may be stored as one or more instructions or code on a computer-readable medium or transmitted via a computer-readable medium and executed by a hardware-based processing unit. The computer-readable medium may include a computer-readable storage medium corresponding to a tangible medium, such as a data storage medium, or a communication medium that facilitates the transfer of a computer program, for example, from one location to another according to a communication protocol.Thus, computer-readable media can generally correspond to a tangible, non-transient, computer-readable storage medium or a communications medium, such as a signal or carrier. Data storage media can be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and / or data structures for implementation. Petition 870250073414, dated 08 / 20 / 2025, page 117 / 292 111 / 112 the techniques described in the embodiments of the present disclosure. A computer program product may include computer-readable media.
[00365] By way of example, rather than limitation, this computer-readable storage medium may include RAM, ROM, EEPROM, CD-ROM or other optical disc storage devices, magnetic disc storage devices or other magnetic storage devices, flash memory, or any other medium that can be used to store the desired program code in the form of instructions or data structures and that can be accessed by a computer. In addition, any connection may be called computer-readable media.For example, if instructions are transmitted from a site, server, or other remote sources using a coaxial cable, fiber optic cable, twisted pair, DSL (digital subscriber line), or wireless technologies such as infrared, radio, and microwaves, the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwaves are included in the definition of media. However, it should be understood that computer-readable storage media and data storage media do not include connections, carriers, signals, or other temporary (transient) media, but specifically refer to tangible, non-transient storage media. As used in this document, discs and optical discs include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), floppy disks, Blu-ray discs, and the like.In these cases, the discs generally regenerate data magnetically, while optical discs... Petition 870250073414, dated 08 / 20 / 2025, page 118 / 292 112 / 112 optically regenerates data using lasers. A combination of the above should also be included in the range of computer-readable media.
[00366] In some respects, the functionality described in this document may be provided in dedicated hardware and / or software modules configured for encoding and decoding or integrated into a combined codec. Furthermore, the techniques may be fully implemented in one or more circuits or logic elements.
[00367] The technical solutions of the embodiments of the present disclosure can be implemented in a wide range of appliances or devices, including mobile phones, integrated circuits (ICs), or a set of ICs (e.g., a chipset). Various components, modules, or units are described in embodiments of the present disclosure to emphasize the functional aspects of appliances configured to perform the techniques described, but they are not necessarily implemented through different hardware units. Instead, as described above, the various units can be combined into codec hardware units or provided by a collection of interoperable hardware units (including one or more processors, as mentioned above) along with appropriate software and / or firmware. Petition 870250073414, dated 08 / 20 / 2025, page 119 / 292
Claims
1 / 8 CLAIMS 1. INTRAPREDICTION METHOD BASED ON INTERPOLATION FILTERING APPLIED TO A DECODER characterized by comprising: determining, based on a given filtering window and a reconstructed value of a sample in a reconstruction area adjacent to a current block, a filtering coefficient used to perform interpolation filtering on the current block; and performing interpolation filtering based on a sample value of a reference sample adjacent to a current sample and the filtering coefficient, to determine a predicted value of the current sample.
2. INTRAPREDICTION METHOD, according to claim 1, characterized in that the reference sample comprises at least one of the following: a sample reconstructed in the reconstruction area adjacent to the current block or a sample predicted in the current block.
3. INTRAPREDICTION METHOD, according to claim 2, characterized in that the value of the reference samples comprises a reconstructed value of the reference sample; or the sample value of the reference samples comprises a predicted value of the reference sample; or the sample value of the reference sample comprises a reconstructed value of a reconstructed sample contained in the reference sample and a predicted value of the predicted sample in the reference sample.
4. INTRAPREDICTION METHOD, according to claim 1, characterized by Petition 870250073414, dated 08 / 20 / 2025, page 120 / 292 2 / 8 the filtering window being determined based on a block parameter of the current block, and the block parameter comprising at least one dimension or position.
5. INTRAPREDICTION METHOD, according to claim 1, characterized by the determination, based on a given filtering window and the reconstructed sample value in the reconstruction area adjacent to the current block, of the filtering coefficient used to perform interpolation filtering in the current block comprising: decoding a submode index; determining, according to the submode index, a combination of a filtering window used to perform interpolation filtering in the current block and a reconstruction area adjacent to the current block; and determining a set of filtering coefficients according to the filtering window in the combination and reconstructed sample values in the reconstruction area in the combination.
6. INTRAPREDICTION METHOD, according to claim 1, characterized by determining, based on the determined filtering window and the reconstructed sample value in the reconstruction area adjacent to the current block, the filtering coefficient used to perform interpolation filtering in the current block, comprising: decoding a filtering window index or a filtering window parameter index, and determining, based on the filtering window index or the filtering window parameter index, the filtering window used to perform interpolation filtering in the current block; Petition 870250073414, dated 08 / 20 / 2025, p.121 / 292 3 / 8 decode a reconstruction area index or a reconstruction area parameter index, and determine, based on the reconstruction area index or the reconstruction area parameter index, the neighboring reconstruction area of the current block; and determine a set of filtering coefficients according to the filtering window and reconstructed sample values in the reconstruction area.
7. INTRAPREDICTION METHOD, according to claim 1, characterized by determining, based on a given filtering window and the reconstructed sample value in the reconstruction area adjacent to the current block, the filtering coefficient used to perform interpolation filtering in the current block, comprising: decoding an interpolation filtering mode flag of the current block; in a case where it is determined, based on the decoded interpolation filtering mode flag, to perform intraprediction in the current block using an interpolation filtering mode, determining the filtering window and reconstruction area used to perform interpolation filtering in the current block; and determining a set of filtering coefficients according to the filtering window and reconstructed sample values in the reconstruction area.
8. INTRAPREDICTION METHOD, according to claim 1, characterized in that the filtering window comprises a current position and a plurality of neighboring positions, and the filtering coefficients comprise a plurality of filtering coefficients that are in one-to-one correspondence with the plurality of neighboring positions; and performing interpolation filtering on the sample value of the reference sample neighboring the current sample and the filtering coefficient, to determine the predicted value of the current sample, comprises determining samples in all neighboring positions of the filtering window as reference samples neighboring the current sample, and performing interpolation filtering based on the sample values of the reference samples and the filtering coefficients to determine the predicted value of the current sample.
9. INTRAPREDICTION METHOD, according to claim 1, characterized by performing interpolation filtering, based on the sample value of the reference sample adjacent to the current sample and the filtering coefficient, to determine the predicted value of the current sample, comprising: calculating the predicted value pred of the current sample according to the following formula: pred = ^-1(tpn x cn), or calculating the predicted value pred of the current sample according to the following formula: pred = ((Σn-o(tpn x cn)) + offset') >> deviation, where tp is a sample value of an nth reference sample of the current sample, n = 0, 1, ..., N-1, cn is a filtering coefficient corresponding to the nth reference sample in the filtering coefficients, N is a number of filtering coefficients, deviation and offset are predefined values and >> indicates an operation of Petition 870250073414, of 20 / 08 / 2025, pg. 123 / 292 5 / 8 right shift in a binary number.
10. INTRAPREDICTION METHOD, according to claim 1, characterized by performing interpolation filtering, based on the sample value of the reference sample adjacent to the current sample and the filtering coefficient, to determine the predicted value of the current sample, comprising: calculating the predicted value pred of the current sample according to the following formula: pred = ^-1((tPn -m) x cn) + m, or calculating the predicted value pred of the current sample according to the following formula: pred = (((Σn-o((tpn - m) x cn)) + offset') >> deviation) + m, where tp is a sample value of an nth reference sample of the current sample, n = 0, 1, ..., N-1, cn is a filtering coefficient that corresponds to the nth reference sample in the filtering coefficients, N is a number of reference samples, m is an average value of reconstructed values from all or part of the samples in the reconstruction area, deviation and shift are predefined values, and >> indicates a right shift operation on a binary number.
11. INTRAPREDICTION METHOD, according to claim 1, characterized in that the reconstruction area adjacent to the current block comprises one of the following areas adjacent to the current block: an upper reconstruction area above the current block, wherein the upper reconstruction area comprises one or more areas between an area in the upper left corner of the current block, an area directly above the current block and a Petition 870250073414, dated 08 / 20 / 2025, p.124 / 292 6 / 8 area in the upper right corner of the current block; or a reconstruction area to the left of the current block, wherein the reconstruction area to the left comprises one or more areas between an area in the upper left corner of the current block, an area directly to the left of the current block, and an area in the lower left corner of the current block; or an L-shaped reconstruction area above and to the left of the current block, wherein the L-shaped reconstruction area comprises an area directly above the current block, an area in the upper left corner of the current block, and an area directly to the left of the current block, or comprises one or more areas of an area directly above the current block, an area in the upper left corner of the current block, an area directly to the left of the current block, an area in the upper right corner of the current block, or an area in the lower left corner of the current block.
12. INTRAPREDICTION METHOD, according to claim 1, characterized in that a dimension of the reconstruction area adjacent to the current block is determined based on a dimension of the current block; in the reconstruction area adjacent to the current block, a number of rows above the current block and a number of columns to the left of the current block are determined based on the width of the current block and / or the height of the current block; and the reconstruction area adjacent to the current block comprises only one reconstruction area; or, the reconstruction area adjacent to the current block comprises a plurality of reconstruction areas, and the reconstruction areas differ from each other in at least one type, width, height, or position. Petition 870250073414, dated 20 / 08 / 2025, p. 125 / 292 7 / 8 13. INTRAPREDICTION METHOD, according to claim 1, characterized by performing interpolation filtering based on the sample value of the reference sample adjacent to the current sample and the filtering coefficient, to determine the predicted value of the current sample, comprising: performing interpolation filtering based on the sample values of the reference samples and the filtering coefficient, to determine an initial predicted value; when the initial predicted value exceeds a range of predicted values of the current block, correcting the initial predicted value so that the corrected predicted value lies within the range of predicted values of the current block; and determining, based on the corrected predicted value, the predicted value of the current sample.
14. INTRAPREDICTION METHOD BASED ON INTERPOLATION FILTERING APPLIED TO AN ENCODER characterized by: determining, for a current block, at least one combination of a filtering window and a reconstruction area adjacent to the current block; determining, based on the filtering window and reconstructed sample values in the reconstruction area in at least one combination, at least one set of filtering coefficients used to perform interpolation filtering on the current block; performing interpolation filtering based on sample values of reference samples adjacent to a current sample and at least one set of filtering coefficients to determine a predicted value of the current sample.
15. NON-TRANSIENT STORAGE MEDIA Petition 870250073414, dated 08 / 20 / 2025, p. 126 / 292 8 / 8 STORING A BIT STREAM characterized in that the bit stream is generated by an intraprediction method comprising: determining, for a current block, at least one combination of a filtering window and a reconstruction area adjacent to the current block; determining, based on the filtering window and reconstructed sample values in the reconstruction area in at least one combination, at least one set of filtering coefficients used to perform interpolation filtering on the current block; performing interpolation filtering based on sample values of reference samples adjacent to a current sample and at least one set of filtering coefficients to determine a predicted value of the current sample. Petition 870250073414, dated 08 / 20 / 2025, p. 127 / 292