WO2024254872A1 - 解码方法、编码方法、解码器以及编码器 - Google Patents

解码方法、编码方法、解码器以及编码器 Download PDF

Info

Publication number
WO2024254872A1
WO2024254872A1 PCT/CN2023/100814 CN2023100814W WO2024254872A1 WO 2024254872 A1 WO2024254872 A1 WO 2024254872A1 CN 2023100814 W CN2023100814 W CN 2023100814W WO 2024254872 A1 WO2024254872 A1 WO 2024254872A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
residual
value
image
pixel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2023/100814
Other languages
English (en)
French (fr)
Inventor
戴震宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202380099322.3A priority Critical patent/CN121359452A/zh
Priority to PCT/CN2023/100814 priority patent/WO2024254872A1/zh
Publication of WO2024254872A1 publication Critical patent/WO2024254872A1/zh
Priority to US19/418,613 priority patent/US20260107023A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value

Definitions

  • the present application relates to the technical field of coding and decoding, and more specifically, to a decoding method, an encoding method, a decoder and an encoder.
  • Digital video compression technology is mainly used to compress huge digital image video data for easy transmission and storage.
  • loop filtering mainly processes the pixels after inverse transformation and inverse quantization to compensate for the distortion information, thereby providing a better reference for subsequent images.
  • the traditional loop filtering unit used for loop filtering mainly includes tools such as deblocking filter (DeBlocking Filter, DBF), sample adaptive offset (Sample adaptive Offset, SAO) and adaptive correction filter (Adaptive loop filter, ALF).
  • the present application provides a decoding method, an encoding method, a decoder and an encoder, which can improve decoding performance.
  • the present application provides a decoding method, comprising:
  • a final reconstructed block of the current block is determined.
  • the present application provides an encoding method, comprising:
  • a filtered image with the minimum rate-distortion cost among a first filtered image to which the first filtering block belongs and a second filtered image to which the second filtering block belongs is determined as a reconstructed image of a current image to which the current block belongs.
  • the present application provides a decoder, comprising:
  • a filtering unit configured to filter a reconstructed block of a current block to obtain a first filtered block
  • a first determining unit configured to determine a first residual block based on the first filtering block and the reconstructed block
  • an adjusting unit configured to adjust a direct current component of the first residual block to obtain a second residual block
  • the second determining unit is configured to determine a final reconstructed block of the current block based on the second residual block and the reconstructed block.
  • an encoder comprising:
  • a filtering unit configured to filter a reconstructed block of a current block to obtain a first filtered block
  • a first determining unit configured to determine a first residual block based on the first filtering block and the reconstructed block
  • an adjusting unit configured to adjust a direct current component of the first residual block to obtain a second residual block
  • a second determining unit configured to determine a second filter block based on the second residual block and the reconstructed block
  • the third determining unit is used to determine the filtered image with the smallest rate-distortion cost in the first filtered image to which the first filtering block belongs and the second filtered image to which the second filtering block belongs as the reconstructed image of the current image to which the current block belongs.
  • the present application provides a decoder, comprising:
  • a processor adapted to implement computer instructions
  • a computer-readable storage medium stores computer instructions, wherein the computer instructions are suitable for being loaded by a processor and executing the decoding method in the first aspect or its various implementation modes involved above.
  • the number of the processor is one or more, and the number of the memory is one or more.
  • the computer-readable storage medium may be integrated with the processor, or the computer-readable storage medium may be disposed separately from the processor.
  • an encoder comprising:
  • a processor adapted to implement computer instructions
  • a computer-readable storage medium stores computer instructions, wherein the computer instructions are suitable for being loaded by a processor and executing the encoding method in the second aspect or its various implementation modes involved above.
  • the number of the processor is one or more, and the number of the memory is one or more.
  • the computer-readable storage medium may be integrated with the processor, or the computer-readable storage medium may be disposed separately from the processor.
  • the present application provides a computer-readable storage medium, which stores computer instructions.
  • the computer instructions When the computer instructions are read and executed by a processor of a computer device, the computer device executes the decoding method involved in the first aspect mentioned above or the encoding method involved in the second aspect mentioned above.
  • the present application provides a computer program product or a computer program, the computer program product or the computer program including computer instructions, the computer instructions being stored in a computer-readable storage medium.
  • a processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the decoding method involved in the first aspect mentioned above or the encoding method involved in the second aspect mentioned above.
  • the present application provides a code stream, which is a code stream as described in the method of the first aspect or a code stream generated by the method of the second aspect.
  • the first residual block is determined based on the first filter block obtained by filtering the reconstructed block of the current block and the reconstructed block of the current block
  • the DC component of the first residual block is adjusted to obtain the second residual block
  • the final reconstructed block of the current block is determined based on the second residual block and the reconstructed block, which is equivalent to determining the final reconstructed block based on the corrected first filter block, which can improve the decoding performance of the decoder.
  • FIG1 is a schematic block diagram of a video encoding and decoding system involved in an embodiment of the present application.
  • FIG. 2 is a schematic block diagram of a video encoder according to an embodiment of the present application.
  • FIG3 is a schematic structural diagram of the relationship between a coding tree unit and a coding unit provided in the present application.
  • FIG. 4 is a schematic block diagram of a video decoder according to an embodiment of the present application.
  • FIG. 5 is another example of a video encoder provided by the present application.
  • FIG6 is an example of the basic structure of the residual network provided in the present application.
  • FIG. 7 is an example of the basic structure of the NNLF provided in this application.
  • Figure 8 is an example of the basic structure of the LC NNLF provided in this application.
  • FIG. 9 is another example of a video encoder provided by the present application.
  • FIG10 is a schematic flowchart of the decoding method provided in the present application.
  • FIG. 11 is an example of the principle of determining the first residual block provided in the present application.
  • FIG. 12 is an example of a residual image to be corrected provided by the present application.
  • FIG. 13 is an example of a first residual block provided in the present application.
  • FIG. 14 is an example of a second residual block provided in the present application.
  • FIG. 15 is an example of an image block size adjusted by residual values provided in the present application.
  • FIG. 16 is an example of a sliding window provided in the present application.
  • FIG17 is a schematic flowchart of the encoding method provided in this application.
  • FIG18 is a schematic block diagram of a decoder provided in the present application.
  • FIG19 is a schematic block diagram of the encoder provided in the present application.
  • FIG. 20 is a schematic block diagram of an electronic device provided in the present application.
  • the solution provided by the present application can be applied to the field of digital compression technology.
  • digital video compression technology is mainly used to compress huge digital image video data for easy transmission and storage.
  • the solution provided by the present application can be applied to the field of digital video encoding technology.
  • the field of digital video coding technology is not limited to at least one of the following: image coding and decoding field, video coding and decoding field, hardware video coding and decoding field, dedicated circuit video coding and decoding field and real-time video coding and decoding field.
  • the solution provided in the present application can be combined with the following standards: Audio Video Coding Standard (AVS), second-generation AVS standard (AVS2) or third-generation AVS standard (AVS3).
  • AVC Audio Video Coding Standard
  • HEVC High Efficiency Video Coding
  • VVC Versatile Video Coding
  • the solution provided in the present application can be used for lossy compression of images, and can also be used for lossless compression of images.
  • the lossless compression can be visual. It can be visually lossless compression or mathematically lossless compression.
  • FIG1 is a schematic block diagram of a video encoding and decoding system involved in an embodiment of the present application.
  • the video encoding and decoding system 100 includes an encoding device 110 and a decoding device 120 .
  • the encoding device 110 is used to encode (which can be understood as compressing) the video data to generate a code stream, and transmit the code stream to the decoding device 120.
  • the decoding device 120 decodes the code stream generated by the encoding device 110 to obtain decoded video data.
  • the encoding device 110 can be understood as a device with a video encoding function
  • the decoding device 120 can be understood as a device with a video decoding function, that is, the embodiments of the present application include a wider range of devices for the encoding device 110 and the decoding device 120, such as smartphones, desktop computers, mobile computing devices, notebook (e.g., laptop) computers, tablet computers, set-top boxes, televisions, cameras, display devices, digital media players, video game consoles, vehicle-mounted computers, etc.
  • the encoding device 110 may transmit the encoded video data (eg, a bitstream) to the decoding device 120 via the channel 130 .
  • Channel 130 may include one or more media and/or devices capable of transmitting encoded video data from encoding device 110 to decoding device 120 .
  • the channel 130 may include one or more communication media that enable the encoding device 110 to transmit the encoded video data directly to the decoding device 120 in real time.
  • the encoding device 110 may modulate the encoded video data according to a communication standard and transmit the modulated video data to the decoding device 120.
  • the communication media may include wireless communication media, such as radio frequency spectrum.
  • the communication media may also include wired communication media, such as one or more physical transmission lines.
  • the channel 130 may include a storage medium that can store the video data encoded by the encoding device 110.
  • the storage medium includes a variety of locally accessible data storage media, such as an optical disk, a DVD, a flash memory, etc.
  • the decoding device 120 may obtain the encoded video data from the storage medium.
  • the channel 130 may include a storage server that can store the video data encoded by the encoding device 110.
  • the decoding device 120 can download the stored encoded video data from the storage server.
  • the storage server can store the encoded video data and transmit the encoded video data to the decoding device 120, such as a web server (e.g., for a website), a file transfer protocol (FTP) server, etc.
  • FTP file transfer protocol
  • the encoding device 110 includes a video encoder 112 and an output interface 113 .
  • the output interface 113 may include a modulator/demodulator (modem) and/or a transmitter.
  • the video encoder 112 transmits the encoded video data directly to the decoding device 120 via the output interface 113.
  • the encoded video data may also be stored in a storage medium or a storage server for subsequent reading by the decoding device 120.
  • the encoding device 110 may include a video source 111 in addition to the video encoder 112 and the input interface 113 .
  • the video source 111 may include at least one of a video acquisition device (e.g., a video camera), a video archive, a video input interface, and a computer graphics system, wherein the video input interface is used to receive video data from a video content provider, and the computer graphics system is used to generate video data.
  • the video encoder 112 encodes the video data from the video source 111 to generate a bitstream.
  • the video data may include one or more pictures or a sequence of pictures.
  • the bitstream contains the encoding information of the picture or the sequence of pictures in the form of a bitstream.
  • the encoding information may include the encoded picture data and associated data.
  • the associated data may include a sequence parameter set (SPS), a picture parameter set (PPS), and other syntax structures.
  • the SPS may contain parameters applied to one or more sequences.
  • the PPS may contain parameters applied to one or more pictures.
  • the syntax structure refers to a set of zero or more syntax elements arranged in a specified order in the bit
  • the decoding device 120 includes an input interface 121 and a video decoder 122.
  • the input interface 121 may include a receiver and/or a modem.
  • the decoding device 120 may include a display device 123 in addition to the input interface 121 and the video decoder 122 .
  • the input interface 121 may receive the encoded video data through the channel 130.
  • the video decoder 122 is used to decode the encoded video data to obtain decoded video data, and transmit the decoded video data to the display device 123.
  • the display device 123 displays the decoded video data.
  • the display device 123 may be integrated with the decoding device 120 or outside the decoding device 120.
  • the display device 123 may include a variety of display devices, such as a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or other types of display devices.
  • LCD liquid crystal display
  • OLED organic light emitting diode
  • Figure 1 is only an example of the present application and should not be understood as a display of the present application. That is to say, the technical solution of the embodiment of the present application is not limited to the system framework shown in Figure 1.
  • the technology of the present application can also be applied to unilateral video encoding or unilateral video decoding.
  • FIG. 2 is a schematic block diagram of a video encoder 200 according to an embodiment of the present application.
  • the video encoder 200 can be applied to image data in luminance and chrominance (YCbCr, YUV) format.
  • the YUV ratio can be 4:2:0, 4:2:2 or 4:4:4, Y represents brightness (Luma), Cb (U) represents blue chrominance, Cr (V) represents red chrominance, and U and V represent chrominance (Chroma) for describing color and saturation.
  • 4:2:0 means that every 4 pixels have 4 luminance components and 2 chrominance components (YYYYCbCr)
  • 4:2:2 means that every 4 pixels have 4 luminance components and 4 chrominance components (YYYYCbCrCbCr)
  • 4:4:4 represents full pixel display (YYYYCbCrCbCrCbCrCbCr).
  • RGB red-green-blue
  • each frame of the video stream can be divided into several coding tree units (CTU).
  • CTU can be called “tree block", “largest coding unit” (LCU) or “coding tree block” (CTB).
  • LCU largest coding unit
  • CTB coding tree block
  • Each CTU can be associated with a pixel block of equal size in the image.
  • Each pixel can correspond to a luminance (luminance or luma) sample and two chrominance (chrominance or chroma) samples. Therefore, each CTU can be associated with a luminance sample block and two chrominance sample blocks.
  • the size of a CTU can be, for example, 128 ⁇ 128, 64 ⁇ 64, 32 ⁇ 32, etc.
  • FIG 3 is a schematic structural diagram of the relationship between the coding tree unit and the coding unit provided in the present application.
  • a CTU can be further divided into several coding units (CU) for encoding, and the CU can be a rectangular block or a square block.
  • CU can be further divided into prediction unit (PU) and transform unit (TU), which makes encoding, prediction and transform separated and more flexible in processing.
  • PU prediction unit
  • TU transform unit
  • CTU is divided into CU in a tree (e.g., quadtree) manner
  • CU is divided into TU and PU in a tree manner (e.g., quadtree).
  • the video encoder and the video decoder may support various PU sizes.
  • the video encoder and the video decoder may support a PU size of 2N ⁇ 2N or N ⁇ N for intra prediction, and support symmetric PUs of 2N ⁇ 2N, 2N ⁇ N, N ⁇ 2N, N ⁇ N or similar sizes for inter prediction.
  • the video encoder and the video decoder may also support asymmetric PUs of 2N ⁇ nU, 2N ⁇ nD, nL ⁇ 2N, and nR ⁇ 2N for inter prediction.
  • the video encoder 200 may include: a prediction unit 210, a residual unit 220, a transform/quantization unit 230, an inverse transform/quantization unit 240, a reconstruction unit 250, a loop filter unit 260, a decoded image cache 270, and an entropy coding unit 280.
  • the current block may be referred to as a current coding unit (CU) or a current prediction unit (PU), etc.
  • a prediction block may also be referred to as a predicted image block or an image prediction block, and a reconstructed image block may also be referred to as a reconstructed block or an image reconstructed image block.
  • the prediction unit 210 includes an inter prediction unit 211 and an intra prediction unit 212. Since there is a strong correlation between adjacent pixels in an image in a video, an intra prediction method is used to eliminate spatial redundancy between adjacent pixels in video coding and decoding technology. Since there is a strong similarity between adjacent images in a video, an inter prediction method is used to eliminate temporal redundancy between adjacent images, thereby improving coding efficiency.
  • the inter prediction unit 211 can be used for inter prediction, which may include motion estimation and motion compensation. It may refer to the image information of different frames. Inter prediction uses motion information to find a reference block from a reference frame, and generates a prediction block based on the reference block to eliminate temporal redundancy.
  • the reference frame may be a P frame and/or a B frame.
  • a P frame refers to a forward prediction frame
  • a B frame refers to a bidirectional prediction frame.
  • After inter prediction uses motion information to find a reference block, a prediction block is generated based on the reference block.
  • the motion information includes a frame list, a frame index, and a motion vector to which the reference frame belongs.
  • the motion vector may be an integer pixel or a sub-pixel.
  • the motion vector is a sub-pixel
  • an interpolation filter is required in the reference frame to make the required sub-pixel block.
  • the reference block is the integer pixel or sub-pixel block found based on the motion vector.
  • the intra prediction unit 212 only refers to the information of the same frame image to predict the pixel information in the current code image block to eliminate spatial redundancy.
  • the reference frame used for intra prediction can be an I frame.
  • Intra prediction has multiple prediction modes.
  • the image block to be encoded can be predicted with the help of angle prediction mode and non-angle prediction mode to obtain the prediction block.
  • the rate distortion information is calculated to select the optimal prediction mode of the image block to be encoded, and the prediction mode is written into the bitstream for transmission to the decoder.
  • the decoder parses the prediction mode, predicts the prediction block of the target decoding block and superimposes the time domain residual block obtained based on the bitstream to obtain the reconstructed block.
  • the H.264/AVC standard has 8 angle prediction modes and 1 non-angle prediction mode
  • H.265/HEVC is expanded to 33 angle prediction modes and 2 non-angle prediction modes.
  • the intra prediction modes used by HEVC are planar mode, direct current (DC) and 33 angle modes, a total of 35 prediction modes.
  • the intra-frame modes used by VVC are Planar, DC and 65 angle modes, a total of 67 prediction modes, which include traditional prediction modes and non-traditional prediction modes.
  • Non-traditional prediction modes may include matrix weighted intra-frame prediction (MIP) mode.
  • Traditional prediction modes include: planar mode with mode number 0, DC mode with mode number 1, and angle prediction modes with mode numbers 2 to 66.
  • the transform/quantization unit 230 may quantize the transform coefficients.
  • the transform/quantization unit 230 may quantize the transform coefficients associated with the TUs of the CU based on a quantization parameter (QP) value associated with the CU.
  • QP quantization parameter
  • the video encoder 200 may adjust the degree of quantization applied to the transform coefficients associated with the CU by adjusting the QP value associated with the CU.
  • the inverse transform/quantization unit 240 may apply inverse quantization and inverse transform to the quantized transform coefficients, respectively, to reconstruct a residual block from the quantized transform coefficients.
  • the reconstruction unit 250 may add the samples of the reconstructed residual block to the corresponding samples of one or more prediction blocks generated by the prediction unit 210 to generate a reconstructed image block associated with the TU. By reconstructing the sample blocks of each TU of the CU in this manner, the video encoder 200 may reconstruct the pixel blocks of the CU.
  • the decoded image buffer 270 may store the reconstructed pixel blocks.
  • the inter prediction unit 211 may use the reference image containing the reconstructed pixel block in the decoded image buffer 270 to perform inter prediction on the PU of other images.
  • the intra prediction unit 212 may use the reconstructed pixel block in the decoded image buffer 270 to perform intra prediction on other PUs in the same image as the CU.
  • FIG. 4 is a schematic block diagram of a video decoder according to an embodiment of the present application.
  • the video decoder 300 includes an entropy decoding unit 310, a prediction unit 320, an inverse quantization/transformation unit 330, a reconstruction unit 340, a loop filter unit 350, and a decoded image buffer 360. It should be noted that the video decoder 300 may include more, fewer, or different functional components.
  • the video decoder 300 may receive a bitstream.
  • the entropy decoding unit 310 may parse the bitstream to extract syntax elements from the bitstream. As part of parsing the bitstream, the entropy decoding unit 310 may parse the syntax elements in the bitstream that have been entropy encoded.
  • the prediction unit 320, the inverse quantization/transformation unit 330, the reconstruction unit 340, and the loop filter unit 350 may decode the video data according to the syntax elements extracted from the bitstream, that is, generate decoded video data.
  • the prediction unit 320 includes an intra prediction unit 322 and an inter prediction unit 321 .
  • the inter prediction unit 321 may construct a first reference image list (list 0) and a second reference image list (list 1) according to the syntax elements parsed from the code stream.
  • the entropy decoding unit 310 may parse the motion information of the PU.
  • the inter prediction unit 321 may determine one or more reference blocks of the PU according to the motion information of the PU.
  • the inter prediction unit 321 may generate a prediction block of the PU according to one or more reference blocks of the PU.
  • the inverse quantization/transform unit 330 may inversely quantize (i.e., dequantize) the transform coefficients associated with the TU.
  • the inverse quantization/transform unit 330 may use the QP value associated with the CU of the TU to determine the degree of quantization. After inverse quantizing the transform coefficients, the inverse quantization/transform unit 330 may apply one or more inverse transforms to the inverse quantized transform coefficients to generate a residual block associated with the TU.
  • the reconstruction unit 340 uses the residual block associated with the TU of the CU and the prediction block of the PU of the CU to reconstruct the pixel block of the CU. For example, the reconstruction unit 340 may add samples of the residual block to corresponding samples of the prediction block to reconstruct the pixel block of the CU to obtain a reconstructed image block.
  • the loop filtering unit 350 may perform a deblocking filtering operation to reduce blocking effects of pixel blocks associated with a CU.
  • the video decoder 300 may store the reconstructed image of the CU in the decoded image buffer 360.
  • the video decoder 300 may use the reconstructed image in the decoded image buffer 360 as a reference image for subsequent prediction, or transmit the reconstructed image to a display device for presentation.
  • a frame of image is divided into image blocks.
  • the prediction unit 210 uses intra prediction or inter prediction to predict the prediction block of the current block (i.e., the block to be encoded).
  • the residual unit 220 can calculate the difference between the prediction block and the original block of the current block (i.e., the block to be encoded).
  • the residual block is calculated, that is, the difference between the predicted block and the original block, and the residual block can also be called residual information.
  • the residual block can remove information that is not sensitive to the human eye through processes such as transformation and quantization by the transform/quantization unit 230 to eliminate visual redundancy.
  • the residual block before transformation and quantization by the transform/quantization unit 230 can be called a time domain residual block, and the time domain residual block after transformation and quantization by the transform/quantization unit 230 can be called a frequency residual block or a frequency domain residual block.
  • the entropy coding unit 280 receives the quantized change coefficient output by the change quantization unit 230, and can perform entropy coding on the quantized change coefficient to output a code stream. For example, the entropy coding unit 280 can eliminate character redundancy based on the target context model and the probability information of the binary code stream.
  • the entropy decoding unit 310 can parse the code stream to obtain the prediction information, quantization coefficient matrix, etc. of the current block (i.e., the block to be decoded).
  • the prediction unit 320 uses intra prediction or inter prediction based on the prediction information to predict the prediction block of the current block (i.e., the block to be decoded).
  • the inverse quantization/transformation unit 330 uses the quantization coefficient matrix obtained from the code stream to inverse quantize and inverse transform the quantization coefficient matrix to obtain a residual block.
  • the reconstruction unit 340 adds the prediction block and the residual block to obtain a reconstructed block.
  • the reconstructed blocks constitute a reconstructed image
  • the loop filtering unit 350 performs loop filtering on the reconstructed image based on the image or on the block to obtain a decoded image. It is worth noting that the encoding end also needs to use operations similar to those of the decoder to obtain a decoded image.
  • the decoded image can also be called a reconstructed image, and the reconstructed image can be a subsequent frame as a reference frame for inter prediction.
  • the block division information determined by the encoder as well as the mode information or parameter information such as prediction, transformation, quantization, entropy coding, loop filtering, etc., are carried in the bitstream when necessary.
  • the decoder parses the bitstream and determines the same block division information, prediction, transformation, quantization, entropy coding, loop filtering, etc. mode information or parameter information as the encoder by analyzing the existing information, thereby ensuring that the decoded image obtained by the encoder is the same as the decoded image obtained by the decoder.
  • the image can be divided into slices, etc., and the slices in the same image can be processed in parallel, that is, there is no data dependency between them.
  • the term "frame” can be understood as an image or a slice, etc.
  • the above is the basic process of the video codec under the block-based codec framework.
  • FIG. 5 is another example of a video encoder provided by the present application.
  • the encoder reads unequal pixels for video signals (such as video sequences) of different color formats, including brightness components and chrominance components, that is, the encoder reads a black and white or color image. Then it is divided into blocks, and the blocks are handed over to the encoder for encoding.
  • the encoder is usually a hybrid frame coding mode, usually including a prediction unit (including an intra prediction unit and an inter prediction unit), a transform and quantization unit, an inverse transform and inverse quantization unit, a loop filter unit, and an entropy coding unit.
  • a decoded image cache unit may also be included.
  • the intra prediction unit is used for intra prediction.
  • the intra prediction only refers to the information of the same frame image and predicts the pixel information in the current partition block to eliminate spatial redundancy.
  • the inter prediction unit is used for inter prediction.
  • the inter prediction can refer to the image information of different frames and use motion estimation (ME) to search for the motion vector (MV) information that best matches the current partition block to eliminate temporal redundancy.
  • ME motion estimation
  • MV motion vector
  • the transform and quantization unit is used for transformation and quantization.
  • the transformation converts the predicted image block to the frequency domain, redistributes the energy, and combines quantization to remove information that is not sensitive to the human eye to eliminate visual redundancy.
  • the entropy coding unit is used for entropy coding, which can eliminate character redundancy based on the current context model and the probability information of the binary code stream.
  • the loop filtering unit is used for loop filtering, which mainly processes the pixels after inverse transformation and inverse quantization to compensate for the distortion information and provide a better reference for the subsequent encoding
  • the loop filter unit mainly includes tools such as deblocking filter (DBF), sample adaptive offset (SAO) and adaptive loop filter (ALF).
  • DPF deblocking filter
  • SAO sample adaptive offset
  • ALF adaptive loop filter
  • a NNLF has been adopted as the baseline filtering tool of the neural network based common software (NCS) of the neural network based video coding (NNVC), and it is called Low Complexity Neural Network based Loop Filter (LC NNLF).
  • NCS neural network based common software
  • LC NNLF Low Complexity Neural Network based Loop Filter
  • FIG6 is an example of the basic structure of the residual network provided in the present application.
  • the residual network includes a neural network (NN), and a skip connection structure is designed between the input and output of the NN.
  • the skip connection structure allows the NN to focus on learning the residual information of the image, thereby improving the learning ability and prediction performance of the NN.
  • the NN outputs the predicted residual information and simply superimposes the residual information on the NN input. Get the output of the residual network.
  • FIG. 7 is an example of the basic structure of the NNLF provided in this application.
  • the basic structure of NNLF includes a jump connection branch from the input reconstruction block to the output filter block.
  • the output filter block can be simply expressed by the following formula:
  • cnn represents the output filter block
  • rec represents the input reconstruction block
  • res represents the residual block output by the neural network.
  • the residual block is predicted by the reconstructed block input by the NN, and finally the residual block is superimposed on the input reconstructed block through a simple addition operation, and the output is a filtered block, which makes its quality closer to the original block.
  • NNLF has the function of predicting the residual block.
  • Figure 8 is an example of the basic structure of the LC NNLF provided in this application.
  • the LC NNLF may be a residual network, that is, including a NN and a skip connection structure.
  • the reconstructed block may be a block of size N 1 ⁇ N 1
  • the brightness of the reconstructed block, the chrominance information of the reconstructed block, and a variety of auxiliary information are used as inputs of the NN to obtain the output of the NN, that is, the residual block.
  • the auxiliary information includes, but is not limited to, deblocking (DeBlocking) filter boundary strength information, quantization parameter (Quantization Parameter, QP) information, etc.
  • the residual block is superimposed on the reconstructed block using a skip connection structure to obtain a filter block, for example, the filter block may be a block of size N 2 ⁇ N 2 .
  • LC NNLF achieves a good balance between coding performance and complexity, and is therefore adopted as the current baseline filtering tool.
  • the present application provides a decoding method, an encoding method, a decoder and an encoder, which can optimize the filtering performance of the neural network loop filter by correcting the residual block output by the neural network loop filter, thereby improving the decoding performance of the decoder.
  • FIG. 9 is another example of a video encoder provided by the present application.
  • the video encoder may include a loop filter unit, which may include a NNLF and a residual offset adjustment (ROA) unit.
  • the use of the ROA unit may not depend on the switches of DB, SAO, and ALF.
  • the ROA unit may be located after the NNLF and before the ALF. It is worth noting that the present application does not specifically limit the specific position of the ROA unit and/or the order in which the filters are used.
  • the NNLF is any loop filter based on a neural network, for example, it may be the NNLF shown in FIG. 7 or FIG. 8 .
  • the ROA unit is used to adjust or correct the residual value in the residual block obtained by using the output and input of the NNLF.
  • the rate-distortion cost of the filter block output by the NNLF relative to the original block by comparing the rate-distortion cost of the filter block output by the NNLF relative to the original block, and the rate-distortion cost of the filter block after the residual adjustment relative to the original block, it is determined whether to adjust or correct the residual value in the residual block obtained by using the output and input of the NNLF, or to determine the filter block output by the NNLF as the final reconstructed block, or the filter block output by the NNLF after the residual value adjustment is determined as the final reconstructed block.
  • the selected filter block will be encoded into the bitstream for the decoder to read.
  • the reconstructed block is filtered.
  • the decoding method provided by the present application is introduced below in conjunction with FIG. 10 .
  • FIG10 is a schematic flow chart of a decoding method 400 provided in the present application. It should be understood that the decoding method 400 may be performed by a decoder. For example, the decoding method 400 may be performed by the video decoder 122 shown in FIG1 or the video decoder 300 shown in FIG4. For ease of description, the following description is made by taking a decoder as an example.
  • the decoding method 400 may include:
  • the decoder performs loop filtering on the reconstructed block of the current block to obtain the first filtered block.
  • the current block may be a CTU, a block larger than a CTU, or a block smaller than a CTU.
  • the current block may be an image block, a sub-image, a rectangular area, or a slice.
  • S420 Determine a first residual block based on the first filtering block and the reconstructed block.
  • the decoder subtracts the reconstructed block from the first filter block to obtain the first residual block.
  • the decoder adjusts the direct current component of the first residual block to 0 or approximately 0 to obtain the second residual block.
  • the DC component of the first residual block includes an average value of pixel residual values in the first residual block.
  • the decoder adjusts the DC component of the first residual block, avoiding individually increasing or decreasing the pixel residual value in the first residual block, thereby avoiding limitations in the decoder's adjustment of the first residual block, thereby improving the universality of the decoding method provided in the present application.
  • S440 Determine a final reconstructed block of the current block based on the second residual block and the reconstructed block.
  • the DC component of the first residual block is adjusted to obtain the second residual block, and the final reconstructed block of the current block is determined based on the second residual block and the reconstructed block, which is equivalent to determining the final reconstructed block based on the corrected first filter block, which can improve the decoding performance of the decoder.
  • the baseline filtering tool LC NNLF based on NNVC implements the scheme provided by this application based on all frame types (including I, P, B), and tests its performance.
  • the general sequence specified by the Joint Video Experts Team (JVET) is tested, and the comparison anchor is LC NNLF.
  • the test results of some sequences are shown in Tables 1, 2, and 3.
  • the BD-rate in the table can be used to measure the performance of the algorithm, which includes the changes in Peak Signal to Noise Ratio (PSNR) and Mean Structural Similarity Index Measure (MSIM).
  • PSNR Peak Signal to Noise Ratio
  • MSIM Mean Structural Similarity Index Measure
  • EncT represents the transformation of coding complexity
  • DecT represents the transformation of complexity
  • Y represents brightness (Luma)
  • Cb (U) represents blue chroma
  • Cr (V) represents red chroma.
  • the encoding and decoding performance can be improved on the basis of filtering (basically without increasing the encoding and decoding complexity), especially the encoding and decoding performance of the chrominance component.
  • the encoding and decoding performance can be improved on the basis of filtering (basically without increasing the encoding and decoding complexity), especially the encoding and decoding performance of the chrominance component.
  • the encoding and decoding performance can be improved on the basis of filtering (basically without increasing the encoding and decoding complexity), especially the encoding and decoding performance of the chrominance component.
  • the S420 may include:
  • a first residual block is determined based on the first filtered block and the reconstructed block.
  • the first identifier is an image-level identifier.
  • the filtered image corresponding to the current image to which the current block belongs is: a filtered image obtained by filtering (eg, loop filtering) a reconstructed image of the current image.
  • the first identifier indicates that an adjustment is to be made to a filtered image corresponding to a current image to which the current block belongs, which can be understood as or equivalently replaced by: the first identifier indicates that an adjustment is to be made to a filtered image corresponding to the first filtering block, or the first identifier indicates that the current image to which the current block belongs allows the use of a residual offset adjustment (ROA) unit or module.
  • ROA residual offset adjustment
  • the value of the first identifier is 0 or 1, it indicates to adjust the filtered image corresponding to the current image to which the current block belongs.
  • the first flag indicates to adjust the filtered image corresponding to the current image to which the current block belongs.
  • the decoder may determine the first identifier by decoding the image header information in the code stream.
  • the first identifier may be carried in the image header information in the code stream.
  • the first identifier may be an identifier for a first component of the current block.
  • the first identifier may indicate that a filtered image corresponding to the current image to which the current block belongs and corresponding to the first component is adjusted.
  • the first component may be a color component.
  • the first component may be a brightness component or a chrominance component.
  • the first component may be a brightness component, a blue chrominance component, or a red chrominance component.
  • the first identifier may be an identifier for a first channel of the current block.
  • the first identifier may indicate that a filtered image corresponding to the current image to which the current block belongs and corresponding to the first channel is adjusted.
  • the first channel may be a color channel.
  • the first channel may be a brightness channel or a chrominance channel.
  • the decoder decodes the code stream and determines the second identifier; if the second identifier indicates to adjust the filtered image corresponding to the image in the image sequence to which the current image belongs, the decoder decodes the code stream and determines the first identifier.
  • the second identifier is an identifier at the image sequence level.
  • the filtered image corresponding to the image in the image sequence to which the current image belongs is: a filtered image obtained by filtering (eg, loop filtering) a reconstructed image of the image in the image sequence to which the current image belongs.
  • filtering eg, loop filtering
  • the second identifier indicates that adjustment is to be made to a filtered image corresponding to an image in an image sequence to which the current image belongs, which can be understood as or equivalently replaced by: the second identifier indicates that adjustment is to be made to a filtered image in a filtered image sequence to which the first filtering block belongs, or the first identifier indicates that the image sequence to which the current image belongs allows the use of a residual offset adjustment (ROA) unit or module.
  • ROA residual offset adjustment
  • the filtered image corresponding to the image in the image sequence to which the current image belongs is adjusted.
  • the decoder may determine the second identifier by decoding sequence header information in the bitstream.
  • the second identifier may be carried in the sequence header information in the bitstream.
  • the first identifier and the second identifier are described below in conjunction with Table 4 and Table 5.
  • sequence_header represents sequence header information, which includes roa_enable_flag (ie, the second identifier), and roa_enable_flag is a sequence-level identifier.
  • picture_header represents picture header information, which may include picture_roa_enable_flag[Idx] (ie, the first identifier), and picture_roa_enable_flag[Idx] is a picture-level identifier.
  • the decoder When the decoder decodes the bitstream, it can first parse the sequence header information in the bitstream and obtain roa_enable_flag; when roa_enable_flag is 1, the decoder parses picture_roa_enable_flag[N] from the image header information, where N can be 3, indicating three components Y, Cb, and Cr; N can also be 2, indicating two channels of luminance luma and chroma chroma.
  • picture_roa_enable_flag[N] 1, it means that the filtered image of component N is adjusted; when picture_roa_enable_flag[N] is 0, it means that the filtered image of component N is not adjusted. all.
  • the S430 may include:
  • the decoder performs an arithmetic operation on the at least one pixel residual value to obtain the adjustment value; then subtracts the adjustment value from each pixel residual value in the at least one pixel residual value to obtain the second residual block.
  • the decoder may also adjust the pixel residual value in the at least one pixel residual value based on the adjustment value by other adjustment methods, which is not specifically limited in the present application.
  • the decoder determines the adjustment value based on all pixel residual values in the first residual block, and subtracts the adjustment value from each pixel residual value in the first residual block to obtain the second residual block.
  • the at least one pixel residual value comprises a non-zero pixel residual value in the first residual block.
  • the non-zero pixel residual values in the first residual block include pixel residual values in the first residual block that are not zero.
  • the decoder determines the adjustment value based on all non-zero pixel residual values in the first residual block, and obtains the second residual block by subtracting the adjustment value from each non-zero pixel residual value in the first residual block.
  • the at least one pixel residual value comprises a pixel residual value in each group after the pixel residual values in the first residual block are divided into at least one group according to at least one predefined numerical range.
  • the decoder may divide the pixel residual values in the first residual block into at least one group according to at least one predefined numerical range, and then determine the pixel residual values in any one of the at least one group as the at least one pixel residual value. In other words, the decoder may determine the adjustment value based on the pixel residual values in the any one group, and subtract the adjustment value from each pixel residual value in the any one group to obtain the second residual block.
  • the at least one pixel residual value includes the pixel residual value in each group after the pixel residual values in the first residual block are divided into at least one group according to at least one predefined numerical range, which can also be understood or equivalently replaced as: the at least one pixel residual value includes the pixel residual value in each set after the pixel residual values in the first residual block are divided into at least one set according to at least one predefined numerical range.
  • the at least one predefined numerical range may be implemented by pre-saving corresponding codes, tables or other methods that can be used to indicate relevant information in the decoder, or the at least one predefined numerical range may be agreed upon or defined by a standard protocol.
  • the at least one numerical range may be at least one absolute value range.
  • the decoder divides any one pixel residual value in the first residual block into a group corresponding to the absolute value range to which the absolute value of the any one pixel residual value belongs based on the absolute value of the any one pixel residual value.
  • the at least one numerical range may include a numerical range for grouping pixel residual values having negative values in the first residual block, and a numerical range for grouping pixel residual values having positive values in the first residual block.
  • the decoder divides any pixel residual value in the first residual block into a group corresponding to the absolute value range to which the any pixel residual value belongs based on the any pixel residual value in the first residual block.
  • the decoder may characterize or determine the at least one numerical range by a plurality of numerical values.
  • the at least one pixel residual value includes a pixel residual value in each group after the pixel residual value in the first residual block is divided into at least one group according to at least one predefined numerical value.
  • the decoder may characterize or determine N-1 numerical ranges by N numerical values. Specifically, the decoder may determine two adjacent numerical values among the N numerical values as one numerical range in the at least one numerical range.
  • the at least one numerical range and the at least one grouping may be in a one-to-one correspondence, or the at least one numerical range and the at least one grouping may be in a many-to-one relationship.
  • the at least one numerical range is at least one absolute value range
  • the at least one numerical range and the at least one grouping may be in a one-to-one correspondence.
  • the at least one numerical range may include a numerical range for grouping pixel residual values having negative values in the first residual block, and a numerical range for grouping pixel residual values having positive values in the first residual block, then the numerical ranges having the same absolute value of the upper limit value and the same absolute value of the lower limit value in the at least one numerical range may correspond to the same group in the at least one grouping.
  • the decoder can determine the adjustment value corresponding to each group based on the following code:
  • ⁇ x1, x2, x3..., xN ⁇ is a positive integer of at least one absolute value range used to divide the pixel residual values in the first residual block into at least one group
  • ⁇ AVG_OFFSET_1, AVG_OFFSET_2, AVG_OFFSET_3,..., AVG_OFFSET_N ⁇ represents the average value of the pixel residual values in the 1st group to the average value of the pixel residual values in the Nth group.
  • the decoder calculates the adjustment value based on the grouping in the first residual block, and adjusts the pixel residual value in the corresponding interval based on the adjustment value corresponding to the interval. This can avoid pixel distortion caused by excessive adjustment of some pixel residual values when the pixel residual values in the first residual block are quite different, thereby improving the quality of the final reconstructed image and the decoding performance of the decoder.
  • the S430 may include:
  • a first residual image is determined based on the first residual block and at least one residual block; wherein the at least one residual block includes: a residual block determined based on a filter block obtained after filtering a first block and a reconstructed block of the first block, wherein the first block is an image block in a current image to which the current block belongs; an adjustment value is determined based on at least one pixel residual value in a sliding window in the first residual image; and a residual image including the second residual block is obtained by subtracting the adjustment value from a pixel residual value in the at least one pixel residual value.
  • the at least one residual block includes a residual block obtained by subtracting a reconstructed block of the first block from a filtered block obtained by filtering the first block.
  • the at least one residual block includes the first residual block.
  • the size of the sliding window is a non-integer multiple or an integer multiple of the size of the current block.
  • the sliding window is a window of a predefined size.
  • the predefined size window may be implemented by pre-storing a corresponding code, table or other method for indicating relevant information in a decoder, or the predefined size window may be agreed or defined by a standard protocol.
  • the decoder adjusts the pixel residual value based on the sliding window in the first residual image. Compared with the block-based pixel residual value adjustment scheme, it can achieve smooth adjustment of the pixel residual value between image blocks, and can avoid the problem of pixel distortion at the image block boundary when the block-based pixel residual value adjustment is performed, thereby improving the quality of the final reconstructed image and improving the decoding performance of the decoder.
  • the at least one pixel residual value comprises all pixel residual values within the sliding window.
  • the decoder determines the adjustment value based on all pixel residual values in the sliding window, and subtracts the adjustment value from each pixel residual value in the sliding window to obtain the second residual block.
  • the at least one pixel residual value comprises a non-zero pixel residual value in the sliding window.
  • the non-zero pixel residual values in the sliding window include pixel residual values in the sliding window that are not zero.
  • the decoder determines the adjustment value based on all non-zero pixel residual values in the sliding window, and obtains the second residual block by subtracting the adjustment value from each non-zero pixel residual value in the sliding window.
  • the at least one pixel residual value comprises a pixel residual value in each group after the pixel residual values in the sliding window are divided into at least one group according to at least one predefined value range.
  • the decoder may divide the pixel residual values in the sliding window into at least one group according to at least one predefined value range, and then determine the pixel residual value in any one of the at least one group as the at least one pixel residual value. In other words, the decoder may determine the adjustment value based on the pixel residual value in the any one group, and subtract the adjustment value from each pixel residual value in the any one group to obtain the second residual block.
  • the at least one pixel residual value includes the pixel residual value in each group after the pixel residual value in the sliding window is divided into at least one group according to at least one predefined numerical range, which can also be understood or equivalently replaced as: the at least one pixel residual value includes the pixel residual value in each set after the pixel residual value in the sliding window is divided into at least one set according to at least one predefined numerical range.
  • the at least one predefined numerical range may be implemented by pre-saving corresponding codes, tables or other methods that can be used to indicate relevant information in the decoder, or the at least one predefined numerical range may be agreed upon or defined by a standard protocol.
  • the at least one numerical range may be at least one absolute value range.
  • the decoder divides any one pixel residual value in the sliding window into a group corresponding to the absolute value range to which the absolute value of the any one pixel residual value belongs based on the absolute value of the any one pixel residual value in the sliding window.
  • the at least one numerical range may include a numerical range for grouping pixel residual values having negative values in the sliding window, and a numerical range for grouping pixel residual values having positive values in the sliding window.
  • the decoder divides any pixel residual value in the sliding window into a group corresponding to the absolute value range to which the any pixel residual value belongs based on the any pixel residual value in the sliding window.
  • the decoder may characterize or determine the at least one numerical range by a plurality of numerical values.
  • the at least one pixel residual value includes the pixel residual value in each group after the pixel residual values in the sliding window are divided into at least one group according to at least one predefined numerical value.
  • the decoder may characterize or determine N-1 numerical ranges by N numerical values.
  • the decoder may Two adjacent values among the N values are determined as one of the at least one value range.
  • the at least one numerical range and the at least one grouping may be in a one-to-one correspondence, or the at least one numerical range and the at least one grouping may be in a many-to-one relationship.
  • the at least one numerical range is at least one absolute value range
  • the at least one numerical range and the at least one grouping may be in a one-to-one correspondence.
  • the at least one numerical range may include a numerical range for grouping pixel residual values with negative values in the sliding window, and a numerical range for grouping pixel residual values with positive values in the sliding window, then the numerical ranges with the same absolute value of the upper limit value and the same absolute value of the lower limit value in the at least one numerical range may correspond to the same group in the at least one grouping.
  • the decoder can determine the adjustment value corresponding to each group based on the following code:
  • ⁇ x1, x2, x3..., xN ⁇ is a positive integer of at least one absolute value range used to divide the pixel residual values in the sliding window into at least one group
  • ⁇ AVG_OFFSET_1, AVG_OFFSET_2, AVG_OFFSET_3,..., AVG_OFFSET_N ⁇ represents the average value of the pixel residual values in the 1st group to the average value of the pixel residual values in the Nth group.
  • an average value of the at least one pixel residual value or a value obtained by rounding the average value of the at least one pixel residual value is determined as the adjustment value.
  • the decoder determines the average value of the at least one pixel residual value as the adjustment value.
  • the decoder determines the value obtained by rounding the average value of the at least one pixel residual value as the adjustment value. For example, the decoder determines the value obtained by rounding up the average value of the at least one pixel residual value as the adjustment value. For another example, the decoder determines the value obtained by rounding down the average value of the at least one pixel residual value as the adjustment value.
  • the adjustment value is determined based on an average value of the at least one pixel residual value and a preset first value range.
  • the decoder determines whether to determine the average value as the adjustment value by comparing the average value of the at least one pixel residual value with a preset first numerical range. For example, if the average value is within the first numerical range, the decoder determines the average value as the adjustment value. If the average value is outside the first numerical range, the decoder may determine the adjustment value as the upper limit or lower limit of the first numerical range.
  • the average value if the average value is within the first numerical range, the average value or a value obtained by rounding the average value is determined as the adjustment value. If the average value is greater than an upper limit value of the first numerical range, the upper limit value is determined as the adjustment value. If the average value is less than a lower limit value of the first numerical range, the lower limit value is determined as the adjustment value.
  • the decoder may determine the adjustment value by other means. This application does not specifically limit this. For example, if the average value is outside the first numerical range, the decoder may determine the adjustment value by a predefined value.
  • the S410 may include:
  • the reconstructed block is filtered by any one of the following methods to obtain the first filtered block:
  • Deblocking filter sample adaptive compensation filter, adaptive correction filter, neural network based loop filter.
  • the decoder uses a neural network-based loop filter to filter the reconstructed block of the current block to obtain a first filter block; then determines a first residual block based on the first filter block and the reconstructed block; adjusts the DC component of the first residual block to obtain a second residual block; and then determines a final reconstructed block of the current block based on the second residual block and the reconstructed block.
  • Embodiment 1 is a diagrammatic representation of Embodiment 1:
  • the loop filtering unit acts in the decoder, that is, the decoder first filters the reconstructed block of the current block through the neural network loop filter and outputs a first filter block, then subtracts the reconstructed block from the first filter block to obtain a first residual block, and corrects the first residual block to obtain a second reference block. Then, the decoder adds the second residual block and the reconstructed block to obtain a final reconstructed block.
  • the decoder adds the second residual block and the reconstructed block to obtain a final reconstructed block.
  • the decoder When the decoder enters the loop filter unit, it is processed in accordance with the prescribed filter order.
  • the decoder When entering the ROA unit, first determine whether the ROA unit can be used in the current sequence based on the sequence-level identifier obtained by decoding the code stream (i.e., the second identifier mentioned above, which is recorded as roa_enable_flag). If roa_enable_flag is "0", the current sequence does not use the ROA unit. If roa_enable_flag is "1", the decoder obtains the image-level identifier (i.e., the first identifier mentioned above, which is recorded as picture_roa_enable_flag) based on the decoded code stream.
  • the image-level identifier i.e., the first identifier mentioned above, which is recorded as picture_roa_enable_flag
  • picture_roa_enable_flag is "0"
  • the ROA unit is not used for the image blocks in the current image. If picture_roa_enable_flag is "1”, the image blocks in the current image are tried to be processed by the ROA unit, i.e., jump to b).
  • the decoder After the decoder obtains the first filter block, it can subtract the reconstructed block from the first filter block to obtain a first residual block, and correct the first residual block to obtain a second reference block. Then, the decoder adds the second residual block and the reconstructed block to obtain a final reconstructed block.
  • FIG. 11 is an example of the principle of determining the first residual block provided in the present application.
  • the decoder can obtain a first residual block (res) by subtracting an input reconstructed block (rec) from the first filtered block (cnn) output by the filter.
  • the present application does not specifically limit the filter used to filter the reconstructed block.
  • the present application aims to correct the first residual block obtained by subtracting the first filter block output by the filter from the input of the filter.
  • the scheme of the present application can be used to adjust the first residual block. For example, the first residual block obtained by subtracting the first filter block output by the input of DB, SAO, or ALF can be adjusted.
  • the decoder may directly correct the pixel residual values in the first residual block at a block granularity.
  • the decoder may correct the residual value block by block by traversing all residual blocks (for example, CTU level) of the residual image to be corrected, and finally obtain the corrected residual image.
  • all residual blocks for example, CTU level
  • the decoder can correct the pixel residual value of each CTU in CTU1 to CTU8, that is, it can traverse CTU1 to CTU8, correct the pixel residual value in the CTU one by one, and finally obtain the corrected residual image.
  • the present application corrects the first residual block by adjusting the direct current component (DC) of the first residual block to zero. For example, in order to adjust its direct current component (DC) to zero, it is necessary to adjust the average value of the pixel residual values in the first residual block to zero. For example, all the pixel residual values in the first residual block are summed and averaged to obtain the average value. Then, by subtracting the average value from each pixel residual value in the first residual block, a corrected second residual block can be obtained, whose direct current component is zero (or approximately zero).
  • DC direct current component
  • the average value of the pixel residual values in the first residual block is calculated to be 2.375, which is rounded to 2; then, for the first residual block, by subtracting the average value from each pixel residual value in the first residual block, a corrected second residual block as shown in Figure 14 can be obtained.
  • the decoder may also perform residual adjustment with image blocks smaller or larger than the CTU.
  • the CTU is further divided into 2 ⁇ 2 to obtain 4 sub-image blocks, and then the pixel residual values in the sub-image blocks are corrected one by one.
  • the decoder may correct the pixel residual values in the image at a sliding window granularity.
  • the decoder can correct the pixel residual values in the sliding window by moving the sliding window in the residual image to be corrected, and finally obtain a corrected residual image.
  • the residual image to be corrected can be an image obtained by subtracting the reconstructed image of the current image from the filtered image of the current image.
  • the decoder can correct the pixel residual values in the sliding window, that is, the pixel residual values in the residual image to be corrected can be corrected by moving the sliding window according to a predefined sliding step size, and finally a corrected residual image is obtained.
  • the decoder can also sum and average some pixel residual values (e.g., pixel residual values that are not 0) in the first residual block or sliding window to obtain the average value of some pixel residual values. In this case, the decoder adjusts the residual values of some pixels. Even after the decoder calculates the average value of all pixel residual values (or some pixel residual values) in the first residual block or sliding window, it can also determine whether to use the average value to adjust the residual value.
  • some pixel residual values e.g., pixel residual values that are not 0
  • the average value is used to adjust the residual value; if the average value is less than the lower limit of the predefined numerical range, the lower limit is used to adjust the residual value; if the average value is greater than the upper limit of the predefined numerical range, the upper limit is used to adjust the residual value.
  • FIG. 17 is a schematic flowchart of the encoding method 500 provided in the present application.
  • the encoding method 500 may be executed by an encoder, for example, applied to the encoding framework 100 shown in FIG1 .
  • an encoder for example, applied to the encoding framework 100 shown in FIG1 .
  • the following description is made by taking an encoder as an example.
  • the encoding method 500 may include:
  • S550 Determine a filtered image with the smallest rate-distortion cost among the first filtered image to which the first filtering block belongs and the second filtered image to which the second filtering block belongs as a reconstructed image of the current image to which the current block belongs.
  • the method 500 may further include:
  • the first identifier indicates that the filtered image corresponding to the current image to which the current block belongs is not adjusted; when the rate-distortion cost of the first filtered image is greater than the rate-distortion cost of the second filtered image, the first identifier indicates that the filtered image corresponding to the current image is adjusted.
  • the method 500 may further include:
  • the second identifier indicates whether to adjust or not adjust the filtered image corresponding to the image in the image sequence to which the current image belongs.
  • the S530 may include:
  • the second residual block is obtained by subtracting the adjustment value from a pixel residual value in the at least one pixel residual value.
  • the at least one pixel residual value comprises all pixel residual values in the first residual block.
  • the at least one pixel residual value includes a non-zero pixel residual value in the first residual block, or the at least one pixel residual value includes a pixel residual value in each group after the pixel residual values in the first residual block are divided into at least one group according to at least one predefined numerical range.
  • the S530 may include:
  • the at least one residual block includes: a residual block determined based on a filter block obtained after filtering a first block and a reconstructed block of the first block, wherein the first block is an image block in a current image to which the current block belongs;
  • the adjustment value is subtracted from a pixel residual value in the at least one pixel residual value to obtain a residual image including the second residual block.
  • the at least one pixel residual value comprises all pixel residual values within the sliding window.
  • the at least one pixel residual value includes a non-zero pixel residual value in the sliding window, or the at least one pixel residual value includes a pixel residual value in each group after the pixel residual values in the sliding window are divided into at least one group according to at least one predefined numerical range.
  • an average value of the at least one pixel residual value or a value obtained by rounding the average value of the at least one pixel residual value is determined as the adjustment value.
  • the adjustment value is determined based on an average value of the at least one pixel residual value and a preset first value range.
  • the average value or the value obtained by rounding the average value is determined as the adjustment value; if the average value is greater than the upper limit value of the first numerical range, the upper limit value is determined as the adjustment value; if the average value is less than the lower limit value of the first numerical range, the lower limit value is determined as the adjustment value.
  • the S510 may include:
  • the reconstructed block is filtered by any one of the following methods to obtain the first filtered block:
  • Deblocking filter sample adaptive compensation filter, adaptive correction filter, neural network based loop filter.
  • the encoding method can be understood as the inverse process of the decoding method. Therefore, the specific scheme of the encoding method 500 can refer to the relevant content of the decoding method 400. For the convenience of description, this application will not go into details.
  • Embodiment 2 is a diagrammatic representation of Embodiment 1:
  • the loop filtering unit acts in the encoder, that is, the encoder first filters the reconstructed block of the current block through the neural network loop filter and outputs a first filter block, then subtracts the reconstructed block from the first filter block to obtain a first residual block, and corrects the first residual block to obtain a second reference block. Then, the encoder adds the second residual block and the reconstructed block to obtain a final reconstructed block.
  • the encoder adds the second residual block and the reconstructed block to obtain a final reconstructed block.
  • the encoder When the encoder enters the loop filter unit, it is processed in the prescribed filter order.
  • the ROA unit When entering the ROA unit, it first determines whether the ROA unit can be used in the current sequence according to the sequence level identifier (i.e., the second identifier mentioned above, which is recorded as roa_enable_flag). If roa_enable_flag is "0", the current sequence does not use the ROA unit. If roa_enable_flag is "1", the current sequence is attempted to be processed by the ROA unit, that is, jump to b).
  • the sequence level identifier i.e., the second identifier mentioned above, which is recorded as roa_enable_flag
  • the encoder After the encoder obtains the first filter block, it can use the first filter block to subtract the reconstructed block to obtain the first residual block, and correct the first residual block to obtain the second reference block, and then determine the second filter block by combining the second residual block and the reconstructed block; then jump to d).
  • the encoder compares the first filtered image of the first filter block with the original image of the current image and calculates the rate-distortion cost (denoted as C NNLF ), and compares the second filtered image of the second filter block with the original image of the current image and calculates the rate-distortion cost (denoted as C ROA ). Then, the encoder determines the reconstructed image of the current image by comparing C ROA and C NNLF .
  • FIG. 11 is an example of a first residual block provided in the present application.
  • the encoder may obtain a first residual block (res) by subtracting an input reconstructed block (rec) from a first filter block (cnn) output by the filter.
  • the present application does not specifically limit the filter used to filter the reconstructed block.
  • the present application aims to correct the first residual block obtained by subtracting the first filter block output by the filter from the input of the filter.
  • the scheme of the present application can be used to adjust the first residual block. For example, the first residual block obtained by subtracting the first filter block output by the input of DB, SAO, or ALF can be adjusted.
  • the encoder may directly correct the pixel residual values in the first residual block at a block granularity.
  • the encoder may correct the residual value block by block by traversing all residual blocks (for example, CTU level) of the residual image to be corrected, and finally obtain the corrected residual image.
  • all residual blocks for example, CTU level
  • the encoder can correct the pixel residual value of each CTU in CTU1 to CTU8, that is, it can traverse CTU1 to CTU8, correct the pixel residual value in the CTU one by one, and finally obtain the corrected residual image.
  • the present application corrects the first residual block by adjusting the direct current component (DC) of the first residual block to zero. For example, in order to adjust its direct current component (DC) to zero, it is necessary to adjust the average value of the pixel residual values in the first residual block to zero. For example, all the pixel residual values in the first residual block are summed and averaged to obtain the average value. Then, by subtracting the average value from each pixel residual value in the first residual block, a corrected second residual block can be obtained, whose direct current component is zero (or approximately zero).
  • DC direct current component
  • the average value of the pixel residual values in the first residual block is calculated to be 2.375, which is rounded to 2; then, for the first residual block, by subtracting the average value from each pixel residual value in the first residual block, a corrected second residual block as shown in Figure 14 can be obtained.
  • the encoder can correct the pixel residual values in the sliding window, that is, it can correct the pixel residual values in the residual image to be corrected by moving the sliding window according to a predefined sliding step size, and finally obtain a corrected residual image.
  • the encoder can also sum and average some pixel residual values (e.g., pixel residual values that are not 0) in the first residual block or sliding window to obtain the average value of some pixel residual values. In this case, the encoder adjusts the residual values of some pixels. Even after the encoder calculates the average value of all pixel residual values (or some pixel residual values) in the first residual block or sliding window, it can also determine whether to use the average value to adjust the residual value.
  • some pixel residual values e.g., pixel residual values that are not 0
  • the average value is used to adjust the residual value; if the average value is less than the lower limit of the predefined numerical range, the lower limit is used to adjust the residual value; if the average value is greater than the upper limit of the predefined numerical range, the upper limit is used to adjust the residual value.
  • the size of the sequence number of each process mentioned above does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application.
  • the term "and/or" is only a description of the association relationship of the associated objects, indicating that there can be three relationships. Specifically, A and/or B can represent: A exists alone, A and B exist at the same time, and B exists alone.
  • the character “/” in this application generally indicates that the preceding and following associated objects are in an “or” relationship.
  • FIG. 18 is a schematic block diagram of a decoder 600 according to an embodiment of the present application.
  • the decoder 600 may include:
  • a filtering unit 610 configured to filter a reconstructed block of a current block to obtain a first filtered block
  • a first determining unit 620 configured to determine a first residual block based on the first filtering block and the reconstructed block
  • An adjusting unit 630 configured to adjust a DC component of the first residual block to obtain a second residual block
  • the second determining unit 640 is configured to determine a final reconstructed block of the current block based on the second residual block and the reconstructed block.
  • the first determining unit 620 is specifically configured to:
  • a first residual block is determined based on the first filtered block and the reconstructed block.
  • the first determining unit 620 is specifically configured to:
  • the adjustment unit 630 is specifically used to:
  • the second residual block is obtained by subtracting the adjustment value from a pixel residual value in the at least one pixel residual value.
  • the at least one pixel residual value comprises all pixel residual values in the first residual block.
  • the at least one pixel residual value includes a non-zero pixel residual value in the first residual block, or the at least one pixel residual value includes a pixel residual value in each group after the pixel residual values in the first residual block are divided into at least one group according to at least one predefined numerical range.
  • the adjustment unit 630 is specifically used to:
  • the at least one residual block includes: a residual block determined based on a filter block obtained after filtering a first block and a reconstructed block of the first block, wherein the first block is an image block in a current image to which the current block belongs;
  • the at least one pixel residual value comprises all pixel residual values within the sliding window.
  • the at least one pixel residual value includes a non-zero pixel residual value in the sliding window, or the at least one pixel residual value includes a pixel residual value in each group after the pixel residual values in the sliding window are divided into at least one group according to at least one predefined numerical range.
  • the adjustment unit 630 is specifically used to:
  • An average value of the at least one pixel residual value or a value obtained by rounding the average value of the at least one pixel residual value is determined as the adjustment value.
  • the adjustment unit 630 is specifically used to:
  • the adjustment value is determined based on an average value of the at least one pixel residual value and a preset first value range.
  • the adjustment unit 630 is specifically used to:
  • the average value is within the first value range, the average value or a value obtained by rounding the average value is determined as the adjustment value;
  • the lower limit value is determined as the adjustment value.
  • the filtering unit 610 is specifically used for:
  • the reconstructed block is filtered by any one of the following methods to obtain the first filtered block:
  • Deblocking filter sample adaptive compensation filter, adaptive correction filter, neural network based loop filter.
  • FIG. 19 is a schematic block diagram of an encoder 700 according to an embodiment of the present application.
  • the encoder 700 may include:
  • a filtering unit 710 configured to filter a reconstructed block of a current block to obtain a first filtered block
  • a first determining unit 720 configured to determine a first residual block based on the first filtering block and the reconstructed block
  • An adjusting unit 730 configured to adjust a DC component of the first residual block to obtain a second residual block
  • a second determining unit 740 configured to determine a second filter block based on the second residual block and the reconstructed block
  • the third determination unit 750 is used to determine the filtered image with the smallest rate-distortion cost in the first filtered image to which the first filtering block belongs and the second filtered image to which the second filtering block belongs as the reconstructed image of the current image to which the current block belongs.
  • the third determining unit 750 is further configured to:
  • the first identifier indicates that the filtered image corresponding to the current image to which the current block belongs is not adjusted; when the rate-distortion cost of the first filtered image is greater than the rate-distortion cost of the second filtered image, the first identifier indicates that the filtered image corresponding to the current image is adjusted.
  • the third determining unit 750 is further configured to:
  • the second identifier indicates whether to adjust or not adjust the filtered image corresponding to the image in the image sequence to which the current image belongs.
  • the adjusting unit 730 is specifically configured to:
  • the second residual block is obtained by subtracting the adjustment value from a pixel residual value in the at least one pixel residual value.
  • the at least one pixel residual value comprises all pixel residual values in the first residual block.
  • the at least one pixel residual value includes a non-zero pixel residual value in the first residual block, or the at least one pixel residual value includes a pixel residual value in each group after the pixel residual values in the first residual block are divided into at least one group according to at least one predefined numerical range.
  • the adjusting unit 730 is specifically configured to:
  • the at least one residual block includes: a residual block determined based on a filter block obtained after filtering a first block and a reconstructed block of the first block, wherein the first block is an image block in a current image to which the current block belongs;
  • the adjustment value is subtracted from a pixel residual value in the at least one pixel residual value to obtain a residual image including the second residual block.
  • the at least one pixel residual value comprises all pixel residual values within the sliding window.
  • the at least one pixel residual value comprises a non-zero pixel residual value in the sliding window, or the at least one The pixel residual values include pixel residual values in each group after the pixel residual values in the sliding window are divided into at least one group according to at least one predefined value range.
  • the adjusting unit 730 is specifically configured to:
  • An average value of the at least one pixel residual value or a value obtained by rounding the average value of the at least one pixel residual value is determined as the adjustment value.
  • the adjusting unit 730 is specifically configured to:
  • the adjustment value is determined based on an average value of the at least one pixel residual value and a preset first value range.
  • the adjusting unit 730 is specifically configured to:
  • the average value is within the first value range, the average value or a value obtained by rounding the average value is determined as the adjustment value;
  • the lower limit value is determined as the adjustment value.
  • the filtering unit 710 is specifically used for:
  • the reconstructed block is filtered by any one of the following methods to obtain the first filtered block:
  • Deblocking filter sample adaptive compensation filter, adaptive correction filter, neural network based loop filter.
  • the device embodiment and the method embodiment may correspond to each other, and similar descriptions may refer to the method embodiment. To avoid repetition, it will not be repeated here.
  • the decoder 600 shown in Figure 18 may correspond to the corresponding subject in the decoding method 400 of the embodiment of the present application, and the aforementioned and other operations and/or functions of the various units in the decoder 600 are respectively for implementing the corresponding processes in the various methods such as the decoding method 400.
  • the encoder 700 shown in Figure 19 may correspond to the corresponding subject in the encoding method 500 of the embodiment of the present application, that is, the aforementioned and other operations and/or functions of the various units in the encoder 700 are respectively for implementing the corresponding processes in the various methods such as the encoding method 500.
  • each unit in the decoder 600 or encoder 700 involved in the embodiment of the present application is divided based on logical functions.
  • the function of a unit can also be realized by multiple units, or the function of multiple units is realized by one unit, and even, these functions can also be assisted by one or more other units.
  • part or all of the decoder 600 or encoder 700 are merged into one or several other units.
  • a certain (some) unit in the decoder 600 or encoder 700 can also be split into multiple units smaller in function to constitute, which can realize the same operation without affecting the realization of the technical effect of the embodiment of the present application.
  • the decoder 600 or encoder 700 can also include other units, and in practical applications, these functions can also be assisted by other units, and can be realized by the collaboration of multiple units.
  • a computer program capable of executing each step involved in the corresponding method can be run on a general computing device of a general-purpose computer including processing elements and storage elements such as a central processing unit (CPU), a random access storage medium (RAM), and a read-only storage medium (ROM) to construct the decoder 600 or encoder 700 involved in the embodiment of the present application, and to implement the encoding method or decoding method of the embodiment of the present application.
  • the computer program can be recorded on, for example, a computer-readable storage medium, and loaded into an electronic device through a computer-readable storage medium, and run therein to implement the corresponding method of the embodiment of the present application.
  • the units involved above can be implemented in hardware form, can be implemented in software form, and can also be implemented in the form of a combination of hardware and software.
  • the steps of the method embodiment in the embodiment of the present application can be completed by the hardware integrated logic circuit and/or software form of the processor, and the steps of the method disclosed in the embodiment of the present application can be directly embodied as a hardware decoding processor to perform, or a combination of hardware and software in the decoding processor to perform.
  • the software may be located in a mature storage medium in the art, such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically erasable programmable memory, a register, etc.
  • the storage medium is located in the memory, and the processor reads the information in the memory and completes the steps in the method embodiment mentioned above in combination with its hardware.
  • FIG. 20 is a schematic structural diagram of an electronic device 800 provided in the present application.
  • the electronic device 800 at least includes a processor 810 and a computer-readable storage medium 820.
  • the processor 810 and the computer-readable storage medium 820 may be connected via a bus or other means.
  • the computer-readable storage medium 820 is used to store a computer program 821, which includes computer instructions, and the processor 810 is used to execute the computer instructions stored in the computer-readable storage medium 820.
  • the processor 810 is the computing core and control core of the electronic device 800, which is suitable for implementing one or more computer instructions, and is specifically suitable for loading and executing one or more computer instructions to implement the corresponding method flow or corresponding function.
  • the processor 810 may also be referred to as a central processing unit (CPU).
  • the processor 810 may include, but is not limited to, a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, transistor logic devices, discrete hardware components, and the like.
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • the computer-readable storage medium 820 may be a high-speed RAM memory, or a non-volatile memory (Non-Volatile Memory), such as at least one disk memory; optionally, it may also be at least one computer-readable storage medium located away from the aforementioned processor 810.
  • the computer-readable storage medium 820 includes, but is not limited to: a volatile memory and/or a non-volatile memory.
  • 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), which is used as an external cache.
  • RAM random access memory
  • DRAM dynamic RAM
  • SDRAM synchronous DRAM
  • DDR SDRAM double data rate synchronous dynamic random access memory
  • ESDRAM enhanced synchronous dynamic random access memory
  • SLDRAM synchronous link DRAM
  • Direct Rambus RAM Direct Rambus RAM, DR RAM
  • the electronic device 800 may be an encoder or encoding framework involved in an embodiment of the present application; a first computer instruction is stored in the computer-readable storage medium 820; the processor 810 loads and executes the first computer instruction stored in the computer-readable storage medium 820 to implement the corresponding steps in the encoding method provided in the present application; in other words, the first computer instruction in the computer-readable storage medium 820 is loaded by the processor 810 and the corresponding steps are executed. To avoid repetition, it will not be repeated here.
  • the electronic device 800 may be a decoder or decoding framework involved in an embodiment of the present application; a second computer instruction is stored in the computer-readable storage medium 820; the processor 810 loads and executes the second computer instruction stored in the computer-readable storage medium 820 to implement the corresponding steps in the decoding method provided in the present application; in other words, the second computer instruction in the computer-readable storage medium 820 is loaded by the processor 810 and the corresponding steps are executed. To avoid repetition, it will not be repeated here.
  • the present application also provides a coding and decoding system, including the encoder and decoder mentioned above.
  • the present application also provides a computer-readable storage medium (Memory), which is a memory device in the electronic device 800 for storing programs and data.
  • a computer-readable storage medium 820 is a memory device in the electronic device 800 for storing programs and data.
  • a computer-readable storage medium 820 can include both the built-in storage medium in the electronic device 800 and the extended storage medium supported by the electronic device 800.
  • the computer-readable storage medium provides a storage space, which stores the operating system of the electronic device 800.
  • one or more computer instructions suitable for being loaded and executed by the processor 810 are also stored in the storage space, and these computer instructions can be one or more computer programs 821 (including program codes).
  • the present application also provides a computer program product or computer program, which includes computer instructions, and the computer instructions are stored in a computer-readable storage medium.
  • computer program 821 the data processing device 800 can be a computer, and the processor 810 reads the computer instructions from the computer-readable storage medium 820, and the processor 810 executes the computer instructions so that the computer executes the encoding method or decoding method provided in the various optional methods mentioned above.
  • the computer program product includes one or more computer instructions.
  • the computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium.
  • the computer instructions can be transmitted from one website, computer, server or data center to another website, computer, server or data center via wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means.
  • wired e.g., coaxial cable, optical fiber, digital subscriber line (DSL)
  • wireless e.g., infrared, wireless, microwave, etc.
  • the present application further provides a code stream, which may be a code stream decoded using the decoding method provided by the present application or a code stream generated using the encoding method provided by the present application.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请提供了一种解码方法、编码方法、解码器以及编码器。该解码方法包括:对当前块的重建块进行滤波,得到第一滤波块;基于该第一滤波块和该重建块,确定第一残差块;对该第一残差块的直流分量进行调整,得到第二残差块;基于该第二残差块和该重建块,确定最终重建块。针对本申请提供的解码方法,由于第一残差块是基于对当前块的重建块进行滤波得到的第一滤波块和当前块的重建块所确定的,因此,对第一残差块的直流分量的调整得到第二残差块,并基于该第二残差块和重建块来确定当前块的最终重建块,相当于,基于修正后的第一滤波块来确定最终重建块,能够提升解码器的解码性能。

