WO2021056212A1 - Method and apparatus for video encoding and decoding - Google Patents
Method and apparatus for video encoding and decoding Download PDFInfo
- Publication number
- WO2021056212A1 WO2021056212A1 PCT/CN2019/107598 CN2019107598W WO2021056212A1 WO 2021056212 A1 WO2021056212 A1 WO 2021056212A1 CN 2019107598 W CN2019107598 W CN 2019107598W WO 2021056212 A1 WO2021056212 A1 WO 2021056212A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- image block
- interpolation filter
- interpolation
- image
- Prior art date
Links
Images
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/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- 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/117—Filters, e.g. for pre-processing or post-processing
-
- 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
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
Definitions
- This application relates to the field of image processing, and more specifically, to a video coding and decoding method and device.
- Prediction is an important module of the mainstream video coding framework.
- Prediction can include intra-frame prediction and inter-frame prediction.
- the inter prediction modes may include Advanced Motion Vector Prediction (AMVP) mode, Merge mode, and Skip mode.
- AMVP Advanced Motion Vector Prediction
- Merge mode the MVP can be determined in the motion vector prediction (MVP) candidate list, and the MVP can be directly determined as the MV, and the MVP and reference frame index can be transmitted to the decoder in the code stream. Used for decoding on the decoder side.
- Skip mode only the index of the MVP needs to be passed, and there is no need to pass the MVD, and there is no need to pass the residual.
- the motion information of the encoded or decoded block is used to update the motion vector of the next to be encoded or decoded block List of predicted values.
- pixel interpolation is performed on the current image block or the reference block of the coding block, it is often dependent on reading the MVP in the candidate list of the motion vector predictor and its corresponding interpolation filter, which will make the motion used by the adjacent image block
- the dependence of the vector and the corresponding interpolation filter is strong. Therefore, the encoding and decoding methods in the prior art will result in a decrease in the encoding and decoding efficiency and the performance loss of the encoding and decoding device.
- the embodiments of the present application provide a video coding and decoding method and device, which can avoid the current image block from relying too much on interpolation filters used by neighboring blocks, and improve coding and decoding efficiency.
- a video encoding and decoding method which includes: when pixel interpolation is performed on an image block of a current image, one of at least two interpolation filters can be used for pixel interpolation, and the current image includes a first image block. And a second image block; using a first interpolation filter to perform pixel interpolation on the reference block of the first image block; using a default interpolation filter to perform pixel interpolation on the reference block of the second image block, the first image The block is an adjacent block of the second image block.
- a video encoding and decoding device in a second aspect, includes: a memory, configured to store executable instructions; a processor, configured to execute the instructions stored in the memory, so that the video A coding and decoding method, which includes the operations in the method of the first aspect described above.
- a video codec which includes the video codec device of the second aspect described above, and a body, and the codec device is installed on the body.
- a computer-readable storage medium stores program instructions, and the program instructions can be used to instruct to perform the method of the first aspect.
- the first interpolation filter is used to perform pixel interpolation on the reference block of the first image block; the default interpolation filter is used to perform pixel interpolation on the reference block of the second image block, and the first interpolation filter is used to perform pixel interpolation on the reference block of the second image block.
- the image block is the adjacent block of the second image block, and the reference block of the second image block uses the default interpolation filter during the interpolation process, which does not inherit or read the interpolation filter used by the first image block , Reducing its dependence on the coding and decoding of the first image block, therefore, in the coding and decoding process, the coding and decoding efficiency is improved, and the performance of the coding and decoding device is improved.
- Fig. 1 is a structural diagram of a technical solution according to an embodiment of the present application.
- Fig. 2 is a schematic diagram of a video coding framework 2 according to an embodiment of the present application.
- Fig. 3 is a schematic diagram of adjacent blocks of an image block according to an embodiment of the present application.
- Fig. 4 is a schematic flowchart of a video encoding and decoding method according to an embodiment of the present application.
- Fig. 5 is a schematic block diagram of a video encoding and decoding device according to an embodiment of the present application.
- Fig. 1 is a structural diagram of a technical solution applying an embodiment of the present application.
- the system 100 can receive the data 102 to be processed, process the data 102 to be processed, and generate processed data 108.
- the system 100 may receive the data to be encoded and encode the data to be encoded to generate encoded data, or the system 100 may receive the data to be decoded and decode the data to be decoded to generate decoded data.
- the components in the system 100 may be implemented by one or more processors.
- the processor may be a processor in a computing device or a processor in a mobile device (such as a drone).
- the processor may be any type of processor, which is not limited in the embodiment of the present application.
- the processor may include an encoder, a decoder, or a codec, etc.
- the system 100 may also include one or more memories.
- the memory can be used to store instructions and data, for example, computer-executable instructions that implement the technical solutions of the embodiments of the present application, to-be-processed data 102, processed data 108, and so on.
- the memory can be any type of memory, which is not limited in the embodiment of the present application.
- the data to be encoded may include text, images, graphic objects, animation sequences, audio, video, or any other data that needs to be encoded.
- the data to be encoded may include sensor data from sensors, which may be vision sensors (for example, cameras, infrared sensors), microphones, near-field sensors (for example, ultrasonic sensors, radars), position sensors, and temperature sensors. Sensors, touch sensors, etc.
- the data to be encoded may include information from the user, for example, biological information, which may include facial features, fingerprint scans, retinal scans, voice recordings, DNA sampling, and the like.
- Fig. 2 is a schematic diagram of a video coding framework 2 according to an embodiment of the present application.
- FIG. 2 after receiving the video to be encoded, starting from the first frame of the video to be encoded, each frame in the video to be encoded is encoded in turn.
- the current coded frame mainly undergoes processing such as prediction (Prediction), transformation (Transform), quantization (Quantization), and entropy coding (Entropy Coding), and finally the bit stream of the current coded frame is output.
- the decoding process usually decodes the received bitstream according to the inverse process of the above process to recover the video frame information before decoding.
- the video encoding framework 2 includes an encoding control module 201, which is used to perform decision-making control actions and parameter selection in the encoding process.
- the encoding control module 202 controls the parameters used in transformation, quantization, inverse quantization, and inverse transformation, controls the selection of intra or inter mode, and parameter control of motion estimation and filtering, and
- the control parameters of the encoding control module 202 will also be input to the entropy encoding module, and the encoding will be performed to form a part of the encoded bitstream.
- the encoded frame is partitioned 202, specifically, it is firstly divided into slices, and then divided into blocks.
- the coded frame is divided into a plurality of non-overlapping largest coding tree units (Coding Tree Units, CTUs), and each CTU can also be in a quadtree, or binary tree, or triple tree manner. Iteratively divides into a series of smaller coding units (Coding Unit, CU).
- the CU may also include a prediction unit (Prediction Unit, PU) and a transformation unit (Transform Unit, TU) associated with it.
- the PU It is the basic unit of prediction
- TU is the basic unit of transformation and quantization.
- the PU and TU are respectively obtained by dividing into one or more blocks on the basis of the CU, where one PU includes multiple prediction blocks (PB) and related syntax elements.
- the PU and TU may be the same, or they may be obtained by the CU through different division methods.
- at least two of the CU, PU, and TU are the same.
- CU, PU, and TU are not distinguished, and prediction, quantization, and transformation are all performed in units of CU.
- the CTU, CU, or other formed data units are all referred to as coding blocks in the following.
- the data unit for video encoding may be a frame, a slice, a coding tree unit, a coding unit, a coding block, or any group of the above.
- the size of the data unit can vary.
- a prediction process is performed to remove the spatial and temporal redundant information of the current coded frame.
- predictive coding methods include intra-frame prediction and inter-frame prediction.
- Intra-frame prediction uses only the reconstructed information in the current frame to predict the current coding block
- inter-frame prediction uses the information in other previously reconstructed frames (also called reference frames) to predict the current coding block.
- Make predictions Specifically, in this embodiment of the present application, the encoding control module 202 is used to make a decision to select intra-frame prediction or inter-frame prediction.
- the process of intra-frame prediction 203 includes obtaining the reconstructed block of the coded neighboring block around the current coding block as a reference block, and based on the pixel value of the reference block, the prediction mode method is used to calculate the predicted value to generate the predicted block , Subtracting the corresponding pixel values of the current coding block and the prediction block to obtain the residual of the current coding block, the residual of the current coding block is transformed 204, quantized 205, and entropy coding 210 to form the code stream of the current coding block. Further, after all the coded blocks of the current coded frame undergo the above-mentioned coding process, they form a part of the coded stream of the coded frame. In addition, the control and reference data generated in the intra-frame prediction 203 are also encoded by the entropy encoding 210 to form a part of the encoded bitstream.
- the transform 204 is used to remove the correlation of the residual of the image block, so as to improve the coding efficiency.
- the transformation of the residual data of the current coding block usually adopts two-dimensional discrete cosine transform (DCT) transformation and two-dimensional discrete sine transform (DST) transformation, for example, the residual information of the coded block Respectively multiply an N ⁇ M transformation matrix and its transposed matrix, and obtain the transformation coefficient of the current coding block after the multiplication.
- DCT discrete cosine transform
- DST two-dimensional discrete sine transform
- quantization 205 is used to further improve the compression efficiency.
- the transform coefficients can be quantized to obtain the quantized coefficients, and then the quantized coefficients are entropy-encoded 210 to obtain the residual code stream of the current encoding block. But it is not limited to content adaptive binary arithmetic coding (Context Adaptive Binary Arithmetic Coding, CABAC) entropy coding.
- CABAC Context Adaptive Binary Arithmetic Coding
- the coded neighboring block in the intra prediction 203 process is: the neighboring block that has been coded before the current coding block is coded, and the residual generated in the coding process of the neighboring block is transformed 204, quantized 205, After inverse quantization 206 and inverse transform 207, the reconstructed block is obtained by adding the prediction block of the neighboring block.
- the inverse quantization 206 and the inverse transformation 207 are the inverse processes of the quantization 206 and the transformation 204, which are used to restore the residual data before the quantization and transformation.
- the inter-frame prediction process includes motion estimation (ME) 208 and motion compensation (MC) 209.
- the motion estimation is performed 208 according to the reference frame image in the reconstructed video frame, and the image block most similar to the current encoding block is searched for in one or more reference frame images according to a certain matching criterion as a matching block.
- the relative displacement with the current coding block is the motion vector (Motion Vector, MV) of the current coding block.
- MV Motion Vector
- the original value of the pixel of the coding block is subtracted from the pixel value of the corresponding prediction block to obtain the residual of the coding block.
- the residual of the current coding block is transformed 204, quantized 205, and entropy coding 210 to form a part of the code stream of the coded frame.
- the control and reference data generated in the motion compensation 209 are also encoded by the entropy encoding 210 to form a part of the encoded bitstream.
- the reconstructed video frame is a video frame obtained after filtering 211.
- Filtering 211 is used to reduce compression distortions such as blocking effects and ringing effects generated in the encoding process.
- the reconstructed video frame is used to provide reference frames for inter-frame prediction during the encoding process.
- the reconstructed video frame is output after post-processing For the final decoded video.
- the inter prediction modes in the video coding standard may include AMVP mode, Merge mode and Skip mode.
- the MVP can be determined first. After the MVP is obtained, the starting point of the motion estimation can be determined according to the MVP, and the motion search is performed near the starting point. After the search is completed, the optimal MV is obtained.
- the MV determines the reference block in With reference to the position in the image, the reference block is subtracted from the current block to obtain the residual block, and the MV is subtracted from the MVP to obtain the Motion Vector Difference (MVD), and the MVD is transmitted to the decoder through the code stream.
- MVD Motion Vector Difference
- the MVP For the Merge mode, you can determine the MVP first, and directly determine the MVP as the MV. Among them, in order to obtain the MVP, you can first build a MVP candidate list (merge candidate list), in the MVP candidate list, you can include at least one candidate MVP, each candidate MVP can correspond to an index, the encoding end is from the MVP candidate list After selecting the MVP, the MVP index can be written into the code stream, and the decoder can find the MVP corresponding to the index from the MVP candidate list according to the index, so as to realize the decoding of the image block.
- a MVP candidate list Merge candidate list
- the MVP candidate list you can include at least one candidate MVP, each candidate MVP can correspond to an index
- the encoding end is from the MVP candidate list
- the MVP index can be written into the code stream
- the decoder can find the MVP corresponding to the index from the MVP candidate list according to the index, so as to realize the decoding of the image block.
- the MVP candidate list may include temporal candidate motion vectors, spatial candidate motion vectors, pairwise motion vectors, or zero motion vectors.
- the pairwise motion vector can be obtained by averaging or weighted averaging based on the existing motion vectors in the candidate list.
- the spatial candidate motion vector is obtained from the position of the gray box from 1 to 5 in Figure 3, and the temporal candidate motion vector is obtained from the co-located CU in the coded image adjacent to the current CU.
- the temporal candidate motion vector cannot be directly used as a candidate.
- the motion information of the block needs to be adjusted according to the position relationship of the reference image. The specific scaling method will not be repeated here.
- Skip mode it is a special merge mode that only needs to pass the index of the MVP. In addition to the need to transmit MVD information, there is also no need to transmit residuals.
- Skip mode is a special case of Merge mode. After obtaining the MV according to the Merge mode, if the encoder determines that the current block is basically the same as the reference block, then there is no need to transmit residual data, only the index of the MV needs to be transmitted, and further a flag can be passed, which can indicate that the current block can be directly Obtained from the reference block.
- the motion vector of the object between two adjacent frames may not be exactly an integer number of pixel units.
- a motion vector with 1/4 pixel accuracy is used for the motion estimation of the luminance component in HEVC.
- the values of these fractional pixels must be approximately interpolated, that is, the line direction and the reference frame K-fold interpolation is performed in the column direction, and a search is performed in the image after interpolation.
- the common AMVP mode sets four types of adaptive motion vector resolution (Advanced Motion Vector Resolution, AMVR) accuracy (integer pixels, 4 pixels, 1/4 pixels and 1/2 accuracy), which need to be explained Yes, the accuracy of these AMVRs is only an example, and the embodiments of this application do not specifically limit the value of pixel accuracy. For example, there may also be 1/8 pixels, 1/16 pixels, etc., here are integer pixels, 4 pixels, 1/ Take 4 pixels and 1/2 pixels as an example.
- AMVR Advanced Motion Vector Resolution
- the corresponding MV accuracy (integer pixel, 4 pixel or 1/4 pixel or 1/2 pixel) is adaptively decided at the encoding end, and Write the result of the decision into the code stream and pass it to the decoding end.
- the number of taps corresponding to interpolation filters of different AMVR accuracy may be different. For example, for 1/4 pixel accuracy, an eight-tap interpolation filter is used. For 1/2 pixel, Gaussian interpolation filter (six-tap interpolation filter) is used. Due to the different interpolation filters used, when storing the motion vector, the interpolation filter currently used by the CU needs to be stored. As an example, the interpolation filter can be represented by 1 bit. When a Gaussian filter (six-tap interpolation filter) is used, it is stored as 1, and when a Gaussian filter is not used, it is stored as 0.
- the interpolation filter used by the current CU needs to be determined according to the identification bit of the interpolation filter.
- the interpolation filter used by the current CU can be understood as an interpolation filter used when performing pixel interpolation on the reference block of the current CU.
- the interpolation filter used by the image block mentioned below can be understood as the interpolation filter used when performing pixel interpolation on the reference block of the image block.
- the MV information of the spatial neighboring block and the temporal neighboring block need to be used in the process of constructing the MVP candidate list, after each CU is encoded, the MV finally used needs to be stored for subsequent follow-up MV reference, the MV will store information such as the value of the MV vector, the index of the reference frame, the prediction mode of the current CU, and so on.
- the current block when the current block is performing motion compensation, it completely inherits the MV of the neighboring block and its corresponding interpolation filter. Therefore, after each CU completes encoding, it is also necessary to store the interpolation filter used by the current CU.
- the specific storage method may also be a 1-bit identification bit for storage, and the storage method may refer to the foregoing description, which will not be repeated here.
- the optimal MV selected by the current block from the motion vector candidate list is the time domain MV. If it is MV0, and the identification bit of the interpolation filter corresponding to the MV0 is 0, it means that the time domain neighboring blocks of the current block are doing
- Gaussian filter is used to perform pixel interpolation on its reference block. Then, after the current block uses MV0 to find the reference block of the current block from the reference frame, it will also use a Gaussian filter, that is, a 6-tap interpolation filter, to perform pixel interpolation on its reference block. After the pixels are interpolated, the prediction of the current block is obtained. Piece.
- the residual block can be obtained by subtracting the current block from the reference block.
- the following solutions provided by the embodiments of the present application can reduce its dependence on the encoding and decoding process of adjacent blocks, thereby improving the encoding and decoding efficiency during the encoding and decoding process, and improving the performance of the encoding and decoding device.
- storage costs can be saved.
- the pixel interpolation of the image block referred to in this application refers to the pixel interpolation of the reference block of the image block, and the interpolation filter used in the process is to use the interpolation filter to perform pixel interpolation on the reference block of the image block .
- FIG. 4 is a schematic flowchart of a video encoding and decoding method 400 according to an embodiment of the present application.
- the method 400 includes at least part of the following content. Among them, the following method 400 can be used on the encoding side and can also be used on the decoding side.
- one of at least two interpolation filters may be used for pixel interpolation, and the current image includes a first image block and a second image block;
- the first interpolation filter is used to perform pixel interpolation on the reference block of the first image block; the default interpolation filter is used to perform pixel interpolation on the reference block of the second image block, and the first image block is the phase of the second image block. Adjacent block.
- interpolation filter used by the image block mentioned in this application can be understood as the interpolation filter adopted/used when performing pixel interpolation on the reference block of the image block.
- the interpolation filter of the neighboring block is not inherited, but the default interpolation filter is used to perform pixel interpolation on the reference block of the second image block .
- the image block in the current image has at least two kinds of interpolation filters to choose from when performing pixel interpolation, for example, including at least a 6-tap interpolation filter and an 8-tap interpolation filter.
- different pixel precisions may also correspond to interpolation filters with different taps.
- AMVR precision interpolation filter as an example, for 1/4 pixel precision, an eight-tap interpolation filter is used.
- Gaussian interpolation filter for 1/2 pixel, Gaussian interpolation filter (six-tap interpolation filter) is used.
- the foregoing corresponding relationship is only an exemplary representation, and does not constitute a limitation to the present application.
- the interpolation filter used by the current CU is not stored, and the identification bit is not set.
- the subsequent CU refers to the previously coded CU, it is not necessary
- the interpolation filter used by the current CU is determined according to the identification bit of the interpolation filter, but the default interpolation filter is directly used.
- the pixel accuracy used for pixel interpolation of the reference block of the second image block is at the sub-pixel level.
- the pixel precision used for pixel interpolation on the reference block of the second image block is 1/2 pixel precision.
- the pixel precision used for pixel interpolation on the reference block of the second image block is 1/2 pixel precision for illustrative purposes only, and other pixel precisions may be used in other embodiments of this application, such as 1/4 pixel precision, 1/ 8 pixel accuracy and so on.
- the embodiments shown in this application can also be applied to pixel interpolation with integer pixel accuracy.
- the first image block is a temporal neighboring block of the second image block.
- the first image block is located on the reference frame
- the second image block is located on the current frame
- the correlation prediction between the first image block and the second image block is inter prediction
- the direction of inter prediction can be forward prediction, Backward prediction, two-way prediction, etc.
- Forward prediction uses the previous reconstructed frame ("historical frame") to predict the current frame.
- Backward prediction is to use frames after the current frame (“future frame”) to predict the current frame.
- Bidirectional prediction uses not only "historical frames” but also "future frames” to predict the current frame. This application is not limited to any one of the above three prediction methods.
- the temporal candidate list is obtained from the co-located CU in the adjacent coded image of the current CU.
- the temporal candidate list cannot directly use the motion information of the candidate block, but needs to be based on The positional relationship of the reference image is adjusted accordingly. The specific scaling method will not be repeated here.
- the bidirectional prediction mode is one of the dual motion vector modes.
- the dual motion vector mode includes dual forward prediction mode, dual backward prediction mode and bidirectional prediction mode.
- the dual forward prediction mode includes two forward motion vectors
- the dual backward prediction mode includes two backward motion vectors.
- the bidirectional prediction mode includes a forward prediction mode and a backward prediction mode.
- the first image block is a spatial neighboring block of the second image block.
- the first image block and the second image block are both located on the current frame.
- the spatial candidate list in the merge mode Obtain from the position of the boxes 1 to 5 in the figure.
- the first interpolation filter used by the first image block is a default interpolation filter or a non-default interpolation filter.
- the first image block may be merge mode, AMVP mode or Skip mode.
- the first interpolation filter is the default interpolation filter.
- the first interpolation filter is the actually selected and determined interpolation filter. Exemplarily, if the pixel accuracy actually selected in AMVR is 1/2 pixel accuracy, a 6-tap interpolation filter is used, and if the actual selected pixel accuracy is 1/4 pixel accuracy, an 8-tap interpolation filter is used. When other pixel accuracy is determined, other interpolation filters can be selected accordingly.
- the default interpolation filter is an interpolation filter with a default number of taps.
- the default interpolation filter refers to an interpolation filter with a default number of taps.
- the interpolation filter with a default number of taps includes a 6-tap interpolation filter or an 8-tap interpolation filter.
- the 6-tap and 8-tap in the embodiment of the present application are only used as an example, and do not constitute a limitation on the default interpolation filter.
- the default interpolation filter is an interpolation filter with a default weight value.
- the weight value For the understanding of the weight value, an explanation is given below. Taking a 6-tap interpolation filter with 1/2 pixel accuracy as an example, one sub-pixel needs to be interpolated between every two whole pixels in the reference block, and the sub-pixel is 1/2 pixel. Since there is no pixel value on the 1/2 pixel, the pixel values of the 6 integral pixels on the left and the 6 integral pixels on the right of the 1/2 pixel need to be used to calculate the pixel of the 1/2 pixel. value.
- the weight value refers to the value given in front of A0 ⁇ A6, which represents the weight value given by the pixel to the final calculation result. It can be seen that, For different pixels, the weight value has been determined as a specific value, and the specific value can be determined by setting or by a default value.
- the first image block may adopt Merge prediction mode or Skip mode.
- the method before using the default interpolation filter to perform pixel interpolation on the reference block of the second image block, the method further includes: obtaining a motion vector candidate list; selecting a motion vector from the motion vector candidate list; determining the first motion vector from the reference frame according to the motion vector The reference block of the second image block; after using the default interpolation filter to perform pixel interpolation on the reference block of the second image block, the method further includes: determining a residual error according to the reference block after the pixel interpolation of the reference block and the second image block.
- the identifier of the first interpolation filter used by the reference block of the first image block is not stored.
- the identifier of the default interpolation filter used by the reference block of the second image block is not stored.
- the foregoing encoding and decoding method can reduce its dependence on the encoding and decoding process of adjacent blocks, thereby improving the encoding and decoding efficiency during the encoding and decoding process, and improving the performance of the encoding and decoding device.
- the type of interpolation filter is not stored, hardware storage resources can be saved.
- the above embodiment is described in the type that all blocks do not store the interpolation filter.
- the corresponding interpolation filter may be stored only for the spatial MV, but not for the time domain MV. Corresponding interpolation filter.
- the identifier of the first interpolation filter used by the reference block of the first image block is stored in the space domain.
- the spatial storage shown in this application refers to storing the identification bit of the interpolation filter used by the reference block of the current block in the buffer of the spatial MV information.
- the type of interpolation filter corresponding to the spatial MV can be directly read from the buffer.
- the identification of the first interpolation filter used by the reference block of the first image block is not stored in the time domain.
- the time-domain storage shown in this application means that the identification bit of the interpolation filter used by the reference block of the current block is not stored in the buffer of the time-domain MV information.
- the corresponding interpolation filter can be stored only for the spatial MV, while the corresponding interpolation filter is not stored for the time domain MV, which can also relieve part of the storage pressure.
- the subsequent CU performs a motion search, if the optimal MV selected from the motion vector candidate list is the time domain MV, the default interpolation filter is directly used to perform pixel interpolation on its reference block. If the optimal MV selected from the motion vector candidate list is a spatial MV, the interpolation filter corresponding to the spatial MV is still used to perform pixel interpolation on the reference block.
- the corresponding interpolation filter is not stored.
- the subsequent CU performs a motion search, it directly uses the default interpolation filter to perform pixel interpolation on its reference block. . This can reduce the storage overhead of the hardware. The process is saved, the coding and decoding efficiency is improved, and the performance of the coding and decoding device is improved.
- only the corresponding interpolation filter is stored for the time domain MV, and the corresponding interpolation filter is not stored for the spatial MV. Since the storage of the time domain MV will also occupy storage space, This results in an increase in storage pressure. Therefore, only the corresponding interpolation filter can be stored for the time domain MV, and the corresponding interpolation filter can not be stored for the spatial MV, so that part of the storage pressure can also be relieved.
- the subsequent CU performs a motion search, if the optimal MV selected from the motion vector candidate list is a spatial MV, the default interpolation filter is directly used to perform pixel interpolation on its reference block. If the optimal MV selected from the motion vector candidate list is the time domain MV, the interpolation filter corresponding to the time domain MV is still used to perform pixel interpolation on the reference block.
- the motion vector candidate list does not include the identifier of the first interpolation filter used by the reference block of the first image block.
- the default interpolation filter is directly used, which can save storage space and ensure coding performance.
- the motion vector candidate list includes one or more of spatial candidate motion vectors, temporal candidate motion vectors, candidate motion vectors based on historical information, and paired candidate motion vectors, where the paired candidate motion vectors are spatial domain candidates.
- One or more of candidate motion vectors, temporal candidate motion vectors, or candidate motion vectors based on historical information are determined.
- the paired candidate motion vector is determined based on the mean/weighted mean of the spatial candidate motion vector and/or the temporal candidate motion vector.
- the default interpolation filter is used to perform pixel interpolation on the reference block of the second image block.
- the embodiment shown in this application can work in the brightness mode.
- the default interpolation filter is used to perform pixel interpolation on the reference block of the second image block.
- the embodiments shown in this application can work in chroma mode.
- the solution of the embodiment of the present application can reduce its dependence on the encoding and decoding process of adjacent blocks, thereby improving the encoding and decoding efficiency during the encoding and decoding process, and improving the performance of the encoding and decoding device, so that it can be used for image blocks. It should be understood that the embodiment of the present application can also be used in a coding and decoding scenario, that is, reducing the storage pressure of the system can be used for other purposes.
- FIG. 5 shows a schematic block diagram of a video encoding and decoding apparatus 500 according to an embodiment of the present application.
- the video encoding and decoding apparatus 500 may include a processor 510, and may further include a memory 520.
- video encoding and decoding apparatus 500 may also include components commonly included in other video encoding and decoding apparatuses, such as input and output devices, communication interfaces, etc., which are not limited in the embodiment of the present application.
- the memory 520 is used to store computer-executable instructions.
- the memory 520 may be various types of memory, for example, it may include a high-speed random access memory (Random Access Memory, RAM), and may also include a non-volatile memory (non-volatile memory), such as at least one magnetic disk memory. The example does not limit this.
- RAM Random Access Memory
- non-volatile memory such as at least one magnetic disk memory. The example does not limit this.
- the processor 510 is configured to access the memory 520 and execute the computer-executable instructions to perform operations in the method for video processing in the foregoing embodiment of the present application.
- the processor 510 may include a microprocessor, a field-programmable gate array (Field-Programmable Gate Array, FPGA), a central processing unit (CPU), a graphics processor (Graphics Processing Unit, GPU), etc.
- a microprocessor a field-programmable gate array (Field-Programmable Gate Array, FPGA), a central processing unit (CPU), a graphics processor (Graphics Processing Unit, GPU), etc.
- FPGA Field-Programmable Gate Array
- CPU central processing unit
- GPU Graphics Processing Unit
- the device for video processing and the computer system in the embodiment of the application may correspond to the execution body of the method for video processing in the embodiment of the application, and the above and other aspects of the device and the computer system for the video processing are described above.
- the operations and/or functions are used to implement the corresponding procedures of the foregoing methods, and are not repeated here for brevity.
- the video processor can implement the corresponding operations implemented by the codec device in the above method embodiments.
- the video encoder may further include a body on which the encoder device is installed.
- the body includes at least one of a mobile phone, a camera, or a drone.
- the embodiment of the present application also provides a computer-readable storage medium, and the computer-readable storage medium stores program instructions, and the program instructions may be used to instruct to perform the above-mentioned loop filtering method of the embodiment of the present application.
- the term "and/or” is merely an association relationship describing an associated object, indicating that there may be three relationships.
- a and/or B can mean that: A alone exists, A and B exist at the same time, and B exists alone.
- the character "/" in this text generally indicates that the associated objects before and after are in an "or" relationship.
- the disclosed system, device, and method may be implemented in other ways.
- the device embodiments described above are merely illustrative, for example, the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components may be combined or It can be integrated into another system, or some features can be ignored or not implemented.
- the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may also be electrical, mechanical or other forms of connection.
- the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments of the present application.
- the functional units in the various embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
- the above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
- the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
- the technical solution of this application is essentially or the part that contributes to the existing technology, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium. It includes several instructions to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present application.
- the aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disks or optical disks and other media that can store program instructions .
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
A method and apparatus for video encoding and decoding, comprising: when performing pixel interpolation on an image block of a current image, pixel interpolation can be performed by using one type from among at least two types of interpolation filters, the current image comprising a first image block and a second image block; pixel interpolation is performed on a reference block of the first image block by using a first interpolation filter; and pixel interpolation is performed on a reference block of the second image block by using a default interpolation filter, the first image block being a neighboring block of the second image block. The described method and apparatus for encoding and decoding prevent a current image block from overly depending on an interpolation filter used by a neighboring block, thereby improving encoding and decoding efficiency in an encoding and decoding process, and improving the performance of an encoding and decoding apparatus.
Description
版权申明Copyright statement
本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。The content disclosed in this patent document contains copyrighted material. The copyright belongs to the copyright owner. The copyright owner does not object to anyone copying the patent document or the patent disclosure in the official records and archives of the Patent and Trademark Office.
本申请涉及图像处理领域,并且更具体地,涉及一种视频编解码方法和装置。This application relates to the field of image processing, and more specifically, to a video coding and decoding method and device.
预测是主流视频编码框架的重要模块,预测可以包括帧内预测和帧间预测。帧间预测模式可以包括高级运动向量预测(Advanced Motion Vector Prediction,AMVP)模式、合并(Merge)模式和Skip模式。在Merge模式中,可以在运动矢量的预测值(Motion Vector Prediction,MVP)候选列表中确定MVP,并直接将该MVP确定为MV,并可以在码流中传递MVP和参考帧索引至解码端,以用于解码端的解码。在Skip模式下,只需要传递MVP的索引,不需要传递MVD,也不需要传递残差。Prediction is an important module of the mainstream video coding framework. Prediction can include intra-frame prediction and inter-frame prediction. The inter prediction modes may include Advanced Motion Vector Prediction (AMVP) mode, Merge mode, and Skip mode. In the Merge mode, the MVP can be determined in the motion vector prediction (MVP) candidate list, and the MVP can be directly determined as the MV, and the MVP and reference frame index can be transmitted to the decoder in the code stream. Used for decoding on the decoder side. In Skip mode, only the index of the MVP needs to be passed, and there is no need to pass the MVD, and there is no need to pass the residual.
在构建上述运动矢量预测值的候选列表的过程中,在完成一个已编码或解码块的编码或解码时,利用该一个已编码或解码块的运动信息更新下一个待编码或解码块的运动矢量预测值列表。在对当前图像块或编码块的参考块进行像素插值时,往往依赖于读取运动矢量预测值的候选列表中的MVP以及其对应的插值滤波器,如此将使得相邻图像块所使用的运动矢量和对应的插值滤波器的依赖性较强。因此,现有技术中的编解码方式将导致编解码效率的降低,并造成编解码装置性能的损失。In the process of constructing the candidate list of motion vector predictors, when the encoding or decoding of an encoded or decoded block is completed, the motion information of the encoded or decoded block is used to update the motion vector of the next to be encoded or decoded block List of predicted values. When pixel interpolation is performed on the current image block or the reference block of the coding block, it is often dependent on reading the MVP in the candidate list of the motion vector predictor and its corresponding interpolation filter, which will make the motion used by the adjacent image block The dependence of the vector and the corresponding interpolation filter is strong. Therefore, the encoding and decoding methods in the prior art will result in a decrease in the encoding and decoding efficiency and the performance loss of the encoding and decoding device.
发明内容Summary of the invention
为了解决现有技术中存在技术问题,本申请实施例提供一种视频编解码 方法和装置,可以避免当前图像块过于依赖相邻块使用的插值滤波器,提高编解码效率。In order to solve the technical problems in the prior art, the embodiments of the present application provide a video coding and decoding method and device, which can avoid the current image block from relying too much on interpolation filters used by neighboring blocks, and improve coding and decoding efficiency.
第一方面,提供了一种视频编解码方法,包括:对当前图像的图像块进行像素插值时可以使用至少两种插值滤波器中的一种进行像素插值,所述当前图像包括第一图像块和第二图像块;采用第一插值滤波器对所述第一图像块的参考块进行像素插值;采用默认插值滤波器对所述第二图像块的参考块进行像素插值,所述第一图像块为所述第二图像块的相邻块。In a first aspect, a video encoding and decoding method is provided, which includes: when pixel interpolation is performed on an image block of a current image, one of at least two interpolation filters can be used for pixel interpolation, and the current image includes a first image block. And a second image block; using a first interpolation filter to perform pixel interpolation on the reference block of the first image block; using a default interpolation filter to perform pixel interpolation on the reference block of the second image block, the first image The block is an adjacent block of the second image block.
第二方面,提供了一种视频编解码装置,所述视频编解码装置包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的所述指令,使得所述视频编解码方法,所述方法包括上述第一方面的方法中的操作。In a second aspect, a video encoding and decoding device is provided. The video encoding and decoding device includes: a memory, configured to store executable instructions; a processor, configured to execute the instructions stored in the memory, so that the video A coding and decoding method, which includes the operations in the method of the first aspect described above.
第三方面,提供一种视频编解码器,其包括上述第二方面的视频编解码装置,和本体,所述编解码器装置安装在所述本体上。In a third aspect, a video codec is provided, which includes the video codec device of the second aspect described above, and a body, and the codec device is installed on the body.
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有程序指令,该程序指令可以用于指示执行上述第一方面的方法。In a fourth aspect, a computer-readable storage medium is provided, the computer-readable storage medium stores program instructions, and the program instructions can be used to instruct to perform the method of the first aspect.
在本申请实施例中,采用第一插值滤波器对所述第一图像块的参考块进行像素插值;采用默认插值滤波器对所述第二图像块的参考块进行像素插值,所述第一图像块为所述第二图像块的相邻块,第二图像块的参考块在插值的过程中,采用了默认插值滤波器,其并未继承或读取第一图像块使用的插值滤波器,降低其对于第一图像块编解码的依赖,因此,在编解码的过程中提升了编解码效率,并提高了编解码装置性能。In this embodiment of the application, the first interpolation filter is used to perform pixel interpolation on the reference block of the first image block; the default interpolation filter is used to perform pixel interpolation on the reference block of the second image block, and the first interpolation filter is used to perform pixel interpolation on the reference block of the second image block. The image block is the adjacent block of the second image block, and the reference block of the second image block uses the default interpolation filter during the interpolation process, which does not inherit or read the interpolation filter used by the first image block , Reducing its dependence on the coding and decoding of the first image block, therefore, in the coding and decoding process, the coding and decoding efficiency is improved, and the performance of the coding and decoding device is improved.
下面将对实施例中所需要使用的附图作简单地介绍。The following will briefly introduce the drawings that need to be used in the embodiments.
图1是根据本申请实施例的技术方案的架构图。Fig. 1 is a structural diagram of a technical solution according to an embodiment of the present application.
图2是根据本申请实施例的视频编码框架2示意图。Fig. 2 is a schematic diagram of a video coding framework 2 according to an embodiment of the present application.
图3是根据本申请实施例的图像块的相邻块的示意性图。Fig. 3 is a schematic diagram of adjacent blocks of an image block according to an embodiment of the present application.
图4是根据本申请实施例的视频编解码方法的示意性流程图。Fig. 4 is a schematic flowchart of a video encoding and decoding method according to an embodiment of the present application.
图5是根据本申请实施例的视频编解码装置的示意性框图。Fig. 5 is a schematic block diagram of a video encoding and decoding device according to an embodiment of the present application.
下面对本申请实施例中的技术方案进行描述。The technical solutions in the embodiments of the present application are described below.
除非另有说明,本申请实施例所使用的所有技术和科学术语与本申请的技术领域的技术人员通常理解的含义相同。本申请中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本申请的范围。Unless otherwise specified, all technical and scientific terms used in the embodiments of the present application have the same meaning as commonly understood by those skilled in the technical field of the present application. The terminology used in this application is only for the purpose of describing specific embodiments, and is not intended to limit the scope of this application.
图1是应用本申请实施例的技术方案的架构图。Fig. 1 is a structural diagram of a technical solution applying an embodiment of the present application.
如图1所示,系统100可以接收待处理数据102,对待处理数据102进行处理,产生处理后的数据108。例如,系统100可以接收待编码数据,对待编码数据进行编码以产生编码后的数据,或者,系统100可以接收待解码数据,对待解码数据进行解码以产生解码后的数据。在一些实施例中,系统100中的部件可以由一个或多个处理器实现,该处理器可以是计算设备中的处理器,也可以是移动设备(例如无人机)中的处理器。该处理器可以为任意种类的处理器,本申请实施例对此不做限定。在一些可能的设计中,该处理器可以包括编码器、解码器或编解码器等。系统100中还可以包括一个或多个存储器。该存储器可用于存储指令和数据,例如,实现本申请实施例的技术方案的计算机可执行指令、待处理数据102、处理后的数据108等。该存储器可以为任意种类的存储器,本申请实施例对此也不做限定。As shown in FIG. 1, the system 100 can receive the data 102 to be processed, process the data 102 to be processed, and generate processed data 108. For example, the system 100 may receive the data to be encoded and encode the data to be encoded to generate encoded data, or the system 100 may receive the data to be decoded and decode the data to be decoded to generate decoded data. In some embodiments, the components in the system 100 may be implemented by one or more processors. The processor may be a processor in a computing device or a processor in a mobile device (such as a drone). The processor may be any type of processor, which is not limited in the embodiment of the present application. In some possible designs, the processor may include an encoder, a decoder, or a codec, etc. The system 100 may also include one or more memories. The memory can be used to store instructions and data, for example, computer-executable instructions that implement the technical solutions of the embodiments of the present application, to-be-processed data 102, processed data 108, and so on. The memory can be any type of memory, which is not limited in the embodiment of the present application.
待编码数据可以包括文本、图像、图形对象、动画序列、音频、视频、或者任何需要编码的其他数据。在一些情况下,待编码数据可以包括来自传感器的传感数据,该传感器可以为视觉传感器(例如,相机、红外传感器),麦克风、近场传感器(例如,超声波传感器、雷达)、位置传感器、温度传感器、触摸传感器等。在一些情况下,待编码数据可以包括来自用户的信息,例如,生物信息,该生物信息可以包括面部特征、指纹扫描、视网膜扫描、嗓音记录、DNA采样等。The data to be encoded may include text, images, graphic objects, animation sequences, audio, video, or any other data that needs to be encoded. In some cases, the data to be encoded may include sensor data from sensors, which may be vision sensors (for example, cameras, infrared sensors), microphones, near-field sensors (for example, ultrasonic sensors, radars), position sensors, and temperature sensors. Sensors, touch sensors, etc. In some cases, the data to be encoded may include information from the user, for example, biological information, which may include facial features, fingerprint scans, retinal scans, voice recordings, DNA sampling, and the like.
图2是根据本申请实施例的视频编码框架2示意图。如图2所示,在接收待编码视频后,从待编码视频的第一帧开始,依次对待编码视频中的每一帧进行编码。其中,当前编码帧主要经过:预测(Prediction)、变换(Transform)、量化(Quantization)和熵编码(Entropy Coding)等处理,最终输出当前编码帧的码流。对应的,解码过程通常是按照上述过程的逆过程对接收到的码流进行解码,以恢复出解码前的视频帧信息。Fig. 2 is a schematic diagram of a video coding framework 2 according to an embodiment of the present application. As shown in FIG. 2, after receiving the video to be encoded, starting from the first frame of the video to be encoded, each frame in the video to be encoded is encoded in turn. Among them, the current coded frame mainly undergoes processing such as prediction (Prediction), transformation (Transform), quantization (Quantization), and entropy coding (Entropy Coding), and finally the bit stream of the current coded frame is output. Correspondingly, the decoding process usually decodes the received bitstream according to the inverse process of the above process to recover the video frame information before decoding.
具体地,如图2所示,所述视频编码框架2中包括一个编码控制模块201, 用于进行编码过程中的决策控制动作,以及参数的选择。例如,如图2所示,编码控制模块202控制变换、量化、反量化、反变换的中用到的参数,控制进行帧内或者帧间模式的选择,以及运动估计和滤波的参数控制,且编码控制模块202的控制参数也将输入至熵编码模块中,进行编码形成编码码流中的一部分。Specifically, as shown in FIG. 2, the video encoding framework 2 includes an encoding control module 201, which is used to perform decision-making control actions and parameter selection in the encoding process. For example, as shown in FIG. 2, the encoding control module 202 controls the parameters used in transformation, quantization, inverse quantization, and inverse transformation, controls the selection of intra or inter mode, and parameter control of motion estimation and filtering, and The control parameters of the encoding control module 202 will also be input to the entropy encoding module, and the encoding will be performed to form a part of the encoded bitstream.
对当前编码帧开始编码时,对编码帧进行划分202处理,具体地,首先对其进行条带(slice)划分,再进行块划分。可选地,在一个示例中,编码帧划分为多个互不重叠的最大的编码树单元(Coding Tree Unit,CTU),各CTU还可以分别按四叉树、或二叉树、或三叉树的方式迭代划分为一系列更小的编码单元(Coding Unit,CU),一些示例中,CU还可以包含与之相关联的预测单元(Prediction Unit,PU)和变换单元(Transform Unit,TU),其中PU为预测的基本单元,TU为变换和量化的基本单元。一些示例中,PU和TU分别是在CU的基础上划分成一个或多个块得到的,其中一个PU包含多个预测块(Prediction Block,PB)以及相关语法元素。一些示例中,PU和TU可以是相同的,或者,是由CU通过不同的划分方法得到的。一些示例中,CU、PU和TU中的至少两种是相同的,例如,不区分CU、PU和TU,全部是以CU为单位进行预测、量化和变换。为方便描述,下文中将CTU、CU或者其它形成的数据单元均称为编码块。When the encoding of the current encoded frame is started, the encoded frame is partitioned 202, specifically, it is firstly divided into slices, and then divided into blocks. Optionally, in an example, the coded frame is divided into a plurality of non-overlapping largest coding tree units (Coding Tree Units, CTUs), and each CTU can also be in a quadtree, or binary tree, or triple tree manner. Iteratively divides into a series of smaller coding units (Coding Unit, CU). In some examples, the CU may also include a prediction unit (Prediction Unit, PU) and a transformation unit (Transform Unit, TU) associated with it. The PU It is the basic unit of prediction, and TU is the basic unit of transformation and quantization. In some examples, the PU and TU are respectively obtained by dividing into one or more blocks on the basis of the CU, where one PU includes multiple prediction blocks (PB) and related syntax elements. In some examples, the PU and TU may be the same, or they may be obtained by the CU through different division methods. In some examples, at least two of the CU, PU, and TU are the same. For example, CU, PU, and TU are not distinguished, and prediction, quantization, and transformation are all performed in units of CU. For the convenience of description, the CTU, CU, or other formed data units are all referred to as coding blocks in the following.
应理解,在本申请实施例中,视频编码针对的数据单元可以为帧,条带,编码树单元,编码单元,编码块或以上任一种的组。在不同的实施例中,数据单元的大小可以变化。It should be understood that, in the embodiment of the present application, the data unit for video encoding may be a frame, a slice, a coding tree unit, a coding unit, a coding block, or any group of the above. In different embodiments, the size of the data unit can vary.
具体地,如图2所示,编码帧划分为多个编码块后,进行预测过程,用于去除当前编码帧的空域和时域冗余信息。当前比较常用的预测编码方法包括帧内预测和帧间预测两种方法。帧内预测仅利用本帧图像中己重建的信息对当前编码块进行预测,而帧间预测会利用到之前已经重建过的其它帧图像(也被称作参考帧)中的信息对当前编码块进行预测。具体地,在本申请实施例中,编码控制模块202用于决策选择帧内预测或者帧间预测。Specifically, as shown in FIG. 2, after the coded frame is divided into multiple coded blocks, a prediction process is performed to remove the spatial and temporal redundant information of the current coded frame. Currently, more commonly used predictive coding methods include intra-frame prediction and inter-frame prediction. Intra-frame prediction uses only the reconstructed information in the current frame to predict the current coding block, while inter-frame prediction uses the information in other previously reconstructed frames (also called reference frames) to predict the current coding block. Make predictions. Specifically, in this embodiment of the present application, the encoding control module 202 is used to make a decision to select intra-frame prediction or inter-frame prediction.
当选择帧内预测模式时,帧内预测203的过程包括获取当前编码块周围已编码相邻块的重建块作为参考块,基于该参考块的像素值,采用预测模式方法计算预测值生成预测块,将当前编码块与预测块的相应像素值相减得到 当前编码块的残差,当前编码块的残差经过变换204、量化205以及熵编码210后形成当前编码块的码流。进一步的,当前编码帧的全部编码块经过上述编码过程后,形成编码帧的编码码流中的一部分。此外,帧内预测203中产生的控制和参考数据也经过熵编码210编码,形成编码码流中的一部分。When the intra-frame prediction mode is selected, the process of intra-frame prediction 203 includes obtaining the reconstructed block of the coded neighboring block around the current coding block as a reference block, and based on the pixel value of the reference block, the prediction mode method is used to calculate the predicted value to generate the predicted block , Subtracting the corresponding pixel values of the current coding block and the prediction block to obtain the residual of the current coding block, the residual of the current coding block is transformed 204, quantized 205, and entropy coding 210 to form the code stream of the current coding block. Further, after all the coded blocks of the current coded frame undergo the above-mentioned coding process, they form a part of the coded stream of the coded frame. In addition, the control and reference data generated in the intra-frame prediction 203 are also encoded by the entropy encoding 210 to form a part of the encoded bitstream.
具体地,变换204用于去除图像块的残差的相关性,以便提高编码效率。对于当前编码块残差数据的变换通常采用二维离散余弦变换(Discrete Cosine Transform,DCT)变换和二维离散正弦变换(Discrete Sine Transform,DST)变换,例如在编码端将编码块的残差信息分别与一个N×M的变换矩阵及其转置矩阵相乘,相乘之后得到当前编码块的变换系数。Specifically, the transform 204 is used to remove the correlation of the residual of the image block, so as to improve the coding efficiency. The transformation of the residual data of the current coding block usually adopts two-dimensional discrete cosine transform (DCT) transformation and two-dimensional discrete sine transform (DST) transformation, for example, the residual information of the coded block Respectively multiply an N×M transformation matrix and its transposed matrix, and obtain the transformation coefficient of the current coding block after the multiplication.
在产生变换系数之后用量化205进一步提高压缩效率,变换系数经量化可以得到量化后的系数,然后将量化后的系数进行熵编码210得到当前编码块的残差码流,其中,熵编码方法包括但不限于内容自适应二进制算术编码(Context Adaptive Binary Arithmetic Coding,CABAC)熵编码。After generating the transform coefficients, quantization 205 is used to further improve the compression efficiency. The transform coefficients can be quantized to obtain the quantized coefficients, and then the quantized coefficients are entropy-encoded 210 to obtain the residual code stream of the current encoding block. But it is not limited to content adaptive binary arithmetic coding (Context Adaptive Binary Arithmetic Coding, CABAC) entropy coding.
具体地,帧内预测203过程中的已编码相邻块为:当前编码块编码之前,已进行编码的相邻块,该相邻块的编码过程中产生的残差经过变换204、量化205、反量化206、和反变换207后,与该相邻块的预测块相加得到的重建块。对应的,反量化206和反变换207为量化206和变换204的逆过程,用于恢复量化和变换前的残差数据。Specifically, the coded neighboring block in the intra prediction 203 process is: the neighboring block that has been coded before the current coding block is coded, and the residual generated in the coding process of the neighboring block is transformed 204, quantized 205, After inverse quantization 206 and inverse transform 207, the reconstructed block is obtained by adding the prediction block of the neighboring block. Correspondingly, the inverse quantization 206 and the inverse transformation 207 are the inverse processes of the quantization 206 and the transformation 204, which are used to restore the residual data before the quantization and transformation.
如图2所示,当选择帧间预测模式时,帧间预测过程包括运动估计(Motion Estimation,ME)208和运动补偿(Motion Compensation,MC)209。具体地,根据重建视频帧中的参考帧图像进行运动估计208,在一张或多张参考帧图像中根据一定的匹配准则搜索到与当前编码块最相似的图像块为匹配块,该匹配块与当前编码块的相对位移即为当前编码块的运动矢量(Motion Vector,MV)。然后基于该运动矢量和参考帧对当前编码块进行运动补偿209,获得当前编码块的预测块。并将该编码块像素的原始值与对应的预测块像素值相减得到编码块的残差。当前编码块的残差经过变换204、量化205以及熵编码210后形成编码帧的编码码流中的一部分。此外,运动补偿209中产生的控制和参考数据也经过熵编码210编码,形成编码码流中的一部分。As shown in FIG. 2, when the inter-frame prediction mode is selected, the inter-frame prediction process includes motion estimation (ME) 208 and motion compensation (MC) 209. Specifically, the motion estimation is performed 208 according to the reference frame image in the reconstructed video frame, and the image block most similar to the current encoding block is searched for in one or more reference frame images according to a certain matching criterion as a matching block. The relative displacement with the current coding block is the motion vector (Motion Vector, MV) of the current coding block. Then, based on the motion vector and the reference frame, perform motion compensation 209 on the current coding block to obtain the prediction block of the current coding block. The original value of the pixel of the coding block is subtracted from the pixel value of the corresponding prediction block to obtain the residual of the coding block. The residual of the current coding block is transformed 204, quantized 205, and entropy coding 210 to form a part of the code stream of the coded frame. In addition, the control and reference data generated in the motion compensation 209 are also encoded by the entropy encoding 210 to form a part of the encoded bitstream.
其中,如图2所示,重建视频帧为经过滤波211之后得到视频帧。滤波 211用于减少编码过程中产生的块效应和振铃效应等压缩失真,重建视频帧在编码过程中用于为帧间预测提供参考帧,在解码过程中,重建视频帧经过后处理后输出为最终的解码视频。Wherein, as shown in FIG. 2, the reconstructed video frame is a video frame obtained after filtering 211. Filtering 211 is used to reduce compression distortions such as blocking effects and ringing effects generated in the encoding process. The reconstructed video frame is used to provide reference frames for inter-frame prediction during the encoding process. In the decoding process, the reconstructed video frame is output after post-processing For the final decoded video.
视频编码标准中的帧间预测模式可以包括AMVP模式、Merge模式和Skip模式。The inter prediction modes in the video coding standard may include AMVP mode, Merge mode and Skip mode.
对于AMVP模式而言,可以先确定MVP,在得到MVP之后,可以根据MVP确定运动估计的起始点,在起始点附近,进行运动搜索,搜索完毕之后得到最优的MV,由MV确定参考块在参考图像中的位置,参考块减去当前块得到残差块,MV减去MVP得到运动矢量差值(Motion Vector Difference,MVD),并将该MVD通过码流传输给解码端。For the AMVP mode, the MVP can be determined first. After the MVP is obtained, the starting point of the motion estimation can be determined according to the MVP, and the motion search is performed near the starting point. After the search is completed, the optimal MV is obtained. The MV determines the reference block in With reference to the position in the image, the reference block is subtracted from the current block to obtain the residual block, and the MV is subtracted from the MVP to obtain the Motion Vector Difference (MVD), and the MVD is transmitted to the decoder through the code stream.
对于Merge模式而言,可以先确定MVP,并直接将MVP确定为MV。其中,为了得到MVP,可以先构建一个MVP候选列表(merge candidate list),在MVP候选列表中,可以包括至少一个候选MVP,每个候选MVP可以对应有一个索引,编码端在从MVP候选列表中选择MVP之后,可以将该MVP索引写入到码流中,则解码端可以按照该索引从MVP候选列表中找到该索引对应的MVP,以实现对图像块的解码。For the Merge mode, you can determine the MVP first, and directly determine the MVP as the MV. Among them, in order to obtain the MVP, you can first build a MVP candidate list (merge candidate list), in the MVP candidate list, you can include at least one candidate MVP, each candidate MVP can correspond to an index, the encoding end is from the MVP candidate list After selecting the MVP, the MVP index can be written into the code stream, and the decoder can find the MVP corresponding to the index from the MVP candidate list according to the index, so as to realize the decoding of the image block.
其中,Merge模式的MVP候选列表的建立可以参考图3所示。该MVP候选列表可以包括时域候选运动矢量、空域候选运动矢量、成对平均(pairwise)运动矢量或零运动矢量。其中,pairwise运动矢量可以基于候选列表中已有的运动矢量进行平均或者加权平均获得。空域候选运动矢量从图3中1~5的灰色方框所在位置获取,时域候选运动矢量从当前CU临近已编码图像中同位CU获取,与空域情况不同,时域候选运动矢量不能直接使用候选块的运动信息,而需要根据参考图像的位置关系做相应的比例伸缩调整,具体伸缩方式此处不再赘述。Among them, the establishment of the MVP candidate list in the Merge mode can refer to FIG. 3. The MVP candidate list may include temporal candidate motion vectors, spatial candidate motion vectors, pairwise motion vectors, or zero motion vectors. Among them, the pairwise motion vector can be obtained by averaging or weighted averaging based on the existing motion vectors in the candidate list. The spatial candidate motion vector is obtained from the position of the gray box from 1 to 5 in Figure 3, and the temporal candidate motion vector is obtained from the co-located CU in the coded image adjacent to the current CU. Unlike the spatial domain, the temporal candidate motion vector cannot be directly used as a candidate. The motion information of the block needs to be adjusted according to the position relationship of the reference image. The specific scaling method will not be repeated here.
对于Skip模式而言,它是一种特殊的merge模式,只需要传递MVP的索引。而且除了不需要传递MVD信息之外,也不需要传残差。For Skip mode, it is a special merge mode that only needs to pass the index of the MVP. In addition to the need to transmit MVD information, there is also no need to transmit residuals.
Skip模式是Merge模式的一种特例。按照Merge模式得到MV之后,如果编码器确定当前块和参考块基本一样,那么不需要传输残差数据,只需要传递MV的索引,以及进一步地可以传递一个标志,该标志可以表明当前 块可以直接从参考块得到。Skip mode is a special case of Merge mode. After obtaining the MV according to the Merge mode, if the encoder determines that the current block is basically the same as the reference block, then there is no need to transmit residual data, only the index of the MV needs to be transmitted, and further a flag can be passed, which can indicate that the current block can be directly Obtained from the reference block.
也就是说,Merge模式特点为:MV=MVP(MVD=0);而Skip模式还多一个特点,即:重构值rec=预测值pred(残差值resi=0)。In other words, the feature of the Merge mode is: MV=MVP (MVD=0); and the Skip mode has one more feature, namely: reconstruction value rec=predicted value pred (residual value resi=0).
在运动估计的过程,由于自然物体运动的连续性,物体在相邻两帧之间的运动矢量不一定刚好是整数个像素单位。为了提高运动矢量的精确程度,在HEVC中对亮度分量的运动估计采用1/4像素精度的运动矢量。但是在数字视频中并不存在分数像素处的样值,一般来说,为了实现1/K像素精度估计,必须将这些分像素点的值近似内插出来,也就是对参考帧的行方向和列方向进行K倍内插,在插值之后的图像中进行搜索。In the process of motion estimation, due to the continuity of natural object motion, the motion vector of the object between two adjacent frames may not be exactly an integer number of pixel units. In order to improve the accuracy of the motion vector, a motion vector with 1/4 pixel accuracy is used for the motion estimation of the luminance component in HEVC. However, there are no samples at fractional pixels in digital video. Generally speaking, in order to achieve 1/K pixel accuracy estimation, the values of these fractional pixels must be approximately interpolated, that is, the line direction and the reference frame K-fold interpolation is performed in the column direction, and a search is performed in the image after interpolation.
当前视频编码参考架构中,普通AMVP模式设置了四种自适应运动矢量精度(Advanced Motion Vector Resolution,AMVR)的精度(整像素、4像素,1/4像素和1/2精度),需要说明的是,这些AMVR的精度仅仅作为示例,本申请实施例对像素精度的值不做具体限定,例如,还可以有1/8像素、1/16像素等,这里以整像素、4像素、1/4像素、1/2像素为例进行阐述。对于每一个采用AMVR技术的CU(有些情况下可能CU不采用AMVR),在编码端自适应地决策其对应的MV精度(整像素、4像素或1/4像素或1/2像素),并将决策的结果写进码流传递到解码端。In the current video coding reference architecture, the common AMVP mode sets four types of adaptive motion vector resolution (Advanced Motion Vector Resolution, AMVR) accuracy (integer pixels, 4 pixels, 1/4 pixels and 1/2 accuracy), which need to be explained Yes, the accuracy of these AMVRs is only an example, and the embodiments of this application do not specifically limit the value of pixel accuracy. For example, there may also be 1/8 pixels, 1/16 pixels, etc., here are integer pixels, 4 pixels, 1/ Take 4 pixels and 1/2 pixels as an example. For each CU adopting AMVR technology (in some cases, CU may not adopt AMVR), the corresponding MV accuracy (integer pixel, 4 pixel or 1/4 pixel or 1/2 pixel) is adaptively decided at the encoding end, and Write the result of the decision into the code stream and pass it to the decoding end.
不同AMVR精度的插值滤波器对应的抽头数量可能不同。例如,对于1/4像素精度,采用八抽头插值滤波器。对于1/2像素采用高斯插值滤波器(六抽头插值滤波器)。由于采用的插值滤波器不同,在进行运动矢量存储的时候,需要将当前CU使用的插值滤波器存储下来。作为一种示例,该插值滤波器可以用1比特(bit)来表示。当使用高斯滤波器(六抽头插值滤波器)时存储为1,不使用高斯滤波器则存储为0。后面的CU在参考之前已编码CU时,需要根据这个插值滤波器的标识位来决定当前CU使用的插值滤波器。这里,当前CU使用的插值滤波器可以理解为在对当前CU的参考块进行像素插值时使用的插值滤波器。下文中提到的图像块使用的插值滤波器可以理解为在对该图像块的参考块进行像素插值时使用的插值滤波器。The number of taps corresponding to interpolation filters of different AMVR accuracy may be different. For example, for 1/4 pixel accuracy, an eight-tap interpolation filter is used. For 1/2 pixel, Gaussian interpolation filter (six-tap interpolation filter) is used. Due to the different interpolation filters used, when storing the motion vector, the interpolation filter currently used by the CU needs to be stored. As an example, the interpolation filter can be represented by 1 bit. When a Gaussian filter (six-tap interpolation filter) is used, it is stored as 1, and when a Gaussian filter is not used, it is stored as 0. When the subsequent CU refers to the previously encoded CU, the interpolation filter used by the current CU needs to be determined according to the identification bit of the interpolation filter. Here, the interpolation filter used by the current CU can be understood as an interpolation filter used when performing pixel interpolation on the reference block of the current CU. The interpolation filter used by the image block mentioned below can be understood as the interpolation filter used when performing pixel interpolation on the reference block of the image block.
对于Merge模式,由于MVP候选列表构建的过程中需要用到空域相邻块和时域相邻块的MV信息,因此在每一个CU完成编码后,需要将其最终使用的MV存储下来,便于后续MV的参考,MV会存储MV矢量的数值、 参考帧的索引、当前CU的预测模式等等信息。并且,当前块在做运动补偿时,是完全继承相邻块的MV及其对应的插值滤波器的。因此,在每一个CU完成编码后,还需要将当前CU使用的插值滤波器存储下来。具体存储方式也可以是用1比特的标识位进行存储,存储方式可参考前述描述,此处不再赘述。For the Merge mode, since the MV information of the spatial neighboring block and the temporal neighboring block need to be used in the process of constructing the MVP candidate list, after each CU is encoded, the MV finally used needs to be stored for subsequent follow-up MV reference, the MV will store information such as the value of the MV vector, the index of the reference frame, the prediction mode of the current CU, and so on. Moreover, when the current block is performing motion compensation, it completely inherits the MV of the neighboring block and its corresponding interpolation filter. Therefore, after each CU completes encoding, it is also necessary to store the interpolation filter used by the current CU. The specific storage method may also be a 1-bit identification bit for storage, and the storage method may refer to the foregoing description, which will not be repeated here.
例如,当前块从运动矢量候选列表中选择的最优MV为时域MV,假设为MV0,且该MV0对应的插值滤波器的标识位为0,则表示当前块的时域相邻块在做运动补偿时,是利用高斯滤波器对其参考块进行像素插值的。那么,当前块利用MV0从参考帧中找到当前块的参考块后,也会利用高斯滤波器,即6抽头插值滤波器对其参考块进行像素插值,对像素进行插值之后,得到当前块的预测块。参考块减去当前块就可以得到残差块。For example, the optimal MV selected by the current block from the motion vector candidate list is the time domain MV. If it is MV0, and the identification bit of the interpolation filter corresponding to the MV0 is 0, it means that the time domain neighboring blocks of the current block are doing In motion compensation, Gaussian filter is used to perform pixel interpolation on its reference block. Then, after the current block uses MV0 to find the reference block of the current block from the reference frame, it will also use a Gaussian filter, that is, a 6-tap interpolation filter, to perform pixel interpolation on its reference block. After the pixels are interpolated, the prediction of the current block is obtained. Piece. The residual block can be obtained by subtracting the current block from the reference block.
通过上述描述可知,当前块在做运动补偿时,是完全继承相邻块的MV及其对应的插值滤波器的,使得相邻图像块所使用的插值滤波器的依赖性较强。这种编解码方式将导致编解码效率的降低,并造成编解码装置性能的损失。此外,由于在每个CU在完成编码之后,都需要将其使用的插值滤波器进行存储,占用了存储资源,并且在编解码的过程中,CU的数量是非常庞大的,对每个CU都要存储插值滤波器的标识所需的存储开销会很大,这对硬件的要求会非常高。From the above description, it can be seen that when the current block performs motion compensation, it completely inherits the MV of the neighboring block and its corresponding interpolation filter, so that the interpolation filter used by the neighboring image block is strongly dependent. This coding and decoding method will lead to a reduction in coding and decoding efficiency and result in loss of performance of the coding and decoding device. In addition, since each CU needs to store the interpolation filter it uses after encoding, it occupies storage resources, and in the process of encoding and decoding, the number of CUs is very large. The storage overhead required to store the identifier of the interpolation filter will be very large, which will require very high hardware.
为解决这一问题,本申请实施例提供的以下方案,可以降低其对于相邻块编解码过程的依赖,进而在编解码的过程中提升了编解码效率,并提高了编解码装置性能。并且,可以节省存储开销。In order to solve this problem, the following solutions provided by the embodiments of the present application can reduce its dependence on the encoding and decoding process of adjacent blocks, thereby improving the encoding and decoding efficiency during the encoding and decoding process, and improving the performance of the encoding and decoding device. In addition, storage costs can be saved.
本申请中所称的对图像块进行像素插值,是指对图像块的参考块进行像素插值,在其过程中所使用的插值滤波器,是采用插值滤波器对图像块的参考块进行像素插值。The pixel interpolation of the image block referred to in this application refers to the pixel interpolation of the reference block of the image block, and the interpolation filter used in the process is to use the interpolation filter to perform pixel interpolation on the reference block of the image block .
图4是根据本申请实施例的视频编解码方法400的示意性流程图。该方法400包括以下内容中的至少部分内容。其中,以下的方法400可以用于编码端,也可以用于解码端。FIG. 4 is a schematic flowchart of a video encoding and decoding method 400 according to an embodiment of the present application. The method 400 includes at least part of the following content. Among them, the following method 400 can be used on the encoding side and can also be used on the decoding side.
在410中,对当前图像的图像块进行像素插值时可以使用至少两种插值滤波器中的一种进行像素插值,当前图像包括第一图像块和第二图像块;In 410, when performing pixel interpolation on an image block of the current image, one of at least two interpolation filters may be used for pixel interpolation, and the current image includes a first image block and a second image block;
在420中,采用第一插值滤波器对第一图像块的参考块进行像素插值; 采用默认插值滤波器对第二图像块的参考块进行像素插值,第一图像块为第二图像块的相邻块。In 420, the first interpolation filter is used to perform pixel interpolation on the reference block of the first image block; the default interpolation filter is used to perform pixel interpolation on the reference block of the second image block, and the first image block is the phase of the second image block. Adjacent block.
需要说明的是,在本申请中提及的图像块使用的插值滤波器可以理解为,在对该图像块的参考块进行像素插值时所采用/使用的插值滤波器。It should be noted that the interpolation filter used by the image block mentioned in this application can be understood as the interpolation filter adopted/used when performing pixel interpolation on the reference block of the image block.
在本申请的实施例中,在对第二图像块的参考块进行像素插值时,不继承相邻块的插值滤波器,而是采用默认插值滤波器对第二图像块的参考块进行像素插值。In the embodiment of the present application, when pixel interpolation is performed on the reference block of the second image block, the interpolation filter of the neighboring block is not inherited, but the default interpolation filter is used to perform pixel interpolation on the reference block of the second image block .
并且需要指出的是,当前图像中的图像块在进行像素插值时总共有至少两种插值滤波器可供选择使用,例如至少包括6抽头的插值滤波器和8抽头的插值滤波器。示例性地,不同的像素精度也可以对应不同抽头的插值滤波器。以AMVR精度的插值滤波器为例,对于1/4像素精度,采用八抽头插值滤波器。对于1/2像素采用高斯插值滤波器(六抽头插值滤波器)。上述对应关系仅为示例性表示,并不构成对本申请的限定。And it should be pointed out that the image block in the current image has at least two kinds of interpolation filters to choose from when performing pixel interpolation, for example, including at least a 6-tap interpolation filter and an 8-tap interpolation filter. Exemplarily, different pixel precisions may also correspond to interpolation filters with different taps. Taking the AMVR precision interpolation filter as an example, for 1/4 pixel precision, an eight-tap interpolation filter is used. For 1/2 pixel, Gaussian interpolation filter (six-tap interpolation filter) is used. The foregoing corresponding relationship is only an exemplary representation, and does not constitute a limitation to the present application.
在本申请实施例中,在对第一图像块进行编解码后,并不存储当前CU所使用的插值滤波器,并且不设置标识位,后面的CU在参考之前已编码的CU时,不需要根据这个插值滤波器的标识位来决定当前CU使用的插值滤波器,而是直接采用默认的插值滤波器。In the embodiment of the present application, after the first image block is coded and decoded, the interpolation filter used by the current CU is not stored, and the identification bit is not set. When the subsequent CU refers to the previously coded CU, it is not necessary The interpolation filter used by the current CU is determined according to the identification bit of the interpolation filter, but the default interpolation filter is directly used.
示例性地,第二图像块的参考块进行像素插值采用的像素精度是亚像素级别的。Exemplarily, the pixel accuracy used for pixel interpolation of the reference block of the second image block is at the sub-pixel level.
示例性地,对第二图像块的参考块进行像素插值采用的像素精度是1/2像素精度。对第二图像块的参考块进行像素插值采用的像素精度是1/2像素精度仅为示例性地描述,本申请的其他实施方式中可以采用其他像素精度,如1/4像素精度、1/8像素精度等等。Exemplarily, the pixel precision used for pixel interpolation on the reference block of the second image block is 1/2 pixel precision. The pixel precision used for pixel interpolation on the reference block of the second image block is 1/2 pixel precision for illustrative purposes only, and other pixel precisions may be used in other embodiments of this application, such as 1/4 pixel precision, 1/ 8 pixel accuracy and so on.
虽然上述示例性地表述了第二图像块为亚像素精度级别的情况,但是本申请所示出的实施例也可以应用于整像素精度的像素插值。Although the foregoing exemplarily expresses the case where the second image block has a sub-pixel accuracy level, the embodiments shown in this application can also be applied to pixel interpolation with integer pixel accuracy.
示例性地,第一图像块为第二图像块的时域相邻块。比如,第一图像块位于参考帧上,第二图像块位于当前帧上,第一图像块和第二图像块之间的相关预测为帧间预测,帧间预测的方向可以为前向预测、后向预测、双向预测等。前向预测是利用前一重构帧(“历史帧”)对当前帧进行预测。后 向预测是利用当前帧之后的帧(“将来帧”)对当前帧进行预测。双向预测是不仅利用“历史帧”也利用“将来帧”对当前帧进行预测。本申请并不限于上述三种预测方式的任何一种。当第一图像块和第二图像块为时域相邻块时,时域候选列表从当前CU临近已编码图像中同位CU获取,时域候选列表不能直接使用候选块的运动信息,而需要根据参考图像的位置关系做相应的比例伸缩调整,具体伸缩方式此处不再赘述。Exemplarily, the first image block is a temporal neighboring block of the second image block. For example, the first image block is located on the reference frame, the second image block is located on the current frame, the correlation prediction between the first image block and the second image block is inter prediction, and the direction of inter prediction can be forward prediction, Backward prediction, two-way prediction, etc. Forward prediction uses the previous reconstructed frame ("historical frame") to predict the current frame. Backward prediction is to use frames after the current frame ("future frame") to predict the current frame. Bidirectional prediction uses not only "historical frames" but also "future frames" to predict the current frame. This application is not limited to any one of the above three prediction methods. When the first image block and the second image block are temporal adjacent blocks, the temporal candidate list is obtained from the co-located CU in the adjacent coded image of the current CU. The temporal candidate list cannot directly use the motion information of the candidate block, but needs to be based on The positional relationship of the reference image is adjusted accordingly. The specific scaling method will not be repeated here.
双向预测模式属于双运动矢量模式中的一种。双运动矢量模式包括双前向预测模式、双后向预测模式和双向预测模式。双前向预测模式包括两个前向运动矢量,双后向预测模式包括两个后向运动矢量。其中,双向预测模式包括前向预测模式和后向预测模式。The bidirectional prediction mode is one of the dual motion vector modes. The dual motion vector mode includes dual forward prediction mode, dual backward prediction mode and bidirectional prediction mode. The dual forward prediction mode includes two forward motion vectors, and the dual backward prediction mode includes two backward motion vectors. Among them, the bidirectional prediction mode includes a forward prediction mode and a backward prediction mode.
示例性地,第一图像块为第二图像块的空域相邻块。比如,第一图像块和第二图像块均位于当前帧上。Exemplarily, the first image block is a spatial neighboring block of the second image block. For example, the first image block and the second image block are both located on the current frame.
当第一图像块和第二图像块为空域相邻块时,例如,在Merge模式中,会为当前编码单元构建一个运动矢量候选列表,如图3所示,在merge模式下的空域候选列表从图中1~5的方框所在位置获取。When the first image block and the second image block are spatially adjacent blocks, for example, in the Merge mode, a motion vector candidate list will be constructed for the current coding unit, as shown in Figure 3, the spatial candidate list in the merge mode Obtain from the position of the boxes 1 to 5 in the figure.
可选的,第一图像块使用的第一插值滤波器为默认插值滤波器或非默认插值滤波器。在本申请中,第一图像块可以是merge模式、AMVP模式或Skip模式。当第一图像块为merge模式或Skip模式时,第一插值滤波器即为默认插值滤波器。当第一图像块为AMVP模式时,则第一插值滤波器为实际选择确定的插值滤波器。示例性地,在进行AMVR实际选择的像素精度是1/2像素精度,则使用6抽头插值滤波器,如果实际选择的像素精度为1/4像素精度,则使用8抽头插值滤波器。当决策出其他像素精度,则可对应选择其他的插值滤波器。Optionally, the first interpolation filter used by the first image block is a default interpolation filter or a non-default interpolation filter. In this application, the first image block may be merge mode, AMVP mode or Skip mode. When the first image block is in the merge mode or the Skip mode, the first interpolation filter is the default interpolation filter. When the first image block is in the AMVP mode, the first interpolation filter is the actually selected and determined interpolation filter. Exemplarily, if the pixel accuracy actually selected in AMVR is 1/2 pixel accuracy, a 6-tap interpolation filter is used, and if the actual selected pixel accuracy is 1/4 pixel accuracy, an 8-tap interpolation filter is used. When other pixel accuracy is determined, other interpolation filters can be selected accordingly.
示例性地,默认插值滤波器为默认抽头数量的插值滤波器。在该实施方式中,默认插值滤波器是指默认抽头数量的插值滤波器,示例性地,默认抽头数量的插值滤波器包括6抽头插值滤波器或8抽头插值滤波器。本申请实施例中的6抽头和8抽头仅作为一种举例,并不构成对默认插值滤波器的限定。Exemplarily, the default interpolation filter is an interpolation filter with a default number of taps. In this embodiment, the default interpolation filter refers to an interpolation filter with a default number of taps. Illustratively, the interpolation filter with a default number of taps includes a 6-tap interpolation filter or an 8-tap interpolation filter. The 6-tap and 8-tap in the embodiment of the present application are only used as an example, and do not constitute a limitation on the default interpolation filter.
示例性的,默认插值滤波器为默认权重值的插值滤波器。对于权重值的理解,以下给出解释。以1/2像素精度的6抽头插值滤波器为例,需要对参 考块中每2个整像素点之间插值1个亚像素点,该亚像素点即为1/2像素点。由于该1/2像素点上不存在像素值,则需要用到该1/2像素点左边的6个整像素点和右边的6个整像素点的像素值计算该1/2像素点的像素值。假设该1/2像素点的像素值的计算公式为q=round((–A0+4*A1–10*A2+58*A3+17*A4–5*A5+A6)/B)。其中,其中对于不同的整像素点,其分别示出了权重值,权重值是指A0~A6前方所给出的数值,其代表该像素点对于最终计算结果所给出的权重值,可见,对于不同的像素点,其权重值已经确定为具体数值,并且该具体数值可以通过设置或者通过默认数值来确定。Exemplarily, the default interpolation filter is an interpolation filter with a default weight value. For the understanding of the weight value, an explanation is given below. Taking a 6-tap interpolation filter with 1/2 pixel accuracy as an example, one sub-pixel needs to be interpolated between every two whole pixels in the reference block, and the sub-pixel is 1/2 pixel. Since there is no pixel value on the 1/2 pixel, the pixel values of the 6 integral pixels on the left and the 6 integral pixels on the right of the 1/2 pixel need to be used to calculate the pixel of the 1/2 pixel. value. Assume that the calculation formula for the pixel value of the 1/2 pixel point is q=round((–A0+4*A1–10*A2+58*A3+17*A4–5*A5+A6)/B). Among them, for different whole pixels, the weight values are shown respectively. The weight value refers to the value given in front of A0~A6, which represents the weight value given by the pixel to the final calculation result. It can be seen that, For different pixels, the weight value has been determined as a specific value, and the specific value can be determined by setting or by a default value.
上述示例仅为理解本申请实施例的默认插值滤波器所提供,并不构成对本申请实施例的限定。The foregoing example is only provided for understanding the default interpolation filter of the embodiment of the present application, and does not constitute a limitation to the embodiment of the present application.
可选的,第一图像块可以采用Merge预测模式或Skip模式。Optionally, the first image block may adopt Merge prediction mode or Skip mode.
示例性地,采用默认插值滤波器对第二图像块的参考块进行像素插值之前,还包括:获取运动矢量候选列表;从运动矢量候选列表中选择运动矢量;根据运动矢量从参考帧中确定第二图像块的参考块;采用默认插值滤波器对第二图像块的参考块进行像素插值之后,还包括:根据参考块经像素插值后的参考块和第二图像块确定残差。Exemplarily, before using the default interpolation filter to perform pixel interpolation on the reference block of the second image block, the method further includes: obtaining a motion vector candidate list; selecting a motion vector from the motion vector candidate list; determining the first motion vector from the reference frame according to the motion vector The reference block of the second image block; after using the default interpolation filter to perform pixel interpolation on the reference block of the second image block, the method further includes: determining a residual error according to the reference block after the pixel interpolation of the reference block and the second image block.
示例性地,在采用第一插值滤波器对第一图像块的参考块进行像素插值后,不对第一图像块的参考块采用的第一插值滤波器的标识进行存储。Exemplarily, after the first interpolation filter is used to perform pixel interpolation on the reference block of the first image block, the identifier of the first interpolation filter used by the reference block of the first image block is not stored.
示例性地,在采用默认插值滤波器对第二图像块的参考块进行像素插值后,不对第二图像块的参考块采用的默认插值滤波器的标识进行存储。Exemplarily, after the default interpolation filter is used to perform pixel interpolation on the reference block of the second image block, the identifier of the default interpolation filter used by the reference block of the second image block is not stored.
在前文的实施例中,仅以第一图像块和第二图像块两个图像为例进行了描述,然而在具体的编解码过程中,对于所有图像块进行编解码时,或者对于任意的图像块进行编解码时,均不对其采用的插值滤波器的标识进行存储。示例性的,当前块不管采用的是帧间预测模式下的哪一种,例如AMVP、merge或skip等等,均不对其使用的插值滤波器的标识进行存储。In the foregoing embodiment, only two images of the first image block and the second image block are described as examples. However, in the specific encoding and decoding process, when encoding and decoding all image blocks, or for any image When a block is coded or decoded, the identifier of the interpolation filter used by it is not stored. Exemplarily, no matter which of the inter-frame prediction modes is adopted for the current block, such as AMVP, merge, or skip, etc., the identifier of the interpolation filter used for the current block is not stored.
由此可见,上述编解码方法可以降低其对于相邻块编解码过程的依赖,进而在编解码的过程中提升了编解码效率,并提高了编解码装置性能。并且,由于不对插值滤波器的类型进行存储,因此可以节省硬件存储资源。It can be seen that the foregoing encoding and decoding method can reduce its dependence on the encoding and decoding process of adjacent blocks, thereby improving the encoding and decoding efficiency during the encoding and decoding process, and improving the performance of the encoding and decoding device. In addition, since the type of interpolation filter is not stored, hardware storage resources can be saved.
上述实施例是以所有块均不存储插值滤波器的类型进行描述的,在其他可选的实施例中,可以只针对空域MV存储其对应的插值滤波器,而对于时 域MV则不存储其对应的插值滤波器。The above embodiment is described in the type that all blocks do not store the interpolation filter. In other optional embodiments, the corresponding interpolation filter may be stored only for the spatial MV, but not for the time domain MV. Corresponding interpolation filter.
示例性地,在采用第一插值滤波器对第一图像块的参考块进行像素插值后,对第一图像块的参考块采用的第一插值滤波器的标识进行空域存储。本申请中所示出的进行空域存储,就是指在空域MV信息的buffer中,存当前块的参考块采用的插值滤波器的标识位。这种情况下,在对当前块的参考块进行像素插值时,可以直接从buffer中读取空域MV对应的插值滤波器的类型。Exemplarily, after the first interpolation filter is used to perform pixel interpolation on the reference block of the first image block, the identifier of the first interpolation filter used by the reference block of the first image block is stored in the space domain. The spatial storage shown in this application refers to storing the identification bit of the interpolation filter used by the reference block of the current block in the buffer of the spatial MV information. In this case, when performing pixel interpolation on the reference block of the current block, the type of interpolation filter corresponding to the spatial MV can be directly read from the buffer.
示例性地,在采用第一插值滤波器对第一图像块的参考块进行像素插值后,不对第一图像块的参考块采用的第一插值滤波器的标识进行时域存储。本申请中所示出的进行时域存储,就是指在时域MV信息的buffer中,并不存储当前块的参考块采用的插值滤波器的标识位。这种情况下,在对当前块的参考块进行像素插值时,不需要从时域MV对应的buffer中读取时域MV对应的插值滤波器的类型,而是直接使用默认插值滤波器。Exemplarily, after the first interpolation filter is used to perform pixel interpolation on the reference block of the first image block, the identification of the first interpolation filter used by the reference block of the first image block is not stored in the time domain. The time-domain storage shown in this application means that the identification bit of the interpolation filter used by the reference block of the current block is not stored in the buffer of the time-domain MV information. In this case, when performing pixel interpolation on the reference block of the current block, it is not necessary to read the type of the interpolation filter corresponding to the time domain MV from the buffer corresponding to the time domain MV, but directly use the default interpolation filter.
本实施例中,只针对空域MV存储其对应的插值滤波器,而对于时域MV则不存储其对应的插值滤波器,是因为时域存储时存储的是整帧图像的信息,存储的压力较大,因此,可以只针对空域MV存储其对应的插值滤波器,而对于时域MV则不存储其对应的插值滤波器,如此也可以缓解一部分存储压力。后续CU在进行运动搜索时,如果从运动矢量候选列表中选择的最优MV是时域MV,则直接采用默认插值滤波器对其参考块进行像素插值。如果从运动矢量候选列表中选择的最优MV是空域MV,则仍然利用该空域MV对应的插值滤波器对其参考块进行像素插值。In this embodiment, only the corresponding interpolation filter is stored for the spatial MV, and the corresponding interpolation filter is not stored for the time domain MV, because the information of the entire frame of image is stored when the time domain is stored, and the pressure of the storage is Therefore, the corresponding interpolation filter can be stored only for the spatial MV, while the corresponding interpolation filter is not stored for the time domain MV, which can also relieve part of the storage pressure. When the subsequent CU performs a motion search, if the optimal MV selected from the motion vector candidate list is the time domain MV, the default interpolation filter is directly used to perform pixel interpolation on its reference block. If the optimal MV selected from the motion vector candidate list is a spatial MV, the interpolation filter corresponding to the spatial MV is still used to perform pixel interpolation on the reference block.
在另一种可选的实施例中,对于空域MV和时域MV,均不存储其对应的插值滤波器,后续CU在进行运动搜索时,直接采用默认插值滤波器对其参考块进行像素插值。如此可以降低对硬件的存储开销。节约了流程,提升了编解码效率,并提高了编解码装置性能。In another optional embodiment, for the spatial MV and the time domain MV, the corresponding interpolation filter is not stored. When the subsequent CU performs a motion search, it directly uses the default interpolation filter to perform pixel interpolation on its reference block. . This can reduce the storage overhead of the hardware. The process is saved, the coding and decoding efficiency is improved, and the performance of the coding and decoding device is improved.
在又一种可选的实施例中,只针对时域MV存储其对应的插值滤波器,而对于空域MV则不存储其对应的插值滤波器,由于时域MV的存储也会占用存储空间,导致存储压力的增加,因此,可以只针对时域MV存储其对应的插值滤波器,而对于空域MV则不存储其对应的插值滤波器,如此也可以缓解一部分存储压力。后续CU在进行运动搜索时,如果从运动矢量候选列 表中选择的最优MV是空域MV,则直接采用默认插值滤波器对其参考块进行像素插值。如果从运动矢量候选列表中选择的最优MV是时域MV,则仍然利用该时域MV对应的插值滤波器对其参考块进行像素插值。In another alternative embodiment, only the corresponding interpolation filter is stored for the time domain MV, and the corresponding interpolation filter is not stored for the spatial MV. Since the storage of the time domain MV will also occupy storage space, This results in an increase in storage pressure. Therefore, only the corresponding interpolation filter can be stored for the time domain MV, and the corresponding interpolation filter can not be stored for the spatial MV, so that part of the storage pressure can also be relieved. When the subsequent CU performs a motion search, if the optimal MV selected from the motion vector candidate list is a spatial MV, the default interpolation filter is directly used to perform pixel interpolation on its reference block. If the optimal MV selected from the motion vector candidate list is the time domain MV, the interpolation filter corresponding to the time domain MV is still used to perform pixel interpolation on the reference block.
示例性地,运动矢量候选列表中不包含第一图像块的参考块采用的第一插值滤波器的标识。在本申请示出的实施方式中,无需获得第一图像块的参考块采用的第一插值滤波器的标识,直接采用默认插值滤波器,如此可以节省存储空间,保证编码性能。Exemplarily, the motion vector candidate list does not include the identifier of the first interpolation filter used by the reference block of the first image block. In the embodiment shown in this application, there is no need to obtain the identifier of the first interpolation filter used by the reference block of the first image block, and the default interpolation filter is directly used, which can save storage space and ensure coding performance.
示例性地,运动矢量候选列表包括空域候选运动矢量、时域候选运动矢量、基于历史信息的候选运动矢量、成对候选运动矢量中的一种或多种,其中,成对候选运动矢量是空域候选运动矢量、时域候选运动矢量或基于历史信息的候选运动矢量中的一种或多种确定。例如,成对候选运动矢量是基于空域候选运动矢量和/或时域候选运动矢量的均值/加权均值确定的。Exemplarily, the motion vector candidate list includes one or more of spatial candidate motion vectors, temporal candidate motion vectors, candidate motion vectors based on historical information, and paired candidate motion vectors, where the paired candidate motion vectors are spatial domain candidates. One or more of candidate motion vectors, temporal candidate motion vectors, or candidate motion vectors based on historical information are determined. For example, the paired candidate motion vector is determined based on the mean/weighted mean of the spatial candidate motion vector and/or the temporal candidate motion vector.
示例性地,针对亮度模式,采用默认插值滤波器对第二图像块的参考块进行像素插值。本申请示出的实施方式可以工作在亮度模式下。Exemplarily, for the brightness mode, the default interpolation filter is used to perform pixel interpolation on the reference block of the second image block. The embodiment shown in this application can work in the brightness mode.
示例性地,针对色度模式,采用默认插值滤波器对第二图像块的参考块进行像素插值。本申请示出的实施方式可以工作在色度模式下。Exemplarily, for the chroma mode, the default interpolation filter is used to perform pixel interpolation on the reference block of the second image block. The embodiments shown in this application can work in chroma mode.
应理解,本申请实施例的方案可以不限于用于以上提到的AMVP模式、Merge模式或Skip模式,还可以用于其他的编解码模式,也就是说可以适用于编解码过程中采用了插值滤波器信息存储的任何编解码模式。It should be understood that the solutions of the embodiments of the present application may not be limited to the above-mentioned AMVP mode, Merge mode or Skip mode, but can also be used in other encoding and decoding modes, that is to say, it can be applied to the use of interpolation in the encoding and decoding process. Any codec mode of filter information storage.
还应理解,本申请实施例的方案可以降低其对于相邻块编解码过程的依赖,进而在编解码的过程中提升了编解码效率,并提高了编解码装置性能,从而可以用于图像块进行编解码的场景,但应理解,本申请实施例还可以用于编解码处理的场景,也就是降低系统的存储压力可以作为它用。It should also be understood that the solution of the embodiment of the present application can reduce its dependence on the encoding and decoding process of adjacent blocks, thereby improving the encoding and decoding efficiency during the encoding and decoding process, and improving the performance of the encoding and decoding device, so that it can be used for image blocks. It should be understood that the embodiment of the present application can also be used in a coding and decoding scenario, that is, reducing the storage pressure of the system can be used for other purposes.
图5示出了本申请实施例的视频编解码装置500的示意性框图。FIG. 5 shows a schematic block diagram of a video encoding and decoding apparatus 500 according to an embodiment of the present application.
如图5所示,该视频编解码装置500可以包括处理器510,进一步地可以包括存储器520。As shown in FIG. 5, the video encoding and decoding apparatus 500 may include a processor 510, and may further include a memory 520.
应理解,该视频编解码装置500还可以包括其他视频编解码装置中通常所包括的部件,例如,输入输出设备、通信接口等,本申请实施例对此并不限定。It should be understood that the video encoding and decoding apparatus 500 may also include components commonly included in other video encoding and decoding apparatuses, such as input and output devices, communication interfaces, etc., which are not limited in the embodiment of the present application.
存储器520用于存储计算机可执行指令。The memory 520 is used to store computer-executable instructions.
存储器520可以是各种种类的存储器,例如可以包括高速随机存取存储器(Random Access Memory,RAM),还可以包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器,本申请实施例对此并不限定。The memory 520 may be various types of memory, for example, it may include a high-speed random access memory (Random Access Memory, RAM), and may also include a non-volatile memory (non-volatile memory), such as at least one magnetic disk memory. The example does not limit this.
处理器510用于访问该存储器520,并执行该计算机可执行指令,以进行上述本申请实施例的用于视频处理的方法中的操作。The processor 510 is configured to access the memory 520 and execute the computer-executable instructions to perform operations in the method for video processing in the foregoing embodiment of the present application.
处理器510可以包括微处理器,现场可编程门阵列(Field-Programmable Gate Array,FPGA),中央处理器(Central Processing unit,CPU),图形处理器(Graphics Processing Unit,GPU)等,本申请实施例对此并不限定。The processor 510 may include a microprocessor, a field-programmable gate array (Field-Programmable Gate Array, FPGA), a central processing unit (CPU), a graphics processor (Graphics Processing Unit, GPU), etc. The implementation of this application The example does not limit this.
本申请实施例的用于视频处理的设备和计算机系统可对应于本申请实施例的用于视频处理的方法的执行主体,并且用于视频处理的设备和计算机系统中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。The device for video processing and the computer system in the embodiment of the application may correspond to the execution body of the method for video processing in the embodiment of the application, and the above and other aspects of the device and the computer system for the video processing are described above. The operations and/or functions are used to implement the corresponding procedures of the foregoing methods, and are not repeated here for brevity.
应理解,该视频处理器可以实现以上方法实施例中由编解码装置实现的相应操作。所述视频编码器还可以包括:本体,所述编码器装置安装在所述本体上。It should be understood that the video processor can implement the corresponding operations implemented by the codec device in the above method embodiments. The video encoder may further include a body on which the encoder device is installed.
示例性地,所述本体包括手机、相机或无人机中的至少一种。Exemplarily, the body includes at least one of a mobile phone, a camera, or a drone.
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有程序指令,该程序指令可以用于指示执行上述本申请实施例的环路滤波的方法。The embodiment of the present application also provides a computer-readable storage medium, and the computer-readable storage medium stores program instructions, and the program instructions may be used to instruct to perform the above-mentioned loop filtering method of the embodiment of the present application.
应理解,在本申请实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。It should be understood that, in the embodiments of the present application, the term "and/or" is merely an association relationship describing an associated object, indicating that there may be three relationships. For example, A and/or B can mean that: A alone exists, A and B exist at the same time, and B exists alone. In addition, the character "/" in this text generally indicates that the associated objects before and after are in an "or" relationship.
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超 出本申请的范围。A person of ordinary skill in the art may be aware that the units and algorithm steps of the examples described in the embodiments disclosed herein can be implemented by electronic hardware, computer software, or a combination of both, in order to clearly illustrate the hardware and software Interchangeability, in the above description, the composition and steps of each example have been generally described in accordance with the function. Whether these functions are performed by hardware or software depends on the specific application and design constraint conditions of the technical solution. Professionals and technicians can use different methods for each specific application to implement the described functions, but such implementation should not be considered as going beyond the scope of this application.
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art can clearly understand that, for the convenience and conciseness of description, the specific working process of the above-described system, device, and unit may refer to the corresponding process in the foregoing method embodiment, which will not be repeated here.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。In the several embodiments provided in this application, it should be understood that the disclosed system, device, and method may be implemented in other ways. For example, the device embodiments described above are merely illustrative, for example, the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components may be combined or It can be integrated into another system, or some features can be ignored or not implemented. In addition, the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may also be electrical, mechanical or other forms of connection.
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。The units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments of the present application.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。In addition, the functional units in the various embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序指令的介质。If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium. Based on this understanding, the technical solution of this application is essentially or the part that contributes to the existing technology, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium. It includes several instructions to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present application. The aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disks or optical disks and other media that can store program instructions .
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易 想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。The above are only specific implementations of this application, but the protection scope of this application is not limited to this. Anyone familiar with the technical field can easily think of various equivalents within the technical scope disclosed in this application. Modifications or replacements, these modifications or replacements shall be covered within the scope of protection of this application. Therefore, the protection scope of this application should be subject to the protection scope of the claims.
Claims (43)
- 一种视频编解码方法,其特征在于,包括:A video encoding and decoding method, which is characterized in that it comprises:对当前图像的图像块进行像素插值时可以使用至少两种插值滤波器中的一种进行像素插值,所述当前图像包括第一图像块和第二图像块;When performing pixel interpolation on an image block of the current image, one of at least two interpolation filters may be used for pixel interpolation, and the current image includes a first image block and a second image block;采用第一插值滤波器对所述第一图像块的参考块进行像素插值;Performing pixel interpolation on the reference block of the first image block by using a first interpolation filter;采用默认插值滤波器对所述第二图像块的参考块进行像素插值,所述第一图像块为所述第二图像块的相邻块。A default interpolation filter is used to perform pixel interpolation on the reference block of the second image block, and the first image block is an adjacent block of the second image block.
- 根据权利要求1所述的方法,其特征在于,对所述第二图像块的参考块进行像素插值采用的像素精度是亚像素级别的。The method according to claim 1, wherein the pixel accuracy used for pixel interpolation of the reference block of the second image block is at the sub-pixel level.
- 根据权利要求1或2所述的方法,其特征在于,对所述第二图像块的参考块进行像素插值采用的像素精度是1/2像素精度。The method according to claim 1 or 2, wherein the pixel accuracy used for pixel interpolation on the reference block of the second image block is 1/2 pixel accuracy.
- 根据权利要求1至3任一项所述的方法,其特征在于,所述第一图像块为所述第二图像块的时域相邻块。The method according to any one of claims 1 to 3, wherein the first image block is a temporally adjacent block of the second image block.
- 根据权利要求1至3任一项所述的方法,其特征在于,所述第一图像块为所述第二图像块的空域相邻块。The method according to any one of claims 1 to 3, wherein the first image block is a spatial neighboring block of the second image block.
- 根据权利要求1至5任一项所述的方法,其特征在于,所述默认插值滤波器为默认抽头数量的插值滤波器。The method according to any one of claims 1 to 5, wherein the default interpolation filter is an interpolation filter with a default number of taps.
- 根据权利要求1至6任一项所述的方法,其特征在于,所述第一插值滤波器为所述默认插值滤波器或非默认插值滤波器。The method according to any one of claims 1 to 6, wherein the first interpolation filter is the default interpolation filter or a non-default interpolation filter.
- 根据权利要求6所述的方法,其特征在于,所述默认抽头数量的插值滤波器包括6抽头插值滤波器或8抽头插值滤波器。The method according to claim 6, wherein the interpolation filter with the default number of taps comprises a 6-tap interpolation filter or an 8-tap interpolation filter.
- 根据权利要求1至8任一项所述的方法,其特征在于,所述第二图像块采用Merge预测模式或Skip模式。The method according to any one of claims 1 to 8, wherein the second image block adopts a Merge prediction mode or a Skip mode.
- 根据权利要求1至8任一项所述的方法,其特征在于,所述第一图像块采用AMVP预测模式或Merge预测模式或Skip模式。The method according to any one of claims 1 to 8, wherein the first image block adopts AMVP prediction mode or Merge prediction mode or Skip mode.
- 根据权利要求7所述的方法,其特征在于,所述采用默认插值滤波器对所述第二图像块的参考块进行像素插值之前,还包括:8. The method according to claim 7, wherein before the pixel interpolation is performed on the reference block of the second image block by using the default interpolation filter, the method further comprises:获取运动矢量候选列表;Obtaining a list of motion vector candidates;从所述运动矢量候选列表中选择运动矢量;Selecting a motion vector from the motion vector candidate list;根据所述运动矢量从参考帧中确定所述第二图像块的参考块;Determining a reference block of the second image block from a reference frame according to the motion vector;采用所述默认插值滤波器对所述第二图像块的参考块进行像素插值之后,还包括:After performing pixel interpolation on the reference block of the second image block by using the default interpolation filter, the method further includes:根据所述参考块经像素插值后的参考块和所述第二图像块确定残差。The residual is determined according to the reference block after the pixel interpolation of the reference block and the second image block.
- 根据权利要求1至11任一项所述的方法,其特征在于,在采用所述第一插值滤波器对所述第一图像块的参考块进行像素插值后,不对所述第一图像块的参考块采用的所述第一插值滤波器的标识进行存储。The method according to any one of claims 1 to 11, wherein after the first interpolation filter is used to perform pixel interpolation on the reference block of the first image block, the image of the first image block is not The identifier of the first interpolation filter used by the reference block is stored.
- 根据权利要求1至12任一项所述的方法,其特征在于,在采用所述默认插值滤波器对所述第二图像块的参考块进行像素插值后,不对所述第二图像块的参考块采用的所述默认插值滤波器的标识进行存储。The method according to any one of claims 1 to 12, wherein after the default interpolation filter is used to perform pixel interpolation on the reference block of the second image block, the reference block of the second image block is not The identifier of the default interpolation filter used by the block is stored.
- 根据权利要求1至13任一项所述的方法,其特征在于,在采用所述第一插值滤波器对所述第一图像块的参考块进行像素插值后,不对所述第一图像块的参考块采用的所述第一插值滤波器的标识进行时域存储。The method according to any one of claims 1 to 13, wherein after the first interpolation filter is used to perform pixel interpolation on the reference block of the first image block, the image of the first image block is not The identifier of the first interpolation filter used by the reference block is stored in the time domain.
- 根据权利要求12所述的方法,其特征在于,在采用所述第一插值滤波器对所述第一图像块的参考块进行像素插值后,对所述第一图像块的参考块采用的所述第一插值滤波器的标识进行空域存储。The method according to claim 12, wherein after pixel interpolation is performed on the reference block of the first image block by using the first interpolation filter, all the reference blocks of the first image block are used. The identifier of the first interpolation filter is stored in the spatial domain.
- 根据权利要求12所述的方法,其特征在于,在采用所述第一插值滤波器对所述第一图像块的参考块进行像素插值后,不对所述第一图像块的参考块采用的所述第一插值滤波器的标识进行空域存储。The method according to claim 12, wherein after the first interpolation filter is used to perform pixel interpolation on the reference block of the first image block, all the reference blocks of the first image block are not used. The identifier of the first interpolation filter is stored in the spatial domain.
- 根据权利要求11所述的方法,其特征在于,所述运动矢量候选列表中不包含所述第一图像块的参考块采用的所述第一插值滤波器的标识。The method according to claim 11, wherein the motion vector candidate list does not include an identifier of the first interpolation filter used by the reference block of the first image block.
- 根据权利要求11所述的方法,其特征在于,所述运动矢量候选列表包括空域候选运动矢量、时域候选运动矢量、基于历史信息的候选运动矢量、成对候选运动矢量或零运动矢量中的一种或多种,其中,所述成对候选运动矢量是所述空域候选运动矢量、所述时域候选运动矢量或所述基于历史信息的候选运动矢量中的一种或多种确定的。The method according to claim 11, wherein the motion vector candidate list includes a candidate motion vector in the spatial domain, a candidate motion vector in the time domain, a candidate motion vector based on historical information, a pair of candidate motion vectors, or a zero motion vector. One or more, wherein the paired candidate motion vector is determined by one or more of the candidate motion vector in the spatial domain, the candidate motion vector in the time domain, or the candidate motion vector based on historical information.
- 根据权利要求1至18任一项所述的方法,其特征在于,针对亮度模式,采用所述默认插值滤波器对所述第二图像块的参考块进行像素插值。The method according to any one of claims 1 to 18, wherein for the brightness mode, the default interpolation filter is used to perform pixel interpolation on the reference block of the second image block.
- 根据权利要求1至18任一项所述的方法,其特征在于,针对色度模式,采用所述默认插值滤波器对所述第二图像块的参考块进行像素插值。The method according to any one of claims 1 to 18, wherein for the chrominance mode, the default interpolation filter is used to perform pixel interpolation on the reference block of the second image block.
- 一种视频编解码装置,其特征在于,所述视频编解码装置包括:A video encoding and decoding device, characterized in that the video encoding and decoding device includes:存储器,用于存储可执行指令;Memory, used to store executable instructions;处理器,用于执行所述存储器中存储的所述指令,使得所述视频编解码方法,所述方法包括:The processor is configured to execute the instructions stored in the memory to enable the video encoding and decoding method, and the method includes:对当前图像的图像块进行像素插值时可以使用至少两种插值滤波器中的一种进行像素插值,所述当前图像包括第一图像块和第二图像块;When performing pixel interpolation on an image block of the current image, one of at least two interpolation filters may be used for pixel interpolation, and the current image includes a first image block and a second image block;采用第一插值滤波器对所述第一图像块的参考块进行像素插值;Performing pixel interpolation on the reference block of the first image block by using a first interpolation filter;采用默认插值滤波器对所述第二图像块的参考块进行像素插值,所述第一图像块为所述第二图像块的相邻块。A default interpolation filter is used to perform pixel interpolation on the reference block of the second image block, and the first image block is an adjacent block of the second image block.
- 根据权利要求21所述的视频编解码装置,其特征在于,对所述第二图像块的参考块进行像素插值采用的像素精度是亚像素级别的。The video encoding and decoding device according to claim 21, wherein the pixel accuracy used for pixel interpolation of the reference block of the second image block is at the sub-pixel level.
- 根据权利要求21或22所述的视频编解码装置,其特征在于,对所述第二图像块的参考块进行像素插值采用的像素精度是1/2像素精度。The video encoding and decoding device according to claim 21 or 22, wherein the pixel precision used for pixel interpolation on the reference block of the second image block is 1/2 pixel precision.
- 根据权利要求21至23任一项所述的视频编解码装置,其特征在于,所述第一图像块为所述第二图像块的时域相邻块。The video encoding and decoding device according to any one of claims 21 to 23, wherein the first image block is a temporal neighboring block of the second image block.
- 根据权利要求21至23任一项所述的视频编解码装置,其特征在于,所述第一图像块为所述第二图像块的空域相邻块。The video encoding and decoding device according to any one of claims 21 to 23, wherein the first image block is a spatial neighboring block of the second image block.
- 根据权利要求21至25任一项所述的视频编解码装置,其特征在于,所述默认插值滤波器为默认抽头数量的插值滤波器。The video encoding and decoding device according to any one of claims 21 to 25, wherein the default interpolation filter is an interpolation filter with a default number of taps.
- 根据权利要求21至26任一项所述的视频编解码装置,其特征在于,所述第一插值滤波器为所述默认插值滤波器或非默认插值滤波器。The video encoding and decoding device according to any one of claims 21 to 26, wherein the first interpolation filter is the default interpolation filter or a non-default interpolation filter.
- 根据权利要求26所述的视频编解码装置,其特征在于,所述默认抽头数量的插值滤波器包括6抽头插值滤波器或8抽头插值滤波器。The video encoding and decoding device according to claim 26, wherein the interpolation filter with the default number of taps comprises a 6-tap interpolation filter or an 8-tap interpolation filter.
- 根据权利要求21至28任一项所述的视频编解码装置,其特征在于,所述第二图像块采用Merge预测模式或Skip模式。The video encoding and decoding device according to any one of claims 21 to 28, wherein the second image block adopts a Merge prediction mode or a Skip mode.
- 根据权利要求21至28任一项所述的视频编解码装置,其特征在于,所述第一图像块采用AMVP预测模式或Merge预测模式或Skip模式。The video encoding and decoding device according to any one of claims 21 to 28, wherein the first image block adopts AMVP prediction mode or Merge prediction mode or Skip mode.
- 根据权利要求27所述的视频编解码装置,其特征在于,所述采用默认插值滤波器对所述第二图像块的参考块进行像素插值之前,还包括:The video encoding and decoding device according to claim 27, wherein before the pixel interpolation is performed on the reference block of the second image block by using the default interpolation filter, the method further comprises:获取运动矢量候选列表;Obtaining a list of motion vector candidates;从所述运动矢量候选列表中选择运动矢量;Selecting a motion vector from the motion vector candidate list;根据所述运动矢量从参考帧中确定所述第二图像块的参考块;Determining a reference block of the second image block from a reference frame according to the motion vector;采用所述默认插值滤波器对所述第二图像块的参考块进行像素插值之后,还包括:After performing pixel interpolation on the reference block of the second image block by using the default interpolation filter, the method further includes:根据所述参考块经像素插值后的参考块和所述第二图像块确定残差。The residual is determined according to the reference block after the pixel interpolation of the reference block and the second image block.
- 根据权利要求21至31任一项所述的视频编解码装置,其特征在于,在采用所述第一插值滤波器对所述第一图像块的参考块进行像素插值后,不对所述第一图像块的参考块采用的所述第一插值滤波器的标识进行存储。The video encoding and decoding device according to any one of claims 21 to 31, wherein after the first interpolation filter is used to perform pixel interpolation on the reference block of the first image block, the first image block is not subjected to pixel interpolation. The identifier of the first interpolation filter used by the reference block of the image block is stored.
- 根据权利要求21至32任一项所述的视频编解码装置,其特征在于,在采用所述默认插值滤波器对所述第二图像块的参考块进行像素插值后,不对所述第二图像块的参考块采用的所述默认插值滤波器的标识进行存储。The video encoding and decoding device according to any one of claims 21 to 32, wherein after pixel interpolation is performed on the reference block of the second image block by using the default interpolation filter, the second image is not The identifier of the default interpolation filter used by the reference block of the block is stored.
- 根据权利要求21至33任一项所述的视频编解码装置,其特征在于,在采用所述第一插值滤波器对所述第一图像块的参考块进行像素插值后,不对所述第一图像块的参考块采用的所述第一插值滤波器的标识进行时域存储。The video encoding and decoding device according to any one of claims 21 to 33, wherein after the first interpolation filter is used to perform pixel interpolation on the reference block of the first image block, the first image block is not subjected to pixel interpolation. The identifier of the first interpolation filter used by the reference block of the image block is stored in the time domain.
- 根据权利要求32所述的视频编解码装置,其特征在于,在采用所述第一插值滤波器对所述第一图像块的参考块进行像素插值后,对所述第一图像块的参考块采用的所述第一插值滤波器的标识进行空域存储。The video encoding and decoding device according to claim 32, wherein after pixel interpolation is performed on the reference block of the first image block by using the first interpolation filter, the reference block of the first image block is The used identifier of the first interpolation filter is stored in the spatial domain.
- 根据权利要求32所述的视频编解码装置,其特征在于,在采用所述第一插值滤波器对所述第一图像块的参考块进行像素插值后,不对所述第一图像块的参考块采用的所述第一插值滤波器的标识进行空域存储。The video encoding and decoding device according to claim 32, wherein after the first interpolation filter is used to perform pixel interpolation on the reference block of the first image block, the reference block of the first image block is not The used identifier of the first interpolation filter is stored in the spatial domain.
- 根据权利要求31所述的视频编解码装置,其特征在于,所述运动矢量候选列表中不包含所述第一图像块的参考块采用的所述第一插值滤波器的标识。The video encoding and decoding device according to claim 31, wherein the motion vector candidate list does not include an identifier of the first interpolation filter used by the reference block of the first image block.
- 根据权利要求31所述的视频编解码装置,其特征在于,所述运动矢量候选列表包括空域候选运动矢量、时域候选运动矢量、基于历史信息的候选运动矢量、成对候选运动矢量或零运动矢量中的一种或多种,其中,所述成对候选运动矢量是所述空域候选运动矢量、所述时域候选运动矢量或所述基于历史信息的候选运动矢量中的一种或多种确定的。The video encoding and decoding device according to claim 31, wherein the motion vector candidate list includes spatial candidate motion vectors, temporal candidate motion vectors, candidate motion vectors based on historical information, paired candidate motion vectors, or zero motion One or more of the vector, wherein the paired candidate motion vector is one or more of the candidate motion vector in the spatial domain, the candidate motion vector in the time domain, or the candidate motion vector based on historical information definite.
- 根据权利要求21至38任一项所述的视频编解码装置,其特征在于, 针对亮度模式,采用所述默认插值滤波器对所述第二图像块的参考块进行像素插值。The video encoding and decoding device according to any one of claims 21 to 38, wherein for the brightness mode, the default interpolation filter is used to perform pixel interpolation on the reference block of the second image block.
- 根据权利要求21至38任一项所述的视频编解码装置,其特征在于,针对色度模式,采用所述默认插值滤波器对所述第二图像块的参考块进行像素插值。The video encoding and decoding device according to any one of claims 21 to 38, wherein for the chrominance mode, the default interpolation filter is used to perform pixel interpolation on the reference block of the second image block.
- 一种视频编解码器,其特征在于,包括:A video codec, which is characterized in that it comprises:权利要求21至40任一项所述的视频编解码装置;和The video codec device according to any one of claims 21 to 40; and本体,所述编解码器装置安装在所述本体上。The body, the codec device is mounted on the body.
- 根据权利要求41所述的视频编解码器,其特征在于,所述本体包括手机、相机或无人机中的至少一种。The video codec according to claim 41, wherein the body comprises at least one of a mobile phone, a camera, or a drone.
- 一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至20中任一项所述的视频编解码方法。A computer-readable storage medium having a computer program stored thereon, wherein the program is executed by a processor to implement the video encoding and decoding method according to any one of claims 1 to 20.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/107598 WO2021056212A1 (en) | 2019-09-24 | 2019-09-24 | Method and apparatus for video encoding and decoding |
CN201980033882.2A CN112154666A (en) | 2019-09-24 | 2019-09-24 | Video coding and decoding method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/107598 WO2021056212A1 (en) | 2019-09-24 | 2019-09-24 | Method and apparatus for video encoding and decoding |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021056212A1 true WO2021056212A1 (en) | 2021-04-01 |
Family
ID=73891983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/107598 WO2021056212A1 (en) | 2019-09-24 | 2019-09-24 | Method and apparatus for video encoding and decoding |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112154666A (en) |
WO (1) | WO2021056212A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114339223B (en) | 2021-02-23 | 2023-03-31 | 杭州海康威视数字技术股份有限公司 | Decoding method, device, equipment and machine readable storage medium |
CN113259669B (en) * | 2021-03-25 | 2023-07-07 | 浙江大华技术股份有限公司 | Encoding method, encoding device, electronic device and computer readable storage medium |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043621A (en) * | 2006-06-05 | 2007-09-26 | 华为技术有限公司 | Self-adaptive interpolation process method and coding/decoding module |
CN101365137A (en) * | 2008-09-12 | 2009-02-11 | 华为技术有限公司 | Motion compensation reference data loading method and apparatus, decoder, encoding and decoding system |
CN103747269A (en) * | 2013-09-30 | 2014-04-23 | 北京大学深圳研究生院 | Filter interpolation method and filter |
US20180077423A1 (en) * | 2016-09-15 | 2018-03-15 | Google Inc. | Dual filter type for motion compensated prediction in video coding |
CN107925772A (en) * | 2015-09-25 | 2018-04-17 | 华为技术有限公司 | The apparatus and method that video motion compensation is carried out using optional interpolation filter |
CN109756737A (en) * | 2017-11-07 | 2019-05-14 | 华为技术有限公司 | Image prediction method and apparatus |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2636622B2 (en) * | 1992-03-13 | 1997-07-30 | 松下電器産業株式会社 | Video signal encoding method and decoding method, and video signal encoding apparatus and decoding apparatus |
CN102387360B (en) * | 2010-09-02 | 2016-05-11 | 乐金电子(中国)研究开发中心有限公司 | Video coding-decoding inter-frame image prediction method and Video Codec |
CN104702962B (en) * | 2015-03-03 | 2019-04-16 | 华为技术有限公司 | Decoding method, encoder and decoder in frame |
-
2019
- 2019-09-24 CN CN201980033882.2A patent/CN112154666A/en active Pending
- 2019-09-24 WO PCT/CN2019/107598 patent/WO2021056212A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043621A (en) * | 2006-06-05 | 2007-09-26 | 华为技术有限公司 | Self-adaptive interpolation process method and coding/decoding module |
CN101365137A (en) * | 2008-09-12 | 2009-02-11 | 华为技术有限公司 | Motion compensation reference data loading method and apparatus, decoder, encoding and decoding system |
CN103747269A (en) * | 2013-09-30 | 2014-04-23 | 北京大学深圳研究生院 | Filter interpolation method and filter |
CN107925772A (en) * | 2015-09-25 | 2018-04-17 | 华为技术有限公司 | The apparatus and method that video motion compensation is carried out using optional interpolation filter |
US20180077423A1 (en) * | 2016-09-15 | 2018-03-15 | Google Inc. | Dual filter type for motion compensated prediction in video coding |
CN109756737A (en) * | 2017-11-07 | 2019-05-14 | 华为技术有限公司 | Image prediction method and apparatus |
Also Published As
Publication number | Publication date |
---|---|
CN112154666A (en) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102130821B1 (en) | Method for video decoding and computer readable redording meduim thereof | |
US10666938B2 (en) | Deriving reference mode values and encoding and decoding information representing prediction modes | |
TWI711300B (en) | Signaling for illumination compensation | |
JP7015255B2 (en) | Video coding with adaptive motion information improvements | |
TWI705703B (en) | Deriving motion information for sub-blocks in video coding | |
JP5875989B2 (en) | Method and apparatus for low complexity template matching prediction for video encoding and decoding | |
WO2020015699A1 (en) | Merge candidates with multiple hypothesis | |
KR20220000917A (en) | Motion vector refinement for multi-reference prediction | |
CN112534807A (en) | Method and apparatus for multi-hypothesis mode referencing and constraining | |
GB2519514A (en) | Method and apparatus for displacement vector component prediction in video coding and decoding | |
WO2021163862A1 (en) | Video encoding method and device | |
CN111279701B (en) | Video processing method and device | |
JP2022535859A (en) | Method for constructing MPM list, method for obtaining intra-prediction mode of chroma block, and apparatus | |
CN114128263A (en) | Method and apparatus for adaptive motion vector resolution in video coding and decoding | |
EP4037320A1 (en) | Boundary extension for video coding | |
WO2021056212A1 (en) | Method and apparatus for video encoding and decoding | |
JP7247345B2 (en) | Video decoding method, video decoding device, and program | |
WO2021056220A1 (en) | Video coding and decoding method and apparatus | |
JP7556988B2 (en) | METHOD AND APPARATUS FOR CODING IMAGES OF A VIDEO SEQUENCE AND TERMINAL DEVICE - Patent application | |
WO2021056210A1 (en) | Video encoding and decoding method and apparatus, and computer-readable storage medium | |
JP7198949B2 (en) | Motion vector prediction for video coding | |
WO2021081905A1 (en) | Image prediction and video coding methods, apparatus, mobile platform, and storage medium | |
WO2020063598A1 (en) | A video encoder, a video decoder and corresponding methods | |
WO2020042990A1 (en) | Inter-frame prediction method and device, and coding/decoding method and device for application thereof | |
WO2024086568A1 (en) | Method, apparatus, and medium for video processing |
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: 19947331 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19947331 Country of ref document: EP Kind code of ref document: A1 |