Video decoding method, video encoding method, storage medium, electronic device and product

By introducing filter flag bits into the high-level syntax of video encoding and decoding, implicitly transmitting filter parameters, the problem of redundant transmission of ALF in video encoding and decoding is solved, and the encoding and decoding performance is improved.

WO2025152898A1PCT designated stage expired Publication Date: 2025-07-24TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/072061
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-15
Filing Date
2025-01-13
Publication Date
2025-07-24

AI Technical Summary

Technical Problem

In the prior art, the adaptive loop filter (ALF) has redundant transmission problems in video encoding and decoding, resulting in a degradation of the encoding and decoding performance.

Method used

By introducing filter flag bits into the high-level syntax of video encoding and decoding, tap coefficient information in filter parameters is implicitly transmitted to reduce redundant data transmission.

Benefits of technology

Improve the performance of video encoding and decoding, reduce the redundant data in the video code stream, and improve the encoding and decoding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025072061_24072025_PF_FP_ABST
    Figure CN2025072061_24072025_PF_FP_ABST
Patent Text Reader

Abstract

The present application discloses a video decoding method, a video encoding method, a storage medium, an electronic device and a product. The video decoding method comprises: obtaining a video bitstream, wherein the video bitstream comprises decoding indication information, and the decoding indication information comprises at least one filter flag bit used for indicating a filter parameter; on the basis of a value of the filter flag bit, determining tap coefficient information in the filter parameter; and on the basis of the tap coefficient information, determining the filter parameter.
Need to check novelty before this filing date? Find Prior Art

Description

Video decoding method, video encoding method, storage medium, electronic device and product

[0001] This application claims priority and benefits of the patent application with patent application number "202410060332.2" filed with the State Intellectual Property Office of China on January 15, 2024, and incorporates the entire text of it herein by reference. Technical Field

[0002] The present application belongs to the field of video coding and decoding technology, and in particular relates to a video decoding method, a video encoding method, a computer-readable storage medium, an electronic device, and a computer program product. Background Art

[0003] The nonlinear limiting operation and increasing number of filter taps used in adaptive loop filtering (ALF) improve the quality of ALF filtering, but also require more parameters to be transmitted to the decoder. This leads to redundant transmission and is not conducive to improving codec performance. Summary of the Invention

[0004] The present application aims to solve at least one of the technical problems existing in the prior art. To this end, the present application proposes a video decoding method, a video encoding method, a computer-readable storage medium, an electronic device, and a computer program product, which can reduce redundant transmission and improve encoding and decoding performance.

[0005] In a first aspect, the present application provides a video decoding method comprising obtaining a video code stream, wherein the video code stream includes decoding indication information, and the decoding indication information includes at least one filter flag bit for indicating filter parameters; based on the value of the filter flag bit, determining the tap coefficient information in the filter parameters; and based on the tap coefficient information, determining the filter parameters.

[0006] In second aspect, the present application provides a video encoding method including acquiring video data; encoding and compressing the video data to obtain a video code stream, wherein the video code stream includes decoding indication information, and the decoding indication information includes at least one filter flag for indicating filter parameters, and the filter flag is determined according to tap coefficient information, and the tap coefficient information is determined according to the filter parameters.

[0007] In a third aspect, the present application provides a non-transitory computer-readable storage medium having a computer program stored thereon, which implements the above-mentioned video decoding method or video encoding method when executed by a processor.

[0008] In a fourth aspect, the present application provides an electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the above-mentioned video decoding method or video encoding method when executing the program.

[0009] In a fifth aspect, the present application provides a computer program product, which includes a computer program, and when the computer program is executed by a processor, it implements the above-mentioned video decoding method or video encoding method.

[0010] The video encoding method, video decoding method, computer-readable storage medium, and electronic device provided in the embodiments of the present application introduce a filter flag bit in the high-level syntax of video encoding and decoding (i.e., decoding indication information) to decode the filter parameters that contain redundant data when transmitted in the filter parameters, thereby realizing implicit transmission of the filter parameters that contain redundant data during transmission, reducing the redundant data in the video code stream, and thus facilitating improved encoding and decoding performance. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] The above and / or additional aspects and advantages of the present application will become apparent and easily understood from the description of the embodiments in conjunction with the following drawings, in which:

[0012] FIG1 is a schematic diagram of the video encoding principle provided by an embodiment of the present application;

[0013] FIG2 is a schematic diagram of the inter-frame prediction principle provided by an embodiment of the present application;

[0014] FIG3 is a schematic diagram of a sheet structure provided in an embodiment of the present application;

[0015] FIG4 is a schematic diagram of the filtering principle of a filter for general video coding provided by an embodiment of the present application;

[0016] FIG5 is a schematic diagram of the shape of a filter provided in an embodiment of the present application;

[0017] FIG6 is a schematic diagram of the shape of a filter provided in an embodiment of the present application;

[0018] FIG7 is a schematic diagram of a framework of a video encoding and decoding system provided in an embodiment of the present application;

[0019] 8 to 16 are flowcharts of a video decoding method according to an embodiment of the present application;

[0020] FIG17 is a flow chart of a video encoding method according to an embodiment of the present application;

[0021] FIG18 is a schematic structural diagram of a video decoding device provided in an embodiment of the present application;

[0022] FIG19 is a schematic structural diagram of a video encoding device provided in an embodiment of the present application;

[0023] FIG20 is a schematic structural diagram of an electronic device provided in an embodiment of the present application;

[0024] FIG21 is a schematic diagram of the hardware structure of the electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0025] The following describes in detail embodiments of the present application. Examples of the embodiments are shown in the accompanying drawings, wherein the same or similar reference numerals throughout represent the same or similar elements or elements having the same or similar functions. The embodiments described below with reference to the accompanying drawings are exemplary and are only used to explain the present application and are not to be construed as limiting the present application.

[0026] The following is an introduction to some of the technical terms involved in this application:

[0027] 1. Video encoding:

[0028] Video signals can be divided into two types based on how they are acquired: those captured by cameras and those generated by computers. Due to differences in statistical properties, the corresponding compression encoding methods may also differ.

[0029] Refer to Figure 1. Modern mainstream video coding technologies, such as the international video coding standards HEVC / H.265 (High Efficiency Video Coding, HEVC), VVC, and AVS3, use a hybrid coding framework to perform the following operations and processing on the input raw video signal:

[0030] (1) Block partition structure: Input video pictures are divided into several non-overlapping processing units based on their size. Each processing unit performs similar compression operations. This processing unit is called a CTU or LCU. Further subdivisions below the CTU can be performed to obtain one or more basic coding units, called CUs. Each CU is the most basic element in the encoding process. The following describes the various encoding methods that can be used for each CU.

[0031] (2) Predictive Coding: This includes intra-picture prediction and motion-comp prediction. The original video signal is predicted by the selected reconstructed video signal to produce a residual video signal. The encoder needs to select the most appropriate predictive coding mode for the current CU from among many possible modes and inform the decoder.

[0032] Currently mainstream video coding standards, such as HEVC, VVC (Versatile Video Coding), AVS3 (Audio Video Coding Standard 3), the Alliance for Open Media Video 1 (AV1), and the Alliance for Open Media Video 2 (AV2), all employ a block-based hybrid coding framework. These standards divide the original video data into a series of coding blocks and combine video coding methods such as prediction, transform, and entropy coding to achieve video data compression. Motion compensation is a commonly used prediction method in video coding. Motion compensation leverages the temporal or spatial redundancy of video content to derive prediction values ​​for the current coding block from previously coded regions. These prediction methods include inter-frame prediction, intra-block copy prediction, and intra-sequence copy prediction. Specific coding implementations may use these prediction methods individually or in combination. For coding blocks using these prediction methods, it is usually necessary to explicitly or implicitly encode one or more two-dimensional displacement vectors in the code stream to indicate the displacement of the current block (or the co-located block of the current block) relative to one or more reference blocks.

[0033] It's important to note that displacement vectors may have different names in different prediction modes and implementations. This article uniformly describes them as follows: 1) The displacement vector in inter-frame prediction is called a motion vector (MV); 2) The displacement vector in intra-frame block copy is called a block vector (BV); 3) The displacement vector in intra-frame string copy is called a string vector (SV). The following describes the relevant technologies for inter-frame prediction and intra-frame block copy prediction.

[0034] a. Intra-frame prediction: The predicted signal comes from the area that has been encoded and reconstructed within the same image.

[0035] b. Inter-frame prediction: The predicted signal comes from an already encoded image that is different from the current image (called a reference image).

[0036] As shown in Figure 2, inter-frame prediction exploits the temporal correlation of the video, using pixels from neighboring coded images to predict the pixels of the current image. This effectively removes temporal redundancy in the video and saves bits of coded residual data. Here, P is the current frame, Pr is the reference frame, B is the current block to be coded, and Br is B's reference block. B' and B have the same coordinate position in the image: Br's coordinates are (xr, yr), and B''s coordinates are (x, y). The displacement between the current coded block and its reference block is called a motion vector (MV), i.e., MV = (xr-x, yr-y).

[0037] Considering the strong correlation between adjacent blocks in the temporal or spatial domain, MV prediction technology can be used to further reduce the bits required to encode MV. In H.265 / HEVC, inter-frame prediction includes two MV prediction technologies: Merge and AMVP.

[0038] (3) Transform coding and quantization: The residual video signal undergoes transform operations such as discrete Fourier transform (DFT) and discrete cosine transform (DCT) to convert the signal into a transform domain, which is called transform coefficients. The signal in the transform domain is further subjected to lossy quantization, which loses some information, making the quantized signal more conducive to compression expression. In some video coding standards, there may be more than one transform method to choose from. Therefore, the encoder also needs to select one of the transforms for the current coded CU and inform the decoder. The degree of quantization is usually determined by the quantization parameter (QP). A larger QP value means that coefficients with a larger value range will be quantized into the same output, which usually results in greater distortion and a lower bit rate. Conversely, a smaller QP value means that coefficients with a smaller value range will be quantized into the same output, which usually results in less distortion and a corresponding higher bit rate.

[0039] (4) Entropy Coding or Statistical Coding: The quantized transform domain signal will be statistically compressed and encoded according to the frequency of occurrence of each value, and finally a binary (0 or 1) compressed code stream will be output. At the same time, the encoding generates other information, such as the selected mode, motion vector, etc., which also needs to be entropy coded to reduce the bit rate. Statistical coding is a lossless coding method that can effectively reduce the bit rate required to express the same signal. Common statistical coding methods include variable length coding (VLC) or context-based binary arithmetic coding (CABAC).

[0040] (5) Loop Filtering: The encoded image undergoes inverse quantization (scaling & inv.transform), inverse transformation and prediction compensation (the reverse operations of (2) to (4) above) to obtain a reconstructed decoded image. Compared with the original image, the reconstructed image has some information that is different from the original image due to the influence of quantization, resulting in distortion. Filtering operations on the reconstructed image, such as deblocking filtering, sample adaptive offset (SAO) or ALF filters, can effectively reduce the degree of distortion caused by quantization. Since these filtered reconstructed images will be used as a reference for subsequent encoded images and used to predict future signals, the above filtering operations are also called loop filtering, and filtering operations within the encoding loop.

[0041] 2. Video decoding: This is the inverse process of video encoding. Based on the encoding process described above, at the decoding end, after receiving the video bitstream, the decoder first performs entropy decoding on each CU to obtain various mode information and quantized transform coefficients. Each coefficient undergoes inverse quantization and inverse transformation to produce a residual signal. Furthermore, based on the known coding mode information, the prediction signal corresponding to the CU can be obtained. Adding these two together yields a reconstructed signal. Finally, the reconstructed value of the decoded image undergoes loop filtering to produce the final output signal.

[0042] 3. Video stream structure

[0043] (1) Video sequence

[0044] A video sequence is the highest-level syntactic structure of a bitstream (i.e., a video codestream). A video sequence begins with the first sequence header. A sequence end code or video editing code indicates the end of a video sequence. The sequence headers between the first sequence header and the first occurrence of a sequence end code or video editing code are repeated sequence headers. Each sequence header is followed by one or more coded pictures, each preceded by a picture header. Coded pictures are arranged in bitstream order within the bitstream, which should be the same as the decoding order. The decoding order may differ from the display order.

[0045] (2) Image

[0046] A picture can be a frame or a field, and its coded data starts with a picture start code and ends with a sequence start code, a sequence end code or the next picture start code.

[0047] Image types include: I-image; P-image; B-image. A fully encoded frame is called an I-frame. A frame that only contains the difference encoded by referring to the previous I-frame is called a P-frame. There is also a frame that is encoded by referring to the previous and next frames and is called a B-frame.

[0048] (3) pieces

