Filtering processing method and device

By adopting a filtering processing method in the video decoder, multiplexing the filter coefficients of adjacent pixel blocks for filtering processing, the problem of slow decoding speed in the prior art is solved, and a more efficient decoding speed and cost-reducing effect is achieved.

CN120223906APending Publication Date: 2025-06-27SHUXING TECH (BEIJING) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510393320.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-31
Publication Date
2025-06-27

AI Technical Summary

Technical Problem

When existing video decoders are applied on the client, the decoding speed is slow and cannot meet the needs of on-demand videos and other scenarios, which also leads to increased costs on the business side.

Method used

A filtering processing method is provided, by decoding a video stream, determining a pixel block sequence and its corresponding filter coefficient index, and when the filter coefficients of adjacent pixel blocks do not change, the filter coefficients of the corresponding pixel blocks are multiplexed to filter the target pixel block.

Benefits of technology

It effectively improves the decoding speed of the decoding end, reduces the cost of external decoder, and meets the needs of on-demand video and other scenarios.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120223906A_ABST
    Figure CN120223906A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a visual filtering processing method and device, and the filtering processing method is applied to a decoding end, and comprises the steps: decoding a video stream, and determining a pixel block sequence and a filtering coefficient index corresponding to each pixel block in the pixel block sequence according to a decoding result; determining a target filtering coefficient index of at least one target pixel block in the pixel block sequence in a stage of sequentially filtering pixel points contained in the pixel blocks in the pixel block sequence according to the filtering coefficient index; determining an adjacent pixel block of the at least one target pixel block, and judging whether an adjacent filtering coefficient index of the adjacent pixel block is the same as the target filtering coefficient index or not; and if yes, carrying out filtering processing on the pixel points contained in the at least one target pixel block by utilizing the adjacent filtering coefficient of the adjacent pixel block corresponding to the loaded state.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of this specification relate to the technical field of video coding and decoding, and particularly to a filtering processing method and apparatus. Background Art

[0002] With the development of computer and Internet technologies, video coding and decoding processing is applied in more and more scenarios. Along with the gradual enrichment of business requirements, more types of codecs have emerged. As a new video coding standard, the video decoder can save nearly 50% of the transmission traffic under the same picture quality. For high-definition videos, the bitrate savings can be even more. In the prior art, the video decoder is usually deployed on the server side, while the decoder needs to be implemented on the client side. Due to its strict requirements, most business parties adopt the procurement method to launch the video decoder, resulting in a significant increase in the costs of business parties. At the same time, due to the relatively high algorithm complexity of the video decoder standard and most of them are implemented in C code, its decoding speed is relatively slow, which completely does not meet the requirements of applications on the client side in scenarios such as on-demand videos. Therefore, an effective solution is urgently needed to solve the above problems. Summary of the Invention

[0003] In view of this, the embodiments of this specification provide a filtering processing method. One or more embodiments of this specification simultaneously relate to a filtering processing apparatus, a computing device, a computer-readable storage medium, and a computer program product to solve the technical defects existing in the prior art.

[0004] According to the first aspect of the embodiments of this specification, a first filtering processing method is provided, which is applied to a decoding end and includes:

[0005] Decoding a video stream, and determining a pixel block sequence and a filtering coefficient index corresponding to each pixel block in the pixel block sequence according to the decoding result;

[0006] In the stage of sequentially performing filtering processing on the pixel points included in the pixel blocks in the pixel block sequence according to the filtering coefficient index, determining a target filtering coefficient index of at least one target pixel block in the pixel block sequence;

[0007] Determining adjacent pixel blocks of the at least one target pixel block, and determining whether an adjacent filtering coefficient index of the adjacent pixel blocks is the same as the target filtering coefficient index;

[0008] If so, performing filtering processing on the pixel points included in the at least one target pixel block by using the adjacent filtering coefficients corresponding to the adjacent pixel blocks in the loaded state.

[0009] According to the second aspect of the embodiments of this specification, a second filtering processing method is provided, which is applied to a decoding end and includes:

[0010] Decode the video stream, and determine a pixel block sequence and a filtering coefficient index corresponding to each pixel block in the pixel block sequence according to the decoding result;

[0011] In the stage of sequentially performing filtering processing on the pixel points included in the pixel blocks in the pixel block sequence, cluster the pixel blocks included in the pixel block sequence according to the filtering coefficient index;

[0012] Obtain a pixel block cluster according to the clustering result, and determine a target filtering coefficient of a target pixel block in the pixel block cluster;

[0013] Load the target filtering coefficient into a register, and perform filtering processing on the pixel blocks included in the pixel block cluster by using the target filtering coefficient in the register.

[0014] According to the third aspect of the embodiments of the present specification, a first video filtering processing device is provided, which is applied to a decoding end and includes:

[0015] A decoding module, configured to decode a video stream, and determine a pixel block sequence and a filtering coefficient index corresponding to each pixel block in the pixel block sequence according to the decoding result;

[0016] A determining module, configured to determine a target filtering coefficient index of at least one target pixel block in the pixel block sequence in the stage of sequentially performing filtering processing on the pixel points included in the pixel blocks in the pixel block sequence according to the filtering coefficient index;

[0017] A judging module, configured to determine adjacent pixel blocks of the at least one target pixel block, and judge whether an adjacent filtering coefficient index of the adjacent pixel blocks is the same as the target filtering coefficient index;

[0018] If so, execute a filtering module, and the filtering module is configured to perform filtering processing on the pixel points included in the at least one target pixel block by using an adjacent filtering coefficient in a loaded state corresponding to the adjacent pixel blocks.

[0019] According to the fourth aspect of the embodiments of the present specification, a second video filtering processing device is provided, which is applied to a decoding end and includes:

[0020] A decoding module, configured to decode a video stream, and determine a pixel block sequence and a filtering coefficient index corresponding to each pixel block in the pixel block sequence according to the decoding result;

[0021] A clustering module, configured to cluster the pixel blocks included in the pixel block sequence according to the filtering coefficient index in the stage of sequentially performing filtering processing on the pixel points included in the pixel blocks in the pixel block sequence;

[0022] A determination module, configured to obtain a pixel block cluster according to a clustering result, and determine a target filtering coefficient of a target pixel block in the pixel block cluster;

[0023] A filtering module, configured to load the target filtering coefficient into a register, and perform filtering processing on pixel blocks included in the pixel block cluster by using the target filtering coefficient in the register.

[0024] According to a fifth aspect of the embodiments of the present specification, a computing device is provided, including:

[0025] A memory and a processor;

[0026] The memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions. When the computer-executable instructions are executed by the processor, the steps of the above-mentioned filtering processing method are implemented.

[0027] According to a sixth aspect of the embodiments of the present specification, a computer-readable storage medium is provided, which stores computer-executable instructions. When the instructions are executed by a processor, the steps of the above-mentioned filtering processing method are implemented.

[0028] According to a seventh aspect of the embodiments of the present specification, a computer program product is provided, including a computer program or instructions. When the computer program or instructions are executed by a processor, the steps of the above-mentioned filtering processing method are implemented.

[0029] For the filtering processing method applied to the decoding end provided in this embodiment, in order to effectively improve the decoding speed of the decoding end, the video stream can be decoded, and the pixel block sequence and the filtering coefficient index corresponding to each pixel block in the pixel block sequence can be determined according to the decoding result; in order to improve the decoding speed, in the stage of sequentially performing filtering processing on the pixel points included in the pixel blocks in the pixel block sequence according to the filtering coefficient index, the target filtering coefficient index of at least one target pixel block in the pixel block sequence can be determined; on this basis, the adjacent pixel blocks of at least one target pixel block are determined, and it is judged whether the adjacent filtering coefficient index of the adjacent pixel block is the same as the target filtering coefficient index; if so, it means that the target pixel block can also complete the filtering operation by using the filtering coefficient corresponding to the adjacent pixel block, and the time for loading the filtering coefficient can be saved. Therefore, the pixel points included in at least one target pixel block can be filtered by using the adjacent filtering coefficient in the loaded state corresponding to the adjacent pixel block, thereby effectively improving the decoding speed of the decoding end for the target video frame. At the same time, by adopting this filtering processing operation, an external decoder does not need to be adopted, thereby effectively reducing the external procurement cost. Description of the Drawings

[0030] Figure 1 is a flowchart of a first filtering processing method provided by an embodiment of the present specification;

[0031] Figure 2 It is a schematic diagram of the selection of filter coefficients in the first filtering method provided by an embodiment of this specification;

[0032] Figure 3 It is a flowchart of the second filtering method provided by an embodiment of this specification;

[0033] Figure 4 It is a flowchart of the third filtering method provided by an embodiment of this specification;

[0034] Figure 5 It is a flow timing diagram of a filtering method provided by an embodiment of this specification;

[0035] Figure 6 It is a schematic structural diagram of the first visual filtering device provided by an embodiment of this specification;

[0036] Figure 7 It is a schematic structural diagram of the second visual filtering device provided by an embodiment of this specification;

[0037] Figure 8 It is a structural block diagram of a computing device provided by an embodiment of this specification. Detailed implementation manners

[0038] In the following description, many specific details are set forth in order to provide a thorough understanding of this specification. However, this specification can be implemented in many other ways different from those described herein, and those skilled in the art can make similar extensions without departing from the connotation of this specification. Therefore, this specification is not limited by the specific implementations disclosed below.

[0039] The terms used in one or more embodiments of this specification are only for the purpose of describing specific embodiments, and are not intended to limit one or more embodiments of this specification. The singular forms "a", "the", and "said" used in one or more embodiments of this specification and the appended claims are also intended to include the plural forms, unless the context clearly indicates otherwise. It should also be understood that the term "and / or" used in one or more embodiments of this specification refers to and includes any or all possible combinations of one or more related listed items.

[0040] It should be understood that although the terms first, second, etc. may be used in one or more embodiments of this specification to describe various information, such information should not be limited to these terms. These terms are only used to distinguish information of the same type from each other. For example, without departing from the scope of one or more embodiments of this specification, the first may also be referred to as the second, and similarly, the second may also be referred to as the first. Depending on the context, the word "if" as used herein may be interpreted as "when" or "while" or "in response to determining".

[0041] In addition, it should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in one or more embodiments of this specification are all information and data that have been authorized by the user or fully authorized by all parties. Moreover, the collection, use, and processing of relevant data need to comply with the relevant laws, regulations, and standards of the relevant countries and regions, and corresponding operation entrances are provided for users to choose to authorize or refuse.

[0042] First, the noun terms involved in one or more embodiments of this specification are explained.

[0043] Luminance component: It is an important component in a video signal and represents the luminance information of an image. In the YUV color space, the Y component represents the luminance information, while the U and V components represent the chrominance information. The luminance component reflects the brightness and darkness of an image and is an important basis for visual perception of an image.

