Video coding method and device, electronic equipment, program product, storage medium and bit stream storage method
By combining temporal motion compensation filtering and spatial enhancement filtering during the video encoding process, the problem of performance degradation caused by MCTF was solved, and the video encoding performance was improved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- BEIJING DAJIA INTERNET INFORMATION TECH CO LTD
- Filing Date
- 2026-01-29
- Publication Date
- 2026-05-01
AI Technical Summary
Existing motion-compensated temporal filtering (MCTF) methods may cause filtering artifacts in video frames, leading to a decrease in coding performance.
Spatial enhancement filtering is introduced into the motion compensation time-domain filtering process. By performing spatial enhancement filtering in the motion compensation stage and the filtering stage, and combining time-domain motion compensation filtering and spatial enhancement filtering, the filtering parameters are adaptively adjusted.
While removing video noise and inter-frame redundancy, texture protection is achieved, video coding performance is improved, and a trade-off between bitrate savings and quality loss is achieved.
Smart Images

Figure CN121967718A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of video coding technology, and more specifically, to a video coding method, apparatus, electronic device, program product, storage medium, and method for storing bit streams. Background Technology
[0002] Various electronic devices support digital video. These devices transmit and receive, or otherwise transfer, digital video data via communication networks, and / or store digital video data on storage devices. Because communication networks have limited bandwidth capacity and storage devices have limited storage resources, video data can be compressed using one or more video codec standards before transmission or storage to generate coded video data using a lower bit rate, while avoiding or minimizing video quality degradation.
[0003] To improve video coding performance, temporal filtering methods can be used. Among these methods, Motion Compensation Temporal Filter (MCTF) has been widely adopted by many coding standards to remove high-frequency and random noise from the video before encoding, thereby improving the overall compression efficiency. However, MCTF may exhibit filtering artifacts on video frames, leading to a degrade in coding performance. Summary of the Invention
[0004] Embodiments of this disclosure provide a video encoding method, apparatus, electronic device, program product, storage medium, and method for storing bit streams.
[0005] According to a first aspect of this disclosure, a video encoding method is provided, comprising: performing motion-compensated temporal filtering on a current frame based on a current frame and a reference frame of the current frame; and encoding the current frame based on the motion-compensated temporal filtering result of the current frame, wherein performing motion-compensated temporal filtering on the current frame based on the current frame and the reference frame of the current frame includes: performing spatial enhancement filtering on the input of a motion compensation stage during the process of performing motion-compensated temporal filtering on the current frame, and / or performing spatial enhancement filtering on the input of a filtering stage.
[0006] In some embodiments, performing spatial enhancement filtering on the input of the motion compensation stage includes: performing spatial enhancement filtering on the reference frame to obtain an enhanced reference frame; wherein the enhanced reference frame is used to perform motion compensation on the current block in the current frame.
[0007] In some embodiments, performing spatial enhancement filtering on the reference frame includes: determining enhancement filtering weights based on the index of the reference frame; and performing spatial enhancement filtering on the reference frame based on the enhancement filtering weights.
[0008] In some embodiments, determining the enhancement filter weights based on the index of the reference frame includes: selecting the enhancement filter weights corresponding to the index of the reference frame from a plurality of preset enhancement filter weights, wherein the correspondence between each index and the plurality of preset enhancement filter weights is preset.
[0009] In some embodiments, performing spatial enhancement filtering on the input of the filtering stage includes: performing spatial enhancement filtering on the current predetermined reference block after the motion compensation stage to obtain an enhanced reference block, wherein the enhanced reference block is used to perform filtering on the current block in the current frame.
[0010] In some embodiments, performing spatial enhancement filtering on the current predetermined reference block after the motion compensation stage includes: determining enhancement filtering weights by considering at least one of the relative static degree, relative distortion degree, and relative complexity of the current predetermined reference block; and performing spatial enhancement filtering on the current predetermined reference block based on the enhancement filtering weights; wherein the relative static degree indicates the degree to which the current predetermined reference block is in a static scene, wherein the relative distortion degree indicates the relative level of distortion of the current predetermined reference block compared to the distortion of other predetermined reference blocks in the reference frame, and wherein the relative complexity indicates the relative relationship between the variance and distortion of the current predetermined reference block.
[0011] In some embodiments, determining the enhancement filter weights by considering at least one of the relative staticity, relative distortion, and relative complexity of the current predetermined reference block includes: determining the enhancement filter weights based on at least one of a first weight factor corresponding to the relative staticity, a second weight factor corresponding to the relative distortion, and a third weight factor corresponding to the relative complexity, wherein the relative staticity is negatively correlated with the first weight factor, the relative distortion is negatively correlated with the second weight factor, and the relative complexity is negatively correlated with the third weight factor.
[0012] In some embodiments, determining the enhancement filter weights by considering at least one of the relative staticity, relative distortion, and relative complexity of the current predetermined reference block includes: skipping the execution of spatial domain enhancement filtering if it is determined that the predetermined reference block is in a static scene; and determining the enhancement filter weights based on at least one of a second weight factor corresponding to the relative distortion and a third weight factor corresponding to the relative complexity if it is determined that the predetermined reference block is not in a static scene, wherein the relative distortion is negatively correlated with the second weight factor and the relative complexity is negatively correlated with the third weight factor.
[0013] In some embodiments, performing spatial enhancement filtering on the input of the filtering stage includes: performing spatial enhancement filtering on the current frame to obtain an enhanced current frame; wherein, in the filtering stage, filtering is performed on the current block in the enhanced current frame.
[0014] In some embodiments, the spatial enhancement filtering is implemented using Gaussian enhancement filtering.
[0015] According to a second aspect of this disclosure, a video encoding apparatus is provided, comprising: a filtering module configured to perform motion-compensated temporal filtering on a current frame based on a current frame and a reference frame of the current frame; and an encoding module configured to encode the current frame based on the motion-compensated temporal filtering result of the current frame, wherein the filtering module is configured to perform spatial enhancement filtering on the input of the motion compensation stage during the process of performing motion-compensated temporal filtering on the current frame, and / or to perform spatial enhancement filtering on the input of the filtering stage.
[0016] In some embodiments, the filtering module is configured to: perform spatial enhancement filtering on the reference frame to obtain an enhanced reference frame; wherein the enhanced reference frame is used to perform motion compensation on the current block in the current frame.
[0017] In some embodiments, the filtering module is configured to: determine enhancement filtering weights based on the index of the reference frame; and perform spatial enhancement filtering on the reference frame based on the enhancement filtering weights.
[0018] In some embodiments, the filtering module is configured to: select an enhancement filtering weight corresponding to the index of the reference frame from a plurality of preset enhancement filtering weights, wherein the correspondence between each index and the plurality of preset enhancement filtering weights is preset.
[0019] In some embodiments, the filtering module is configured to perform spatial enhancement filtering on the current predetermined reference block after the motion compensation stage to obtain an enhanced reference block, wherein the enhanced reference block is used to perform filtering on the current block in the current frame.
[0020] In some embodiments, the filtering module is configured to: determine enhancement filtering weights by considering at least one of the relative staticity, relative distortion, and relative complexity of the current predetermined reference block; and perform spatial enhancement filtering on the current predetermined reference block based on the enhancement filtering weights; wherein the relative staticity indicates the degree to which the current predetermined reference block is in a static scene, wherein the relative distortion indicates the relative level of distortion of the current predetermined reference block compared to the distortion of other predetermined reference blocks in the reference frame, and wherein the relative complexity indicates the relative relationship between the variance and distortion of the current predetermined reference block.
[0021] In some embodiments, the filtering module is configured to: determine the enhancement filtering weights based on at least one of a first weight factor corresponding to the relative static degree, a second weight factor corresponding to the relative distortion degree, and a third weight factor corresponding to the relative complexity, wherein the relative static degree is negatively correlated with the first weight factor, the relative distortion degree is negatively correlated with the second weight factor, and the relative complexity is negatively correlated with the third weight factor.
[0022] In some embodiments, the filtering module is configured to: skip performing spatial enhancement filtering if it is determined that the predetermined reference block is in a static scene; and determine the enhancement filtering weights based on at least one of a second weight factor corresponding to the relative distortion degree and a third weight factor corresponding to the relative complexity if it is determined that the predetermined reference block is not in a static scene, wherein the relative distortion degree is negatively correlated with the second weight factor and the relative complexity is negatively correlated with the third weight factor.
[0023] In some embodiments, the filtering module is configured to: perform spatial enhancement filtering on the current frame to obtain an enhanced current frame; wherein, during the filtering phase, filtering is performed on the current block in the enhanced current frame.
[0024] In some embodiments, the spatial enhancement filtering is implemented using Gaussian enhancement filtering.
[0025] According to a third aspect of this disclosure, an electronic device is provided, comprising: one or more processors; and a memory coupled to the one or more processors and configured to store instructions executable by the one or more processors, wherein the one or more processors, when executing the instructions, are configured to perform a video encoding method according to an exemplary embodiment of this disclosure.
[0026] According to a fourth aspect of this disclosure, a computer program product is provided, including computer instructions that, when executed by at least one processor, implement the video encoding method according to exemplary embodiments of this disclosure.
[0027] According to a fifth aspect of this disclosure, a non-transitory computer-readable storage medium is provided, on which instructions and a bit stream are stored, wherein the instructions, when executed by a computing device having one or more processors, cause the one or more processors to perform a video encoding method as described in exemplary embodiments of this disclosure to generate the bit stream.
[0028] According to a sixth aspect of this disclosure, a method for storing a bitstream is provided, comprising: performing a video encoding method as described in an exemplary embodiment of this disclosure to generate a bitstream; and storing the bitstream.
[0029] The technical solutions provided by the embodiments of this disclosure have at least the following beneficial effects: By employing the video coding scheme according to this disclosure, during the process of performing motion-compensated temporal filtering on video frames, spatial enhancement filtering can be introduced in the motion compensation stage and / or the filtering stage to achieve a combination of the advantages of temporal motion compensation filtering and spatial enhancement filtering. This can remove source video noise and inter-frame redundancy while achieving texture protection in the spatial domain, thereby achieving a trade-off between bitrate savings and quality loss during the coding process and improving video coding performance.
[0030] Furthermore, in the video coding method according to this disclosure, spatial enhancement filtering design can be incorporated into at least one stage of motion estimation, motion compensation, and filtering in temporal motion compensation.
[0031] Furthermore, the video coding method according to the embodiments of this disclosure can also adaptively adjust the parameters of the spatial enhancement filter using multiple temporal motion features, and in conjunction with MCTF temporal filtering and spatial enhancement filtering, achieve adaptive weight adjustment, thereby further improving video coding performance.
[0032] It will be understood that the above general description and the following detailed description are merely examples and do not limit this disclosure. Attached Figure Description
[0033] The accompanying drawings, which are incorporated in and form part of this specification, illustrate examples according to this disclosure and, together with this description, serve to explain the principles of this disclosure.
[0034] Figure 1 This is a block diagram illustrating an exemplary system for encoding and decoding video blocks according to some embodiments of the present disclosure.
[0035] Figure 2This is a block diagram illustrating an exemplary video encoder according to some embodiments of the present disclosure.
[0036] Figure 3 This is a block diagram illustrating an exemplary video decoder according to some embodiments of the present disclosure.
[0037] Figure 4 This is a schematic diagram illustrating motion-compensated temporal filtering according to some embodiments of the present disclosure.
[0038] Figure 5 This is a schematic diagram illustrating motion estimation, motion compensation, and weighted filtering of MCTF according to some embodiments of the present disclosure.
[0039] Figure 6 This is a schematic flowchart illustrating a video encoding method according to some embodiments of the present disclosure.
[0040] Figure 7 This is a schematic diagram illustrating multi-stage coordinated temporal motion compensation and spatial enhancement filtering according to some embodiments of the present disclosure.
[0041] Figure 8 This is a schematic block diagram illustrating a video encoding apparatus according to some embodiments of the present disclosure.
[0042] Figure 9 This is a diagram illustrating a computing environment coupled to a user interface according to some embodiments of the present disclosure. Detailed Implementation
[0043] Referring now to the detailed description, examples of which are illustrated in the accompanying drawings. Numerous non-limiting details are set forth in the following detailed description to aid in understanding the subject matter presented herein. However, various alternatives may be used without departing from the scope of the claims, and the subject matter may be practiced without these specific details. For example, the subject matter presented herein can be implemented on many types of electronic devices with digital video capabilities.
[0044] It should be noted that the terms "first," "second," etc., used in the specification, claims, and drawings of this disclosure are used to distinguish objects and not to describe any specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this disclosure described herein can be implemented in sequences other than those shown in the drawings or described in this disclosure.
[0045] Figure 1 This is a block diagram illustrating an exemplary system 10 for encoding and decoding video blocks in parallel, according to some embodiments of the present disclosure. Figure 1As shown, system 10 includes a source device 12 that generates and encodes video data for later decoding by a target device 14. The source device 12 and target device 14 can include any electronic device from a wide variety of electronic devices, including cloud servers, server computers, desktop or laptop computers, tablet computers, smartphones, set-top boxes, digital televisions, cameras, display devices, digital media players, video game consoles, video streaming devices, etc. In some embodiments, the source device 12 and target device 14 are equipped with wireless communication capabilities.
[0046] like Figure 1 As shown, source device 12 includes a video source 18, a video encoder 20, and an output interface 22. The video source 18 may include sources or combinations of such sources, such as: a video capture device (e.g., a camera), a video archive containing previously captured video, a video feed interface for receiving video from a video content provider, and / or a computer graphics system for generating computer graphics data as source video.
[0047] Video, whether captured, pre-captured, or computer-generated, can be encoded by video encoder 20. Encoded video data may include a series of images, each of which may include one or more sample arrays, for example, for monochrome, only luminance (Y); luminance and two chrominances in the YCbCr or YCgCo domain; or green, blue, and red in the GBR (also known as RGB) domain. For ease of reference and terminology in this application, in some embodiments, the variables and terms associated with each set having three sample arrays may be referred to as luminance and chrominance, where the two chrominance arrays may be referred to as Cb and Cr, regardless of the actual color representation used. Video data may be in chrominance format 4:0:0, chrominance format 4:2:0, chrominance format 4:2:2, or chrominance format 4:4:4, but this application is not limited thereto. The bit depth (BitDepth) of the samples in the sample array can be an integer ranging from 8 to 16, for example, a BitDepth value of 8, 9, 10, 11, 12, 13, 14, 15, or 16. It should be noted that the value of BitDepth is not limited to this, but can be any other value proposed in the future.
[0048] Encoded video data can be directly transmitted to the target device 14 via link 16 through the output interface 22 of the source device 12. The output interface 22 may include a modem and / or a transmitter. Link 16 may include any type of wireless communication medium or device and / or any type of wired communication medium or device capable of transmitting encoded video data from the source device 12 to the target device 14. The encoded video data may also (or alternatively) be stored on storage device 32 for later access by the target device 14 or by other devices via, for example, input interface 28, for decoding and / or playback.
[0049] Target device 14 includes an input interface 28, a video decoder 30, and a display device 34. Input interface 28 may include a receiver and / or a modem and receives encoded video data via link 16. Alternatively, target device 14 may access stored video data from storage device 32 via streaming, downloading, or a combination of both. Encoded video data may include various syntax elements generated by video encoder 20 for use by video decoder 30 when decoding the video data. Display device 34 may be an integrated display device or an external display device configured to communicate with target device 14 and may display the decoded video data to a user.
[0050] The video encoder 20 and video decoder 30 can operate (e.g., encode and decode video data) according to proprietary or industry standards (e.g., Universal Video Codec (VVC), Joint Exploratory Test Model (JEM), High Efficiency Video Codec (HEVC / H.265), Advanced Video Codec (AVC / H.264), Moving Picture Experts Group (MPEG) codec) or extensions of such standards. It should be understood that this application is not limited to any specific video coding / decoding standard and may be applicable to other current and future video coding / decoding standards.
[0051] The video encoder 20 and video decoder 30 can be implemented as any circuit of a variety of suitable encoder and / or decoder circuits, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic devices, software, hardware, firmware, or any combination thereof. When partially implemented in software, the electronic device may store instructions for software in a suitable non-transitory computer-readable medium and use one or more processors to execute the instructions in the hardware to perform the video encoding / decoding operations disclosed in this disclosure. Each of the video encoder 20 and video decoder 30 may be included in one or more encoders or decoders, either of which may be integrated as part of a combined encoder / decoder (CODEC) in the respective device.
[0052] Figure 2 This is a block diagram illustrating an exemplary video encoder 20 according to some embodiments described in this application.
[0053] like Figure 2 As shown, the video encoder 20 includes a video data memory 40, a prediction processing unit 41, a decoded picture buffer (DPB) 64, an adder 50, a transform processing unit 52, a quantization unit 54, and an entropy coding unit 56. The prediction processing unit 41 further includes a motion estimation unit 42, a motion compensation unit 44, a segmentation unit 45, an intra-frame prediction processing unit 46, and an intra-frame block copy (IBC) unit 48. In some embodiments, the video encoder 20 also includes an inverse quantization unit 58, an inverse transform processing unit 60, and an adder 62 for video block reconstruction. A loop filter 63, such as a deblocking filter, can be located between the adder 62 and the DPB 64 to filter block boundaries to remove block artifacts from the reconstructed video. In addition to the deblocking filter, another loop filter (e.g., a sample adaptive offset (SAO) filter, a cross-component sample adaptive offset (CCSAO) filter, and / or an adaptive loop filter (ALF)) can be used to filter the output of the adder 62. In some examples, the loop filter can be omitted, and the decoded video block can be directly provided to the DPB 64 by the adder 62. The video encoder 20 can take the form of a fixed or programmable hardware unit, or it can be distributed among one or more of the fixed or programmable hardware units described.
[0054] The video data storage device 40 can store video data encoded by the components of the video encoder 20. For example, it can store data from... Figure 1 The video source 18 shown obtains video data from the video data storage 40. The DPB 64 is a buffer that stores reference video data (e.g., reference frames or pictures) used by the video encoder 20 when encoding the video data. It should be noted that in the field of video encoding and decoding, the term "frame" can be used as a synonym for the terms "image" or "picture".
[0055] like Figure 2As shown, after receiving video data, segmentation unit 45 segments the video data into video blocks. This segmentation may also include segmenting the video frame into strips, tiles (e.g., a collection of video blocks) or other larger coding units (CUs) according to a predefined splitting structure associated with the video data (e.g., a quadtree (QT) structure). It should be noted that the term "block" or "video block" as used herein can be a portion of a frame or image, particularly a rectangular (square or non-square) portion. Referring to, for example, HEVC and VVC, a block or video block can be or corresponds to a coding tree unit (CTU), CU, prediction unit (PU), or transform unit (TU) and / or can be or corresponds to a corresponding block (e.g., coding tree block (CTB), coding block (CB), prediction block (PB), or transform block (TB)) and / or sub-block.
[0056] Prediction processing unit 41 can select one of several feasible predictive coding modes for the current video block based on error results (e.g., coding rate and distortion level), such as one of several intra-frame or inter-frame predictive coding modes. Prediction processing unit 41 can provide the resulting intra-frame or inter-frame predictive coded block to adder 50 to generate a residual block, and to adder 62 to reconstruct the coded block for subsequent use as part of a reference frame. Prediction processing unit 41 also provides at least one of the syntax elements (e.g., motion vectors, intra-frame or inter-frame mode indicators, segmentation information, and other such syntax information) to entropy coding unit 56.
[0057] To select a suitable intra-predictive coding mode for the current video block, the intra-predictive processing unit 46 may perform intra-predictive coding of the current video block relative to one or more neighboring blocks in the same frame as the current block to be encoded to provide spatial prediction. The motion estimation unit 42 and the motion compensation unit 44 perform inter-predictive coding of the current video block relative to one or more prediction blocks in one or more reference frames to provide temporal prediction. The video encoder 20 may perform multiple coding passes, for example, to select a suitable coding mode for each block of video data.
[0058] In some implementations, motion estimation unit 42 generates a motion vector for the current block according to a predetermined pattern within the video frame sequence during motion estimation. The motion vector can indicate the displacement of a video block within the current frame relative to a predicted block within a reference frame associated with the current block being encoded. The predetermined pattern can designate video frames in the sequence as P-frames or B-frames. In some implementations, the motion vector prediction value (MVP) of the current block is subtracted from the actual motion vector of the current block to produce the motion vector difference (MVD) of the current block, where the MVP can be determined based on motion information from spatially adjacent blocks and / or temporally co-located blocks of the current block. The MVP and MVD information can then be encoded into the video bitstream instead of the actual motion vector of the current block. IBC unit 48 can determine the vectors (e.g., block vectors) for IBC encoding / decoding in a similar manner to how motion estimation unit 42 determines the motion vectors for inter-frame prediction, or the block vectors can be determined using motion estimation unit 42. It should be noted that the IBC pattern can be considered an intra-frame prediction pattern, or a prediction pattern other than intra-frame and inter-frame prediction patterns.
[0059] Regarding pixel differences, the predicted block for a video block can be, or can correspond to, a block or reference block of a reference frame considered to closely match the video block to be encoded. Pixel differences can be determined by sum of absolute differences (SAD), sum of squared differences (SSD), or other difference metrics. In some implementations, the video encoder 20 can compute values for sub-integer pixel positions of the reference frame stored in the DPB 64. For example, the video encoder 20 can interpolate values for quarter-pixel positions, eighth-pixel positions, or other fractional pixel positions of the reference frame. Therefore, the motion estimation unit 42 can perform motion search relative to full-pixel positions and fractional pixel positions and output a motion vector with fractional pixel accuracy.
[0060] The motion estimation unit 42 determines the motion vector information of a video block in an inter-frame predictive coding frame by comparing the position of the video block with the position of the predicted block of a reference frame selected from either a first reference frame list (list 0) or a second reference frame list (list 1), where each reference frame list identifies one or more reference frames stored in the DPB 64. The motion estimation unit 42 sends the determined motion vector information to the motion compensation unit 44, and then to the entropy coding unit 56.
[0061] Motion compensation performed by motion compensation unit 44 may involve acquiring or generating prediction blocks based on motion vector information determined by motion estimation unit 42. Upon receiving motion vector information for the current video block, motion compensation unit 44 may locate the prediction block pointed to by the motion vector in a reference frame list within a reference frame list, retrieve the prediction block from DPB 64, and forward the prediction block to adder 50. Motion compensation unit 44 may also generate syntax elements associated with video blocks of a video frame for use by video decoder 30 when decoding video blocks of the video frame. Syntax elements may include, for example, syntax elements defining motion vectors for identifying prediction blocks, any flags indicating prediction modes, or any other syntax information described herein. It should be noted that motion estimation unit 42 and motion compensation unit 44 may be highly integrated, but are described separately for conceptual purposes.
[0062] Intra-prediction processing unit 46 can provide information indicating the intra-prediction mode selected for a block to entropy coding unit 56. Entropy coding unit 56 can encode the information indicating the selected intra-prediction mode into the bitstream.
[0063] After prediction processing unit 41 determines the prediction block for the current video block, adder 50 forms a residual block by subtracting the pixel values of the prediction block from the pixel values of the current video block (forming a pixel difference). The pixel difference may include a luminance component difference, a chrominance component difference, or both. The residual video data in the residual block may be included in one or more TUs and provided to transform processing unit 52. Transform processing unit 52 transforms the residual video data into residual transform coefficients using one or more transforms (e.g., Discrete Cosine Transform (DCT) or a conceptually similar transform).
[0064] The transform processing unit 52 can send the resulting transform coefficients to the quantization unit 54. The quantization unit 54 quantizes the transform coefficients to further reduce the bit rate. The quantization process can also reduce the bit depth associated with some or all of the coefficients. The degree of quantization can be modified by adjusting the quantization parameters. In some examples, the quantization unit 54 can subsequently perform a scan on the matrix including the quantized transform coefficients. Alternatively, the entropy coding unit 56 can perform the scan.
[0065] After quantization, the entropy coding unit 56 entropy codes the quantized transform coefficients into a video bitstream using, for example, context-adaptive variable-length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probabilistic interval segmented entropy (PIPE) coding, or another entropy coding method or technique. The encoded bitstream can then be sent to, for example,... Figure 1 The video decoder 30 shown, or archived in, for example Figure 1The data is stored in storage device 32 for later transmission to or retrieval by video decoder 30. Entropy coding unit 56 can also entropy code the motion vectors and other syntax elements used for the current video frame.
[0066] The inverse quantization unit 58 and the inverse transform processing unit 60 apply inverse quantization and inverse transform, respectively, to reconstruct the residual block in the pixel domain for generating a reference block for predicting other video blocks.
[0067] Adder 62 adds the reconstructed residual block to the predicted block to produce a reference block to be stored in DPB 64.
[0068] Figure 3 This is a block diagram illustrating an exemplary video decoder 30 according to some embodiments of this application. The video decoder 30 includes a video data memory 79, an entropy decoding unit 80, a prediction processing unit 81, an inverse quantization unit 86, an inverse transform processing unit 88, an adder 90, and a DPB 92. The prediction processing unit 81 includes a motion compensation unit 82, an intra-frame prediction unit 84, and an IBC unit 85. The video decoder 30 can perform operations in conjunction with the above. Figure 2 The decoding process described for the video encoder 20 is essentially the inverse of the encoding process. For example, the motion compensation unit 82 can generate prediction data based on the motion vectors received from the entropy decoding unit 80, while the intra-frame prediction unit 84 can generate prediction data based on the intra-frame prediction mode indicator received from the entropy decoding unit 80.
[0069] In some examples, embodiments of this disclosure may be distributed across one or more units of the video decoder 30.
[0070] The video data storage device 79 can store video data, such as encoded video bitstreams, that will be decoded by other components of the video decoder 30. The video data stored in the video data storage device 79 can be obtained, for example, from the storage device 32, from a local video source (e.g., a camera), via wired or wireless network communication of video data, or by accessing a physical data storage medium (e.g., a flash drive or hard disk).
[0071] During the decoding process, the video decoder 30 receives a encoded video bitstream representing video blocks and associated syntax elements of encoded video frames. The entropy decoding unit 80 performs entropy decoding on the bitstream to generate quantization coefficients, motion vector information or intra-prediction mode indicators, and other syntax elements. The entropy decoding unit 80 then forwards the motion vectors or intra-prediction mode indicators, and other syntax elements to the prediction processing unit 81.
[0072] When a video frame is encoded as an intra-predictive coded (I) frame or for intra-coded prediction blocks in other types of frames, the intra-predictive unit 84 can generate prediction data for the video block of the current video frame based on the intra-predictive mode transmitted by signaling and reference data from the previous decoded block of the current frame.
[0073] When a video frame is encoded as an inter-frame predictive coded (i.e., B or P) frame, the motion compensation unit 82 generates one or more prediction blocks for the current video frame based on motion vector information and other syntax elements received from the entropy decoding unit 80. Each of the prediction blocks can be generated from a reference frame within a reference frame list. The video decoder 30 can construct the reference frame list, i.e., list 0 and list 1, based on the reference frames stored in the DPB 92 using a default construction technique.
[0074] In some examples, when encoding a video block according to the IBC mode described herein, IBC unit 85 generates a predicted block for the current video block based on block vector information and other syntax elements received from entropy decoding unit 80. The predicted block can be located within a reconstructed region of the same image as the current video block, defined by video encoder 20.
[0075] The motion compensation unit 82 and / or the IBC unit 85 determine the prediction information for the video block of the current video frame by parsing vector information and other syntax elements, and then use the prediction information to generate a prediction block for the current video block.
[0076] The motion compensation unit 82 can also perform interpolation using interpolation filters, such as those used by the video encoder 20 during encoding of video blocks, to calculate interpolated values for sub-integer pixels of the reference block. In this case, the motion compensation unit 82 can determine the interpolation filters used by the video encoder 20 based on the received syntax elements and use these interpolation filters to generate the prediction block.
[0077] Similar to the process of selecting a prediction block in a reference frame during inter-frame prediction of a video block, both the video encoder 20 and the video decoder 30 need to employ a set of rules to construct a motion vector candidate list (also known as a "merging list") for the current block using those potential candidate motion vectors associated with spatially neighboring and / or temporally co-located blocks. Then, a member is selected from the motion vector candidate list as the motion vector prediction value for the current block. By doing so, it is not necessary to send the motion vector candidate list itself from the video encoder 20 to the video decoder 30, and the index of the selected motion vector prediction value within the motion vector candidate list is sufficient for both the video encoder 20 and the video decoder 30 to encode and decode the current block using the same motion vector prediction value from the motion vector candidate list.
[0078] The dequantization unit 86 dequantizes the quantized transform coefficients provided in the bitstream and entropy-decoded by the entropy decoding unit 80 using the same quantization parameters calculated by the video encoder 20 for each video block in the video frame. The inverse transform processing unit 88 applies an inverse transform (e.g., inverse DCT, inverse integer transform, or a conceptually similar inverse transform process) to the transform coefficients to reconstruct the residual block in the pixel domain.
[0079] Adder 90 reconstructs the decoded video block for the current video block by adding the residual block from inverse transform processing unit 88 to the corresponding prediction block. A loop filter 91 (e.g., a deblocking filter, SAO filter, CCSAO filter, and / or ALF) may be located between adder 90 and DPB 92 for further processing of the decoded video block. In some examples, loop filter 91 may be omitted, and the decoded video block may be directly provided to DPB 92 by adder 90. The decoded video block in a given frame is then stored in DPB 92, which stores reference frames for subsequent motion compensation of the next video block. DPB 92, or a separate memory device from DPB 92, may also store the decoded video for later presentation on a display device (e.g., ...). Figure 1 On the display device 34).
[0080] Motion Compensation Temporal Filter (MCTF) MCTF is a technique that uses adjacent left and right frames to filter the current frame to be encoded. Figure 4 This is a schematic diagram illustrating time-domain filtering based on motion compensation.
[0081] like Figure 4 As shown, assuming there are 5 adjacent image frames, MCTF can use the left two frames and the right two frames to filter the middle frame. For example, using... Figure 4 The current frame to be encoded in The two adjacent frames on the left and and the two adjacent frames on the right and For the current frame to be encoded Perform filtering. Filtering can be performed in units of, for example, but not limited to, 8×8 blocks, and the positions of the filtered blocks in adjacent frames can be obtained through motion estimation.
[0082] MCTF can consist of three modules (or stages): motion estimation, motion compensation, and weighted filtering.
[0083] Motion estimation (also known as motion search) refers to finding the most similar matching block (e.g., the block with the smallest SSE) among the neighboring frames of the current frame to be encoded. The position of the matching block can be represented by a motion vector (MV). For example, in Figure 4 In the middle, the current frame to be encoded The current block on In image frame The motion vector on is In the image frame The motion vector on is In the image frame The motion vector on is In the image frame The motion vector on is .
[0084] Motion compensation can refer to the process of obtaining interpolated blocks (also known as motion compensation blocks) from adjacent frames of the current frame to be encoded based on the motion vector (MV).
[0085] Weighted filtering can refer to the process of weighted superposition of the current block and the interpolation block. For example, in... Figure 5 In the middle, in the current block When weighted and superimposed with interpolation blocks, the current block The corresponding weighting can be Image frames The corresponding weighting can be Image frames The corresponding weighting can be Image frames The corresponding weighting can be Image frames The corresponding weighting can be .
[0086] Below, we will refer to Figure 5 The processes of motion estimation, motion compensation, and weighted filtering included in MCTF are explained in detail. Figure 5 This is a schematic diagram illustrating an example of motion estimation, motion compensation, and weighted filtering in MCTF.
[0087] Motion estimation (ME) like Figure 5 As shown, assuming the current frame is That is, it is necessary to target the current frame. To perform filtering, several reference frames are needed before and after the current frame, for example, four reference frames before and after it. These reference frames are then used to filter the current frame sequentially. Perform block-level motion estimation. For example, in Figure 5In the current frame If the frame is the 5th frame, then frames 1, 2, 3, 4, 6, 7, 8, and 9 will be set as reference frames, denoted as: , , , , , , , .
[0088] For the current frame respectively Block-level motion estimation is performed with the eight adjacent frames before and after it, with the aim of searching for the current frame. The most similar corresponding block among the 8 reference frames for each 8×8 block, the similar block relative to the current block. The positional offset is the motion vector (MV). Here, since there are 8 reference frames, the current frame... Each 8×8 block in the code will correspond to 8 MVs, namely... , , , , , , and Furthermore, to accelerate the motion estimation process, MCTF can employ a hierarchical pyramid architecture to quickly derive the motion representation (MV) of each 8×8 sub-block.
[0089] Motion compensation (MC) Motion compensation is the process of obtaining interpolation blocks from 8 reference frames based on 8 MVs. The interpolation blocks are then used for final filtering with the original blocks.
[0090] For the current 8×8 block, in each adjacent frame, the corresponding MV found can be directly used for classic block-level motion compensation to obtain the motion compensation block corresponding to that adjacent frame. In this way, by performing motion compensation in 8 adjacent frames, 8 best-matching interpolation blocks, i.e., 8 motion compensation blocks, can be obtained one-to-one with the 8 adjacent frames.
[0091] Weighted filtering For the current frame Each 8×8 block can obtain 8 interpolation blocks from the 8 adjacent reference frames. In this way, a certain weighting ratio can be applied to a total of 9 image blocks to obtain the result of temporal filtering, that is, a filtered 8×8 image block, which will replace the original image block in the original image block.
[0092] Furthermore, when weighting the current block and the interpolated block, the weighting weight corresponding to the current block can be... Image frames The weighted weights corresponding to the interpolation blocks on the above can be Image frames The weighted weights corresponding to the interpolation blocks on the above can be Image frames The weighted weights corresponding to the interpolation blocks on the above can be Image frames The weighted weights corresponding to the interpolation blocks on the above can be Image frames The weighted weights corresponding to the interpolation blocks on the above can be Image frames The weighted weights corresponding to the interpolation blocks on the above can be Image frames The weighted weights corresponding to the interpolation blocks on the above can be Image frames The weighted weights corresponding to the interpolation blocks on the above can be .
[0093] Gaussian Unsharp Mask Filter (GUSM) By enhancing the high-frequency components of an image, its visual effect can be greatly improved. To achieve this, Gaussian mask enhancement filtering can be used, and the specific formula is as follows (1): (1) in, and Indicates the coordinate position of a pixel; Input image; To output the image; As a mask signal, it can be obtained by... High-pass filtering is performed to obtain the result; This is a scaling factor used to control the enhancement effect. Mask signal. The input signal can be multiplied by a Gaussian kernel. produce.
[0094] Problem Statement of the Embodiments of this Disclosure To improve video coding performance, temporal filtering methods such as MCTF and spatial filtering methods such as Gaussian mask enhancement filtering can be employed. Temporal filtering methods offer the most significant performance improvements, and among all temporal filtering methods, MCTF is the most superior.
[0095] MCTF (Motion-Coordinated Transmission Detection) identifies the temporal image blocks most strongly correlated with the current block through motion estimation. It then combines this with bilateral filtering to jointly filter both the current block and these most correlated temporal image blocks, aiming to improve coding performance based on Peak Signal-to-Noise Ratio (PSNR) and Structural Similarity Index Measure (SSIM). MCTF has been widely used in numerous coding standards such as HEVC, VVC, AVS, AV1, and AV2 to remove high-frequency and random noise from videos before encoding, thereby improving overall video compression efficiency.
[0096] Spatial filtering methods use pixels within a certain range of the spatial domain in the same frame to enhance and filter texture details, thereby improving the coding quality based on SSIM. However, in this method, the coding quality based on PSNR is lost.
[0097] In general, both temporal and spatial filtering methods can remove some noise introduced by video shooting or motion to a certain extent, making the filtered video easier to encode. However, they also inevitably have filtering effects, which may cause distortion and performance degradation in the coding rate.
[0098] Specifically, MCTF, as a preprocessing technique for video coding, can modify the video source, removing some pixel information from the source frames. This loss of information at the source reduces inter-frame redundancy and noise, resulting in smaller coding residuals. Ideally, this information would be lost through quantization even without MCTF, and the final reconstruction quality wouldn't differ significantly, but it could substantially reduce bitrate and improve performance. However, in reality, MCTF inevitably suffers from filtering artifacts. When the bitrate savings outweigh the quality degradation caused by the loss of source information, it leads to a negative performance impact. Therefore, the key is to selectively filter, removing insensitive or difficult-to-encode noise while preserving important texture information as much as possible during the filtering process, achieving a better trade-off between bitrate savings and quality loss.
[0099] Spatial enhancement filtering acts like a Gaussian mask overlay on the source signal to enhance texture. For overly smooth textures created by filtering, enhancement can improve visual quality, potentially increasing metrics such as SSIM and VMAF. However, improper filter weighting can amplify noise or disrupt the texture distribution of the source image, resulting in over-sharpening and a greater difference from the source image, leading to a decrease in PSNR and other visual performance metrics.
[0100] To fully utilize the advantages of spatiotemporal domain filtering and alleviate filtering problems, an adaptive temporal motion compensation enhancement filtering method is proposed for video coding methods according to exemplary embodiments of this disclosure. This method can adaptively adjust the spatial domain enhancement filtering by utilizing the characteristics of temporal motion compensation to achieve the effect of collaborative filtering and improve coding performance such as PSNR and SSIM.
[0101] The following will refer to Figure 6 This disclosure provides a detailed description of video encoding methods, apparatus, electronic devices, computer program products, non-transitory computer-readable storage media, and methods for storing bit streams, all in accordance with exemplary embodiments of the present disclosure.
[0102] Figure 6 This is a schematic flowchart illustrating a video encoding method according to some embodiments of the present disclosure.
[0103] like Figure 6 As shown, the video encoding method may include: in step S610, performing motion-compensated temporal filtering on the current frame based on the current frame and a reference frame of the current frame; and in step S620, encoding the current frame based on the motion-compensated temporal filtering result of the current frame.
[0104] Here, in step S610, performing motion compensation temporal filtering on the current frame based on the current frame and the reference frame of the current frame may include: performing spatial enhancement filtering on the input of the motion compensation stage during the process of performing motion compensation temporal filtering on the current frame, and / or performing spatial enhancement filtering on the input of the filtering stage.
[0105] Specifically, Motion Compensation Temporal Filtering (MCTF) can include a motion estimation stage, a motion compensation stage, and a filtering stage. In the embodiments of this disclosure, spatial enhancement filtering can be introduced during the execution of MCTF, thereby combining the advantages of temporal filtering and spatial filtering to alleviate the filtering problem and improve coding performance.
[0106] As an example, the input to the motion compensation stage of performing spatial enhancement filtering described above may include, but is not limited to, each reference frame of the current frame; the input to the filtering stage of performing spatial enhancement filtering described above may include, but is not limited to, the current frame (e.g., the original block in the current frame) and / or the reference block (e.g., the interpolation block) on each reference frame output by the motion compensation stage.
[0107] Furthermore, as an example, the spatial enhancement filtering described in this paper can be achieved through Gaussian enhancement filtering; however, it is not limited to this. In addition to Gaussian filters, other filters (such as, but not limited to, Laplacian sharpening, bilateral filtering, guided filtering, nonlocal mean filtering, etc.) or different parameters of the same filter (3×3, 5×5, 7×7, 8×8, 12×12 Gaussian kernels) can also be used to achieve the effect of spatial enhancement filtering.
[0108] Figure 7 This is a schematic diagram illustrating multi-stage coordinated temporal motion compensation and spatial enhancement filtering according to some embodiments of the present disclosure. The following will refer to... Figure 7 The exemplary procedure described in detail is an example of performing spatial enhancement filtering during the execution of motion-compensated temporal filtering.
[0109] Below, we will first describe an example of performing spatial enhancement filtering on the input of the motion compensation stage.
[0110] As an example, performing spatial enhancement filtering on the input of the motion compensation phase can include performing spatial enhancement filtering on the reference frame to obtain an enhanced reference frame.
[0111] Here, the enhanced reference frame can be used to perform motion compensation on the current block in the current frame.
[0112] Specifically, in the motion estimation stage of MCTF, for each reference frame of the current frame, the most similar corresponding block in each reference frame can be searched, and the MV of the most similar corresponding block relative to the block in the current frame can be determined. For example, the MV(x, y, i) of each 8×8 block in the current frame corresponding to reference frame i can be obtained.
[0113] During the motion compensation phase, motion compensation can be performed on the current block in the current frame for each input reference frame based on the MV determined in the motion estimation phase, thereby determining the compensated reference block (or interpolation block or motion compensation block).
[0114] In embodiments of this disclosure, for example, as Figure 7 As shown, in the reference frame Before being input into the motion compensation (MC) stage, stage 1 spatial enhancement filtering can be performed. Specifically, the reference frame can be filtered first. Perform spatial enhancement filtering to obtain the enhanced reference frame. And the enhanced reference frame The input is fed into the motion compensation stage to perform motion compensation on the current block in the current frame.
[0115] For example, such as Figure 7 As shown, after the ME is completed, a Gaussian enhancement filter can be applied to the reference frame to obtain an enhanced reference frame. Here, the Gaussian enhancement filter can use, for example, but not limited to, 5×5 and 8×8 Gaussian kernels to generate the mask.
[0116] The above method can result in richer texture details in the motion compensation block, thus alleviating the problem of MCTF filtering waves.
[0117] As an example, performing spatial enhancement filtering on a reference frame may include: determining enhancement filtering weights based on the index of the reference frame; and performing spatial enhancement filtering on the reference frame based on the enhancement filtering weights.
[0118] Here, the enhancement filter weights characterize the strength (or degree) of the spatial enhancement filter. A larger enhancement filter weight results in a higher strength (or degree) of spatial enhancement filtering, while a smaller weight results in a lower strength (or degree). Thus, by adjusting the enhancement filter weights, different spatial enhancement filter strengths can be applied to different reference frames. For example, at least two reference frames of the current frame can have different enhancement filter weights.
[0119] Taking Gaussian enhancement filtering as an example, the Gaussian mask used for enhancement filtering can be represented by the following equation (2): (2) in, Input image; For Gaussian masks, Represents the Gaussian kernel coefficients. This indicates the Gaussian kernel size; in this stage, for example, 5×5 and 8×8 Gaussian kernels can be used to generate masks.
[0120] The enhanced signal can be obtained using the Gaussian mask in equation (2) above, as shown in equation (3) below: (3) in, To output the image, Indicates the preset weight. Indicates the weighting factor. This represents the enhanced filter weights, which utilize weight factors. Adjust the preset weight Result. As an example, preset weights. It can be a preset fixed value, for example, 0.2. Weighting factor It can be greater than or equal to 0, and it can be determined based on the index of the reference frame.
[0121] Thus, by determining the enhancement filter weights (e.g., weight factors) based on the index of the reference frame, different reference frames can have different enhancement textures, maintaining the diversity of reference textures in the filtering process.
[0122] In one example, determining the enhancement filter weights based on the index of the reference frame may include selecting the enhancement filter weights corresponding to the index of the reference frame from a plurality of preset enhancement filter weights.
[0123] Here, the correspondence between each index and the aforementioned preset enhancement filter weights can be pre-set. These preset enhancement filter weights may include, for example, including but not limited to... , , and 0, where, This indicates the preset weight, which can be a fixed value, such as 2.
[0124] As an example, the weighting factor can be determined using the following formula (4). To determine the enhancement filter weights corresponding to the index of the reference frame. : (4) in, Indicates the index of the reference frame.
[0125] As an example, the weighting factor used in equation (4) above... The various conditions can be executed sequentially. In response to the satisfaction of any condition, the weight factor can be directly output, and the evaluation of subsequent conditions can be stopped. For example, for the reference frame... The conditions in equation (4) are evaluated sequentially, in response to determining that the index of the reference frame satisfies " "It can be confirmed" This eliminates the need to perform subsequent condition checks.
[0126] Using the above method, adaptive weight adjustment can be performed based on the reference frame index, so that the enhancement weights of reference frames at different intervals are different, thereby achieving frame-level enhancement adaptability, making the texture of the enhanced reference frames richer, and determining the intensity of the enhancement filter for each reference frame.
[0127] Although an example of selecting an enhancement filter weight corresponding to the index of a reference frame from a plurality of preset enhancement filter weights is described herein, embodiments of the present disclosure are not limited thereto, and enhancement filter weights corresponding to each reference frame index can also be determined by setting other preset rules, preset mapping relationships, etc.
[0128] Furthermore, although the above describes adjusting the weight factor to adjust the enhancement filter weights, it is not limited to this; for example, the enhancement filter weights can also be adjusted directly.
[0129] Furthermore, although the above describes an example of determining enhancement filter weights based on the index of the reference frame for spatial enhancement filtering, the embodiments of this disclosure are not limited thereto. In the example of using fixed filter weights, the above-mentioned problem of MCTF filtering waves can also be alleviated.
[0130] The above describes an example of performing spatial enhancement filtering on the input during the motion compensation stage. The following will continue to refer to... Figure 7Describe an example of performing spatial enhancement filtering on the input of the filtering stage.
[0131] The example described above of performing spatial enhancement filtering on the input of the motion compensation stage uses frame-level enhancement filtering and adaptive enhancement filtering weights. Here, performing spatial enhancement filtering on the input of the filtering stage can include block-level enhancement filtering and / or frame-level enhancement filtering, and can also achieve adaptive adjustment of enhancement filtering weights.
[0132] As an example, performing block-level spatial enhancement filtering on the input of the filtering stage could be performing spatial enhancement filtering on the block output of the motion compensation stage.
[0133] For example, performing spatial enhancement filtering on the input of the filtering stage may include performing spatial enhancement filtering on the current predetermined reference block after the motion compensation stage to obtain an enhanced reference block.
[0134] Here, the enhanced reference block can be used to perform filtering on the current block in the current frame.
[0135] For example, refer to Figure 7 After the motion compensation (ME) stage, a reference block (such as the interpolation block or motion compensation block mentioned above) can be determined for the current block in the current frame in each reference frame. Here, the reference block can be an enhanced reference frame that has undergone the spatial enhancement filtering mentioned above. It can be determined from the original reference frame. This is determined in the code. As an example, the reference block can be a CTU, such as a 128×128 CTU.
[0136] In the embodiments of this disclosure, the spatial enhancement filtering of stage 2 can be performed on the reference block determined by the motion compensation ME. As an example, the spatial enhancement filtering of this stage can be based on the same principle as the spatial enhancement filtering of stage 1 described above. For example, Gaussian enhancement filtering of equations (2) and (3) can also be used, but its Gaussian kernel can be different from that of stage 1. For example, Gaussian enhancement filtering with Gaussian kernels of 3×3, 5×5 and 8×8 can be used.
[0137] As an example, the currently reserved reference block mentioned above can be any reference block or any reference block.
[0138] The above methods can enrich the texture details of the reference block and alleviate the problem of MCTF filtering waves.
[0139] In addition, when performing spatial enhancement filtering on the current predetermined reference block, adaptive enhancement filtering weights can also be applied.
[0140] As an example, performing spatial enhancement filtering on the current predetermined reference block after the motion compensation phase may include: determining enhancement filtering weights by considering at least one of the relative staticity, relative distortion, and relative complexity of the current predetermined reference block; and performing spatial enhancement filtering on the current predetermined reference block based on the enhancement filtering weights.
[0141] For example, determining enhancement filter weights by considering at least one of the relative staticity, relative distortion, and relative complexity of the current predetermined reference block may include: determining enhancement filter weights based on at least one of a first weight factor corresponding to the relative staticity, a second weight factor corresponding to the relative distortion, and a third weight factor corresponding to the relative complexity.
[0142] Here, the relative static degree can be negatively correlated with the first weighting factor, the relative distortion degree can be negatively correlated with the second weighting factor, and the relative complexity can be negatively correlated with the third weighting factor.
[0143] Specifically, weighting factors can be determined based on the relative staticity, relative distortion, and relative complexity of the current predetermined reference block. For example, the first weighting factor, the second weighting factor, and the third weighting factor mentioned above. Each weighting factor can represent the degree of spatial enhancement filtering. The larger the weighting factor (e.g., the first weighting factor, the second weighting factor, or the third weighting factor), the higher the degree of spatial enhancement filtering, and the more texture details are preserved.
[0144] As an example, the first, second, and third weighting factors here can be used to determine the final weighting factors used for enhancing the filter, such as in equation (3) above. .
[0145] In the embodiments of this disclosure, the current predetermined reference block can be evaluated from at least one of the following aspects: whether the reference block is a static scene, the degree of distortion of the reference block, and the complexity of the reference block, so as to determine the weight of its enhancement filtering, realize adaptive spatial enhancement filtering based on the current reference block, and perform focused enhancement filtering on different reference blocks, thereby further improving the trade-off between bit rate saving and quality loss.
[0146] As an example, the spatial enhancement filtering performed on the current predetermined reference block can also be Gaussian enhancement filtering, for example, using the above equation (3) to perform spatial enhancement filtering, and the weighting factor can also be adjusted. To achieve this.
[0147] The following will describe in detail an example process for determining the relative staticity, relative distortion, and relative complexity, as well as their respective weighting factors.
[0148] The relative static degree indicates the degree to which the currently predetermined reference block is in a static scene.
[0149] Here, the relative static degree can be determined, for example, but not limited to, based on MV and distortion (e.g., mean squared error, MSE).
[0150] For example, the relative static level of the current predetermined reference block can be determined based on the MV features and distortion features (e.g., MSE features) of the sub-blocks within the current predetermined reference block. Here, the MV features can be, for example, the sum of the MVs of each sub-block, and the distortion features can be, for example, the sum of the MSEs of each sub-block. Furthermore, in this paper, the distortion of each reference block can be obtained during the motion estimation stage of the MCTF. For example, the motion estimation stage can determine the reference frame corresponding to each 8×8 block within the current frame. i The reference distortion MSE(x,y, i).
[0151] As an example, the MV features and distortion features of the sub-blocks within the current predetermined reference block can be represented by the following equations (5) and (6): (5) (6) in, This represents the sum of the MVs of all sub-blocks within the currently reserved reference block; Indicates the first The MV of the individual blocks in x The size of the direction (e.g., the width direction); Indicates the first The MV of the individual blocks in y The magnitude of the direction (e.g., the height direction); This represents the sum of the MSEs of all sub-blocks within the currently reserved reference block; Indicates the first MSE of each sub-block; This indicates the number of sub-blocks within the currently reserved reference block. For example, if the currently reserved reference block can be a 128×128 CTU, then... It can be 256, where each sub-block can be an 8×8 block.
[0152] As an example, determining the enhancement filter weights by considering at least one of the relative staticity, relative distortion, and relative complexity of the current predetermined reference block may include: skipping the execution of spatial enhancement filtering if it is determined that the predetermined reference block is in a static scene; and determining the enhancement filter weights based on at least one of a second weight factor corresponding to the relative distortion and a third weight factor corresponding to the relative complexity if it is determined that the predetermined reference block is not in a static scene.
[0153] Here, the relative degree of distortion can be negatively correlated with the second weighting factor, and the relative complexity can be negatively correlated with the third weighting factor.
[0154] As an example, in response to and (For example For example, 2) can be considered that the current predetermined reference block is in a static scene. In this case, the enhancement filter weight can be determined to be 0. For example, the weight factor in the above formula (3) can be adjusted. This is implemented by setting it to 0. When the current reference block is in a static scene, it can be assumed that spatial domain filtering enhancement is unnecessary for that block. In this case, there is no need to calculate the relative distortion and relative complexity; the spatial domain enhancement filtering can be skipped directly.
[0155] In response to and / or If the current reference block is not in a static scenario, the enhancement filter weights can be determined based on at least one of relative distortion and relative complexity. For example, weight factors used to determine the enhancement filter weights. It can be: a second weighting factor corresponding to the relative degree of distortion; or a third weighting factor corresponding to the relative complexity; or the product of the second and third weighting factors. The methods for determining the second and third weighting factors will be described in detail below.
[0156] By using the above method, the spatial filtering enhancement of static reference frames can be selectively skipped by judging static scenes, thereby reducing coding calculations and improving coding efficiency.
[0157] The relative distortion level indicates the level of distortion of the current predetermined reference block relative to the distortion of other predetermined reference blocks in its reference frame. For example, the relative distortion level can characterize the degree of relative motion distortion of the current predetermined reference block in its reference frame.
[0158] As an example, the motion distortion of each predetermined reference block can be determined, for example, but not limited to, based on MSE (Motion Equation of Equation). For instance, it can be determined based on the MSE characteristics of each sub-block within the predetermined reference block. Here, the MSE characteristics can be, for example, the sum of the MSEs of each sub-block. For example, the current predetermined reference block can be a 128×128 CTU containing 256 8×8 blocks, and the MSES (Motion Equation of Equation) can be obtained by summing the MSEs of these 8×8 blocks separately.
[0159] Given the distortion of the current predetermined reference block and the distortion of each of the other predetermined reference blocks in the reference frame, the relative degree of distortion can be determined, for example, by the following equations (7) and (8): (7) (8) in, Indicates the relative distortion level of the currently reserved reference block; This indicates the total number of predefined reference blocks in the reference frame containing the currently predefined reference block; Indicates the currently reserved reference block The sum of the MSEs of all sub-blocks within it; This indicates the number of predefined reference blocks in the current reference frame whose distortion is greater than that of the current predefined reference block; Indicates that when the condition is met The value is 1 if the condition is met, and 0 otherwise. Indicates that the condition is met. block The count (or the summation of the values of the exponential function).
[0160] As an example, the relative distortion can be negatively correlated with the strength of the spatial enhancement filter. This is because the smaller the block distortion in MCTF, the greater the temporal filtering weight of the block will be, and the heavier the filtering of its texture will be. Therefore, in order to protect the texture, the weight of the spatial enhancement filter can be set to be larger to protect the texture details filtered in the temporal filtering.
[0161] For example, in response to the degree of relative distortion ( For example, it can be 0.95), and the second weighting factor corresponding to the relative distortion level can be set to 2; in response to the relative distortion level ( For example, the second weighting factor can be set to 1.5 (e.g., 0.85); otherwise, it can be set to 1.
[0162] Relative complexity indicates the relative relationship between the variance and distortion of the current predetermined reference block. For example, it can determine the variance of the current 8×8 block to be filtered. and distortion .
[0163] As an example, the relative relationship between variance and distortion can be determined by at least one of the following: the ratio of the two, the difference between the two, the ratio between a calculation term containing variance and a calculation term containing distortion, and the difference between a calculation term containing variance and a calculation term containing distortion. Here, the calculation term may, for example, be, but is not limited to, having a linear form.
[0164] For example, the relative complexity can be determined by the following equation (9): (9) in, Indicates relative complexity. This represents the variance of the currently reserved reference block. This indicates the distortion of the currently reserved reference block. , , and These are preset coefficients, for example, It can be 300. It can be 50. It can be 10. It can be 50, so the above equation (9) can be written in the form of equation (10) for example: (10) However, the above equation (10) is only an example, and each preset coefficient can be set according to actual needs.
[0165] Furthermore, although the above equation (9) shows that the relative complexity is determined based on the ratio between the computational terms containing variance and the computational terms containing distortion, the embodiments of this disclosure are not limited thereto, and the relative relationship between variance and distortion can also be expressed in other ways.
[0166] As an example, relative complexity can be negatively correlated with the strength of spatial enhancement filtering. This is because the greater the relative complexity, or the higher the ratio of the variance of the current block to its distortion, the more complex the current block is, and the smaller the weight of the time-domain filtering of the current block. For such a block, the strength of spatial enhancement filtering can be smaller. Conversely, the smaller the relative complexity, the greater the strength of spatial enhancement filtering can be. In this way, the strength of spatial enhancement filtering can be determined according to the strength of the current block being filtered in the time-domain filtering.
[0167] For example, in response to relative complexity ( For example, it could be 50), and the third weighting factor corresponding to the relative complexity could be set to 2; in response to the relative complexity ( For example, if the value is 100, the third weighting factor can be set to 1.5; otherwise, the third weighting factor can be set to 1.
[0168] The above describes how the enhancement filter weights can be determined by considering at least one of relative staticity, relative distortion, and relative complexity. For example, the enhancement filter weights can be determined by considering at least one of a first weight factor corresponding to relative staticity, a second weight factor corresponding to relative distortion, and a third weight factor corresponding to relative complexity. As an example, when determining the enhancement filter weights by considering at least two of relative staticity, relative distortion, and relative complexity, the weight factors corresponding to said at least two can be multiplied together, and the resulting weight factor can be used... Adjust preset weights This is used to determine the final enhancement filter weights. For example, considering relative staticity, relative distortion, and relative complexity, the final weight factors can be obtained by multiplying the first, second, and third weight factors together. .
[0169] The foregoing describes performing spatial enhancement filtering on a predetermined reference block, the enhanced reference block of which can be used in the filtering stage of MCTF. However, embodiments of this disclosure are not limited to this; spatial enhancement filtering can also be performed on the current frame to achieve spatial enhancement filtering on the input of the filtering stage.
[0170] As an example, performing spatial enhancement filtering on the input of the filtering stage may include: performing spatial enhancement filtering on the current frame to obtain an enhanced current frame, wherein, during the filtering stage, filtering is performed on the current block in the enhanced current frame.
[0171] For example, such as Figure 7 As shown, before filtering, the spatial enhancement filtering of stage 3 can be performed on the current frame. For example, Gaussian enhancement filtering can be used for the spatial enhancement filtering of the current frame, such as Gaussian enhancement filtering with Gaussian kernels of 3×3, 5×5 and 8×8.
[0172] As an example, spatial enhancement filtering can be performed on the current frame using the above equation (3). In one example, adaptive adjustment of the enhancement filtering weights can be omitted, for example, the enhancement filtering weights... It can be a preset fixed value, such as 0.2. However, the embodiments of this disclosure are not limited to this. In another example, the above-described adaptive adjustment process of any enhanced filter weight can also be used to determine its enhanced filter weight.
[0173] Furthermore, as an example, when performing spatial enhancement filtering on the current predetermined reference block after the MC stage, when performing spatial enhancement filtering on the current frame, it is possible not to perform spatial enhancement filtering on reference blocks that have been determined to be in a static scene.
[0174] By performing spatial enhancement processing on the current frame to be filtered before the filtering stage, the texture of the current frame can be protected from being overly smoothed.
[0175] Furthermore, as described above, spatial enhancement filtering can be performed on the input of the motion compensation stage and / or on the input of the filtering stage in MCTF, such as... Figure 8 As shown, it can involve three stages of spatial enhancement filtering. In the embodiments of this disclosure, applying spatial enhancement filtering in any one or more stages can alleviate the problem of filtering waves.
[0176] The video coding method of the present disclosure embodiments has been described above. In the embodiments of the present disclosure, the method was tested based on the KVC codec. Under RA configuration, a 1.5% improvement in coding performance can be obtained, and significant improvements are achieved in multiple subjective and objective indicators such as SSIM, PSNR, and VMAF.
[0177] As described above, the video coding method according to the embodiments of this disclosure proposes an adaptive spatiotemporal motion compensation enhancement filtering method, which can combine temporal motion compensation filtering and spatial Gaussian enhancement filtering. By adaptively adjusting the spatial enhancement filtering weight through temporal motion compensation features, it can achieve the effect of selectively protecting key textures while removing source video noise and inter-frame redundant information, thereby achieving a better weight between bitrate saving and quality loss in the coding process and improving video coding performance.
[0178] Furthermore, the video coding method according to embodiments of this disclosure can incorporate spatial enhancement filtering design into various stages of temporal motion compensation (MC) and temporal motion compensation (ME).
[0179] Furthermore, according to the video coding method of the embodiments of this disclosure, a weight adjustment method for spatial enhancement filtering based on temporal motion compensation features is also proposed. This method adaptively adjusts the parameters of spatial enhancement filtering using multiple temporal motion features, and, in conjunction with MCTF temporal filtering and spatial enhancement filtering, achieves adaptive weight adjustment, thereby further improving video coding performance.
[0180] An exemplary embodiment of this disclosure also provides a video encoding apparatus, such as... Figure 8 As shown, the video encoding device 800 includes a filtering module 810 and an encoding module 820.
[0181] The filtering module 810 is configured to perform motion-compensated temporal filtering on the current frame based on the current frame and a reference frame of the current frame.
[0182] The encoding module 820 is configured to encode the current frame based on the motion-compensated temporal filtering result of the current frame.
[0183] Here, the filtering module 810 is configured to perform spatial enhancement filtering on the input of the motion compensation stage during the process of performing motion compensation temporal filtering on the current frame, and / or to perform spatial enhancement filtering on the input of the filtering stage.
[0184] As an example, the filtering module 810 is configured to perform spatial enhancement filtering on the reference frame to obtain an enhanced reference frame; wherein the enhanced reference frame is used to perform motion compensation on the current block in the current frame.
[0185] As an example, the filtering module 810 is configured to: determine the enhancement filtering weights based on the index of the reference frame; and perform spatial enhancement filtering on the reference frame based on the enhancement filtering weights.
[0186] As an example, the filtering module 810 is configured to select an enhancement filtering weight corresponding to the index of the reference frame from a plurality of preset enhancement filtering weights, wherein the correspondence between each index and the plurality of preset enhancement filtering weights is preset.
[0187] As an example, the filtering module 810 is configured to perform spatial enhancement filtering on the current predetermined reference block after the motion compensation stage to obtain an enhanced reference block, wherein the enhanced reference block is used to perform filtering on the current block in the current frame.
[0188] As an example, the filtering module 810 is configured to: determine enhancement filtering weights by considering at least one of the relative static degree, relative distortion degree, and relative complexity of the current predetermined reference block; and perform spatial enhancement filtering on the current predetermined reference block based on the enhancement filtering weights; wherein the relative static degree indicates the degree to which the current predetermined reference block is in a static scene, wherein the relative distortion degree indicates the relative level of the distortion of the current predetermined reference block compared with the distortion of other predetermined reference blocks in the reference frame, and wherein the relative complexity indicates the relative relationship between the variance and distortion of the current predetermined reference block.
[0189] As an example, the filtering module 810 is configured to determine the enhancement filtering weights based on at least one of a first weight factor corresponding to the relative static degree, a second weight factor corresponding to the relative distortion degree, and a third weight factor corresponding to the relative complexity, wherein the relative static degree is negatively correlated with the first weight factor, the relative distortion degree is negatively correlated with the second weight factor, and the relative complexity is negatively correlated with the third weight factor.
[0190] As an example, the filtering module 810 is configured to: skip performing spatial enhancement filtering if it is determined that the predetermined reference block is in a static scene; and determine enhancement filtering weights based on at least one of a second weight factor corresponding to the relative distortion degree and a third weight factor corresponding to the relative complexity if it is determined that the predetermined reference block is not in a static scene, wherein the relative distortion degree is negatively correlated with the second weight factor and the relative complexity is negatively correlated with the third weight factor.
[0191] As an example, the filtering module 810 is configured to perform spatial enhancement filtering on the current frame to obtain an enhanced current frame; wherein, during the filtering phase, filtering is performed on the current block in the enhanced current frame.
[0192] As an example, spatial enhancement filtering is implemented using Gaussian enhancement filtering.
[0193] It should be understood that the specific processing performed by the aforementioned device has been referenced. Figures 1 to 7 A detailed description has been provided, and the relevant details will not be repeated here.
[0194] Furthermore, it should be understood that each unit in the above-described device may be implemented as a hardware component and / or a software component.
[0195] Figure 9 A computing environment 910 coupled to a user interface 950 is shown. The computing environment 910 may be part of a data processing server. The computing environment 910 includes a processor 920, a memory 930, and an input / output (I / O) interface 940.
[0196] Processor 920 typically controls the overall operation of computing environment 910, such as operations associated with display, data acquisition, data communication, and image processing. Processor 920 may include one or more processors for executing instructions to perform all or some of the steps in the methods described above. Furthermore, processor 920 may include one or more modules that facilitate interaction between processor 920 and other components. The processor may be a central processing unit (CPU), microprocessor, microcontroller, graphics processing unit (GPU), etc.
[0197] Memory 930 is configured to store various types of data to support the operation of computing environment 910. Memory 930 may include predefined software 932. Examples of such data include instructions for any application or method operating on computing environment 910, video datasets, image data, etc. Memory 930 can be implemented using any type of volatile or non-volatile memory device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk.
[0198] I / O interface 940 provides an interface between processor 920 and peripheral interface modules (such as keyboard, click wheel, buttons, etc.). I / O interface 940 can be coupled with encoders and decoders.
[0199] In embodiments, a non-transitory computer-readable storage medium or computer program product is also provided, including, for example, a plurality of programs in memory 930 and / or a storage bitstream, said plurality of programs which can be executed by processor 920 to perform the above-described encoding or decoding methods, said bitstream being generated by the above-described encoding method and / or to be decoded by the above-described decoding method. For example, the computer program product may include a non-transitory computer-readable storage medium. In one example, said plurality of programs can be executed by processor 920 to (e.g., from...) Figure 2 The video encoder 20 in the process receives a bitstream or data stream including encoded video information (e.g., video blocks representing encoded video frames, and / or one or more associated syntax elements, etc.), and can also be executed by the processor 920 to perform the above-described decoding method based on the received bitstream or data stream. In another example, the plurality of programs can be executed by the processor 920 to perform the above-described encoding method to encode video information (e.g., video blocks representing video frames, and / or one or more associated syntax elements, etc.) into a bitstream or data stream, and can also be executed by the processor 920 to (e.g., to...) Figure 3 The video decoder 30 in the middle transmits or stores the bit stream or data stream. Alternatively, the bit stream or data stream may be stored in a non-transitory computer-readable storage medium or a computer program product.
[0200] In an embodiment, a bitstream (e.g., including encoded video information) generated by the above encoding method and / or decoded by the above decoding method is provided.
[0201] In an embodiment, a computing device is also provided, comprising: one or more processors (e.g., processor 920); and a non-transitory computer-readable storage medium or memory 930 therein storing a plurality of programs executable by the one or more processors, wherein the one or more processors are configured to perform the methods described above when executing the plurality of programs. In one example, the one or more processors are configured to perform the encoding method described above to generate a bitstream when executing the plurality of programs, and the computing device may further include a transmitter configured to transmit the bitstream. In an alternative example, the one or more processors are configured to perform the encoding method described above to generate a bitstream when executing the plurality of programs, and to transmit or store the bitstream. In one example, the bitstream will be decoded using the decoding method described above.
[0202] In an embodiment, the computing environment 910 may be implemented by one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs), FPGAs, GPUs, controllers, microcontrollers, microprocessors, or other electronic components for performing the methods described above.
[0203] In one embodiment, a method for storing a bitstream is also provided, comprising: storing the bitstream on a non-transitory computer-readable storage medium, wherein the bitstream is generated by the above-described encoding method and / or decoded by the above-described decoding method. In another embodiment, a method for storing a bitstream or a method for encoding video data is also provided, comprising: performing the above-described encoding method to generate a bitstream, and storing the bitstream on a non-transitory computer-readable storage medium. In one example, the bitstream will be decoded by the above-described decoding method.
[0204] In one embodiment, a method for transmitting a bitstream is also provided, the bitstream being generated by the above-described encoding method and / or decoded by the above-described decoding method. In another embodiment, a method for transmitting a bitstream or for encoding video data is also provided, comprising: performing the above-described encoding method to generate a bitstream, and transmitting the bitstream to a decoder. In one example, the bitstream will be decoded by the above-described decoding method. In another embodiment, a method for receiving a bitstream is also provided, the bitstream being generated by the above-described encoding method and / or decoded by the above-described decoding method.
[0205] In one embodiment, an electronic device is also provided, comprising: one or more processors; and a memory coupled to the one or more processors and configured to store instructions executable by the one or more processors, wherein the one or more processors are configured to perform a video encoding method according to an exemplary embodiment of the present disclosure when executing the instructions.
[0206] In one embodiment, a computer program product is also provided, the computer program product including computer instructions that, when executed by at least one processor, implement the video encoding method according to an exemplary embodiment of the present disclosure.
[0207] In an embodiment, a non-transitory computer-readable storage medium is also provided, on which instructions and a bit stream are stored. When executed by a computing device having one or more processors, the instructions cause one or more processors to perform a video encoding method according to exemplary embodiments of the present disclosure to generate the bit stream.
[0208] In one embodiment, a method for storing a bitstream is also provided, the method comprising: performing a video encoding method as described in an exemplary embodiment of the present disclosure to generate a bitstream; and storing the bitstream.
[0209] The description in this disclosure has been presented for illustrative purposes and is not intended to be exhaustive or limited to this disclosure. Many modifications, variations, and alternative embodiments will be apparent to those skilled in the art from the teachings presented in the foregoing description and the associated drawings.
[0210] Unless otherwise specifically stated, the order of steps in the method according to this disclosure is intended to be illustrative only, and the steps of the method according to this disclosure are not limited to the specific order described above, but may be changed according to actual circumstances. Furthermore, at least one step in the method according to this disclosure may be adjusted, combined, or omitted as needed.
[0211] The examples chosen and described are intended to explain the principles of this disclosure and to enable others skilled in the art to understand the various embodiments of this disclosure, and preferably to utilize the basic principles and various embodiments with various modifications suitable for the intended particular purpose. Therefore, it will be understood that the scope of this disclosure is not limited to the specific examples of the disclosed embodiments, and that modifications and other embodiments are intended to be included within the scope of this disclosure.
Claims
1. A video encoding method, characterized in that, include: Motion-compensated temporal filtering is performed on the current frame based on the current frame and a reference frame of the current frame; Based on the motion-compensated temporal filtering results of the current frame, the current frame is encoded. The step of performing motion-compensated temporal filtering on the current frame based on the current frame and a reference frame of the current frame includes: During the motion-compensated temporal filtering of the current frame, spatial enhancement filtering is performed on the input of the motion compensation stage, and / or spatial enhancement filtering is performed on the input of the filtering stage.
2. The video encoding method as described in claim 1, characterized in that, The process of performing spatial enhancement filtering on the input during the motion compensation phase includes: Perform spatial enhancement filtering on the reference frame to obtain an enhanced reference frame; The enhanced reference frame is used to perform motion compensation on the current block in the current frame.
3. The video encoding method as described in claim 2, characterized in that, The step of performing spatial enhancement filtering on the reference frame includes: Based on the index of the reference frame, the enhancement filter weights are determined; Based on the enhanced filtering weights, spatial enhanced filtering is performed on the reference frame.
4. The video encoding method as described in claim 3, characterized in that, Determining the enhancement filter weights based on the index of the reference frame includes: An enhancement filter weight corresponding to the index of the reference frame is selected from a plurality of preset enhancement filter weights, wherein the correspondence between each index and the plurality of preset enhancement filter weights is preset.
5. The video encoding method as described in claim 1, characterized in that, The process of performing spatial enhancement filtering on the input of the filtering stage includes: Spatial enhancement filtering is performed on the current predetermined reference block after the motion compensation stage to obtain an enhanced reference block. The enhanced reference block is used to perform filtering on the current block in the current frame.
6. The video encoding method as described in claim 5, characterized in that, The step of performing spatial enhancement filtering on the current predetermined reference block after the motion compensation phase includes: The enhancement filter weights are determined by considering at least one of the relative staticity, relative distortion, and relative complexity of the current predetermined reference block. Based on the enhanced filtering weights, spatial enhanced filtering is performed on the current predetermined reference block; The relative static degree indicates the degree to which the currently predetermined reference block is in a static scene. The relative distortion level indicates the level of distortion of the current predetermined reference block relative to the distortion of other predetermined reference blocks in the same reference frame. The relative complexity indicates the relative relationship between the variance and distortion of the current predetermined reference block.
7. The video encoding method as described in claim 6, characterized in that, The step of determining the enhancement filter weights by considering at least one of the relative staticity, relative distortion, and relative complexity of the current predetermined reference block includes: The enhancement filter weights are determined based on at least one of a first weight factor corresponding to the relative static degree, a second weight factor corresponding to the relative distortion degree, and a third weight factor corresponding to the relative complexity. The relative static degree is negatively correlated with the first weighting factor, the relative distortion degree is negatively correlated with the second weighting factor, and the relative complexity is negatively correlated with the third weighting factor.
8. The video encoding method as described in claim 6, characterized in that, The step of determining the enhancement filter weights by considering at least one of the relative staticity, relative distortion, and relative complexity of the current predetermined reference block includes: If the predetermined reference block is determined to be in a static scene, the execution of spatial enhancement filtering is skipped. If it is determined that the predetermined reference block is not in a static scene, the enhancement filter weights are determined based on at least one of a second weighting factor corresponding to the relative distortion level and a third weighting factor corresponding to the relative complexity. The relative distortion is negatively correlated with the second weighting factor, and the relative complexity is negatively correlated with the third weighting factor.
9. The video encoding method as described in claim 1, characterized in that, The process of performing spatial enhancement filtering on the input of the filtering stage includes: Perform spatial enhancement filtering on the current frame to obtain an enhanced current frame; During the filtering phase, filtering is performed on the current block in the enhanced current frame.
10. The video encoding method as described in claim 1, characterized in that, The spatial enhancement filtering is achieved through Gaussian enhancement filtering.
11. A video encoding device, characterized in that, include: The filtering module is configured to perform motion-compensated temporal filtering on the current frame based on the current frame and a reference frame of the current frame; The encoding module is configured to encode the current frame based on the motion-compensated temporal filtering result of the current frame. The filtering module is configured to perform spatial enhancement filtering on the input of the motion compensation stage during the motion compensation temporal filtering process of the current frame, and / or to perform spatial enhancement filtering on the input of the filtering stage.
12. An electronic device, comprising: One or more processors; as well as A memory, coupled to the one or more processors and configured to store instructions executable by the one or more processors. The one or more processors are configured to perform the video encoding method according to any one of claims 1-10 when executing the instructions.
13. A computer program product comprising computer instructions, characterized in that, When the computer instructions are executed by at least one processor, they implement the video encoding method according to any one of claims 1 to 10.
14. A non-transitory computer-readable storage medium storing instructions and a bit stream thereon, characterized in that, When executed by a computing device having one or more processors, the instructions cause the one or more processors to perform the video encoding method as described in any one of claims 1 to 10 to generate the bitstream.
15. A method for storing a bit stream, comprising: The video encoding method described in any one of claims 1 to 10 is used to generate a bitstream; Store the bit stream.