[0049] A slice is a rectangular area in an image (such as region A, region B, etc.) that contains the portion of several LCUs within the image. Slices should not overlap. The slice structure is shown in Figure 3.

[0050] (4) Maximum coding unit, coding tree, and coding unit

[0051] The image is divided into maximum coding units (such as coding tree units (CTUs) in video coding). Maximum coding units should not overlap, the sample in the upper left corner of the maximum coding unit should not exceed the image boundary, and the sample in the lower right corner of the maximum coding unit can exceed the image boundary.

[0052] The coding tree determines how the maximum coding unit is divided into multiple coding units (such as CU in video coding), such as binary tree, quadtree, enhanced quadtree and other division methods. A coding unit can be used as an image block.

[0053] The coding unit is divided into one or more transform blocks, which are the basic units for transform coding.

[0054] 4. ALF and Cross-Component Adaptive Loop Filtering (CCALF) in Versatile Video Coding (VVC)

[0055] As newly adopted loop filters in VVC, ALF and CCALF are Wiener filters that adaptively determine filter coefficients based on different video content, thereby reducing the mean square error (MSE) between the reconstructed and original components. The input to the ALF is the reconstructed pixel values ​​before ALF processing, and the output is the enhanced reconstructed luminance image and reconstructed chrominance image. As an adaptive filter, the Wiener filter can generate different filter coefficients for video content with different characteristics. Therefore, the ALF must first classify the video content and use the corresponding filter for each category of video content. In the VVC design, each 4x4 block is divided into one of 25 categories based on its directionality and activity. The corresponding filter coefficients are calculated for each category of video content.

[0056] For the luminance component, in addition to 4x4 block-level adaptation, VVC also supports CTU-level ALF adaptive switching. Each CTU can use the filter group generated by the current slice, or the filter group generated by the coded slice or a set of fixed filters from the 16 offline trained fixed filter groups. Within the CTU, each 4x4 block selects the filter of the corresponding category from the filter group for filtering according to its own category. The filter coefficients of the Adaptation Parameter Set (APS) and the corresponding limiting and cropping index are transmitted to the decoding end by ALF_APS. An ALF_APS can contain a luminance filter group (including up to 25 filters) and up to 8 chroma filters.

[0057] CCALF uses the luma component to correct the chroma components. The ALF and CCALF processing flow is shown in Figure 4. CCALF uses the luma component as input and outputs the corrected values ​​for the chroma components. The two chroma components can independently control whether to use their corresponding corrected values. These corrected values, along with the output of the chroma ALF, form the final chroma components.

[0058] 4.1 ALF filter shape

[0059] In VVC [1], ALF uses two diamond filters of different shapes as shown in Figure 5. The luminance component uses a 7x7 diamond filter, and the chrominance component uses a 5x5 diamond filter.

[0060] 4.2 Pixel Block Classification and Geometric Transformation

[0061] For the luminance component, ALF will adaptively use different filters at the sub-block level (4x4), that is, each 4x4 pixel block needs to be divided into one of 25 categories. For the chrominance component, ALF does not need to classify the pixels at the sub-block level. All chrominance pixels in a CTU use the same filter. The classification index C of the luminance component pixel block is composed of the directionality feature (Directionality) D and the quantized activity feature (Activity) of the block. The formula is as follows:

[0062] To calculate D and First, we need to calculate the horizontal, vertical, diagonal, and anti-diagonal gradient values ​​of each pixel in the 4x4 pixel block: k,l =|2R(k,l)-R(k-1,l)-R(k+1,l)|#(2-2) V k,l =|2R(k,l)-R(k,l-1)-R(k,l+1)|#(2-3) D0 k,l =|2R(k,l)-R(k-1,l-1)-R(k+1,l+1)|#(2-4) D1 k,l =|2R(k,l)-R(k-1,l+1)-R(k+1,l-1)|#(2-5)

[0063] Based on pixel gradients, the horizontal, vertical, diagonal, and anti-diagonal gradients of each 4x4 block are calculated as follows:

[0064] Where i and j represent the coordinates of the upper left corner pixel of the 4x4 pixel block, and R(k,l) represents the reconstructed pixel value at position (k,l) before ALF filtering.

[0065] After obtaining the gradient value of the pixel block, the maximum and minimum values ​​of the horizontal and vertical gradient values ​​are:

[0066] The maximum and minimum values ​​of the diagonal and anti-diagonal gradient values ​​are:

[0067] The directional feature D is derived by comparing the maximum and minimum values ​​of the gradient values ​​in the four directions obtained by equations (2-8)-(2-9):

[0068] Step 1: If and If both are true, then D is set to 0.

[0069] Step 2: If Then go to Step 3, otherwise go to Step 4.

[0070] Step 3: If Then D is set to 2, otherwise D is set to 1.

[0071] Step 4: If Then D is set to 4, otherwise D is set to 3.

[0072] The activity characteristic A is calculated by the following formula:

[0073] Activity feature A will be quantized to the range of [0-4] as the quantized activity feature

[0074] Before filtering each 4x4 luminance block, the filter coefficients and corresponding clipping values ​​are geometrically transformed according to the gradient values ​​of the current block, as specified in Table 2-1. These transformations include no transformation, diagonal transformation, vertical flip, and rotation. Applying a geometric transformation to the filter coefficients is equivalent to applying a geometric transformation to the pixel values ​​while keeping the coefficients unchanged before filtering. The purpose of the geometric transformation is to align the directionality of the content of different blocks as much as possible, thereby reducing the number of categories required for the ALF and allowing different pixels to share the same filter coefficients. Using geometric transformations can increase the number of actual categories from 25 to 100 without increasing the number of ALF filters, thus improving its adaptability.

[0075] Table 2-1 Geometric transformation based on pixel block gradient values

[0076] 4.3 ALF filtering process in VVC

[0077] At the decoding end, if the ALF flag at the CTU level is true, each pixel R(i,j) in the current CTU will be filtered. The filtering process and output are as follows:

[0078] Where f(k,l) represents the filter tap coefficient, K(x,y) is the limit function, and c(k,l) is the parameter related to the limit operation. The value range of k and l is to Where L is the filter length. The clipping function is defined as K(x,y) = min(y,max(-y,x)). Clipping adds nonlinearity to the ALF, reducing the impact of surrounding pixels with significant differences on the current pixel.

[0079] 5. ALF in Enhanced Compression Model (ECM) 8.0

[0080] ECM-8.0[2] removes the downsampling operation and virtual boundary restrictions when calculating gradients during ALF classification. At the same time, the basic unit of the ALF classification operation is changed from a 4x4 sub-block to a 2x2 sub-block. The shapes of the luminance and chrominance filters are also changed accordingly.

[0081] 5.1 Enhanced Fixed Filter

[0082] For the luminance component, ECM-8.0 uses three different classifiers (C0, C1, and C2) and three different filter sets (F0, F1, and F2). Filter sets F0 and F1 contain fixed filters whose coefficients are generated based on offline training of classifiers C0 and C1. F2 contains filter coefficients generated from the content to be encoded and needs to be written into the bitstream for transmission to the decoder.

[0083] 5.2 Classification Process

[0084] In ECM-8.0, each 2x2 sub-block is divided into two groups according to its directional characteristics D i and activity characteristics A i Generate the corresponding category index C i , as shown below:

[0085] Among them, i represents the classifier index, M D,i Represents the activity feature D used by the corresponding classifier i The total number of .

[0086] Similar to the calculation process in VVC, the horizontal, vertical, diagonal, and anti-diagonal gradients of each pixel are generated using the 1-D Laplacian operator. For classifier C0, the gradient of its sub-block is generated by adding the pixel gradient values ​​of all positions in the 4x4 area covering the target 2x2 sub-block. For classifiers C1 and C2, the gradient of its sub-block is generated by adding the pixel gradient values ​​of all positions in the 12x12 area covering the target 2x2 sub-block. The horizontal, vertical, diagonal, and anti-diagonal sub-block gradients are specified as Then the directional characteristic D i It is obtained by comparing the following two values ​​with a set of thresholds:

[0087] Directional feature D2 uses the same thresholds of 2 and 4.5 as VVC. For D0 and D1, first calculate the horizontal / vertical edge strength and diagonal edge strength Use threshold Th=[1.25,1.5,2,3,4.5,8]. When the edge strength Set to 0; otherwise, is satisfied The maximum integer of . When the edge strength Set to 0; otherwise To satisfy 1]. When That is, when the horizontal / vertical edge is strong, the directional feature D i Generated by Table 2-2(a). Otherwise, the directional feature D i Generated from Table 2-2(b).

[0088] Table 2-2 Edge Strength With D i The mapping relationship

[0089] Activity characteristics It is the result of accumulating the horizontal and vertical gradients of the sub-block level A i The quantized value range is 0 to n. n is set to 4; for and n is set to 15. One ALF_APS can transmit up to 4 groups of luminance component filters, each filter group contains up to 25 filters.

[0090] 5.3. Band Classifier Based on 2x2 Sub-Blocks

[0091] In ECM-8.0, the ALF classification process uses a new classifier. For a set of filters transmitted to the decoder, a flag is used to indicate whether to use the original classifier or the new classifier. The new classifier cannot use geometric transformations. When using the new classifier, all pixels in a 2x2 sub-block are added together, and then the class is classified based on the sum of the pixel values. index =(sum×25)>>(samplebitdepth+2)#(2-13)

[0092] 5.4 Filtering process

[0093] First, two fixed filters F0 and F1 using 13x13 diamond filters generate two intermediate values ​​R0(x,y) and R1(x,y) for the current pixel to be filtered. Then, the online filter F2 is applied to R0(x,y), R1(x,y) and the surrounding pixels to generate the filtered pixel, as shown in the following formula:

[0094] Among them, f i,j Indicates the difference between the surrounding pixels after the clipping operation and the current pixel R(x,y), g i Represents R after limiting operation i-20 The difference between (x,y) and the current pixel. Filter coefficient c i ,i=0,…21,need to be transmitted to the decoding end.

[0095] In ECM-8.0, the luminance filter generated by online training contains four types of input: spatially adjacent samples, reconstructed samples before deblocking, extended samples generated by filtering with a fixed filter, and residual components. Its shape is shown in Figure 6. Among them, #0-#19 represent spatially adjacent samples, #20-#25, #28-#29 represent samples generated by filtering with a fixed filter, #26, #27, #30 represent reconstructed samples before deblocking, and #31 and #32 represent residual components. Based on these multiple types of input, the filtering process is as follows:

[0096] Among them, f i,j Indicates the difference between the limited spatial pixel samples and the current sample R(x,y), g i Represents the difference between the pixel sample generated by filtering with a fixed filter and the current sample R(x,y), h i,j Represents the difference between the reconstructed sample before the deblocking effect after clipping and the current sample R(x,y). i Represents the residual component after limiting, rFiltered i Represents the residual component generated by filtering with a fixed filter after clipping. The residual component and the reconstructed component use the same fixed filter.

[0097] In ALF_APS, a flag is used to indicate whether to use only the residual component or to use both the residual component and the residual component filtered by the fixed filter.

[0098] 5.5. Residual Component-Based Classifier

[0099] A classifier based on the luma residual component is used as the third classifier of the ALF. For any 2x2 luma sub-block, the sum of the absolute values ​​of the residual components of all positions in the 8x8 area covering the current 2x2 sub-block is first calculated, and then the classification is performed based on the accumulated sum using the following formula: classIdx = sum>>(samplebitdepth-4)#(2-16)

[0100] The value range of the final category classIdx is 0-24. In ALF_APS, a classifier needs to be transmitted for each filter bank.

[0101] 5.6. ALF coefficient and nonlinear limiting index transmission process.

[0102] For the current image to be filtered, its ALF coefficients can be selected from the filter coefficients generated by the current image, the filter coefficients generated by the encoded image, and the pre-trained filter coefficients. If the filter coefficients generated by the current image are selected, the filter-related parameters need to be transmitted to the decoding end. An example of the ALF filter syntax elements and transmission process is shown in Table 1 below:

[0103] alf_comp_num_alt_filters_minus1+1 indicates the number of filter banks used by the current color component (such as luma component, chroma component, and cross component). In ECM, luma component supports up to 4 filter banks, and chroma component supports up to 8 filter banks. For each filter bank, alf_comp_clip_flag is required to indicate whether the filters contained in the current filter bank use nonlinear clipping.

[0104] A

[0105] lf_comp_num_filters_signalled_minus1+1 indicates the number of filters included in the current filter group (in ECM, a filter group for the luminance component contains a maximum of 25 filters, and a filter group for the chrominance component contains a maximum of 1 filter. The chrominance component does not need to transmit this syntax element).