Description

解码方法、编码方法、解码器以及编码器 技术领域
本申请涉及编解码技术领域,并且更具体地,涉及解码方法、编码方法、解码器以及编码器。
背景技术
数字视频压缩技术主要是将庞大的数字影像视频数据进行压缩,以便于传输以及存储等。
随着互联网视频的激增以及人们对视频清晰度的要求越来越高,尽管已有的数字视频压缩标准能够节省不少视频数据,但目前仍然需要追求更好的数字视频压缩技术,以减少数字视频传输的带宽和流量压力。
为了提升解码性能,解码器基于码流,确定出重建图像后,需要对重建图像进行环路滤波以得到解码图像,解码图像可作为参考帧用于后续图像的预测。环路滤波主要对反变换与反量化后的像素进行处理,以弥补失真信息,进而为后续图像提供更好的参考。传统的用于进行环路滤波的环路滤波单元主要包含:去块(DeBlocking)滤波器(DeBlocking Filter,DBF),样点自适应补偿(Sample adaptive Offset,SAO)和自适应修正滤波器(Adaptive loop filter,ALF)等工具。
但是,随着技术的发展,仍然需要追求更好的滤波技术进而提升解码性能。
发明内容
本申请提供了一种解码方法、编码方法、解码器以及编码器,能够提升解码性能。
第一方面,本申请提供了一种解码方法,包括:
对当前块的重建块进行滤波,得到第一滤波块;
基于所述第一滤波块和所述重建块,确定第一残差块;
对所述第一残差块的直流分量进行调整,得到第二残差块;
基于所述第二残差块和所述重建块,确定所述当前块的最终重建块。
第二方面,本申请提供了一种编码方法,包括:
对当前块的重建块进行滤波,得到第一滤波块;
基于所述第一滤波块和所述重建块,确定第一残差块;
对所述第一残差块的直流分量进行调整,得到第二残差块;
基于所述第二残差块和所述重建块,确定第二滤波块;
将所述第一滤波块所属的第一滤波图像和所述第二滤波块所属的第二滤波图像中的率失真代价最小的滤波图像,确定为所述当前块所属的当前图像的重建图像。
第三方面,本申请提供了一种解码器,包括:
滤波单元,用于对当前块的重建块进行滤波,得到第一滤波块;
第一确定单元,用于基于所述第一滤波块和所述重建块,确定第一残差块;
调整单元,用于对所述第一残差块的直流分量进行调整,得到第二残差块;
第二确定单元,用于基于所述第二残差块和所述重建块,确定所述当前块的最终重建块。
第四方面,本申请提供了一种编码器,包括:
滤波单元,用于对当前块的重建块进行滤波,得到第一滤波块;
第一确定单元,用于基于所述第一滤波块和所述重建块,确定第一残差块;
调整单元,用于对所述第一残差块的直流分量进行调整,得到第二残差块;
第二确定单元,用于基于所述第二残差块和所述重建块,确定第二滤波块;
第三确定单元,用于将所述第一滤波块所属的第一滤波图像和所述第二滤波块所属的第二滤波图像中的率失真代价最小的滤波图像,确定为所述当前块所属的当前图像的重建图像。
第五方面,本申请提供了一种解码器,包括:
处理器,适于实现计算机指令;以及,
计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令适于由处理器加载并执行上文涉及的第一方面或其各实现方式中的解码方法。
在一种实现方式中,该处理器为一个或多个,该存储器为一个或多个。
在一种实现方式中,该计算机可读存储介质可以与该处理器集成在一起,或者该计算机可读存储介质与处理器分离设置。
第六方面,本申请提供了一种编码器,包括:
处理器,适于实现计算机指令;以及,
计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令适于由处理器加载并执行上文涉及的第二方面或其各实现方式中的编码方法。
在一种实现方式中,该处理器为一个或多个,该存储器为一个或多个。
在一种实现方式中,该计算机可读存储介质可以与该处理器集成在一起,或者该计算机可读存储介质与处理器分离设置。
第七方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,该计算机指令被计算机设备的处理器读取并执行时,使得计算机设备执行上文涉及的第一方面涉及的解码方法或上文涉及的第二方面涉及的编码方法。
第八方面,本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上文涉及的第一方面涉及的解码方法或上文涉及的第二方面涉及的编码方法。
第九方面,本申请提供了一种码流,该码流如上文涉及的第一方面所述的方法中涉及的码流或如上文涉及的第二方面所述的方法生成的码流。
基于以上技术方案,针对本申请提供的解码方法,由于第一残差块是基于对当前块的重建块进行滤波得到的第一滤波块和当前块的重建块所确定的,因此,对第一残差块的直流分量的调整得到第二残差块,并基于该第二残差块和重建块来确定当前块的最终重建块,相当于,基于修正后的第一滤波块来确定最终重建块,能够提升解码器的解码性能。
附图说明
图1为本申请实施例涉及的一种视频编解码系统的示意性框图。
图2是本申请实施例涉及的视频编码器的示意性框图。
图3是本申请提供的编码树单元和编码单元的关系的示意性结构图。
图4是本申请实施例涉及的视频解码器的示意性框图。
图5是本申请提供的视频编码器的另一示例。
图6是本申请提供的残差网络的基本结构的示例。
图7是本申请提供的NNLF的基本结构的示例。
图8是本申请提供的LC NNLF的基本结构的示例。
图9是本申请提供的视频编码器的另一示例。
图10是本申请提供的解码方法的示意性流程图。
图11是本申请提供的确定第一残差块的原理的示例。
图12是本申请提供的待修正的残差图像的示例。
图13是本申请提供的第一残差块的示例。
图14是本申请提供的第二残差块的示例。
图15是本申请提供的残差值调整的图像块大小的示例。
图16是本申请提供的滑动窗口的示例。
图17本申请提供的编码方法的示意性流程图。
图18是本申请提供的解码器的示意性框图。
图19是本申请提供的编码器的示意性框图。
图20是本申请提供的电子设备的示意性框图。
具体实施方式
本申请提供的方案可应用于数字压缩技术领域。
其中,数字视频压缩技术主要是将庞大的数字影像视频数据进行压缩,以便于传输以及存储等。
本申请提供的方案可应用数字视频编码技术领域。
其中,数字视频编码技术领域包括但不限于以下中的至少一项:图像编解码领域、视频编解码领域、硬件视频编解码领域、专用电路视频编解码领域以及实时视频编解码领域。此外,本申请提供的方案可结合到以下标准:音视频编码标准(Audio Video coding Standard,AVS)、第二代AVS标准(AVS2)或第三代AVS标准(AVS3)。例如,包括但不限于:H.264/音视频编码(Audio Video coding,AVC)标准、H.265/高效视频编码(High Efficiency Video Coding,HEVC)标准以及H.266/多功能视频编码(Versatile Video Coding,VVC)标准。另外,本申请提供的方案可以用于对图像进行有损压缩(lossy compression),也可以用于对图像进行无损压缩(lossless compression)。其中,该无损压缩可以是视 觉无损压缩(visually lossless compression),也可以是数学无损压缩(mathematically lossless compression)。
为了便于理解,首先结合图1对本申请实施例涉及的视频编解码系统进行介绍。
图1为本申请实施例涉及的一种视频编解码系统的示意性框图。
如图1所示,该视频编解码系统100包含编码设备110和解码设备120。
其中,编码设备110用于对视频数据进行编码(可以理解成压缩)产生码流,并将码流传输给解码设备120。解码设备120对编码设备110编码产生的码流进行解码,得到解码后的视频数据。
编码设备110可以理解为具有视频编码功能的设备,解码设备120可以理解为具有视频解码功能的设备,即本申请实施例对编码设备110和解码设备120包括更广泛的装置,例如包含智能手机、台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机等。
编码设备110可以经由信道130将编码后的视频数据(例如码流)传输给解码设备120。
信道130可以包括能够将编码后的视频数据从编码设备110传输到解码设备120的一个或多个媒体和/或装置。
信道130可以包括使编码设备110能够实时地将编码后的视频数据直接发射到解码设备120的一个或多个通信媒体。编码设备110可根据通信标准来调制编码后的视频数据,且将调制后的视频数据发射到解码设备120。其中通信媒体包含无线通信媒体,例如射频频谱。通信媒体还可以包含有线通信媒体,例如一根或多根物理传输线。
信道130可以包括存储介质,该存储介质可以存储编码设备110编码后的视频数据。存储介质包含多种本地存取式数据存储介质,例如光盘、DVD、快闪存储器等。在该实例中,解码设备120可从该存储介质中获取编码后的视频数据。
信道130可以包含存储服务器,该存储服务器可以存储编码设备110编码后的视频数据。在此实例中,解码设备120可以从该存储服务器中下载存储的编码后的视频数据。可选的,该存储服务器可以存储编码后的视频数据且可以将该编码后的视频数据发射到解码设备120,例如web服务器(例如,用于网站)、文件传送协议(FTP)服务器等。
编码设备110包含视频编码器112及输出接口113。
其中,输出接口113可以包含调制器/解调器(调制解调器)和/或发射器。视频编码器112经由输出接口113将编码后的视频数据直接传输到解码设备120。编码后的视频数据还可存储于存储介质或存储服务器上,以供解码设备120后续读取。
编码设备110除了包括视频编码器112和输入接口113外,还可以包括视频源111。
视频源111可包含视频采集装置(例如,视频相机)、视频存档、视频输入接口、计算机图形系统中的至少一个,其中,视频输入接口用于从视频内容提供者处接收视频数据,计算机图形系统用于产生视频数据。视频编码器112对来自视频源111的视频数据进行编码,产生码流。视频数据可包括一个或多个图像(picture)或图像序列(sequence of pictures)。码流以比特流的形式包含了图像或图像序列的编码信息。编码信息可以包含编码图像数据及相关联数据。相关联数据可包含序列参数集(sequence parameter set,SPS)、图像参数集(picture parameter set,PPS)及其它语法结构。SPS可含有应用于一个或多个序列的参数。PPS可含有应用于一个或多个图像的参数。语法结构是指:码流中以指定次序排列的零个或多个语法元素的集合。
解码设备120包含输入接口121和视频解码器122。输入接口121可包含接收器及/或调制解调器。
解码设备120除包括输入接口121和视频解码器122外,还可以包括显示装置123。
其中,输入接口121可通过信道130接收编码后的视频数据。视频解码器122用于对编码后的视频数据进行解码,得到解码后的视频数据,并将解码后的视频数据传输到显示装置123。显示装置123显示解码后的视频数据。显示装置123可与解码设备120整合或在解码设备120外部。显示装置123可包括多种显示装置,例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或其它类型的显示装置。
应当理解,图1仅为本申请的示例,不应理解为对本申请的显示,也即是说,本申请实施例的技术方案不限于图1所示的系统框架,例如本申请的技术还可以应用于单侧的视频编码或者单侧的视频解码。
下面对本申请实施例涉及的视频编码框架进行介绍。
图2是本申请实施例涉及的视频编码器200的示意性框图。
应当理解,该视频编码器200可应用于亮度色度(YCbCr,YUV)格式的图像数据上。例如,YUV比例可以为4:2:0、4:2:2或者4:4:4,Y表示明亮度(Luma),Cb(U)表示蓝色色度,Cr(V)表示红色色度,U和V表示为色度(Chroma)用于描述色彩及饱和度。例如,在颜色格式上,4:2:0表示每4个像素有4个亮度分量,2个色度分量(YYYYCbCr),4:2:2表示每4个像素有4个亮度分量,4个色度分量(YYYYCbCrCbCr),4:4:4表示全像素显示(YYYYCbCrCbCrCbCrCbCr)。当然,也可以应用于红绿蓝(Red-Green-Blue,RGB)格式的图像数据,本申请对此不作具体限定。
视频编码器200读取视频流后,针对视频流中的每帧图像,可将其划分成若干个编码树单元(coding tree unit,CTU)。在一些例子中,CTU可被称作“树型块”、“最大编码单元”(Largest Coding unit,LCU)或“编码树型块”(coding tree block,CTB)。每一个CTU可以与图像内的具有相等大小的像素块相关联。每一像素可对应一个亮度(luminance或luma)采样及两个色度(chrominance或chroma)采样。因此,每一个CTU可与一个亮度采样块及两个色度采样块相关联。一个CTU大小例如可以为128×128、64×64、32×32等。图3是本申请提供的编码树单元和编码单元的关系的示意性结构图。如图3所示,一个CTU又可以继续被划分成若干个编码单元(Coding Unit,CU)进行编码,CU可以为矩形块也可以为方形块。CU可以进一步划分为预测单元(prediction Unit,PU)和变换单元(transform unit,TU),进而使得编码、预测、变换分离,处理的时候更灵活。在一种示例中,CTU以树(例如四叉树)方式划分为CU,CU以树方式(例如四叉树)划分为TU、PU。
视频编码器及视频解码器可支持各种PU大小。
假定特定CU的大小为2N×2N,视频编码器及视频解码器可支持2N×2N或N×N的PU大小以用于帧内(intra)预测,且支持2N×2N、2N×N、N×2N、N×N或类似大小的对称PU以用于帧间(inter)预测。视频编码器及视频解码器还可支持2N×nU、2N×nD、nL×2N及nR×2N的不对称PU以用于帧间(inter)预测。
如图2所示,该视频编码器200可包括:预测单元210、残差单元220、变换/量化单元230、反变换/量化单元240、重建单元250、环路滤波单元260、解码图像缓存270和熵编码单元280。需要说明的是,视频编码器200可包含更多、更少或不同的功能组件。在本申请中,当前块(current block)可以称为当前编码单元(CU)或当前预测单元(PU)等。预测块也可称为预测图像块或图像预测块,重建图像块也可称为重建块或图像重建图像块。
预测单元210包括帧间(inter)预测单元211、帧内(intra)预测单元212。由于视频中一个图像中的相邻像素之间存在很强的相关性,在视频编解码技术中,使用intra预测的方法消除相邻像素之间的空间冗余。由于视频中的相邻图像之间存在着很强的相似性,使用inter预测方法消除相邻图像之间的时间冗余,从而提高编码效率。
inter预测单元211可用于inter预测,其可以包括运动估计(motion estimation)和运动补偿(motion compensation),可以参考不同帧的图像信息,inter预测使用运动信息,从参考帧中,找到参考块,根据参考块生成预测块,用于消除时间冗余;该参考帧可以为P帧和/或B帧,P帧指:向前预测帧,B帧指:双向预测帧。inter预测使用运动信息找到参考块后,根据参考块生成预测块。运动信息包括参考帧所属的帧列表、帧索引以及运动矢量。运动矢量可以是整像素的或者是分像素的,如果运动矢量是分像素的,那么需要在参考帧中,使用插值滤波做出所需的分像素的块,参考块就是根据运动矢量找到的整像素或者分像素的块。有的技术会直接把参考块作为预测块,有的技术会在参考块的基础上再处理生成预测块。在参考块的基础上再处理生成预测块也可以理解为把参考块作为预测块然后再在预测块的基础上处理生成新的预测块。
intra预测单元212只参考同一帧图像的信息,预测当前码图像块内的像素信息,用于消除空间冗余。intra预测所使用的参考帧可以为I帧。
intra预测有多种预测模式,可借助角度预测模式与非角度(Non-angle)预测模式对待编码图像块进行预测,以得到预测块,根据预测块与待编码图像块,计算得到的率失真信息,筛选出待编码图像块最优的预测模式,并将该预测模式写入码流以传输到解码端。解码端解析出预测模式,预测得到目标解码块的预测块并叠加基于码流而获取的时域残差块,可得到重建块。
以国际数字视频编码标准H系列为例,H.264/AVC标准有8种角度预测模式和1种非角度(Non-angle)预测模式,H.265/HEVC扩展到33种角度预测模式和2种非角度(Non-angle)预测模式。HEVC使用的intra预测模式有平面模式(Planar)、直流(DC)和33种角度模式,共35种预测模式。VVC使用的帧内模式有Planar、DC和65种角度模式,共67种预测模式,其包括传统预测模式和非传统的预测模式,非传统的预测模式可以包括矩阵加权intra预测(Matrix weighted intra-frame prediction,MIP)模式。传统预测模式包括:模式编号0的平面(planar)模式、模式编号1的DC模式和模式编号2到模式编号66的角度预测模式。需要说明的是,随着角度模式的增加,intra预测的预测结果将会 更加精确,也更加符合对高清以及超高清的数字视频发展的需求,上述intra预测模式仅为本申请的示例,不应对本申请产生限定。
残差单元220可基于CU的像素块及CU的PU的预测块来产生CU的残差块。举例来说,残差单元220可产生CU的残差块,使得残差块中的每一采样具有等于以下两者之间的差的值:CU的像素块中的采样,及CU的PU的预测块中的对应采样。
变换/量化单元230可量化变换系数。变换/量化单元230可基于与CU相关联的量化参数(QP)值来量化与CU的TU相关联的变换系数。视频编码器200可通过调整与CU相关联的QP值来调整应用于与CU相关联的变换系数的量化程度。
反变换/量化单元240可分别将逆量化及逆变换应用于量化后的变换系数,以从量化后的变换系数重建残差块。
重建单元250可将重建后的残差块的采样加到预测单元210产生的一个或多个预测块的对应采样,以产生与TU相关联的重建图像块。通过此方式重建CU的每一个TU的采样块,视频编码器200可重建CU的像素块。
环路滤波单元260用于对反变换与反量化后的像素进行处理,弥补失真信息,为后续编码像素提供更好的参考,例如可执行消块滤波操作以减少与CU相关联的像素块的块效应。在一些实施例中,环路滤波单元260包括:去块(DeBlocking)滤波(DeBlocking Filter,DBF)单元和样点自适应补偿/自适应环路滤波(SAO/ALF)单元,其中,DBF单元用于去方块效应,SAO/ALF单元用于去除振铃效应。
解码图像缓存270可存储重建后的像素块。
其中,inter预测单元211可使用解码图像缓存270中含有重建后的像素块的参考图像来对其它图像的PU执行inter预测。另外,intra预测单元212可使用解码图像缓存270中的重建后的像素块来对在与CU相同的图像中的其它PU执行intra预测。
熵编码单元280可接收来自变换/量化单元230的量化后的变换系数。熵编码单元280可对量化后的变换系数执行一个或多个熵编码操作以产生熵编码后的数据。
图4是本申请实施例涉及的视频解码器的示意性框图。
如图4所示,视频解码器300包含:熵(entropy)解码单元310、预测单元320、反量化/变换单元330、重建单元340、环路滤波单元350及解码图像缓存360。需要说明的是,视频解码器300可包含更多、更少或不同的功能组件。
视频解码器300可接收码流。熵(entropy)解码单元310可解析码流以从码流提取语法元素。作为解析码流的一部分,熵解码单元310可解析码流中的经熵编码后的语法元素。预测单元320、反量化/变换单元330、重建单元340及环路滤波单元350可根据从码流中提取的语法元素来解码视频数据,即产生解码后的视频数据。
预测单元320包括:帧内(intra)预测单元322、帧间(inter)预测单元321。
intra预测单元322可执行intra预测以产生PU的预测块。intra预测单元322可使用intra预测模式以基于空间相邻PU的像素块来产生PU的预测块。intra预测单元322还可根据从码流解析的一个或多个语法元素来确定PU的intra预测模式。
inter预测单元321可根据从码流解析的语法元素来构造第一参考图像列表(列表0)及第二参考图像列表(列表1)。此外,如果PU使用inter预测编码,则熵解码单元310可解析PU的运动信息。inter预测单元321可根据PU的运动信息来确定PU的一个或多个参考块。inter预测单元321可根据PU的一个或多个参考块来产生PU的预测块。
反量化/变换单元330可逆量化(即,解量化)与TU相关联的变换系数。反量化/变换单元330可使用与TU的CU相关联的QP值来确定量化程度。在逆量化变换系数之后,反量化/变换单元330可将一个或多个逆变换应用于逆量化变换系数,以便产生与TU相关联的残差块。
重建单元340使用与CU的TU相关联的残差块及CU的PU的预测块以重建CU的像素块。例如,重建单元340可将残差块的采样加到预测块的对应采样以重建CU的像素块,得到重建图像块。
环路滤波单元350可执行消块滤波操作以减少与CU相关联的像素块的块效应。
视频解码器300可将CU的重建图像存储于解码图像缓存360中。视频解码器300可将解码图像缓存360中的重建图像作为参考图像用于后续预测,或者,将重建图像传输给显示装置呈现。
结合图2和图4来说,视频编解码的基本流程如下:
在编码端,将一帧图像划分成图像块,针对当前块,预测单元210使用intra预测或inter预测,预测当前块(即待编码块)的预测块。残差单元220可基于预测块与当前块(即待编码块)的原始块,计 算残差块,即预测块和原始块的差值,该残差块也可称为残差信息。该残差块经由变换/量化单元230变换与量化等过程,可以去除人眼不敏感的信息,以消除视觉冗余。可选的,经过变换/量化单元230变换与量化之前的残差块可称为时域残差块,经过变换/量化单元230变换与量化之后的时域残差块可称为频率残差块或频域残差块。熵编码单元280接收到变化量化单元230输出的量化后的变化系数,可对该量化后的变化系数进行熵编码,输出码流。例如,熵编码单元280可根据目标上下文模型以及二进制码流的概率信息消除字符冗余。
在解码端,熵解码单元310可解析码流得到当前块(即待解码块)的预测信息、量化系数矩阵等,预测单元320基于预测信息,使用intra预测或inter预测,预测当前块(即待解码块)的预测块。反量化/变换单元330使用从码流得到的量化系数矩阵,对量化系数矩阵进行反量化、反变换得到残差块。重建单元340将预测块和残差块相加得到重建块。重建块组成重建图像,环路滤波单元350基于图像或基于块对重建图像进行环路滤波,得到解码图像。值得注意的是,编码端同样需要采用和解码器类似的操作获得解码图像。该解码图像也可以称为重建图像,重建图像可以为后续的帧,作为inter预测的参考帧。
此外,编码器确定的块划分信息,以及预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息等在必要时携带在码流中。解码端通过解析码流及根据已有信息进行分析确定与编码端相同的块划分信息,预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息,从而保证编码器获得的解码图像和解码器获得的解码图像相同。
需要说明的是,由于并行处理的需要,图像可以被划分成片(slice)等,同一个图像中的片可以并行处理,也就是说它们之间没有数据依赖。术语“帧”可以理解为图像或slice等。此外,上述是基于块的编解码框架下的视频编解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,即本申请不限于该框架及流程。
图5是本申请提供的视频编码器的另一示例。
如图5所示,编码器对不同颜色格式的视频信号(例如视频序列)读取不相等的像素,包含亮度分量和色度分量,即编码器读取一副黑白或者彩色图像。之后将其划分成块,将块交由编码器进行编码。编码器通常为混合框架编码模式,通常包含预测单元(包括帧内(intra)预测单元、帧间(inter)预测单元)、变换与量化单元、反变换与反量化单元、环路滤波单元及熵编码单元等。可选的,还可以包括解码图像缓存单元。intra预测单元用于intra预测,intra预测只参考同一帧图像的信息,预测当前划分块内的像素信息,用于消除空间冗余。inter预测单元用于inter预测,inter预测可以参考不同帧的图像信息,利用运动估计(Motion Estimation,ME)搜索最匹配当前划分块的运动矢量(Motion Vector,MV)信息,用于消除时间冗余。变换与量化单元用于变换以及量化,变换将预测后的图像块转换到频率域,能量重新分布,结合量化可以将人眼不敏感的信息去除,用于消除视觉冗余。熵编码单元用于熵编码,熵编码可以根据当前上下文模型以及二进制码流的概率信息消除字符冗余。环路滤波单元用于环路滤波,环路滤波主要对反变换与反量化后的像素进行处理,弥补失真信息,为后续编码像素提供更好的参考。
通常情况下,环路滤波单元主要包含:去块(DeBlocking)滤波器(DeBlocking Filter,DBF),样点自适应补偿(Sample adaptive Offset,SAO)和自适应修正滤波器(Adaptive loop filter,ALF)等工具。近些年来,随着深度学习技术的发展,基于神经网络的环路滤波器(Neural Network based Loop Filter,NNLF)的探索工作也逐渐展开。
下面对与环路滤波相关的内容进行说明。
(1)基线NNLF。
对于环路滤波而言,经过多年的持续研究和优化,有一种NNLF被采用为基于神经网络的视频编码(Neural Network based Video Coding,NNVC)的基于神经网络的通用软件(Neural Network based Common Software,NCS)的基线滤波工具,并称其为低复杂度神经网络滤波器(Low Complexity Neural Network based Loop Filter,LC NNLF)。
(2)残差网络。
在深度学习领域,残差网络(ResNet)提出了残差学习(Residual learning)的理念。
图6是本申请提供的残差网络的基本结构的示例。
如图6所示,残差网络包括神经网络(Neural Network,NN),且NN的输入到NN的输出之间设计有跳跃连接(Skip Connection)结构,跳跃连接结构可以让NN专注于学习图像的残差信息,提升了NN的学习能力和预测性能。具体地,NN输出预测的残差信息,并将残差信息简单叠加到NN输入上, 得到残差网络的输出。
由于残差网络的优秀性能,当前的基线LC NNLF方案中借鉴了残差学习的理念。
图7是本申请提供的NNLF的基本结构的示例。
如图7所示,NNLF的基本结构包括由输入重建块到输出滤波块的跳连接支路,输出滤波块可由以下公式简单表示:
cnn=rec+res。
其中,cnn表示输出的滤波块,rec表示输入的重建块,res表示神经网络输出的残差块。
对于NNLF而言,其本质上是:
先通过NN输入的重建块来预测残差块,最后通过简单的相加操作,把残差块叠加到输入重建块上,输出得到滤波块,使得其质量更加接近于原始块。
因此,NNLF具有预测残差块的功能。
图8是本申请提供的LC NNLF的基本结构的示例。
如图8所示,LC NNLF可以是残差网络,即包括NN和跳跃连接结构。假设重建块可以是包括N1×N1大小的块,将重建块的亮度、重建块的色度信息、以及多种辅助信息作为NN的输入,得到NN的输出,即残差块。该辅助信息包括但不限于:去块(DeBlocking)滤波边界强度信息、量化参数(Quantization Parameter,QP)信息等。得到残差块后,利用跳跃连接结构将残差块叠加到重建块即可得到滤波块,例如滤波块可以是N2×N2大小的块。
LC NNLF在编码性能和复杂度之间取得了较好的平衡,因此被采用为当前的基线滤波工具。
在视频编码中,利用NNLF对重建块进行滤波处理时,需要基于大量的块和视频,经过百万次的网络训练,而学习到的预测能力。但是,由于NNLF在很大程度上被视为具有多层网络结构的黑盒子,因此残差块在一定程度上缺乏合理的可解释性,这会导致预测得到的残差块中的残差值有可能比真实的残差值小,也有可能比真实的残差值大,使其具有不确定性,因此,需要对残差块中的残差值进行修正。但是,如果单独调大或调小预测得到的残差块中的残差值,会存在一定的局限性。换言之,对于网络预测得到的残差块,本领域亟需一种能够对其进行合理修正的方案。
有鉴于此,本申请提供了一种解码方法、编码方法、解码器以及编码器,通过对神经网络环路滤波器输出的残差块进行修正,能够优化神经网络环路滤波器的滤波性能,进而能够提升解码器的解码性能。
图9是本申请提供的视频编码器的另一示例。
如图9所示,该视频编码器可包括环路滤波单元,该环路滤波单元可包括NNLF和残差偏移调整(Residual Offset Adjustment,ROA)单元。ROA单元的使用可以不依赖于DB、SAO、ALF的开关。作为示例,ROA单元在位置上可以处于NNLF之后且在ALF之前。值得注意的是,本申请对ROA单元的具体位置和/或滤波器的使用顺序不作具体限定。
其中,NNLF为任意一种基于神经网络的环路滤波器,例如可以是图7或图8所示的NNLF。
ROA单元用于对利用NNLF的输出和输入得到的残差块中的残差值进行调整或修正,在编码端,通过对比NNLF输出的滤波块相对原始块的率失真代价,与经过残差调整后的滤波块相对原始块的率失真代价,来判断利用NNLF的输出和输入得到的残差块中的残差值进行调整或修正,或者说,将NNLF输出的滤波块,确定为最终的重建块,还是将NNLF输出的经过残差值调整的滤波块,确定为最终的重建块。选中的滤波块将被编入码流供解码器读取。在解码器端,当解析出实际使用的滤波块后,对重建块进行滤波处理。
应理解,图9中除环路滤波单元之外的单元可参考图2或图5的相关说明以及描述,为避免重复,此处不再赘述。
下面结合图10对本申请提供的解码方法进行介绍。
图10是本申请提供的解码方法400的示意性流程图。应理解,该解码方法400可由解码器执行。例如该解码方法400可由图1所示的视频解码器122或图4所示视频解码器300执行。为便于描述,下面以解码器为例进行说明。
如图10所示,所述解码方法400可包括:
S410,对当前块的重建块进行滤波,得到第一滤波块。
示例性地,解码器对当前块的重建块进行环路滤波,得到该第一滤波块。
示例性地,当前块可以是CTU、比CTU大的块、或比CTU小的块。
示例性地,当前块可以是图像块、子图像、矩形区域、片。
S420,基于所述第一滤波块和所述重建块,确定第一残差块。
示例性地,解码器利用第一滤波块减去重建块,得到该第一残差块。
S430,对所述第一残差块的直流分量进行调整,得到第二残差块。
示例性地,解码器将该第一残差块的直流分量调整为0或近似为0,以得到该第二残差块。
示例性地,该第一残差块的直流分量包括该第一残差块中像素残差值的平均值。
本实施例中,解码器对该第一残差块的直流分量进行调整,避免了单独调大或调小第一残差块中的像素残差值,进而能够避免解码器对该第一残差块的调整出现局限性,进而提升了本申请提供的解码方法的普适性。
S440,基于所述第二残差块和所述重建块,确定所述当前块的最终重建块。
本实施例中,由于第一残差块是基于对当前块的重建块进行滤波得到的第一滤波块和当前块的重建块所确定的,因此,对第一残差块的直流分量的调整得到第二残差块,并基于该第二残差块和重建块来确定当前块的最终重建块,相当于,基于修正后的第一滤波块来确定最终重建块,能够提升解码器的解码性能。
此外,基于NNVC的基线滤波工具LC NNLF,在LC NNLF的基础上,基于全部帧类型(包括I,P,B)实现了本申请提供的方案,并对其性能进行了测试。在随机访问(Random Access)、低延迟B(Low Delay B)、所有帧内(All Intra)配置下,对联合视频专家组(Joint Video Experts Team,JVET)规定的通用序列进行测试,对比锚点(anchor)为LC NNLF,其部分序列的测试结果如表1、表2和表3所示。表格中的BD-rate可用于衡量算法性能,其包括峰值信噪比(Peak Signal to Noise Ratio,PSNR)和平均结构相似度(Mean Structural Similarity Index Measure,MSIM)上的变化情况,BD-rate为负值说明性能有所提升,且绝对值越大说明性能提升越多。表格中的EncT表示编码复杂度的变换,DecT表示复杂度的变换。Y表示明亮度(Luma),Cb(U)表示蓝色色度,Cr(V)表示红色色度。
表1
如表1所示,在随机访问(Random Access)配置下,通过引入残差调整的优化方法,能够在滤波的基础(基本没有增加编解码复杂度)上提升编解码性能,尤其是能够提升色度分量的编解码性能。
表2
如表2所示,在低延迟B(Low Delay B)配置下,通过引入残差调整的优化方法,能够在滤波的基础(基本没有增加编解码复杂度)上提升编解码性能,尤其是能够提升色度分量的编解码性能。
表3
如表3所示,在所有帧内(All Intra)配置下,通过引入残差调整的优化方法,能够在滤波的基础(基本没有增加编解码复杂度)上提升编解码性能,尤其是能够提升色度分量的编解码性能。
在一些实施例中,所述S420可包括:
解码码流,确定第一标识;
若所述第一标识指示对与所述当前块所属的当前图像对应的滤波图像进行调整,则基于所述第一滤波块和所述重建块,确定第一残差块。
示例性地,所述第一标识为图像级别的标识符。
示例性地,与所述当前块所属的当前图像对应的滤波图像为:对当前图像的重建图像进行滤波(例如环路滤波)得到的滤波图像。
示例性地,所述第一标识指示对与所述当前块所属的当前图像对应的滤波图像进行调整,可以理解为或等同替换为:所述第一标识指示对与所述第一滤波块所属的滤波图像进行调整、或所述第一标识指示所述当前块所属的当前图像允许使用残差偏移调整(Residual Offset Adjustment,ROA)单元或模块。
示例性地,若所述第一标识的取值为0或1,则指示对与所述当前块所属的当前图像对应的滤波图像进行调整。
示例性地,若所述第一标识激活或使能(enable),则指示对与所述当前块所属的当前图像对应的滤波图像进行调整。
示例性地,解码器可通过解码码流中的图像头信息确定所述第一标识。或者说,所述第一标识可以携带在码流中的图像头信息内。
示例性地,该第一标识可以是针对当前块的第一分量的标识。换言之,所述第一标识可以指示对与所述当前块所属的当前图像对应的且与所述第一分量对应的滤波图像进行调整。该第一分量可以是颜色分量。例如,所述第一分量可以是亮度分量或色度分量。再如,该第一分量可以是亮度分量、蓝色色度分量、或红色色度分量。
示例性地,该第一标识可以是针对当前块的第一通道的标识。换言之,所述第一标识可以指示对与所述当前块所属的当前图像对应的且与所述第一通道对应的滤波图像进行调整。该第一通道可以是颜色通道。例如,该第一通道可以是亮度通道或色度通道。
在一些实施例中,解码器解码所述码流,确定第二标识;若所述第二标识指示对与所述当前图像所属的图像序列中的图像对应的滤波图像进行调整,则解码所述码流,确定所述第一标识。
示例性地,所述第二标识为图像序列级别的标识符。
示例性地,与所述当前图像所属的图像序列中的图像对应的滤波图像为:对所述当前图像所属的图像序列中的图像的重建图像进行滤波(例如环路滤波)得到的滤波图像。
示例性地,所述第二标识指示对与所述当前图像所属的图像序列中的图像对应的滤波图像进行调整,可以理解为或等同替换为:所述第二标识指示对与所述第一滤波块所属的滤波图像序列中的滤波图像进行调整、或所述第一标识指示所述当前图像所属的图像序列允许使用残差偏移调整(Residual Offset Adjustment,ROA)单元或模块。
示例性地,若所述第二标识的取值为0或1,则对与所述当前图像所属的图像序列中的图像对应的滤波图像进行调整。
示例性地,若所述第二标识激活或使能(enable),则对与所述当前图像所属的图像序列中的图像对应的滤波图像进行调整。
示例性地,解码器可通过解码码流中的序列头信息确定所述第二标识。或者说,所述第二标识可以携带在码流中的序列头信息内。
示例性地,解码器解码所述码流,确定第二标识;若所述第二标识指示对与所述当前图像所属的图像序列中的图像对应的滤波图像进行调整,则解码所述码流,确定所述第一标识。若所述第一标识指示对与所述当前块所属的当前图像对应的滤波图像进行调整,则基于所述第一滤波块和所述重建块,确定第一残差块。
下面结合表4和表5对第一标识和第二标识进行说明。
表4
如表4所示,sequence_header表示序列头信息,其包括roa_enable_flag(即第二标识),roa_enable_flag为序列级别的标志符。
表5
如表5所示,picture_header表示图像头信息,其可包括picture_roa_enable_flag[Idx](即第一标识),picture_roa_enable_flag[Idx]为图像级别的标志符。
解码器解码码流时,可先解析码流中的序列头信息,并得到roa_enable_flag;当roa_enable_flag为1时,解码器从图像头信息中解析picture_roa_enable_flag[N],其中N可取3,表示Y,Cb,Cr三种分量;N也可取2,表示亮度luma,色度chroma两种通道。picture_roa_enable_flag[N]为1时,表示针对分量N的滤波图像进行调整;picture_roa_enable_flag[N]为0时,表示针对分量N的滤波图像不进行调 整。
在一些实施例中,所述S430可包括:
基于所述第一残差块中至少一个像素残差值,确定调整值;
利用所述至少一个像素残差值中的像素残差值减去所述调整值,得到所述第二残差块。
示例性地,解码器对所述至少一个像素残差值进行算术运算,得到所述调整值;然后利用所述至少一个像素残差值中的每一个像素残差值减去所述调整值,得到所述第二残差块。当然,在其他可替代实施例中,解码器也可以基于所述调整值,采用其他调整方式对所述至少一个像素残差值中的像素残差值进行调整,本申请对此不作具体限定。
在一些实施例中,所述至少一个像素残差值包括所述第一残差块中的全部像素残差值。
示例性地,解码器基于所述第一残差块中全部像素残差值确定所述调整值,并利用所述第一残差块中的每一个像素残差值减去所述调整值,得到所述第二残差块。
在一些实施例中,所述至少一个像素残差值包括所述第一残差块中非零的像素残差值。
示例性地,所述第一残差块中非零的像素残差值包括所述第一残差块中取值不为零的像素残差值。
示例性地,解码器基于所述第一残差块中全部不为零的像素残差值确定所述调整值,并利用所述第一残差块中每一个不为零的像素残差值减去所述调整值,得到所述第二残差块。
在一些实施例中,所述至少一个像素残差值包括按照预定义的至少一个数值范围将所述第一残差块中的像素残差值划分为至少一个分组后每一个分组内的像素残差值。
示例性地,解码器可以按照预定义的至少一个数值范围将所述第一残差块中的像素残差值划分为至少一个分组,然后将所述至少一个分组中任意一个分组内的像素残差值,确定为所述至少一个像素残差值。换言之,解码器可基于所述任意一个分组内的像素残差值确定所述调整值,并利用所述任意一个分组内的每一个像素残差值减去所述调整值,得到第二残差块。
当然,本申请涉及的分组也可以理解或等同替换为集合、数组等具有类似含义的术语。例如,所述至少一个像素残差值包括按照预定义的至少一个数值范围将所述第一残差块中的像素残差值划分为至少一个分组后每一个分组内的像素残差值,也可理解为或等同替换为:所述至少一个像素残差值包括按照预定义的至少一个数值范围将所述第一残差块中的像素残差值划分为至少一个集合后每一个集合内的像素残差值。
示例性地,所述预定义的至少一个数值范围可通过在解码器中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,或所述预定义的至少一个数值范围可由标准协议约定或定义。
示例性地,所述至少一个数值范围可以是至少一个绝对值范围。这种情况下,解码器基于所述第一残差块中任意一个像素残差值的绝对值,将所述任意一个像素残差值划分到与所述任意一个像素残差值的绝对值所属的绝对值范围对应的分组。
示例性地,所述至少一个数值范围可以包括用于对所述第一残差块中取值为负数的像素残差值进行分组的数值范围、和用于对所述第一残差块中取值为正数的像素残差值进行分组的数值范围。这种情况下,解码器基于所述第一残差块中任意一个像素残差值,将其划分到与所述任意一个像素残差值所属的绝对值范围对应的分组。
示例性地,解码器可通过多个数值表征或确定所述至少一个数值范围。换言之,所述至少一个像素残差值包括按照预定义的至少一个数值将所述第一残差块中的像素残差值划分为至少一个分组后每一个分组内的像素残差值。例如,解码器可通过N个数值表征或确定N-1个数值范围。具体地,解码器可以将N个数值中相邻的两个数值确定为所述至少一个数值范围中的一个数值范围。
示例性地,所述至少一个数值范围和所述至少一个分组可以是一一对应关系,或所述至少一个数值范围和所述至少一个分组可以是多对一关系。例如,若所述至少一个数值范围为至少一个绝对值范围,则所述至少一个数值范围和所述至少一个分组可以是一一对应关系。再如,若所述至少一个数值范围可以包括用于对所述第一残差块中取值为负数的像素残差值进行分组的数值范围、和用于对所述第一残差块中取值为正数的像素残差值进行分组的数值范围,则所述至少一个数值范围中上限值的绝对值相同且下限值的绝对值相同的数值范围,可以对应到所述至少一个分组中的同一个分组。
示例性地,假设第一残差块中的像素残差值记为res,解码器可以基于以下代码确定每一个分组对应的调整值:
其中,{x1,x2,x3…,xN}为用于将所述第一残差块中的像素残差值划分为至少一个分组的至少一个绝对值范围的正整数,{AVG_OFFSET_1,AVG_OFFSET_2,AVG_OFFSET_3,…,AVG_OFFSET_N}表示计算得到第1个分组内的像素残差值的平均值至第N个分组内的像素残差值的平均值。
本实施例中,解码器以所述第一残差块中的分组为单位计算所述调整值,并基于区间对应的调整值,对相应区间内的像素残差值进行调整,能够避免所述第一残差块中的像素残差值差异较大时,由于对部分像素残差值的调整过大而导致的像素失真,进而能够提升最终重建图像的质量以及提升解码器的解码性能。
在一些实施例中,所述S430可包括:
基于所述第一残差块和至少一个残差块,确定第一残差图像;其中,所述至少一个残差块包括:基于对第一块进行滤波后得到的滤波块和所述第一块的重建块所确定的残差块,所述第一块为所述当前块所属的当前图像中的图像块;基于所述第一残差图像中滑动窗口中的至少一个像素残差值,确定调整值;利用所述至少一个像素残差值中的像素残差值减去所述调整值,得到包括所述第二残差块的残差图像。
示例性地,所述至少一个残差块包括利用对第一块进行滤波后得到的滤波块减去所述第一块的重建块得到的残差块。所述至少一个残差块包括所述第一残差块。
示例性地,所述滑动窗口的大小为所述当前块的大小的非整数倍或整数倍。
示例性地,所述滑动窗口为大小预定义的窗口。所述大小预定义的窗口可通过在解码器中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,或所述大小预定义的窗口可由标准协议约定或定义。
本实施例中,解码器基于所述第一残差图像中滑动窗口进行像素残差值的调整,与基于块进行像素残差值调整的方案相比,能够在图像块之间实现像素残差值的平滑调整,能够避免基于块进行像素残差值调整时导致图像块边界处出现像素失真的问题,进而能够提升最终重建图像的质量以及提升解码器的解码性能。
在一些实施例中,所述至少一个像素残差值包括所述滑动窗口内的全部像素残差值。
示例性地,解码器基于所述滑动窗口中全部像素残差值确定所述调整值,并利用所述滑动窗口中的每一个像素残差值减去所述调整值,得到所述第二残差块。
在一些实施例中,所述至少一个像素残差值包括所述滑动窗口中非零的像素残差值。
示例性地,所述滑动窗口中非零的像素残差值包括所述滑动窗口中取值不为零的像素残差值。
示例性地,解码器基于所述滑动窗口中全部不为零的像素残差值确定所述调整值,并利用所述滑动窗口中每一个不为零的像素残差值减去所述调整值,得到所述第二残差块。
在一些实施例中,所述至少一个像素残差值包括按照预定义的至少一个数值范围将所述滑动窗口中的像素残差值划分为至少一个分组后每一个分组内的像素残差值。
示例性地,解码器可以按照预定义的至少一个数值范围将所述滑动窗口中的像素残差值划分为至少一个分组,然后将所述至少一个分组中任意一个分组内的像素残差值,确定为所述至少一个像素残差值。换言之,解码器可基于所述任意一个分组内的像素残差值确定所述调整值,并利用所述任意一个分组内的每一个像素残差值减去所述调整值,得到第二残差块。
当然,本申请涉及的分组也可以理解或等同替换为集合、数组等具有类似含义的术语。例如,所述至少一个像素残差值包括按照预定义的至少一个数值范围将所述滑动窗口中的像素残差值划分为至少一个分组后每一个分组内的像素残差值,也可理解为或等同替换为:所述至少一个像素残差值包括按照预定义的至少一个数值范围将所述滑动窗口中的像素残差值划分为至少一个集合后每一个集合内的像素残差值。
示例性地,所述预定义的至少一个数值范围可通过在解码器中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,或所述预定义的至少一个数值范围可由标准协议约定或定义。
示例性地,所述至少一个数值范围可以是至少一个绝对值范围。这种情况下,解码器基于所述滑动窗口中任意一个像素残差值的绝对值,将所述任意一个像素残差值划分到与所述任意一个像素残差值的绝对值所属的绝对值范围对应的分组。
示例性地,所述至少一个数值范围可以包括用于对所述滑动窗口中取值为负数的像素残差值进行分组的数值范围、和用于对所述滑动窗口中取值为正数的像素残差值进行分组的数值范围。这种情况下,解码器基于所述滑动窗口中任意一个像素残差值,将其划分到与所述任意一个像素残差值所属的绝对值范围对应的分组。
示例性地,解码器可通过多个数值表征或确定所述至少一个数值范围。换言之,所述至少一个像素残差值包括按照预定义的至少一个数值将所述滑动窗口中的像素残差值划分为至少一个分组后每一个分组内的像素残差值。例如,解码器可通过N个数值表征或确定N-1个数值范围。具体地,解码器可 以将N个数值中相邻的两个数值确定为所述至少一个数值范围中的一个数值范围。
示例性地,所述至少一个数值范围和所述至少一个分组可以是一一对应关系,或所述至少一个数值范围和所述至少一个分组可以是多对一关系。例如,若所述至少一个数值范围为至少一个绝对值范围,则所述至少一个数值范围和所述至少一个分组可以是一一对应关系。再如,若所述至少一个数值范围可以包括用于对所述滑动窗口中取值为负数的像素残差值进行分组的数值范围、和用于对所述滑动窗口中取值为正数的像素残差值进行分组的数值范围,则所述至少一个数值范围中上限值的绝对值相同且下限值的绝对值相同的数值范围,可以对应到所述至少一个分组中的同一个分组。
示例性地,假设滑动窗口中的像素残差值记为res,解码器可以基于以下代码确定每一个分组对应的调整值:
其中,{x1,x2,x3…,xN}为用于将所述滑动窗口中的像素残差值划分为至少一个分组的至少一个绝对值范围的正整数,{AVG_OFFSET_1,AVG_OFFSET_2,AVG_OFFSET_3,…,AVG_OFFSET_N}表示计算得到第1个分组内的像素残差值的平均值至第N个分组内的像素残差值的平均值。
在一些实施例中,将所述至少一个像素残差值的平均值或将对所述至少一个像素残差值的平均值进行取整运算得到的数值,确定为所述调整值。
示例性地,若所述至少一个像素残差值的平均值为整数,则解码器将所述至少一个像素残差值的平均值确定为所述调整值。
示例性地,若所述至少一个像素残差值的平均值不为整数,则解码器将对所述至少一个像素残差值的平均值进行取整运算得到的数值,确定为所述调整值。例如,解码器将对所述至少一个像素残差值的平均值进行向上取整运算得到的数值,确定为所述调整值。再如,解码器将对所述至少一个像素残差值的平均值进行向下取整运算得到的数值,确定为所述调整值。
在一些实施例中,基于所述至少一个像素残差值的平均值和预设的第一数值范围,确定所述调整值。
示例性地,解码器通过比较所述至少一个像素残差值的平均值和预设的第一数值范围,确定是否将所述平均值确定为所述调整值。例如,若所述平均值位于所述第一数值范围内,则解码器将所述平均值确定为所述调整值。若所述平均值位于所述第一数值范围外,则解码器可以将所述第一数值范围的上限值或下限值确定所述调整值。
在一些实施例中,若所述平均值位于所述第一数值范围内,则将所述平均值或对所述平均值进行取整运算得到的数值,确定为所述调整值。若所述平均值大于所述第一数值范围的上限值,则将所述上限值确定为所述调整值。若所述平均值小于所述第一数值范围的下限值,则将所述下限值确定为所述调整值。
当然,在其他可替代实施例中,若所述平均值位于所述第一数值范围外,则解码器可以通过其他方式确定所述调整值。本申请对此不作具体限定。例如,若所述平均值位于所述第一数值范围外,则解码器可以将预定义的数值确定所述调整值。
在一些实施例中,所述S410可包括:
采用以下中的任一项对所述重建块进行滤波,得到所述第一滤波块:
去块滤波器、样点自适应补偿滤波器、自适应修正滤波器、基于神经网络的环路滤波器。
示例性地,解码器利用基于神经网络的环路滤波器对当前块的重建块进行滤波,得到第一滤波块;接着基于所述第一滤波块和所述重建块,确定第一残差块;对所述第一残差块的直流分量进行调整,得到第二残差块;然后基于所述第二残差块和所述重建块,确定所述当前块的最终重建块。
下面结合实施例1对本申请提供的解码方法进行示例性说明。
实施例1:
本实施例中,环路滤波单元作用在解码器中,即解码器先通过对神经网络环路滤波器对当前块的重建块进行滤波,并输出第一滤波块,接着利用第一滤波块减去重建块以得到第一残差块,并对第一残差块进行修正得到第二参考块,然后,解码器将第二残差块和重建块进行相加得到最终重建块,由此,通过对第一残差块修正的方式,实现了对神经网络环路滤波器的滤波性能的优化,进而能够提升解码器的解码性能。
解码器的具体流程如下:
a)、解码器进入环路滤波单元时,按照规定的滤波器顺序进行处理。当进入ROA单元时,先根据解码码流得到的序列级别的标志符(即上文涉及的第二标识,将其记为roa_enable_flag),判断当前序列下是否可以使用ROA单元。若roa_enable_flag为“0”,则当前序列不使用ROA单元。若roa_enable_flag为“1”,则解码器根据解码码流得到的图像级别的标志符(即上文涉及的第一标识,将其记为picture_roa_enable_flag)。若picture_roa_enable_flag为“0”,则对当前图像中的图像块不使用ROA单元。若picture_roa_enable_flag为“1”,对当前图像中的图像块尝试进行ROA单元处理,即跳至b)。
b)、对于当前图像中的当前块,首先将当前块的重建块输入NNLF并输出第一滤波块;然后跳至c)。
c)、解码器得到第一滤波块后,可利用第一滤波块减去重建块以得到第一残差块,并对第一残差块进行修正得到第二参考块,然后,解码器将第二残差块和重建块进行相加得到最终重建块。
下面对残差调整的具体实现方式进行示例性说明。
图11是本申请提供的确定第一残差块的原理的示例。
如图11所示,解码器可以利用滤波器输出的第一滤波块(cnn)减去输入的重建块(rec),即可得到第一残差块(res)。
值得注意的是,本申请对用于对重建块进行滤波的滤波器不作具体限定。本申请旨在对滤波器输出的第一滤波块减去滤波器的输入得到的第一残差块进行修正。理论上,针对任何滤波工具,只要能够计算得到第一滤波块(filtered)相对重建块(rec)的第一残差块(res),均可使用本申请的方案对第一残差块进行调整。例如,可针对DB、SAO、或ALF的输出第一滤波块减去其输入得到的第一残差块进行调整。
在一种实现方式中,解码器可以以块为粒度直接对该第一残差块中的像素残差值进行修正。
例如,解码器可以通过遍历待修正的残差图像的所有残差块(例如CTU级)的方式逐块修正残差值,最终得到修正后的残差图像。
举例来说,假设待修正的残差图像包括如图12所示的CTU1~CTU8,解码器可以对CTU1~CTU8中的每一个CTU来进行像素残差值的修正,即可以通过遍历CTU1~CTU8,逐CTU的修正CTU中的像素残差值,最终得到修正后的残差图像。
由于第一残差块具有不可解释性,因此,本申请通过采取将第一残差块的直流分量(DC)调整为零的方式来修正第一残差块。例如为了将其直流分量(Direct Current,DC)调整为零,需要将该第一残差块中的像素残差值的平均值调整为零。例如,对第一残差块中全部像素残差值求和并取平均,即可得到平均值。然后,利用该第一残差块中的每一个像素残差值减去该平均值,即可得到修正后的第二残差块,其直流分量为零(或近似于零)。例如,对于如图13所示的第一残差块,计算可得第一残差块中像素残差值的平均值为2.375,取整后为2;然后针对该第一残差块,利用该第一残差块中的每一个像素残差值减去该平均值,即可得到如图14所示的修正后的第二残差块。
当然,在其他可替代实施例中,解码器也可以以比CTU更小或更大的图像块进行残差调整。例如,如图15所示,将CTU做进一步2x2的划分处理,得到4个子图像块,然后逐个子图像块的修正子图像块中的像素残差值。
在另一种实现方式中,解码器可以以滑动窗口为粒度对图像中的像素残差值进行修正。
例如,解码器可以在待修正的残差图像中通过移动滑动窗口的方式,修正滑动窗口内的像素残差值,最终得到一张修正后的残差图像。待修正的残差图像可以是当前图像的滤波图像减去当前图像的重建图像得到的图像。
举例来说,假设待修正的残差图像为如图16所示的8个CTU,滑动窗口为1.5CTU×1.5CTU,解码器可以对滑动窗口中的像素残差值来进行修正,即可以按照预定义的滑动步长通过移动滑动窗口的方式,对待修正的残差图像中的像素残差值进行修正,最终得到一张修正后的残差图像。
当然,解码器不管是以块为粒度进行像素残差值的调整,还是以滑动窗口为粒度进行像素残差值的调整,在其他可替代实施例中,解码器也可以对第一残差块或滑动窗口中部分像素残差值(例如不为0的像素残差值)求和并取平均,即可得到部分像素残差值的平均值,这种情况下,解码器对该部分像素残差值进行调整。甚至,解码器计算得到第一残差块或滑动窗口中全部像素残差值(或者部分像素残差值)的平均值后,还可以确定是否采用该平均值进行残差值的调整。例如,若该平均值位于预定义的数值范围内,则采用该平均值进行残差值的调整;若该平均值小于预定义的数值范围的下限值,则采用该下限值进行残差值的调整;若该平均值大于预定义的数值范围的上限值,则采用该上限值进行残差值的调整。
图17是本申请提供的编码方法500的示意性流程图。
应理解,该编码方法500可由编码器执行。例如应用于图1所示的编码框架100。为便于描述,下面以编码器为例进行说明。
如图17所示,所述编码方法500可包括:
S510,对当前块的重建块进行滤波,得到第一滤波块;
S520,基于所述第一滤波块和所述重建块,确定第一残差块;
S530,对所述第一残差块的直流分量进行调整,得到第二残差块;
S540,基于所述第二残差块和所述重建块,确定第二滤波块;
S550,将所述第一滤波块所属的第一滤波图像和所述第二滤波块所属的第二滤波图像中的率失真代价最小的滤波图像,确定为所述当前块所属的当前图像的重建图像。
在一些实施例中,所述方法500还可包括:
编码第一标识;
其中,所述第一滤波图像的率失真代价小于或等于所述第二滤波图像的率失真代价时,所述第一标识指示对与所述当前块所属的当前图像对应的滤波图像不进行调整;所述第一滤波图像的率失真代价大于所述第二滤波图像的率失真代价时,所述第一标识指示对与所述当前图像对应的滤波图像进行调整。
在一些实施例中,所述方法500还可包括:
编码第二标识;
其中,所述第二标识指示对与所述当前图像所属的图像序列中的图像对应的滤波图像进行调整或不进行调整。
在一些实施例中,所述S530可包括:
基于所述第一残差块中至少一个像素残差值,确定调整值;
利用所述至少一个像素残差值中的像素残差值减去所述调整值,得到所述第二残差块。
在一些实施例中,所述至少一个像素残差值包括所述第一残差块中的全部像素残差值。
在一些实施例中,所述至少一个像素残差值包括所述第一残差块中非零的像素残差值,或所述至少一个像素残差值包括按照预定义的至少一个数值范围将所述第一残差块中的像素残差值划分为至少一个分组后每一个分组内的像素残差值。
在一些实施例中,所述S530可包括:
基于所述第一残差块和至少一个残差块,确定第一残差图像;
其中,所述至少一个残差块包括:基于对第一块进行滤波后得到的滤波块和所述第一块的重建块所确定的残差块,所述第一块为所述当前块所属的当前图像中的图像块;
基于所述第一残差图像中滑动窗口中的至少一个像素残差值,确定调整值;
利用所述至少一个像素残差值中的像素残差值减去所述调整值,得到包括所述第二残差块的残差图像。
在一些实施例中,所述至少一个像素残差值包括所述滑动窗口内的全部像素残差值。
在一些实施例中,所述至少一个像素残差值包括所述滑动窗口中非零的像素残差值,或所述至少一个像素残差值包括按照预定义的至少一个数值范围将所述滑动窗口中的像素残差值划分为至少一个分组后每一个分组内的像素残差值。
在一些实施例中,将所述至少一个像素残差值的平均值或将对所述至少一个像素残差值的平均值进行取整运算得到的数值,确定为所述调整值。
在一些实施例中,基于所述至少一个像素残差值的平均值和预设的第一数值范围,确定所述调整值。
在一些实施例中,若所述平均值位于所述第一数值范围内,则将所述平均值或对所述平均值进行取整运算得到的数值,确定为所述调整值;若所述平均值大于所述第一数值范围的上限值,则将所述上限值确定为所述调整值;若所述平均值小于所述第一数值范围的下限值,则将所述下限值确定为所述调整值。
在一些实施例中,所述S510可包括:
采用以下中的任一项对所述重建块进行滤波,得到所述第一滤波块:
去块滤波器、样点自适应补偿滤波器、自适应修正滤波器、基于神经网络的环路滤波器。
应当理解,编码方法可以理解为解码方法的逆过程,因此,所述编码方法500的具体方案可参见解码方法400的相关内容,为便于描述,本申请对此不再赘述。
下面结合实施例2对本申请提供的编码方法进行示例性说明。
实施例2:
本实施例中,环路滤波单元作用在编码器中,即编码器先通过对神经网络环路滤波器对当前块的重建块进行滤波,并输出第一滤波块,接着利用第一滤波块减去重建块以得到第一残差块,并对第一残差块进行修正得到第二参考块,然后,编码器将第二残差块和重建块进行相加得到最终重建块,由此,通过对第一残差块修正的方式,实现了对神经网络环路滤波器的滤波性能的优化,进而能够提升编码器的解码性能。
编码器的具体流程如下:
a)、编码器进入环路滤波单元时,按照规定的滤波器顺序进行处理,当进入ROA单元时,先根据序列级别的标志符(即上文涉及的第二标识,将其记为roa_enable_flag),判断当前序列下是否可以使用ROA单元。若roa_enable_flag为“0”,则当前序列不使用ROA单元。若roa_enable_flag为“1”,则对当前序列尝试进行ROA单元处理,即跳至b)。
b)、对于当前图像中的当前块,首先将当前块的重建块输入NNLF并输出第一滤波块;然后跳至c)。
c)、编码器得到第一滤波块后,可利用第一滤波块减去重建块以得到第一残差块,并对第一残差块进行修正得到第二参考块,接着将第二残差块和重建块,确定第二滤波块;然后跳至d)。
d)、编码器将第一滤波块所属的第一滤波图像与当前图像的原始图像相比较,并计算率失真代价(记为CNNLF),将第二滤波块所属的第二滤波图像与当前图像的原始图像相比较并计算率失真代价(记为CROA)。然后,编码器通过比较CROA和CNNLF,确定当前图像的重建图像。
例如,如果CROA<CNNLF,则编码器采用ROA单元输出的第二滤波图像作为最终的重建图像;如果CROA≥CNNLF,则使用NNLF输出的第一滤波图像作为最终的重建图像。然后跳至e)。
e)、将当前图像的图像级别的标志符(即上文涉及的第一标识,将其记为picture_roa_enable_flag)编入码流中,跳至f)。
f)、对于当前图像,若已处理完成,则加载下一帧进行处理,跳转至步骤b)。
下面对残差调整的具体实现方式进行示例性说明。
图11是本申请提供的第一残差块的示例。
如图11所示,编码器可以利用滤波器输出的第一滤波块(cnn)减去输入的重建块(rec),即可得到第一残差块(res)。
值得注意的是,本申请对用于对重建块进行滤波的滤波器不作具体限定。本申请旨在对滤波器输出的第一滤波块减去滤波器的输入得到的第一残差块进行修正。理论上,针对任何滤波工具,只要能够计算得到第一滤波块(filtered)相对重建块(rec)的第一残差块(res),均可使用本申请的方案对第一残差块进行调整。例如,可针对DB、SAO、或ALF的输出第一滤波块减去其输入得到的第一残差块进行调整。
在一种实现方式中,编码器可以以块为粒度直接对该第一残差块中的像素残差值进行修正。
例如,编码器可以通过遍历待修正的残差图像的所有残差块(例如CTU级)的方式逐块修正残差值,最终得到修正后的残差图像。
举例来说,假设待修正的残差图像包括如图12所示的CTU1~CTU8,编码器可以对CTU1~CTU8中的每一个CTU来进行像素残差值的修正,即可以通过遍历CTU1~CTU8,逐CTU的修正CTU中的像素残差值,最终得到修正后的残差图像。
由于第一残差块具有不可解释性,因此,本申请通过采取将第一残差块的直流分量(DC)调整为零的方式来修正第一残差块。例如为了将其直流分量(Direct Current,DC)调整为零,需要将该第一残差块中的像素残差值的平均值调整为零。例如,对第一残差块中全部像素残差值求和并取平均,即可得到平均值。然后,利用该第一残差块中的每一个像素残差值减去该平均值,即可得到修正后的第二残差块,其直流分量为零(或近似于零)。例如,对于如图13所示的第一残差块,计算可得第一残差块中像素残差值的平均值为2.375,取整后为2;然后针对该第一残差块,利用该第一残差块中的每一个像素残差值减去该平均值,即可得到如图14所示的修正后的第二残差块。
当然,在其他可替代实施例中,编码器也可以以比CTU更小或更大的图像块进行残差调整。例如,如图15所示,将CTU做进一步2x2的划分处理,得到4个子图像块,然后逐个子图像块的修正子图像块中的像素残差值。
在另一种实现方式中,编码器可以以滑动窗口为粒度对图像中的像素残差值进行修正。
例如,编码器可以在待修正的残差图像中通过移动滑动窗口的方式,修正滑动窗口内的像素残差值,最终得到一张修正后的残差图像。待修正的残差图像可以是当前图像的滤波图像减去当前图像的重建图像得到的图像。
举例来说,假设待修正的残差图像为如图16所示的8个CTU,滑动窗口为1.5CTU×1.5CTU,编 码器可以对滑动窗口中的像素残差值来进行修正,即可以按照预定义的滑动步长通过移动滑动窗口的方式,对待修正的残差图像中的像素残差值进行修正,最终得到一张修正后的残差图像。
当然,编码器不管是以块为粒度进行像素残差值的调整,还是以滑动窗口为粒度进行像素残差值的调整,在其他可替代实施例中,编码器也可以对第一残差块或滑动窗口中部分像素残差值(例如不为0的像素残差值)求和并取平均,即可得到部分像素残差值的平均值,这种情况下,编码器对该部分像素残差值进行调整。甚至,编码器计算得到第一残差块或滑动窗口中全部像素残差值(或者部分像素残差值)的平均值后,还可以确定是否采用该平均值进行残差值的调整。例如,若该平均值位于预定义的数值范围内,则采用该平均值进行残差值的调整;若该平均值小于预定义的数值范围的下限值,则采用该下限值进行残差值的调整;若该平均值大于预定义的数值范围的上限值,则采用该上限值进行残差值的调整。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上文涉及的实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上文涉及的具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。还应理解,在本申请的各种方法实施例中,上文涉及的各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。另外,本申请实施例中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。具体地,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中字符“/”,一般表示前后关联对象是一种“或”的关系。
上文详细描述了本申请的方法实施例,下文结合图18至图20详细描述本申请的装置实施例。
图18是本申请实施例的解码器600的示意性框图。
如图18所示,所述解码器600可包括:
滤波单元610,用于对当前块的重建块进行滤波,得到第一滤波块;
第一确定单元620,用于基于所述第一滤波块和所述重建块,确定第一残差块;
调整单元630,用于对所述第一残差块的直流分量进行调整,得到第二残差块;
第二确定单元640,用于基于所述第二残差块和所述重建块,确定所述当前块的最终重建块。
在一些实施例中,所述第一确定单元620具体用于:
解码码流,确定第一标识;
若所述第一标识指示对与所述当前块所属的当前图像对应的滤波图像进行调整,则基于所述第一滤波块和所述重建块,确定第一残差块。
在一些实施例中,所述第一确定单元620具体用于:
解码所述码流,确定第二标识;
若所述第二标识指示对与所述当前图像所属的图像序列中的图像对应的滤波图像进行调整,则解码所述码流,确定所述第一标识。
在一些实施例中,所述调整单元630具体用于:
基于所述第一残差块中至少一个像素残差值,确定调整值;
利用所述至少一个像素残差值中的像素残差值减去所述调整值,得到所述第二残差块。
在一些实施例中,所述至少一个像素残差值包括所述第一残差块中的全部像素残差值。
在一些实施例中,所述至少一个像素残差值包括所述第一残差块中非零的像素残差值,或所述至少一个像素残差值包括按照预定义的至少一个数值范围将所述第一残差块中的像素残差值划分为至少一个分组后每一个分组内的像素残差值。
在一些实施例中,所述调整单元630具体用于:
基于所述第一残差块和至少一个残差块,确定第一残差图像;
其中,所述至少一个残差块包括:基于对第一块进行滤波后得到的滤波块和所述第一块的重建块所确定的残差块,所述第一块为所述当前块所属的当前图像中的图像块;
基于所述第一残差图像中滑动窗口中的至少一个像素残差值,确定调整值;
利用所述至少一个像素残差值中的像素残差值减去所述调整值,得到包括所述第二残差块的残差图 像。
在一些实施例中,所述至少一个像素残差值包括所述滑动窗口内的全部像素残差值。
在一些实施例中,所述至少一个像素残差值包括所述滑动窗口中非零的像素残差值,或所述至少一个像素残差值包括按照预定义的至少一个数值范围将所述滑动窗口中的像素残差值划分为至少一个分组后每一个分组内的像素残差值。
在一些实施例中,所述调整单元630具体用于:
将所述至少一个像素残差值的平均值或将对所述至少一个像素残差值的平均值进行取整运算得到的数值,确定为所述调整值。
在一些实施例中,所述调整单元630具体用于:
基于所述至少一个像素残差值的平均值和预设的第一数值范围,确定所述调整值。
在一些实施例中,所述调整单元630具体用于:
若所述平均值位于所述第一数值范围内,则将所述平均值或对所述平均值进行取整运算得到的数值,确定为所述调整值;
若所述平均值大于所述第一数值范围的上限值,则将所述上限值确定为所述调整值;
若所述平均值小于所述第一数值范围的下限值,则将所述下限值确定为所述调整值。
在一些实施例中,所述滤波单元610具体用于:
采用以下中的任一项对所述重建块进行滤波,得到所述第一滤波块:
去块滤波器、样点自适应补偿滤波器、自适应修正滤波器、基于神经网络的环路滤波器。
图19是本申请实施例的编码器700的示意性框图。
如图19所示,所述编码器700可包括:
滤波单元710,用于对当前块的重建块进行滤波,得到第一滤波块;
第一确定单元720,用于基于所述第一滤波块和所述重建块,确定第一残差块;
调整单元730,用于对所述第一残差块的直流分量进行调整,得到第二残差块;
第二确定单元740,用于基于所述第二残差块和所述重建块,确定第二滤波块;
第三确定单元750,用于将所述第一滤波块所属的第一滤波图像和所述第二滤波块所属的第二滤波图像中的率失真代价最小的滤波图像,确定为所述当前块所属的当前图像的重建图像。
在一些实施例中,所述第三确定单元750还用于:
编码第一标识;
其中,所述第一滤波图像的率失真代价小于或等于所述第二滤波图像的率失真代价时,所述第一标识指示对与所述当前块所属的当前图像对应的滤波图像不进行调整;所述第一滤波图像的率失真代价大于所述第二滤波图像的率失真代价时,所述第一标识指示对与所述当前图像对应的滤波图像进行调整。
在一些实施例中,所述第三确定单元750还用于:
编码第二标识;
其中,所述第二标识指示对与所述当前图像所属的图像序列中的图像对应的滤波图像进行调整或不进行调整。
在一些实施例中,所述调整单元730具体用于:
基于所述第一残差块中至少一个像素残差值,确定调整值;
利用所述至少一个像素残差值中的像素残差值减去所述调整值,得到所述第二残差块。
在一些实施例中,所述至少一个像素残差值包括所述第一残差块中的全部像素残差值。
在一些实施例中,所述至少一个像素残差值包括所述第一残差块中非零的像素残差值,或所述至少一个像素残差值包括按照预定义的至少一个数值范围将所述第一残差块中的像素残差值划分为至少一个分组后每一个分组内的像素残差值。
在一些实施例中,所述调整单元730具体用于:
基于所述第一残差块和至少一个残差块,确定第一残差图像;
其中,所述至少一个残差块包括:基于对第一块进行滤波后得到的滤波块和所述第一块的重建块所确定的残差块,所述第一块为所述当前块所属的当前图像中的图像块;
基于所述第一残差图像中滑动窗口中的至少一个像素残差值,确定调整值;
利用所述至少一个像素残差值中的像素残差值减去所述调整值,得到包括所述第二残差块的残差图像。
在一些实施例中,所述至少一个像素残差值包括所述滑动窗口内的全部像素残差值。
在一些实施例中,所述至少一个像素残差值包括所述滑动窗口中非零的像素残差值,或所述至少一 个像素残差值包括按照预定义的至少一个数值范围将所述滑动窗口中的像素残差值划分为至少一个分组后每一个分组内的像素残差值。
在一些实施例中,所述调整单元730具体用于:
将所述至少一个像素残差值的平均值或将对所述至少一个像素残差值的平均值进行取整运算得到的数值,确定为所述调整值。
在一些实施例中,所述调整单元730具体用于:
基于所述至少一个像素残差值的平均值和预设的第一数值范围,确定所述调整值。
在一些实施例中,所述调整单元730具体用于:
若所述平均值位于所述第一数值范围内,则将所述平均值或对所述平均值进行取整运算得到的数值,确定为所述调整值;
若所述平均值大于所述第一数值范围的上限值,则将所述上限值确定为所述调整值;
若所述平均值小于所述第一数值范围的下限值,则将所述下限值确定为所述调整值。
在一些实施例中,所述滤波单元710具体用于:
采用以下中的任一项对所述重建块进行滤波,得到所述第一滤波块:
去块滤波器、样点自适应补偿滤波器、自适应修正滤波器、基于神经网络的环路滤波器。
应当理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图18所示的解码器600可以对应于执行本申请实施例的解码方法400中的相应主体,并且解码器600中的各个单元的前述和其它操作和/或功能分别为了实现解码方法400等各个方法中的相应流程。图19所示的编码器700可以对应于执行本申请实施例的编码方法500中的相应主体,即编码器700中的各个单元的前述和其它操作和/或功能分别为了实现编码方法500等各个方法中的相应流程。
还应理解,本申请实施例涉及的解码器600或编码器700中的各个单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现,甚至,这些功能也可以由一个或多个其它单元协助实现。例如,解码器600或编码器700中的部分或全部合并为一个或若干个另外的单元。再如,解码器600或编码器700中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。再如,该解码器600或编码器700也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括例如中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的通用计算机的通用计算设备上运行能够执行相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造本申请实施例涉及的解码器600或编码器700,以及来实现本申请实施例的编码方法或解码方法。计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于电子设备中,并在其中运行,来实现本申请实施例的相应方法。换言之,上文涉及的单元可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过软硬件结合的形式实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件组合执行完成。可选地,软件可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上文涉及的方法实施例中的步骤。
图20是本申请提供的电子设备800的示意结构图。
如图20所示,该电子设备800至少包括处理器810以及计算机可读存储介质820。其中,处理器810以及计算机可读存储介质820可通过总线或者其它方式连接。计算机可读存储介质820用于存储计算机程序821,计算机程序821包括计算机指令,处理器810用于执行计算机可读存储介质820存储的计算机指令。处理器810是电子设备800的计算核心以及控制核心,其适于实现一条或多条计算机指令,具体适于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。
示例性地,处理器810也可称为中央处理器(Central Processing Unit,CPU)。处理器810可以包括但不限于:通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、分立硬件组件等等。
示例性地,计算机可读存储介质820可以是高速RAM存储器,也可以是非不稳定的存储器(Non-VolatileMemory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器810的计算机可读存储介质。具体而言,计算机可读存储介质820包括但不限于:易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
示例性地,该电子设备800可以是本申请实施例涉及的编码器或编码框架;该计算机可读存储介质820中存储有第一计算机指令;由处理器810加载并执行计算机可读存储介质820中存放的第一计算机指令,以实现本申请提供的编码方法中的相应步骤;换言之,计算机可读存储介质820中的第一计算机指令由处理器810加载并执行相应步骤,为避免重复,此处不再赘述。
示例性地,该电子设备800可以是本申请实施例涉及的解码器或解码框架;该计算机可读存储介质820中存储有第二计算机指令;由处理器810加载并执行计算机可读存储介质820中存放的第二计算机指令,以实现本申请提供的解码方法中的相应步骤;换言之,计算机可读存储介质820中的第二计算机指令由处理器810加载并执行相应步骤,为避免重复,此处不再赘述。
根据本申请的另一方面,本申请还提供了一种编解码系统,包括上文涉及的编码器和解码器。
根据本申请的另一方面,本申请还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是电子设备800中的记忆设备,用于存放程序和数据。例如,计算机可读存储介质820。可以理解的是,此处的计算机可读存储介质820既可以包括电子设备800中的内置存储介质,当然也可以包括电子设备800所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了电子设备800的操作系统。并且,在该存储空间中还存放了适于被处理器810加载并执行的一条或多条的计算机指令,这些计算机指令可以是一个或多个的计算机程序821(包括程序代码)。
根据本申请的另一方面,本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。例如,计算机程序821。此时,数据处理设备800可以是计算机,处理器810从计算机可读存储介质820读取该计算机指令,处理器810执行该计算机指令,使得该计算机执行上文涉及的各种可选方式中提供的编码方法或解码方法。换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地运行本申请实施例的流程或实现本申请实施例的功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质进行传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。
根据本申请的另一方面,本申请还提供了一种码流,该码流可以是利用本申请提供的解码方法进行解码的码流或利用本申请提供的编码方法生成的码流。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元以及流程步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
最后需要说明的是,以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (32)

  1. 一种解码方法,其特征在于,包括:
    对当前块的重建块进行滤波,得到第一滤波块;
    基于所述第一滤波块和所述重建块,确定第一残差块;
    对所述第一残差块的直流分量进行调整,得到第二残差块;
    基于所述第二残差块和所述重建块,确定所述当前块的最终重建块。
  2. 根据权利要求1所述的方法,其特征在于,所述基于所述第一滤波块和所述重建块,确定第一残差块,包括:
    解码码流,确定第一标识;
    若所述第一标识指示对与所述当前块所属的当前图像对应的滤波图像进行调整,则基于所述第一滤波块和所述重建块,确定第一残差块。
  3. 根据权利要求2所述的方法,其特征在于,所述解码码流,确定第一标识,包括:
    解码所述码流,确定第二标识;
    若所述第二标识指示对与所述当前图像所属的图像序列中的图像对应的滤波图像进行调整,则解码所述码流,确定所述第一标识。
  4. 根据权利要求1至3中任一项所述的方法,其特征在于,所述对所述第一残差块的直流分量进行调整,得到第二残差块,包括:
    基于所述第一残差块中至少一个像素残差值,确定调整值;
    利用所述至少一个像素残差值中的像素残差值减去所述调整值,得到所述第二残差块。
  5. 根据权利要求4所述的方法,其特征在于,所述至少一个像素残差值包括所述第一残差块中的全部像素残差值。
  6. 根据权利要求4所述的方法,其特征在于,所述至少一个像素残差值包括所述第一残差块中非零的像素残差值,或所述至少一个像素残差值包括按照预定义的至少一个数值范围将所述第一残差块中的像素残差值划分为至少一个分组后每一个分组内的像素残差值。
  7. 根据权利要求1至3中任一项所述的方法,其特征在于,所述对所述第一残差块的直流分量进行调整,得到第二残差块,包括:
    基于所述第一残差块和至少一个残差块,确定第一残差图像;
    其中,所述至少一个残差块包括:基于对第一块进行滤波后得到的滤波块和所述第一块的重建块所确定的残差块,所述第一块为所述当前块所属的当前图像中的图像块;
    基于所述第一残差图像中滑动窗口中的至少一个像素残差值,确定调整值;
    利用所述至少一个像素残差值中的像素残差值减去所述调整值,得到包括所述第二残差块的残差图像。
  8. 根据权利要求7所述的方法,其特征在于,所述至少一个像素残差值包括所述滑动窗口内的全部像素残差值。
  9. 根据权利要求7所述的方法,其特征在于,所述至少一个像素残差值包括所述滑动窗口中非零的像素残差值,或所述至少一个像素残差值包括按照预定义的至少一个数值范围将所述滑动窗口中的像素残差值划分为至少一个分组后每一个分组内的像素残差值。
  10. 根据权利要求4至9中任一项所述的方法,其特征在于,所述确定调整值,包括:
    将所述至少一个像素残差值的平均值或将对所述至少一个像素残差值的平均值进行取整运算得到的数值,确定为所述调整值。
  11. 根据权利要求4至9中任一项所述的方法,其特征在于,所述确定调整值,包括:
    基于所述至少一个像素残差值的平均值和预设的第一数值范围,确定所述调整值。
  12. 根据权利要求11所述的方法,其特征在于,所述基于所述至少一个像素残差值的平均值和预设的第一数值范围,确定所述调整值,包括:
    若所述平均值位于所述第一数值范围内,则将所述平均值或对所述平均值进行取整运算得到的数值,确定为所述调整值;
    若所述平均值大于所述第一数值范围的上限值,则将所述上限值确定为所述调整值;
    若所述平均值小于所述第一数值范围的下限值,则将所述下限值确定为所述调整值。
  13. 根据权利要求1至12中任一项所述的方法,其特征在于,所述对当前块的重建块进行滤波,得到第一滤波块,包括:
    采用以下中的任一项对所述重建块进行滤波,得到所述第一滤波块:
    去块滤波器、样点自适应补偿滤波器、自适应修正滤波器、基于神经网络的环路滤波器。
  14. 一种编码方法,其特征在于,包括:
    对当前块的重建块进行滤波,得到第一滤波块;
    基于所述第一滤波块和所述重建块,确定第一残差块;
    对所述第一残差块的直流分量进行调整,得到第二残差块;
    基于所述第二残差块和所述重建块,确定第二滤波块;
    将所述第一滤波块所属的第一滤波图像和所述第二滤波块所属的第二滤波图像中的率失真代价最小的滤波图像,确定为所述当前块所属的当前图像的重建图像。
  15. 根据权利要求14所述的方法,其特征在于,所述方法还包括:
    编码第一标识;
    其中,所述第一滤波图像的率失真代价小于或等于所述第二滤波图像的率失真代价时,所述第一标识指示对与所述当前块所属的当前图像对应的滤波图像不进行调整;所述第一滤波图像的率失真代价大于所述第二滤波图像的率失真代价时,所述第一标识指示对与所述当前图像对应的滤波图像进行调整。
  16. 根据权利要求14或15所述的方法,其特征在于,所述方法还包括:
    编码第二标识;
    其中,所述第二标识指示对与所述当前图像所属的图像序列中的图像对应的滤波图像进行调整或不进行调整。
  17. 根据权利要求14至16中任一项所述的方法,其特征在于,所述对所述第一残差块的直流分量进行调整,得到第二残差块,包括:
    基于所述第一残差块中至少一个像素残差值,确定调整值;
    利用所述至少一个像素残差值中的像素残差值减去所述调整值,得到所述第二残差块。
  18. 根据权利要求17所述的方法,其特征在于,所述至少一个像素残差值包括所述第一残差块中的全部像素残差值。
  19. 根据权利要求17所述的方法,其特征在于,所述至少一个像素残差值包括所述第一残差块中非零的像素残差值,或所述至少一个像素残差值包括按照预定义的至少一个数值范围将所述第一残差块中的像素残差值划分为至少一个分组后每一个分组内的像素残差值。
  20. 根据权利要求14至16中任一项所述的方法,其特征在于,所述对所述第一残差块的直流分量进行调整,得到第二残差块,包括:
    基于所述第一残差块和至少一个残差块,确定第一残差图像;
    其中,所述至少一个残差块包括:基于对第一块进行滤波后得到的滤波块和所述第一块的重建块所确定的残差块,所述第一块为所述当前块所属的当前图像中的图像块;
    基于所述第一残差图像中滑动窗口中的至少一个像素残差值,确定调整值;
    利用所述至少一个像素残差值中的像素残差值减去所述调整值,得到包括所述第二残差块的残差图像。
  21. 根据权利要求20所述的方法,其特征在于,所述至少一个像素残差值包括所述滑动窗口内的全部像素残差值。
  22. 根据权利要求20所述的方法,其特征在于,所述至少一个像素残差值包括所述滑动窗口中非零的像素残差值,或所述至少一个像素残差值包括按照预定义的至少一个数值范围将所述滑动窗口中的像素残差值划分为至少一个分组后每一个分组内的像素残差值。
  23. 根据权利要求17至22中任一项所述的方法,其特征在于,所述确定调整值,包括:
    将所述至少一个像素残差值的平均值或将对所述至少一个像素残差值的平均值进行取整运算得到的数值,确定为所述调整值。
  24. 根据权利要求17至22中任一项所述的方法,其特征在于,所述确定调整值,包括:
    基于所述至少一个像素残差值的平均值和预设的第一数值范围,确定所述调整值。
  25. 根据权利要求24所述的方法,其特征在于,所述基于所述至少一个像素残差值的平均值和预设的第一数值范围,确定所述调整值,包括:
    若所述平均值位于所述第一数值范围内,则将所述平均值或对所述平均值进行取整运算得到的数值,确定为所述调整值;
    若所述平均值大于所述第一数值范围的上限值,则将所述上限值确定为所述调整值;
    若所述平均值小于所述第一数值范围的下限值,则将所述下限值确定为所述调整值。
  26. 根据权利要求14至25中任一项所述的方法,其特征在于,所述对当前块的重建块进行滤波, 得到第一滤波块,包括:
    采用以下中的任一项对所述重建块进行滤波,得到所述第一滤波块:
    去块滤波器、样点自适应补偿滤波器、自适应修正滤波器、基于神经网络的环路滤波器。
  27. 一种解码器,其特征在于,包括:
    滤波单元,用于对当前块的重建块进行滤波,得到第一滤波块;
    第一确定单元,用于基于所述第一滤波块和所述重建块,确定第一残差块;
    调整单元,用于对所述第一残差块的直流分量进行调整,得到第二残差块;
    第二确定单元,用于基于所述第二残差块和所述重建块,确定所述当前块的最终重建块。
  28. 一种编码器,其特征在于,包括:
    滤波单元,用于对当前块的重建块进行滤波,得到第一滤波块;
    第一确定单元,用于基于所述第一滤波块和所述重建块,确定第一残差块;
    调整单元,用于对所述第一残差块的直流分量进行调整,得到第二残差块;
    第二确定单元,用于基于所述第二残差块和所述重建块,确定第二滤波块;
    第三确定单元,用于将所述第一滤波块所属的第一滤波图像和所述第二滤波块所属的第二滤波图像中的率失真代价最小的滤波图像,确定为所述当前块所属的当前图像的重建图像。
  29. 一种电子设备,其特征在于,包括:
    处理器,适于执行计算机程序;
    计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被所述处理器执行时,实现根据权利要求1至13中任一项所述的方法或根据权利要求14至26中任一项所述的方法。
  30. 一种计算机可读存储介质,其特征在于,用于存储计算机程序,当所述计算机程序在计算机上运行时,使得计算机执行根据权利要求1至13中任一项所述的方法或根据权利要求14至26中任一项所述的方法。
  31. 一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现根据权利要求1至13中任一项所述的方法或根据权利要求14至26中任一项所述的方法。
  32. 一种码流,其特征在于,所述码流为根据权利要求1至13中任一项所述的方法解码的码流,或所述码流为根据权利要求14至26中任一项所述的方法生成的码流。
PCT/CN2023/100814 2023-06-16 2023-06-16 解码方法、编码方法、解码器以及编码器 Ceased WO2024254872A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202380099322.3A CN121359452A (zh) 2023-06-16 2023-06-16 解码方法、编码方法、解码器以及编码器
PCT/CN2023/100814 WO2024254872A1 (zh) 2023-06-16 2023-06-16 解码方法、编码方法、解码器以及编码器
US19/418,613 US20260107023A1 (en) 2023-06-16 2025-12-12 Decoding method, encoding method, decoder, and encoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2023/100814 WO2024254872A1 (zh) 2023-06-16 2023-06-16 解码方法、编码方法、解码器以及编码器

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US19/418,613 Continuation US20260107023A1 (en) 2023-06-16 2025-12-12 Decoding method, encoding method, decoder, and encoder

Publications (1)

Publication Number Publication Date
WO2024254872A1 true WO2024254872A1 (zh) 2024-12-19

Family

ID=93851135

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/100814 Ceased WO2024254872A1 (zh) 2023-06-16 2023-06-16 解码方法、编码方法、解码器以及编码器

Country Status (3)

Country Link
US (1) US20260107023A1 (zh)
CN (1) CN121359452A (zh)
WO (1) WO2024254872A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017129023A1 (zh) * 2016-01-25 2017-08-03 华为技术有限公司 解码方法、编码方法、解码设备和编码设备
CN111711824A (zh) * 2020-06-29 2020-09-25 腾讯科技(深圳)有限公司 视频编解码中的环路滤波方法、装置、设备及存储介质
US20210006836A1 (en) * 2018-03-30 2021-01-07 Sony Corporation Image encoding apparatus, image encoding method, image decoding apparatus, and image decoding method
CN113497941A (zh) * 2021-06-30 2021-10-12 浙江大华技术股份有限公司 图像滤波方法、编码方法及相关设备
WO2022077490A1 (zh) * 2020-10-16 2022-04-21 Oppo广东移动通信有限公司 一种帧内预测方法、编码器、解码器及存储介质
WO2023039859A1 (zh) * 2021-09-17 2023-03-23 Oppo广东移动通信有限公司 视频编解码方法、设备、系统、及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017129023A1 (zh) * 2016-01-25 2017-08-03 华为技术有限公司 解码方法、编码方法、解码设备和编码设备
US20210006836A1 (en) * 2018-03-30 2021-01-07 Sony Corporation Image encoding apparatus, image encoding method, image decoding apparatus, and image decoding method
CN111711824A (zh) * 2020-06-29 2020-09-25 腾讯科技(深圳)有限公司 视频编解码中的环路滤波方法、装置、设备及存储介质
WO2022077490A1 (zh) * 2020-10-16 2022-04-21 Oppo广东移动通信有限公司 一种帧内预测方法、编码器、解码器及存储介质
CN113497941A (zh) * 2021-06-30 2021-10-12 浙江大华技术股份有限公司 图像滤波方法、编码方法及相关设备
WO2023039859A1 (zh) * 2021-09-17 2023-03-23 Oppo广东移动通信有限公司 视频编解码方法、设备、系统、及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Z. DAI (OPPO), Y. YU (OPPO), H. YU (OPPO), D. WANG (OPPO): "EE1-1.2: On adjustment of residual for NNLF", 30. JVET MEETING; 20230421 - 20230428; ANTALYA; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), 14 April 2023 (2023-04-14), XP030308657 *