[0044] Filter coefficient: It is a set of specific values used to adjust the performance of a filter during the video decoding process. These values determine the response characteristics of the filter at different frequencies, that is, how the filter processes the input signal.

[0045] Video encoder: It is a program that can compress or decompress digital video. This compression usually belongs to lossy data compression, which means that some video information will be lost during the compression process, but the purpose is to reduce the size of the video file for easy storage and transmission.

[0046] Video decoder: It is a program that can decode digital video and is used to decode the compressed digital video signal into a visual video image. It reads the digital video data stream transmitted or stored on various media and decodes it into a playable video file.

[0047] Register: It is some small storage areas inside the CPU, main memory, and other digital devices for storing data and is one of the most basic storage units in the computer architecture.

[0048] Video on demand (VOD) is an online video service that allows users to select viewing times, playback speeds, pause, rewind, and perform other operations according to their own needs.

[0049] Pixel: Also known as a pixel (Pixel), it is the smallest element point that can be provided according to the current graphic display resolution when the graphic is displayed on the screen.

[0050] The alf (adaptive loop filter) module: is a block-based filtering technology that acts on non-overlapping 4*4 sub-blocks of the reconstructed image. The core function of this technology is to select the most suitable filter from a predefined set of filters for filtering according to the direction and activity gradient of each 4*4 sub-block, in order to reduce block artifacts and improve visual quality.

[0051] Content Delivery Network (CDN for short) is an intelligent virtual network built based on the IP network. It places node servers everywhere in the network and, in real time, according to comprehensive information such as network traffic, the connection and load status of each node, the distance to the user, and the response time, redirects the user's request to the service node closest to the user. In this way, users can quickly obtain the required content from the nearby cache server, thus solving the congestion situation of the Internet network and improving the response speed of users accessing websites.

[0052] In this specification, a filtering processing method is provided. This specification also relates to a video filtering processing device, a computing device, a computer-readable storage medium, and a computer program product, which will be described in detail one by one in the following embodiments.

[0053] In practical applications, when the alf module performs filtering processing on pixel blocks, since the filtering processing of the 7*7 luminance component is time-consuming and requires a large number of filter coefficients to be loaded to complete, the decoding speed at the decoding end is significantly reduced, making it not meet the requirement of quickly browsing videos at the decoding end. Therefore, an effective solution is urgently needed to solve the above problems.

[0054] The filtering processing method applied to the decoding end provided in this embodiment can decode the video stream in order to effectively improve the decoding speed at the decoding end, and determine the pixel block sequence and the filtering coefficient index corresponding to each pixel block in the pixel block sequence according to the decoding result; in order to improve the decoding speed, in the stage of sequentially performing filtering processing on the pixel points included in the pixel blocks in the pixel block sequence according to the filtering coefficient index, determine the target filtering coefficient index of at least one target pixel block in the pixel block sequence; on this basis, determine the adjacent pixel blocks of at least one target pixel block, and determine whether the adjacent filtering coefficient index of the adjacent pixel block is the same as the target filtering coefficient index; if so, it means that the filtering operation can also be completed by using the filtering coefficient corresponding to the adjacent pixel block for the target pixel block, and the time for loading the filtering coefficient can be saved. Therefore, the pixel points included in at least one target pixel block can be filtered by using the adjacent filtering coefficient in the loaded state corresponding to the adjacent pixel block, thereby effectively improving the decoding speed of the decoding end for the target video frame. At the same time, by adopting this filtering processing operation, there is no need to externally purchase a decoder, thereby effectively reducing the external purchase cost.

[0055] See Figure 1 , Figure 1 FIG. shows a flowchart of a first filtering processing method provided according to an embodiment of the present specification. This method is applied to the decoding end and specifically includes the following steps.

[0056] Step S102: Decode the video stream, and determine the pixel block sequence and the filtering coefficient index corresponding to each pixel block in the pixel block sequence according to the decoding result.

[0057] The filtering processing method applied to the decoding end provided in this embodiment can be applied to any scenario with a decoding requirement for video, such as video-on-demand scenarios, live broadcast scenarios, video playback scenarios of virtual reality and augmented reality, in-vehicle video playback scenarios, etc. The filtering processing method provided in this embodiment can be used to decode video frames, realizing the operation of skipping the selection of some filtering coefficients, thereby effectively improving the decoding speed.

[0058] This embodiment takes the live broadcast scenario as an example to illustrate the filtering processing method. For the corresponding descriptions of other scenarios, reference can be made to the same or corresponding description content in this embodiment, and this embodiment does not make any limitations here.

[0059] Specifically, the decoding end specifically refers to a terminal device deployed with a decoder, including but not limited to mobile phones, computers, tablets, wearable intelligent devices, etc., and this embodiment does not make any limitations here. Correspondingly, the video stream specifically refers to the video stream sent from the encoding end to the decoding end, which is used for the decoding end to decode and then display or store the video stream, and it can be set according to actual needs, and this embodiment does not make any limitations here. Correspondingly, the pixel block sequence specifically refers to, after decoding the video stream, the blocks composed of multiple pixels obtained by dividing the pixel points included in any target video frame according to the set division unit. For example, in the filtering method provided in this embodiment, when using the alf module to filter the pixel points included in the target video frame, the pixel points included in the target video frame can be divided according to 4*4, and according to the division result, 4*4 pixel blocks can be obtained, and each pixel block contains 4 pixel points. Correspondingly, the filtering coefficient index specifically refers to the index information of the filtering coefficients required for each pixel block in the pixel block sequence. Since the filtering coefficients used during the filtering process at the decoding end are sent by the encoding end, and the sent filtering coefficient matrix consists of a fixed subset and an APS subset, it is necessary to determine the filtering coefficient index corresponding to each pixel block, so that when decoding, the subset to which the coefficient belongs and its address in the subset can be determined according to the index from the filtering coefficient matrix, so as to be loaded into the register for use to complete the filtering operation on the pixel points included in the pixel block.

[0060] In practical applications, the video frames currently processed by the decoding end are transmitted after being encoded by the encoding end. The encoding of the original video frame by the encoding end mainly includes the division and preprocessing of the video frame, predictive coding, transformation and quantization, and entropy coding. Among them, the division and preprocessing of the video frame refer to dividing the video frame into encoding units of different sizes, and the encoding units can flexibly adapt to the changes in video content, thereby improving the encoding efficiency. Predictive coding refers to performing inter-frame prediction and intra-frame prediction. Intra-frame prediction mainly uses the already encoded pixels in the same frame to predict the current pixels, and multiple prediction models can be used to reduce spatial redundancy. Inter-frame prediction is to calculate the motion vector by searching for matching blocks in the reference frame, and perform motion estimation and motion compensation, thereby effectively reducing temporal redundancy. Transformation and quantization refer to performing a transformation operation on the residual after predictive coding, such as discrete cosine transform or other transformations, which is used to convert the spatial domain signal into a frequency domain signal for subsequent processing; the transformed coefficients will be quantized to further compress the data by reducing the dynamic range of the data. Entropy coding refers to performing entropy coding on the quantized transform coefficients and the related information generated during the predictive coding process (such as motion vectors, prediction modes, etc.), and efficient entropy coding techniques can be used to further reduce data redundancy and improve the compression efficiency. Under this processing, finally, the data after entropy coding can be packed into a specific data packet format and transmitted to the decoding end through the network.

[0061] Further, after receiving the data packets sent by the encoding end, the decoding end first performs entropy decoding on the received data packets to restore the quantized transform coefficients, motion information, etc. Then, it performs inverse quantization and inverse transformation to obtain the residual data. Finally, it uses the residual data and the prediction information to reconstruct the video frame, thereby obtaining a complete video frame as the target video frame to be processed currently, which is used for subsequent filtering processing.

[0062] It should be noted that the pixel blocks included in the pixel block sequence are the pixel blocks obtained by dividing the target video frame in the spatial order, that is, the pixel points included in adjacent pixel blocks are horizontally continuous in the target video frame. For example, the first row of pixel points of the target video frame contains 1024 pixel points, and by dividing the pixel points in this row, 256 pixel blocks can be obtained.

[0063] Based on this, in order to effectively improve the decoding speed of the decoding end, the video stream can be decoded, and the pixel block sequence and the filtering coefficient index corresponding to each pixel block in the pixel block sequence can be determined according to the decoding result. In order to improve the decoding speed, during the stage of sequentially filtering the pixel points included in the pixel blocks in the pixel block sequence according to the filtering coefficient index, the target filtering coefficient index of at least one target pixel block in the pixel block sequence can be determined. On this basis, the adjacent pixel blocks of at least one target pixel block are determined, and it is judged whether the adjacent filtering coefficient index of the adjacent pixel block is the same as the target filtering coefficient index. If so, it means that the filtering operation can also be completed by using the filtering coefficient corresponding to the adjacent pixel block for the target pixel block, and the time for loading the filtering coefficient can be saved. Therefore, the pixel points included in at least one target pixel block can be filtered by using the adjacent filtering coefficient in the loaded state corresponding to the adjacent pixel block, thereby effectively improving the decoding speed of the decoding end for the target video frame. At the same time, by adopting this filtering processing operation, it is not necessary to externally purchase a decoder, thus effectively reducing the external purchase cost.

[0064] Further, after determining the pixel block sequence associated with the target video frame, considering that the filtering operation of the 7×7 luminance component of the alf module is the most time-consuming, the filtering coefficients can be reused for the filtering operation of the 7×7 luminance component, thereby effectively improving the video frame decoding speed. In this embodiment, the specific implementation method is as follows:

[0065] Classify the pixel blocks included in the pixel block sequence according to the luminance component strategy to obtain the classification information corresponding to each pixel block in the pixel block sequence; allocate filters to the pixel blocks included in the pixel block sequence according to the classification information, and call the filters to execute the filtering processing task for the pixel blocks in the pixel block sequence.

[0066] Specifically, the luminance component strategy specifically refers to a strategy for classifying the pixel blocks contained in the pixel block sequence according to the directionality and activity gradient of the pixel blocks, which is used to determine the classification information corresponding to each pixel block according to the classification result, so as to select the corresponding filter according to the classification information to perform subsequent filtering processing tasks.

[0067] Based on this, in order to improve the decoding speed of the decoder for the target video frame at the decoding end, it is possible to select to accelerate the filtering of the 7×7 luminance component in the alf module, so as to ensure that the acceleration is more obvious. In this process, the pixel blocks contained in the pixel block sequence can be classified according to the luminance component strategy to determine the corresponding classification information for each pixel block contained in the pixel block sequence. After obtaining the classification information corresponding to each pixel block in the pixel block sequence, filters can be allocated to the pixel blocks contained in the pixel block sequence according to the classification information, so that the subsequent task of filtering the pixel blocks in the pixel block sequence by calling the filters can be realized, so as to achieve the purpose of improving the decoding speed.