[0106] alf_comp_coeff() represents the tap coefficients of the transmission filter. If nonlinear clipping is used, the nonlinear clipping index alf_comp_clip_idx[altIdx][sfIdx][j] is transmitted for each tap coefficient of the filter.

[0107] The video decoding method and video encoding method provided in the embodiments of the present application can be applied to a video coding and decoding system, which may include a content production device (corresponding to an encoding device) and a content presentation device (corresponding to a decoding device). The content production device may refer to an electronic device used by a provider of video data (for example, a content producer of video data), and the electronic device may be a terminal (such as a PC (Personal Computer), a smart mobile device (such as a smart phone), etc.) or a server.

[0108] Among them, the server can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN, and big data and artificial intelligence platforms. The content presentation device can refer to an electronic device used by a user of video data (such as a viewer of video data, i.e., a business object), which can be a terminal (such as a PC (Personal Computer), a smart mobile device (such as a smart phone), a VR device (such as a VR helmet, VR glasses, etc.), a smart home appliance, a vehicle-mounted terminal, an aircraft, etc.), and the electronic device is integrated with a client.

[0109] The client herein may be a client capable of displaying data information such as text, images, audio, and video, including but not limited to a multimedia client (e.g., a video client), a social client (e.g., an instant messaging client), an information application (e.g., a news client), an entertainment client (e.g., a game client), a shopping client, an in-car client, a browser, etc. The client may be a standalone client or an embedded sub-client integrated into a client (e.g., a social client), and the like, without limitation.

[0110] The content production device and the content presentation device can be the same device or different devices, each including multiple modules, different modules for implementing different functions, and these modules can be integrated into the same electronic device or located in different electronic devices. The content production device can be used to implement functions such as the acquisition and encoding of video data, and correspondingly, the content presentation device can be used to implement functions such as decoding, rendering, and displaying encapsulated files. Please refer to Figure 7, which is a schematic diagram of the framework of the video encoding and decoding system for video data provided in an embodiment of the present application.

[0111] In Figure 7, on the content production device side, the real-world visual scene is captured by a set of cameras or a single camera device with multiple lenses and sensors. The captured camera image A is video data B, which includes multiple frames of captured images. Alternatively, on the content production device side, multiple frames of screen content image A can be used as video data B. After content capture is complete, video data B is encoded to generate video stream C, which is then sent to the content presentation device.

[0112] On the content presentation device side, the video code stream C is decoded, and then the decoded video data B' is rendered to obtain a rendered video D, which is then displayed.

[0113] It is understood that the encoding and decoding technology involved in this application can be implemented based on cloud technology; for example, using a cloud server as a content production device. Cloud technology refers to a hosting technology that unifies hardware, software, network and other resources within a wide area network or local area network to achieve data computing, storage, processing and sharing.

[0114] Based on the introduction of the above basic concepts and related scenarios, the embodiments of the present application provide a video encoding method, a video decoding method, a video encoding device, a video decoding device, a computer storage medium and an electronic device.

[0115] To support the video encoding method in the embodiment of this application, the embodiment of this application adds several descriptive fields at the system level based on the existing technology and defines the corresponding high-level syntax data structure. In the following content, the above video encoding method will be described in detail in conjunction with various syntax tables.

[0116] Referring to FIG8 , the video decoding method provided in the embodiment of the present application includes the following steps:

[0117] Step 011: Acquire a video stream, where the video stream includes decoding indication information, and the decoding indication information includes at least one filter flag bit for indicating filter parameters;

[0118] Specifically, after encoding and compressing video data (such as at least one of an image captured by a camera and a screen content image generated by a computer), a bit stream, ie, a video code stream, can be obtained.

[0119] The decoding end can obtain the video code stream sent by the encoding end. The video code stream contains decoding instruction information. The decoding end can decode the video code stream according to the decoding instruction information.

[0120] The decoding instruction information is used to provide decoding instructions for different data in the video code stream. The decoding instruction information includes a video sequence, which is the highest-level syntax structure of the video code stream.

[0121] The decoding indication information includes at least one filter flag bit for indicating filter parameters, and the filter flag bit is used to perform decoding indication on the filter parameters.

[0122] Optionally, the filter parameters may include tap coefficients and nonlinear limiting indices corresponding to the tap coefficients. For the filter parameters, there are repeated parameters or parameters with preset values ​​(such as 0). If all these parameters are transmitted, a large amount of redundant data will be generated (such as transmitting multiple identical nonlinear limiting indices). Therefore, the filter flag can be used to decode and indicate the filter parameters, which is beneficial to reduce redundant data.

[0123] Step 012: Determine the tap coefficient information in the filter parameters based on the value of the filter flag bit;

[0124] Among them, the tap coefficient information is used to characterize the specific situation of the relevant information of the tap coefficients in the filter (such as the tap coefficients, the nonlinear limiting index corresponding to the tap coefficients, etc.), such as whether the tap coefficients of the filter are all 0, and whether the nonlinear limiting indexes corresponding to each tap coefficient are the same.

[0125] Specifically, when decoding indication is performed through the filter flag, the tap coefficient information in the filter parameters can be determined by decoding the value of the filter flag, thereby determining the specific situation of the relevant information of the tap coefficients in the filter, which is convenient for subsequent decoding to obtain the corresponding filter parameters based on the specific situation of the relevant information of the tap coefficients.

[0126] For example, according to the value of the filter flag, the tap coefficient information in the filter parameters is determined to be that the tap coefficients of the filter are all 0, or, according to the value of the filter flag, the tap coefficient information in the filter parameters is determined to be that the nonlinear limiting indexes corresponding to each tap coefficient are the same.

[0127] Step 013: Determine filter parameters based on the tap coefficient information.

[0128] Specifically, after the tap coefficient information is determined, the corresponding filter parameters can be obtained by decoding the tap coefficient information.

[0129] For example, when the tap coefficient information is determined to be that the tap coefficients of the filter are all 0, it can be inferred that all the tap coefficients in the filter are 0; for another example, when the tap coefficient information is determined to be that the nonlinear limiting indexes corresponding to all the tap coefficients are the same, it can be inferred that the nonlinear limiting indexes corresponding to all the tap coefficients in the filter are preset indexes.

[0130] In this way, by introducing the filter flag bit in the high-level syntax of video codec (i.e., decoding indication information), the filter parameters that will generate redundant data during transmission (such as the filter parameters corresponding to the tap coefficient information) are decoded and indicated, so that the filter parameters that will generate redundant data do not need to be transmitted in the video bitstream, and the implicit transmission of the filter parameters is realized, which is beneficial to improving the bit rate of the video bitstream and improving the codec performance.

[0131] Referring to FIG9 , in some embodiments, the filter flag includes a first tap flag, which is used to indicate whether all tap coefficients in the corresponding filter are 0. When the first tap flag is a first preset value, it is determined that the tap coefficient information indicates that all tap coefficients of the filter are 0. When the first tap flag is a second preset value, it is determined that all tap coefficients of the filter included in the tap coefficient information are not 0, and the first preset value and the second preset value are different. Step 013: determining the filter parameters based on the tap coefficient information, including:

[0132] Step 01311: When the first tap flag indicates that all tap coefficients of the filter are 0, no tap coefficient information is received, and all tap coefficients of the filter are inferred;

[0133] Step 01312: When the first tap flag indicates that all tap coefficients of the filter are not 0, the tap coefficients of the filter are obtained based on the decoded tap coefficient information, and the first preset value and the second preset value are different.

[0134] Specifically, in the existing design, when all tap coefficients of a filter are 0, it is still necessary to transmit all tap coefficients for the filter, resulting in a large amount of redundancy in the transmitted tap coefficients. Therefore, the first tap flag can be set in the filter flag to indicate whether all tap coefficients in the filter are 0.

[0135] When the first tap flag is the first preset value, it can indicate that all tap coefficients of the filter are 0, which means that all tap coefficients of the filter are redundant data, and all tap coefficients of the filter can be transmitted implicitly, that is, the encoding end does not transmit the tap coefficient information (that is, all tap coefficients of the filter), and the decoding end does not need to receive the tap coefficient information. When the first tap flag is the first preset value, the decoding end can directly infer that all tap coefficients of the filter are 0.

[0136] When the first tap flag is the second preset value, it may indicate that all tap coefficients of the filter corresponding to the first tap flag are not all 0. At this time, there is no redundant data for all tap coefficients of the filter during transmission. Therefore, all tap coefficients of the filter can be explicitly transmitted. The decoding end can obtain the various tap coefficients transmitted in the filter based on the decoded tap coefficient information (that is, the various tap coefficients explicitly transmitted).

[0137] The first preset value may be 1 and the second preset value may be 0, or the first preset value may be 0 and the second preset value may be 1.

[0138] In one example, the transmission process of the syntax element corresponding to the first tap flag bit is as shown in Table 2 below:

[0139] The first tap flag alf_filt_coeff_all_zero[altIdx][sfIdx] is 1, indicating that the tap coefficients of the sfIdx-th filter of the altIdx-th filter group are all 0. If it is 0, it indicates that the tap coefficients of the corresponding filter are not all 0. The default is 0.

[0140] Optionally, in the existing design, when the tap coefficient is 0, the corresponding tap coefficient still needs to be transmitted. In the embodiment of the present application, when the tap coefficient is 0, the encoder and decoder can agree in advance that the value of the missing tap coefficient is 0. In this case, the video bitstream does not need to transmit the tap coefficient with a value of 0 (or the value of the tap coefficient is not transmitted). When decoding, if the decoder determines that there is a missing tap coefficient in the filter, it can determine that the missing tap coefficient is 0.

[0141] Referring to FIG10 , in some embodiments, the filter flag further includes a second tap flag, which is used to indicate whether all tap coefficients of at least one filter in the corresponding filter group are 0; when the second tap flag is a first preset value, it is determined that the tap coefficient information indicates that all tap coefficients of at least one filter in the filter group are 0; when the second tap flag is a second preset value, it is determined that the tap coefficient information indicates that no filter in the filter group has all tap coefficients of 0;

[0142] Step 013: Based on the tap coefficient information, determine the filter parameters, including:

[0143] Step 01321: When the second tap flag indicates that all tap coefficients of at least one filter in the filter group are 0, tap coefficient information of the at least one filter is not received, and the tap coefficients of the at least one filter in the filter group are inferred;

[0144] Step 01322: When the second tap flag indicates that all tap coefficients of any filter in the filter group are not 0, obtain the tap coefficients of each filter based on the decoded tap coefficient information.

[0145] Specifically, in the APS in the video code stream, there are generally one or more filter groups, each filter group includes one or more filters. In order to decode the filter parameters in each filter group, the filter flag can also set a second tap flag. The second tap flag is used to indicate whether all the tap coefficients of at least one filter in the corresponding filter group are 0.

[0146] If the second tap flag in the current filter group is the first preset value, it can be determined that all tap coefficients of at least one filter in the filter group are 0; the second tap flag can also specifically indicate a filter whose tap coefficients are all 0 (e.g., the tap coefficients of the sfIdx-th filter in the altIdx-th filter group are all 0). In this case, the tap coefficients of the sfIdx-th filter in the altIdx-th filter group are all redundant data, and the tap coefficient information of the filter needs to be implicitly transmitted, that is, the encoding end does not transmit the tap coefficient information of the filter (i.e., all tap coefficients of the sfIdx-th filter in the altIdx-th filter group), and the decoding end does not receive the tap coefficient information. The decoding end can directly infer that all tap coefficients of the filter are 0. Alternatively, by decoding the first tap flag corresponding to each filter in the filter group, the filter whose tap coefficients are all 0 can be determined based on the first tap flag. Alternatively, when decoding, if any target filter in the filter bank decoded into does not transmit tap coefficients, it can be determined that the tap coefficients of the target filter are implicitly transmitted, and it can be inferred that the tap coefficients of the target filter are all 0.

[0147] If the second tap flag in the current filter group is a second preset value, it can be determined that there is no filter in the filter group in which all tap coefficients are 0; in this case, each tap coefficient can be explicitly transmitted to the decoding end without transmitting the first tap flag corresponding to each filter in the current filter group, thereby reducing the transmission of redundant first tap flags, and reducing redundant filter flags under the premise of decoding indication of filter parameters with redundant data during transmission. The decoding end obtains the tap coefficients of each filter transmitted in the filter group based on the decoded tap coefficient information (i.e., the explicitly transmitted tap coefficients).

[0148] In one example, the transmission process of the syntax element corresponding to the second tap flag bit is as shown in Table 3 below:

[0149] Among them, the first tap flag alf_filt_coeff_all_zero[altIdx][sfIdx] is 1, indicating that the tap coefficients of the sfIdx-th filter of the altIdx-th filter group are all 0, and is 0, indicating that the tap coefficients of the corresponding filter are not all 0, and the default is 0.

[0150] The second tap flag alf_has_filt_coeff_all_zero[altIdx] is 1, indicating that the altIdx-th filter group contains at least one filter whose all tap coefficients are 0; if it is 0, it indicates that the tap coefficients of all filters in the filter group are not all 0.

[0151] Referring to FIG. 11 , in some embodiments, each filter is divided into one or more filter groups, each filter group is in an adaptive parameter set, and the filter flag bit further includes a third tap flag bit, which is used to indicate whether at least one filter group in the adaptive parameter set includes at least one filter whose all tap coefficients are 0; when the third tap flag bit is a first preset value, it is determined that the tap coefficient information indicates that at least one filter group in the adaptive parameter set includes at least one filter whose all tap coefficients are 0; when the third tap flag bit is a second preset value, it is determined that the tap coefficient information indicates that no filter group in the adaptive parameter set includes a filter whose all tap coefficients are 0;

[0152] Step 013: Based on the tap coefficient information, determine the filter parameters, including:

[0153] Step 01331: When the third tap flag indicates that at least one filter group in the adaptive parameter set includes at least one filter whose all tap coefficients are 0, tap coefficient information of the at least one filter is not received, and tap coefficients of at least one filter of the at least one filter group in the adaptive parameter set are inferred;

[0154] Step 01332: When the third tap flag indicates that there is no filter group in the adaptive parameter set containing filters with all tap coefficients being 0, the tap coefficients of each filter in the adaptive parameter set are obtained based on the decoded tap coefficient information.

[0155] Specifically, there are generally one or more filter groups in the APS in the video code stream. In order to indicate whether there is at least one filter group in the APS that contains at least one filter whose all tap coefficients are 0, a third tap flag can also be set in the filter flag. The third tap flag is used to indicate whether there is at least one filter group in the adaptive parameter set that contains at least one filter whose all tap coefficients are 0.

[0156] If the third tap flag in the APS is a first preset value, it can be determined that at least one filter group in the APS contains at least one filter whose tap coefficients are all 0; the third tap flag can also specifically indicate a filter whose tap coefficients are all 0 (e.g., the tap coefficients of the sfIdx-th filter in the altIdx-th filter group are all 0). In this case, the tap coefficients of the sfIdx-th filter in the altIdx-th filter group are all redundant data, and the tap coefficient information of the filter needs to be implicitly transmitted, that is, the encoder does not transmit the tap coefficient information of the filter (i.e., all tap coefficients of the sfIdx-th filter in the altIdx-th filter group), and the decoder does not receive the tap coefficient information. The decoder can directly infer that all tap coefficients of the filter are 0. Alternatively, by decoding the corresponding second tap flag in each filter group in the APS, a target filter group containing filters whose tap coefficients are all 0 is determined, and then decoding the first tap flag corresponding to each filter in the target filter group, a filter whose tap coefficients are all 0 can be determined. Alternatively, when decoding, if the decoder finds that any target filter in the APS does not transmit tap coefficients, it can be determined that the tap coefficients of the target filter are implicitly transmitted. In this case, it can be inferred that the tap coefficients of the target filter are all 0.

[0157] If the third tap flag in the APS is a second preset value, it can be determined that there is no filter group in the APS that includes filters with tap coefficients all being 0; in this case, the tap coefficients of each filter can be explicitly transmitted to the decoding end without transmitting the second tap flag corresponding to each filter group, and the first tap flag and the second tap flag corresponding to each filter, thereby reducing the transmission of redundant second tap flags and first tap flags, and reducing redundant filter parameters while implementing a decoding indication of filter parameters with redundant data during transmission. The decoding end directly obtains the tap coefficients of each filter transmitted in the APS based on the decoded tap coefficient information (i.e., the explicitly transmitted tap coefficients).

[0158] In one example, the transmission process of the syntax element corresponding to the third tap flag bit is as shown in Table 4 below:

[0159] The third tap flag alf_alt_filt_coeff_all_zero is 1, indicating that all tap coefficients of at least one filter in the filter group supported by the current APS are 0. If it is 0, it means that the tap coefficients of all filters in the filter group supported by the current APS are not all 0. The default is 0.

[0160] The second tap flag alf_has_filt_coeff_all_zero[altIdx] is 1, indicating that the altIdx-th filter group contains at least one filter whose all tap coefficients are 0; if it is 0, it indicates that the tap coefficients of all filters in the filter group are not all 0.

[0161] The first tap flag alf_filt_coeff_all_zero[altIdx][sfIdx] is 1, indicating that the tap coefficients of the sfIdx-th filter of the altIdx-th filter group are all 0. If it is 0, it indicates that the tap coefficients of the corresponding filter are not all 0. The default is 0.

[0162] Referring to FIG. 12 , in some embodiments, the filter flag includes a first index flag, which is used to indicate whether the nonlinear clipping indexes corresponding to all tap coefficients in the corresponding filter are the same; when the first index flag is a first preset value, it is determined that the nonlinear clipping indexes corresponding to all tap coefficients in the filter indicated by the tap coefficient information are the same; when the first index flag is a second preset value, it is determined that the nonlinear clipping indexes corresponding to all tap coefficients in the filter included in the tap coefficient information are not the same;

[0163] Step 013: Based on the tap coefficient information, determine the filter parameters, including:

[0164] Step 01341: when the first index flag indicates that the nonlinear clipping indices corresponding to all tap coefficients in the filter are not the same, obtain the nonlinear clipping index corresponding to each tap coefficient of the filter based on the decoded tap coefficient information;

[0165] Step 01342: When the first index flag indicates that the nonlinear clipping indices corresponding to all tap coefficients in the filter are not the same, obtain the nonlinear clipping index corresponding to each tap coefficient of the filter based on the decoded tap coefficient information.

[0166] Specifically, in existing designs, if all nonlinear clipping indices for a filter are identical, it is still necessary to transmit all nonlinear clipping indices for the filter, resulting in a large amount of redundancy in the transmitted tap coefficients. Therefore, a first index flag can be set in the filter flag bits to indicate whether the nonlinear clipping indices corresponding to all tap coefficients in the corresponding filter are identical.

[0167] When the first index flag of the filter decoded by the decoding end is the first preset value, it can be determined that the nonlinear limiting indices corresponding to all tap coefficients in the filter are the same. At this time, there is redundant data when the nonlinear limiting indices corresponding to all tap coefficients of the filter are transmitted. Therefore, the nonlinear limiting indices corresponding to all tap coefficients of the filter can be transmitted implicitly, that is, the encoding end does not transmit the tap coefficient information of the filter (that is, the nonlinear limiting indices corresponding to all tap coefficients of the filter), and the decoding end does not receive the tap coefficient information. The decoding end can directly infer the nonlinear limiting indices corresponding to all tap coefficients of the filter. For example, it is inferred that the nonlinear limiting indices corresponding to all tap coefficients of the filter are preset indexes (such as nonlinear limiting indices of 0, 1, 2 or 3).

[0168] If the first index flag bit of the filter decoded by the decoding end is the second preset value, it can be determined that the nonlinear limiting indices corresponding to all the tap coefficients in the filter are not the same; at this time, the nonlinear limiting index corresponding to each tap coefficient can be explicitly transmitted to the decoding end, and the decoding end directly obtains the nonlinear limiting index corresponding to each tap coefficient transmitted in the filter based on the decoded tap coefficient information (that is, the nonlinear limiting index corresponding to all tap coefficients explicitly transmitted).

[0169] In one example, the transmission process of the syntax element corresponding to the first index flag bit is as shown in Table 5 below:

[0170] Among them, the first index flag alf_filt_clip_all_same[altIdx][sfIdx] is 1, indicating that all tap coefficients of the sfIdx-th filter of the altIdx-th filter group use the same nonlinear clipping index; if it is 0, it indicates that the nonlinear clipping indexes of the corresponding filters are not all the same, and the default is 0.

[0171] Optionally, the filter flag further includes a second index flag, and the second index flag is used to indicate a nonlinear clipping index commonly used by all tap coefficients of the corresponding filter.

[0172] When the first index flag of the filter decoded by the decoding end is the first preset value, it can be determined that the nonlinear limiting indexes corresponding to all tap coefficients in the filter are the same. There is redundant data when the nonlinear limiting indexes corresponding to all tap coefficients of the filter are transmitted. Therefore, the nonlinear limiting indexes corresponding to all tap coefficients of the filter can be implicitly transmitted. The decoding end can directly determine that the nonlinear limiting indexes corresponding to all tap coefficients of the filter are all the values ​​of the second index flag. For example, if the second index flag is a nonlinear limiting index of 0, 1, 2 or 3, the nonlinear limiting index corresponding to the second index flag is the same as the nonlinear limiting index corresponding to all tap coefficients of the filter.

[0173] Thus, by introducing the second index flag indicating the nonlinear clipping index corresponding to all tap coefficients of the filter, the decoding indication is more accurate than determining the nonlinear clipping index of the filter having the same nonlinear clipping index corresponding to all tap coefficients as the preset index.

[0174] In one example, the transmission process of the syntax elements corresponding to the first index flag bit and the second index flag bit is as shown in Table 6 below:

[0175] Among them, the first index flag alf_filt_clip_all_same[altIdx][sfIdx] is 1, indicating that all tap coefficients of the sfIdx-th filter of the altIdx-th filter group use the same nonlinear clipping index; if it is 0, it indicates that the nonlinear clipping indexes of the corresponding filters are not all the same, and the default is 0.

[0176] The second index flag alf_filt_same_clip_index[altIfx][sfIdx] represents the nonlinear clipping index used by all tap coefficients of the sfIdx-th filter of the altIdx-th filter group.

[0177] Optionally, in existing designs, when the tap coefficient is 0, the nonlinear clipping index corresponding to the tap coefficient still needs to be transmitted. In the embodiments of the present application, when the tap coefficient is 0, the encoder and decoder can agree in advance that the nonlinear clipping index corresponding to the tap coefficient with a value of 0 is a preset index. In this case, the nonlinear clipping index corresponding to the tap coefficient with a value of 0 does not need to be transmitted in the video bitstream. During decoding, the decoder can determine that the nonlinear clipping index corresponding to the tap coefficient with a value of 0 is the preset index.

[0178] Referring to FIG. 13 , in some embodiments, each filter is divided into one or more filter groups, and the filter flag bit further includes a third index flag bit, which is used to indicate whether at least one filter in the corresponding filter group has the same nonlinear clipping index for all tap coefficients. When the third index flag bit is a first preset value, it is determined that the tap coefficient information indicates that at least one filter in the filter group has the same nonlinear clipping index for all tap coefficients. When the third index flag bit is a second preset value, it is determined that the tap coefficient information indicates that no filter in the filter group has the same nonlinear clipping index for all tap coefficients.

[0179] Step 013: Based on the tap coefficient information, determine the filter parameters, including:

[0180] Step 01351: When the third index flag indicates that all the tap coefficients of at least one filter in the filter group correspond to the same nonlinear clipping index, tap coefficient information of the at least one filter is not received, and it is inferred that all the tap coefficients of the at least one filter in the filter group correspond to the same nonlinear clipping index.

[0181] Step 01352: When the third index flag indicates that there is no filter in the filter bank with the same nonlinear clipping index for all tap coefficients, the nonlinear clipping index corresponding to the tap coefficients of each filter is obtained based on the decoded tap coefficient information.

[0182] Specifically, in the APS in the video code stream, there are generally one or more filter groups. In order to decode and indicate the filter parameters of each filter group that have redundant data during transmission, a third index flag can also be set in the filter flag. The third index flag is used to indicate whether there is at least one filter in the corresponding filter group whose nonlinear limiting indexes corresponding to all tap coefficients are the same.

[0183] If the third index flag in the current filter group is the first preset value, it can be determined that in the filter group, at least one filter has the same nonlinear clipping index corresponding to all tap coefficients. The third index flag can also specifically indicate a filter whose nonlinear clipping indexes corresponding to all tap coefficients are the same (e.g., the nonlinear clipping indexes corresponding to the tap coefficients of the sfIdx-th filter in the altIdx-th filter group are the same). In this case, the tap coefficients of the sfIdx-th filter in the altIdx-th filter group are all redundant data, and the tap coefficient information of the filter needs to be implicitly transmitted. That is, the encoder does not transmit the tap coefficient information of the filter (i.e., all tap coefficients of the sfIdx-th filter in the altIdx-th filter group), and the decoder does not receive the tap coefficient information. The decoder can then directly infer the nonlinear clipping indexes corresponding to all tap coefficients of the filter. For example, if the nonlinear clipping indexes corresponding to all tap coefficients are inferred to be preset indexes (e.g., nonlinear clipping indexes of 0, 1, 2, or 3), the decoder can obtain the nonlinear clipping indexes corresponding to all tap coefficients of the filter. Alternatively, by decoding the first index flag corresponding to each filter in the filter bank, a filter having the same nonlinear clipping index corresponding to all tap coefficients is determined based on the first index flag. Alternatively, when decoding, if the decoding end decodes any target filter in the filter bank without transmitting the nonlinear clipping index corresponding to the tap coefficient, it can be determined that the nonlinear clipping index corresponding to the tap coefficient of the target filter has been implicitly transmitted. In this case, it can be inferred that the nonlinear clipping index corresponding to the tap coefficient of the target filter is all preset index.

[0184] If the third index flag in the current filter group is the second preset value, it can be determined that there is no filter in the filter group whose nonlinear clipping indexes corresponding to all tap coefficients are the same; in this case, the nonlinear clipping index corresponding to each tap coefficient can be explicitly transmitted to the decoding end without transmitting the first index flag corresponding to each filter in the current filter group, thereby reducing the transmission of redundant first index flags, and reducing redundant filter indication bits under the premise of implementing the decoding indication of filter parameters with redundant data during transmission. The decoding end directly obtains the nonlinear clipping index corresponding to each tap coefficient of each filter transmitted in the filter group based on the decoded tap coefficient information (i.e., the nonlinear clipping index corresponding to all tap coefficients explicitly transmitted).

[0185] In one example, the transmission process of the syntax element corresponding to the third index flag bit is as shown in Table 7 below:

[0186] The third index flag, alf_has_filt_clip_all_same[altIdx], is 1, indicating that the altIdx-th filter bank contains at least one filter whose tap coefficients all share the same nonlinear clipping index. If it is 0, it indicates that the altIdx-th filter bank does not contain any filter whose tap coefficients share the same nonlinear clipping index. The default value is 0.

[0187] The first index flag alf_filt_clip_all_same[altIdx][sfIdx] is 1, indicating that the nonlinear indexes of the tap coefficients of the sfIdx-th filter in the altIdx-th filter group are all the same. If it is 0, it indicates that the nonlinear clipping indexes of the tap coefficients of the corresponding filters are not all the same. The default value is 0.

[0188] The second index flag alf_filt_same_clip_index[altIdx][sfIdx] represents the nonlinear clipping index commonly used by the tap coefficients of the sfIdx-th filter in the altIdx-th filter group.

[0189] Referring to FIG. 14 , in some embodiments, each filter is divided into one or more filter groups, and the filter flag bit further includes a fourth index flag bit, which is used to indicate whether the nonlinear clipping indexes corresponding to all tap coefficients of all filters in the corresponding filter group are the same; when the fourth index flag bit is a first preset value, it is determined that the nonlinear clipping indexes corresponding to all tap coefficients of all filters in the filter group indicated by the tap coefficient information are the same; when the fourth index flag bit is a second preset value, it is determined that the nonlinear clipping indexes corresponding to all tap coefficients of all filters in the filter group included in the tap coefficient information are not the same;

[0190] Step 013: Based on the tap coefficient information, determine the filter parameters, including:

[0191] Step 01361: When the fourth index flag indicates that the nonlinear clipping indexes corresponding to all the tap coefficients of all the filters in the filter bank are the same, tap coefficient information of the filter bank is not received, and it is inferred that the nonlinear clipping indexes corresponding to all the tap coefficients of all the filters in the filter bank are the fifth index flag;

[0192] Step 01362: When the fourth index flag indicates that the nonlinear clipping indices corresponding to all tap coefficients of all filters in the filter bank are not the same, the nonlinear clipping index corresponding to each tap coefficient of each filter is obtained based on the decoded tap coefficient information.

[0193] Specifically, in existing designs, when the nonlinear clipping indices corresponding to all tap coefficients in a filter bank are identical, it is still necessary to transmit the nonlinear clipping indices corresponding to the filter bank. In an embodiment of the present application, when the nonlinear clipping indices corresponding to all tap coefficients in a filter bank are identical, the encoder and decoder can agree in advance that the nonlinear clipping indices of the filter bank for which all tap coefficients have the same nonlinear clipping indices are preset. In this case, the nonlinear clipping indices of the filter bank for which all tap coefficients have the same nonlinear clipping indices do not need to be transmitted in the video bitstream.

[0194] If the fourth index flag in the current filter group is the first preset value, it can be determined that the nonlinear limiting indices corresponding to all tap coefficients of all filters in the filter group are filter parameters with redundant data during transmission. Therefore, the nonlinear limiting indices corresponding to all tap coefficients of the filter group can be transmitted implicitly, that is, the encoding end does not transmit the tap coefficient information of the filter group (that is, the nonlinear limiting indices corresponding to all tap coefficients of the filter group), and the decoding end does not receive the tap coefficient information of the filter group, thereby inferring that the nonlinear limiting indices corresponding to all tap coefficients of all filters in the filter group are preset indexes.

[0195] If the fourth index flag in the current filter bank is the second preset value, it can be determined that the nonlinear clipping indices corresponding to all tap coefficients of all filters in the filter bank are not the same. The nonlinear clipping indices corresponding to each tap coefficient can be explicitly transmitted to the decoding end. The decoding end directly obtains the nonlinear clipping indices corresponding to each tap coefficient transmitted in the filter bank based on the decoded tap coefficient information (i.e., the nonlinear clipping indices corresponding to all tap coefficients explicitly transmitted). Alternatively, the decoding end can decode the third index flag to determine whether the nonlinear clipping indices corresponding to all tap coefficients of at least one filter in the filter bank are the same, thereby determining the filter bank whose third index flag is the first preset value. Thereafter, the first index flag corresponding to each filter in the filter bank whose third index flag is the first preset value is decoded to determine the filter whose first index flag is the first preset value. In this way, based on the tap coefficient information obtained by decoding each index flag, the nonlinear clipping indices corresponding to each tap coefficient of each filter in the filter bank are obtained.

[0196] Optionally, the filter flag further includes a fifth index flag, and the fifth index flag is used to indicate a nonlinear clipping index commonly used by all tap coefficients of the corresponding filter group.

[0197] When the fourth index flag bit decoded by the decoding end to the filter group is the first preset value, it can be determined that the nonlinear limiting indexes corresponding to all tap coefficients of all filters in the filter group are filter parameters with redundant data during transmission, and thus it can be inferred that the nonlinear limiting indexes corresponding to all tap coefficients of all filters in the filter group are all the fifth index flag bit. For example, if the fifth index flag bit is a nonlinear limiting index of 0, 1, 2 or 3, the nonlinear limiting index corresponding to the fifth index flag bit is the same as the nonlinear limiting index corresponding to all tap coefficients of the filter group.

[0198] In this way, by introducing the fifth index flag indicating the nonlinear clipping index corresponding to all tap coefficients of the filter group, the accuracy of the decoding indication is higher than determining the nonlinear clipping index of the filter group with the same nonlinear clipping index corresponding to all tap coefficients as the preset index.

[0199] In one example, the transmission process of the syntax elements corresponding to the fourth index flag bit and the fifth index flag bit is as shown in Table 8 below:

[0200] The fourth index flag alf_filtset_all_filt_clip_same[altIdx], when set to 1, indicates that the tap coefficients of all filters in the altIdx-th filter group use the same nonlinear clipping index; a value of 0 indicates that the tap coefficients of all filters in the corresponding filter group do not use the same nonlinear clipping index. The default value is 0.

[0201] The fifth index flag alf_filtset_all_filt_clip_index[altIdx] indicates that all filters in the altIdx-th filter group use the same nonlinear clipping index.

[0202] If the third index flag, alf_has_filt_clip_all_same[altIdx], is 1, it indicates that the altIdx-th filter bank contains at least one filter whose tap coefficients all share the same nonlinear clipping index. If it is 0, it indicates that the altIdx-th filter bank does not contain any filter whose tap coefficients share the same nonlinear clipping index. The default value is 0.

[0203] The first index flag alf_filt_clip_all_same[altIdx][sfIdx] is 1, indicating that the nonlinear indexes of the tap coefficients of the sfIdx-th filter in the altIdx-th filter group are all the same. If it is 0, it indicates that the nonlinear clipping indexes of the tap coefficients of the corresponding filters are not all the same. The default value is 0.

[0204] The second index flag alf_filt_same_clip_index[altIdx][sfIdx] represents the nonlinear clipping index commonly used by the tap coefficients of the sfIdx-th filter in the altIdx-th filter group.

[0205] Referring to FIG. 15 , in some embodiments, each filter is divided into one or more filter groups, each filter group is in an adaptive parameter set, and the filter flag further includes a sixth index flag, which is used to indicate whether, among the filter groups in the adaptive parameter set, at least one filter group includes at least one filter whose nonlinear clipping indexes are the same for all tap coefficients; when the sixth index flag is a first preset value, the tap coefficient information indicates that, among the filter groups in the adaptive parameter set, at least one filter group includes at least one filter whose nonlinear clipping indexes are the same for all tap coefficients; when the sixth index flag is a second preset value, the tap coefficient information indicates that, among the filter groups in the adaptive parameter set, no filter group includes a filter whose nonlinear clipping indexes are the same for all tap coefficients;

[0206] Step 013: Based on the tap coefficient information, determine the filter parameters, including:

[0207] Step 01371: When the sixth index flag indicates that, among the filter groups in the adaptive parameter set, at least one filter group includes at least one filter whose nonlinear clipping indexes corresponding to all tap coefficients are the same, tap coefficient information of the at least one filter is not received, and it is inferred that, in the adaptive parameter set, the nonlinear clipping indexes corresponding to all tap coefficients of at least one filter in the at least one filter group are all preset indexes.

[0208] Step 01372: When the sixth index flag indicates that among the filter groups in the adaptive parameter set, there is no filter group containing filters with the same nonlinear limiting index corresponding to all tap coefficients, the nonlinear limiting index corresponding to the tap coefficients of each filter is obtained based on the decoded tap coefficient information.

[0209] Specifically, there are generally one or more filter groups in the APS in the video code stream. In order to indicate whether there is at least one filter group in the APS that contains filters with the same nonlinear limiting index corresponding to all tap coefficients; a sixth index flag can also be set in the filter flag, and the sixth index flag is used to indicate whether there is at least one filter group in the adaptive parameter set that contains filters with the same nonlinear limiting index corresponding to all tap coefficients.

[0210] If the sixth index flag in the APS is the first preset value, it can be determined that in the APS, there is at least one filter group containing at least one filter whose nonlinear limiting indexes corresponding to all tap coefficients are the same; the sixth index flag can also specifically indicate a filter whose nonlinear limiting indexes corresponding to all tap coefficients are the same (such as the nonlinear limiting indexes corresponding to the tap coefficients of the sfIdx-th filter in the altIdx-th filter group are the same). At this time, the tap coefficients of the sfIdx-th filter in the altIdx-th filter group are all redundant data, and the tap coefficient information of the filter needs to be implicitly transmitted, that is, the encoding end does not transmit the tap coefficient information of the filter (that is, all tap coefficients of the sfIdx-th filter in the altIdx-th filter group), and the decoding end does not receive the tap coefficient information. The decoding end can directly infer the nonlinear limiting indexes corresponding to all tap coefficients of the filter, such as inferring that the nonlinear limiting indexes corresponding to all tap coefficients are preset indexes (such as nonlinear limiting indexes of 0, 1, 2 or 3). Alternatively, by decoding the fourth index flag corresponding to each filter group in the APS, a first target filter group having the same nonlinear clipping index for all tap coefficients is determined; if there is no first target filter group having the same nonlinear clipping index for all tap coefficients, the third index flag corresponding to each filter group is decoded to determine a second target filter group including filters having the same nonlinear clipping index for all tap coefficients, and then the first index flag corresponding to each filter in the second target filter group is decoded to determine filters having the same nonlinear clipping index for all tap coefficients, thereby inferring that the nonlinear clipping indexes of filters having the same nonlinear clipping index for all tap coefficients are all preset indexes. Alternatively, when the sixth index flag in the APS is the first preset value, the third index flag corresponding to each filter group is directly decoded to determine a second target filter group including filters having the same nonlinear clipping index for all tap coefficients, and then the first index flag corresponding to each filter in the second target filter group is decoded to determine filters having the same nonlinear clipping index for all tap coefficients. Alternatively, when decoding, if the decoding end does not transmit the nonlinear limiting index corresponding to the tap coefficient of any target filter decoded into the filter group, it can be determined that the nonlinear limiting index corresponding to the tap coefficient of the target filter is implicitly transmitted. At this time, it can be inferred that the nonlinear limiting index corresponding to the tap coefficient of the target filter is the preset index.

