WO2021056210A1 - Video encoding and decoding method and apparatus, and computer-readable storage medium - Google Patents

Video encoding and decoding method and apparatus, and computer-readable storage medium Download PDF

Info

Publication number
WO2021056210A1
WO2021056210A1 PCT/CN2019/107596 CN2019107596W WO2021056210A1 WO 2021056210 A1 WO2021056210 A1 WO 2021056210A1 CN 2019107596 W CN2019107596 W CN 2019107596W WO 2021056210 A1 WO2021056210 A1 WO 2021056210A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion vector
interpolation filter
candidate
candidate list
default
Prior art date
Application number
PCT/CN2019/107596
Other languages
French (fr)
Chinese (zh)
Inventor
马思伟
王苏红
郑萧桢
王苫社
Original Assignee
北京大学
深圳市大疆创新科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京大学, 深圳市大疆创新科技有限公司 filed Critical 北京大学
Priority to PCT/CN2019/107596 priority Critical patent/WO2021056210A1/en
Priority to CN201980034107.9A priority patent/CN112204977A/en
Publication of WO2021056210A1 publication Critical patent/WO2021056210A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Definitions

  • This application generally relates to the technical field of video coding and decoding, and more specifically to a video coding and decoding method, device, and computer-readable storage medium.
  • Prediction is an important module of the mainstream video coding framework. Prediction can include intra-frame prediction and inter-frame prediction. At present, the main video coding standard inter-frame prediction part needs to determine the corresponding interpolation filter based on the type of the selected motion vector after selecting a motion vector from the motion vector candidate list. This process is cumbersome and introduces unnecessary coding and decoding burdens. .
  • the embodiments of the present application provide a video coding and decoding solution, which can reduce coding and decoding complexity and save hardware overhead.
  • a video encoding and decoding method includes: obtaining a motion vector candidate list, and selecting a motion vector from the motion vector candidate list; Reference block; using the default interpolation filter to perform pixel interpolation on the reference block.
  • a video encoding and decoding method includes: obtaining a motion vector candidate list, and selecting a motion vector from the motion vector candidate list; determining the current block according to the selected motion vector If the selected motion vector is a paired average motion vector, the default interpolation filter is used to perform pixel interpolation on the reference block, and the paired average motion vector is based on the motion vector candidate list If at least two candidate motion vectors are determined, the interpolation filters corresponding to the at least two candidate motion vectors are the same or different.
  • a video encoding and decoding device the device includes a memory and a processor, the memory stores a computer program run by the processor, and the processor reads The computer program stored in the memory performs the following operations: obtain a motion vector candidate list, and select a motion vector from the motion vector candidate list; determine the reference block of the current block according to the selected motion vector; use the default interpolation filter pair The reference block performs pixel interpolation.
  • a video encoding and decoding device including a memory and a processor, the memory stores a computer program run by the processor, and the processor reads The computer program stored in the memory performs the following operations: obtain a motion vector candidate list, and select a motion vector from the motion vector candidate list; determine the reference block of the current block according to the selected motion vector; if the selected motion If the vector is a paired average motion vector, the default interpolation filter is used to perform pixel interpolation on the reference block.
  • the paired average motion vector is determined according to at least two candidate motion vectors in the motion vector candidate list, so The interpolation filters corresponding to the at least two candidate motion vectors are the same or different.
  • a computer-readable storage medium is provided, and a computer program is stored on the computer-readable storage medium, and the computer program executes any of the foregoing when run by a processor.
  • Video encoding and decoding methods are provided.
  • the video encoding and decoding method, device, and computer-readable storage medium according to the embodiments of the present application do not require complicated selection after determining the motion vector predictor from the motion vector predictor candidate list and determining the reference block of the current block based on the motion vector predictor. , Judge the type of interpolation filter, but directly use the default interpolation filter to perform pixel interpolation on the reference block, which can reduce the coding and decoding complexity without reducing the coding and decoding efficiency, and save hardware overhead.
  • Fig. 1 shows an architecture diagram of a technical solution according to an embodiment of the present application.
  • Fig. 2 shows a schematic diagram of a video coding framework according to an embodiment of the present application.
  • Fig. 3 shows a schematic flowchart of a video encoding and decoding method according to an embodiment of the present application.
  • FIG. 4 shows a schematic diagram of the establishment of a candidate list of spatial motion vectors used in a video encoding and decoding method according to an embodiment of the present application.
  • Fig. 5 shows a schematic diagram of the establishment of a candidate list of temporal motion vectors used in a video encoding and decoding method according to an embodiment of the present application.
  • Fig. 6 shows 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 can be implemented by one or more processors.
  • the processor can be a processor in a computing device or a mobile device (such as a mobile phone, a camera, a drone, etc.). Processor.
  • 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 according to an embodiment of the present application.
  • 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 for performing decision-making control actions in the encoding process and selection of parameters.
  • 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 may also be in a quadtree, or binary tree, or triple tree manner. Iteratively divides into a series of smaller coding units (coding units, CU).
  • a CU may also include a prediction unit (PU) and a transform unit (TU) associated with it, where the PU It is the basic unit of prediction, and TU is the basic unit of transformation and quantization.
  • PU prediction unit
  • TU transform unit
  • 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 data units formed are called 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.
  • two-dimensional discrete cosine transform (DCT) transformation and two-dimensional discrete sine transform (DST) transformation are usually adopted. Respectively multiply an N ⁇ M transformation matrix and its transposed matrix, and obtain the transformation coefficient of the current coding block after the multiplication.
  • the 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 coding block, wherein the entropy coding method includes 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 prediction process when the inter prediction mode is selected, 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 (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 mode in the video coding standard may include an advanced motion vector prediction (AMVP) mode and a merge (Merge) mode.
  • AMVP advanced motion vector prediction
  • Merge merge
  • the prediction value of the motion vector (motion vector prediction, MVP) can be determined first. After the MVP is obtained, the starting point of the motion estimation can be determined according to the MVP. The motion search is performed near the starting point, and the result is obtained after the search is completed.
  • the position of the reference block in the reference image is determined by the MV, the reference block is subtracted from the current block to obtain the residual block, and the MVP is subtracted from the MV to obtain the motion vector difference (MVD), and the MVD is passed
  • the code stream is transmitted to the decoding end.
  • the MVP can be determined first, and the MVP can be directly determined as the MV.
  • an MVP candidate list (merge candidate list) can be constructed first.
  • the MVP candidate list at least one candidate MVP can be included.
  • Each candidate MVP can correspond to an index.
  • the encoder can write the MVP index into the code stream, and the decoder can find the corresponding index from the MVP candidate list according to the index. MVP to achieve the decoding of image blocks.
  • Step 1 Obtain the MVP candidate list
  • Step 2 Select an optimal MVP from the MVP candidate list, and at the same time obtain the index of the MVP in the MVP candidate list;
  • Step 3 Use the MVP as the MV of the current block
  • Step 4 Determine the position of the reference block in the reference image according to the MV
  • Step 5 Subtract the current block from the reference block to obtain the residual block
  • Step 6 Pass the residual data and the index of the MVP to the decoder.
  • Merge mode can also have other implementations.
  • motion estimation In a video coding framework based on block motion compensation, motion estimation (ME) is one of the most important links. Since the movement of natural objects is not necessarily based on whole pixels, it may be based on half pixels (1/2 pixels), 1/4 pixels or even 1/8 pixels. If the whole-pixel precision motion estimation is still used in this case, it may cause the problem of inaccurate search, resulting in a large motion compensation residual amplitude and affecting coding efficiency. Therefore, in this case, sub-pixel accuracy should be used for motion estimation. Sub-pixel precision motion estimation means that the reference image needs to be interpolated, and a good interpolation method can greatly improve the performance of motion compensation.
  • the pixel interpolation of the reference block is Directly inherit the interpolation filter of the spatial MV. If the determined MVP is a candidate MV in the time domain, an 8-tap interpolation filter is used by default when performing pixel interpolation on the reference block. If the determined MVP is a history-based candidate MV (history motion vector prediction, HMVP), then when pixel interpolation is performed on the reference block, the interpolation filter of the HMVP is directly inherited.
  • HMVP history motion vector prediction
  • the following steps are required: first determine whether the two candidate MVs for averaging use the same interpolation filter, if they are the same, when performing pixel interpolation on the reference block It uses the same interpolation filter as the two candidate MVs; if they are different, the 8-tap interpolation filter is used by default when performing pixel interpolation on the reference block.
  • the above-mentioned Merge mode is cumbersome when determining the interpolation filter used for the reference block, which introduces unnecessary coding and decoding burdens.
  • the following solutions provided by the embodiments of the present application can reduce the coding and decoding complexity and save hardware overhead.
  • FIG. 3 shows a schematic flowchart of a video encoding and decoding method 300 according to an embodiment of the present application.
  • the method 300 can be used on the encoding side and can also be used on the decoding side. As shown in FIG. 3, the method 300 includes the following steps:
  • step S310 a motion vector candidate list is obtained, and a motion vector is selected from the motion vector candidate list.
  • step S330 the reference block of the current block is determined according to the selected motion vector.
  • step S330 a default interpolation filter is used to perform pixel interpolation on the reference block.
  • the MVP candidate list can be obtained, and the MVP can be determined from it to predict the position of the reference block of the current block. After the position of the reference block is obtained, there is no need for cumbersome selection and judgment of the interpolation filter type process, but directly Using the default interpolation filter to perform pixel interpolation on the reference block can save the coding and decoding process, reduce the coding and decoding complexity, and save the hardware overhead without reducing the coding and decoding efficiency.
  • the motion vector candidate list (ie, the MVP candidate list) in the embodiments of the present application may include spatial candidate motion vectors, time domain candidate motion vectors, HMVP candidate motion vectors, pairwise candidate motion vectors, and zero motion vectors. Some of these motion vectors may be All are used to form the motion vector candidate list in the embodiment of this application. The following briefly describes the establishment of the above-mentioned candidate motion vector and the motion vector candidate list.
  • the spatial candidate motion vector may be as shown in Figure 4.
  • the gray block is the current coding unit (that is, the current block)
  • A1 represents the lowest coding unit on the left side of the current coding unit
  • B1 represents the current coding unit.
  • the rightmost coding unit on the upper side of the coding unit, B0 and A0 respectively represent the coding unit with the closest distance to the upper right and lower left of the current prediction unit
  • B2 represents the coding unit with the closest distance to the upper left of the current coding unit.
  • the airspace provides a maximum of 4 candidate MVs. When selecting the airspace motion vector, they are selected in the order of A1->B1->B0->A0->(B2), where B2 is a substitute.
  • the temporal candidate motion vector may be obtained based on the motion information of the coding unit at the corresponding position of the current coding unit in the adjacent coded image. Unlike the spatial situation, the temporal candidate motion vector cannot directly use the motion information of the candidate block, but needs to be scaled and adjusted according to the positional relationship with the reference image.
  • a time-domain candidate motion vector is generally provided. As shown in Figure 5, the gray block is the current coding unit (that is, the current block), and the candidate motion vector is derived from the previous frame (forward prediction) or the next frame of the current frame. The position of C0 in the (backward prediction) is obtained. If C0 is not available, the motion vector of the coding unit corresponding to the position C1 is used as the candidate motion vector.
  • the HMVP candidate motion vector is stored as the motion information of the coded block.
  • the HMVP candidate motion vector will be used for filling. The filling will be based on the distance between the coded block and the current coded block from near to far.
  • the HMVP candidate motion vector that stores the motion information of the coded block is filled into the motion vector candidate list.
  • the pairwise mode can be used to fill the motion vector candidate list. Pairwise uses at least two existing candidate motion vectors in the motion vector candidate list (for example, the first two candidate motion vectors in the list) to average to obtain a new candidate motion vector, which is filled into the motion vector candidate list. If one of the two candidate motion vectors has no motion vector in the forward or backward reference direction, only the one with the motion vector is used for candidate motion vector filling; if the two candidate motion vectors are in a certain If there is no motion vector in the reference direction, the pairwise candidate motion vector filling is not performed.
  • the motion vector candidate list is filled with zero motion vectors until it is filled. Full list of motion vector candidates.
  • the method 300 may obtain the motion vector candidate list in step S310, and select the motion vector used to determine the reference block of the current block from the motion vector candidate list.
  • the optimal motion vector can be selected from the motion vector candidate list for determining the reference block of the current block.
  • the optimal motion vector can be selected by the following method: traverse all candidate motion vectors in the motion vector candidate list, and calculate the rate-distortion cost, and finally select the candidate motion vector with the smallest rate-distortion cost as the optimal motion Vector.
  • the codec can establish the motion vector candidate list in the same way, and the encoder only needs to transmit the index of the optimal motion vector in the motion vector candidate list, which greatly saves the number of coding bits of motion information.
  • the position of the reference block in the reference image (each candidate motion vector corresponds to a reference image) can be determined according to the motion vector, that is, the reference block (or prediction block) of the current block is obtained.
  • the reference block obtained in step S320 pixel interpolation may be performed on the reference block in the reference image in step S330.
  • the current block may adopt a unidirectional prediction mode or a dual motion vector mode.
  • 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 number of motion vector candidate lists obtained in step S310 is one.
  • the motion vector candidate list may be determined based on the forward reference frame, or may be determined based on the backward reference frame.
  • the number of motion vector candidate lists obtained in step S310 is two.
  • the two motion vector candidate lists may be determined based on the forward reference frame and the backward reference frame, respectively.
  • the dual forward prediction mode in the dual motion vector mode the two motion vector candidate lists are respectively determined based on the forward reference frame.
  • the two motion vector candidate lists are respectively determined based on the backward reference frame.
  • a motion vector is selected from the two motion vector candidate lists in step S310, and a reference block is determined according to the respective selected motion vectors in step S320.
  • pixel interpolation is performed respectively according to the respective determined reference blocks.
  • a default interpolation filter is used to perform pixel interpolation on the reference block obtained in step S320.
  • the default interpolation filter may be an interpolation filter with a default number of taps or any other interpolation filter suitable for pixel interpolation of the reference block.
  • the interpolation accuracy may be, for example, sub-pixel accuracy such as 1/2 pixel accuracy and 1/4 pixel accuracy, or whole pixel accuracy such as 1-pixel accuracy, 2-pixel accuracy, or 4-pixel accuracy.
  • the motion vector selected in step S320 may be a pairwise motion vector.
  • the pairwise motion vector is determined according to at least two candidate motion vectors in the motion vector candidate list obtained in step S310 (for example, the pairwise motion vector is equal to the average value of the at least two candidate motion vectors, such as a weighted average value).
  • the interpolation filters corresponding to each of the at least two candidate motion vectors may be the same or different.
  • the interpolation filter corresponding to the candidate motion vector refers to the interpolation filter used when performing pixel interpolation on the reference block of the neighboring block of the current block, where the neighboring block is the one recorded in the motion vector candidate list.
  • the block corresponding to the motion vector in other words, the motion vector recorded in the motion vector candidate list is the motion vector of the neighboring block of the current block. Therefore, the interpolation filter corresponding to the candidate motion vector is the interpolation filter used when performing pixel interpolation on the reference block of the neighboring block of the current block.
  • the neighboring blocks may include temporal neighboring blocks or spatial neighboring blocks.
  • the temporal neighboring block refers to the block in the previous frame or the next frame of the current frame where the current block is located, and the spatial neighboring block refers to other coded blocks in the current frame.
  • the existing method when the selected motion vector is a pairwise motion vector, it is necessary to compare the interpolation filters used to determine the two candidate motion vectors of the pairwise motion vector; if the two candidate motion vectors correspond to each other If the interpolation filters are the same, the interpolation filters corresponding to the two candidate motion vectors are used to perform pixel interpolation on the reference block of the current block; if the interpolation filters corresponding to the two candidate motion vectors are different, 8 is used by default.
  • the tap interpolation filter performs pixel interpolation on the reference block of the current block.
  • the default interpolation filter is directly used to perform pixel interpolation on the reference block of the current block. Therefore, logic can be simplified and hardware overhead can be saved.
  • the default interpolation filter may be an 8-tap interpolation filter, a 6-tap interpolation filter, or other-tap interpolation filters, which is not limited in the embodiment of the present application. Among them, the 6-tap interpolation filter has flatter characteristics, and the required bandwidth is smaller, and the interpolation complexity is also smaller.
  • the motion vector selected in step S320 may be a spatial candidate motion vector.
  • the selected motion vector when pixel interpolation is performed on the reference block of the current block, it is an interpolation filter that inherits the spatial candidate motion vector.
  • the inheritance operation when the motion vector selected in step S320 is a spatial candidate motion vector, the inheritance operation is not performed, but the default interpolation filter (for example, 8-tap interpolation filter or 6-tap interpolation filter) is directly used to pair The reference block of the current block performs pixel interpolation.
  • the embodiment of the present application does not need to obtain the type of interpolation filter corresponding to the spatial candidate motion vector from the storage area buffer, therefore, the processing procedure is saved and the coding and decoding complexity is reduced.
  • the motion vector selected in step S320 may be a candidate motion vector in the time domain.
  • an 8-tap interpolation filter is used by default when pixel interpolation is performed on the reference block of the current block.
  • a 6-tap interpolation filter may also be used to perform pixel interpolation on the reference block of the current block. As mentioned earlier, the 6-tap interpolation filter has flatter characteristics, and requires a smaller bandwidth, and the interpolation complexity is also smaller.
  • the motion vector selected in step S320 may be a candidate motion vector based on history.
  • the interpolation filter corresponding to the candidate motion vector based on the history is directly inherited.
  • the inheritance operation is not performed, and the default interpolation filter (such as 8-tap interpolation filter or 6-tap interpolation filter) is directly used. ) Perform pixel interpolation on the reference block of the current block.
  • the embodiment of the present application does not need to obtain the type of the interpolation filter corresponding to the candidate motion vector based on the history from the buffer. Therefore, the processing procedure is saved and the coding and decoding complexity is reduced.
  • the default interpolation filter can be used to perform pixel interpolation on the reference block of the current block, which can simplify the logic and reduce the complexity of coding and decoding. Degree, saving hardware overhead.
  • the motion vector selected in step S320 may only include pairwise candidate motion vectors.
  • pixel interpolation is performed on the reference block of the current block using the default interpolation filter, which also omits the original comparison and judgment logic. It can also reduce the coding and decoding complexity and save hardware overhead.
  • the video encoding and decoding method does not require complicated selection and judgment logic after determining the motion vector predictor from the motion vector predictor candidate list and determining the reference block of the current block based on the motion vector predictor.
  • FIG. 6 shows a schematic block diagram of a video encoding and decoding device 600 according to an embodiment of the present application.
  • the video encoding and decoding device 600 includes a memory 610 and a processor 620.
  • the video encoding and decoding device 600 can be implemented as an encoder, a decoder, a mobile phone, a camera, a drone, and other devices, products, or equipment that can implement the encoding and decoding process.
  • the memory 610 stores a program for implementing corresponding steps in the video encoding and decoding method according to the embodiment of the present application.
  • the processor 620 is configured to run a program stored in the memory 610 to execute corresponding steps of the video encoding and decoding method according to the embodiment of the present application.
  • the video codec device 600 when the program is run by the processor 620, the video codec device 600 is caused to perform the following steps: obtain a motion vector candidate list, and select a motion vector from the motion vector candidate list; The motion vector of determines the reference block of the current block; the default interpolation filter is used to perform pixel interpolation on the reference block.
  • the selected motion vector is a paired average motion vector
  • the paired average motion vector is determined according to at least two candidate motion vectors in the motion vector candidate list.
  • the interpolation filters corresponding to at least two candidate motion vectors are the same or different.
  • the default interpolation filter is an interpolation filter with a default number of taps.
  • the interpolation filter with the default number of taps includes an 8-tap interpolation filter or a 6-tap interpolation filter.
  • the video codec apparatus 600 when the program is executed by the processor 620, the video codec apparatus 600 is executed to perform pixel interpolation on the reference block using the default interpolation filter, including: adopting 1/2 pixel The default interpolation filter of precision performs pixel interpolation on the reference block.
  • the selected motion vector is a paired average motion vector
  • the paired average motion vector is determined according to a candidate motion vector in the motion vector candidate list.
  • the selected motion vector is a candidate motion vector in the time domain.
  • the selected motion vector is a spatial candidate motion vector.
  • the selected motion vector is a candidate motion vector based on history.
  • the current block adopts a unidirectional prediction mode, and the number of the motion vector candidate list is one.
  • the motion vector candidate list is determined based on a forward reference frame or a backward reference frame.
  • the current block adopts a bidirectional prediction mode, and the number of the motion vector candidate list is two.
  • the two motion vector candidate lists are determined based on the forward reference frame and the backward reference frame, respectively.
  • the paired average motion vector is an average value of the at least two candidate motion vectors.
  • the paired average motion vector is a weighted average of the at least two candidate motion vectors.
  • a computer-readable storage medium is also provided, and program instructions are stored on the computer-readable storage medium, and the program instructions are used to execute the present application when the program instructions are run by a computer or a processor. Corresponding steps of the video encoding and decoding method of the embodiment.
  • the computer-readable storage medium may include, for example, a memory card of a smart phone, a storage component of a tablet computer, a hard disk of a personal computer, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a portable compact disk Read-only memory (CD-ROM), USB memory, or any combination of the above-mentioned computer-readable storage media.
  • the computer-readable storage medium may be any combination of one or more computer-readable storage media.
  • the computer program instructions can execute the video encoding and decoding method according to the embodiments of the present application when they are executed by a computer.
  • An embodiment of the present application also provides a video encoding and decoding device, including a processor and a memory, where the memory is used to store program instructions, and the processor is used to call the program instructions to execute the video encoding and decoding in the various embodiments of the application described above. method.
  • the embodiment of the present application also provides a computer-readable storage medium on which a computer program is stored.
  • the computer program When the computer program is executed by a computer, the computer executes the method of the foregoing method embodiment.
  • the embodiment of the present application also provides a computer program product containing instructions, which when executed by a computer causes the computer to execute the method of the foregoing method embodiment.
  • the video encoding and decoding method, device, and computer-readable storage medium determine the motion vector predictor from the motion vector predictor candidate list and determine the reference block of the current block based on the motion vector predictor.
  • the video encoding and decoding method, device, and computer-readable storage medium according to the embodiments of the present application determine the motion vector predictor from the motion vector predictor candidate list and determine the reference block of the current block based on the motion vector predictor.
  • the disclosed device and method may be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • 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 device, or some features can be ignored or not implemented.
  • the various component embodiments of the embodiments of the present application may be implemented by hardware, or by software modules running on one or more processors, or by a combination of them.
  • a microprocessor or a digital signal processor (DSP) may be used in practice to implement some or all of the functions of some modules according to the embodiments of the present application.
  • the embodiments of the present application may also be implemented as a device program (for example, a computer program and a computer program product) for executing part or all of the methods described herein.
  • Such a program for implementing the embodiments of the present application may be stored on a computer-readable storage medium, or may have the form of one or more signals.
  • Such a signal can be downloaded from an Internet website, or provided on a carrier signal, or provided in any other form.