[0068] In practical applications, referring to Figure 2 the schematic diagram shown, the alf module of the decoder in the decoding end can use a rhombus and centrosymmetric filter coefficient matrix to filter the pixel points contained in each pixel block, and the filter coefficients contained in the filter coefficient matrix are determined by the encoding end.

[0069] Specifically, the filter coefficient matrix determined by the encoding end is actually composed of a fixed subset and an APS (Adaptive Parameter Set) subset. Among them, the fixed subset is determined by the H.266 standard, while the APS subset is generated by using the Wiener filtering principle after the video frame processed by the encoding end is reconstructed, and it needs to be written into the code stream and transmitted to the decoding end.

[0070] In this process, for the construction of the APS subset, first, during the encoding process of the current video frame, a reconstructed image is generated by decoding it, and then the reconstructed image is divided into multiple image blocks, and the size of each image block can be set according to the block size processed by the alf module. Secondly, the error signal between the current video frame and the reconstructed image is calculated, and then the Wiener filtering principle is applied based on the error signal to construct a filter. Among them, Wiener filtering is a minimum mean square error (MSE) filter, which finds the optimal filter coefficients by minimizing the mean square error between the reconstructed image and the current video frame; thereafter, the optimal filter coefficients can be solved through mathematical derivation or numerical optimization methods, and these coefficients will be used to filter the reconstructed image to reduce encoding distortion. Finally, the solved filter coefficients are organized into an APS subset and written into the code stream and transmitted to the decoding end. Among them, each APS subset contains multiple filter coefficient sets, and each set corresponds to different image content characteristics or classifications.

[0071] In specific implementation, for the encoding end of the current video frame, the content of the current video frame will be analyzed first, including analyzing information such as pixel values, textures, and edges. This part of the analysis data will serve as the basis for generating the APS subset. Then, based on the analysis result of the current video frame, the type of filter and the number of filters to be used will be determined. For example, in complex texture regions, more filters may be required to smooth the image, while in edge regions, different types of filters may be needed to maintain the sharpness of the edges. On this basis, the Wiener filtering principle or other optimization algorithms can be used to generate a set of adaptive filter coefficients corresponding to the current video frame. These coefficients are used to minimize the difference between the reconstructed image and the current video frame to the greatest extent. The APS subset can be constructed according to the generated filter coefficients. When transmitting the APS subset to the decoding end, the encoding end will also perform index coding on the generated APS subset for identification and transmission in the bitstream, so that the decoding end can find the corresponding APS subset according to the index for decoding and filtering processing.

[0072] Furthermore, when writing the APS subset into the bitstream and transmitting it to the decoding end, in order to enable the decoding end to construct the filter coefficient matrix by combining the fixed subset determined by the H.266 standard and the APS subset generated by the encoding end, the APS subset can be written into the bitstream through the APS NAL unit (Network Abstraction Layer Unit). Among them, the APS NAL unit is a type of NAL unit specifically used to carry adaptive parameter set information. In the APS NAL unit, there will be one or more APS parameter sets, and these parameter sets contain the generated APS subset. The APS NAL unit identifies the type of the NAL unit through the nal_unit_type field. For the APS NAL unit, its value will be set to a specific value (such as APS_NUT, and the specific value depends on the specific implementation and version of the standard) to distinguish it from other types of NAL units; the type of the APS parameter set is identified through the aps_params_type field. In H.266, there can be multiple types of APS parameter sets, such as the APS subset for alf (Adaptive LoopFilter), the APS for LMCS (Luma Mapping with Chroma Scaling), etc. Through the aps_params_type field, the decoder can identify which type of APS parameter set is carried in the current APS NAL unit. The uniqueness of the APS parameter set is identified through the aps_adaptation_parameter_set_id field. In the bitstream, there may be multiple APS parameter sets, and each parameter set has its unique ID so that the decoder can correctly identify and reference them. The filter coefficient is identified through the alf parameter field, and this parameter needs to be organized and encoded according to the algorithm structure defined in the H.266 standard for quick transmission to the decoding end for filter processing use.

[0073] It should be noted that the filter coefficient set for the luminance alf module contains 16 fixed subsets and at most 8 APS subsets, and each subset contains at most 25 groups of filter coefficients. When the decoding end performs filter processing on the pixel block in the video frame, it needs to select the filter coefficient corresponding to the pixel block from the 25 groups of filter coefficients to complete the filter processing.

[0074] Furthermore, after the decoding end constructs the filter coefficient matrix corresponding to the current video frame based on the APS subset parsed from the bitstream and the fixed subset determined by the standard, it will be necessary to perform the filter processing of the video frame through the alf module. Among them, when the alf module performs filter processing, it usually includes three steps: block classification, filter selection, and filter processing.

[0075] (1) Block classification refers to classifying each 4×4 block in an image; the basis for classification is the directionality of the block (such as horizontal, vertical, diagonal, etc.) and the activity gradient (i.e., the degree of change in pixel values); the classification process usually involves calculating the gradients of the block in multiple directions (such as 0°, 90°, 135°, and 45°), and determining the directionality factor D and the activity factor A based on the gradient values; according to the values of D and A, each 4×4 block is assigned to one of 25 categories (for the luminance component).

[0076] Specifically, when calculating the gradients, for each 4×4 block, the gradient information of its internal and surrounding pixels can be calculated, and this gradient information usually includes the gradients in the horizontal, vertical, and two diagonal directions; in addition to calculating the gradient information, other local features can also be extracted, such as pixel intensity, texture features, etc.; to describe the unique attributes of each block and improve the classification accuracy. Based on the extracted features, a classification algorithm can be used to assign each block to a specific category, and the classification algorithm can include decision trees, neural networks, or other machine learning algorithms, etc., to determine the type to which each block belongs. In the H.266 standard, the luminance component can be classified into up to 25 classes, and different classes represent different local characteristics in the image, such as smooth regions, edge regions, texture regions, etc. After classification, the regression of each block is assigned to a specific category, and these categories can be used for subsequent filter selection to ensure that each block receives the most appropriate filtering process.

[0077] For example, after dividing a video frame into blocks, multiple 4×4 blocks can be obtained. When the current block to be processed is in a complex texture area of the video frame (such as the background of leaves), the gradients of its internal and surrounding pixels can be calculated. By comparing the intensity differences of adjacent pixels, the gradient values in the horizontal, vertical, and two diagonal directions can be obtained. This part of the gradient values can indicate that there are large pixel intensity changes inside the block, reflecting that the block is a region with rich texture. At the same time, other features of the block can also be extracted, such as the average pixel intensity, the standard deviation of pixel intensity, etc. Through this part of the features, it can be further confirmed that the block is a region with high contrast and complex texture. Thereafter, a pre-trained classification algorithm (such as a decision tree) can be used to process the above features. The algorithm can judge which category the block belongs to based on the combination of features. By processing, it is determined that the block is classified into the texture region category. Thereafter, the filter suitable for processing the texture region can be selected according to this category information to optimize its visual quality.

[0078] (2) Filter selection means that for each classified 4×4 block, the alf module selects the most suitable filter from a predefined set of filters for filtering. The filter set usually contains multiple filter subsets, and each subset contains N types of filters related to video content (N = 25 for the luminance component). At the encoding end, the filter class is determined according to the content of the pixel block, and then the optimal filter subset is determined using rate-distortion optimization (RDO). At the decoding end, the filter subset and filter class are determined according to the information in the bitstream, so as to determine the filter coefficients to be used.

[0079] Specifically, after determining the category corresponding to each block in the block classification process, an appropriate filter can be selected according to the block category. After selecting a filter for each block, appropriate filter coefficients can be selected from the filter coefficient matrix for subsequent filtering operation.

[0080] (3) Filtering means that after the filter is determined, the alf module can perform filtering on the pixels in each 4×4 block. The filtering process involves applying filter coefficients to adjust the pixel values to reduce blocking artifacts and improve image quality. Among them, the filtering process may also include the application of a clamping function to ensure that the filtered pixel values do not exceed a predetermined range.

[0081] In this process, although the purpose of improving the video quality can be achieved through filtering, this processing process requires the alf module to load a large number of filter coefficients to complete, which significantly reduces the decoding speed at the decoding end. Therefore, in the filtering method provided in this embodiment, in order to improve the filtering speed of the alf module of the decoder at the decoding end and thus improve the decoding speed of the video frame, it is selected to reuse the filter coefficients of adjacent pixel blocks to filter the pixel points included in the current pixel block when the filter coefficients of adjacent pixel blocks do not change, so as to ensure the video frame quality and improve the decoding speed, and further meet the need for fast video browsing at the decoding end.

[0082] For example, in a live broadcast scenario, after the encoding end uses a video encoder to encode any video frame in the live video stream, the video frame will be sent to the client watching the live broadcast through a content delivery network. After receiving the video frame, for example, if the video frame is a 1024×1024 video frame, after dividing the video frame according to a 4×4 sliding window, 256×256 4×4 pixel blocks will be obtained, which are pixel block 1, pixel block 2,..., pixel block n (256×256) respectively, and the pixel blocks are sorted in spatial order to form a pixel block sequence, and each pixel block contains 4 consecutive pixel points. When the client decodes the video frame, it can skip the coefficient extraction calculation module of the alf module in the loop filtering stage, thereby improving the decoding speed of the client.

[0083] In summary, by using the multiplexed filter coefficient mechanism for the loop filtering operation of the luminance component, more filter coefficient loading operations can be reduced, thereby greatly improving the decoding speed at the decoding end.

[0084] Step S104, in the stage of sequentially performing filtering processing on the pixel points included in the pixel blocks in the pixel block sequence according to the filter coefficient index, determine the target filter coefficient index of at least one target pixel block in the pixel block sequence.

[0085] Specifically, after determining the pixel block sequence and its corresponding filter coefficient index, filtering processing can be sequentially performed on the pixel points included in the pixel blocks in the pixel block sequence batch by batch. During the filtering process, in order to save the time for loading filter coefficients, the filter coefficients corresponding to the current pixel block to be filtered and the adjacent pixel blocks can be compared. Before that, at least one target pixel block and the target filter coefficient index corresponding to at least one target pixel block need to be determined in the pixel block sequence for subsequent processing operations of multiplexing the filter coefficients of adjacent pixel blocks.