[0211] If the sixth index flag in the APS is the second preset value, it can be determined that there is no filter group in the APS that contains filters with the same nonlinear clipping index corresponding to all tap coefficients; at this time, the nonlinear clipping index corresponding to the tap coefficient of each filter in the APS can be explicitly transmitted to the decoding end, without the need to transmit the third index flag and the fourth index flag corresponding to each filter group, as well as the first index flag and the second index flag corresponding to each filter, thereby reducing the transmission of redundant first index flags to fourth index flags, and reducing redundant filter indication bits under the premise of realizing the decoding indication of filter parameters with redundant data during transmission. The decoding end directly decodes the nonlinear clipping index corresponding to each tap coefficient of each filter transmitted in the filter group based on the decoded tap coefficient information (i.e., the nonlinear clipping index corresponding to all tap coefficients explicitly transmitted).

[0212] In one example, the transmission process of the syntax element corresponding to the sixth index flag bit is as shown in Table 9:

[0213] Among them, the sixth index flag alf_alt_has_filt_clip_all_same is 1, indicating that the filter groups supported by the current APS contain at least one filter group that contains filters using the same nonlinear clipping index. If it is 0, it means that the filters contained in the filter groups supported by the current APS do not use the same nonlinear clipping index. The default value is 0.

[0214] If the third index flag, alf_has_filt_clip_all_same[altIdx], is 1, it indicates that the altIdx-th filter bank contains at least one filter whose tap coefficients all share the same nonlinear clipping index. If it is 0, it indicates that the altIdx-th filter bank does not contain any filter whose tap coefficients share the same nonlinear clipping index. The default value is 0.

[0215] The first index flag alf_filt_clip_all_same[altIdx][sfIdx] is 1, indicating that the nonlinear indexes of the tap coefficients of the sfIdx-th filter in the altIdx-th filter group are all the same. If it is 0, it indicates that the nonlinear clipping indexes of the tap coefficients of the corresponding filters are not all the same. The default value is 0.

[0216] The second index flag alf_filt_same_clip_index[altIdx][sfIdx] represents the nonlinear clipping index commonly used by the tap coefficients of the sfIdx-th filter in the altIdx-th filter group.

[0217] In another example, the transmission process of the syntax element corresponding to the sixth index flag bit is as shown in Table 10:

[0218] Among them, the sixth index flag alf_alt_has_filt_clip_all_same is 1, indicating that the filter groups supported by the current APS contain at least one filter group that contains filters using the same nonlinear clipping index. If it is 0, it means that the filters contained in the filter groups supported by the current APS do not use the same nonlinear clipping index. The default value is 0.

[0219] The fourth index flag alf_filtset_all_filt_clip_same[altIdx], when set to 1, indicates that the tap coefficients of all filters in the altIdx-th filter group use the same nonlinear clipping index; when set to 0, it indicates that the tap coefficients of all filters in the corresponding filter group do not use the same nonlinear clipping index. The default value is 0.

[0220] The fifth index flag alf_filtset_all_filt_clip_index[altIdx] indicates that all filters in the altIdx-th filter group use the same nonlinear clipping index.

[0221] If the third index flag, alf_has_filt_clip_all_same[altIdx], is 1, it indicates that the altIdx-th filter bank contains at least one filter whose tap coefficients all share the same nonlinear clipping index. If it is 0, it indicates that the altIdx-th filter bank does not contain any filter whose tap coefficients share the same nonlinear clipping index. The default value is 0.

[0222] The first index flag alf_filt_clip_all_same[altIdx][sfIdx] is 1, indicating that the nonlinear indexes of the tap coefficients of the sfIdx-th filter in the altIdx-th filter group are all the same. If it is 0, it indicates that the nonlinear clipping indexes of the tap coefficients of the corresponding filters are not all the same. The default value is 0.

[0223] The second index flag alf_filt_same_clip_index[altIdx][sfIdx] represents the nonlinear clipping index commonly used by the tap coefficients of the sfIdx-th filter in the altIdx-th filter group.

[0224] Referring to FIG. 16 , in some embodiments, the filter flag further includes a seventh index flag, which is used to indicate that the nonlinear clipping indices corresponding to all tap coefficients of all filters of all filter groups in the adaptive parameter set are the same. When the seventh index flag is a first preset value, it is determined that the tap coefficient information indicates that the nonlinear clipping indices corresponding to all tap coefficients in the adaptive parameter set are the same. When the seventh index flag is a second preset value, it is determined that the nonlinear clipping indices corresponding to all tap coefficients in the adaptive parameter set included in the tap coefficient information are not the same, and the first preset value and the second preset value are different.

[0225] Step 013: Based on the tap coefficient information, determine the filter parameters, including:

[0226] Step 01381: When the seventh index flag indicates that the nonlinear clipping indexes corresponding to all the tap coefficients in the adaptive parameter set are the same, tap coefficient information of the adaptive parameter set is not received, and the nonlinear clipping indexes corresponding to all the tap coefficients in the adaptive parameter set are inferred to be preset indexes.

[0227] Step 01382: When the seventh index flag indicates that the nonlinear clipping indices corresponding to all tap coefficients in the adaptive parameter set are not the same, the nonlinear clipping indices corresponding to the respective tap coefficients in the adaptive parameter set are obtained based on the decoded tap coefficient information.

[0228] Specifically, in existing designs, when the nonlinear clipping indices corresponding to all tap coefficients of all filters in an adaptive parameter set are the same, it is still necessary to transmit the nonlinear clipping indices corresponding to the adaptive parameter set. In an embodiment of the present application, when the nonlinear clipping indices corresponding to all tap coefficients in an adaptive parameter set are the same, the encoder and decoder can agree in advance that the nonlinear clipping indices of the adaptive parameter set with the same nonlinear clipping indices for all tap coefficients are preset. In this case, it is not necessary to transmit the nonlinear clipping indices of the adaptive parameter set with the same nonlinear clipping indices for all tap coefficients in the video bitstream.

[0229] If the seventh index flag in the current filter group is the first preset value, it can be determined that the nonlinear limiting indices corresponding to all tap coefficients in the adaptive parameter set are filter parameters with redundant data during transmission. At this time, all nonlinear limiting indices in the adaptive parameter set are implicitly transmitted, that is, the encoding end does not transmit the tap coefficient information of the adaptive parameter set (that is, the nonlinear limiting indices corresponding to all tap coefficients of the adaptive parameter set), and the decoding end does not receive the tap coefficient information of the adaptive parameter set, thereby inferring that the nonlinear limiting indices corresponding to all tap coefficients in the adaptive parameter set are preset indexes.

[0230] If the seventh index flag in the current filter bank is a second preset value, it can be determined that the nonlinear clipping indices corresponding to all tap coefficients in the adaptive parameter set are not all the same. In this case, the nonlinear clipping indices corresponding to each tap coefficient can be explicitly transmitted to the decoding end. The decoding end directly obtains the nonlinear clipping indices corresponding to each tap coefficient transmitted in the adaptive parameter set based on the decoded tap coefficient information (i.e., the nonlinear clipping indices corresponding to all tap coefficients explicitly transmitted). Alternatively, the decoding end can decode the sixth index flag to determine whether at least one filter bank in the adaptive parameter set contains filters with the same nonlinear clipping indices corresponding to all tap coefficients. If the sixth index flag is a first preset value, the third index flag corresponding to each filter bank can be further decoded. In the filter bank whose third index flag is a first preset value, the filter whose first index flag value is a first preset value is determined, thereby inferring that the nonlinear clipping indices of the filters whose first index flag value is a first preset value are all preset indices. In this way, based on the tap coefficient information obtained by decoding each index flag, the nonlinear clipping indices corresponding to each tap coefficient of each filter in the filter bank are obtained.

[0231] Optionally, the filter flag further includes an eighth index flag, and the eighth index flag is used to indicate a nonlinear clipping index commonly used by all tap coefficients of the corresponding adaptive parameter set.

[0232] When the seventh index flag bit decoded by the decoding end to the filter group is the first preset value, it can be determined that in the adaptive parameter set, the nonlinear limiting indexes corresponding to all the tap coefficients of all the filters are filter parameters with redundant data during transmission, thereby determining that the nonlinear limiting index commonly used by all the tap coefficients of all the filters in the adaptive parameter set is the eighth index flag bit. For example, if the eighth index flag bit is a nonlinear limiting index of 0, 1, 2 or 3, the nonlinear limiting index corresponding to the eighth index flag bit is the same as the nonlinear limiting index corresponding to all the tap coefficients of the filter group.

[0233] In this way, by introducing the eighth index flag indicating the nonlinear clipping index corresponding to all tap coefficients of the adaptive parameter set, the accuracy of the decoding indication is higher compared to determining the nonlinear clipping index of the adaptive parameter set with the same nonlinear clipping index corresponding to all tap coefficients as the preset index.

[0234] In one example, the transmission process of the syntax elements corresponding to the seventh index flag bit and the eighth index flag bit is as shown in Table 11:

[0235] The seventh index flag alf_alt_all_filt_clip_same is 1, indicating that all filters in the filter group supported by the current APS use the same nonlinear clipping index; if it is 0, it indicates that all filters in the filter group supported by the current APS do not use the same nonlinear clipping index. The default value is 0.

[0236] The eighth index flag alf_alt_all_filt_clip_index indicates that all filters in the filter group supported by the current APS use the same nonlinear clipping index.

[0237] The sixth index flag, alf_alt_has_filt_clip_all_same, is 1, indicating that the filter groups supported by the current APS contain at least one filter group that includes filters using the same nonlinear clipping index. If it is 0, it indicates that none of the filters in the filter groups supported by the current APS use the same nonlinear clipping index. The default value is 0.

[0238] If the third index flag, alf_has_filt_clip_all_same[altIdx], is 1, it indicates that the altIdx-th filter bank contains at least one filter whose tap coefficients all share the same nonlinear clipping index. If it is 0, it indicates that the altIdx-th filter bank does not contain any filter whose tap coefficients share the same nonlinear clipping index. The default value is 0.

[0239] The first index flag alf_filt_clip_all_same[altIdx][sfIdx] is 1, indicating that the nonlinear indexes of the tap coefficients of the sfIdx-th filter in the altIdx-th filter group are all the same. If it is 0, it indicates that the nonlinear clipping indexes of the tap coefficients of the corresponding filters are not all the same. The default value is 0.

[0240] The second index flag alf_filt_same_clip_index[altIdx][sfIdx] represents the nonlinear clipping index commonly used by the tap coefficients of the sfIdx-th filter in the altIdx-th filter group.

[0241] In another example, the transmission process of the syntax elements corresponding to the seventh index flag bit and the eighth index flag bit is as shown in Table 12:

[0242] The seventh index flag alf_alt_all_filt_clip_same is 1, indicating that all filters in the filter group supported by the current APS use the same nonlinear clipping index; if it is 0, it indicates that all filters in the filter group supported by the current APS do not use the same nonlinear clipping index. The default value is 0.

[0243] The eighth index flag alf_alt_all_filt_clip_index indicates that all filters in the filter group supported by the current APS use the same nonlinear clipping index.

[0244] The sixth index flag, alf_alt_has_filt_clip_all_same, is 1, indicating that the filter groups supported by the current APS contain at least one filter group that includes filters using the same nonlinear clipping index. If it is 0, it indicates that none of the filters in the filter groups supported by the current APS use the same nonlinear clipping index. The default value is 0.

[0245] The fourth index flag alf_filtset_all_filt_clip_same[altIdx], when set to 1, indicates that the tap coefficients of all filters in the altIdx-th filter group use the same nonlinear clipping index; when set to 0, it indicates that the tap coefficients of all filters in the corresponding filter group do not use the same nonlinear clipping index. The default value is 0.

[0246] The fifth index flag alf_filtset_all_filt_clip_index[altIdx] indicates that all filters in the altIdx-th filter group use the same nonlinear clipping index.

[0247] If the third index flag, alf_has_filt_clip_all_same[altIdx], is 1, it indicates that the altIdx-th filter bank contains at least one filter whose tap coefficients all share the same nonlinear clipping index. If it is 0, it indicates that the altIdx-th filter bank does not contain any filter whose tap coefficients share the same nonlinear clipping index. The default value is 0.

[0248] The first index flag alf_filt_clip_all_same[altIdx][sfIdx] is 1, indicating that the nonlinear indexes of the tap coefficients of the sfIdx-th filter in the altIdx-th filter group are all the same. If it is 0, it indicates that the nonlinear clipping indexes of the tap coefficients of the corresponding filters are not all the same. The default value is 0.

[0249] The second index flag alf_filt_same_clip_index[altIdx][sfIdx] represents the nonlinear clipping index commonly used by the tap coefficients of the sfIdx-th filter in the altIdx-th filter group.

[0250] In some implementations, if the filter flag is a preset value, the video stream does not signal the filter parameters indicated by the filter flag.

[0251] Specifically, when the filter flag is a preset value (such as the first preset value or the second preset value), it means that the filter parameter indicated by the filter flag is a filter parameter with redundant data during transmission. At this time, the filter parameter with redundant data during transmission is implicitly transmitted, and the filter parameter is not notified through signaling in the video stream, thereby reducing the redundant data of the video stream.

[0252] For example, when the first tap flag is a first preset value, it indicates that the tap coefficients of the filter corresponding to the first tap flag are all 0. In this case, the tap coefficients of the filter corresponding to the first tap flag can be transmitted implicitly without signaling in the video stream. For another example, when the first index flag is a first preset value, it indicates that the nonlinear clipping indexes corresponding to the tap coefficients of the filter corresponding to the first index flag are all the same. In this case, the nonlinear clipping indexes of the filter corresponding to the first index flag can be transmitted implicitly without signaling in the video stream.

[0253] In some embodiments, the filter flag includes at least one of a filter flag corresponding to a luminance component, a filter flag corresponding to a chrominance component, and a filter flag corresponding to a cross component.

[0254] Specifically, there are corresponding filters for the luminance component, chrominance component and cross component. Therefore, for the filter parameters of the filter corresponding to the luminance component that have redundant data when transmitting, a filter flag bit can be introduced for decoding indication to reduce the redundant data of the filter corresponding to the luminance component; for the filter parameters of the filter corresponding to the chrominance component that have redundant data when transmitting, a corresponding filter flag bit can be introduced for decoding indication to reduce the redundant data of the filter corresponding to the chrominance component; for the redundant parameters of the filter corresponding to the cross component, a corresponding filter flag bit can be introduced for decoding indication to reduce the redundant data of the filter corresponding to the cross component.

[0255] According to the method described in the above embodiment, the embodiment of the present application further provides a video encoding method. Please refer to Figure 17, which is a flow chart of the video decoding method provided by the embodiment of the present application, specifically including:

[0256] Step 021: Obtain video data;

[0257] Step 022: Encode and compress the video data to obtain a video code stream, which includes decoding indication information. The decoding indication information includes at least one filter flag for indicating filter parameters. The filter flag is determined according to tap coefficient information, and the tap coefficient information is determined according to the filter parameters.

[0258] It should be pointed out that the video encoding process and the video decoding process are reversible, so the syntax definitions involved in the video encoding method provided in the embodiment of the present application can be referred to the embodiment of the above-mentioned video decoding method, and will not be repeated here.

[0259] Based on the method described in the above embodiment, the present application also provides a video decoding device for performing the steps in the above video decoding method. Please refer to Figure 18, which is a schematic diagram of the structure of the video decoding device 300 provided in the embodiment of the present application. The video decoding device 300 includes a first acquisition module 301 and an encoding module 302, wherein:

[0260] A first acquisition module 301 is configured to acquire a video stream, where the video stream includes decoding indication information, and the decoding indication information includes at least one filter flag bit for indicating filter parameters;

[0261] The decoding module 302 is configured to determine the tap coefficient information in the filter parameters based on the value of the filter flag bit; and determine the filter parameters based on the tap coefficient information.

[0262] It should be noted that the specific details of each module unit in the above-mentioned video decoding device 300 have been described in detail in the embodiment of the above-mentioned video encoding method, and will not be repeated here.

[0263] Based on the method described in the above embodiment, the present application also provides a video encoding device for performing the steps in the above video encoding method. Please refer to Figure 19, which is a schematic diagram of the structure of a video encoding device 400 provided in the present application. The video encoding device 400 includes a second acquisition module 401 and an encoding module 402, wherein:

[0264] The second acquisition module 401 is used to acquire video data;

[0265] The encoding module 402 is used to encode and compress the video data to obtain a video code stream, which includes decoding indication information. The decoding indication information includes at least one filter flag for indicating filter parameters. The filter flag is determined according to tap coefficient information, and the tap coefficient information is determined according to the filter parameters.

[0266] It should be noted that the specific details of each module unit in the above-mentioned video decoding device 400 have been described in detail in the embodiment of the above-mentioned video decoding method, and will not be repeated here.

[0267] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program that has a predetermined function and works together with other related parts to achieve a predetermined goal, and can be implemented in whole or in part by using software, hardware (such as processing circuits or memories) or a combination thereof. Similarly, a processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be part of an overall module or unit that includes the function of the module or unit.

[0268] In some embodiments, the video encoding device and the video decoding device in the embodiments of the present application may be an electronic device or a component in an electronic device, such as an integrated circuit or a chip. The electronic device may be a terminal or other device other than a terminal. For example, the electronic device may be a mobile phone, a tablet computer, a laptop computer, a PDA, an in-vehicle electronic device, a mobile internet device (MID), an augmented reality (AR) / virtual reality (VR) device, a robot, a wearable device, an ultra-mobile personal computer (UMPC), a netbook or a personal digital assistant (PDA), etc. It may also be a server, a network attached storage (NAS), a personal computer (PC), a television (TV), a teller machine or a self-service machine, etc., and the embodiments of the present application are not specifically limited.

[0269] In some embodiments, as shown in Figure 20, an embodiment of the present application also provides an electronic device 500, including a processor 501, a memory 502, and a computer program stored on the memory 502 and runnable on the processor 501. When the program is executed by the processor 501, the various processes of the above-mentioned video decoding method and video encoding method embodiments are implemented, and the same technical effects can be achieved. To avoid repetition, they will not be repeated here.

[0270] It should be noted that the electronic devices in the embodiments of the present application include the above-mentioned mobile electronic devices and non-mobile electronic devices.

[0271] FIG21 is a schematic diagram of the hardware structure of an electronic device implementing an embodiment of the present application.

[0272] The electronic device 600 includes but is not limited to: a radio frequency unit 601, a network module 602, an audio output unit 603, an input unit 604, a sensor 605, a display unit 606, a user input unit 607, an interface unit 608, a memory 609 and a processor 610.

[0273] Those skilled in the art will appreciate that the electronic device 600 may further include a power source (e.g., a battery) to power various components. The power source may be logically connected to the processor 610 via a power management system, thereby enabling the power management system to manage charging, discharging, and power consumption. The electronic device structure shown in FIG21 does not limit the electronic device. The electronic device may include more or fewer components than shown, or may combine certain components, or have different component arrangements, which will not be described in detail here.

[0274] It should be understood that in an embodiment of the present application, the input unit 604 may include a graphics processing unit (GPU) 6041 and a microphone 6042, and the graphics processor 6041 processes the image data of a static picture or video obtained by an image capture device (such as a camera) in a video capture mode or an image capture mode. The display unit 606 may include a display panel 6061, and the display panel 6061 may be configured in the form of a liquid crystal display, an organic light emitting diode, etc. The user input unit 607 includes a touch panel 6071 and at least one of other input devices 6072. The touch panel 6071 is also called a touch screen. The touch panel 6071 may include two parts: a touch detection device and a touch controller. Other input devices 6072 may include, but are not limited to, a physical keyboard, function keys (such as volume control keys, switch keys, etc.), a trackball, a mouse, and a joystick, which will not be repeated here.

[0275] The memory 609 can be used to store software programs and various data. The memory 609 may mainly include a first storage area for storing programs or instructions and a second storage area for storing data, wherein the first storage area may store an operating system, applications or instructions required for at least one function (such as a sound playback function, an image playback function, etc.). In addition, the memory 609 may include a volatile memory or a non-volatile memory, or the memory 609 may include both volatile and non-volatile memories. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), a static random access memory (SRAM), a dynamic random access memory (DRAM), a synchronous dynamic random access memory (SDRAM), a double data rate synchronous dynamic random access memory (DDRSDRAM), an enhanced synchronous dynamic random access memory (ESDRAM), a synchronous link dynamic random access memory (SLDRAM), and a direct memory bus random access memory (DRRAM). The memory 609 in the embodiment of the present application includes but is not limited to these and any other suitable types of memory.

[0276] Processor 610 may include one or more processing units. Processor 610 integrates an application processor and a modem processor. The application processor primarily handles operations related to the operating system, user interface, and application programs, while the modem processor primarily processes wireless communication signals, such as a baseband processor. It is understood that the modem processor may not be integrated into processor 610.

[0277] An embodiment of the present application also provides a non-transitory computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the various processes of the embodiments of the above-mentioned video decoding method and video encoding method are implemented, and the same technical effects can be achieved. To avoid repetition, they are not described here.

[0278] The processor is the processor in the electronic device in the above embodiment. The computer readable storage medium can be a computer read-only memory ROM, random access memory RAM, a magnetic disk or an optical disk.

[0279] The present application also provides a computer program product, including a computer program, which, when executed by a processor, implements the aforementioned video decoding method and video encoding method. The processor may be a processor in the electronic device described in the aforementioned embodiments. When executed by the processor, the computer program implements the various processes of the aforementioned embodiments of the video decoding method and video encoding method, achieving the same technical effects. To avoid repetition, these processes are not described here.

[0280] Although the embodiments of the present application have been shown and described, those skilled in the art will appreciate that various changes, modifications, substitutions, and variations may be made to the embodiments without departing from the principles and intent of the present application, and that the scope of the present application is defined by the claims and their equivalents.

Claims

1. A video decoding method, characterized in that, Including: Obtain a video bitstream, where the video bitstream includes decoding indication information, and the decoding indication information includes at least one filter flag bit for indicating filter parameters; Determine tap coefficient information in the filter parameters based on the value of the filter flag bit; and Determine the filter parameters based on the tap coefficient information.

2. The method according to claim 1, characterized in that, The filter flag bit includes a first tap flag bit, and the first tap flag bit is used to indicate whether all tap coefficients in the corresponding filter are 0; when the first tap flag bit is a first preset value, determine that the tap coefficient information indicates that all the tap coefficients of the filter are 0; when the first tap flag bit is a second preset value, determine that the tap coefficient information includes that all the tap coefficients of the filter are not 0, and the first preset value is different from the second preset value.

3. The method according to claim 2, characterized in that, The determining the filter parameters based on the tap coefficient information includes: When the first tap flag bit indicates that all the tap coefficients of the filter are 0, do not receive the tap coefficient information, and infer all the tap coefficients of the filter; When the first tap flag bit indicates that all the tap coefficients of the filter are not 0, obtain each tap coefficient of the filter based on decoding the tap coefficient information.

4. The method according to claim 1, wherein Each filter is divided into one or more filter groups, the filter flag bit includes a second tap flag bit, and the second tap flag bit is used to indicate whether at least one filter in the corresponding filter group has all tap coefficients equal to 0; when the second tap flag bit is a first preset value, determine that the tap coefficient information indicates that at least one filter in the filter group has all the tap coefficients equal to 0; when the second tap flag bit is a second preset value, determine that the tap coefficient information indicates that none of the filters in the filter group has all the tap coefficients equal to 0, and the first preset value is different from the second preset value.

5. The method according to claim 4, characterized in that The determining the filter parameters based on the tap coefficient information includes: When the second tap flag bit indicates that at least one filter in the filter group has all the tap coefficients equal to 0, do not receive the tap coefficient information of the at least one filter, and infer the tap coefficients of the at least one filter in the filter group; When the second tap flag bit indicates that none of the filters in the filter group has all the tap coefficients equal to 0, obtain each tap coefficient of each filter based on decoding the tap coefficient information.

6. The method according to claim 1, characterized in that, Each filter is divided into one or more filter banks, and each of the filter banks is located in an adaptive parameter set. The filter flag bit includes a third tap flag bit, and the third tap flag bit is used to indicate whether at least one filter bank in the adaptive parameter set contains at least one filter with all tap coefficients being 0; when the third tap flag bit is a first preset value, it is determined that the tap coefficient information indicates that at least one filter bank in the adaptive parameter set contains at least one filter with all tap coefficients being 0; when the third tap flag bit is a second preset value, it is determined that the tap coefficient information indicates that there is no filter bank in the adaptive parameter set that contains a filter with all tap coefficients being 0, and the first preset value and the second preset value are different.

7. The method according to claim 6, wherein Determining the filter parameters based on the tap coefficient information includes: When the third tap flag bit indicates that at least one filter bank in the adaptive parameter set contains at least one filter with all tap coefficients being 0, the tap coefficient information of the at least one filter is not received, and the tap coefficients of the at least one filter in the at least one filter bank in the adaptive parameter set are inferred. When the third tap flag bit indicates that there is no filter bank in the adaptive parameter set that contains a filter with all tap coefficients being 0, based on decoding the tap coefficient information, the tap coefficients of each of the filters in the adaptive parameter set are obtained.

