Video processing method and apparatus
Patent Information
- Application Number
- CN202311024533.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-01-03
- Publication Date
- 2026-10-27
- Estimated Expiration
- 2039-01-03
AI Technical Summary
[0006]对于帧间的双向预测模式,利用ATMVP技术寻找当前块的子块的运动信息的过程比较复杂,存在一些冗余操作
[0012]通过限制双向预测过程中的需要扫描的参考帧列表的数量,可以简化编解码操作。
Smart Images

Figure CN116866605B_ABST
Abstract
Description
[0001] Copyright Statement
[0002] This patent document discloses material protected by copyright. The copyright belongs to the copyright holder. The copyright holder does not object to anyone copying this patent document or the patent disclosure as it exists in the official records and archives of the Patent and Trademark Office. Technical Field
[0003] This application relates to the field of video encoding and decoding, and more specifically, to a video processing method and apparatus. Background Technology
[0004] Video coding involves inter-frame prediction. Inter-frame prediction modes include merge mode and non-merge mode. In merge mode, a candidate list of motion vectors for the merge mode is typically constructed first, and then the motion vectors for the current block are selected from this list. The current block can also be called the current coding unit (CU).
[0005] With the development of coding techniques, inter-frame prediction methods have introduced alternative / advanced temporal motion vector prediction (ATMVP). In ATMVP, the current block is divided into multiple sub-blocks, and motion information for each sub-block is calculated. ATMVP aims to introduce sub-block-level motion vector prediction to improve the overall coding performance of video.
[0006] For the bidirectional prediction mode between frames, the process of finding the motion information of the sub-blocks of the current block using the ATMVP technology is relatively complex and involves some redundant operations. Summary of the Invention
[0007] This application provides a video processing method and apparatus that can simplify encoding and decoding operations.
[0008] A first aspect provides a video processing method, comprising: acquiring a reference frame list of a current block, the reference frame list of the current block including a first reference frame list and a second reference frame list; determining a target reference frame list based on the reference frame list of the current block, the target reference frame list being one of the first reference frame list and the second reference frame list; determining a temporal motion vector of the current block based on the target reference frame list of the current block; determining motion information of sub-blocks of the current block based on the temporal motion vector; and performing inter-frame prediction on the current block based on the motion information of the sub-blocks of the current block.
[0009] In a second aspect, a video processing apparatus is provided, comprising: a memory for storing code; and a processor for executing the code stored in the memory to perform the following operations: obtaining a reference frame list of a current block, the reference frame list of the current block including a first reference frame list and a second reference frame list; determining a target reference frame list based on the reference frame list of the current block, the target reference frame list being one of the first reference frame list and the second reference frame list; determining a temporal motion vector of the current block based on the target reference frame list of the current block; determining motion information of sub-blocks of the current block based on the temporal motion vector; and performing inter-frame prediction on the current block based on the motion information of the sub-blocks of the current block.
[0010] Thirdly, a computer-readable storage medium is provided having instructions stored thereon for performing the method of the first aspect.
[0011] Fourthly, a computer program product is provided, comprising instructions for performing the method of the first aspect.
[0012] By limiting the number of reference frames that need to be scanned during bidirectional prediction, encoding and decoding operations can be simplified. Attached Figure Description
[0013] Figure 1 This is a flowchart for constructing the affine merge candidate list.
[0014] Figure 2 This is a diagram of the blocks surrounding the current block.
[0015] Figure 3 This is a flowchart of the ATMVP implementation process.
[0016] Figure 4 This is an example diagram illustrating how motion information of the current block's sub-blocks is obtained.
[0017] Figure 5 This is a flowchart illustrating the video processing method provided in the embodiments of this application.
[0018] Figure 6 This is a schematic diagram of the structure of the video processing device provided in the embodiments of this application. Detailed Implementation
[0019] This application can be applied to various video coding standards, such as H.264, High Efficiency Video Coding (HEVC), Versatile Video Coding (VVC), Audio Video Coding Standard (AVS), AVS+, AVS2, and AVS3.
[0020] The video coding process mainly includes prediction, transform, quantization, entropy coding, and loop filtering. Prediction is a crucial component of mainstream video coding technologies. Prediction can be divided into intra-frame prediction and inter-frame prediction. Inter-frame prediction can be achieved through motion compensation. The motion compensation process is illustrated below with an example.
[0021] For example, a frame of image can be divided into one or more coding regions. These coding regions are also called coding tree units (CTUs). The size of a CTU can be, for example, 64×64 or 128×128 pixels (units are pixels; similar descriptions below will omit units). Each CTU can be divided into square or rectangular image blocks. These image blocks are also called coding units (CUs), and the current CU to be encoded will be referred to as the current block in the following text.
[0022] When performing inter-frame prediction for the current block, a similar block can be found in the reference frame (which may be a reconstructed frame in the nearby time domain) as the prediction block for the current block. The relative displacement between the current block and the similar block is called the motion vector (MV). The process of finding a similar block in the reference frame as the prediction block for the current block is called motion compensation.
[0023] Inter-frame prediction modes include merge mode and non-merge mode. In merge mode, the motion vector (MV) of an image patch is the motion vector prediction (MVP) of that patch. Therefore, for merge mode, only the index of the MVP and the index of the reference frame need to be transmitted in the bitstream. In contrast, non-merge mode requires not only transmitting the MVP and the index of the reference frame in the bitstream, but also the motion vector difference (MVD).
[0024] Traditional motion vectors use a simple translation model, where the motion vector of the current block represents the relative displacement between the current block and a reference block. This type of motion vector is difficult to accurately describe more complex motions in video, such as scaling, rotation, and perspective. To describe more complex motions, relevant codec standards introduced the affine model. The affine model uses the motion vectors of two or three control points (CPs) of the current block to describe the affine motion field of the current block. The two control points could be, for example, the top-left and top-right corners of the current block; the three control points could be, for example, the top-left, top-right, and bottom-left corners of the current block.
[0025] Combining the affine model with the merge mode mentioned earlier forms the affine merge mode. The normal merge mode's merge candidate list records the MVP of the image block, while the affine merge mode's affine merge candidate list records the control point motion vector prediction (CPMVP). Similar to the normal merge mode, the affine merge mode does not need to add MVD to the bitstream; instead, it directly uses the CPMVP as the CPMV of the current block.
[0026] Constructing the affine merge candidate list for the current block is one of the important processes in the affine merge mode. Figure 1 This illustrates one possible way to construct the affine merge candidate list.
[0027] Step S110: Insert ATMVP into the affine merge candidate list of the current block.
[0028] ATMVP contains motion information of the sub-blocks of the current block. In other words, when using ATMVP, the affinemerge candidate list inserts motion information of the sub-blocks of the current block, enabling affine merge mode to perform motion compensation at the sub-block level, thereby improving the overall encoding performance of the video. This will be discussed in conjunction with... Figure 3 The implementation method of step S110 will be described in detail here, but will not be elaborated on here.
[0029] The motion information includes a combination of one or more of the following: motion vectors; motion vector differences; reference frame index values; reference directions for inter-frame prediction; information on whether the image blocks are intra-frame coded or inter-frame coded; and the image block partitioning mode.
[0030] Step S120: Insert inherited affine candidates into the affine merge candidate list.
[0031] For example, such as Figure 2 As shown, the surrounding blocks of the current block can be scanned in the order A1->B1->B0->A0->B2. The CPMV of the surrounding blocks that adopt the affine merge mode is used as the affine candidates of the current block and inserted into the affine merge candidate list of the current block.
[0032] Step S130: Determine whether the number of affine candidates in the affine merge candidate list is less than a preset value.
[0033] If the number of affine candidates in the affine merge candidate list has reached the preset value, the process ends. Figure 1 The process continues; if the number of affine candidates in the affine merge candidate list is less than the preset value, continue to execute step S140.
[0034] Step S140: Insert the constructed affine candidates into the affine merge candidate list.
[0035] For example, motion information from surrounding blocks of the current block can be combined to construct new affine candidates, and the generated affine candidates can be inserted into the affine merge candidate list.
[0036] Step S150: Determine whether the number of affine candidates in the affine merge candidate list is less than a preset value.
[0037] If the number of affine candidates in the affine merge candidate list has reached the preset value, the process ends. Figure 1The process continues; if the number of affine candidates in the affine merge candidate list is less than the preset value, continue to execute step S160.
[0038] In step S160, a 0 vector is inserted into the affine merge candidate list.
[0039] In other words, the affine merge candidate list is padded with zero vectors to reach the preset value.
[0040] The following is combined with Figure 3 ,right Figure 1 The implementation of step S110 will be illustrated in detail with examples.
[0041] like Figure 3 As shown, the implementation of ATVMP technology, that is, the acquisition of motion information of the sub-blocks of the current block, can be roughly divided into two steps: steps S310 and S320.
[0042] In step S310, the corresponding block in the reference frame of the current block is determined.
[0043] In the current ATMVP technology, the frame used to acquire motion information for the current frame (the frame containing the current block) is called the co-located picture. The co-located picture for the current frame is set during slice initialization. Taking forward prediction as an example, the first reference frame list can be either the forward reference frame list or a reference frame list containing a first set of reference frames. This first set of reference frames includes reference frames that are chronologically before and after the current frame. During slice initialization, the first frame in the first reference frame list for the current block is typically set as the co-located picture for the current frame.
[0044] The corresponding block of the current block in the reference frame is determined by a temporal motion vector (temp MV). Therefore, to obtain the corresponding block of the current block in the reference frame, it is necessary to first derive this temporal motion vector. The derivation process of the temporal motion vector is explained below using forward prediction and bidirectional prediction as examples.
[0045] For forward prediction, the current block's reference frame list (also called the reference list or reference image list) contains one reference frame. This reference frame list can be called the first reference frame list (reference list 0). In one scenario, this first reference frame list can be the forward reference frame list. The co-located frame of the current frame is usually set as the first frame in the first reference frame list. During the derivation of the temporal motion vector, the current motion vector candidate list (which can be constructed based on the motion vectors of image blocks at four spatially adjacent locations) is scanned first, and the first candidate motion vector in this list is used as the initial temporal motion vector. Then, the first reference frame list of the current block is scanned. If the reference frame of the first candidate motion vector is the same as the co-located frame of the current frame, then the first candidate motion vector can be used as the temporal motion vector; if the reference frame of the first candidate motion vector is different from the co-located frame of the current frame, then the temporal motion vector can be set to a 0 vector, and the scanning stops.
[0046] For bidirectional prediction, the current block has two reference frame lists: a first reference frame list (reference list 0) and a second reference frame list (reference list 1). In one scenario, the first reference frame list can be a forward reference frame list, and the second reference frame list can be a backward reference frame list. Similar to forward prediction, in deriving the temporal motion vector, the current motion vector candidate list is scanned first, and the first candidate motion vector in the list is used as the initial temporal motion vector. Then, a reference frame list in the current reference direction of the current block is scanned (this could be either the first or second reference frame list). If the reference frame of the first candidate motion vector is the same as the co-located frame of the current frame, then the first candidate motion vector can be used as the temporal motion vector; if the reference frame of the first candidate motion vector is different from the co-located frame of the current frame, then the reference frame list in the other reference direction of the current block is scanned. Similarly, if the reference frame of the first candidate motion vector in the other reference frame list is the same as the co-located frame of the current frame, then the first candidate motion vector can be used as the temporal motion vector; if the reference frame of the first candidate motion vector is different from the co-located frame of the current frame, then the temporal motion vector can be set to a 0 vector, and scanning can be stopped. It should be noted that in some other scenarios, both the first and second reference frame lists can contain reference frames that are chronologically preceding and following the current frame. The bidirectional prediction refers to selecting reference frames with different reference directions from the first and second reference frame lists.
[0047] For bidirectional prediction, the scanning order of the first reference frame list and the second reference frame list can be determined according to the following rules:
[0048] If the current frame uses a low-delay coding mode and its co-frame is set as the first frame in the second reference frame list, then the second reference frame list is scanned first; otherwise, the first reference frame list is scanned first.
[0049] The use of low-delay coding mode for the current frame indicates that the reference frames of the current frame are all played before the current frame in the video sequence; the setting of the co-frame of the current frame as the first frame in the second reference frame list indicates that the quantization step size of the first slice in the first reference frame list of the current frame is smaller than the quantization step size of the first slice in the second reference frame list.
[0050] After deriving the temporal motion vector, the corresponding block of the current block can be found in the reference frame using this temporal motion vector.
[0051] In step S320, motion information of the sub-blocks of the current block is obtained according to the corresponding block of the current block.
[0052] like Figure 4 As shown, the current block can be divided into multiple sub-blocks, and then the motion information of each sub-block within its corresponding block can be determined. It is worth noting that for each sub-block, the motion information of its corresponding block can be determined by the smallest unit of motion information storage it belongs to.
[0053] The motion information includes a combination of one or more of the following: motion vectors; motion vector differences; reference frame index values; reference directions for inter-frame prediction; information on whether the image blocks are intra-frame coded or inter-frame coded; and the image block partitioning mode.
[0054] from Figure 3 As can be seen from the implementation process of the described ATMVP, for bidirectional prediction, the worst case is: during the process of deriving the temporal motion vector, both reference frame lists are scanned, but no temporal motion vector that meets the conditions is still derived. In this case, scanning the two reference frame lists is redundant.
[0055] Furthermore, in bidirectional prediction, if the encoding mode of the current frame is low delay B or random access, the reference frames in the first reference frame list and the second reference frame list will overlap to some extent. Therefore, during the acquisition of temporal motion vectors, there will be redundant operations in the scanning process of the two reference frame lists.
[0056] Therefore, the temporal motion vector derivation scheme provided by related technologies for bidirectional prediction is relatively complex and has room for improvement.
[0057] The following is combined with Figure 5 The embodiments of this application will be described in detail below.
[0058] Figure 5 This is a schematic flowchart of the video processing method provided in the embodiments of this application. Figure 5 The method can be applied to both the encoding and decoding ends.
[0059] In step S510, the reference frame list of the current block is obtained, which includes a first reference frame list and a second reference frame list.
[0060] The current block can also be called the current CU. The reference frame list of the current block includes a first reference frame list and a second reference frame list, indicating that the current block will perform bidirectional prediction between frames.
[0061] Optionally, the first reference frame list can be a forward reference frame list or a reference frame list that includes the first group of reference frames. The first group of reference frames includes reference frames that are chronologically preceding and following the current frame.
[0062] Optionally, the second reference frame list can be a backward reference frame list or a reference frame list that includes a second set of reference frames, which includes reference frames that are in chronological order before and after the current frame.
[0063] It should be noted that in some scenarios, both the first reference frame list and the second reference frame list can contain reference frames that are in chronological order before and after the current frame. The bidirectional prediction mentioned above may refer to selecting reference frames with different reference directions from the first reference frame list and the second reference frame list.
[0064] In step S520, the target reference frame list is determined based on the reference frame list of the current block.
[0065] The target reference frame list is one of the first reference frame list and the second reference frame list. This target reference frame list can be selected randomly or according to certain rules. For example, it can be selected according to the following rules: if the current frame containing the current block uses a low-latency coding mode and its co-frame is the first frame in the second reference frame list, then the second reference frame list is determined as the target reference frame list; and / or if the current frame containing the current block does not use a low-latency coding mode or its co-frame is not the first frame in the second reference frame list, then the first reference frame list is determined as the target reference frame list.
[0066] In step S530, the temporal motion vector of the current block is determined based on the target reference frame list of the current block.
[0067] In the bidirectional prediction process, embodiments of this application determine the temporal motion vector of the current block based on one of the first and second reference frame lists. In other words, regardless of whether the temporal motion vector can be derived from the target reference frame list, scanning stops after scanning the target reference frame list. In other words, the temporal motion vector of the current block can be determined solely based on the target reference frame list.
[0068] For example, the first candidate motion vector can be selected from the current motion vector candidate list (which can be constructed based on the motion vectors of image blocks at four adjacent spatial locations); the reference frame of the first candidate motion vector is searched from the target reference frame list; when the reference frame of the first candidate motion vector is the same as the co-located frame of the current block, the first candidate motion vector can be determined as the temporal motion vector; when the reference frame of the first candidate motion vector is different from the co-located frame of the current block, the scanning also stops, unlike... Figure 3 As described in the embodiments, the scanning continues on another list of reference frames for the current block, in which case the 0 vector can be used as the temporal motion vector for the current block.
[0069] In step S540, the motion information of the sub-blocks of the current block is determined based on the time-domain motion vector.
[0070] For example, the corresponding block in the reference frame for the current block can be determined based on the temporal motion vector. Then, the motion information of the sub-blocks of the current block can be determined based on the corresponding block in the reference frame. The motion information includes a combination of one or more of the following: motion vector; motion vector difference; reference frame index value; reference direction for inter-frame prediction; information on whether the image block uses intra-frame coding or inter-frame coding; and the image block partitioning mode. Step S540 can be implemented with reference to step S320 above, and will not be described in detail here.
[0071] In step S550, inter-frame prediction is performed on the current block based on the motion information of the sub-blocks of the current block.
[0072] As an example, step S550 may include: performing inter-frame prediction based on the motion information of the sub-blocks of the current block.
[0073] For example, it can be like Figure 1 As shown, the motion information of the sub-blocks of the current block is inserted as ATMVP into the affine merge candidate list of the current block, and then... Figure 1Similar to steps S120 to S160, a complete affine merge candidate list is constructed. Then, the candidate motion vectors in this affine merge candidate list can be used to perform inter-frame prediction on the current block to determine the optimal candidate motion vector. The detailed implementation of step S550 can be referred to related technologies, and this application embodiment is not limited thereto.
[0074] The embodiments of this application simplify the operation of the encoder and decoder by limiting the number of reference frames that need to be scanned during bidirectional prediction.
[0075] Understandable Figure 5 When the method is applied to the encoding and decoding ends respectively, the inter-frame prediction process for the current block described in step S550 will differ. For example, when Figure 5 When this method is applied at the encoding end, inter-frame prediction of the current block can include: determining the prediction block of the current block; and calculating the residual block of the current block based on the original block and the prediction block. For example, when... Figure 5 When the method is applied to the decoding end, inter-frame prediction of the current block can include: determining the prediction block and residual block of the current block; and calculating the reconstructed block of the current block based on the prediction block and residual block of the current block.
[0076] The above text combined Figures 1 to 5 The method embodiments of this application are described in detail below, in conjunction with... Figure 6 The present application provides a detailed description of the apparatus embodiments. It should be understood that the descriptions of the method embodiments correspond to the descriptions of the apparatus embodiments; therefore, any parts not described in detail can be found in the foregoing method embodiments.
[0077] Figure 6 This is a schematic structural diagram of the video processing apparatus provided in the embodiments of this application. Figure 6 The device 60 includes a memory 62 and a processor 64.
[0078] Memory 62 can be used to store code.
[0079] The processor 64 can be used to execute code stored in the memory to perform the following operations: obtaining a reference frame list for the current block, the reference frame list for the current block including a first reference frame list and a second reference frame list; determining a target reference frame list based on the reference frame list for the current block, the target reference frame list being one of the first reference frame list and the second reference frame list; determining a temporal motion vector for the current block based on the target reference frame list for the current block; determining motion information of sub-blocks of the current block based on the temporal motion vector; and performing inter-frame prediction for the current block based on the motion information of the sub-blocks of the current block.
[0080] Optionally, determining the motion information of the sub-blocks of the current block based on the temporal motion vector includes: determining the corresponding block of the current block in the reference frame based on the temporal motion vector; and determining the motion information of the sub-blocks of the current block based on the corresponding block of the current block in the reference frame.
[0081] Optionally, determining the target reference frame list based on the reference frame list of the current block includes: if the current frame containing the current block uses a low-latency coding mode and the co-frame of the current frame is the first frame in the second reference frame list, determining the second reference frame list as the target reference frame list; and / or if the current frame containing the current block does not use a low-latency coding mode or the co-frame of the current frame is not the first frame in the second reference frame list, determining the first reference frame list as the target reference frame list.
[0082] Optionally, the first reference frame list can be a forward reference frame list or a reference frame list that includes the first group of reference frames. The first group of reference frames includes reference frames that are chronologically preceding and following the current frame.
[0083] Optionally, the second reference frame list can be a backward reference frame list or a reference frame list that includes a second set of reference frames, which includes reference frames that are in chronological order before and after the current frame.
[0084] It should be noted that in some scenarios, both the first reference frame list and the second reference frame list can contain reference frames that are in chronological order before and after the current frame. The bidirectional prediction mentioned above may refer to selecting reference frames with different reference directions from the first reference frame list and the second reference frame list.
[0085] Optionally, determining the temporal motion vector of the current block based on the target reference frame list of the current block includes: selecting a first candidate motion vector from the current motion vector candidate list; searching for the reference frame of the first candidate motion vector from the target reference frame list; and determining the first candidate motion vector as the temporal motion vector when the reference frame of the first candidate motion vector is the same as the co-position frame of the current block.
[0086] Optionally, determining the temporal motion vector of the current block based on the target reference frame list of the current block further includes: when the reference frame of the first candidate motion vector is different from the co-position frame of the current block, determining the temporal motion vector as a 0 vector.
[0087] Optionally, the step of performing inter-frame prediction on the current block includes: determining the prediction block of the current block; and calculating the residual block of the current block based on the original block and the prediction block of the current block.
[0088] Optionally, the step of performing inter-frame prediction on the current block includes: determining the prediction block and residual block of the current block; and calculating the reconstruction block of the current block based on the prediction block and residual block of the current block.
[0089] Optionally, the step of performing inter-frame prediction on the current block based on the motion information of the sub-blocks of the current block may include: performing inter-frame prediction on a unit basis based on the motion information of the sub-blocks of the current block.
[0090] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any other combination. When implemented in software, it can be implemented entirely or partially as a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present invention are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available media can be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., digital video discs (DVDs)), or semiconductor media (e.g., solid-state disks (SSDs)).
[0091] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0092] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0093] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0094] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0095] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A video processing method, characterized in that, include: Obtain the reference frame list of the current block, wherein the reference frame list of the current block includes a first reference frame list and a second reference frame list; The temporal motion vector of the current block is determined based on the target reference frame list of the current block. The target reference frame list is one of the first reference frame list and the second reference frame list, and the target reference frame list is randomly selected or selected according to a preset rule. The motion information of the sub-blocks of the current block is determined based on the temporal motion vector; The motion information includes a combination of one or more of the following: motion vectors; Motion vector difference; reference frame index value; reference direction for inter-frame prediction; information on whether the image patch uses intra-frame coding or inter-frame coding; image patch partitioning mode; Inter-frame prediction is performed on the current block based on the motion information of its sub-blocks; Specifically, when a spatial neighboring block at a specific location of the current block has the same reference frame in the target reference frame list as the co-located frame of the current block, the motion vector of the spatial neighboring block is determined as the temporal motion vector.
2. The method according to claim 1, characterized in that, When a spatial neighboring block at a specific location of the current block has the same reference frame in the target reference frame list as the co-located frame of the current block, the motion vector of the spatial neighboring block is determined as the temporal motion vector, including: When the motion vector of a spatially adjacent block at a specific location of the current block is the same as the co-located frame of the current block in the first reference frame list, the motion vector of the spatially adjacent block is determined as the temporal motion vector.
3. The method according to claim 2, characterized in that, When the reference frame of the motion vector of the spatial adjacent block in the first reference frame list is different from the co-position frame of the current block, the second reference frame list is scanned. When the reference frame of the motion vector of the spatial adjacent block in the second reference frame list is the same as the co-position frame of the current block, the motion vector of the spatial adjacent block is taken as the temporal motion vector.
4. The method according to claim 3, characterized in that, When the motion vector of the spatially adjacent block is not the same as the reference frame of the current block in the second reference frame list, the zero motion vector is used as the temporal motion vector.
5. The method according to claim 1, characterized in that, Determining the motion information of the sub-blocks of the current block based on the time-domain motion vector includes: The corresponding block of the current block in the reference frame is determined based on the temporal motion vector; The motion information of the sub-blocks of the current block is determined based on the corresponding block of the current block in the reference frame.
6. The method according to claim 1 or 2, characterized in that, The step of performing inter-frame prediction on the current block includes: Determine the predicted block for the current block; Calculate the residual block of the current block based on the original block and the predicted block of the current block.
7. The method according to claim 1 or 2, characterized in that, The step of performing inter-frame prediction on the current block includes: Determine the prediction block and residual block of the current block; Calculate the reconstructed block of the current block based on the predicted block and the residual block of the current block.
8. The method according to claim 1 or 2, characterized in that, The step of performing inter-frame prediction of the current block based on the motion information of the sub-blocks of the current block includes: Inter-frame prediction is performed based on the motion information of the sub-blocks of the current block.
9. A video processing apparatus, characterized in that, include: Memory, used to store computer programs; A processor is configured to execute a computer program stored in the memory to perform the following operations: Obtain the reference frame list of the current block, wherein the reference frame list of the current block includes a first reference frame list and a second reference frame list; The temporal motion vector of the current block is determined based on the target reference frame list of the current block. The target reference frame list is one of the first reference frame list and the second reference frame list, and the target reference frame list is randomly selected or selected according to a preset rule. The motion information of the sub-blocks of the current block is determined based on the temporal motion vector; The motion information includes a combination of one or more of the following: motion vectors; Motion vector difference; reference frame index value; reference direction for inter-frame prediction; information on whether the image patch uses intra-frame coding or inter-frame coding; image patch partitioning mode; Inter-frame prediction is performed on the current block based on the motion information of its sub-blocks; Specifically, when a spatial neighboring block at a specific location of the current block has the same reference frame in the target reference frame list as the co-located frame of the current block, the motion vector of the spatial neighboring block is determined as the temporal motion vector.
10. The video processing apparatus according to claim 9, characterized in that, When a spatial neighboring block at a specific location of the current block has the same reference frame in the target reference frame list as the co-located frame of the current block, the motion vector of the spatial neighboring block is determined as the temporal motion vector, including: When the motion vector of a spatially adjacent block at a specific location of the current block is the same as the co-located frame of the current block in the first reference frame list, the motion vector of the spatially adjacent block is determined as the temporal motion vector.
11. The video processing apparatus according to claim 10, characterized in that, When the reference frame of the motion vector of the spatial adjacent block in the first reference frame list is different from the co-position frame of the current block, the second reference frame list is scanned. When the reference frame of the motion vector of the spatial adjacent block in the second reference frame list is the same as the co-position frame of the current block, the motion vector of the spatial adjacent block is taken as the temporal motion vector.
12. The video processing apparatus according to claim 11, characterized in that, When the motion vector of the spatially adjacent block is not the same as the reference frame of the current block in the second reference frame list, the zero motion vector is used as the temporal motion vector.
13. The video processing apparatus according to claim 9, characterized in that, Determining the motion information of the sub-blocks of the current block based on the time-domain motion vector includes: The corresponding block of the current block in the reference frame is determined based on the temporal motion vector; The motion information of the sub-blocks of the current block is determined based on the corresponding block of the current block in the reference frame.
14. The video processing apparatus according to claim 9 or 10, characterized in that, The step of performing inter-frame prediction on the current block includes: Determine the predicted block for the current block; Calculate the residual block of the current block based on the original block and the predicted block of the current block.
15. The video processing apparatus according to claim 9 or 10, characterized in that, The step of performing inter-frame prediction on the current block includes: Determine the prediction block and residual block of the current block; Calculate the reconstructed block of the current block based on the predicted block and the residual block of the current block.
16. The video processing apparatus according to claim 9 or 10, characterized in that, The step of performing inter-frame prediction of the current block based on the motion information of the sub-blocks of the current block includes: Inter-frame prediction is performed based on the motion information of the sub-blocks of the current block.
Citation Information
Patent Citations
Method and device for determining motion vector for video coding or video decoding
AU2015201550A1
Method and apparatus for coding video, and method and apparatus for decoding video accompanied by inter prediction using collocated image
CN103765894A