Landscapes

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

Abstract

A video encoding and decoding method and apparatus, and a computer-readable storage medium, the method comprising: acquiring a motion vector candidate list, and selecting a motion vector from among the motion vector candidate list; determining a reference block of a current block according to the selected motion vector; and using a default interpolation filter to perform pixel interpolation on the reference block. According to the video encoding and decoding method and apparatus and the computer-readable storage medium in the embodiments of the present application, after a motion vector prediction value is determined from among a motion vector prediction value candidate list and a reference block of a current block is determined on the basis of the motion vector prediction value, cumbersome selections are not necessary and the type of an interpolation filter need not be determined. Instead, a default interpolation filter is directly used to perform pixel interpolation on the reference block, which may reduce the complexity of encoding and decoding without reducing the efficiency of encoding and decoding, and may reduce hardware overhead.

Description

视频编解码方法、装置和计算机可读存储介质Video coding and decoding method, device and computer readable storage medium
说明书Manual
技术领域Technical field
本申请总体上涉及视频编解码技术领域,更具体地涉及一种视频编解码方法、装置和计算机可读存储介质。This application generally relates to the technical field of video coding and decoding, and more specifically to a video coding and decoding method, device, and computer-readable storage medium.
背景技术Background technique
预测是主流视频编码框架的重要模块,预测可以包括帧内预测和帧间预测。目前主要的视频编码标准帧间预测部分在从运动矢量候选列表中选择运动矢量后,需要基于所选择运动矢量的类型确定对应的插值滤波器,该过程较为繁琐,引入了不必要的编解码负担。Prediction is an important module of the mainstream video coding framework. Prediction can include intra-frame prediction and inter-frame prediction. At present, the main video coding standard inter-frame prediction part needs to determine the corresponding interpolation filter based on the type of the selected motion vector after selecting a motion vector from the motion vector candidate list. This process is cumbersome and introduces unnecessary coding and decoding burdens. .
发明内容Summary of the invention
本申请实施例提供一种视频编解码方案,可以降低编解码复杂度,节省硬件开销。下面简要描述本申请提出的视频编解码方案,更多细节将在后续结合附图在具体实施方式中加以描述。The embodiments of the present application provide a video coding and decoding solution, which can reduce coding and decoding complexity and save hardware overhead. The following briefly describes the video encoding and decoding solution proposed by the present application, and more details will be described in the specific implementation manner in conjunction with the accompanying drawings.
根据本申请实施例一方面,提供了一种视频编解码方法,所述方法包括:获取运动矢量候选列表,并从所述运动矢量候选列表中选择运动矢量;根据选择的运动矢量确定当前块的参考块;采用默认插值滤波器对所述参考块进行像素插值。According to one aspect of the embodiments of the present application, a video encoding and decoding method is provided, the method includes: obtaining a motion vector candidate list, and selecting a motion vector from the motion vector candidate list; Reference block; using the default interpolation filter to perform pixel interpolation on the reference block.
根据本申请实施例另一方面,提供了一种视频编解码方法,所述方法包括:获取运动矢量候选列表,并从所述运动矢量候选列表中选择运动矢量;根据选择的运动矢量确定当前块的参考块;如果所述选择的运动矢量为成对平均运动矢量,则采用默认插值滤波器对所述参考块进行像素插值,所述成对平均运动矢量是根据所述运动矢量候选列表中的至少两个候选运动矢量确定的,所述至少两个候选运动矢量各自对应的插值滤波器相同或不同。According to another aspect of the embodiments of the present application, a video encoding and decoding method is provided, the method includes: obtaining a motion vector candidate list, and selecting a motion vector from the motion vector candidate list; determining the current block according to the selected motion vector If the selected motion vector is a paired average motion vector, the default interpolation filter is used to perform pixel interpolation on the reference block, and the paired average motion vector is based on the motion vector candidate list If at least two candidate motion vectors are determined, the interpolation filters corresponding to the at least two candidate motion vectors are the same or different.
根据本申请实施例再一方面,提供了一种视频编解码装置,所述装置 包括存储器和处理器,所述存储器上存储有由所述处理器运行的计算机程序,所述处理器由于读取所述存储器中存储的计算机程序,执行如下操作:获取运动矢量候选列表,并从所述运动矢量候选列表中选择运动矢量;根据选择的运动矢量确定当前块的参考块;采用默认插值滤波器对所述参考块进行像素插值。According to another aspect of the embodiments of the present application, there is provided a video encoding and decoding device, the device includes a memory and a processor, the memory stores a computer program run by the processor, and the processor reads The computer program stored in the memory performs the following operations: obtain a motion vector candidate list, and select a motion vector from the motion vector candidate list; determine the reference block of the current block according to the selected motion vector; use the default interpolation filter pair The reference block performs pixel interpolation.
根据本申请实施例又一方面,提供了一种视频编解码装置,所述装置包括存储器和处理器,所述存储器上存储有由所述处理器运行的计算机程序,所述处理器由于读取所述存储器中存储的计算机程序,执行如下操作:获取运动矢量候选列表,并从所述运动矢量候选列表中选择运动矢量;根据选择的运动矢量确定当前块的参考块;如果所述选择的运动矢量为成对平均运动矢量,则采用默认插值滤波器对所述参考块进行像素插值,所述成对平均运动矢量是根据所述运动矢量候选列表中的至少两个候选运动矢量确定的,所述至少两个候选运动矢量各自对应的插值滤波器相同或不同。According to another aspect of the embodiments of the present application, there is provided a video encoding and decoding device, the device including a memory and a processor, the memory stores a computer program run by the processor, and the processor reads The computer program stored in the memory performs the following operations: obtain a motion vector candidate list, and select a motion vector from the motion vector candidate list; determine the reference block of the current block according to the selected motion vector; if the selected motion If the vector is a paired average motion vector, the default interpolation filter is used to perform pixel interpolation on the reference block. The paired average motion vector is determined according to at least two candidate motion vectors in the motion vector candidate list, so The interpolation filters corresponding to the at least two candidate motion vectors are the same or different.
根据本申请实施例再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被处理器运行时执行上述任一项所述的视频编解码方法。According to still another aspect of the embodiments of the present application, a computer-readable storage medium is provided, and a computer program is stored on the computer-readable storage medium, and the computer program executes any of the foregoing when run by a processor. Video encoding and decoding methods.
根据本申请实施例的视频编解码方法、装置和计算机可读存储介质在从运动矢量预测值候选列表中确定运动矢量预测值并基于运动矢量预测值确定当前块的参考块后,无需繁琐的选择、判断插值滤波器的类型,而是直接采用默认插值滤波器对参考块进行像素插值,可以实现在不降低编解码效率的前提下降低编解码复杂度,节省硬件开销。The video encoding and decoding method, device, and computer-readable storage medium according to the embodiments of the present application do not require complicated selection after determining the motion vector predictor from the motion vector predictor candidate list and determining the reference block of the current block based on the motion vector predictor. , Judge the type of interpolation filter, but directly use the default interpolation filter to perform pixel interpolation on the reference block, which can reduce the coding and decoding complexity without reducing the coding and decoding efficiency, and save hardware overhead.
附图说明Description of the drawings
图1示出根据本申请实施例的技术方案的架构图。Fig. 1 shows an architecture diagram of a technical solution according to an embodiment of the present application.
图2示出根据本申请实施例的视频编码框架的示意图。Fig. 2 shows a schematic diagram of a video coding framework according to an embodiment of the present application.
图3示出根据本申请实施例的视频编解码方法的示意性流程图。Fig. 3 shows a schematic flowchart of a video encoding and decoding method according to an embodiment of the present application.
图4示出根据本申请实施例的视频编解码方法中采用的空域运动矢量候选列表的建立的示意图。FIG. 4 shows a schematic diagram of the establishment of a candidate list of spatial motion vectors used in a video encoding and decoding method according to an embodiment of the present application.
图5示出根据本申请实施例的视频编解码方法中采用的时域运动矢量候选列表的建立的示意图。Fig. 5 shows a schematic diagram of the establishment of a candidate list of temporal motion vectors used in a video encoding and decoding method according to an embodiment of the present application.
图6示出根据本申请实施例的视频编解码装置的示意性框图。Fig. 6 shows a schematic block diagram of a video encoding and decoding device according to an embodiment of the present application.
具体实施方式detailed description
下面将参照附图描述本申请的示例实施例。Hereinafter, exemplary embodiments of the present application will be described with reference to the accompanying drawings.
在此使用的术语的目的仅在于描述具体实施例并且不作为本申请的限制。在此使用时,单数形式的“一”、“一个”和“所述/该”也意图包括复数形式,除非上下文清楚指出另外的方式。还应明白术语“组成”和/或“包括”,当在该说明书中使用时,确定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多其它的特征、整数、步骤、操作、元件、部件和/或组的存在或添加。在此使用时,术语“和/或”包括相关所列项目的任何及所有组合。本申请实施例中所提及的多个包括至少两个,至少两个例如可以是2个、3个、4个或者更大的数值。本申请实施例中的“A或B”,既包括单独的A,也包括单独的B,还包括A和B的结合。The purpose of the terms used here is only to describe specific embodiments and not as a limitation of the present application. When used herein, the singular forms "a", "an" and "the/the" are also intended to include plural forms, unless the context clearly indicates otherwise. It should also be understood that the terms "composition" and/or "including", when used in this specification, determine the existence of the described features, integers, steps, operations, elements and/or components, but do not exclude one or more other The existence or addition of features, integers, steps, operations, elements, components, and/or groups. As used herein, the term "and/or" includes any and all combinations of related listed items. The multiple mentioned in the embodiments of the present application include at least two, and at least two may be, for example, 2, 3, 4, or larger values. "A or B" in the embodiments of the present application includes both A alone, B alone, and a combination of A and B.
为了彻底理解本申请实施例,将在下列的描述中提出详细的步骤以及详细的结构,以便阐释本申请实施例提出的技术方案。In order to thoroughly understand the embodiments of the present application, detailed steps and detailed structures are proposed in the following description to explain the technical solutions proposed in the embodiments of the present 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 can be implemented by one or more processors. The processor can be a processor in a computing device or a mobile device (such as a mobile phone, a camera, a drone, etc.). Processor. 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所示,在接收待编码视频后,从待编码视频的第一帧开始,依次对待编码视频中的每一帧进行编码。其中,当前编码帧主要经过:预测(Prediction)、变换(Transform)、量化(Quantization)和熵编码(Entropy Coding)等处理,最终输出当前编码帧的码流。对应的,解码过程通常是按照上述过程的逆过程对接收到的码流进行解码,以恢复出解码前的视频帧信息。Fig. 2 is a schematic diagram of a video coding framework 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 for performing decision-making control actions in the encoding process and selection of parameters. 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 may also be in a quadtree, or binary tree, or triple tree manner. Iteratively divides into a series of smaller coding units (coding units, CU). In some examples, a CU may also include a prediction unit (PU) and a transform unit (TU) associated with it, where 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 data units formed are called 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. For the transformation of the residual data of the current coding block, two-dimensional discrete cosine transform (DCT) transformation and two-dimensional discrete sine transform (DST) transformation are usually adopted. 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, the 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 coding block, wherein the entropy coding method includes 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 prediction mode is selected, the inter 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 (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.
其中,视频编码标准中的帧间预测模式可以包括高级运动矢量预测(advanced motion vector prediction,AMVP)模式和合并(Merge)模式。Among them, the inter prediction mode in the video coding standard may include an advanced motion vector prediction (AMVP) mode and a merge (Merge) mode.
对于AMVP模式而言,可以先确定运动矢量的预测值(motion vector prediction,MVP),在得到MVP之后,可以根据MVP确定运动估计的起始点,在起始点附近,进行运动搜索,搜索完毕之后得到最优的MV,由MV确定参考块在参考图像中的位置,参考块减去当前块得到残差块,MV减去MVP得到运动矢量差值(motion vector difference,MVD),并将该MVD通过码流传输给解码端。For AMVP mode, the prediction value of the motion vector (motion vector prediction, MVP) can be determined first. After the MVP is obtained, the starting point of the motion estimation can be determined according to the MVP. The motion search is performed near the starting point, and the result is obtained after the search is completed. For the optimal MV, the position of the reference block in the reference image is determined by the MV, the reference block is subtracted from the current block to obtain the residual block, and the MVP is subtracted from the MV to obtain the motion vector difference (MVD), and the MVD is passed The code stream is transmitted to the decoding end.
对于Merge模式而言,可以先确定MVP,并直接将MVP确定为MV其中,为了得到MVP,可以先构建一个MVP候选列表(merge candidate list),在MVP候选列表中,可以包括至少一个候选MVP,每个候选MVP可以对应有一个索引,编码端在从MVP候选列表中选择MVP之后,可以将该MVP索引写入到码流中,则解码端可以按照该索引从MVP候选列表中找到该索引对应的MVP,以实现对图像块的解码。For the Merge mode, the MVP can be determined first, and the MVP can be directly determined as the MV. In order to obtain the MVP, an MVP candidate list (merge candidate list) can be constructed first. In the MVP candidate list, at least one candidate MVP can be included. Each candidate MVP can correspond to an index. After selecting the MVP from the MVP candidate list, the encoder can write the MVP index into the code stream, and the decoder can find the corresponding index from the MVP candidate list according to the index. MVP to achieve the decoding of image blocks.
为了更加清楚地理解Merge模式,以下将介绍采用Merge模式进行编 码的操作流程。In order to understand the Merge mode more clearly, the following will introduce the operation process of using the Merge mode to encode.
步骤一、获取MVP候选列表;Step 1: Obtain the MVP candidate list;
步骤二、从MVP候选列表中选出最优的一个MVP,同时得到该MVP在MVP候选列表中的索引;Step 2: Select an optimal MVP from the MVP candidate list, and at the same time obtain the index of the MVP in the MVP candidate list;
步骤三、把该MVP作为当前块的MV;Step 3: Use the MVP as the MV of the current block;
步骤四、根据MV确定参考块在参考图像中的位置;Step 4: Determine the position of the reference block in the reference image according to the MV;
步骤五、参考块减去当前块得到残差块;Step 5. Subtract the current block from the reference block to obtain the residual block;
步骤六、把残差数据和MVP的索引传给解码器。Step 6. Pass the residual data and the index of the MVP to the decoder.
应理解,以下流程只是Merge模式的一种具体实现方式。Merge模式还可以具有其他的实现方式。It should be understood that the following process is only a specific implementation of the Merge mode. Merge mode can also have other implementations.
在基于块运动补偿的视频编码框架中,运动搜索(motion estimation,ME)是最为重要的环节之一。由于自然界物体运动不一定是以整像素为基本单位的,而有可能以半像素(1/2像素)、1/4像素甚至1/8像素为单位。如果这种情况下仍使用整像素精度运动估计可能会导致搜索不准确的问题,导致运动补偿残差幅度较大,影响编码效率。因此这种情况下应该使用亚像素精度进行运动估计。亚像素精度运动估计意味着需要对参考图像进行插值,好的插值方式能够大幅度改善运动补偿的性能。In a video coding framework based on block motion compensation, motion estimation (ME) is one of the most important links. Since the movement of natural objects is not necessarily based on whole pixels, it may be based on half pixels (1/2 pixels), 1/4 pixels or even 1/8 pixels. If the whole-pixel precision motion estimation is still used in this case, it may cause the problem of inaccurate search, resulting in a large motion compensation residual amplitude and affecting coding efficiency. Therefore, in this case, sub-pixel accuracy should be used for motion estimation. Sub-pixel precision motion estimation means that the reference image needs to be interpolated, and a good interpolation method can greatly improve the performance of motion compensation.
如前所述,在目前的Merge模式中,在从MVP候选列表中确定MVP并基于MVP确定当前块的参考块后,如果所确定的MVP是空域候选MV,则对参考块进行像素插值时是直接继承该空域MV的插值滤波器。如果所确定的MVP是时域候选MV,则对参考块进行像素插值时是默认使用8抽头(8-tap)的插值滤波器。如果所确定的MVP是基于历史的候选MV(history motion vector prediction,HMVP),则对参考块进行像素插值时是直接继承该HMVP的插值滤波器。如果所确定的MVP是成对平均(pairwise)候选MV,则需要进行以下步骤:首先判断进行平均的两个候选MV是否使用了相同的插值滤波器,如果相同,则对参考块进行像素插值时是使用与这两个候选MV相同的插值滤波器;如果不同,则对参考块进行像素插值时是默认使用8抽头的插值滤波器。上述Merge模式在确定对参考块使用的插值滤波器时过程较为繁琐,引入了不必要的编解码负担。As mentioned earlier, in the current Merge mode, after determining the MVP from the MVP candidate list and determining the reference block of the current block based on the MVP, if the determined MVP is a spatial candidate MV, the pixel interpolation of the reference block is Directly inherit the interpolation filter of the spatial MV. If the determined MVP is a candidate MV in the time domain, an 8-tap interpolation filter is used by default when performing pixel interpolation on the reference block. If the determined MVP is a history-based candidate MV (history motion vector prediction, HMVP), then when pixel interpolation is performed on the reference block, the interpolation filter of the HMVP is directly inherited. If the determined MVP is a pairwise candidate MV, the following steps are required: first determine whether the two candidate MVs for averaging use the same interpolation filter, if they are the same, when performing pixel interpolation on the reference block It uses the same interpolation filter as the two candidate MVs; if they are different, the 8-tap interpolation filter is used by default when performing pixel interpolation on the reference block. The above-mentioned Merge mode is cumbersome when determining the interpolation filter used for the reference block, which introduces unnecessary coding and decoding burdens.
为此,本申请实施例提供的以下方案,可以降低编解码复杂度,节省 硬件开销。For this reason, the following solutions provided by the embodiments of the present application can reduce the coding and decoding complexity and save hardware overhead.
图3示出了根据本申请实施例的视频编解码方法300的示意性流程图。方法300可以用于编码端,也可以用于解码端。如图3所示,方法300包括以下步骤:FIG. 3 shows a schematic flowchart of a video encoding and decoding method 300 according to an embodiment of the present application. The method 300 can be used on the encoding side and can also be used on the decoding side. As shown in FIG. 3, the method 300 includes the following steps:
在步骤S310,获取运动矢量候选列表,并从所述运动矢量候选列表中选择运动矢量。In step S310, a motion vector candidate list is obtained, and a motion vector is selected from the motion vector candidate list.
在步骤S330,根据选择的运动矢量确定当前块的参考块。In step S330, the reference block of the current block is determined according to the selected motion vector.
在步骤S330,采用默认插值滤波器对所述参考块进行像素插值。In step S330, a default interpolation filter is used to perform pixel interpolation on the reference block.
在以上方法300中,可以获取MVP候选列表,并从中确定MVP以预测当前块的参考块的位置,在获得参考块的位置后,无需繁琐的选择、判断插值滤波器类型的过程,而是直接采用默认插值滤波器对参考块进行像素插值,可以实现在不降低编解码效率的前提下节省编解码流程、降低编解码复杂度,节省硬件开销。In the above method 300, the MVP candidate list can be obtained, and the MVP can be determined from it to predict the position of the reference block of the current block. After the position of the reference block is obtained, there is no need for cumbersome selection and judgment of the interpolation filter type process, but directly Using the default interpolation filter to perform pixel interpolation on the reference block can save the coding and decoding process, reduce the coding and decoding complexity, and save the hardware overhead without reducing the coding and decoding efficiency.
为了更加清楚地理解本申请,以下将对本申请实施例的具体实现方式进行说明。应理解,以下的描述可以适用以上的方法300。In order to understand the present application more clearly, the specific implementation manners of the embodiments of the present application will be described below. It should be understood that the following description can be applied to the above method 300.
本申请实施例中的运动矢量候选列表(即MVP候选列表)可以包括空域候选运动矢量、时域候选运动矢量、HMVP候选运动矢量、pairwise候选运动矢量以及零运动矢量,这些运动矢量中的部分或者全部用于构成本申请实施例中的运动矢量候选列表。下面简要描述上述候选运动矢量及运动矢量候选列表的建立。The motion vector candidate list (ie, the MVP candidate list) in the embodiments of the present application may include spatial candidate motion vectors, time domain candidate motion vectors, HMVP candidate motion vectors, pairwise candidate motion vectors, and zero motion vectors. Some of these motion vectors may be All are used to form the motion vector candidate list in the embodiment of this application. The following briefly describes the establishment of the above-mentioned candidate motion vector and the motion vector candidate list.
在本申请的实施例中,空域候选运动矢量可以如图4所示,图4中灰色块是当前编码单元(即当前块),A1表示当前编码单元左侧最下方的编码单元,B1表示当前编码单元上侧最右方的编码单元,B0和A0分别表示当前预测单元右上方和左下方距离最近的编码单元,B2表示当前编码单元左上方距离最近的编码单元。示例性地,空域最多提供4个候选MV,在选择空域运动矢量时,按照A1->B1->B0->A0->(B2)的顺序选择,其中B2为替补。In the embodiment of the present application, the spatial candidate motion vector may be as shown in Figure 4. In Figure 4, the gray block is the current coding unit (that is, the current block), A1 represents the lowest coding unit on the left side of the current coding unit, and B1 represents the current coding unit. The rightmost coding unit on the upper side of the coding unit, B0 and A0 respectively represent the coding unit with the closest distance to the upper right and lower left of the current prediction unit, and B2 represents the coding unit with the closest distance to the upper left of the current coding unit. Exemplarily, the airspace provides a maximum of 4 candidate MVs. When selecting the airspace motion vector, they are selected in the order of A1->B1->B0->A0->(B2), where B2 is a substitute.
在本申请的实施例中,时域候选运动矢量可以基于当前编码单元在邻近已编码图像中对应位置编码单元的运动信息而得到。与空域情形不同,时域候选运动矢量不能直接使用候选块的运动信息,而需要根据与参考图 像的位置关系做相应的比例伸缩调整。示例性地,一般提供一个时域候选运动矢量,如图5所示,灰色块是当前编码单元(即当前块),候选运动矢量由当前帧的前一帧(前向预测)或后一帧(后向预测)中的C0的位置得到,如果C0不可得,则采用C1位置对应的编码单元的运动矢量作为候选运动矢量。In the embodiment of the present application, the temporal candidate motion vector may be obtained based on the motion information of the coding unit at the corresponding position of the current coding unit in the adjacent coded image. Unlike the spatial situation, the temporal candidate motion vector cannot directly use the motion information of the candidate block, but needs to be scaled and adjusted according to the positional relationship with the reference image. Exemplarily, a time-domain candidate motion vector is generally provided. As shown in Figure 5, the gray block is the current coding unit (that is, the current block), and the candidate motion vector is derived from the previous frame (forward prediction) or the next frame of the current frame. The position of C0 in the (backward prediction) is obtained. If C0 is not available, the motion vector of the coding unit corresponding to the position C1 is used as the candidate motion vector.
在本申请的实施例中,HMVP候选运动矢量存储的为已编码的块的运动信息。在Merge模式中,若前面的空域、时域候选MV没有填充满运动矢量候选列表,则会使用HMVP候选运动矢量进行填充,填充时按照已编码块距离当前编码块的远近由近到远地将存储已编码块的运动信息的HMVP候选运动矢量填充到运动矢量候选列表中。In the embodiment of the present application, the HMVP candidate motion vector is stored as the motion information of the coded block. In the Merge mode, if the previous spatial and temporal candidate MVs are not filled with the motion vector candidate list, the HMVP candidate motion vector will be used for filling. The filling will be based on the distance between the coded block and the current coded block from near to far. The HMVP candidate motion vector that stores the motion information of the coded block is filled into the motion vector candidate list.
在本申请的实施例中,当空域候选运动矢量、时域候选运动矢量、HMVP候选运动矢量没有填满运动矢量候选列表时,可以使用pairwise模式进行运动矢量候选列表的填充。pairwise使用运动矢量候选列表中的已有的至少两个候选运动矢量(例如列表中的前两个候选运动矢量)进行平均,得到新的候选运动矢量,填充至运动矢量候选列表中。若所述两个候选运动矢量中的某一个在前向或后向参考方向上没有运动矢量,则只使用存在运动矢量的那一个进行候选运动矢量填充;若所述两个候选运动矢量在某参考方向均不存在运动矢量,则不进行pairwise候选运动矢量的填充。In the embodiment of the present application, when the spatial candidate motion vector, the temporal candidate motion vector, and the HMVP candidate motion vector do not fill the motion vector candidate list, the pairwise mode can be used to fill the motion vector candidate list. Pairwise uses at least two existing candidate motion vectors in the motion vector candidate list (for example, the first two candidate motion vectors in the list) to average to obtain a new candidate motion vector, which is filled into the motion vector candidate list. If one of the two candidate motion vectors has no motion vector in the forward or backward reference direction, only the one with the motion vector is used for candidate motion vector filling; if the two candidate motion vectors are in a certain If there is no motion vector in the reference direction, the pairwise candidate motion vector filling is not performed.
在本申请的实施例中,如果空域候选运动矢量、时域候选运动矢量、HMVP候选运动矢量、pairwise候选运动矢量仍然填满运动矢量候选列表,则对运动矢量候选列表填充零运动矢量,直到填满运动矢量候选列表。In the embodiment of this application, if the candidate motion vector in the spatial domain, the candidate motion vector in the time domain, the HMVP candidate motion vector, and the pairwise candidate motion vector still fill the motion vector candidate list, the motion vector candidate list is filled with zero motion vectors until it is filled. Full list of motion vector candidates.
基于上述构建好的运动矢量候选列表,方法300在步骤S310可以获取该运动矢量候选列表,并从该运动矢量候选列表中选择用于确定当前块的参考块的运动矢量。示例性地,可以从该运动矢量候选列表中选择最优运动矢量以用于确定当前块的参考块。示例性地,可以通过如下方式来选择最优运动矢量:遍历运动矢量候选列表中的所有候选运动矢量,并进行率失真代价的计算,最终选择率失真代价最小的一个候选运动矢量作为最优运动矢量。编解码端可以依照同样的方式建立该运动矢量候选列表,编码器只需要传输最优运动矢量在运动矢量候选列表中的索引即可,这样大幅节省了运动信息的编码比特数。Based on the above-built motion vector candidate list, the method 300 may obtain the motion vector candidate list in step S310, and select the motion vector used to determine the reference block of the current block from the motion vector candidate list. Exemplarily, the optimal motion vector can be selected from the motion vector candidate list for determining the reference block of the current block. Exemplarily, the optimal motion vector can be selected by the following method: traverse all candidate motion vectors in the motion vector candidate list, and calculate the rate-distortion cost, and finally select the candidate motion vector with the smallest rate-distortion cost as the optimal motion Vector. The codec can establish the motion vector candidate list in the same way, and the encoder only needs to transmit the index of the optimal motion vector in the motion vector candidate list, which greatly saves the number of coding bits of motion information.
基于在步骤S310选择的运动矢量,可以根据该运动矢量确定参考块在参考图像(每个候选运动矢量均对应于一个参考图像)中的位置,即得到当前块的参考块(或预测块)。基于在步骤S320得到的参考块,可以在步骤S330中对参考图像中的该参考块进行像素插值。在本申请的实施例中,当前块可以采用单向预测模式,也可以采用双运动矢量模式。双运动矢量模式包括双前向预测模式、双后向预测模式和双向预测模式。双前向预测模式包括两个前向运动矢量,双后向预测模式包括两个后向运动矢量。其中,双向预测模式包括前向预测模式和后向预测模式。在当前块采用单向预测模式时,步骤S310中获取的运动矢量候选列表的数目为一个。示例性地,该运动矢量候选列表可以是基于前向参考帧确定的,也可以是基于后向参考帧确定的。在当前块采用双运动矢量模式时,步骤S310中获取的运动矢量候选列表的数目为两个。示例性地,对于双运动矢量模式中的双向预测模式来说,所述两个运动矢量候选列表可以分别基于前向参考帧和后向参考帧来确定。对于双运动矢量模式中的双前向预测模式来说,所述两个运动矢量候选列表分别基于前向参考帧来确定。对于双运动矢量模式中的后向预测模式来说,所述两个运动矢量候选列表分别基于后向参考帧来确定。在当前块采用双运动矢量模式时,由于获取两个运动矢量候选列表,因此在步骤S310从这两个运动矢量候选列表各自选择运动矢量,并在步骤S320根据各自选择的运动矢量各自确定参考块,在步骤S330根据各自确定的参考块各自进行像素插值。Based on the motion vector selected in step S310, the position of the reference block in the reference image (each candidate motion vector corresponds to a reference image) can be determined according to the motion vector, that is, the reference block (or prediction block) of the current block is obtained. Based on the reference block obtained in step S320, pixel interpolation may be performed on the reference block in the reference image in step S330. In the embodiment of the present application, the current block may adopt a unidirectional prediction mode or a dual motion vector mode. 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. When the current block adopts the unidirectional prediction mode, the number of motion vector candidate lists obtained in step S310 is one. Exemplarily, the motion vector candidate list may be determined based on the forward reference frame, or may be determined based on the backward reference frame. When the current block adopts the dual motion vector mode, the number of motion vector candidate lists obtained in step S310 is two. Exemplarily, for the bidirectional prediction mode in the dual motion vector mode, the two motion vector candidate lists may be determined based on the forward reference frame and the backward reference frame, respectively. For the dual forward prediction mode in the dual motion vector mode, the two motion vector candidate lists are respectively determined based on the forward reference frame. For the backward prediction mode in the dual motion vector mode, the two motion vector candidate lists are respectively determined based on the backward reference frame. When the current block adopts the dual motion vector mode, since two motion vector candidate lists are obtained, a motion vector is selected from the two motion vector candidate lists in step S310, and a reference block is determined according to the respective selected motion vectors in step S320. In step S330, pixel interpolation is performed respectively according to the respective determined reference blocks.
在本申请的实施例中,采用默认插值滤波器对步骤S320中所得到的参考块进行像素插值。其中,该默认插值滤波器可以是默认抽头数量的插值滤波器或其他任何适合对参考块进行像素插值的插值滤波器。插值精度可以例如为1/2像素精度、1/4像素精度等亚像素精度,或者1像素精度、2像素精度、4像素精度等整像素精度。In the embodiment of the present application, a default interpolation filter is used to perform pixel interpolation on the reference block obtained in step S320. Wherein, the default interpolation filter may be an interpolation filter with a default number of taps or any other interpolation filter suitable for pixel interpolation of the reference block. The interpolation accuracy may be, for example, sub-pixel accuracy such as 1/2 pixel accuracy and 1/4 pixel accuracy, or whole pixel accuracy such as 1-pixel accuracy, 2-pixel accuracy, or 4-pixel accuracy.
在本申请的实施例中,在步骤S320选择的运动矢量可以是pairwise运动矢量。pairwise运动矢量是根据步骤S310中获取的运动矢量候选列表中的至少两个候选运动矢量确定的(例如pairwise运动矢量等于所述至少两个候选运动矢量的平均值,诸如加权平均值),所述至少两个候选运动矢量各自对应的插值滤波器可以相同或不同。此处,与候选运动矢量对应的 插值滤波器是指:在对当前块的相邻块的参考块进行像素插值时使用的插值滤波器,其中,相邻块即为运动矢量候选列表中记录的运动矢量所对应的块,换言之,运动矢量候选列表中记录的运动矢量为当前块的相邻块的运动矢量。因此,候选运动矢量对应的插值滤波器即为对当前块的相邻块的参考块进行像素插值时使用的插值滤波器。相邻块可以包括时域相邻块或空域相邻块。时域相邻块是指即当前块所在的当前帧的前一帧图像或后一帧图像中的块,空域相邻块是指当前帧中其他已编码的块。In the embodiment of the present application, the motion vector selected in step S320 may be a pairwise motion vector. The pairwise motion vector is determined according to at least two candidate motion vectors in the motion vector candidate list obtained in step S310 (for example, the pairwise motion vector is equal to the average value of the at least two candidate motion vectors, such as a weighted average value). The interpolation filters corresponding to each of the at least two candidate motion vectors may be the same or different. Here, the interpolation filter corresponding to the candidate motion vector refers to the interpolation filter used when performing pixel interpolation on the reference block of the neighboring block of the current block, where the neighboring block is the one recorded in the motion vector candidate list. The block corresponding to the motion vector, in other words, the motion vector recorded in the motion vector candidate list is the motion vector of the neighboring block of the current block. Therefore, the interpolation filter corresponding to the candidate motion vector is the interpolation filter used when performing pixel interpolation on the reference block of the neighboring block of the current block. The neighboring blocks may include temporal neighboring blocks or spatial neighboring blocks. The temporal neighboring block refers to the block in the previous frame or the next frame of the current frame where the current block is located, and the spatial neighboring block refers to other coded blocks in the current frame.
在现有的方法中,当选择的运动矢量是pairwise运动矢量时,需要比较用于确定pairwise运动矢量的两个候选运动矢量各自对应的插值滤波器;如果所述两个候选运动矢量各自对应的插值滤波器相同,则采用与所述两个候选运动矢量对应的插值滤波器对当前块的参考块进行像素插值;如果所述两个候选运动矢量各自对应的插值滤波器不同,则默认采用8抽头插值滤波器对当前块的参考块进行像素插值。这样的方法需要额外引入比较、判断过程,一定程度上增加了硬件的负担,使得流水更加紧张,引入延迟。在本申请的方法300中,在步骤S320选择的运动矢量是pairwise运动矢量时,不进行上述比较和判断操作,无论用于确定pairwise运动矢量的两个候选运动矢量各自对应的插值滤波器相同与否,均直接采用默认插值滤波器对当前块的参考块进行像素插值。因此,可以简化逻辑,节省硬件开销。其中,该默认插值滤波器可以为8抽头插值滤波器或6抽头插值滤波器或者其他抽头的插值滤波器,本申请实施例对此不作限定。其中,6抽头插值滤波器有更平坦的特性,且所需要的带宽更小,插值复杂度也更小。In the existing method, when the selected motion vector is a pairwise motion vector, it is necessary to compare the interpolation filters used to determine the two candidate motion vectors of the pairwise motion vector; if the two candidate motion vectors correspond to each other If the interpolation filters are the same, the interpolation filters corresponding to the two candidate motion vectors are used to perform pixel interpolation on the reference block of the current block; if the interpolation filters corresponding to the two candidate motion vectors are different, 8 is used by default. The tap interpolation filter performs pixel interpolation on the reference block of the current block. Such a method needs to introduce additional comparison and judgment processes, which increases the burden of the hardware to a certain extent, makes the pipeline more strained, and introduces delay. In the method 300 of the present application, when the motion vector selected in step S320 is a pairwise motion vector, the above comparison and judgment operations are not performed, regardless of whether the interpolation filters corresponding to the two candidate motion vectors used to determine the pairwise motion vector are the same as No, the default interpolation filter is directly used to perform pixel interpolation on the reference block of the current block. Therefore, logic can be simplified and hardware overhead can be saved. Wherein, the default interpolation filter may be an 8-tap interpolation filter, a 6-tap interpolation filter, or other-tap interpolation filters, which is not limited in the embodiment of the present application. Among them, the 6-tap interpolation filter has flatter characteristics, and the required bandwidth is smaller, and the interpolation complexity is also smaller.
在本申请的实施例中,在步骤S320选择的运动矢量可以是空域候选运动矢量。在现有的方法中,当选择的运动矢量是空域候选运动矢量时,对当前块的参考块进行像素插值时是继承该空域候选运动矢量的插值滤波器。在本申请的方法300中,在步骤S320选择的运动矢量是空域候选运动矢量时,不进行继承操作,而是直接采用默认插值滤波器(例如8抽头插值滤波器或6抽头插值滤波器)对当前块的参考块进行像素插值。相较于现有技术,本申请实施例无需执行从存储区buffer中获取空域候选运动矢量对应的插值滤波器的类型,因此,节省了处理流程,降低了编解码的复 杂度。In the embodiment of the present application, the motion vector selected in step S320 may be a spatial candidate motion vector. In the existing method, when the selected motion vector is a spatial candidate motion vector, when pixel interpolation is performed on the reference block of the current block, it is an interpolation filter that inherits the spatial candidate motion vector. In the method 300 of the present application, when the motion vector selected in step S320 is a spatial candidate motion vector, the inheritance operation is not performed, but the default interpolation filter (for example, 8-tap interpolation filter or 6-tap interpolation filter) is directly used to pair The reference block of the current block performs pixel interpolation. Compared with the prior art, the embodiment of the present application does not need to obtain the type of interpolation filter corresponding to the spatial candidate motion vector from the storage area buffer, therefore, the processing procedure is saved and the coding and decoding complexity is reduced.
在本申请的实施例中,在步骤S320选择的运动矢量可以是时域候选运动矢量。在现有的方法中,当选择的运动矢量是时域候选运动矢量时,对当前块的参考块进行像素插值时是默认使用8抽头的插值滤波器。在本申请的方法300中,在步骤S320选择的运动矢量是空域候选运动矢量时,除了8抽头插值滤波器,也可以采用6抽头插值滤波器对当前块的参考块进行像素插值。如前所述,6抽头插值滤波器有更平坦的特性,且所需要的带宽更小,插值复杂度也更小。In the embodiment of the present application, the motion vector selected in step S320 may be a candidate motion vector in the time domain. In the existing method, when the selected motion vector is a temporal candidate motion vector, an 8-tap interpolation filter is used by default when pixel interpolation is performed on the reference block of the current block. In the method 300 of the present application, when the motion vector selected in step S320 is a spatial candidate motion vector, in addition to an 8-tap interpolation filter, a 6-tap interpolation filter may also be used to perform pixel interpolation on the reference block of the current block. As mentioned earlier, the 6-tap interpolation filter has flatter characteristics, and requires a smaller bandwidth, and the interpolation complexity is also smaller.
在本申请的实施例中,在步骤S320选择的运动矢量可以是基于历史的候选运动矢量。在现有的方法中,当选择的运动矢量是基于历史的候选运动矢量时,对参考块进行像素插值时是直接继承与该基于历史的候选运动矢量相对应的插值滤波器。在本申请的方法300中,在步骤S320选择的运动矢量是基于历史的候选运动矢量时,不进行继承操作,而是直接采用默认插值滤波器(例如8抽头插值滤波器或6抽头插值滤波器)对当前块的参考块进行像素插值。相较于现有技术,本申请实施例无需执行从buffer中获取基于历史的候选运动矢量对应的插值滤波器的类型,因此,节省了处理流程,降低了编解码的复杂度。In the embodiment of the present application, the motion vector selected in step S320 may be a candidate motion vector based on history. In the existing method, when the selected motion vector is a candidate motion vector based on history, when pixel interpolation is performed on the reference block, the interpolation filter corresponding to the candidate motion vector based on the history is directly inherited. In the method 300 of the present application, when the motion vector selected in step S320 is a candidate motion vector based on history, the inheritance operation is not performed, and the default interpolation filter (such as 8-tap interpolation filter or 6-tap interpolation filter) is directly used. ) Perform pixel interpolation on the reference block of the current block. Compared with the prior art, the embodiment of the present application does not need to obtain the type of the interpolation filter corresponding to the candidate motion vector based on the history from the buffer. Therefore, the processing procedure is saved and the coding and decoding complexity is reduced.
在上述的实施例中,不论在步骤S320中选择的运动矢量是何种类型的运动矢量,均可以采用默认插值滤波器对当前块的参考块进行像素插值,这样可以简化逻辑,降低编解码复杂度,节省硬件开销。In the foregoing embodiment, no matter what type of motion vector is selected in step S320, the default interpolation filter can be used to perform pixel interpolation on the reference block of the current block, which can simplify the logic and reduce the complexity of coding and decoding. Degree, saving hardware overhead.
在本申请的又一个实施例中,在步骤S320中选择的运动矢量可以仅包括pairwise候选运动矢量。在该实施例中,仅在步骤S320中选择的运动矢量是pairwise候选运动矢量时,对采用默认插值滤波器对当前块的参考块进行像素插值,这样也省略了原有的比较和判断逻辑,亦可以降低编解码复杂度,节省硬件开销。In another embodiment of the present application, the motion vector selected in step S320 may only include pairwise candidate motion vectors. In this embodiment, only when the motion vector selected in step S320 is a pairwise candidate motion vector, pixel interpolation is performed on the reference block of the current block using the default interpolation filter, which also omits the original comparison and judgment logic. It can also reduce the coding and decoding complexity and save hardware overhead.
基于上面的描述,根据本申请实施例的视频编解码方法在从运动矢量预测值候选列表中确定运动矢量预测值并基于运动矢量预测值确定当前块的参考块后,无需繁琐的选择、判断逻辑,而是直接采用默认插值滤波器对参考块进行像素插值,可以实现在不降低编解码效率的前提下降低编解码复杂度,节省硬件开销。Based on the above description, the video encoding and decoding method according to the embodiments of the present application does not require complicated selection and judgment logic after determining the motion vector predictor from the motion vector predictor candidate list and determining the reference block of the current block based on the motion vector predictor. , But directly use the default interpolation filter to perform pixel interpolation on the reference block, which can reduce the coding and decoding complexity and save the hardware overhead without reducing the coding and decoding efficiency.
下面结合图6描述根据本申请另一方面提供的视频编解码装置。图6示出了根据本申请实施例的视频编解码装置600的示意性框图。视频编解码装置600包括存储器610以及处理器620。视频编解码装置600可以实现为编码器、解码器、手机、相机、无人机等可实现编解码流程的装置、产品或设备。The following describes a video encoding and decoding device provided according to another aspect of the present application in conjunction with FIG. 6. FIG. 6 shows a schematic block diagram of a video encoding and decoding device 600 according to an embodiment of the present application. The video encoding and decoding device 600 includes a memory 610 and a processor 620. The video encoding and decoding device 600 can be implemented as an encoder, a decoder, a mobile phone, a camera, a drone, and other devices, products, or equipment that can implement the encoding and decoding process.
其中,存储器610存储用于实现根据本申请实施例的视频编解码方法中的相应步骤的程序。处理器620用于运行存储器610中存储的程序,以执行根据本申请实施例的视频编解码方法的相应步骤。Wherein, the memory 610 stores a program for implementing corresponding steps in the video encoding and decoding method according to the embodiment of the present application. The processor 620 is configured to run a program stored in the memory 610 to execute corresponding steps of the video encoding and decoding method according to the embodiment of the present application.
在本申请的一个实施例中,在所述程序被处理器620运行时使得视频编解码装置600执行以下步骤:获取运动矢量候选列表,并从所述运动矢量候选列表中选择运动矢量;根据选择的运动矢量确定当前块的参考块;采用默认插值滤波器对所述参考块进行像素插值。In an embodiment of the present application, when the program is run by the processor 620, the video codec device 600 is caused to perform the following steps: obtain a motion vector candidate list, and select a motion vector from the motion vector candidate list; The motion vector of determines the reference block of the current block; the default interpolation filter is used to perform pixel interpolation on the reference block.
在本申请的一个实施例中,所述选择的运动矢量是成对平均运动矢量,所述成对平均运动矢量是根据所述运动矢量候选列表中的至少两个候选运动矢量确定的,所述至少两个候选运动矢量各自对应的插值滤波器相同或不同。In an embodiment of the present application, the selected motion vector is a paired average motion vector, and the paired average motion vector is determined according to at least two candidate motion vectors in the motion vector candidate list. The interpolation filters corresponding to at least two candidate motion vectors are the same or different.
在本申请的一个实施例中,所述默认插值滤波器为默认抽头数量的插值滤波器。In an embodiment of the present application, the default interpolation filter is an interpolation filter with a default number of taps.
在本申请的一个实施例中,所述默认抽头数量的插值滤波器包括8抽头插值滤波器或6抽头插值滤波器。In an embodiment of the present application, the interpolation filter with the default number of taps includes an 8-tap interpolation filter or a 6-tap interpolation filter.
在本申请的一个实施例中,在所述程序被处理器620运行时使得视频编解码装置600执行的所述采用默认插值滤波器对所述参考块进行像素插值,包括:采用1/2像素精度的所述默认插值滤波器对所述参考块进行像素插值。In an embodiment of the present application, when the program is executed by the processor 620, the video codec apparatus 600 is executed to perform pixel interpolation on the reference block using the default interpolation filter, including: adopting 1/2 pixel The default interpolation filter of precision performs pixel interpolation on the reference block.
在本申请的一个实施例中,所述选择的运动矢量是成对平均运动矢量,所述成对平均运动矢量是根据所述运动矢量候选列表中的一个候选运动矢量确定的。In an embodiment of the present application, the selected motion vector is a paired average motion vector, and the paired average motion vector is determined according to a candidate motion vector in the motion vector candidate list.
在本申请的一个实施例中,所述选择的运动矢量是时域候选运动矢量。In an embodiment of the present application, the selected motion vector is a candidate motion vector in the time domain.
在本申请的一个实施例中,所述选择的运动矢量是空域候选运动矢量。In an embodiment of the present application, the selected motion vector is a spatial candidate motion vector.
在本申请的一个实施例中,所述选择的运动矢量是基于历史的候选运 动矢量。In an embodiment of the present application, the selected motion vector is a candidate motion vector based on history.
在本申请的一个实施例中,所述当前块采用单向预测模式,所述运动矢量候选列表的数目为一个。In an embodiment of the present application, the current block adopts a unidirectional prediction mode, and the number of the motion vector candidate list is one.
在本申请的一个实施例中,所述运动矢量候选列表是基于前向参考帧或后向参考帧确定的。In an embodiment of the present application, the motion vector candidate list is determined based on a forward reference frame or a backward reference frame.
在本申请的一个实施例中,所述当前块采用双向预测模式,所述运动矢量候选列表的数目为两个。In an embodiment of the present application, the current block adopts a bidirectional prediction mode, and the number of the motion vector candidate list is two.
在本申请的一个实施例中,所述两个运动矢量候选列表分别是基于前向参考帧和后向参考帧确定的。In an embodiment of the present application, the two motion vector candidate lists are determined based on the forward reference frame and the backward reference frame, respectively.
在本申请的一个实施例中,所述成对平均运动矢量是所述至少两个候选运动矢量的平均值。In an embodiment of the present application, the paired average motion vector is an average value of the at least two candidate motion vectors.
在本申请的一个实施例中,所述成对平均运动矢量是所述至少两个候选运动矢量的加权平均值。In an embodiment of the present application, the paired average motion vector is a weighted average of the at least two candidate motion vectors.
此外,根据本申请实施例,还提供了一种计算机可读存储介质,在所述计算机可读存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本申请实施例的视频编解码方法的相应步骤。所述计算机可读存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述计算机可读存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合。In addition, according to an embodiment of the present application, a computer-readable storage medium is also provided, and program instructions are stored on the computer-readable storage medium, and the program instructions are used to execute the present application when the program instructions are run by a computer or a processor. Corresponding steps of the video encoding and decoding method of the embodiment. The computer-readable storage medium may include, for example, a memory card of a smart phone, a storage component of a tablet computer, a hard disk of a personal computer, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a portable compact disk Read-only memory (CD-ROM), USB memory, or any combination of the above-mentioned computer-readable storage media. The computer-readable storage medium may be any combination of one or more computer-readable storage media.
在一个实施例中,所述计算机程序指令在被计算机运行时可以执行根据本申请实施例的视频编解码方法。In an embodiment, the computer program instructions can execute the video encoding and decoding method according to the embodiments of the present application when they are executed by a computer.
本申请实施例还提供一种视频编解码的装置,包括处理器和存储器,该存储器用于存储程序指令,该处理器用于调用所述程序指令,执行上述本申请各种实施例的视频编解码方法。An embodiment of the present application also provides a video encoding and decoding device, including a processor and a memory, where the memory is used to store program instructions, and the processor is used to call the program instructions to execute the video encoding and decoding in the various embodiments of the application described above. method.
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得,该计算机执行上述方法实施例的方法。The embodiment of the present application also provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a computer, the computer executes the method of the foregoing method embodiment.
本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。The embodiment of the present application also provides a computer program product containing instructions, which when executed by a computer causes the computer to execute the method of the foregoing method embodiment.
还应理解,本说明书中描述的各种实施方式,既可以单独实施,也可以组合实施,本申请实施例对此并不限定。It should also be understood that the various implementation manners described in this specification can be implemented individually or in combination, which is not limited in the embodiments of the present application.
以上示例性地描述了根据本申请实施例的视频编解码方法、装置以及计算机可读存储介质。基于上面的描述,根据本申请实施例的视频编解码方法、装置和计算机可读存储介质在从运动矢量预测值候选列表中确定运动矢量预测值并基于运动矢量预测值确定当前块的参考块后,无需繁琐的选择、判断插值滤波器的类型,而是直接采用默认插值滤波器对参考块进行像素插值,可以实现在不降低编解码效率的前提下降低编解码复杂度,节省硬件开销。The above exemplarily describes the video encoding and decoding method, device, and computer-readable storage medium according to the embodiments of the present application. Based on the above description, the video encoding and decoding method, device, and computer-readable storage medium according to the embodiments of the present application determine the motion vector predictor from the motion vector predictor candidate list and determine the reference block of the current block based on the motion vector predictor. , There is no need to make cumbersome selection and judgment of the type of interpolation filter, but directly use the default interpolation filter to perform pixel interpolation on the reference block, which can reduce the complexity of coding and decoding without reducing the coding and decoding efficiency, and save hardware overhead.
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本申请实施例的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本申请实施例的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本申请实施例的范围之内。Although the exemplary embodiments have been described herein with reference to the accompanying drawings, it should be understood that the above-described exemplary embodiments are only exemplary, and are not intended to limit the scope of the embodiments of the present application thereto. A person of ordinary skill in the art can make various changes and modifications therein without departing from the scope and spirit of the embodiments of the present application. All these changes and modifications are intended to be included in the scope of the embodiments of the present application as claimed in the appended claims.
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。A person of ordinary skill in the art may realize that the units and algorithm steps of the examples described in combination with the embodiments disclosed herein can be implemented by electronic hardware or a combination of computer software and electronic hardware. 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 the embodiments of the present application.
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。In the several embodiments provided in this application, it should be understood that the disclosed device and method may be implemented in other ways. For example, the device embodiments described above are only 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 device, or some features can be ignored or not implemented.
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。In the instructions provided here, a lot of specific details are explained. However, it can be understood that the embodiments of the present application can be practiced without these specific details. In some instances, well-known methods, structures, and technologies are not shown in detail, so as not to obscure the understanding of this specification.
类似地,应当理解,为了精简本申请实施例并帮助理解各个发明方面中的一个或多个,在对本申请实施例的示例性实施例的描述中,本申请的 各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本申请实施例的方法解释成反映如下意图:即所要求保护的本申请实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请实施例的单独实施例。Similarly, it should be understood that, in order to simplify the embodiments of the present application and help understand one or more of the various aspects of the invention, in the description of the exemplary embodiments of the embodiments of the present application, the various features of the present application are sometimes grouped together into a single Examples, figures, or descriptions thereof. However, the method of the embodiments of the present application should not be interpreted as reflecting the intention that the claimed embodiments of the present application require more features than those explicitly recorded in each claim. To be more precise, as reflected in the corresponding claims, the point of the invention is that the corresponding technical problems can be solved with features that are less than all the features of a single disclosed embodiment. Therefore, the claims following the specific embodiment are thus clearly incorporated into the specific embodiment, wherein each claim itself serves as a separate embodiment of the embodiments of the present application.
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。Those skilled in the art can understand that in addition to mutual exclusion between the features, any combination of all features disclosed in this specification (including the accompanying claims, abstract, and drawings) and any method or device disclosed in this manner can be used. Processes or units are combined. Unless expressly stated otherwise, each feature disclosed in this specification (including the accompanying claims, abstract and drawings) may be replaced by an alternative feature providing the same, equivalent or similar purpose.
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请实施例的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。In addition, those skilled in the art can understand that although some embodiments described herein include certain features included in other embodiments but not other features, the combination of features of different embodiments means that they are in the embodiments of the present application. Within the scope of and form different embodiments. For example, in the claims, any one of the claimed embodiments can be used in any combination.
本申请实施例的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的一些模块的一些或者全部功能。本申请实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请实施例的程序可以存储在计算机可读存储介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。The various component embodiments of the embodiments of the present application may be implemented by hardware, or by software modules running on one or more processors, or by a combination of them. Those skilled in the art should understand that a microprocessor or a digital signal processor (DSP) may be used in practice to implement some or all of the functions of some modules according to the embodiments of the present application. The embodiments of the present application may also be implemented as a device program (for example, a computer program and a computer program product) for executing part or all of the methods described herein. Such a program for implementing the embodiments of the present application may be stored on a computer-readable storage medium, or may have the form of one or more signals. Such a signal can be downloaded from an Internet website, or provided on a carrier signal, or provided in any other form.
应该注意的是上述实施例对本申请实施例进行说明而不是对本申请实施例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。本申请实施例可以借助于包括有若干不 同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。It should be noted that the above-mentioned embodiments illustrate rather than limit the embodiments of the present application, and those skilled in the art can design alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses should not be constructed as a limitation to the claims. The embodiments of the present application can be realized by means of hardware including several different elements and by means of a suitably programmed computer. In the unit claims that list several devices, several of these devices may be embodied in the same hardware item. The use of the words first, second, and third, etc. do not indicate any order. These words can be interpreted as names.
以上所述,仅为本申请实施例的具体实施方式或对具体实施方式的说明,本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。本申请实施例的保护范围应以权利要求的保护范围为准。The above are only specific implementations or descriptions of specific implementations of the embodiments of the present application, and the protection scope of the embodiments of the present application is not limited thereto. Anyone skilled in the art disclosed in the embodiments of the present application Within the technical scope, changes or replacements can be easily conceived, and all should be covered within the protection scope of the embodiments of the present application. The protection scope of the embodiments of this application shall be subject to the protection scope of the claims.