8. The method according to claim 1, wherein It further includes: When the decoded tap coefficient is 0, it is determined that the nonlinear clipping index corresponding to the tap coefficient is a preset index.

9. The method according to claim 1, wherein The filter flag bit includes a first index flag bit, and the first index flag bit is used to indicate whether the nonlinear clipping indexes corresponding to all the tap coefficients in the corresponding filter are the same; when the first index flag bit is a first preset value, it is determined that the tap coefficient information indicates that the nonlinear clipping indexes corresponding to all the tap coefficients in the filter are the same; when the first index flag bit is a second preset value, it is determined that the nonlinear clipping indexes corresponding to all the tap coefficients in the filter included in the tap coefficient information are not all the same, and the first preset value and the second preset value are different.

10. The method according to claim 9, wherein Determining the filter parameters based on the tap coefficient information includes: When the first index flag bit indicates that the nonlinear clipping indexes corresponding to all the tap coefficients in the filter are the same, the tap coefficient information is not received, and it is inferred that the nonlinear clipping indexes corresponding to all the tap coefficients of the filter are preset indexes; When the first index flag bit indicates that the nonlinear clipping indexes corresponding to all the tap coefficients in the filter are not all the same, based on decoding the tap coefficient information, the nonlinear clipping indexes corresponding to each of the tap coefficients of the filter are obtained.

11. The method according to claim 1, characterized in that, The filter flag bits include a first index flag bit and a second index flag bit. The first index flag bit is used to indicate whether the non-linear clipping indexes corresponding to all tap coefficients in the corresponding filter are the same; the second index flag bit is used to indicate the non-linear clipping index commonly used by all the tap coefficients of the corresponding filter; when the first index flag bit is a first preset value, it is determined that the tap coefficient information indicates that the non-linear clipping indexes corresponding to all tap coefficients in the filter are the same; when the first index flag bit is a second preset value, it is determined that the tap coefficient information includes non-uniform non-linear clipping indexes corresponding to all tap coefficients in the filter, and the first preset value and the second preset value are different.

12. The method according to claim 11, wherein Determining the filter parameters based on the tap coefficient information includes: When the first index flag bit indicates that the non-linear clipping indexes corresponding to all tap coefficients in the filter are the same, the tap coefficient information is not received, and it is inferred that the non-linear clipping indexes corresponding to all the tap coefficients of the filter are the value of the second index flag bit; When the first index flag bit indicates that the non-linear clipping indexes corresponding to all tap coefficients in the filter are not the same, the non-linear clipping indexes corresponding to each tap coefficient of the filter are obtained based on decoding the tap coefficient information.

13. The method according to claim 1, wherein Each filter is divided into one or more filter groups. The filter flag bits include a third index flag bit, and the third index flag bit is used to indicate whether there is at least one filter in the corresponding filter group such that the non-linear clipping indexes corresponding to all its tap coefficients are the same; when the third index flag bit is a first preset value, it is determined that the tap coefficient information indicates that there is at least one filter in the filter group such that the non-linear clipping indexes corresponding to all its tap coefficients are the same; when the third index flag bit is a second preset value, it is determined that the tap coefficient information indicates that there is no filter in the filter group such that the non-linear clipping indexes corresponding to all its tap coefficients are the same, and the first preset value and the second preset value are different.

14. The method according to claim 13, wherein Determining the filter parameters based on the tap coefficient information includes: When the third index flag bit indicates that there is at least one filter in the filter group such that the non-linear clipping indexes corresponding to all its tap coefficients are the same, the tap coefficient information of the at least one filter is not received, and it is inferred that the non-linear clipping indexes corresponding to all the tap coefficients of the at least one filter in the filter group are all preset indexes; When the third index flag bit indicates that there is no filter in the filter group such that the non-linear clipping indexes corresponding to all its tap coefficients are the same, the non-linear clipping indexes corresponding to the tap coefficients of each filter are obtained based on decoding the tap coefficient information.

15. The method according to claim 1, wherein Each filter is divided into one or more filter banks. The filter flag bits include a fourth index flag bit, and the fourth index flag bit is used to indicate whether the non-linear clipping indices corresponding to all tap coefficients of all filters in the corresponding filter bank are the same; when the fourth index flag bit is a first preset value, it is determined that the tap coefficient information indicates that the non-linear clipping indices corresponding to all tap coefficients of all filters in the filter bank are the same; when the fourth index flag bit is a second preset value, it is determined that the non-linear clipping indices corresponding to all tap coefficients of all filters in the filter bank included in the tap coefficient information are not all the same, and the first preset value and the second preset value are different.

16. The method according to claim 15, wherein Determining the filter parameters based on the tap coefficient information includes: When the fourth index flag bit indicates that the non-linear clipping indices corresponding to all tap coefficients of all filters in the filter bank are the same, the tap coefficient information of the filter bank is not received, and it is inferred that the non-linear clipping indices corresponding to all tap coefficients of all filters in the filter bank are preset indices; When the fourth index flag bit indicates that the non-linear clipping indices corresponding to all tap coefficients of all filters in the filter bank are not all the same, the non-linear clipping indices corresponding to each tap coefficient of each filter are obtained based on decoding the tap coefficient information.

17. The method according to claim 1, wherein Each filter is divided into one or more filter banks. The filter flag bits further include a fourth index flag bit and a fifth index flag bit. The fourth index flag bit is used to indicate whether the non-linear clipping indices corresponding to all tap coefficients of all filters in the corresponding filter bank are the same, and the fifth index flag bit is used to indicate the non-linear clipping index commonly used by all tap coefficients of the filter bank; When the fourth index flag bit is a first preset value, it is determined that the tap coefficient information indicates that the non-linear clipping indices corresponding to all tap coefficients of all filters in the filter bank are the same; when the fourth index flag bit is a second preset value, it is determined that the non-linear clipping indices corresponding to all tap coefficients of all filters in the filter bank included in the tap coefficient information are not all the same, and the first preset value and the second preset value are different.

18. The method according to claim 17, wherein Determining the filter parameters based on the tap coefficient information includes: When the fourth index flag bit indicates that the non-linear clipping indices corresponding to all tap coefficients of all filters in the filter bank are the same, the tap coefficient information of the filter bank is not received, and it is inferred that the non-linear clipping indices corresponding to all tap coefficients of all filters in the filter bank are the fifth index flag bit; When the fourth index flag bit indicates that the non-linear clipping indices corresponding to all tap coefficients of all filters in the filter bank are not all the same, the non-linear clipping indices corresponding to each tap coefficient of each filter are obtained based on decoding the tap coefficient information.

19. The method according to claim 1, characterized in that, Each filter is divided into one or more filter banks, each of the filter banks is located in an adaptive parameter set, the filter flag bit includes a sixth index flag bit, and the sixth index flag bit is used to indicate whether at least one of the filter banks in the adaptive parameter set contains at least one filter in which all the nonlinear clipping indices corresponding to the tap coefficients are the same; when the sixth index flag bit is a first preset value, it is determined that the tap coefficient information indicates that at least one of the filter banks in the adaptive parameter set contains at least one filter in which all the nonlinear clipping indices corresponding to the tap coefficients are the same; When the sixth index flag bit is a second preset value, it is determined that the tap coefficient information indicates that none of the filter banks in the adaptive parameter set contains a filter in which all the nonlinear clipping indices corresponding to the tap coefficients are the same, and the first preset value and the second preset value are different.

20. The method according to claim 19, wherein Determining the filter parameters based on the tap coefficient information includes: When the sixth index flag bit indicates that at least one of the filter banks in the adaptive parameter set contains at least one filter in which all the nonlinear clipping indices corresponding to the tap coefficients are the same, the tap coefficient information of the at least one filter is not received, and it is inferred that all the nonlinear clipping indices corresponding to the tap coefficients of the at least one filter in the at least one filter bank in the adaptive parameter set are preset indices; When the sixth index flag bit indicates that none of the filter banks in the adaptive parameter set contains a filter in which all the nonlinear clipping indices corresponding to the tap coefficients are the same, the nonlinear clipping indices corresponding to the tap coefficients of each filter are obtained based on decoding the tap coefficient information.

21. The method according to claim 1, wherein The filter flag bit includes a seventh index flag bit, and the seventh index flag bit is used to indicate that all the nonlinear clipping indices corresponding to the tap coefficients in the adaptive parameter set are the same; when the seventh index flag bit is a first preset value, it is determined that the tap coefficient information indicates that all the nonlinear clipping indices corresponding to the tap coefficients in the adaptive parameter set are the same; when the seventh index flag bit is a second preset value, it is determined that not all the nonlinear clipping indices corresponding to the tap coefficients in the adaptive parameter set included in the tap coefficient information are the same, and the first preset value and the second preset value are different.

22. The method according to claim 21, wherein Determining the filter parameters based on the tap coefficient information includes: When the seventh index flag bit indicates that all the nonlinear clipping indices corresponding to the tap coefficients in the adaptive parameter set are the same, the tap coefficient information of the adaptive parameter set is not received, and it is inferred that all the nonlinear clipping indices corresponding to the tap coefficients in the adaptive parameter set are preset indices; When the seventh index flag indicates that the non - linear clipping indices corresponding to all tap coefficients in the adaptive parameter set are not all the same, the non - linear clipping indices corresponding to each tap coefficient in the adaptive parameter set are obtained based on decoding the tap coefficient information.

23. The method according to claim 1, characterized in that The filter flag bits include a seventh index flag bit and an eighth index flag bit. The seventh index flag bit is used to indicate that the non - linear clipping indices corresponding to all tap coefficients of all filters in all filter banks in the adaptive parameter set are the same. The eighth index flag bit is used to indicate the non - linear clipping index commonly used by all tap coefficients of all filters in all filter banks in the adaptive parameter set. When the seventh index flag bit is a first preset value, it is determined that the tap coefficient information indicates that the non - linear clipping indices corresponding to all tap coefficients of all filters in all filter banks in the adaptive parameter set are the same. When the seventh index flag bit is a second preset value, it is determined that the non - linear clipping indices corresponding to all tap coefficients of all filters in all filter banks in the adaptive parameter set included in the tap coefficient information are not all the same. The first preset value and the second preset value are different.

24. The method according to claim 23, wherein The determining of the filter parameters based on the tap coefficient information includes: When the seventh index flag bit indicates that the non - linear clipping indices corresponding to all tap coefficients in the adaptive parameter set are the same, the tap coefficient information of the adaptive parameter set is not received, and it is inferred that the non - linear clipping indices corresponding to all tap coefficients in the adaptive parameter set are the eighth index flag bit. When the seventh index flag bit indicates that the non - linear clipping indices corresponding to all tap coefficients of all filters in all filter banks in the adaptive parameter set are not all the same, the non - linear clipping indices corresponding to each tap coefficient in the adaptive parameter set are obtained based on decoding the tap coefficient information.

25. The method according to any one of claims 1-24, characterized in that, The filter flag bits include at least one of the filter flag bits corresponding to the luminance component, the filter flag bits corresponding to the chrominance component, and the filter flag bits corresponding to the cross - component.

26. The method according to any one of claims 1-25, characterized in that, Further included is: If the filter flag bit is a preset value, the video bitstream does not notify the filter parameters indicated by the filter flag bit through signaling.

27. The method according to claim 1, wherein The filter parameters include tap coefficients and non - linear clipping indices. The video bitstream does not transmit the tap coefficients equal to 0 and the corresponding non - linear clipping indices.

28. A video encoding method, characterized in that, Including: Obtain video data; Perform encoding and compression on the video data to obtain a video bitstream. The video bitstream includes decoding indication information. The decoding indication information includes at least one filter flag bit for indicating filter parameters. The filter flag bit is determined according to the tap coefficient information, and the tap coefficient information is determined according to the filter parameters.

29. A non-transitory computer-readable storage medium having a computer program stored thereon, characterized in that, When executed by a processor, the computer program implements the video decoding method according to any one of claims 1 - 27 or the video encoding method according to claim 28.

30. An electronic device, comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, characterized in that, When the processor executes the program, it implements the video decoding method according to any one of claims 1-27 or the video encoding method according to claim 28.

31. A computer program product, characterized in that, It includes a computer program, and when the computer program is executed by a processor, it implements the video decoding method according to any one of claims 1-27 or the video encoding method according to claim 28.

Citation Information

Patent Citations

  • Hybrid video decoder, hybrid video encoder, data stream

    CN103098476A

  • Frame-compatible full resolution stereoscopic 3d video delivery with symmetric picture resolution and quality

    CN103828358A

  • Coding device, coding method, decoding device, and decoding method

    CN112106361A

  • Video encoding method and apparatus, video decoding method and apparatus, and program therefor

    US20140247865A1

  • Data processing device and data processing method

    WO2019198519A1