Also Published As

Publication number Publication date
CN121359452A (zh) 2026-01-16
US20260107023A1 (en) 2026-04-16

Similar Documents

Publication Publication Date Title
US20250317604A1 (en) Multiple neural network models for filtering during video coding
TW201924336A (zh) 利用內容適應性空間變化量化之視訊寫碼
US12132905B2 (en) Decoding method and coding method for unmatched pixel, decoder, and encoder
WO2023138562A1 (zh) 图像解码方法、图像编码方法及相应的装置
WO2024212735A1 (zh) 图像滤波方法、装置、设备及存储介质
WO2023184248A1 (zh) 视频编解码方法、装置、设备、系统及存储介质
WO2023092404A1 (zh) 视频编解码方法、设备、系统、及存储介质
WO2021164014A1 (zh) 视频编码方法及装置
US20240340452A1 (en) Encoding mehtod for video data, decoding method for video data, computing device, and medium
WO2024119821A1 (zh) 视频数据处理方法、装置、存储介质、设备和程序产品
WO2024216632A1 (zh) 视频编解码方法、装置、设备、系统、及存储介质
WO2024254872A1 (zh) 解码方法、编码方法、解码器以及编码器
WO2023184250A1 (zh) 视频编解码方法、装置、设备、系统及存储介质
WO2023220946A1 (zh) 视频编解码方法、装置、设备、系统及存储介质
WO2024050723A1 (zh) 一种图像预测方法、装置及计算机可读存储介质
CN117082239A (zh) 视频编解码方法与系统、及视频编码器与视频解码器
WO2024239260A1 (zh) 解码方法、编码方法、训练方法、解码器以及编码器
WO2025097878A1 (zh) 滤波方法、装置、电子设备以及存储介质
US20260019633A1 (en) Video encoding method and apparatus, video decoding method and apparatus, devices, system, and storage medium
WO2025098301A1 (zh) 滤波方法、装置、电子设备以及存储介质
WO2025007253A1 (zh) 解码方法、编码方法、解码器以及编码器
WO2025010571A1 (zh) 编码方法、编码器以及电子设备
WO2025000289A1 (zh) 解码方法、编码方法、解码器以及编码器
HK40115177A (zh) 解码视频数据的方法、设备和介质
WO2025073085A1 (zh) 编解码方法、编解码器以及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23941105

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE