WO2025007253A1 - 解码方法、编码方法、解码器以及编码器 - Google Patents
解码方法、编码方法、解码器以及编码器 Download PDFInfo
- Publication number
- WO2025007253A1 WO2025007253A1 PCT/CN2023/105582 CN2023105582W WO2025007253A1 WO 2025007253 A1 WO2025007253 A1 WO 2025007253A1 CN 2023105582 W CN2023105582 W CN 2023105582W WO 2025007253 A1 WO2025007253 A1 WO 2025007253A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- block vector
- vector information
- historical
- current
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
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.
- the present application provides a decoding method, an encoding method, a decoder and an encoder, which can improve the decoding performance of an IBC block and improve the decoding performance of a decoder.
- the present application provides a decoding method, comprising:
- the first historical block vector information list is used to determine a candidate block vector information list used by an IBC block, where the IBC block is a block decoded after the current block using the IBC mode.
- the present application provides an encoding method, comprising:
- the first historical block vector information list is used to determine a candidate block vector information list used by an IBC block, where the IBC block is a block encoded using the IBC mode after the current block.
- the present application provides a decoder, comprising:
- a first determining unit configured to determine block vector information used by a current block based on a first prediction mode different from an intra block copy (IBC) mode;
- IBC intra block copy
- a second determining unit configured to determine first historical block vector information based on the block vector information used by the current block
- an updating unit configured to update a first history block vector information list based on the first history block vector information
- the first historical block vector information list is used to determine a candidate block vector information list used by an IBC block, where the IBC block is a block decoded after the current block using the IBC mode.
- an encoder comprising:
- a first determining unit configured to determine block vector information used by a current block based on a first prediction mode different from an intra block copy (IBC) mode;
- IBC intra block copy
- a second determining unit configured to determine first historical block vector information based on the block vector information used by the current block
- an updating unit configured to update a first history block vector information list based on the first history block vector information
- the first historical block vector information list is used to determine a candidate block vector information list used by an IBC block, where the IBC block is a block encoded using the IBC mode after the current block.
- 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 historical block vector information list used to determine the candidate block vector information list is updated based on a first prediction mode different from the IBC mode. Since the candidate block vector information list is a list used by the IBC block decoded using the IBC mode after the current block, updating the first historical block vector information list using the first prediction mode is equivalent to enriching the candidate block vector information of the IBC block using the first prediction mode, which can improve the decoding performance of the IBC block and improve the decoding performance of the decoder.
- FIG1 is a schematic block diagram of a video encoding and decoding system provided in the present application.
- FIG. 2 is a schematic block diagram of a video encoder provided by 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 provided in the present application.
- FIG. 5 is an example of the principle of the IntraTMP mode provided in the present application.
- FIG. 6 is an example of the principle of the template matching process adopted by the IntraTMP mode provided in the present application.
- FIG. 7 is an example of the IntraTMP adaptation technology for camera-captured content provided by the present application.
- FIG. 8 is an example of the construction principle of the candidate block list provided in the present application.
- FIG. 9 is an example of the principle of the IntraTMP fusion prediction technology provided in the present application.
- FIG. 10 is an example of the filtering principle of the filter provided by the present application.
- FIG. 11 is an example of the principle of determining filter coefficients provided by the present application.
- FIG. 12 is an example of a method of dividing regions of a current block provided in the present application.
- FIG13 is a schematic flowchart of the decoding method provided in the present application.
- FIG14 is a schematic flowchart of the encoding method provided in the present application.
- FIG15 is a schematic block diagram of a decoder of the present application.
- FIG16 is a schematic block diagram of an encoder of the present application.
- FIG. 17 is a schematic structural 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 includes but 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 scheme provided in this application can be combined with the following standards: Audio Video Coding Standard (AVS), the second generation AVS standard (AVS2) or the third generation AVS standard (AVS3).
- AVS Audio Video Coding Standard
- AVC H.264/Audio Video Coding
- HEVC High Efficiency Video Coding
- VVC Very-Versatile Video Coding
- the scheme provided in this application can be used for lossy compression of images, and can also be used for lossless compression of images.
- the lossless compression can be visually lossless compression or mathematically lossless compression.
- the video coding standard may adopt a block-based hybrid coding framework.
- the hybrid coding framework includes prediction, transform, quantization, entropy coding, in-loop filter and other modules.
- the prediction module includes intra prediction and/or inter prediction. There is a strong correlation between adjacent pixels in a frame. Intra prediction is used in video coding and decoding technology to eliminate spatial redundancy between adjacent pixels. Intra prediction only refers to the information of the same frame image to predict the pixel information within the current partition block. Since there is a strong similarity between adjacent frames in a video, inter prediction is used in video coding and decoding technology to eliminate temporal redundancy between adjacent frames, thereby improving coding efficiency. Inter prediction includes motion estimation and motion compensation. Inter prediction can refer to image information of different frames and use motion estimation to search for motion vector information that best matches the current partition block.
- 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, which is used to eliminate visual redundancy.
- Entropy coding can eliminate character redundancy based on the current context model and the probability information of the binary code stream.
- the basic process of the video encoder is as follows:
- the encoder first divides a frame of image into blocks; then predicts the current block (current block) in the current image to obtain the predicted block of the current block; then subtracts the predicted block from the original block of the current block to obtain the residual block; transforms and quantizes the residual block to obtain a quantization coefficient matrix; then entropy codes the quantization coefficient matrix to obtain the output bit stream.
- the basic process of the video decoder is as follows:
- the decoder predicts the current block to obtain the prediction block of the current block, and on the other hand, parses the bitstream to obtain the quantization coefficient matrix, dequantizes and inversely transforms the quantization coefficient matrix to obtain the residual block; then the prediction block and the residual block are added to obtain the reconstructed block.
- the reconstructed blocks form a reconstructed image, and the reconstructed image is loop-filtered based on the image or block to obtain the decoded image.
- the current block can be the current codec unit (CU) or the current prediction unit (PU), etc.
- the encoder also needs similar operations as the decoder to obtain a decoded image.
- the decoded image can provide a reference frame for inter prediction for subsequent frames.
- the block division information, prediction, transformation, quantization, entropy coding, loop filtering and other mode information or parameter information determined by the encoder need to be written into the bitstream if necessary.
- the decoder determines the same block division information, prediction, transformation, quantization, entropy coding, loop filtering and other mode information or parameter information as the encoder by parsing and 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 decoded image obtained by the encoder is also usually called a reconstructed image.
- the codec can divide the current block into prediction units during prediction, and can divide the current block into transformation units during transformation.
- the division of prediction units and transformation units can be different.
- a and/or B in this article is only a way to describe the association relationship of associated objects, indicating that three relationships may exist.
- a and/or B can mean: A exists alone, A and B exist at the same time, and B exists alone.
- the term "at least one" is only a way to describe the combination relationship of listed objects, indicating that one or more items may exist.
- at least one of the following: A, B, C can mean the following combinations: A exists alone, B exists alone, C exists alone, A and B exist at the same time, A and C exist at the same time, B and C exist at the same time, and A, B, and C exist at the same time.
- the term “multiple” means two or more.
- the character "/" generally indicates that the objects associated before and after are in an "or” relationship.
- the term “corresponding” may indicate that there is a direct or indirect correspondence between the two, or that there is an association relationship between the two, or that there is an indication and being indicated, configuration and being configured, etc.
- the term “indication” may be a direct indication, an indirect indication, or an indication of an association relationship.
- A indicates B, which may indicate that A directly indicates B, such as B can be obtained through A; it may also indicate that A indirectly indicates B, such as A indicates C, B can be obtained through C; it may also indicate that there is an association relationship between A and B.
- predefined or “preconfigured” may refer to the pre-storage of corresponding codes, tables or other relevant information that can be used for indication in a device (for example, including an encoder or decoder), or it may refer to an agreement by protocol.
- Protocol may refer to any standard protocol in the field of encoding and decoding, and this application does not limit this.
- when may be interpreted as “if” or “if” or “when" or “in response to” and other similar descriptions.
- the phrase “if determined” or “if (stated condition or event) is detected” can be interpreted as “when determined” or “in response to determining” or “when (stated condition or event) is detected” or “in response to detecting (stated condition or event)” and other similar descriptions.
- the terms “first”, “second”, “third”, “fourth”, “A”, “B”, etc. are used to distinguish different objects, not to describe a specific order.
- the terms “including” and “having” and any variations thereof are intended to cover non-exclusive inclusions.
- 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 having a video encoding function
- the decoding device 120 can be understood as a device having a video decoding function. That is, the encoding device 110 and the decoding device 120 in the present application embodiment include a wider range of devices, such as smartphones, desktop computers, etc. computers, mobile computing devices, notebook (e.g., laptop) computers, tablet computers, set-top boxes, televisions, cameras, display devices, digital media players, video game consoles, in-vehicle 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
- CTUs can be called “tree blocks", “largest coding units” (LCU) or “coding tree blocks” (CTB).
- LCU largest coding units
- CTB coding tree blocks
- Each CTU can be associated with a pixel block of equal size in the image.
- Each pixel can correspond to one luminance (luminance or luma) sample and two chrominance (chroma) samples. Therefore, each A CTU can be associated with a luminance sampling block and two chrominance sampling 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 (Coding Unit, CU) for encoding, and the CU can be a rectangular block or a square block.
- the CU can be further divided into prediction units (prediction Unit, PU) and transform units (transform unit, TU), thereby separating encoding, prediction, and transformation, and making processing more flexible.
- the CTU is divided into CUs in a tree manner (such as a quadtree), and the CU is divided into TUs and PUs in a tree manner (such as a 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 include planar mode, DC and 33 angle modes, a total of 35 prediction modes.
- the intra-frame modes used by VVC include 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 residual unit 220 may generate a residual block of the CU based on the pixel blocks of the CU and the prediction blocks of the PUs of the CU. For example, the residual unit 220 may generate a residual block of the CU so that each sample in the residual block has a value equal to the difference between the following two: a sample in the pixel blocks of the CU and a corresponding sample in the prediction blocks of the PUs of the CU.
- 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 loop filter unit 260 is used to process the pixels after inverse transformation and inverse quantization, compensate for the distortion information, and provide a better reference for the subsequent coded pixels. For example, a deblocking filter operation can be performed to reduce the blocking effect of the pixel blocks associated with the CU.
- the loop filter unit 260 includes: a deblocking filter (DBF) unit and a sample adaptive compensation/adaptive loop filter (SAO/ALF) unit, wherein the DBF unit is used to remove the block effect, and the SAO/ALF unit is used to remove the ringing effect.
- DBF deblocking filter
- SAO/ALF sample adaptive compensation/adaptive loop filter
- 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.
- the entropy encoding unit 280 may receive the quantized transform coefficients from the transform/quantization unit 230.
- the entropy encoding unit 280 may perform one or more entropy encoding operations on the quantized transform coefficients to generate entropy-encoded data.
- 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 intra prediction unit 322 may perform intra prediction to generate a prediction block of the PU.
- the intra prediction unit 322 may use an intra prediction mode to generate a prediction block of the PU based on a pixel block of a spatially neighboring PU.
- the intra prediction unit 322 may also determine the intra prediction mode of the PU according to one or more syntax elements parsed from the code stream.
- 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 residual block based on the original block of the prediction block and the current block (i.e., the block to be encoded), that is, the difference between the prediction 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 the transformation and quantization process of the transformation/quantization unit 230 to eliminate visual redundancy.
- the residual block before transformation and quantization by the transformation/quantization unit 230 can be called a time domain residual block, and the time domain residual block after transformation and quantization by the transformation/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 entropy encode the quantized change coefficient and output a code stream. For example, the entropy coding unit 280 can eliminate character redundancy according to the target context model and the probability information of the binary code stream.
- the entropy decoding unit 310 can parse the bitstream 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 bitstream to inversely quantize and inversely 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 form a reconstructed image
- the loop filter unit 350 generates a reconstructed image based on the image or
- the reconstructed image is loop filtered based on the block to obtain a decoded image. It is worth noting that the encoder also needs to use similar operations as the decoder to obtain a decoded image.
- the decoded image can also be called a reconstructed image, which can be a subsequent frame and used 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.
- IntraTMP mode is a special luminance block intra-frame prediction coding tool, which is mainly used for screen content coding.
- FIG. 5 is an example of the principle of the IntraTMP mode provided in the present application.
- the IntraTMP mode is mainly implemented through the following processes:
- the encoder selects the L-shaped reconstructed pixels adjacent to the current coding block as a template, searches for the most similar template in the reconstructed area of the given current frame, and uses the reconstructed block corresponding to the most similar template as a matching block, which is used as the prediction block of the current coding block.
- R1 to R4 in the figure are search areas available in the IntraTMP mode.
- matching blocks can be searched point by point in R1 to R4 in raster scan order.
- FIG. 6 is an example of the principle of the template matching process adopted by the IntraTMP mode provided in the present application.
- the template of the current block may include L columns of pixels on the left side of the current block, M columns of pixels on the upper side, and M rows and L columns of pixels in the upper left corner, where M and L are both positive integers, for example, the values of M and L are both 4.
- the matching block of the current block can be represented by a block vector pointing from the current block to the matching block, and the similarity between the template of the current block and the template of the matching block is represented by the size of the template error value.
- the smaller the template error value the higher the similarity.
- the template error value can be calculated using the Sum of Absolute Difference (SAD). The smaller the SAD, the more similar the templates are.
- the encoder uses the flag cu_tmp_flag to indicate whether the current coding block uses the IntraTMP mode. If so, the same template matching process is performed at the decoding end to obtain the same prediction block at the decoding end. For the IntraTMP mode, no additional coding block vector information is required in the bitstream.
- block vector in the present application may also be referred to as a block vector or other descriptions with similar meanings.
- FIG. 7 is an example of the IntraTMP adaptation technology for camera-captured content provided by the present application.
- the IntraTMP adaptation technology for the content captured by the camera proposes to perform template matching with a step size S (i.e., every S points in the horizontal and vertical directions, S>1) on the basis of the original IntraTMP mode.
- a step size S i.e., every S points in the horizontal and vertical directions, S>1
- the search area is searched every S points in the horizontal and vertical directions. For example, if the block vector currently being matched with the template is (X 0 ,Y 0 ), the block vector of the next template match in the horizontal direction should be (X 0 +S,Y 0 ), and the ordinate of the block vector of the next template match in the vertical direction should be Y 0 +S.
- the best matching block is refined within a certain range (i.e., template matching is performed with a smaller step size S'), for example, the matching block vector is refined within the method of performing template matching with a smaller step size to optimize the matching result.
- This technology effectively reduces the complexity of the IntraTMP mode while maintaining good coding efficiency.
- IntraTMP multi-candidate technology obtains N candidate matching blocks in the reference area through the template matching process, or builds a candidate block list of length N.
- the candidate blocks in the list can be sorted according to the template error value between the current block.
- a candidate block in the list is selected as the final prediction block by index.
- intra_tmp_idx For the coded block using IntraTMP multi-candidate technology, after the decoder decodes the IntraTMP flag intra_tmp_flag as true, it continues to decode intra_tmp_idx.
- the intra_tmp_idx syntax element can represent the index of the selected candidate block.
- the process of decoding syntax elements by the decoder can be as follows:
- intraTMP calculates the cost of the template under the BV every time it searches for a BV.
- the cost on the template is generally the cost of matching the template of the current block and the template of the block of the same size as the current block determined by the current BV. This cost can be SAD, SATD, SSE, etc.
- IntraTMP can sort the searched blocks or BVs in ascending order according to these costs, and the top N candidates are the N candidates of intraTmpCandList. Or only the top N candidates with the smallest cost are maintained, and the candidates with more than N in the ranking can be directly discarded, thereby saving calculations.
- the BV of integer pixels can be searched in sequence. If the current searched BV is (x0, y0), the next one is (x0+1, y0), provided that the boundary of the search range has not been reached. But here we can do a sparse search first. For example, for the BV of integer pixels, if the current searched BV is (x0, y0), the next one is (x0+4, y0), provided that the boundary of the search range has not been reached. That is, template matching is performed every certain number of pixels, or it can be called template matching every certain step length.
- the step length here can be a preset value, such as 2, 4, 8, etc.
- the same process can be done in the vertical direction.
- N 3 if N is 3, it can be improved as follows:
- the first search is performed with a certain step size, for example, the horizontal step size and the vertical step size are both K. N optimal matching blocks with a certain spacing are obtained (the first N with the smallest template error value).
- a second search is performed on the N neighboring regions of the matching blocks obtained in the first step, and these neighboring regions can be set to multiple non-overlapping regions according to the step length in the first step.
- M optimal matching blocks (which may include the matching blocks obtained in the first step) are obtained from these regions.
- the sub-pixel BV can be further refined. For example, based on the whole pixel BV selected in the second step, a 1/2 pixel search can be performed within a pixel range of the top, bottom, left, and right.
- the construction of the candidate list is done by both the encoder and the decoder, so as to ensure that the candidate list obtained by the encoder and the candidate list obtained by the decoder are consistent.
- FIG. 8 is an example of the construction principle of the candidate block list provided in the present application.
- the first search is performed according to the preset step size, and the upper left corner of the searched block is shown as a gray dot.
- the three sorted BVs are found, and the upper left corner of the corresponding block is shown as a black dot.
- the horizontal step size is 4, and the vertical step size is also 4.
- a second search can be performed based on the three sorted BVs. This time the search range is 4x4. In each 4x4 BV, the BV with the lowest cost is found to replace the original BV and re-participate in the sorting of intraTmpCandList. Of course, if the BV with the lowest cost is still the original BV, it does not need to be re-sorted.
- variable-length encoding or truncated unary can be set for the encoding of intra_tmp_idx.
- the variable-length encoding method is shown in Table 1 below.
- the encoder can use the method shown in Table 2 for encoding.
- indexes 3 to 6 use codewords of the same length
- indexes 7 to 14 use codewords of the same length.
- the x in the above table can be obtained using truncated binary.
- the template error values of the reconstructed block and the current coding block at different positions can be obtained.
- These reconstructed blocks can be represented by the block vector pointing to the reconstructed block by the current coding block; a candidate block vector information list is constructed to record the block vector with a smaller template error value during the template matching process; one or more block vectors are selected from the candidate block vector information list according to conditions such as block vector spacing and template error value, and the reconstructed block they point to is used as the matching block of the current coding block; a weight value is determined for each matching block; these matching blocks are weightedly fused according to their weight values to obtain the final prediction block, thereby realizing IntraTMP combined fusion prediction.
- the weight of each matching block can be determined by using a preset fixed value, calculating according to a template error value, or deducing according to a template.
- FIG. 9 is an example of the principle of the IntraTMP fusion prediction technology provided in the present application.
- the matching blocks used for fusion include matching block 1, matching block 2 and matching block 3
- the weight of matching block 1 is W1
- the weight of matching block 2 is W2
- the weight of matching block 3 is W3
- the prediction block of the current block can be: W1 ⁇ matching block 1+W2 ⁇ matching block 2+W3 ⁇ matching block 3.
- the matching block (also referred to as the reference block) obtained by intra-frame template matching can be directly used as the prediction block of the current block. Furthermore, the prediction block can be filtered to improve the prediction effect. A block-level flag can be used to indicate whether the current block uses the filtering process on the prediction block.
- predC c0C+c1N+c2S+c3E+c4W+c5B.
- the filter uses a cross shape consisting of a pixel to be filtered and one pixel adjacent to it, one pixel above, one pixel adjacent to it, and one pixel adjacent to it, to perform filtering.
- C is the pixel to be filtered
- N is the pixel above it
- S is the pixel below it
- W is the pixel to the left of it
- E is the pixel to the right of it.
- B bias
- B can be the median of the pixel value range, that is, if the pixel value is the 10-bit maximum value 1023, then B is set to 512.
- c0 to c5 are the coefficients of the filter.
- one method of determining filter coefficients is to train the coefficients of the filter using a template of a reference block and a template of a current block.
- FIG. 11 is an example of the principle of determining filter coefficients provided by the present application.
- the template area is the reconstruction area of the 4 rows above and 4 columns to the left of the current block.
- an additional row of areas on the upper, lower, left and right sides of the template area is also required as a reference. It should be noted that if part of the additional area is not encoded, it can be copied from the template area.
- one method of training the filter coefficients is to calculate a set of coefficients so that the mean square error (MSE) between the filtered reference block template and the current block template is minimized.
- MSE mean square error
- the prediction block directly obtained from the reference block is filtered.
- One method is to filter each pixel in turn from left to right and from top to bottom, and use the filtered value as the prediction value.
- the intraTMP multi-candidate method uses templates to screen out a small number of promising candidates from a large number of possible BVs, and then the encoder selects a candidate to determine the reference block or prediction block of the current block. Due to the correlation between the current block and the template, the template can effectively filter out most of the unreasonable BVs. On the other hand, the encoder can access the original pixel values of the current block, so it can make more accurate judgments than the decoder. In this way, by utilizing the collaboration of the encoder and decoder, better compression efficiency can be achieved. IntraTMP filtering can use templates to train filter coefficients and improve on the original prediction values of intraTMP.
- IntraTMP fusion prediction can obtain multiple reference blocks through the intra-frame template matching process and perform weighted fusion on these reference blocks.
- the weight value is usually a predefined fixed value or calculated based on the template error of each reference block.
- the weights used for fusion prediction are obtained based on the training of each reference block template and the current block template. For example, using 5 reference blocks for weighted fusion, the form is as follows:
- Wn represents the weight of the nth reference block
- refBlock n represents the nth reference block
- Bias is a fixed value.
- Another weighting method is to calculate a set of coefficients so that the MSE of the reference block template fused with the current block template is minimized.
- TDD Template-Based Intra Mode Derivation
- TIMD technology uses the reconstructed pixels of the L-shaped part adjacent to the current coding block as a template.
- the encoder can calculate the predicted pixels of the template area under different intra-frame prediction modes by traversing the Most Probable Mode (MPM) list; and then obtain the template error values of the predicted pixels and reconstructed pixels under different intra-frame prediction modes; for example, the template error value can be represented by the Sum of Absolute Transformed Difference (SATD); thus, the encoder can select the optimal intra-frame prediction mode according to the template error value.
- the intra-frame prediction mode is obtained through the same derivation method, thereby reducing the coding bits of the mode information.
- the CIIP mode combines intra-frame prediction and inter-frame prediction, and uses the weighted combination of intra-frame prediction blocks and inter-frame prediction blocks to obtain the prediction block of the current coding block.
- the CIIP mode in the enhanced compression reference software test platform (Enhanced Compression Model, ECM) is combined with template-based prediction technology, and different weights are designed for different regions, which further improves the accuracy of the prediction.
- ECM Enhanced Compression Model
- its intra-frame prediction block pred_intra is obtained by the TIMD mode
- the inter-frame prediction block pred_inter is obtained by the template-based merge (Merge) mode.
- the encoder determines the weight values wIntra and wInter based on the derived intra-frame prediction mode and the position of the pixel to be predicted.
- Pred represents the prediction block of the current block
- pred_intra represents the intra-frame prediction block
- wIntra represents the weight value of the intra-frame prediction block
- winter represents the inter-frame prediction block
- pred_inter represents the weight value of the inter-frame prediction block.
- the weight values wIntra and wInter of each region can be determined by referring to Table 3:
- different region indexes correspond to different wIntra and different wInter. That is, when the region identifier is 0, wIntra is 6 and wInter is 2, when the region identifier is 1, wIntra is 5 and wInter is 3, when the region identifier is 2, wIntra is 3 and wInter is 5, and when the region identifier is 3, wIntra is 2 and wInter is 6.
- the IBC mode can be divided into IBC advanced motion vector prediction (AMVP) mode and IBC merge mode.
- AMVP advanced motion vector prediction
- IBC merge mode IBC advanced motion vector prediction
- the IBC-AMVP mode can obtain the predicted block vector through the constructed candidate block vector information list, through hash search, full
- the reference block of the current block and the corresponding final block vector are obtained through the search process, and the final block vector is encoded according to the predicted block vector, for example, the residual between the predicted block vector and the final block vector is encoded to improve the coding efficiency.
- the IBC-Merge mode predicts through the constructed candidate block vector information list, selects the best block vector in the list as the final block vector through the SATD, RDO and other coding processes, and uses the reconstructed block it points to as the reference block to complete the prediction.
- the encoder encodes the index of the block vector in the list instead of the block vector itself to improve the coding efficiency.
- the candidate block vector information list may be composed of coding information such as block vectors of adjacent coding blocks, historical block vectors, and average block vectors.
- IBC is a historical MV prediction technique.
- FIG. 13 is a schematic flow chart of a decoding method 400 provided by the present application.
- the decoding method 400 can be performed by a decoder.
- the decoding method 400 can be performed by the video decoder 122 shown in FIG. 1 or the video decoder 300 shown in FIG. 4 .
- the following description is made by taking a decoder as an example.
- the decoding method 400 can be specifically applied to the intra prediction part in a video decoder, for example, to the IntraTMP part of the intra prediction.
- the decoding method 400 may include part or all of the following:
- the first prediction mode may be an intra prediction mode.
- the first prediction mode may be any prediction mode capable of acquiring block vector information of the current block.
- S420 Determine first historical block vector information based on the block vector information used by the current block.
- the decoder may directly determine the block vector information used by the current block as the first historical block vector information, or the decoder may determine part of the block vector information used by the current block as the first historical block vector information, or the decoder may determine the first historical block vector information based on a calculation result obtained by calculating the block vector information used by the current block.
- S430 Update a first historical block vector information list based on the first historical block vector information.
- the first historical block vector information list is used to determine a candidate block vector information list used by an IBC block, where the IBC block is a block decoded after the current block using the IBC mode.
- the first historical block vector information list is used to determine a candidate block vector information list used by an IBC block in an IBC advanced motion vector prediction (AMVP) mode; in other words, the IBC block may be a block decoded using the IBC AMVP mode after the current block.
- the first historical block vector information list is used to determine a candidate block vector information list used by an IBC block in an IBC merge mode; in other words, the IBC block may be a block decoded using the IBC merge mode after the current block.
- the candidate block vector information list is constructed based on the first historical block vector information list, and then the IBC block is decoded based on the candidate block vector information list.
- the encoder can construct a candidate block vector information list in the same way as the decoder, and then obtain the reference block and the corresponding final block vector of the IBC block through hash search, full search and other processes, and then encode the final block vector according to a certain prediction block vector in the candidate block vector information list, for example, encode the residual between the certain prediction block vector and the final block vector to improve the coding efficiency; in addition, the encoder can indicate the prediction block vector index to the decoder, and the prediction block index is used to indicate in the candidate block vector information list: the prediction block vector used to encode the final block vector.
- the decoder can determine the prediction block vector index by decoding the code stream, and based on the prediction block vector index, determine the prediction block vector used by the IBC block in the candidate block vector information; then, the decoder can obtain the final block vector of the IBC block based on the prediction block vector used by the IBC block and the block vector residual determined by decoding the code stream, and then determine the reference block of the IBC block based on the final block vector of the IBC block, thereby determining the prediction of the IBC block based on the reference block of the IBC block. piece.
- the encoder can construct a candidate block vector information list in the same way as the decoder, and then select the best block vector in the candidate block vector information list as the final block vector through SATD, RDO and other encoding processes.
- the encoder can encode the index of the final block vector in the candidate block vector information list to improve the encoding efficiency.
- the decoder can determine the index of the final block vector in the candidate block vector information list by decoding the bitstream, and then determine the reference block of the IBC block based on the final block vector indicated by the index.
- the decoder can determine the prediction block of the IBC block based on the reference block of the IBC block.
- the decoder updates the first historical block vector information list used to determine the candidate block vector information list based on the first prediction mode different from the IBC mode. Since the candidate block vector information list is a list used by the IBC block decoded using the IBC mode after the current block, the decoder updates the first historical block vector information list using the first prediction mode, which is equivalent to the decoder enriching the candidate block vector information of the IBC block using the first prediction mode, that is, when the decoder decodes the IBC block, it can improve the decoding performance of the IBC block and improve the decoding performance of the decoder.
- the decoder may not execute or ignore this step, that is, the decoder may directly update the first historical block vector information list based on the block vector information of the current block, and the present application does not make specific limitations on this.
- the coding information of the IntraTMP block is used to enrich the block vector candidates of the IBC, which can improve the decoding performance of the decoder.
- Table 4 shows the test results after the decoding method provided by the present application is integrated into the latest ECM9.0.
- Class F and class TGM are special sequence classes for screen content encoding.
- Y represents brightness (Luma)
- U represents blue chroma
- V represents red chroma.
- EncT represents the change in encoding complexity
- DecT represents the change in decoding complexity. From the simulation results, it can be seen that the decoding method provided in this application can improve the decoding performance, especially on TGM, the gain effect is most obvious.
- the first prediction mode includes an intra template matching prediction (Intra Template Matching Prediction, IntraTMP) mode.
- IntraTMP Intra Template Matching Prediction
- the IntraTMP mode may be a mode using any one of the following techniques:
- IntraTMP adaptation technology for camera captured content IntraTMP multi-candidate technology, IntraTMP fusion prediction technology, IntraTMP filtering technology, and template-derived IntraTMP fusion technology.
- the S420 may include:
- the block vector in the first historical block vector information is determined based on at least one block vector in the block vector information used by the current block and the number of the at least one block vector.
- the decoder may, based on the number of the at least one block vector, determine the at least one block vector as a block vector in the first historical block vector information, or determine a portion of block vectors selected from the at least one block vector as a block vector in the first historical block vector information, or determine a block vector calculated from the at least one block vector as a block vector in the first historical block vector information.
- the at least one block vector is determined as a block vector in the first historical block vector information.
- the first preset value may be implemented by pre-saving a corresponding code, table or other method that can be used to indicate relevant information in the decoder, or the first preset value may be agreed or defined by a standard protocol.
- the first preset value may be any positive integer.
- the decoder determines the at least one block vector as a block vector in the first historical block vector information; in other words, only when the number of the at least one block vector is 1, the decoder can directly determine the at least one block vector as a block vector in the first historical block vector information. In other words, if the current block uses one block vector to complete the prediction process, the decoder can directly determine the one block vector as a block vector in the first historical block vector information.
- the decoder can determine part of the block vectors in the at least one block vector or the block vector obtained by calculating the at least one block vector as the block vector in the first historical block vector information when the number of the at least one block vector meets a specific condition.
- the number of the at least one block vector being greater than the second preset value is only an example of the specific condition and should not be understood as a limitation to the present application.
- the decoder can determine part of the block vectors in the at least one block vector or the block vector obtained by calculating the at least one block vector as the block vector in the first historical block vector information.
- the decoder determines the first block vector or the second block vector as a block vector in the first historical block vector information. In other words, if the current block uses a sub-pixel interpolation prediction method based on the first block vector, the decoder determines the first block vector or the second block vector as a block vector in the first historical block vector information.
- the accuracy of the first block vector may be integer pixel accuracy or sub-pixel accuracy.
- the sub-pixel accuracy may also be referred to as fractional pixel accuracy.
- the sub-pixel accuracy may be 1/2 pixel, 1/3 pixel, or 1/4 pixel accuracy.
- the accuracy of the first block vector is integer pixel accuracy
- the reference block pointed to by the first block vector is the block including integer pixels found according to the first block vector.
- the accuracy of the first block vector is sub-pixel accuracy
- the reference block corresponding to the first block vector is the block including sub-pixels found according to the first block vector. Therefore, the accuracy of the first block vector may also be referred to as the accuracy of the reference block of the first block vector.
- the sub-pixel interpolation prediction method may be understood as being similar to an inter-frame sub-pixel precision prediction method.
- the sub-pixel interpolation prediction method may refer to: a prediction method of determining a sub-pixel block after sub-pixel interpolation as a prediction block.
- the adjustment amount of the first block vector may include an offset direction and/or an offset amount of the first block vector.
- the first block vector is determined as the block vector in the first historical block vector information.
- the precision of the first block vector is equal to the precision of the sub-pixel interpolation, it means that the precision of the reference block pointed to by the first block vector matches the precision of the prediction block, that is, the reference block pointed to by the first block vector can be directly used as the prediction block of the current block, or in other words, the precision of the first block vector is sub-pixel precision, and the prediction block of the current block is directly obtained based on the block vector of sub-pixel precision.
- the decoder when the decoder predicts the current block, the decoder can directly determine the sub-pixel block pointed to by the first block vector as the prediction block of the current block, and accordingly, the decoder can directly determine the first block vector as the block vector in the first historical block vector information.
- the second block vector is determined as the block vector in the first historical block vector information.
- the precision of the first block vector is greater than the precision of the sub-pixel interpolation, it means that the precision of the reference block pointed to by the first block vector does not match the precision of the prediction block, that is, the reference block pointed to by the first block vector cannot be directly used as the prediction block of the current block, or the prediction block of the current block is not directly obtained according to the block vector with sub-pixel precision.
- the precision of the first block vector is integer pixel precision
- the decoder adjusts the integer pixel block pointed to by the first block vector based on the offset direction and offset of the first block vector to obtain a sub-pixel block, and determines the obtained sub-pixel block as the prediction block of the current block.
- the S420 may include:
- the decoder may determine the accuracy of the first block vector as the accuracy of the third block vector. If the third block vector is a block vector obtained by the decoder based on weighted averaging of multiple block vectors in the block vector information used by the current block, the decoder may determine the accuracy of the multiple block vectors as the accuracy of the third block vector. If the third block vector is a second block vector obtained by adjusting the first block vector in the block vector information used by the current block, the decoder may determine the accuracy of the second block vector as the accuracy of the third block vector.
- the S420 may include:
- At least one of the following items included in the block vector information used by the current block is determined as information in the first historical block vector information:
- An index used to indicate weights of multiple reference blocks used by the current block is an index used to indicate weights of multiple reference blocks used by the current block.
- the coordinate information of the current block includes coordinate information of at least one of the following positions:
- the upper left corner, lower left corner, upper right corner, lower right corner, and center point of the current block are the upper left corner, lower left corner, upper right corner, lower right corner, and center point of the current block.
- the flag for indicating whether to perform illumination compensation on the prediction block of the current block may include:
- LIC local illumination compensation
- the index for indicating the prediction mode used by the current block may include at least one of the following: an index for indicating that the current block uses the first prediction mode, an index for indicating that the current block uses a sub-mode belonging to the first prediction mode, and an index for indicating that the current block uses the IBC mode.
- the sub-mode may be a mode using any one of the following technologies: IntraTMP adaptation technology for camera-captured content, IntraTMP multi-candidate technology, IntraTMP fusion prediction technology, IntraTMP filtering technology, and template-derived IntraTMP fusion technology.
- the decoder directly determines the information in the block vector information used by the current block as the information in the first historical block vector information. It can also be understood that: the decoder inherits the information in the block vector information used by the current block or other descriptions with similar meanings. This application does not make specific limitations on this.
- the S420 may include:
- the first historical block vector information is determined based on the block vector information used by the current block.
- the decoder decodes the bitstream to determine the first identifier, and if the first identifier indicates that the first prediction mode To update the first historical block vector information list, the first historical block vector information is determined based on the block vector information used by the current block, and then the first historical block vector information list is updated based on the first historical block vector information. Otherwise, the decoder does not use the first prediction mode to update the first historical block vector information list.
- the value of the first identifier when the value of the first identifier is a first numerical value, it indicates that the first historical block vector information list is updated based on the first prediction mode; when the value of the first identifier is a second numerical value, it indicates that the first historical block vector information list is not updated based on the first prediction mode.
- the first numerical value is 1 and the second numerical value is 0, or the first numerical value is 0 and the second numerical value is 1.
- the value of the first identifier may be assumed to be the first numerical value, or the value of the first identifier may be assumed to be the second numerical value.
- the first flag when the first flag is activated or enabled, it indicates that the first historical block vector information list is updated based on the first prediction mode; when the first flag is deactivated or disabled, it indicates that the first historical block vector information list is not updated based on the first prediction mode.
- the first flag when the first flag does not exist in the bitstream obtained by the decoder, the first flag can be activated or enabled by default, or the first flag can be deactivated or disabled by default.
- the first identifier may be a sequence-level identifier.
- the first identifier indicates whether the current sequence to which the current block belongs allows updating the first historical block vector information list based on the first prediction mode.
- the decoder may determine the first identifier by decoding a sequence parameter set (Sequence Parameter Set, SPS) in the bitstream.
- SPS Sequence Parameter Set
- the first identifier may be carried in the SPS in the bitstream.
- the decoder may maintain two historical block vector information lists corresponding to the two regions for the current image, and the first historical block vector information list is a historical block vector information list corresponding to the region where the current block is located.
- the decoder may update the historical block vector information list corresponding to the region where the current block is located based on the first historical block vector information according to the position of the current block. For example, if the current block is located in the clean area, the decoder may update the historical block vector information list corresponding to the clean area based on the first historical block vector information; otherwise, the decoder updates the historical block vector information list corresponding to the dirty area based on the first historical vector information.
- the IntraTMP decoding block completes decoding and confirms the block vector that needs to be saved.
- the coordinates of the current decoded block may be saved.
- the accuracy of the block vector determined in step 1 may be saved.
- whether the current decoded block uses the LIC method or the filtering method, etc. may be saved.
- whether the current decoded block flips the reference block may be saved.
- a flag bit may be introduced to indicate whether the block vector determined in step 1 belongs to the IBC.
- the bidirectional weighted weight index of the current block may be saved.
- the block vector determined in step 1 and the information associated with the block vector determined in step 2 may constitute block vector information.
- the block vector information is saved in the IBC historical block vector list. If the block vector information is already in the historical block vector list, the block vector information in the list is moved to the end; otherwise, first determine whether the IBC historical block vector list is full. If it is full, remove the block vector information at the front of the list, and then add the block vector information to the end of the IBC historical block vector list to complete the update of the IBC historical block vector list.
- the current frame is a GDR frame
- the current image will be divided into a clean area (clean area) and a dirty area (dirty area) according to the division boundary.
- the decoder maintains two IBC historical block vector lists.
- the block vector information can be saved to different lists according to the position of the current block in the current image. For example, if the current block is in the clean area, the block vector information is saved to IBC historical block vector list 1; otherwise, the block vector information is saved to IBC historical block vector list 2.
- the IBC decoding block constructs a candidate block vector list and uses the block vector information in the IBC historical block vector list as candidates to complete the prediction of the IBC decoding block.
- embodiment 1 is only an example of the present application and should not be construed as limiting the present application.
- embodiment 1 may be adaptively modified, adjusted or replaced according to one or more of the following alternatives to form a new implementation.
- step 1 if the IntraTMP decoding block uses a weighted fusion prediction of a reference block based on multiple block vectors, the mean values of these block vectors may be saved.
- step 1 if the IntraTMP decoding block uses a weighted fusion prediction based on multiple block vectors, the two block vectors with the smallest template error value among these block vectors can be saved.
- the two block vectors can be used for bidirectional IBC prediction, that is, an IBC-GPM prediction block composed of two IBC reference blocks, etc.
- step 1 if the IntraTMP decoding block uses a weighted fusion prediction of reference blocks based on multiple block vectors, the optimal block vector can be selected and saved according to the current reconstructed block. For example, the error between the reference block corresponding to each block vector and the current reconstructed block is calculated, and the error can be calculated by SAD. The block vector with the smallest error is the optimal block vector and saved.
- a flag bit may be introduced to indicate whether the block vector determined in step 1 belongs to IntraTMP.
- block vectors belonging to different decoding methods can be processed differently. For example, first add all block vectors belonging to the IBC mode in the IBC historical block vector list, and then add block vectors belonging to the IntraTMP mode.
- the judgment condition in step 3 may be: the width of the current block is smaller than W and the height is smaller than H, or other conditions related to the width or height.
- a historical block vector list of IntraTMP may be constructed, which is different from the historical block vector list of IBC, and the block vector information of the IntraTMP decoded block may be saved in the historical block vector list of IntraTMP.
- the judgment condition in step 3 may include: judging whether to save the block vector information according to the prediction method of the current IntraTMP decoding block. For example, if the IntraTMP decoding block uses a weighted fusion prediction of reference blocks based on multiple block vectors, the block vector information is not saved in the historical block vector list.
- the judgment condition may include a flag bit according to the sequence level, frame level, slice level, or image block, which is used to indicate whether it is allowed to update the IBC history block vector list based on the IntraTMP mode.
- FIG. 14 is a schematic flowchart of the encoding method 500 provided in the present application.
- the encoding method 500 may be performed by an encoder, for example, the encoding method 500 may be performed by the video encoder 112 shown in FIG. 1 or the video encoder 200 shown in FIG. 2 .
- the encoding method 500 may include:
- the first historical block vector information list is used to determine a candidate block vector information list used by an IBC block, where the IBC block is a block encoded using the IBC mode after the current block.
- the first prediction mode comprises an intra template matching prediction IntraTMP mode.
- the S520 may include:
- the block vector in the first historical block vector information is determined based on at least one block vector in the block vector information used by the current block and the number of the at least one block vector.
- the at least one block vector is determined as a block vector in the first historical block vector information.
- the block vector in the first historical block vector information is determined according to any one of the following:
- One or more block vectors with the smallest error value of the reference block in the at least one block vector are determined as block vectors in the first historical block vector information.
- the S520 may include:
- a first block vector in the block vector information used by the current block is determined as a block vector in the first historical block vector information, or a second block vector obtained by adjusting the first block vector based on an adjustment amount of the first block vector is determined as a block vector in the first historical block vector information.
- the first block vector is determined as the block vector in the first historical block vector information.
- the second block vector is determined as the block vector in the first historical block vector information.
- the S520 may include:
- the first historical block vector information includes a third block vector
- the accuracy in the block vector information used by the current block and corresponding to one or more block vectors used to determine the third block vector is determined as the accuracy of the third block vector; the first historical block vector information includes the accuracy of the third block vector.
- the S520 may include:
- the first historical block vector information list includes the first historical block vector information
- the first historical block vector information is moved to the end of the first historical block vector information list.
- the S530 may include:
- the first historical block vector information list is a historical block vector information list common to the first prediction mode and the IBC mode.
- the priority of the second historical block vector information in the first historical block vector information list and belonging to the first prediction mode is lower than the priority of the third historical block vector information in the first historical block vector information list and belonging to the IBC mode.
- the first historical block vector information list is a historical block vector information list of the first prediction mode, and the first historical block vector information and the second historical block vector information list of the IBC mode are both used to determine the candidate block vector information list.
- the current image to which the current block belongs is divided into multiple regions, the multiple regions include the region where the current block is located, and the first historical block vector information list is a historical block vector information list corresponding to the region.
- 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 1 is a diagrammatic representation of Embodiment 1:
- the current block mentioned above is the IntraTMP coding block, that is, the method of saving the block vector and other information of the IntraTMP coding block to the IBC historical block vector list, using the block vector and other information of the IntraTMP coding block to enrich the block vector candidates of IBC, thereby improving the coding efficiency.
- the encoding method comprises the following steps:
- the IntraTMP encoding block completes encoding and confirms the block vector that needs to be saved.
- the IntraTMP coding block uses a single block vector to complete the prediction process, and the block vector can be directly saved.
- the coding block uses sub-pixel interpolation prediction based on a single integer pixel precision block vector, and the integer pixel precision block vector can be adjusted according to the sub-pixel interpolation type and then saved.
- the IntraTMP coding block uses reference block weighted fusion prediction based on multiple block vectors, and the block vector with the smallest template error value among these block vectors can be saved.
- the coordinates of the current coding block may be saved.
- the accuracy of the block vector determined in step 1 may be saved.
- whether the current coding block uses the LIC method or the filtering method, etc. may be saved.
- whether the current coding block flips the reference block may be saved.
- a flag bit may be introduced to indicate whether the block vector determined in step 1 belongs to IBC.
- the bidirectional weighted weight index of the current block may be saved.
- the block vector determined in step 1 and the information associated with the block vector determined in step 2 may constitute block vector information.
- the encoder may determine whether to save the block vector information (i.e., including the block vector determined in step 1 and the information associated with the block vector determined in step 2) to the IBC historical block vector list according to the conditions. For example, it may be saved to the IBC historical block vector list only when the size of the current block is not greater than WxH.
- the block vector information is saved in the IBC historical block vector list. If the block vector information is already in the historical block vector list, the block vector information in the list is moved to the end; otherwise, first determine whether the IBC historical block vector list is full. If it is full, remove the block vector information at the front of the list, and then add the block vector information to the end of the IBC historical block vector list to complete the update of the IBC historical block vector list.
- the current frame is a GDR frame
- the current image will be divided into a clean area (clean area) and a dirty area (dirty area) according to the division boundary.
- the encoder maintains two IBC historical block vector lists.
- the block vector information can be saved to different lists according to the position of the current block in the current image. For example, if the current block is in the clean area, the block vector information is saved to IBC historical block vector list 1; otherwise, the block vector information is saved to IBC historical block vector list 2.
- the IBC coding block constructs a candidate block vector list and uses the block vector information in the IBC historical block vector list as candidates to complete the prediction of the IBC coding block.
- Embodiment 2 is only an example of the present application and should not be construed as limiting the present application.
- Embodiment 1 may be adaptively modified, adjusted or replaced according to one or more of the following alternatives to form a new implementation.
- step 1 if the IntraTMP coding block uses a weighted fusion prediction of reference blocks based on multiple block vectors, the mean values of these block vectors may be saved.
- step 1 if the IntraTMP coding block uses a weighted fusion prediction based on multiple block vectors, the two block vectors with the smallest template error value among these block vectors can be saved.
- the two block vectors can be used for bidirectional IBC prediction, that is, an IBC-GPM prediction block composed of two IBC reference blocks, etc.
- a flag bit can be introduced to indicate whether the block vector determined in step 1 belongs to IntraTMP.
- the IBC coding block can process block vectors belonging to different coding methods differently. For example, first add all block vectors belonging to the IBC mode in the IBC historical block vector list, and then add block vectors belonging to the IntraTMP mode.
- the judgment condition in step 3 may be: the width of the current block is smaller than W and the height is smaller than H, or other conditions related to the width or height.
- a historical block vector list of IntraTMP may be constructed, which is different from the historical block vector list of IBC, and the block vector information of the IntraTMP encoding block may be saved in the historical block vector list of IntraTMP.
- the judgment condition in step 3 may include: judging whether to save the block vector information according to the prediction method of the current IntraTMP coding block. For example, if the IntraTMP coding block uses a weighted fusion prediction of reference blocks based on multiple block vectors, the block vector information is not saved in the historical block vector list.
- the judgment condition may include a flag bit according to the sequence level, frame level, slice level, or image block, which is used to indicate whether it is allowed to update the IBC history block vector list based on the IntraTMP mode.
- FIG. 15 is a schematic block diagram of a decoder 600 provided in the present application.
- the decoder 600 may include:
- a first determining unit 610 is configured to determine block vector information used by a current block based on a first prediction mode different from an intra block copy (IBC) mode;
- IBC intra block copy
- a second determining unit 620 configured to determine first historical block vector information based on the block vector information used by the current block
- An updating unit 630 configured to update a first historical block vector information list based on the first historical block vector information
- the first historical block vector information list is used to determine a candidate block vector information list used by an IBC block, where the IBC block is a block decoded after the current block using the IBC mode.
- the first prediction mode comprises an intra template matching prediction IntraTMP mode.
- the second determining unit 620 is specifically configured to:
- the block vector in the first historical block vector information is determined based on at least one block vector in the block vector information used by the current block and the number of the at least one block vector.
- the second determining unit 620 is specifically configured to:
- the at least one block vector is determined as a block vector in the first historical block vector information.
- the second determining unit 620 is specifically configured to:
- the block vector in the first historical block vector information is determined according to any one of the following:
- One or more block vectors with the smallest error value of the reference block in the at least one block vector are determined as block vectors in the first historical block vector information.
- the second determining unit 620 is specifically configured to:
- a first block vector in the block vector information used by the current block is determined as a block vector in the first historical block vector information, or a second block vector obtained by adjusting the first block vector based on an adjustment amount of the first block vector is determined as a block vector in the first historical block vector information.
- the second determining unit 620 is specifically configured to:
- the first block vector is determined as the block vector in the first historical block vector information.
- the second determining unit 620 is specifically configured to:
- the second determining unit 620 is specifically configured to:
- the first historical block vector information includes a third block vector
- the accuracy in the block vector information used by the current block and corresponding to one or more block vectors used to determine the third block vector is determined as the accuracy of the third block vector; the first historical block vector information includes the accuracy of the third block vector.
- the second determining unit 620 is specifically configured to:
- At least one of the following items included in the block vector information used by the current block is determined as information in the first historical block vector information:
- An index used to indicate weights of multiple reference blocks used by the current block is an index used to indicate weights of multiple reference blocks used by the current block.
- the second determining unit 620 is specifically configured to:
- the first historical block vector information is determined based on the block vector information used by the current block.
- the second determining unit 620 is specifically configured to:
- the first historical block vector information is determined based on the block vector information used by the current block.
- the second determining unit 620 is specifically configured to:
- the first historical block vector information is determined based on the block vector information used by the current block:
- the area of the current block is greater than or equal to a first threshold
- the width of the current block is greater than or equal to a second threshold
- the height of the current block is greater than or equal to a third threshold
- the type of the current image to which the current block belongs is a preset type.
- the updating unit 630 is specifically configured to:
- the first historical block vector information list includes the first historical block vector information
- the first historical block vector information is moved to the end of the first historical block vector information list.
- the updating unit 630 is specifically configured to:
- the first historical block vector information in the first historical block vector information list is less than a fourth preset value, the first historical block vector information is added to the first historical block vector information list; otherwise, the historical block vector information at the front of the first historical block vector information list is removed, and the first historical block vector information is added to the end of the first historical block vector information list.
- the first historical block vector information list is a historical block vector information list common to the first prediction mode and the IBC mode.
- the priority of the second historical block vector information in the first historical block vector information list and belonging to the first prediction mode is lower than the priority of the third historical block vector information in the first historical block vector information list and belonging to the IBC mode.
- the first historical block vector information list is a historical block vector information list of the first prediction mode, and the first historical block vector information and the second historical block vector information list of the IBC mode are both used to determine the candidate block vector information list.
- the first historical block vector information list is used to determine the priority of the candidate block vector information list, which is lower than the priority of the second historical block vector information list is used to determine the priority of the candidate block vector information list.
- the current image to which the current block belongs is divided into multiple regions, the multiple regions include the region where the current block is located, and the first historical block vector information list is a historical block vector information list corresponding to the region.
- the device embodiment of the decoder and the method embodiment of the decoding method can correspond to each other, and similar descriptions can refer to the method embodiment. To avoid repetition, it will not be repeated here.
- the decoder 600 shown in Figure 15 can 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 each unit in the decoder 600 are respectively for implementing the corresponding processes in the decoding method 400.
- FIG. 16 is a schematic block diagram of an encoder 700 provided in the present application.
- the encoder 700 may include:
- a first determining unit 710 is configured to determine block vector information used by a current block based on a first prediction mode different from an intra block copy (IBC) mode;
- IBC intra block copy
- a second determining unit 720 configured to determine first historical block vector information based on the block vector information used by the current block
- An updating unit 730 configured to update a first history block vector information list based on the first history block vector information
- the first historical block vector information list is used to determine a candidate block vector information list used by an IBC block, where the IBC block is a block encoded using the IBC mode after the current block.
- the first prediction mode comprises an intra template matching prediction IntraTMP mode.
- the second determining unit 720 is specifically configured to:
- the block vector in the first historical block vector information is determined based on at least one block vector in the block vector information used by the current block and the number of the at least one block vector.
- the second determining unit 720 is specifically configured to:
- the at least one block vector is determined as a block vector in the first historical block vector information.
- the second determining unit 720 is specifically configured to:
- the block vector in the first historical block vector information is determined according to any one of the following:
- One or more block vectors with the smallest error value of the reference block in the at least one block vector are determined as block vectors in the first historical block vector information.
- the second determining unit 720 is specifically configured to:
- a first block vector in the block vector information used by the current block is determined as a block vector in the first historical block vector information, or a second block vector obtained by adjusting the first block vector based on an adjustment amount of the first block vector is determined as a block vector in the first historical block vector information.
- the second determining unit 720 is specifically configured to:
- the first block vector is determined as the block vector in the first historical block vector information.
- the second determining unit 720 is specifically configured to:
- the second block vector is determined as the block vector in the first historical block vector information.
- the second determining unit 720 is specifically configured to:
- the first historical block vector information includes a third block vector
- the accuracy in the block vector information used by the current block and corresponding to one or more block vectors used to determine the third block vector is determined as the accuracy of the third block vector; the first historical block vector information includes the accuracy of the third block vector.
- the second determining unit 720 is specifically configured to:
- At least one of the following items included in the block vector information used by the current block is determined as information in the first historical block vector information:
- An index used to indicate weights of multiple reference blocks used by the current block is an index used to indicate weights of multiple reference blocks used by the current block.
- the encoder further comprises:
- An encoding unit used for encoding the first identifier
- the first identifier indicates that the first historical block vector information list is updated based on the first prediction mode.
- the second determining unit 720 is specifically configured to:
- the first historical block vector information is determined based on the block vector information used by the current block.
- the second determining unit 720 is specifically configured to:
- the first historical block vector information is determined based on the block vector information used by the current block:
- the area of the current block is greater than or equal to a first threshold
- the width of the current block is greater than or equal to a second threshold
- the height of the current block is greater than or equal to a third threshold
- the type of the current image to which the current block belongs is a preset type.
- the updating unit 730 is specifically used to:
- the first historical block vector information list includes the first historical block vector information
- the first historical block vector information is moved to the end of the first historical block vector information list.
- the updating unit 730 is specifically used to:
- the first historical block vector information in the first historical block vector information list is less than a fourth preset value, the first historical block vector information is added to the first historical block vector information list; otherwise, the historical block vector information at the front of the first historical block vector information list is removed, and the first historical block vector information is added to the end of the first historical block vector information list.
- the first historical block vector information list is a historical block vector information list common to the first prediction mode and the IBC mode.
- the priority of the second historical block vector information in the first historical block vector information list and belonging to the first prediction mode is lower than the priority of the third historical block vector information in the first historical block vector information list and belonging to the IBC mode.
- the first historical block vector information list is a historical block vector information list of the first prediction mode, and the first historical block vector information and the second historical block vector information list of the IBC mode are both used to determine the candidate block vector information list.
- the first historical block vector information list is used to determine the priority of the candidate block vector information list, which is lower than the priority of the second historical block vector information list used to determine the candidate block vector information list.
- the current image to which the current block belongs is divided into multiple regions, the multiple regions include the region where the current block is located, and the first historical block vector information list is a historical block vector information list corresponding to the region.
- the device embodiment of the encoder and the method embodiment of the encoding method can correspond to each other, and similar descriptions can refer to the method embodiment. To avoid repetition, it is not repeated here.
- the encoder 700 shown in Figure 16 can correspond to the corresponding subject in the encoding method 500 of the embodiment of the present application, and the aforementioned and other operations and/or functions of each unit in the encoder 700 are respectively for implementing the corresponding processes in each method 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. 17 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, such as at least one disk memory; optionally, it may 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. Volatile memory.
- the non-volatile memory can 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 can be a random access memory (RAM), which is used as an external cache.
- RAM random access memory
- DRAM dynamic random access memory
- SDRAM synchronous dynamic random access memory
- DDR SDRAM double data rate synchronous dynamic random access memory
- ESDRAM enhanced synchronous dynamic random access memory
- SLDRAM synchronous link dynamic random access memory
- DR RAM direct memory bus random access memory
- 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 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 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)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
predC=c0C+c1N+c2S+c3E+c4W+c5B。
Pred=(wIntra*pred_intra+wInter*pred_inter+4)>>3。
Claims (46)
- 一种解码方法,其特征在于,包括:基于与帧内块复制IBC模式不同的第一预测模式确定当前块使用的块矢量信息;基于所述当前块使用的块矢量信息确定第一历史块矢量信息;基于所述第一历史块矢量信息更新第一历史块矢量信息列表;其中,所述第一历史块矢量信息列表用于确定IBC块使用的候选块矢量信息列表,所述IBC块为在所述当前块之后使用所述IBC模式解码的块。
- 根据权利要求1所述的方法,其特征在于,所述第一预测模式包括帧内模板匹配预测IntraTMP模式。
- 根据权利要求1或2所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息确定第一历史块矢量信息,包括:基于所述当前块使用的块矢量信息中的至少一个块矢量和所述至少一个块矢量的数量,确定所述第一历史块矢量信息中的块矢量。
- 根据权利要求3所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息中的至少一个块矢量和所述至少一个块矢量的数量,确定所述第一历史块矢量信息中的块矢量,包括:若所述至少一个块矢量的数量小于或等于第一预设数值,则将所述至少一个块矢量确定为所述第一历史块矢量信息中的块矢量。
- 根据权利要求3所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息中的至少一个块矢量和所述至少一个块矢量的数量,确定所述第一历史块矢量信息中的块矢量,包括:若所述至少一个块矢量的数量大于第二预设数值,则按照以下中的任一项确定所述第一历史块矢量信息中的块矢量:将所述至少一个块矢量的加权平均值,确定为所述第一历史块矢量信息中的块矢量;将所述至少一个块矢量中模板误差值最小的一个或多个块矢量,确定为所述第一历史块矢量信息中的块矢量;将所述至少一个块矢量中参考块的误差值最小的一个或多个块矢量,确定为所述第一历史块矢量信息中的块矢量。
- 根据权利要求1至5中任一项所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息确定第一历史块矢量信息,包括:若所述当前块使用亚像素插值的预测方式,则将所述当前块使用的块矢量信息中的第一块矢量确定为所述第一历史块矢量信息中的块矢量,或将基于所述第一块矢量的调整量对所述第一块矢量进行调整得到的第二块矢量,确定为所述第一历史块矢量信息中的块矢量。
- 根据权利要求6所述的方法,其特征在于,所述将所述当前块使用的块矢量信息中的第一块矢量确定为所述第一历史块矢量信息中的块矢量,或将基于所述第一块矢量的调整量对所述第一块矢量进行调整得到的第二块矢量,确定为所述第一历史块矢量信息中的块矢量,包括:若所述第一块矢量的精度等于所述亚像素插值的精度,则将所述第一块矢量确定为所述第一历史块矢量信息中的块矢量。
- 根据权利要求6所述的方法,其特征在于,所述将所述当前块使用的块矢量信息中的第一块矢量确定为所述第一历史块矢量信息中的块矢量,或将基于所述第一块矢量的调整量对所述第一块矢量进行调整得到的第二块矢量,确定为所述第一历史块矢量信息中的块矢量,包括:若所述第一块矢量的精度大于所述亚像素插值的精度,则将所述第二块矢量确定为所述第一历史块矢量信息中的块矢量。
- 根据权利要求1至8中任一项所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息确定第一历史块矢量信息,包括:若所述第一历史块矢量信息包括第三块矢量,则将所述当前块使用的块矢量信息中的且与用于确定所述第三块矢量的一个或多个块矢量对应的精度,确定为所述第三块矢量的精度;所述第一历史块矢量信息包括所述第三块矢量的精度。
- 根据权利要求1至9中任一项所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息确定第一历史块矢量信息,包括:将所述当前块使用的块矢量信息包括的以下中的至少一项,确定为所述第一历史块矢量信息中的信息:所述当前块的坐标信息;用于指示是否对所述当前块的预测块光照补偿的标识;用于指示是否对所述当前块的预测块滤波的标识;用于指示是否翻转所述当前块的参考块的标识;用于指示所述当前块使用的预测模式是否为所述IBC模式的标识;用于指示所述当前块使用的预测模式是否为所述第一预测模式的标识;用于指示所述当前块使用的预测模式的索引;用于指示所述当前块使用的多个参考块的权重的索引。
- 根据权利要求1至10中任一项所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息确定第一历史块矢量信息,包括:解码码流,确定第一标识;若所述第一标识指示基于所述第一预测模式更新所述第一历史块矢量信息列表,则基于所述当前块使用的块矢量信息确定所述第一历史块矢量信息。
- 根据权利要求1至11中任一项所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息确定第一历史块矢量信息,包括:若所述当前块使用的块矢量信息中的块矢量的数量小于或等于第三预设数值,则基于所述当前块使用的块矢量信息确定所述第一历史块矢量信息。
- 根据权利要求1至12中任一项所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息确定第一历史块矢量信息,包括:若满足以下条件中的至少一项,则基于所述当前块使用的块矢量信息确定所述第一历史块矢量信息:所述当前块的面积大于或等于第一阈值;所述当前块的宽大于或等于第二阈值;所述当前块的高大于或等于第三阈值;所述当前块所属的当前图像的类型为预设的类型。
- 根据权利要求1至13中任一项所述的方法,其特征在于,所述基于所述第一历史块矢量信息更新第一历史块矢量信息列表,包括:若所述第一历史块矢量信息列表包括所述第一历史块矢量信息,则将所述第一历史块矢量信息,移动至所述第一历史块矢量信息列表的末尾。
- 根据权利要求1至13中任一项所述的方法,其特征在于,所述基于所述第一历史块矢量信息更新第一历史块矢量信息列表,包括:若所述第一历史块矢量信息列表中的历史块矢量信息的数量小于第四预设数值,则将所述第一历史块矢量信息添加至所述第一历史块矢量信息列表;否则,将所述第一历史块矢量信息列表中排在最前的历史块矢量信息移出,并将所述第一历史块矢量信息添加至所述第一历史块矢量信息列表的末尾。
- 根据权利要求1至15中任一项所述的方法,其特征在于,所述第一历史块矢量信息列表为所述第一预测模式和所述IBC模式共同的历史块矢量信息列表。
- 根据权利要求16所述的方法,其特征在于,所述第一历史块矢量信息列表用于确定所述候选块矢量信息列表时,所述第一历史块矢量信息列表中的且属于所述第一预测模式的第二历史块矢量信息的优先级,低于所述第一历史块矢量信息列表中的且属于所述IBC模式的第三历史块矢量信息的优先级。
- 根据权利要求1至15中任一项所述的方法,其特征在于,所述第一历史块矢量信息列表为所述第一预测模式的历史块矢量信息列表,所述第一历史块矢量信息和所述IBC模式的第二历史块矢量信息列表均用于确定所述候选块矢量信息列表。
- 根据权利要求18所述的方法,其特征在于,所述第一历史块矢量信息列表用于确定所述候选块矢量信息列表的优先级,低于所述第二历史块矢量信息列表用于确定所述候选块矢量信息列表的优先级。
- 根据权利要求1至15中任一项所述的方法,其特征在于,所述当前块所属的当前图像经过划分包括多个区域,所述多个区域包括所述当前块的所在区域,所述第一历史块矢量信息列表为所述所在区域对应的历史块矢量信息列表。
- 一种编码方法,其特征在于,包括:基于与帧内块复制IBC模式不同的第一预测模式确定当前块使用的块矢量信息;基于所述当前块使用的块矢量信息确定第一历史块矢量信息;基于所述第一历史块矢量信息更新第一历史块矢量信息列表;其中,所述第一历史块矢量信息列表用于确定IBC块使用的候选块矢量信息列表,所述IBC块为在所述当前块之后使用所述IBC模式编码的块。
- 根据权利要求21所述的方法,其特征在于,所述第一预测模式包括帧内模板匹配预测IntraTMP模式。
- 根据权利要求21或22所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息确定第一历史块矢量信息,包括:基于所述当前块使用的块矢量信息中的至少一个块矢量和所述至少一个块矢量的数量,确定所述第一历史块矢量信息中的块矢量。
- 根据权利要求23所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息中的至少一个块矢量和所述至少一个块矢量的数量,确定所述第一历史块矢量信息中的块矢量,包括:若所述至少一个块矢量的数量小于或等于第一预设数值,则将所述至少一个块矢量确定为所述第一历史块矢量信息中的块矢量。
- 根据权利要求23所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息中的至少一个块矢量和所述至少一个块矢量的数量,确定所述第一历史块矢量信息中的块矢量,包括:若所述至少一个块矢量的数量大于第二预设数值,则按照以下中的任一项确定所述第一历史块矢量信息中的块矢量:将所述至少一个块矢量的加权平均值,确定为所述第一历史块矢量信息中的块矢量;将所述至少一个块矢量中模板误差值最小的一个或多个块矢量,确定为所述第一历史块矢量信息中的块矢量;将所述至少一个块矢量中参考块的误差值最小的一个或多个块矢量,确定为所述第一历史块矢量信息中的块矢量。
- 根据权利要求21至25中任一项所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息确定第一历史块矢量信息,包括:若所述当前块使用亚像素插值的预测方式,则将所述当前块使用的块矢量信息中的第一块矢量确定为所述第一历史块矢量信息中的块矢量,或将基于所述第一块矢量的调整量对所述第一块矢量进行调整得到的第二块矢量,确定为所述第一历史块矢量信息中的块矢量。
- 根据权利要求26所述的方法,其特征在于,所述将所述当前块使用的块矢量信息中的第一块矢量确定为所述第一历史块矢量信息中的块矢量,或将基于所述第一块矢量的调整量对所述第一块矢量进行调整得到的第二块矢量,确定为所述第一历史块矢量信息中的块矢量,包括:若所述第一块矢量的精度等于所述亚像素插值的精度,则将所述第一块矢量确定为所述第一历史块矢量信息中的块矢量。
- 根据权利要求26所述的方法,其特征在于,所述将所述当前块使用的块矢量信息中的第一块矢量确定为所述第一历史块矢量信息中的块矢量,或将基于所述第一块矢量的调整量对所述第一块矢量进行调整得到的第二块矢量,确定为所述第一历史块矢量信息中的块矢量,包括:若所述第一块矢量的精度大于所述亚像素插值的精度,则将所述第二块矢量确定为所述第一历史块矢量信息中的块矢量。
- 根据权利要求21至28中任一项所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息确定第一历史块矢量信息,包括:若所述第一历史块矢量信息包括第三块矢量,则将所述当前块使用的块矢量信息中的且与用于确定所述第三块矢量的一个或多个块矢量对应的精度,确定为所述第三块矢量的精度;所述第一历史块矢量信息包括所述第三块矢量的精度。
- 根据权利要求21至29中任一项所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息确定第一历史块矢量信息,包括:将所述当前块使用的块矢量信息包括的以下中的至少一项,确定为所述第一历史块矢量信息中的信息:所述当前块的坐标信息;用于指示是否对所述当前块的预测块光照补偿的标识;用于指示是否对所述当前块的预测块滤波的标识;用于指示是否翻转所述当前块的参考块的标识;用于指示所述当前块使用的预测模式是否为所述IBC模式的标识;用于指示所述当前块使用的预测模式是否为所述第一预测模式的标识;用于指示所述当前块使用的预测模式的索引;用于指示所述当前块使用的多个参考块的权重的索引。
- 根据权利要求21至30中任一项所述的方法,其特征在于,所述方法还包括:对第一标识进行编码;其中,所述第一标识指示基于所述第一预测模式更新所述第一历史块矢量信息列表。
- 根据权利要求21至31中任一项所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息确定第一历史块矢量信息,包括:若所述当前块使用的块矢量信息中的块矢量的数量小于或等于第三预设数值,则基于所述当前块使用的块矢量信息确定所述第一历史块矢量信息。
- 根据权利要求21至32中任一项所述的方法,其特征在于,所述基于所述当前块使用的块矢量信息确定第一历史块矢量信息,包括:若满足以下条件中的至少一项,则基于所述当前块使用的块矢量信息确定所述第一历史块矢量信息:所述当前块的面积大于或等于第一阈值;所述当前块的宽大于或等于第二阈值;所述当前块的高大于或等于第三阈值;所述当前块所属的当前图像的类型为预设的类型。
- 根据权利要求21至33中任一项所述的方法,其特征在于,所述基于所述第一历史块矢量信息更新第一历史块矢量信息列表,包括:若所述第一历史块矢量信息列表包括所述第一历史块矢量信息,则将所述第一历史块矢量信息,移动至所述第一历史块矢量信息列表的末尾。
- 根据权利要求21至33中任一项所述的方法,其特征在于,所述基于所述第一历史块矢量信息更新第一历史块矢量信息列表,包括:若所述第一历史块矢量信息列表中的历史块矢量信息的数量小于第四预设数值,则将所述第一历史块矢量信息添加至所述第一历史块矢量信息列表;否则,将所述第一历史块矢量信息列表中排在最前的历史块矢量信息移出,并将所述第一历史块矢量信息添加至所述第一历史块矢量信息列表的末尾。
- 根据权利要求21至35中任一项所述的方法,其特征在于,所述第一历史块矢量信息列表为所述第一预测模式和所述IBC模式共同的历史块矢量信息列表。
- 根据权利要求36所述的方法,其特征在于,所述第一历史块矢量信息列表用于确定所述候选块矢量信息列表时,所述第一历史块矢量信息列表中的且属于所述第一预测模式的第二历史块矢量信息的优先级,低于所述第一历史块矢量信息列表中的且属于所述IBC模式的第三历史块矢量信息的优先级。
- 根据权利要求21至35中任一项所述的方法,其特征在于,所述第一历史块矢量信息列表为所述第一预测模式的历史块矢量信息列表,所述第一历史块矢量信息和所述IBC模式的第二历史块矢量信息列表均用于确定所述候选块矢量信息列表。
- 根据权利要求38所述的方法,其特征在于,所述第一历史块矢量信息列表用于确定所述候选块矢量信息列表的优先级,低于所述第二历史块矢量信息列表用于确定所述候选块矢量信息列表的优先级。
- 根据权利要求21至35中任一项所述的方法,其特征在于,所述当前块所属的当前图像经过划分包括多个区域,所述多个区域包括所述当前块的所在区域,所述第一历史块矢量信息列表为所述所在区域对应的历史块矢量信息列表。
- 一种解码器,其特征在于,包括:第一确定单元,用于基于与帧内块复制IBC模式不同的第一预测模式确定当前块使用的块矢量信息;第二确定单元,用于基于所述当前块使用的块矢量信息确定第一历史块矢量信息;更新单元,用于基于所述第一历史块矢量信息更新第一历史块矢量信息列表;其中,所述第一历史块矢量信息列表用于确定IBC块使用的候选块矢量信息列表,所述IBC块为在所述当前块之后使用所述IBC模式解码的块。
- 一种编码器,其特征在于,包括:第一确定单元,用于基于与帧内块复制IBC模式不同的第一预测模式确定当前块使用的块矢量信息;第二确定单元,用于基于所述当前块使用的块矢量信息确定第一历史块矢量信息;更新单元,用于基于所述第一历史块矢量信息更新第一历史块矢量信息列表;其中,所述第一历史块矢量信息列表用于确定IBC块使用的候选块矢量信息列表,所述IBC块为在所述当前块之后使用所述IBC模式编码的块。
- 一种电子设备,其特征在于,包括:处理器,适于执行计算机程序;计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被所述处理器执行时,实现根据权利要求1至20中任一项所述的方法或根据权利要求21至40中任一项所述的方法。
- 一种计算机可读存储介质,其特征在于,用于存储计算机程序,当所述计算机程序在计算机上运行时,使得计算机执行根据权利要求1至20中任一项所述的方法或根据权利要求21至40中任一项所述的方法。
- 一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现根据权利要求1至20中任一项所述的方法或根据权利要求21至40中任一项所述的方法。
- 一种码流,其特征在于,所述码流为根据权利要求1至20中任一项所述的方法解码的码流,或所述码流为根据权利要求25至40中任一项所述的方法生成的码流。
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2023/105582 WO2025007253A1 (zh) | 2023-07-03 | 2023-07-03 | 解码方法、编码方法、解码器以及编码器 |
| KR1020257041960A KR20260030061A (ko) | 2023-07-03 | 2023-07-03 | 디코딩 방법, 인코딩 방법, 디코더 및 인코더 |
| CN202380099902.2A CN121488470A (zh) | 2023-07-03 | 2023-07-03 | 解码方法、编码方法、解码器以及编码器 |
| MX2025015139A MX2025015139A (es) | 2023-07-03 | 2025-12-15 | Metodo de decodificacion, metodo de codificacion, decodificador y codificador |
| US19/422,083 US20260106970A1 (en) | 2023-07-03 | 2025-12-16 | Decoding method, encoding method, decoder and encoder |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2023/105582 WO2025007253A1 (zh) | 2023-07-03 | 2023-07-03 | 解码方法、编码方法、解码器以及编码器 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US19/422,083 Continuation US20260106970A1 (en) | 2023-07-03 | 2025-12-16 | Decoding method, encoding method, decoder and encoder |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025007253A1 true WO2025007253A1 (zh) | 2025-01-09 |
Family
ID=94171085
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/105582 Ceased WO2025007253A1 (zh) | 2023-07-03 | 2023-07-03 | 解码方法、编码方法、解码器以及编码器 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20260106970A1 (zh) |
| KR (1) | KR20260030061A (zh) |
| CN (1) | CN121488470A (zh) |
| MX (1) | MX2025015139A (zh) |
| WO (1) | WO2025007253A1 (zh) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110708541A (zh) * | 2018-07-09 | 2020-01-17 | 腾讯美国有限责任公司 | 视频编解码方法、设备和存储介质 |
| CN113924779A (zh) * | 2019-06-20 | 2022-01-11 | 韩国电子通信研究院 | 视频编码/解码方法和装置以及比特流存储介质 |
| WO2022242645A1 (en) * | 2021-05-17 | 2022-11-24 | Beijing Bytedance Network Technology Co., Ltd. | Method, device, and medium for video processing |
-
2023
- 2023-07-03 KR KR1020257041960A patent/KR20260030061A/ko active Pending
- 2023-07-03 WO PCT/CN2023/105582 patent/WO2025007253A1/zh not_active Ceased
- 2023-07-03 CN CN202380099902.2A patent/CN121488470A/zh active Pending
-
2025
- 2025-12-15 MX MX2025015139A patent/MX2025015139A/es unknown
- 2025-12-16 US US19/422,083 patent/US20260106970A1/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110708541A (zh) * | 2018-07-09 | 2020-01-17 | 腾讯美国有限责任公司 | 视频编解码方法、设备和存储介质 |
| CN113924779A (zh) * | 2019-06-20 | 2022-01-11 | 韩国电子通信研究院 | 视频编码/解码方法和装置以及比特流存储介质 |
| WO2022242645A1 (en) * | 2021-05-17 | 2022-11-24 | Beijing Bytedance Network Technology Co., Ltd. | Method, device, and medium for video processing |
Non-Patent Citations (2)
| Title |
|---|
| J.-K. LEE (OFINNO), D. RUIZ COLL (OFINNO), V. WARUDKAR (OFINNO): "AHG12: Using block vector derived from IntraTMP as an IBC candidate for the current block", 29. JVET MEETING; 20230111 - 20230120; TELECONFERENCE; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), no. 030306800, 4 January 2023 (2023-01-04), XP030306800 * |
| W. LIM, D. KIM, J. KIM, S.-C. LIM (ETRI): "EE2-3.2: Using block vector derived from IntraTMP for IBC", 28. JVET MEETING; 20221021 - 20221028; MAINZ; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), no. JVET-AB0061 ; m60789, 14 October 2022 (2022-10-14), XP030304484 * |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20260030061A (ko) | 2026-03-05 |
| US20260106970A1 (en) | 2026-04-16 |
| MX2025015139A (es) | 2026-02-03 |
| CN121488470A (zh) | 2026-02-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20250317604A1 (en) | Multiple neural network models for filtering during video coding | |
| CN111226438B (zh) | 视频解码的方法及解码器 | |
| RU2586003C2 (ru) | Определение значений уровня границы фильтрования удаления блочности для кодирования видео | |
| WO2020069655A1 (zh) | 插值滤波器的训练方法、装置及视频图像编解码方法、编解码器 | |
| TW201817236A (zh) | 用於視頻寫碼之線性模型色度內預測 | |
| JP7277586B2 (ja) | モードおよびサイズに依存したブロックレベル制限の方法および装置 | |
| KR20210107131A (ko) | 이미지 예측 방법, 장치 및 시스템, 디바이스 및 저장 매체 | |
| KR20230111256A (ko) | 비디오 인코딩 및 디코딩 방법과 시스템, 비디오 인코더및 비디오 디코더 | |
| US11516470B2 (en) | Video coder and corresponding method | |
| CN113556566A (zh) | 用于预测译码的插值滤波的方法及装置 | |
| CN118525513A (zh) | 帧内预测方法、设备、系统、及存储介质 | |
| US11917203B2 (en) | Non-separable transform method and device | |
| CN111327894A (zh) | 块划分方法、视频编解码方法、视频编解码器 | |
| CN112135128A (zh) | 图像预测方法、编码树节点划分方法及其装置 | |
| WO2024216632A1 (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
| WO2025007253A1 (zh) | 解码方法、编码方法、解码器以及编码器 | |
| CN116746152A (zh) | 视频编解码方法与系统、及视频编码器与视频解码器 | |
| WO2025000289A9 (zh) | 解码方法、编码方法、解码器以及编码器 | |
| WO2024239260A1 (zh) | 解码方法、编码方法、训练方法、解码器以及编码器 | |
| WO2025010571A9 (zh) | 编码方法、编码器以及电子设备 | |
| WO2025098301A1 (zh) | 滤波方法、装置、电子设备以及存储介质 | |
| WO2024254872A1 (zh) | 解码方法、编码方法、解码器以及编码器 | |
| WO2025097878A1 (zh) | 滤波方法、装置、电子设备以及存储介质 | |
| WO2024192733A9 (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
| WO2026081207A1 (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: 23943987 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: MX/A/2025/015139 Country of ref document: MX |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202617008764 Country of ref document: IN |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2026102125 Country of ref document: RU |
|
| WWP | Wipo information: published in national office |
Ref document number: MX/A/2025/015139 Country of ref document: MX |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWP | Wipo information: published in national office |
Ref document number: 2026102125 Country of ref document: RU |
|
| WWP | Wipo information: published in national office |
Ref document number: 202617008764 Country of ref document: IN |