Claims (51)

  1. 一种视频编解码方法,其特征在于,所述方法包括:A video encoding and decoding method, characterized in that the method includes:
    获取运动矢量候选列表,并从所述运动矢量候选列表中选择运动矢量;Acquiring a motion vector candidate list, and selecting a motion vector from the motion vector candidate list;
    根据选择的运动矢量确定当前块的参考块;Determine the reference block of the current block according to the selected motion vector;
    采用默认插值滤波器对所述参考块进行像素插值。The default interpolation filter is used to perform pixel interpolation on the reference block.
  2. 根据权利要求1所述的方法,其特征在于,所述选择的运动矢量是成对平均运动矢量,所述成对平均运动矢量是根据所述运动矢量候选列表中的至少两个候选运动矢量确定的,所述至少两个候选运动矢量各自对应的插值滤波器相同或不同。The method according to claim 1, wherein the selected motion vector is a paired average motion vector, and the paired average motion vector is determined according to at least two candidate motion vectors in the motion vector candidate list Yes, the interpolation filters corresponding to the at least two candidate motion vectors are the same or different.
  3. 根据权利要求1或2所述的方法,其特征在于,所述默认插值滤波器为默认抽头数量的插值滤波器。The method according to claim 1 or 2, wherein the default interpolation filter is an interpolation filter with a default number of taps.
  4. 根据权利要求3所述的方法,其特征在于,所述默认抽头数量的插值滤波器包括8抽头插值滤波器或6抽头插值滤波器。The method according to claim 3, wherein the interpolation filter with the default number of taps comprises an 8-tap interpolation filter or a 6-tap interpolation filter.
  5. 根据权利要求1-4中的任一项所述的方法,其特征在于,所述采用默认插值滤波器对所述参考块进行像素插值,包括:The method according to any one of claims 1-4, wherein the using a default interpolation filter to perform pixel interpolation on the reference block comprises:
    采用1/2像素精度的所述默认插值滤波器对所述参考块进行像素插值。Pixel interpolation is performed on the reference block using the default interpolation filter with 1/2 pixel accuracy.
  6. 根据权利要求1所述的方法,其特征在于,所述选择的运动矢量是成对平均运动矢量,所述成对平均运动矢量是根据所述运动矢量候选列表中的一个候选运动矢量确定的。The method according to claim 1, wherein the selected motion vector is a paired average motion vector, and the paired average motion vector is determined according to a candidate motion vector in the motion vector candidate list.
  7. 根据权利要求1所述的方法,其特征在于,所述选择的运动矢量是时域候选运动矢量。The method according to claim 1, wherein the selected motion vector is a candidate motion vector in the time domain.
  8. 根据权利要求1所述的方法,其特征在于,所述选择的运动矢量是空域候选运动矢量。The method according to claim 1, wherein the selected motion vector is a spatial candidate motion vector.
  9. 根据权利要求1所述的方法,其特征在于,所述选择的运动矢量是基于历史的候选运动矢量。The method according to claim 1, wherein the selected motion vector is a candidate motion vector based on history.
  10. 根据权利要求1-9中的任一项所述的方法,其特征在于,所述当前块采用单向预测模式,所述运动矢量候选列表的数目为一个。The method according to any one of claims 1-9, wherein the current block adopts a unidirectional prediction mode, and the number of the motion vector candidate list is one.
  11. 根据权利要求10所述的方法,其特征在于,所述运动矢量候选列 表是基于前向参考帧或后向参考帧确定的。The method according to claim 10, wherein the motion vector candidate list is determined based on a forward reference frame or a backward reference frame.
  12. 根据权利要求1-9中的任一项所述的方法,其特征在于,所述当前块采用双运动矢量模式,所述运动矢量候选列表的数目为两个。The method according to any one of claims 1-9, wherein the current block adopts a dual motion vector mode, and the number of the motion vector candidate list is two.
  13. 根据权利要求12所述的方法,其特征在于,所述双运动矢量模式包括双向预测模式,所述两个运动矢量候选列表分别是基于前向参考帧和后向参考帧确定的。The method according to claim 12, wherein the dual motion vector mode includes a bidirectional prediction mode, and the two motion vector candidate lists are determined based on a forward reference frame and a backward reference frame, respectively.
  14. 根据权利要求2所述的方法,其特征在于,所述成对平均运动矢量是所述至少两个候选运动矢量的平均值。The method according to claim 2, wherein the paired average motion vector is an average value of the at least two candidate motion vectors.
  15. 根据权利要求2所述的方法,其特征在于,所述成对平均运动矢量是所述至少两个候选运动矢量的加权平均值。The method according to claim 2, wherein the paired average motion vector is a weighted average of the at least two candidate motion vectors.
  16. 一种视频编解码方法,其特征在于,所述方法包括:A video encoding and decoding method, characterized in that the method includes:
    获取运动矢量候选列表,并从所述运动矢量候选列表中选择运动矢量;Acquiring a motion vector candidate list, and selecting a motion vector from the motion vector candidate list;
    根据选择的运动矢量确定当前块的参考块;Determine the reference block of the current block according to the selected motion vector;
    如果所述选择的运动矢量为成对平均运动矢量,则采用默认插值滤波器对所述参考块进行像素插值,所述成对平均运动矢量是根据所述运动矢量候选列表中的至少两个候选运动矢量确定的,所述至少两个候选运动矢量各自对应的插值滤波器相同或不同。If the selected motion vector is a paired average motion vector, a default interpolation filter is used to perform pixel interpolation on the reference block, and the paired average motion vector is based on at least two candidates in the motion vector candidate list. If the motion vector is determined, the interpolation filters corresponding to the at least two candidate motion vectors are the same or different.
  17. 根据权利要求16所述的方法,其特征在于,所述默认插值滤波器为默认抽头数量的插值滤波器。The method according to claim 16, wherein the default interpolation filter is an interpolation filter with a default number of taps.
  18. 根据权利要求17所述的方法,其特征在于,所述默认抽头数量的插值滤波器包括8抽头插值滤波器或6抽头插值滤波器。The method according to claim 17, wherein the interpolation filter with the default number of taps comprises an 8-tap interpolation filter or a 6-tap interpolation filter.
  19. 根据权利要求16-18中的任一项所述的方法,其特征在于,所述采用默认插值滤波器对所述参考块进行像素插值,包括:The method according to any one of claims 16-18, wherein the using a default interpolation filter to perform pixel interpolation on the reference block comprises:
    采用1/2像素精度的所述默认插值滤波器对所述参考块进行像素插值。Pixel interpolation is performed on the reference block using the default interpolation filter with 1/2 pixel accuracy.
  20. 根据权利要求16-19中的任一项所述的方法,其特征在于,所述当前块采用单向预测模式,所述运动矢量候选列表的数目为一个。The method according to any one of claims 16-19, wherein the current block adopts a unidirectional prediction mode, and the number of the motion vector candidate list is one.
  21. 根据权利要求20所述的方法,其特征在于,所述运动矢量候选列表是基于前向参考帧或后向参考帧确定的。The method according to claim 20, wherein the motion vector candidate list is determined based on a forward reference frame or a backward reference frame.
  22. 根据权利要求16-19中的任一项所述的方法,其特征在于,所述当前块采用双运动矢量模式,所述运动矢量候选列表的数目为两个。The method according to any one of claims 16-19, wherein the current block adopts a dual motion vector mode, and the number of the motion vector candidate list is two.
  23. 根据权利要求22所述的方法,其特征在于,所述双运动矢量模式包括双向预测模式,所述两个运动矢量候选列表分别是基于前向参考帧和后向参考帧确定的。The method according to claim 22, wherein the dual motion vector mode includes a bidirectional prediction mode, and the two motion vector candidate lists are determined based on a forward reference frame and a backward reference frame, respectively.
  24. 根据权利要求16-23中的任一项所述的方法,其特征在于,所述成对平均运动矢量是所述至少两个候选运动矢量的平均值。The method according to any one of claims 16-23, wherein the paired average motion vector is an average of the at least two candidate motion vectors.
  25. 根据权利要求16-23中的任一项所述的方法,其特征在于,所述成对平均运动矢量是所述至少两个候选运动矢量的加权平均值。The method according to any one of claims 16-23, wherein the paired average motion vector is a weighted average of the at least two candidate motion vectors.
  26. 一种视频编解码装置,其特征在于,包括存储器和处理器,所述存储器上存储有由所述处理器运行的计算机程序,所述处理器由于读取所述存储器中存储的计算机程序,执行如下操作:A video encoding and decoding device, characterized by comprising a memory and a processor, the memory stores a computer program run by the processor, and the processor executes the computer program by reading the computer program stored in the memory Do as follows:
    获取运动矢量候选列表,并从所述运动矢量候选列表中选择运动矢量;Acquiring a motion vector candidate list, and selecting a motion vector from the motion vector candidate list;
    根据选择的运动矢量确定当前块的参考块;Determine the reference block of the current block according to the selected motion vector;
    采用默认插值滤波器对所述参考块进行像素插值。The default interpolation filter is used to perform pixel interpolation on the reference block.
  27. 根据权利要求26所述的装置,其特征在于,所述选择的运动矢量是成对平均运动矢量,所述成对平均运动矢量是根据所述运动矢量候选列表中的至少两个候选运动矢量确定的,所述至少两个候选运动矢量各自对应的插值滤波器相同或不同。The device according to claim 26, wherein the selected motion vector is a paired average motion vector, and the paired average motion vector is determined based on at least two candidate motion vectors in the motion vector candidate list Yes, the interpolation filters corresponding to the at least two candidate motion vectors are the same or different.
  28. 根据权利要求26或27所述的装置,其特征在于,所述默认插值滤波器为默认抽头数量的插值滤波器。The device according to claim 26 or 27, wherein the default interpolation filter is an interpolation filter with a default number of taps.
  29. 根据权利要求28所述的装置,其特征在于,所述默认抽头数量的插值滤波器包括8抽头插值滤波器或6抽头插值滤波器。The apparatus according to claim 28, wherein the interpolation filter with the default number of taps comprises an 8-tap interpolation filter or a 6-tap interpolation filter.
  30. 根据权利要求26-29中的任一项所述的装置,其特征在于,所述采用默认插值滤波器对所述参考块进行像素插值,包括:The device according to any one of claims 26-29, wherein the using a default interpolation filter to perform pixel interpolation on the reference block comprises:
    采用1/2像素精度的所述默认插值滤波器对所述参考块进行像素插值。Pixel interpolation is performed on the reference block using the default interpolation filter with 1/2 pixel accuracy.
  31. 根据权利要求26所述的装置,其特征在于,所述选择的运动矢量是成对平均运动矢量,所述成对平均运动矢量是根据所述运动矢量候选 列表中的一个候选运动矢量确定的。The device according to claim 26, wherein the selected motion vector is a paired average motion vector, and the paired average motion vector is determined according to a candidate motion vector in the motion vector candidate list.
  32. 根据权利要求26所述的装置,其特征在于,所述选择的运动矢量是时域候选运动矢量。The apparatus according to claim 26, wherein the selected motion vector is a candidate motion vector in the time domain.
  33. 根据权利要求26所述的装置,其特征在于,所述选择的运动矢量是空域候选运动矢量。The apparatus according to claim 26, wherein the selected motion vector is a spatial candidate motion vector.
  34. 根据权利要求26所述的装置,其特征在于,所述选择的运动矢量是基于历史的候选运动矢量。The apparatus of claim 26, wherein the selected motion vector is a candidate motion vector based on history.
  35. 根据权利要求26-34中的任一项所述的装置,其特征在于,所述当前块采用单向预测模式,所述运动矢量候选列表的数目为一个。The apparatus according to any one of claims 26-34, wherein the current block adopts a unidirectional prediction mode, and the number of the motion vector candidate list is one.
  36. 根据权利要求35所述的装置,其特征在于,所述运动矢量候选列表是基于前向参考帧或后向参考帧确定的。The apparatus according to claim 35, wherein the motion vector candidate list is determined based on a forward reference frame or a backward reference frame.
  37. 根据权利要求26-34中的任一项所述的装置,其特征在于,所述当前块采用双运动矢量模式,所述运动矢量候选列表的数目为两个。The apparatus according to any one of claims 26-34, wherein the current block adopts a dual motion vector mode, and the number of the motion vector candidate list is two.
  38. 根据权利要求37所述的装置,其特征在于,所述双运动矢量模式包括双向预测模式,所述两个运动矢量候选列表分别是基于前向参考帧和后向参考帧确定的。The apparatus according to claim 37, wherein the dual motion vector mode comprises a bidirectional prediction mode, and the two motion vector candidate lists are determined based on a forward reference frame and a backward reference frame, respectively.
  39. 根据权利要求27所述的装置,其特征在于,所述成对平均运动矢量是所述至少两个候选运动矢量的平均值。The apparatus according to claim 27, wherein the paired average motion vector is an average value of the at least two candidate motion vectors.
  40. 根据权利要求27所述的装置,其特征在于,所述成对平均运动矢量是所述至少两个候选运动矢量的加权平均值。The apparatus according to claim 27, wherein the paired average motion vector is a weighted average of the at least two candidate motion vectors.
  41. 一种视频编解码装置,其特征在于,包括存储器和处理器,所述存储器上存储有由所述处理器运行的计算机程序,所述处理器由于读取所述存储器中存储的计算机程序,执行如下操作:A video encoding and decoding device, characterized by comprising a memory and a processor, the memory stores a computer program run by the processor, and the processor executes the computer program by reading the computer program stored in the memory Do as follows:
    获取运动矢量候选列表,并从所述运动矢量候选列表中选择运动矢量;Acquiring a motion vector candidate list, and selecting a motion vector from the motion vector candidate list;
    根据选择的运动矢量确定当前块的参考块;Determine the reference block of the current block according to the selected motion vector;
    如果所述选择的运动矢量为成对平均运动矢量,则采用默认插值滤波器对所述参考块进行像素插值,所述成对平均运动矢量是根据所述运动矢量候选列表中的至少两个候选运动矢量确定的,所述至少两个候选运动矢量各自对应的插值滤波器相同或不同。If the selected motion vector is a paired average motion vector, a default interpolation filter is used to perform pixel interpolation on the reference block, and the paired average motion vector is based on at least two candidates in the motion vector candidate list. If the motion vector is determined, the interpolation filters corresponding to the at least two candidate motion vectors are the same or different.
  42. 根据权利要求41所述的装置,其特征在于,所述默认插值滤波器为默认抽头数量的插值滤波器。The device according to claim 41, wherein the default interpolation filter is an interpolation filter with a default number of taps.
  43. 根据权利要求42所述的装置,其特征在于,所述默认抽头数量的插值滤波器包括8抽头插值滤波器或6抽头插值滤波器。The apparatus according to claim 42, wherein the interpolation filter with the default number of taps comprises an 8-tap interpolation filter or a 6-tap interpolation filter.
  44. 根据权利要求41-43中的任一项所述的装置,其特征在于,所述采用默认插值滤波器对所述参考块进行像素插值,包括:The device according to any one of claims 41-43, wherein the using a default interpolation filter to perform pixel interpolation on the reference block comprises:
    采用1/2像素精度的所述默认插值滤波器对所述参考块进行像素插值。Pixel interpolation is performed on the reference block using the default interpolation filter with 1/2 pixel accuracy.
  45. 根据权利要求41-44中的任一项所述的装置,其特征在于,所述当前块采用单向预测模式,所述运动矢量候选列表的数目为一个。The apparatus according to any one of claims 41-44, wherein the current block adopts a unidirectional prediction mode, and the number of the motion vector candidate list is one.
  46. 根据权利要求45所述的装置,其特征在于,所述运动矢量候选列表是基于前向参考帧或后向参考帧确定的。The apparatus according to claim 45, wherein the motion vector candidate list is determined based on a forward reference frame or a backward reference frame.
  47. 根据权利要求41-46中的任一项所述的装置,其特征在于,所述当前块采用双运动矢量模式,所述运动矢量候选列表的数目为两个。The apparatus according to any one of claims 41-46, wherein the current block adopts a dual motion vector mode, and the number of the motion vector candidate list is two.
  48. 根据权利要求47所述的装置,其特征在于,所述双运动矢量模式包括双向预测模式,所述两个运动矢量候选列表分别是基于前向参考帧和后向参考帧确定的。The apparatus according to claim 47, wherein the dual motion vector mode comprises a bidirectional prediction mode, and the two motion vector candidate lists are determined based on a forward reference frame and a backward reference frame, respectively.
  49. 根据权利要求41-48中的任一项所述的装置,其特征在于,所述成对平均运动矢量是所述至少两个候选运动矢量的平均值。The apparatus according to any one of claims 41-48, wherein the paired average motion vector is an average value of the at least two candidate motion vectors.
  50. 根据权利要求41-48中的任一项所述的装置,其特征在于,所述成对平均运动矢量是所述至少两个候选运动矢量的加权平均值。The apparatus according to any one of claims 41-48, wherein the paired average motion vector is a weighted average of the at least two candidate motion vectors.
  51. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被处理器运行时使得所述处理器执行如权利要求1-25中的任一项所述的视频编解码方法。A computer-readable storage medium, wherein a computer program is stored on the computer-readable storage medium, and when the computer program is run by a processor, the processor executes any of claims 1-25. The video encoding and decoding method described in one item.
PCT/CN2019/107596 2019-09-24 2019-09-24 Video encoding and decoding method and apparatus, and computer-readable storage medium WO2021056210A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2019/107596 WO2021056210A1 (en) 2019-09-24 2019-09-24 Video encoding and decoding method and apparatus, and computer-readable storage medium
CN201980034107.9A CN112204977A (en) 2019-09-24 2019-09-24 Video encoding and decoding method, device and computer readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/107596 WO2021056210A1 (en) 2019-09-24 2019-09-24 Video encoding and decoding method and apparatus, and computer-readable storage medium

Publications (1)

Publication Number Publication Date
WO2021056210A1 true WO2021056210A1 (en) 2021-04-01

Family

ID=74004772

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/107596 WO2021056210A1 (en) 2019-09-24 2019-09-24 Video encoding and decoding method and apparatus, and computer-readable storage medium

Country Status (2)

Country Link
CN (1) CN112204977A (en)
WO (1) WO2021056210A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113489994A (en) * 2021-05-28 2021-10-08 杭州博雅鸿图视频技术有限公司 Motion estimation method, motion estimation device, electronic equipment and medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101213842A (en) * 2005-06-29 2008-07-02 诺基亚公司 Method and apparatus for update step in video coding using motion compensated temporal filtering
CN101984669A (en) * 2010-12-10 2011-03-09 河海大学 Iteration method of frame-hierarchy adaptive Wiener interpolation filter
WO2011078002A1 (en) * 2009-12-22 2011-06-30 ソニー株式会社 Image processing device, image processing method, and program
CN105338366A (en) * 2015-10-29 2016-02-17 北京工业大学 Decoding method of fractional pixels in video sequences
CN109792524A (en) * 2016-10-05 2019-05-21 高通股份有限公司 Switch the system and method for interpolation filter

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101213842A (en) * 2005-06-29 2008-07-02 诺基亚公司 Method and apparatus for update step in video coding using motion compensated temporal filtering
WO2011078002A1 (en) * 2009-12-22 2011-06-30 ソニー株式会社 Image processing device, image processing method, and program
CN101984669A (en) * 2010-12-10 2011-03-09 河海大学 Iteration method of frame-hierarchy adaptive Wiener interpolation filter
CN105338366A (en) * 2015-10-29 2016-02-17 北京工业大学 Decoding method of fractional pixels in video sequences
CN109792524A (en) * 2016-10-05 2019-05-21 高通股份有限公司 Switch the system and method for interpolation filter

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A. TAMSE (SAMSUNG), M. W. PARK (SAMSUNG), K. CHOI (SAMSUNG): "CE4-related: Pairwise Average Candidate Reduction", 13. JVET MEETING; 20190109 - 20190118; MARRAKECH; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), 3 January 2019 (2019-01-03), XP030200367 *

Also Published As

Publication number Publication date
CN112204977A (en) 2021-01-08

Similar Documents

Publication Publication Date Title
CN111066326B (en) Machine learning video processing system and method
JP2022008296A (en) Apparatus for encoding and decoding image by using skip encoding and method of the same
US11350125B2 (en) Method and device for intra-prediction
CN111279701B (en) Video processing method and device
WO2021163862A1 (en) Video encoding method and device
TWI468018B (en) Video coding using vector quantized deblocking filters
WO2021134706A1 (en) Loop filtering method and device
WO2008149327A2 (en) Method and apparatus for motion-compensated video signal prediction
WO2021056212A1 (en) Method and apparatus for video encoding and decoding
JP2024038295A (en) Motion vector prediction for video encoding
WO2021056210A1 (en) Video encoding and decoding method and apparatus, and computer-readable storage medium
WO2021056220A1 (en) Video coding and decoding method and apparatus
JP5938424B2 (en) Method for reconstructing and encoding image blocks
CN114128263A (en) Method and apparatus for adaptive motion vector resolution in video coding and decoding
CN110337810B (en) Method and apparatus for video processing
JP2023063506A (en) Method for deriving constructed affine merge candidate
WO2021134654A1 (en) Video encoding method and apparatus
WO2021081905A1 (en) Image prediction and video coding methods, apparatus, mobile platform, and storage medium
JP7210707B2 (en) Method and apparatus for coding images of video sequences and terminal devices
CN113542748B (en) Video encoding and decoding method, apparatus, and non-transitory computer readable storage medium
WO2023070388A1 (en) Video encoding method and apparatus, and computer-readable storage medium
WO2021056920A1 (en) Method and apparatus for video encoding and decoding
WO2021134700A1 (en) Method and apparatus for video encoding and decoding
CN114402618A (en) Method and apparatus for decoder-side motion vector refinement in video coding and decoding
CN112204986A (en) Video coding and decoding method and device

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: 19946738

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: 19946738

Country of ref document: EP

Kind code of ref document: A1