[0086] Among them, at least one target pixel block specifically refers to one or more pixel blocks determined in the pixel block sequence that are currently to be filtered. The number of target pixel blocks can be determined according to the bit width of the register. For example, in the arm64 architecture, the register bit width is 128bit, and in the current scenario, each pixel block contains 4 pixel points, and 8 pixel points correspond to 128bit. Therefore, after calculation, two target pixel blocks can be selected for subsequent filtering processing. In the avx2 instruction set, it is 256bit, and at this time, four target pixel blocks can be processed at one time. Specifically in implementation, the number of target pixel blocks can be dynamically selected according to the actual application scenario, and this embodiment does not make any limitation here.

[0087] Correspondingly, the target filter coefficient index specifically refers to the filter coefficient index corresponding to each target pixel block in at least one target pixel block, which is determined by the encoding end. In practical applications, the filter coefficients generally consist of two parts. One part (8 groups) is obtained by the encoding end through calculation, and the other part (16 groups) is determined by the video encoder standard of the encoding end. After the encoding end calculates and determines the filter coefficient corresponding to each pixel block in the pixel block sequence, it records and sends this mapping relationship to the decoding end. The decoding end can determine the filter coefficient index corresponding to each pixel block according to this mapping relationship, and then load the filter coefficient into the register according to this index for loop filtering use.

[0088] Specifically in implementation, in the stage of filtering the pixel block, a template matching the pixel block is selected from a predefined filter template set according to the classification result of each pixel block. For the luminance component, usually select such asFigure 3 The shown rhombic filter template of size 7*7 can reduce the computational complexity and transmission overhead. After selecting the filter template, since the alf module includes one or more sets of filter coefficients, each set contains filter coefficients corresponding to different classifications, such as filter coefficients corresponding to the texture region type, filter coefficients corresponding to the smooth region type, and filter coefficients corresponding to the edge region type. Therefore, when selecting filter coefficients for each pixel block, a set of optimal filter coefficients needs to be selected from the coefficient set according to the classification result of each pixel block, so as to minimize the difference between the original video frame and the reconstructed video frame.

[0089] Furthermore, when filtering the pixel points included in the pixel block sequence, in order to make full use of the computing resources and improve the decoding speed, the determination of at least one target pixel block can be implemented in the following manner:

[0090] Determine the register bit width corresponding to the decoding end, and calculate the number of pixel blocks to be loaded according to the register bit width; determine the pixel blocks to be processed corresponding to the number of pixel blocks to be loaded in the pixel block sequence, and use the pixel blocks to be processed corresponding to the number of pixel blocks to be loaded as the at least one target pixel block.

[0091] Specifically, the register bit width specifically refers to the length of the number of bytes that the register can load at one time. For example, in the arm64 architecture, the register bit width is 128bit; correspondingly, the number of pixel blocks to be loaded specifically refers to determining the occupied size corresponding to each pixel block, and dividing the register bit width by the occupied size to determine the number of pixel blocks that can be loaded into the register.

[0092] Based on this, in order to avoid wasting the space of the register and make each load process of the register full, the register bit width corresponding to the decoding end can be determined, and the number of pixel blocks to be loaded can be calculated according to the register bit width; on this basis, the pixel blocks to be processed corresponding to the number of pixel blocks to be loaded can be determined in the pixel block sequence, and the pixel blocks to be processed corresponding to the number of pixel blocks to be loaded can be used as at least one target pixel block, so that a one-time operation can complete the filtering process of multiple pixel points at the same time.

[0093] Continuing with the above example, it is determined that the client uses the arm64 architecture, so the register bit width is determined to be 128 bits; and each pixel block contains 4 pixel points, occupying 64 bits. Therefore, by calculation, it can be determined that 8 pixel points are loaded, that is, two pixel blocks, to facilitate subsequent filtering processing operations for the 8 pixel points contained in the two pixel blocks simultaneously. At this time, it is determined that the pixel blocks to be filtered in the current stage are pixel block 5 (containing pixel points 17 to 20) and pixel block 6 (pixel points 21 to 24). Further, in the case of determining that pixel block 5 (containing pixel points 17 to 20) and pixel block 6 (pixel points 21 to 24) need to be processed in the current stage, a 25-dimensional matrix (consisting of 25 sets of filtering coefficients) sent by the encoding end can be obtained. At this time, a set of filtering coefficient indexes x corresponding to pixel block 5 and pixel block 6 can be determined; so that it can be decided whether to load the filtering coefficients for pixel blocks 5 and 6 according to the filtering coefficient index x subsequently.

[0094] In summary, calculating the number of target pixel blocks according to the bit width of the register in the decoding end can enable the decoding end to process more pixel points simultaneously without wasting computing resources, thereby effectively improving resource utilization.

[0095] Step S106: Determine the adjacent pixel blocks of the at least one target pixel block, and judge whether the adjacent filtering coefficient index of the adjacent pixel block is the same as the target filtering coefficient index.

[0096] Specifically, in the mechanism of reusing the filtering coefficients corresponding to adjacent pixel blocks, after determining at least one target pixel block and its corresponding target filtering coefficient index through the above processing, at least one adjacent pixel block of the target pixel block can be selected, and the adjacent filtering coefficient index corresponding to the adjacent pixel block can be obtained. At this time, it can be judged whether the adjacent filtering coefficient index of the adjacent pixel block is the same as the target filtering coefficient index; if they are the same, step S108 below can be executed; if they are not the same, it means that the filtering coefficients used by the adjacent pixel block cannot be used by the at least one target pixel block. Therefore, it is necessary to load the corresponding filtering coefficients according to the target filtering coefficient index for subsequent filtering processing operations.

[0097] Among them, the adjacent pixel block specifically refers to a pixel block that has been filtered and processed in the pixel block sequence and has an adjacent spatial position relationship with the target pixel block, and at the same time, the filtering coefficient corresponding to it has not been released after being loaded into the register. Correspondingly, the adjacent filtering coefficient index specifically refers to the filtering coefficient index corresponding to the filtering coefficient of the adjacent pixel block, and the filtering coefficient corresponding to this filtering coefficient index is in the loaded state, so as to facilitate subsequent decision on whether to use this filtering coefficient to complete the filtering operation, thereby improving the decoding speed.

[0098] Further, when selecting adjacent pixel blocks of at least one target pixel block, considering that in the target video frame, the pixel values of adjacent pixel points are relatively smooth, the filtering coefficients that the target pixel block may reuse should be continuous in space. Therefore, pixel blocks with adjacent positions can be selected as adjacent pixel blocks. In this embodiment, the specific implementation method is as follows:

[0099] Determine the pixel block positions of the at least one target pixel block in the target video frame; according to the pixel block positions, select pixel blocks having a front adjacent relationship with the at least one target pixel block in the pixel block sequence as adjacent pixel blocks; wherein, the pixel points included in the adjacent pixel blocks have completed the filtering processing operation.

[0100] Specifically, the pixel block position specifically refers to the spatial position of each target pixel block in the target video frame. Correspondingly, the front adjacent relationship specifically refers to the relationship of being adjacent to and before the target pixel block in the target video frame.

[0101] Based on this, when selecting pixel blocks adjacent to at least one target pixel block, the pixel block positions of the at least one target pixel block in the target video frame can be determined first; on this basis, according to the pixel block positions, pixel blocks having a front adjacent relationship with the at least one target pixel block can be selected in the pixel block sequence as adjacent pixel blocks; and, the pixel points included in the adjacent pixel blocks have completed the filtering processing operation, thereby indicating that the corresponding adjacent filtering coefficients of the adjacent pixel blocks have been loaded into the register in the previous filtering operation and have not been released yet, so as to be used to detect whether they can be reused in the filtering processing operation of the currently to-be-processed target pixel block.

[0102] Continuing with the above example, after determining the filtering coefficient indexes x corresponding to pixel blocks 5 and 6, the adjacent pixel blocks 3 and 4 can be determined according to the positions of pixel blocks 5 and 6 in the video frame. Moreover, pixel blocks 3 and 4 have just completed the filtering operation in the previous cycle. Therefore, a set of filtering coefficients corresponding to them have been loaded into the register and have not been released yet. Subsequently, it can be determined whether to reuse the filtering coefficients by comparing whether the filtering coefficient index x is the same as the index y corresponding to the filtering coefficient.

[0103] In summary, considering that adjacent pixel points in the target video frame have spatial continuity, and under this characteristic, the probability of adjacent pixel points using the same filtering coefficient is greater. In order to achieve the purpose of improving the decoding speed, the pixel blocks adjacent to the target pixel block can be determined, and it can be decided whether to reuse the already loaded filtering coefficients by comparison, thereby saving the loading operation of the filtering coefficients and improving the decoding speed.

[0104] Further, when the pixel points included in the adjacent pixel blocks are filtered, the determination of the adjacent filtering coefficients used includes:

[0105] Obtain the filter coefficient matrix sent by the encoding end corresponding to the decoding end, and obtain subset information and class information by parsing the adjacent filter coefficient index; query the filter coefficient matrix according to the subset information and the class information to obtain the adjacent filter coefficients corresponding to the adjacent pixel blocks.

[0106] Specifically, the filter coefficient matrix specifically refers to the filter coefficient matrix constructed for filter processing when the encoding end sends the video stream. Correspondingly, the subset information specifically refers to the subset to which the adjacent filter coefficients corresponding to the adjacent filter coefficient index belong, such as fixed subset information or ASP subset information; correspondingly, the class information specifically refers to the class to which the adjacent filter coefficients belong in the subset, and is used to select its corresponding filter coefficient from 25 filter coefficients for use.

[0107] Based on this, when the adjacent filter coefficients corresponding to the adjacent pixel blocks are loaded, if the adjacent pixel blocks do not use the filter coefficients of other adjacent pixel blocks of themselves, the filter coefficient matrix sent by the encoding end corresponding to the decoding end can be obtained, and the subset information and class information corresponding to the adjacent pixel blocks can be obtained by parsing the adjacent filter coefficient index; at this time, the filter coefficient matrix can be queried according to the subset information and the class information, and then the adjacent filter coefficients corresponding to the adjacent pixel blocks can be obtained to load them into the register to complete the filtering process of the pixel points in the adjacent pixel blocks.

[0108] In practical applications, when the adjacent filter coefficient index of the adjacent pixel block is different from the target filter coefficient index, it means that the filter coefficients corresponding to the adjacent pixel block cannot be reused, so the filter coefficients corresponding to the target pixel block need to be extracted to complete the filtering process. In this process, when extracting the filter coefficients of the pixel block from the filter coefficient matrix, considering that the filter coefficient matrix contains all possible filter coefficient sets, which is constructed by the ASP subset and the fixed subset and contains all the coefficients used for filtering the entire video frame, it is necessary to determine its corresponding classification result according to the spatial position of the target pixel block in the target video frame, and then determine the classification index corresponding to the target pixel block according to the classification result. From the filter coefficient matrix, the corresponding filter coefficient group can be selected according to the classification index as the filter coefficients corresponding to the pixel block, which are used to filter the pixel points included in the pixel block. If the classification index corresponds to the ASP subset, the decoding end will first decode the filter coefficient difference of the ASP subset (the difference relative to a certain reference or default coefficient set), and then apply this difference to adjust the predefined filter coefficients to obtain the finally required filter coefficients. If the classification index corresponds to the fixed subset, the decoding end can directly use the filter coefficients predefined by the fixed subset.

[0109] In addition, when the classification index cannot clearly specify the corresponding filtering coefficient, such as when the transmission of some ASP subsets is omitted due to the bitrate limit rule, the decoding end can adopt a default strategy, such as using a general filtering coefficient to complete the filtering process of the target pixel block.

[0110] Furthermore, during the filtering process, for any pixel block in the target video frame, since a 7*7 filter template is used and the pixel block is divided into 4*4 blocks, when performing the filtering process, it is necessary to obtain the pixel values corresponding to the pixels included in the current 4*4 pixel block and the pixel values of the pixels around the pixel block in the target video frame, so as to input the obtained pixel values into the filter template for processing. For each pixel in the current 4*4 pixel block, the filtering operation can be completed through the following processing: initialize a variable to store the weighted sum, calculate its relative position with the current pixel (the pixel within the 4*4 pixel block) by traversing all the pixels in the filter template (the pixels included in the 4*4 pixel block and its surrounding pixels), and use the filtering coefficient extracted from the filtering coefficient matrix according to the classification index for weighting, and accumulate the weighted pixel values into the variable. By analogy, after completing the above calculation process for each pixel, the sum of the accumulated variables can be divided by the total number of pixels in the filter template, and then the pixel value corresponding to each pixel point in the 4*4 pixel block after filtering processing can be obtained.

[0111] It can be understood that the 7*7 filter template not only includes the pixel points within the current 4*4 pixel block, but also includes the surrounding pixel points, and these surrounding pixel points can provide additional context information for the filtering calculation, thus helping to more accurately evaluate and correct the pixel values of the pixel points within the current pixel block. By considering these additional pixel values, the pixel values obtained after filtering processing can be made more accurate. Specifically, the above processing process can be calculated through the following formula (1):

[0112] R * (i,j) = R(i,j) + ((∑ k≠0 ∑ l≠0 f(k,l) × K(R(i + k,j + l) - R(i,j), c(k,l)) + AlfS) >> S) (1) where

[0113] R * (i,j) represents the pixel value after filtering, R(i,j) represents the pixel value before filtering, f(k,l) is the filtering coefficient, K is the clamping function, c(k,l) represents the clamping threshold value corresponding to each position, AlfS = 1 << (alfShiftY - 1), S = alfShiftY, and the value of alfShiftY can be determined through Table 45 in the H.266 standard document.

[0114] Based on the above filtering processing operations, the filtering processing of the pixel points included in each pixel block can be completed in sequence. However, since the filtering coefficients need to be separately loaded into the register each time, the decoding speed at the decoding end is limited. Therefore, in the filtering processing method provided in this embodiment, in order to improve the filtering processing speed of the alf module of the decoder at the decoding end, thereby improving the decoding speed of the video frame, when the filtering coefficients of adjacent pixel blocks do not change, the filtering coefficients of adjacent pixel blocks will be reused to filter the pixel points included in the current pixel block, so as to ensure that the decoding speed can be improved on the premise of the video frame quality, and further meet the requirement of quickly browsing the video at the decoding end. That is to say, for the pixel block to which the current pixel point to be filtered belongs, it is necessary to first determine whether its filtering coefficients are the same as those of the adjacent pixel block. If they are the same, the already loaded filtering coefficients can be directly reused to complete the filtering processing of the pixel points included in the current pixel block, thereby effectively improving the decoding speed at the decoding end.

[0115] Step S108, if so, use the adjacent filtering coefficients corresponding to the loaded state of the adjacent pixel block to filter the pixel points included in the at least one target pixel block.

[0116] Specifically, after determining the target filtering coefficient index corresponding to the at least one target pixel block, it can be determined whether the target filtering coefficient index is the same as the adjacent filtering coefficient index of the adjacent pixel block. If the two are the same, it means that the adjacent filtering coefficients already loaded in the register can be reused. Therefore, there is no need to reload the filtering coefficients, but directly reuse the adjacent filtering coefficients to filter the pixel points included in the at least one target pixel block.

[0117] In specific implementation, when it is determined that the target filtering coefficient index and the adjacent filtering coefficient index are the same through the above processing, it means that the pixel points included in the target pixel block can be filtered using the adjacent filtering coefficients. When using the adjacent filtering coefficients to filter the pixel points included in the target pixel block, it is necessary to first obtain the pixel values corresponding to the pixel points included in the target pixel block, and at the same time, it is also necessary to determine the pixel values corresponding to other pixel points around the target pixel block in the target video frame according to the currently used filter template. Then, the relative positions of all the determined pixel points relative to the pixel points in the target pixel block can be calculated and weighted using the adjacent filtering coefficients. The pixel values after weighted calculation can be accumulated into the initialization variable. After the initialization variable completes the calculation of each pixel point through accumulation, for each pixel point in the target pixel block, the filtering processing can be completed by dividing by the sum of the pixels in the filter template, and then the target pixel value corresponding to each pixel point can be obtained. By analogy, until all pixel blocks have completed the filtering processing, the reconstructed video frame can be obtained for use in downstream services.

[0118] Further, when performing filtering processing, considering that the adjacent filtering coefficients corresponding to adjacent pixel blocks have been loaded into the register, and after the pixel points included in the adjacent pixel blocks are loaded into the register, there may be a problem that the order does not match the adjacent filtering coefficients, which may cause the filtering processing to fail. Therefore, after the pixel points are loaded into the register, the adjacent filtering coefficients can be rearranged. In this embodiment, the specific implementation method is as follows:

[0119] Sort multiple sub-filtering coefficients in the adjacent filtering coefficients loaded into the register according to the arrangement order of the pixel points in the at least one target pixel block; determine the associated filtering coefficients according to the sorting result, and use the associated filtering coefficients to perform filtering processing on the pixel points included in the at least one target pixel block.

[0120] Specifically, the associated filtering coefficient specifically refers to the filtering coefficient obtained after rearranging multiple sub-filtering coefficients included in the adjacent filtering coefficients loaded into the register.

[0121] Based on this, in order to enable each pixel point to complete the processing with its matching filtering sub-coefficient, multiple sub-filtering coefficients in the adjacent filtering coefficients loaded into the register can be sorted according to the arrangement order of the pixel points in the at least one target pixel block; determine the associated filtering coefficients according to the sorting result. After the sorting is completed, the respective sub-filtering coefficients included in the adjacent filtering coefficients can be aligned with the pixel points included in the target pixel block. Therefore, the associated filtering coefficients can be used to perform filtering processing on the pixel points included in the at least one target pixel block.

[0122] Continuing with the above example, after determining the filtering coefficient indices x corresponding to pixel block 5 and pixel block 6, and the filtering coefficient index y corresponding to pixel block 3 and pixel block 4, if the filtering coefficient index x is the same as the filtering coefficient index y, the filtering coefficient corresponding to the filtering coefficient index y already loaded in the register can be directly reused to perform filtering processing on the pixel points included in pixel block 5 and pixel block 6. And so on. After all the pixel points included in the target video frame complete the filtering processing operation according to the above processing method, a live video frame can be formed and rendered for display on the client for the user to browse and watch. In addition, if the filtering coefficient index x is different from the filtering coefficient index y, the filtering coefficients corresponding to pixel block 5 and pixel block 6 need to be loaded into the register to complete the filtering processing.

[0123] In addition, when sub-filter coefficients need to be sorted, the eight sub-filter coefficients included in the filter coefficients loaded in the register can be sorted according to the order of the pixel points included in pixel block 5 and pixel block 6. After the sorting is completed, the pixel points included in pixel block 5 and pixel block 6 can be filtered. By analogy, after all the pixel points included in the target video frame are filtered according to the above processing method, a live video frame can be formed and rendered for display on the client for users to browse and watch.

[0124] For the filter processing method applied to the decoding end provided in this embodiment, in order to effectively improve the decoding speed of the decoding end, the video stream can be decoded, and according to the decoding result, a pixel block sequence and a filter coefficient index corresponding to each pixel block in the pixel block sequence can be determined; in order to improve the decoding speed, in the stage of sequentially filtering the pixel points included in the pixel blocks in the pixel block sequence according to the filter coefficient index, a target filter coefficient index of at least one target pixel block in the pixel block sequence can be determined; on this basis, adjacent pixel blocks of the at least one target pixel block can be determined, and it can be judged whether the adjacent filter coefficient index of the adjacent pixel block is the same as the target filter coefficient index; if so, it means that the filter operation can also be completed by using the adjacent filter coefficient corresponding to the adjacent pixel block for the target pixel block, and the time for loading the filter coefficient can be saved. Therefore, the pixel points included in the at least one target pixel block can be filtered by using the adjacent filter coefficient in the already loaded state corresponding to the adjacent pixel block, thereby effectively improving the decoding speed of the decoding end for the target video frame. At the same time, by adopting this filter processing operation, it is not necessary to externally purchase a decoder, thereby effectively reducing the external purchase cost.

[0125] See Figure 3 , Figure 3 FIG. shows a flowchart of a second filter processing method provided according to an embodiment of the present specification, which is applied to the decoding end and specifically includes the following steps.

[0126] Step S302, decode the video stream, and determine a pixel block sequence and a filter coefficient index corresponding to each pixel block in the pixel block sequence according to the decoding result.

[0127] Step S304, in the stage of sequentially filtering the pixel points included in the pixel blocks in the pixel block sequence according to the filter coefficient index, determine a target filter coefficient index of at least one target pixel block in the pixel block sequence.

[0128] Step S306, determine adjacent pixel blocks of the at least one target pixel block, and judge whether the adjacent filter coefficient index of the adjacent pixel block is the same as the target filter coefficient index.

[0129] Step S308, if so, filter the pixel points included in the at least one target pixel block by using the adjacent filtering coefficients corresponding to the loaded states of the adjacent pixel blocks, and display the decoded target video frame according to the filtering result.

[0130] It should be noted that for the content not described in detail in the second filtering method provided in this embodiment, reference may be made to the same or corresponding descriptions in the above embodiments, and this embodiment will not be elaborated here.

[0131] Furthermore, after determining the pixel block sequence associated with the target video frame, considering that the filtering operation of the 7*7 luminance component of the alf module is the most time-consuming, the filtering coefficients can be reused for the filtering operation of the 7*7 luminance component, thereby effectively improving the video frame decoding speed. In this embodiment, the specific implementation method is as follows:

[0132] Classify the pixel blocks included in the pixel block sequence according to the luminance component strategy to obtain the classification information corresponding to each pixel block in the pixel block sequence; allocate filters to the pixel blocks included in the pixel block sequence according to the classification information, and call the filters to execute the filtering processing tasks for the pixel blocks in the pixel block sequence.

[0133] Furthermore, when filtering the pixel points included in the pixel block sequence, in order to make full use of the computing resources and improve the decoding speed, the determination of at least one target pixel block can be implemented in the following manner:

[0134] Determine the register bit width corresponding to the decoding end, and calculate the pixel block loading quantity according to the register bit width; determine the pixel blocks to be processed corresponding to the pixel block loading quantity in the pixel block sequence, and use the pixel blocks to be processed corresponding to the pixel block loading quantity as the at least one target pixel block.

[0135] Furthermore, when selecting adjacent pixel blocks of at least one target pixel block, considering that in the target video frame, the pixel values of adjacent pixel points are relatively smooth, the filtering coefficients that the target pixel block may reuse should be continuous in space with it. Therefore, pixel blocks with adjacent positions can be selected as adjacent pixel blocks. In this embodiment, the specific implementation method is as follows:

[0136] Determine the pixel block positions of the at least one target pixel block in the target video frame; according to the pixel block positions, select the pixel blocks having a front adjacent relationship with the at least one target pixel block in the pixel block sequence as adjacent pixel blocks; wherein, the pixel points included in the adjacent pixel blocks have completed the filtering processing operation.

[0137] Furthermore, when the pixel points included in the adjacent pixel blocks are filtered, the determination of the adjacent filtering coefficients used includes:

[0138] Obtain the filter coefficient matrix sent by the encoding end corresponding to the decoding end, and obtain subset information and class information by parsing the adjacent filter coefficient index; query the filter coefficient matrix according to the subset information and the class information to obtain the adjacent filter coefficients corresponding to the adjacent pixel blocks.

[0139] Furthermore, when performing filtering processing, considering that the adjacent filter coefficients corresponding to the adjacent pixel blocks have been loaded into the register, and after the pixel points included in the adjacent pixel blocks are loaded into the register, there may be a problem that the order does not match the adjacent filter coefficients, which may cause the filtering processing to fail. Therefore, after the pixel points are loaded into the register, the adjacent filter coefficients can be rearranged. In this embodiment, the specific implementation method is as follows:

[0140] Sort multiple sub-filter coefficients in the adjacent filter coefficients loaded into the register according to the arrangement order of the pixel points in the at least one target pixel block; determine the associated filter coefficients according to the sorting result, and use the associated filter coefficients to perform filtering processing on the pixel points included in the at least one target pixel block.

[0141] Based on this, in order to effectively improve the decoding speed of the decoding end, the video stream can be decoded, and the pixel block sequence and the filter coefficient index corresponding to each pixel block in the pixel block sequence can be determined according to the decoding result; in order to improve the decoding speed, in the stage of sequentially performing filtering processing on the pixel points included in the pixel blocks in the pixel block sequence according to the filter coefficient index, the target filter coefficient index of at least one target pixel block in the pixel block sequence can be determined; on this basis, determine the adjacent pixel blocks of the at least one target pixel block, and determine whether the adjacent filter coefficient index of the adjacent pixel block is the same as the target filter coefficient index; if so, it means that the filtering operation can also be completed by using the adjacent filter coefficients corresponding to the adjacent pixel blocks for the target pixel block, and the time for loading the filter coefficients can be saved. Therefore, the pixel points included in the at least one target pixel block can be filtered by using the adjacent filter coefficients in the loaded state corresponding to the adjacent pixel blocks, thereby effectively improving the decoding speed of the decoding end for the target video frame. At the same time, adopting this filtering processing operation does not require an external decoder, thereby effectively reducing the external procurement cost, and thus can better meet the requirements in the video-on-demand scenario and quickly complete the playback operation of the on-demand video.

[0142] See Figure 4 , Figure 4 shows a flowchart of a third filtering processing method provided according to an embodiment of the present specification. This method is applied to the decoding end and specifically includes the following steps.

[0143] Step S402: Decode the video stream, and determine a pixel block sequence and a filtering coefficient index corresponding to each pixel block in the pixel block sequence according to the decoding result.

[0144] Step S404: In the stage of sequentially performing filtering processing on the pixel points included in the pixel blocks in the pixel block sequence, cluster the pixel blocks included in the pixel block sequence according to the filtering coefficient index.

[0145] Step S406: Obtain a pixel block cluster according to the clustering result, and determine a target filtering coefficient of a target pixel block in the pixel block cluster.

[0146] Step S408: Load the target filtering coefficient into a register, and perform filtering processing on the pixel blocks included in the pixel block cluster by using the target filtering coefficient in the register.

[0147] Specifically, a pixel block cluster specifically refers to one or more clusters obtained by clustering the pixel blocks included in a pixel region according to a filtering coefficient index. The filtering coefficient indexes corresponding to the pixel blocks included in each cluster are the same, which further indicates that the filtering coefficients are the same, so as to realize subsequent filtering processing in batches, and further achieve that one-time loading of filtering coefficients can complete the filtering processing operation of all pixel blocks within the cluster.

[0148] Based on this, in order to effectively improve the decoding speed, after decoding the video stream and determining a pixel block sequence and a filtering coefficient index corresponding to each pixel block in the pixel block sequence, the pixel blocks can be clustered according to the filtering coefficient index, so as to combine the pixel blocks with the same filtering coefficient index into a pixel block cluster according to the clustering result; since the filtering coefficient indexes corresponding to the pixel blocks included in the pixel block cluster are the same, the target filtering coefficient of the target pixel block in the pixel block cluster can be determined, so as to realize loading the target filtering coefficient into the register and performing filtering processing on the pixel blocks included in the pixel block cluster by using the target filtering coefficient in the register.

[0149] It should be noted that the determination of the target filtering coefficient, the loading of the target filtering coefficient, and the filtering processing can all refer to the same or corresponding description content in the above embodiments, and this embodiment will not elaborate too much here.

[0150] In addition, in order to be able to reduce the number of pixel blocks for each batch of filtering processing, the pixel blocks in the pixel block sequence can also be divided according to regions, so that the pixel blocks can complete filtering processing according to regions. In this embodiment, the specific implementation method is as follows:

[0151] Select associated pixel blocks corresponding to the pixel regions in the pixel block sequence to form a pixel block set, and determine the associated filter coefficient indices corresponding to each associated pixel block in the pixel block set; cluster the associated pixel blocks included in the pixel block set according to the associated filter coefficient indices.

[0152] Specifically, the pixel region specifically refers to the region where pixel blocks are divided according to set requirements. It can be understood that the target video frame consists of n pixel points, and each pixel block contains 4 pixel points. Each pixel region can contain a set number of pixel blocks. For example, if the pixel region is 64*64 in size, it can contain 16*16 pixel blocks.

[0153] Based on this, in order to effectively improve the decoding speed, after obtaining the target video frame and determining the pixel block sequence and pixel region associated with the target video frame, clustering can be performed on the set number of pixel blocks included in the pixel region, so as to combine pixel blocks with the same filter coefficient into a pixel block cluster according to the clustering result; thereafter, the pixel blocks included in the pixel block cluster can be used as at least one target pixel block, so as to complete the filtering operation of pixel blocks with the same filter coefficient in batches subsequently.

[0154] In specific implementation, the number of pixel blocks included in each pixel region can be set according to actual needs, and can also be determined according to the available computing resources at the decoding end. Among them, the number of pixel blocks is in a proportional relationship with the available computing resources. This embodiment does not make any limitation here.

[0155] Furthermore, in the case of using clustering to determine the filter coefficients corresponding to the same pixel blocks, in order to improve the decoding speed, the target filter coefficients that are the same for all pixel blocks in the pixel block cluster can be loaded into the register, and then the pixel blocks included in the pixel block cluster can be filtered using the target filter coefficients in the register. During the filtering process, the number of pixel blocks processed in each batch can be set according to actual needs. And since all pixel blocks belong to the pixel block cluster and have the same filter coefficient, the operation of loading filter coefficients into the register can be saved, and the filtering operation of all pixel blocks within the cluster can be completed with one loading.

[0156] On this basis, when it is determined that all pixel points included in the target video frame have completed the filtering operation according to the filtering processing result, at this time, the target pixel values corresponding to the pixel points included in the target video frame after filtering can be determined, and subsequently, the target pixel values can be used for displaying or storing the decoded target video frame.

[0157] For example, in a 1024*1024 video frame, when the video frame is sliced into 64*64 sized regions, 16*16 pixel regions can be obtained, and each pixel region can contain 16*16 pixel blocks. For example, for the first 64*64 pixel region, the pixel blocks it contains are determined to be pixel block 1, pixel block 2, pixel block... pixel block m (16*16). On this basis, the filtering coefficient index corresponding to each pixel block can be determined according to the above processing method, and then the m pixel blocks can be clustered according to the filtering coefficient index. According to the clustering result, two pixel block clusters are determined. Among them, pixel block cluster 1 contains pixel block 1, pixel block 2, pixel block 3..., a total of m1 pixel blocks, and the filtering coefficients corresponding to the m1 pixel blocks contained in pixel block cluster 1 are all x1; pixel block cluster 2 contains pixel block 21, pixel block 22..., a total of m2 pixel blocks, and the filtering coefficients corresponding to the m2 pixel blocks contained in pixel block cluster 2 are all y1; subsequently, the filtering process of a large number of pixel blocks with the same filtering coefficient can be completed in one load.

[0158] Furthermore, after determining the filtering coefficient x1 corresponding to the m1 pixel blocks contained in pixel block cluster 1 and the filtering coefficient y1 corresponding to the m2 pixel blocks contained in pixel block cluster 2, any two pixel blocks contained in pixel block cluster 1 can be loaded into register 1 first, and at the same time, the filtering coefficient x1 is loaded into register 2. Then, the filtering process can be performed on the 8 pixel points contained in the pixel blocks in register 1 using the filtering coefficient in register 2. After the processing is completed, two new pixel blocks are reselected and loaded into register 1, and the filtering coefficient loaded in register 2 does not need to be reloaded and can be directly reused to perform the filtering process on the pixel points contained in the new pixel blocks. And so on. After the filtering process of all the pixel points contained in the target video frame is completed according to the above processing method, a live video frame can be formed and rendered for display on the client for users to browse and watch.

[0159] In summary, in order to effectively improve the decoding speed at the decoding end, the video stream can be decoded, and the pixel block sequence and the filtering coefficient index corresponding to each pixel block in the pixel block sequence can be determined according to the decoding result; then, the filtering process can be performed on the pixel points contained in the pixel blocks in the pixel block sequence. In the stage of sequentially performing the filtering process on the pixel points contained in the pixel blocks in the pixel block sequence, in order to improve the decoding speed, the pixel blocks can be clustered to merge the pixel blocks with the same filtering coefficient into the same pixel cluster. Then, the filtering coefficients corresponding to the pixel blocks within the cluster can be loaded into the register, and the filtering process can be sequentially performed on all the pixel blocks contained within the cluster, thereby effectively improving the decoding speed of the decoding end for the target video frame.

[0160] The following combines the attached Figure 5, taking the application of the filtering processing method provided in this specification in the video-on-demand scenario as an example, the filtering processing method will be further described. Among them, Figure 5 The flowchart shows the timing diagram of a filtering processing method provided by an embodiment of this specification.

[0161] The filtering processing method is applied to a content application platform, which includes a client, a server, and a content distribution node (CDN node). Among them, the client is the terminal device held by the user who browses the content application platform for video-on-demand; the content distribution node specifically refers to the CDN node closest to the client; the server specifically refers to the server that encodes the video for on-demand. As Figure 5 shown:

[0162] The client submits a on-demand request for the target video and sends the on-demand request to the server.

[0163] The server, in response to the on-demand request of the client, encodes the video frames corresponding to the target video and sends the encoded video frames to the content distribution node that has a data transmission relationship with the client.

[0164] The content distribution node receives the video frames sent by the server and sends the video frames to the client.

[0165] The client determines the pixel block sequence associated with the video frames and the filtering coefficient index corresponding to each pixel block in the pixel block sequence.

[0166] When the client sequentially performs filtering processing on the pixel points included in the pixel blocks in the pixel block sequence according to the filtering coefficient index, it determines the target filtering coefficient index of at least one target pixel block in the pixel block sequence.

[0167] The client determines the adjacent pixel blocks of at least one target pixel block and determines whether the adjacent filtering coefficient index of the adjacent pixel block is the same as the target filtering coefficient index.

[0168] When the target filtering coefficient index is the same as the adjacent filtering coefficient index, the client uses the adjacent filtering coefficient in the loaded state corresponding to the adjacent pixel block to perform filtering processing on the pixel points included in at least one target pixel block.

[0169] When all the pixel points included in the video frames have been filtered, the client displays the decoded video frames.

[0170] Further, after determining the pixel block sequence associated with the target video frame, considering that the filtering operation of the 7×7 luminance component of the alf module is the most time-consuming, the filtering coefficients can be reused for the filtering operation of the 7×7 luminance component, thereby effectively improving the video frame decoding speed. In this embodiment, the specific implementation method is as follows:

[0171] Classify the pixel blocks included in the pixel block sequence according to the luminance component strategy to obtain the classification information corresponding to each pixel block in the pixel block sequence; allocate filters to the pixel blocks included in the pixel block sequence according to the classification information, and call the filters to execute the filtering processing task for the pixel blocks in the pixel block sequence.

[0172] Furthermore, when performing filtering processing on the pixel points included in the pixel block sequence, in order to make full use of computing resources and improve the decoding speed, the determination of at least one target pixel block can be implemented in the following manner:

[0173] Determine the register bit width corresponding to the decoding end, and calculate the pixel block loading quantity according to the register bit width; determine the pixel blocks to be processed corresponding to the pixel block loading quantity in the pixel block sequence, and use the pixel blocks to be processed corresponding to the pixel block loading quantity as the at least one target pixel block.

[0174] Further, when selecting adjacent pixel blocks of at least one target pixel block, considering that in the target video frame, the pixel values of adjacent pixel points are relatively smooth, so the filtering coefficients that the target pixel block may reuse should be continuous in space. Therefore, pixel blocks with adjacent positions can be selected as adjacent pixel blocks. In this embodiment, the specific implementation method is as follows:

[0175] Determine the pixel block position of the at least one target pixel block in the target video frame; according to the pixel block position, select the pixel blocks having a pre-adjacent relationship with the at least one target pixel block in the pixel block sequence as adjacent pixel blocks; wherein, the pixel points included in the adjacent pixel blocks have completed the filtering processing operation.

[0176] In summary, in order to effectively improve the decoding speed at the decoding end, the video stream can be decoded, and the pixel block sequence and the filtering coefficient index corresponding to each pixel block in the pixel block sequence can be determined according to the decoding result; in order to improve the decoding speed, in the stage of sequentially filtering the pixel points included in the pixel blocks in the pixel block sequence according to the filtering coefficient index, the target filtering coefficient index of at least one target pixel block in the pixel block sequence can be determined; on this basis, the adjacent pixel blocks of at least one target pixel block are determined, and it is judged whether the adjacent filtering coefficient index of the adjacent pixel block is the same as the target filtering coefficient index; if so, it means that the filtering operation can also be completed by using the filtering coefficient corresponding to the adjacent pixel block for the target pixel block, and the time for loading the filtering coefficient can be saved. Therefore, the pixel points included in at least one target pixel block can be filtered by using the adjacent filtering coefficient in the already loaded state corresponding to the adjacent pixel block, thereby effectively improving the decoding speed of the decoding end for the target video frame. At the same time, by adopting this filtering operation, it is not necessary to externally purchase a decoder, thereby effectively reducing the external purchase cost.

[0177] Corresponding to the above method embodiment, the present specification also provides a first video filtering processing device embodiment. Figure 6 The structure diagram of the first video filtering processing device provided by an embodiment of the present specification is shown. As Figure 6 shown, the device is applied to the decoding end and includes:

[0178] A decoding module 602, configured to decode a video stream, and determine a pixel block sequence and a filtering coefficient index corresponding to each pixel block in the pixel block sequence according to the decoding result;

[0179] A determining module 604, configured to determine a target filtering coefficient index of at least one target pixel block in the pixel block sequence in the stage of sequentially filtering the pixel points included in the pixel blocks in the pixel block sequence according to the filtering coefficient index;

[0180] A judging module 606, configured to determine adjacent pixel blocks of the at least one target pixel block, and judge whether the adjacent filtering coefficient index of the adjacent pixel block is the same as the target filtering coefficient index;

[0181] If so, execute a filtering module 608, and the filtering module 608 is configured to filter the pixel points included in the at least one target pixel block by using the adjacent filtering coefficient in the already loaded state corresponding to the adjacent pixel block.

[0182] In an optional embodiment, the determination of the adjacent filtering coefficient includes:

[0183] Obtain the filter coefficient matrix sent by the corresponding encoding end of the decoding end, and obtain subset information and class information by parsing the adjacent filter coefficient index; query the filter coefficient matrix according to the subset information and the class information to obtain the adjacent filter coefficients corresponding to the adjacent pixel blocks.

[0184] In an optional embodiment, the filtering the pixel points included in the at least one target pixel block by using the adjacent filter coefficients in the loaded state corresponding to the adjacent pixel blocks includes:

[0185] Sort multiple sub-filter coefficients in the adjacent filter coefficients loaded in the register according to the arrangement order of the pixel points in the at least one target pixel block; determine the associated filter coefficients according to the sorting result, and use the associated filter coefficients to filter the pixel points included in the at least one target pixel block.

[0186] The visual filtering processing device applied to the decoding end provided in this embodiment can decode the video stream in order to effectively improve the decoding speed of the decoding end, and determine the pixel block sequence and the filter coefficient index corresponding to each pixel block in the pixel block sequence according to the decoding result; in order to improve the decoding speed, it is possible to determine the target filter coefficient index of at least one target pixel block in the pixel block sequence during the stage of sequentially filtering the pixel points included in the pixel blocks in the pixel block sequence according to the filter coefficient index; on this basis, determine the adjacent pixel blocks of at least one target pixel block, and determine whether the adjacent filter coefficient index of the adjacent pixel block is the same as the target filter coefficient index; if so, it means that the target pixel block can also complete the filtering operation by using the filter coefficients corresponding to the adjacent pixel blocks, and the time for loading the filter coefficients can be saved. Therefore, the pixel points included in at least one target pixel block can be filtered by using the adjacent filter coefficients in the loaded state corresponding to the adjacent pixel blocks, thereby effectively improving the decoding speed of the decoding end for the target video frame. At the same time, this filtering processing operation can eliminate the need for an external decoder, thereby effectively reducing the external procurement cost.

[0187] The above is a schematic solution of a visual filtering processing device in this embodiment. It should be noted that the technical solution of this visual filtering processing device and the technical solution of the above filtering processing method belong to the same concept. For the details not described in the technical solution of the visual filtering processing device, reference can be made to the description of the technical solution of the above filtering processing method.

[0188] Corresponding to the above method embodiment, the present specification also provides a second embodiment of the visual filtering processing device. Figure 7 The structural schematic diagram of the second visual filtering processing device provided by an embodiment of the present specification is shown. As Figure 7 shown, this device is applied to the decoding end and includes:

[0189] The decoding module 702 is configured to decode a video stream, and determine a pixel block sequence and a filtering coefficient index corresponding to each pixel block in the pixel block sequence according to the decoding result;

[0190] The clustering module 704 is configured to cluster the pixel blocks included in the pixel block sequence according to the filtering coefficient index during the stage of sequentially performing filtering processing on the pixel points included in the pixel blocks in the pixel block sequence;

[0191] The determining module 706 is configured to obtain a pixel block cluster according to the clustering result, and determine a target filtering coefficient of a target pixel block in the pixel block cluster;

[0192] The filtering module 708 is configured to load the target filtering coefficient into a register, and perform filtering processing on the pixel blocks included in the pixel block cluster by using the target filtering coefficient in the register.

[0193] In an optional embodiment, the clustering of the pixel blocks included in the pixel block sequence according to the filtering coefficient index includes:

[0194] Selecting associated pixel blocks corresponding to a corresponding pixel region in the pixel block sequence to form a pixel block set, and determining an associated filtering coefficient index corresponding to each associated pixel block in the pixel block set; clustering the associated pixel blocks included in the pixel block set according to the associated filtering coefficient index.

[0195] In an optional embodiment, the apparatus further includes:

[0196] Loading the target filtering coefficient into a register, and performing filtering processing on the pixel blocks included in the pixel block cluster by using the target filtering coefficient in the register; when it is determined that the filtering processing operations on the pixel points included in the target video frame are all completed according to the filtering processing result, determining a target pixel value corresponding to the pixel points included in the target video frame, where the target pixel value is used for displaying or storing the decoded target video frame.

[0197] In summary, in order to effectively improve the decoding speed at the decoding end, the video stream can be decoded, and the pixel block sequence and the filtering coefficient index corresponding to each pixel block in the pixel block sequence can be determined according to the decoding result; thereafter, the pixel points included in the pixel blocks in the pixel block sequence can be filtered. During the filtering process of the pixel points included in the pixel blocks in the pixel block sequence in sequence, in order to improve the decoding speed, the pixel blocks can be clustered to merge the pixel blocks with the same filtering coefficients into the same pixel cluster. Thereafter, the filtering coefficients corresponding to the pixel blocks within the cluster can be loaded into the register, and the filtering process can be sequentially performed on all the pixel blocks included in the cluster, thereby effectively improving the decoding speed of the decoding end for the target video frame.

[0198] The above is a schematic solution of a video filtering processing device according to this embodiment. It should be noted that the technical solution of this video filtering processing device and the technical solution of the above filtering processing method belong to the same concept. For the details not described in the technical solution of the video filtering processing device, reference can be made to the description of the technical solution of the above filtering processing method.

[0199] Figure 8 The structural block diagram of a computing device 800 provided according to an embodiment of this specification is shown. The components of the computing device 800 include but are not limited to a memory 810 and a processor 820. The processor 820 is connected to the memory 810 through a bus 830, and a database 850 is used to store data.

[0200] The computing device 800 also includes an access device 840, which enables the computing device 800 to communicate via one or more networks 860. Examples of such networks include the Public Switched Telephone Network (PSTN), Local Area Network (LAN), Wide Area Network (WAN), Personal Area Network (PAN), or a combination of communication networks such as the Internet. The access device 840 may include one or more of any type of wired or wireless network interfaces (e.g., network interface controller (NIC)), such as an IEEE 802.11 Wireless Local Area Network (WLAN) wireless interface, Worldwide Interoperability for Microwave Access (Wi-MAX) interface, Ethernet interface, Universal Serial Bus (USB) interface, cellular network interface, Bluetooth interface, Near Field Communication (NFC).

[0201] In one embodiment of the present specification, the above components of the computing device 800 and Figure 8 other components not shown may also be connected to each other, for example, via a bus. It should be understood that Figure 8 the block diagram of the computing device shown is only for illustrative purposes and is not a limitation on the scope of the present specification. Those skilled in the art can add or replace other components as needed.

[0202] The computing device 800 can be any type of stationary or mobile computing device, including mobile computers or mobile computing devices (e.g., tablet computers, personal digital assistants, laptop computers, notebook computers, netbooks, etc.), mobile phones (e.g., smartphones), wearable computing devices (e.g., smartwatches, smart glasses, etc.) or other types of mobile devices, or stationary computing devices such as desktop computers or personal computers (PCs). The computing device 800 can also be a mobile or stationary server.

[0203] Among them, the processor 820 is used to execute the following computer-executable instructions, and when the computer-executable instructions are executed by the processor, the steps of the above filtering processing method are implemented.

[0204] The above is a schematic solution of a computing device according to this embodiment. It should be noted that the technical solution of this computing device and the technical solution of the above filtering processing method belong to the same concept. For the details not described in detail in the technical solution of the computing device, reference can be made to the description of the technical solution of the above filtering processing method.

[0205] An embodiment of this specification also provides a computer-readable storage medium, which stores computer-executable instructions. When the computer-executable instructions are executed by a processor, the steps of the above filtering processing method are implemented.

[0206] The above is a schematic solution of a computer-readable storage medium according to this embodiment. It should be noted that the technical solution of this storage medium and the technical solution of the above filtering processing method belong to the same concept. For the details not described in detail in the technical solution of the storage medium, reference can be made to the description of the technical solution of the above filtering processing method.

[0207] An embodiment of this specification also provides a computer program product, including a computer program or instructions. When the computer program or instructions are executed by a processor, the steps of the above filtering processing method are implemented.

[0208] The above is a schematic solution of a computer program product according to this embodiment. It should be noted that the technical solution of this computer program product and the technical solution of the above filtering processing method belong to the same concept. For the details not described in detail in the technical solution of the computer program product, reference can be made to the description of the technical solution of the above filtering processing method.

[0209] The above describes specific embodiments of this specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims may be executed in a different order than in the embodiments and still achieve the desired result. Additionally, the processes depicted in the figures do not necessarily require the particular order or sequential order shown to achieve the desired result. In certain embodiments, multitasking and parallel processing are also possible or may be advantageous.

[0210] The computer instructions include computer program code, which may be in the form of source code, object code, executable files, or some intermediate forms, etc. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, USB flash drive, removable hard disk, magnetic disk, optical disc, computer memory, read-only memory (ROM), random access memory (RAM), electrical carrier signals, telecommunication signals, and software distribution media, etc. It should be noted that the content included in the computer-readable medium can be appropriately increased or decreased according to the requirements of patent practice. For example, in some regions, according to patent practice, the computer-readable medium does not include electrical carrier signals and telecommunication signals.

[0211] It should be noted that for the foregoing method embodiments, for the sake of simplicity of description, they are all expressed as a series of action combinations. However, those skilled in the art should know that the embodiments of this specification are not limited by the described action sequence, because according to the embodiments of this specification, certain steps can be performed in other sequences or simultaneously. Secondly, those skilled in the art should also know that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily essential for the embodiments of this specification.

[0212] In the above embodiments, the descriptions of the respective embodiments have their own focuses. For the parts not detailed in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0213] The preferred embodiments of this specification disclosed above are only used to help explain this specification. The alternative embodiments do not elaborate on all the details and do not limit the invention to the specific embodiments described. Obviously, many modifications and variations can be made according to the content of the embodiments of this specification. These embodiments are selected and specifically described in this specification to better explain the principles and practical applications of the embodiments of this specification, so that those skilled in the art can well understand and utilize this specification.

Claims

1. A filtering processing method, characterized in that: Applied to the decoding end, including: Decoding the video stream, and determining a pixel block sequence and a filter coefficient index corresponding to each pixel block in the pixel block sequence according to the decoding result; In the stage of sequentially filtering the pixels contained in the pixel blocks in the pixel block sequence according to the filter coefficient index, determining a target filter coefficient index of at least one target pixel block in the pixel block sequence; Determining an adjacent pixel block of the at least one target pixel block, and determining whether an adjacent filter coefficient index of the adjacent pixel block is the same as the target filter coefficient index; If so, the pixel points included in the at least one target pixel block are filtered using the adjacent filter coefficients corresponding to the adjacent pixel blocks in the loaded state.

2. The filtering processing method according to claim 1, characterized in that: The determination of the adjacent filter coefficients includes: Acquire a filter coefficient matrix sent by an encoding end corresponding to the decoding end, and obtain subset information and class information by parsing the adjacent filter coefficient indexes; The filter coefficient matrix is ​​queried according to the subset information and the class information to obtain adjacent filter coefficients corresponding to the adjacent pixel blocks.

3. The filtering processing method according to claim 1, characterized in that: The filtering process of the pixel points included in the at least one target pixel block by using the adjacent filter coefficients corresponding to the adjacent pixel blocks in the loaded state comprises: Sort the plurality of sub-filter coefficients in the adjacent filter coefficients loaded into the register according to the arrangement order of the pixels in the at least one target pixel block; The associated filter coefficients are determined according to the sorting result, and the associated filter coefficients are used to perform filtering processing on the pixel points included in the at least one target pixel block.

4. A filtering processing method, characterized in that: Applied to the decoding end, including: Decoding the video stream, and determining a pixel block sequence and a filter coefficient index corresponding to each pixel block in the pixel block sequence according to the decoding result; In the stage of sequentially filtering the pixel points contained in the pixel blocks in the pixel block sequence, clustering the pixel blocks contained in the pixel block sequence according to the filter coefficient index; Obtaining a pixel block cluster according to the clustering result, and determining a target filter coefficient of a target pixel block in the pixel block cluster; The target filter coefficient is loaded into a register, and the target filter coefficient in the register is used to perform filtering processing on the pixel blocks included in the pixel block cluster.

5. The filtering method according to claim 4, characterized in that: The clustering of the pixel blocks contained in the pixel block sequence according to the filter coefficient index comprises: Selecting associated pixel blocks of corresponding pixel areas in the pixel block sequence to form a pixel block set, and determining an associated filter coefficient index corresponding to each associated pixel block in the pixel block set; The associated pixel blocks included in the pixel block set are clustered according to the associated filter coefficient index.

6. The filtering method according to claim 4, characterized in that: The method further comprises: Loading the target filter coefficient into a register, and using the target filter coefficient in the register to perform filtering processing on the pixel blocks included in the pixel block cluster; When it is determined according to the filtering processing result that all pixel points included in the target video frame have completed the filtering processing operation, the target pixel value corresponding to the pixel point included in the target video frame is determined, wherein the target pixel value is used to display or store the decoded target video frame.

7. A filtering processing device, characterized in that: Applied to the decoding end, including: A decoding module, configured to decode the video stream, and determine a pixel block sequence and a filter coefficient index corresponding to each pixel block in the pixel block sequence according to a decoding result; A determination module, configured to determine a target filter coefficient index of at least one target pixel block in the pixel block sequence in a stage of sequentially filtering the pixel points contained in the pixel blocks in the pixel block sequence according to the filter coefficient index; A determination module, configured to determine an adjacent pixel block of the at least one target pixel block, and determine whether an adjacent filter coefficient index of the adjacent pixel block is the same as the target filter coefficient index; If yes, a filtering module is executed, wherein the filtering module is configured to perform filtering processing on the pixel points included in the at least one target pixel block using the adjacent filtering coefficients corresponding to the adjacent pixel blocks in the loaded state.

8. A filtering processing device, characterized in that: Applied to the decoding end, including: A decoding module is configured to decode the video stream and determine a pixel block sequence and a filter coefficient index corresponding to each pixel block in the pixel block sequence according to a decoding result; A clustering module, configured to cluster the pixel blocks contained in the pixel block sequence according to the filter coefficient index in a stage of sequentially filtering the pixel points contained in the pixel blocks in the pixel block sequence; A determination module is configured to obtain a pixel block cluster according to the clustering result, and determine a target filter coefficient of a target pixel block in the pixel block cluster; The filtering module is configured to load the target filtering coefficient into a register, and use the target filtering coefficient in the register to perform filtering processing on the pixel blocks included in the pixel block cluster.

9. A computing device, characterized in that include: Memory and processor; The memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions. When the computer-executable instructions are executed by the processor, the steps of the method described in any one of claims 1 to 6 are implemented.

10. A computer-readable storage medium, characterized in that: It stores computer executable instructions, which, when executed by a processor, implement the steps of the method described in any one of claims 1 to 6.

11. A computer program product, characterized in that The method comprises a computer program or an instruction, which, when executed by a processor, implements the steps of the method according to any one of claims 1 to 6.