Video processing method and device

By constructing and updating the candidate list of historical motion information, the dependencies between image blocks are reduced, independent encoding or decoding of image blocks is achieved, parallel processing is supported, and video coding efficiency is improved.

CN113992910BActive Publication Date: 2025-09-23PEKING UNIV +1
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202111241960.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-12-29
Filing Date
2019-03-13
Publication Date
2025-09-23
Estimated Expiration
2039-03-13

AI Technical Summary

Technical Problem

In the existing technology, the strong dependency between image blocks makes parallel processing difficult to implement, which affects the efficiency of video coding.

Method used

By constructing a historical motion information candidate list, the motion information of the encoded or decoded image blocks is used to encode or decode the current image block, and the list is updated during the encoding process to reduce the dependency between image blocks.

Benefits of technology

It realizes independent encoding or decoding of image blocks, supports parallel processing, and improves video encoding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113992910B_ABST
    Figure CN113992910B_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a video processing method and device that can overcome the dependencies between multiple image blocks, allowing multiple image blocks to be independently encoded or decoded. The method includes: obtaining a historical motion information candidate list, the historical motion information candidate list being used to encode or decode each first image block among multiple first image blocks included in a first region in a current frame, wherein the historical motion information candidate list is obtained based on motion information of a second image block, the second image block being an already encoded or decoded image block other than the image block included in the first region; and encoding or decoding each first image block separately according to the historical motion information candidate list.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Copyright Notice

[0002] The disclosure of this patent document contains material that is subject to copyright protection. The copyright is reserved by the copyright owner. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the official records and files of the Patent and Trademark Office. Technical Field

[0003] The present application relates to the field of image processing, and more particularly, to a video processing method and device. Background Art

[0004] Prediction is an important module of the mainstream video coding framework. Prediction can include intra-frame prediction and inter-frame prediction. Inter-frame prediction modes can include Advanced Motion Vector Prediction (AMVP) mode and Merge mode. In Merge mode, the MVP can be determined from the motion vector prediction value (MVP) candidate list and directly determined as the MV. The MVP and reference frame index can be transmitted to the decoding end in the code stream for decoding by the decoding end.

[0005] When constructing the above MVP candidate list, a candidate HMVP may be selected from a history-based motion vector prediction (HMVP) candidate list as a candidate MVP in the MVP candidate list.

[0006] The HMVP candidate list is generated based on the motion information of the coded or decoded blocks. For example, when the encoding or decoding of a coded or decoded block is completed, the motion information of the coded or decoded block is used to update the HMVP list of the next block to be coded or decoded. However, there are still areas for improvement in the HMVP list. Summary of the Invention

[0007] The embodiments of the present application provide a video processing method and device, which can overcome the dependencies between multiple image blocks, so that the multiple image blocks can be independently encoded or decoded.

[0008] In a first aspect, a video processing method is provided, including: obtaining a historical motion information candidate list, wherein the historical motion information candidate list is used to encode or decode each first image block of multiple first image blocks included in a first area in a current frame, wherein the historical motion information candidate list is obtained based on motion information of a second image block, and the second image block is an encoded or decoded image block other than the image block included in the first area; and encoding or decoding each of the first image blocks according to the historical motion information candidate list.

[0009] In a second aspect, a video processing method is provided, including: using a historical motion information candidate list to encode or decode at least one second image block in a second area of ​​a current frame; updating the historical motion information candidate list based on the motion information of at least part of the second image block in the second area after encoding or decoding to obtain an updated historical motion information candidate list; using the updated historical motion information candidate list to encode or decode multiple first image blocks in the first area of ​​the current frame.

[0010] According to a third aspect, a video processing device is provided, comprising: an acquisition unit for acquiring a historical motion information candidate list, wherein the historical motion information candidate list is used to encode or decode each first image block of a plurality of first image blocks included in a first area in a current frame, wherein the historical motion information candidate list is acquired based on motion information of a second image block, and the second image block is an encoded or decoded image block other than the image block included in the first area; and an encoding or decoding unit for encoding or decoding each first image block respectively according to the historical motion information candidate list.

[0011] In a fourth aspect, a video processing device is provided, characterized in that it includes an encoding or decoding unit and an updating unit; the encoding or decoding unit is used to: use the historical motion information candidate list to encode or decode at least one second image block in the second area of ​​the current frame; the updating unit is used to: based on the motion information of at least part of the second image block in the second area after encoding or decoding, update the historical motion information candidate list to obtain the updated historical motion information candidate list; the encoding or decoding unit is further used to: use the updated historical motion information candidate list to encode or decode multiple first image blocks in the first area of ​​the current frame.

[0012] In a fifth aspect, a computer system is provided, comprising: a memory for storing computer-executable instructions; and a processor for accessing the memory and executing the computer-executable instructions to perform the operations in the method of the first or second aspect above.

[0013] In a sixth aspect, a computer storage medium is provided, in which a program code is stored. The program code can be used to instruct the execution of the method of the first or second aspect above.

[0014] In a seventh aspect, a computer program product is provided, which includes a program code, and the program code can be used to instruct the execution of the method of the first or second aspect above.

[0015] In an embodiment of the present application, the motion information of the encoded or decoded second image block can be used to construct a historical motion information candidate list, and the constructed historical motion information candidate list can be used to encode or decode multiple first image blocks in the first area. The dependency of the multiple first image blocks can be overcome, so that the multiple first image blocks in the first area can remain independently encoded or decoded. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the following briefly introduces the drawings required for use in the embodiments or descriptions of the prior art. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0017] Figure 1 It is an architectural diagram of the technical solution according to the embodiment of the present application.

[0018] Figure 2 It is a schematic flow chart of a video processing method according to an embodiment of the present application.

[0019] Figure 3 It is a schematic flow chart of a video processing method according to an embodiment of the present application.

[0020] Figure 4 4 is a diagram of the structure of the MER according to an embodiment of the present application.

[0021] Figure 5 is a schematic diagram of a video processing method according to an embodiment of the present application.

[0022] Figure 6 It is a schematic diagram of HMVP update according to an embodiment of the present application.

[0023] Figure 7 is a schematic diagram of adjacent blocks of an image block according to an embodiment of the present application.

[0024] Figure 8 3 is a schematic diagram of spatial domain candidates for an image block according to an embodiment of the present application.

[0025] Figure 9It is a schematic block diagram of a video processing device according to an embodiment of the present application.

[0026] Figure 10 It is a schematic block diagram of a video processing device according to an embodiment of the present application.

[0027] Figure 11 It is a schematic block diagram of a computer system according to an embodiment of the present application. DETAILED DESCRIPTION

[0028] The following will describe the technical solutions in the embodiments of this application in conjunction with the drawings in the embodiments of this application. Obviously, the described embodiments are part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.

[0029] Unless otherwise specified, all technical and scientific terms used in the embodiments of the present application have the same meaning as those commonly understood by those skilled in the art in the art of the present application. The terms used in this application are only for the purpose of describing specific embodiments and are not intended to limit the scope of this application.

[0030] Figure 1 It is an architectural diagram of the technical solution of the embodiment of the present application.

[0031] like Figure 1 As shown, system 100 can receive data to be processed 102, process the data to be processed 102, and generate processed data 108. For example, system 100 can receive data to be encoded and encode the data to generate encoded data, or system 100 can receive data to be decoded and decode the data to generate decoded data. In some embodiments, the components in system 100 can be implemented by one or more processors, which can be a processor in a computing device or a processor in a mobile device (e.g., a drone). The processor can be any type of processor, and the embodiments of the present invention are not limited in this regard. In some possible designs, the processor can include an encoder, a decoder, or a codec. System 100 can also include one or more memories. The memories can be used to store instructions and data, such as computer-executable instructions for implementing the technical solutions of the embodiments of the present invention, data to be processed 102, processed data 108, etc. The memories can be any type of memory, and the embodiments of the present invention are not limited in this regard.

[0032] 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 sensory data from a sensor, which may be a visual sensor (e.g., a camera, an infrared sensor), a microphone, a near-field sensor (e.g., an ultrasonic sensor, a radar), a position sensor, a temperature sensor, a touch sensor, etc. In some cases, the data to be encoded may include information from a user, such as biometric information, which may include facial features, a fingerprint scan, a retinal scan, a voice recording, a DNA sample, etc.

[0033] When encoding each image, the image may initially be divided into a plurality of image blocks. In some embodiments, the image may be divided into a plurality of image blocks, which are referred to as macroblocks, largest coding units (LCUs), or coding tree units (CTUs) in some coding standards. The image blocks may or may not have any overlapping portions. The image may be divided into any number of image blocks. For example, the image may be divided into an array of m×n image blocks. The image blocks may have a rectangular shape, a square shape, a circular shape, or any other shape. The image blocks may have any size, such as p×q pixels. In modern video coding standards, images of different resolutions can be encoded by first dividing the image into a plurality of small blocks. For H.264, an image block is called a macroblock, which may be 16×16 pixels in size, and for HEVC, an image block is called a largest coding unit, which may be 64×64 in size. Each image block may have the same size and / or shape. Alternatively, two or more image blocks may have different sizes and / or shapes. In some embodiments, an image block may not be a macroblock or a maximum coding unit, but may include a portion of a macroblock or a maximum coding unit, or include at least two complete macroblocks (or maximum coding units), or include at least one complete macroblock (or maximum coding unit) and a portion of a macroblock (or maximum coding unit), or include at least two complete macroblocks (or maximum coding units) and portions of some macroblocks (or maximum coding units). In this way, after the image is divided into multiple image blocks, these image blocks in the image data can be encoded separately.

[0034] During the encoding process, images can be predicted to remove redundancy. Different images in a video can use different prediction methods. Based on the prediction method used for an image, the image can be divided into intra-frame prediction images and inter-frame prediction images, where inter-frame prediction images include forward prediction images and bidirectional prediction images. An I image is an intra-frame prediction image, also known as a key frame; a P image is a forward prediction image, which uses a previously encoded P image or I image as a reference image; and a B image is a bidirectional prediction image, which uses the previous and next images as reference images. One implementation method is for the encoder to encode multiple images and generate a group of pictures (GOP) segment by segment. The GOP is composed of an I image, multiple B images (or bidirectional prediction images) and / or P images (or forward prediction images). When playing, the decoder reads the GOP segment by segment, decodes it, reads the screen, and then renders it for display.

[0035] When performing inter-frame prediction, for each image block, the most similar block in a reference frame (generally a reconstructed frame in the same time domain) is found as the prediction block for the current image block. The relative displacement between the current block and the prediction block is called a motion vector (MV).

[0036] The inter-frame prediction modes in the video coding standard may include AMVP mode and Merge mode.

[0037] For the AMVP mode, the MVP can be determined first. In order to obtain the MVP, an MVP candidate list (AMVP candidate list) can be constructed first. The MVP candidate list can include at least one candidate MVP, and each candidate MVP can correspond to an index. After obtaining the MVP, the starting point of the motion estimation can be determined according to the MVP. A motion search is performed near the starting point. After the search is completed, the optimal MV is obtained. 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. The MV is subtracted from the MVP to obtain the motion vector difference (MVD). The index corresponding to the MVP and the MVD are transmitted to the decoding end through the code stream.

[0038] For Merge mode, the MVP can be determined first and then directly used as the MV. To obtain the MVP, a merge candidate list of MVPs can be constructed. The merge candidate list can include at least one MVP candidate, and each MVP candidate can correspond to an index. After selecting an MVP from the MVP candidate list, the encoder can write the MVP index into the bitstream. The decoder can then find the MVP corresponding to the index in the MVP candidate list according to the index to decode the image block.

[0039] In order to understand the Merge mode more clearly, the following describes the operation process of encoding using the Merge mode.

[0040] Step 1: Get the MVP candidate list;

[0041] Step 2: Select the best MVP from the MVP candidate list and get the index of the MVP in the MVP candidate list;

[0042] Step 3: Use the MVP as the MV of the current block;

[0043] Step 4: Determine the position of the reference block in the reference image according to the MV;

[0044] Step 5: Subtract the current block from the reference block to obtain the residual block;

[0045] Step 6: Pass the residual data and MVP index to the decoder.

[0046] It should be understood that the following process is only one specific implementation of the Merge mode, and the Merge mode may also have other implementations.

[0047] For example, Skip mode is a special case of Merge mode. After obtaining the MV according to Merge mode, if the encoder determines that the current block is essentially the same as the reference block, then no residual data needs to be transmitted. Instead, only the index of the MV and, further, a flag indicating that the current block can be directly derived from the reference block are required.

[0048] That is, the Merge mode is characterized by: MV=MVP (MVD=0); and the Skip mode has an additional characteristic, namely: the reconstructed value rec=the predicted value pred (the residual value resi=0).

[0049] When constructing the MVP candidate list (hereinafter also referred to as the candidate list or motion information candidate list) in the above-mentioned AMVP mode and / or Merge mode, a candidate HMVP can be selected from the HMVP candidate list as the candidate MVP in the MVP candidate list. There are multiple ways to update the HMVP candidate list. Two updating schemes for the HMVP candidate list are described below.

[0050] Regarding the HMVP mentioned above, when encoding of a coded block is completed, the motion information of the coded block can be used to update the HMVP list of the next block to be encoded, which will make the dependency between image blocks stronger.

[0051] In hardware implementation, in order to increase throughput, the encoding (eg, motion estimation) process of adjacent blocks can be performed in parallel. However, when constructing the HMVP candidate list, this dependency will make parallel processing impossible.

[0052] To this end, the following solution provided in the embodiment of the present application can overcome the dependency between image blocks.

[0053] It should be understood that the solution of the embodiments of the present application may not be limited to the Merge mode or AMVP mode mentioned above, but can also be used in other coding modes, that is, it can be applicable to any coding mode that uses a historical motion information candidate list (for example, an HMVP candidate list) in the coding and decoding process.

[0054] The solution of the embodiment of the present application can overcome the dependencies between image blocks, and thus can be used in scenarios where image blocks are processed in parallel. However, it should be understood that the embodiment of the present application can also be used in scenarios where non-parallel processing is performed, that is, overcoming the dependencies between image blocks can be used for other purposes.

[0055] Figure 2 2 is a schematic flow chart of a video processing method 200 according to an embodiment of the present application. The method 200 includes at least part of the following content. The following method 200 can be used on an encoding end or a decoding end.

[0056] At 210, a historical motion information candidate list is obtained, where the historical motion information candidate list is used to encode or decode each first image block in a plurality of first image blocks included in a first region in a current frame, wherein the historical motion information candidate list is obtained based on motion information of a second image block, where the second image block is an already encoded or decoded image block other than the image block included in the first region.

[0057] In 220 , each of the first image blocks is encoded or decoded according to the historical motion information candidate list.

[0058] Figure 3 3 is a schematic flow chart of a video processing method 300 according to an embodiment of the present application. The method 300 includes at least part of the following content. The following method 300 can be used on the encoding end or the decoding end.

[0059] In 310, at least one second image block in a second region of the current frame is encoded or decoded using the historical motion information candidate list;

[0060] In 320, based on the motion information of at least part of the second image blocks in the second region that has been encoded or decoded, the historical motion information candidate list is updated to obtain an updated historical motion information candidate list;

[0061] In 330 , the updated historical motion information candidate list is used to encode or decode a plurality of first image blocks in the first region of the current frame.

[0062] In the above method 200 or 300, the motion information of the encoded or decoded second image block can be used to construct a historical motion information candidate list, and the constructed historical motion information candidate list can be used to encode or decode multiple first image blocks in the first area. The mutual dependence between the multiple first image blocks can be overcome, so that the multiple first image blocks in the first area can be independently encoded or decoded.

[0063] In order to more clearly understand the present application, the specific implementation of the embodiment of the present application will be described below. It should be understood that the following description can be applied to the above methods 200 and 300.

[0064] In the embodiments of the present application, the historical motion information candidate list may include at least one candidate historical motion information, which may be selected to construct a motion information list, so that the encoder or decoder can select the motion information of the current image block from the motion information list. The candidate historical motion information may be obtained based on the motion information of an already encoded or decoded image block.

[0065] Optionally, the motion information in the embodiment of the present application may represent a combination of one or more of a motion vector, a reference frame index value, a motion vector difference, and a motion vector prediction value.

[0066] The historical motion information candidate list in the embodiment of the present application may be an HMVP candidate list, and the HMVP candidate list may optionally include at least one MVP candidate.

[0067] Option 1

[0068] In some examples, the region (e.g., the first region or the second region) in embodiments of the present application may be a motion estimation region (MER). The MER may be a rectangular region or a non-rectangular region, for example, a non-rectangular region composed of multiple squares and / or rectangles.

[0069] The encoding process of the image blocks within each region can be processed in parallel.

[0070] The sizes of the various regions in the embodiments of the present application may be the same or different, and the regions may be square, rectangular, diamond, triangle, trapezoidal, or circular.

[0071] In the embodiment of the present application, a region may belong to only one CTU, that is, a region may not span CTUs, and a CTU may include one or more regions. Of course, a region may also include one or more CTUs, or include a non-integer number of CTUs, that is, a CTU may belong to multiple regions.

[0072] In the embodiment of the present application, each region may include one or more image blocks. The sizes of the image blocks may be the same or different. The number of image blocks included in each region may be the same or different. The pixels in each region may not overlap.

[0073] The image block in the embodiment of the present application may be a coding unit (CU), or of course, a prediction unit (PU), which is not specifically limited in the embodiment of the present application.

[0074] For example, Figure 4 The four MERs shown are MER1, MER2, MER3, and MER4, where the sizes of the four MERs may be the same, and the number of image blocks included in each MER may be different. MER1 includes four CUs, namely CU0, CU1, CU2, and CU3; MER2 includes five CUs, namely CU4, CU5, CU6, CU7, and CU8; MER3 includes CU9; and MER4 includes CU10, CU11, and CU12. The sizes of the CUs may not be exactly the same.

[0075] Optionally, in the embodiment of the present application, Figure 5As shown, the motion information of the encoded or decoded image blocks in the previous region (the second region) can be used to update the historical motion information candidate list, and the updated historical motion information candidate list can be used to encode or decode the image blocks in the current region (the first region). Furthermore, the motion information of the encoded or decoded image blocks in the current region can be used to update the historical motion information candidate list again for encoding or decoding the image blocks in the next region.

[0076] Optionally, in an embodiment of the present application, for the first area, when encoding or decoding different first image blocks, the candidate historical motion information included in the historical motion information candidate list used and the order of the candidate historical motion information in the historical motion information candidate list are the same.

[0077] Taking the MER region as an example, after all image blocks in the current MER are encoded or decoded, in order to ensure that the historical motion information candidate list used for encoding or decoding the CU in the next MER is different from the historical motion information candidate list used in the current MER, the motion information of the image blocks in the current MER can be used to update the historical motion information candidate list. When encoding or decoding the CU in the next MER, the updated historical motion information candidate list is used to construct the motion information list.

[0078] For example, Figure 4 As shown, after encoding or decoding all image blocks (CU0-CU3) in MER1, the motion information of CU0-CU3 can be used to update the historical motion information candidate list before encoding or decoding image blocks in MER2. After the historical motion information candidate list is updated, the historical motion information candidate list used in the encoding or decoding process of all image blocks (CU4-CU8) in MER2 is no longer updated, and the same historical motion information candidate list is used. After encoding or decoding all image blocks (CU9) in MER3, the motion information of CU9 needs to be used to update the historical motion information candidate list before encoding or decoding image blocks in MER4. After the historical motion information candidate list is updated, the historical motion information candidate list used in the encoding or decoding process of all image blocks (CU10-CU12) in MER4 is no longer updated, and the same historical motion information candidate list is used.

[0079] Optionally, in an embodiment of the present application, when constructing a motion information list using the historical motion information candidate list, a first-in-first-out principle may be adopted, that is, the historical motion information that is added first is selected first for constructing the motion information list.

[0080] Specifically, the first motion information (obtained based on the motion information of the encoded or decoded image block of the second region) can be added to the header of the historical motion information candidate list, where the header here refers to the position in the historical motion information candidate list that is first selected for constructing the motion information list, so that the historical motion information that is first added to the historical motion information candidate list can be preferentially selected for constructing the motion information list.

[0081] Optionally, in an embodiment of the present application, the number of candidate historical motion information included in the historical motion information candidate list can be preset, that is, the size of the historical motion information candidate list is fixed. For example, the number of candidate historical motion information included in the historical motion information candidate list can be fixed to 6.

[0082] In this way, adding the motion information of the encoded or decoded image block to the historical motion information candidate list will increase the number of candidate historical motion information included in the historical motion information candidate list, so that the same number of candidate historical motion information can be deleted from the historical motion information candidate list at the same time.

[0083] In which, when deleting candidate historical motion information from the historical motion information candidate list, the deleted candidate historical motion information may be the candidate historical motion information at the end of the historical motion information candidate list, wherein the candidate historical motion information at the end of the table refers to the candidate historical motion information that is finally selected to construct the motion information list.

[0084] Alternatively, other methods may be used to delete candidate historical motion information from the historical motion information candidate list.

[0085] For example, if the candidate historical motion information added to the historical motion information candidate list is the same as the candidate historical motion information already in the historical motion information candidate list, the same candidate historical motion information can be deleted. This can also be understood as moving the position of the same candidate historical motion information in the historical motion information candidate list to the head of the historical motion information candidate list.

[0086] For example, Figure 6 As shown, the HMVP candidate list before the update includes L candidate historical motion information, and the candidate historical motion information that needs to be added is HMVP2. After checking the HMVP candidate list, it is found that the same HMVP2 exists in the HMVP candidate list before the update. At this time, the HMVP2 can be moved to the head of the HMVP candidate list, and the positions of other candidate historical motion information are adjusted accordingly. Or, Figure 6 It can also be understood as adding HMVP2 to the HMVP candidate list before updating, and deleting HMVP2 from the HMVP candidate list before updating.

[0087] It should be understood that the above-mentioned operations of deleting the candidate historical motion information at the end of the table and deleting the candidate historical motion information that is the same as the added candidate historical motion information may exist at the same time.

[0088] For example, there are two candidate historical motion information that need to be added, one candidate historical motion information is the same as a candidate historical motion information in the list before the update, and the other candidate historical motion information does not exist in the list before the update. At this time, the same candidate historical motion information can be deleted from the list, and the candidate historical motion information at the end of the table can be deleted, so that the number of added candidate historical motion information is the same as the number of deleted candidate historical motion information.

[0089] Optionally, in an embodiment of the present application, during each update of the historical motion information candidate list, the number of candidate historical motion information added to the historical motion information candidate list and / or the number of candidate historical motion information deleted may be less than a preset value, which may be less than or equal to the number of candidate historical motion information allowed to be included in the historical motion information candidate list.

[0090] Optionally, in an embodiment of the present application, the motion information of all encoded or decoded image blocks in the second area can be used to update the historical motion information candidate list, or the motion information of part of the encoded or decoded image blocks can be used to update the historical motion information candidate list.

[0091] Optionally, in an embodiment of the present application, the second image block used to update the historical motion information candidate list may be the last encoded or decoded image block in the second region, and / or include an image block at a specified position in the second region.

[0092] The image blocks at the specified positions in the second area include image blocks located at at least one of the following positions:

[0093] The upper left corner of the second area, the upper right corner of the second area, the lower left corner of the second area, the lower right corner of the second area, and the center point of the second area.

[0094] Optionally, in the embodiment of the present application, the second image blocks in the second area that can be used to update the historical motion information candidate list can be selected according to the position coordinates and / or encoding order of each second image block.

[0095] The priority of the image blocks on the right side of the second region is higher than the priority of the image blocks on the left side of the second region, and / or the priority of the image blocks on the lower side of the second region is higher than the priority of the image blocks on the upper side of the second region. The lower side and the side mentioned here can be relative positions, and do not necessarily mean directly above or directly below. Alternatively, the priority of the motion information of the image blocks encoded earlier is higher than the priority of the image blocks encoded later.

[0096] For example, Figure 4 As shown, taking MER2 as the current region (ie, the first region), the priorities of CU1 and CU3 of MER1 are higher than those of CU0 and CU2, and the priority of CU3 is higher than that of CU1.

[0097] It should be understood that in the embodiment of the present application, the priority of each second image block in the second area may be determined not only based on the position coordinates and / or encoding order of the second image block, but also based on other factors, and the embodiment of the present application does not make specific limitations on this.

[0098] Optionally, in one implementation of the embodiment of the present application, an encoded or decoded image block can be selected from the second area according to the amount of historical motion information that needs to be updated each time, and the motion information of the selected encoded or decoded image block is used to update the historical motion information candidate list, wherein the amount of historical motion information that needs to be updated can be equal to the number of selected encoded or decoded image blocks.

[0099] For example, if two candidate historical motion information need to be updated in the historical motion information candidate list, two encoded or decoded image blocks can be selected from the second area, and the motion information of the two selected encoded or decoded image blocks can be added to the historical motion information candidate list, and the two candidate historical motion information can be deleted.

[0100] Optionally, in another implementation of the embodiment of the present application, the number of selected coded or decoded image blocks may be greater than the number of historical motion information items that need to be updated. In this case, weighted processing may be performed on the motion information of all or part of the selected coded or decoded image blocks so that the number of available historical motion information items is equal to the number of candidate historical motion information items that need to be updated.

[0101] For example, the number of historical motion information that needs to be updated in the historical motion information candidate list is 1, and the number of selected encoded or decoded image blocks is 3. Then, the motion information of the 3 encoded or decoded image blocks can be weighted to obtain 1 candidate historical motion information, and the 1 candidate historical motion information is added to the historical motion information candidate list, and 1 candidate historical motion information is deleted from the historical motion information candidate list.

[0102] For example, if the number of historical motion information that needs to be updated in the historical motion information candidate list is 2, and the number of selected encoded or decoded image blocks is 3, the motion information of 2 of the encoded or decoded image blocks can be weighted to obtain 1 candidate historical motion information, and the weighted candidate historical motion information and the unprocessed candidate historical motion information are added to the historical motion information candidate list, and 2 candidate historical motion information are deleted from the historical motion information candidate list.

[0103] When weighting the motion information of multiple encoded or decoded image blocks, averaging may be performed or not.

[0104] The weight of each piece of motion information may be determined according to the positional relationship between each encoded or decoded image block and the first region and / or the encoding or decoding order of each encoded or decoded image block.

[0105] For example, the priority of motion information of an image block belonging to the second area and located on the left side of the first area is higher than the priority of motion information of image blocks at the upper left and lower left.

[0106] For example, the priority of motion information of an image block coded earlier is higher than that of an image block coded later.

[0107] Optionally, in an embodiment of the present application, when there are multiple motion information that need to be added to the historical motion information candidate list, the multiple motion information may have priorities, and the motion information with higher priority is added to a front position of the header, and the motion information with lower priority is added to a back position of the header.

[0108] The priority of the motion information of the encoded or decoded image block may be determined according to the positional relationship between the encoded or decoded image block and the current region.

[0109] For example, the priority of motion information of an image block located on the left side of the current region is higher than the priority of motion information of image blocks located on the upper left and lower left sides.

[0110] Optionally, in an embodiment of the present application, the image block in the second region that can be used to update the historical motion information candidate list can be an image block in an affine motion compensation mode (affine mode). The affine mode optionally describes the affine motion (irregular motion such as enlargement / reduction, rotation, etc.) field of the entire image block based on the motion information of the control points.

[0111] Optionally, in an embodiment of the present application, one or more second regions may be selected to update the historical motion information candidate list, wherein when selecting a second region to update the historical motion information candidate list, the second region may be the previous encoded or decoded region of the first region.

[0112] Optionally, in an embodiment of the present application, the second region and the first region are arranged along a row direction of the image, or along a column direction of the image.

[0113] That is, when updating the historical motion information candidate list used by the current region, the region used needs to have the same row arrangement or the same column arrangement as the current region.

[0114] For example, Figure 4 As shown, MER1 can be used to update the HMVP candidate list for encoding or decoding of MER2, and MER3 can be used to update the HMVP candidate list for encoding or decoding of MER4. However, MER2 cannot be used to update the HMVP candidate list for encoding or decoding of MER3.

[0115] Or, as Figure 4 As shown, MER1 can be used to update the HMVP candidate list for encoding or decoding of MER3, and MER2 can be used to update the HMVP candidate list for encoding or decoding of MER4. However, MER3 cannot be used to update the HMVP candidate list for encoding or decoding of MER2.

[0116] Optionally, in an embodiment of the present application, when the second region is the earliest encoded or decoded region arranged in the row direction or the column direction of the image, the HMVP candidate list used when encoding or decoding the second region is empty.

[0117] Specifically, the encoder may clear the historical motion information candidate list each time it finishes encoding a row (or column). When encoding the next row (or column), the historical motion information candidate list is empty.

[0118] The rows (or columns) mentioned here may include multiple regions. After encoding multiple regions of a row (column), multiple regions of the next row (column) may be encoded, wherein the ranges of the row (or column) coordinates of each row (or column) are the same, and the ranges of the column (or row) coordinates are different.

[0119] The rows or columns mentioned above may be CTU rows or columns, each CTU row or CTU column includes at least one CTU, and each CTU includes at least one region.

[0120] At this time, when one CTU row or column is encoded, the HMVP list can be cleared and then the next CTU row or column can be encoded.

[0121] For example, Figure 4 As shown in the figure, when encoding the CU in MER1, if MER1 is the first MER in the current CTU row, the historical motion information candidate list used by all image blocks in MER1 is empty; if MER1 is not the first MER in the current CTU row, the historical motion information candidate list used by all image blocks in MER1 is the historical motion information candidate list updated according to the motion information of the image blocks in the previous MER.

[0122] It should be understood that the embodiments of the present application are not limited to the above description. For example, the historical motion information candidate list is empty only when the first area of ​​the current frame is encoded or decoded. The historical motion information candidate lists of other areas can be updated based on the motion information of the image block of the previous area.

[0123] For example, Figure 4 As shown, when encoding the CU in MER1, if MER1 is the first MER in the current frame, the historical motion information candidate list used by all image blocks in MER1 is empty; if MER1 is not the first MER in the current frame, the historical motion information candidate list used by all image blocks in MER1 is the historical motion information candidate list updated according to the motion information of the image blocks in the previous MER.

[0124] Optionally, in an embodiment of the present application, when updating the historical motion information candidate list, the historical motion information selected for updating can be compared (pruning) with the selectable candidate motion information in other higher priority lists (that is, compared with the historical motion information candidate list, the candidate motion information in this list is preferentially used to construct the motion information list).

[0125] If the motion information list has been constructed using other lists with higher priorities, the historical motion information selected for updating may be compared with the candidate motion information already in the motion information list.

[0126] If it is found that candidate motion information in other lists with higher priorities (or candidate motion information already in the motion information list) is different from the historical motion information selected for updating, the historical motion information may be added to the historical motion information candidate list.

[0127] If they are the same, the historical motion information may not be added to the historical motion information candidate list, and new historical motion information may be selected and added to the historical motion information candidate list.

[0128] For example, motion information of image blocks with lower priority in the second region is selected as historical motion information and added to the historical motion information candidate list. Alternatively, the historical motion information candidate list may not be updated, or a smaller number of candidate historical motion information may be updated.

[0129] In order to reduce the number of comparisons to lower software and hardware resource overhead, the number of comparisons may be limited.

[0130] The maximum number of comparisons can be determined according to the following parameters: the number of candidate motion information in other higher priority lists (or candidate motion information already in the motion information list), and the number of candidate historical motion information included in the historical motion information candidate list.

[0131] The specific limitation of the maximum value L can be, for example, as follows:

[0132] L=(N<=4)? M:(8-N)

[0133] Wherein, L represents the number of comparisons, N represents the number of candidate motion information in other higher priority lists (or, candidate motion information already in the motion information list), and M represents the number of candidate historical motion information in the historical motion information candidate list.

[0134] The meaning of the above formula can be understood as follows: if N is less than or equal to 4, the maximum number of comparisons is equal to M; otherwise, the maximum number of comparisons is 8-N.

[0135] Optionally, in an embodiment of the present application, the above-mentioned historical motion information candidate list may be stored in a storage space. Optionally, in this case, updating the historical motion information candidate list using motion information of at least one second image block included in the second region of the current frame is performed after encoding or decoding of the second region is completed.

[0136] Specifically, the above-mentioned historical motion information candidate list is stored in a storage space, which can be understood as the number of historical motion information candidate lists can be 1. At this time, after the encoding or decoding of the previous area is completed using the historical motion information candidate list, the historical motion information candidate list is updated using the motion information of the corresponding image block, and the image block of the current area is encoded or decoded using the updated historical motion information candidate list. After the encoding or decoding of the image block of the current area is completed, the historical motion information candidate list is updated again, and the updated historical motion information candidate list can be used for encoding or decoding of the next area.

[0137] Optionally, in an embodiment of the present application, the above-mentioned historical motion information candidate list may also be stored in a first storage space and a second storage space other than the first storage space. In this case, the historical motion information candidate list stored in one of the storage spaces can be used to encode or decode image blocks in the second region. Moreover, during the encoding or decoding of the second region, the historical motion information candidate list stored in the other storage space can be updated using the encoded or decoded second image blocks in the second region, thereby achieving synchronization between the encoding or decoding process and the historical motion information candidate list.

[0138] For ease of understanding, two implementations are provided below to illustrate how to use the historical motion information candidate list when the historical motion information candidate list is stored in the first storage space and the second storage space respectively.

[0139] Implementation 1

[0140] The historical motion information candidate list is stored in a first storage space and a second storage space respectively, and the second area is encoded or decoded using the historical motion information candidate list in the second storage space; during the encoding process or decoding process of the second area, the historical motion information candidate list in the first storage space is updated using the motion information of at least one second image block included in the second area; and each first image block is encoded or decoded respectively according to the updated historical motion information candidate list in the first storage space.

[0141] Furthermore, after encoding or decoding of the second region is completed, the updated historical motion information candidate list in the first storage space is used to update the historical motion information candidate list in the second storage space; and the updated historical motion information candidate list in the second storage space is used to encode or decode at least one third image block in the third region. The historical motion information candidate list in the second storage space is updated so that the updated historical motion information candidate list in the second storage space is identical to the updated historical motion information candidate list in the first storage space.

[0142] Specifically, when encoding or decoding the first region, region 1 (the first region of the current frame or the current CTU row), storage space A and storage space B respectively store the same historical motion information candidate list (the list can be empty), and region 1 can be encoded or decoded using the historical motion information candidate list in storage space A. Since the encoding or decoding of the image blocks in region 1 is completed in a certain order, the motion information of the image blocks that have been encoded or decoded can be used to update the historical motion information candidate list in storage space B. After the encoding or decoding process of region 1 is completed, the historical motion information candidate list in storage space B may have been updated. At this time, the updated historical motion information candidate list in storage space B can be used to encode or decode the second region, region 2, and at the same time, the updated historical motion information candidate list in storage space B can be used. The historical motion information candidate list in storage space A is updated; after the historical motion information candidate list in storage space A is updated based on the updated historical motion information candidate list in storage space B, the historical motion information candidate list in storage space A can be updated again using the encoded or decoded image blocks of region 2 during the encoding or decoding process of region 2; after the encoding or decoding process of region 2 is completed, the historical motion information candidate list in storage space A may have been updated again, and the image blocks in the third region, region 3, can be encoded or decoded using the updated historical motion information candidate list in storage space A, and the historical motion information candidate list in storage space B can be updated again using the updated historical motion information candidate list in storage space A. Subsequent operations can refer to the previous description and so on.

[0143] In this implementation, the historical motion information candidate list is stored in two storage spaces, and the historical motion information candidate list in each storage space is used alternately for the encoding or decoding of the region. During the encoding or decoding process of the region, the currently unused historical motion information candidate list can be updated (including updating the used historical motion information candidate list to the currently unused historical motion information candidate list, and updating the motion information of the currently encoded or decoded image block to the currently unused historical motion information candidate list), so that the updating of the historical motion information candidate list and the encoding or decoding of the image block can be carried out synchronously, thereby improving the encoding or decoding efficiency.

[0144] Implementation 2

[0145] The historical motion information candidate list is stored in a first storage space and a second storage space, respectively. The second region is encoded or decoded using the historical motion information candidate list in the second storage space. During encoding or decoding of the second region, the historical motion information candidate list in the first storage space is updated using motion information of at least one second image block included in the second region. After encoding or decoding of the second region is completed, the historical motion information candidate list in the second storage space is updated using the updated historical motion information candidate list in the first storage space. Each of the first image blocks is encoded or decoded based on the updated historical motion information candidate list in the second storage space. Furthermore, during encoding or decoding of the first region, the historical motion information candidate list in the first storage space is updated again using motion information of at least one first image block included in the first region. After encoding or decoding of the first region is completed, the historical motion information candidate list in the second storage space is updated again using the updated historical motion information candidate list in the first storage space. At least one third image block in the third region is encoded or decoded based on the updated historical motion information candidate list in the second storage space. The historical motion information candidate list in the second storage space is updated so that the updated historical motion information candidate list in the second storage space is the same as the updated historical motion information candidate list in the first storage space.

[0146] Specifically, when encoding or decoding the first area, area 1 (the first area of ​​the current frame or the current CTU row), storage space A and storage space B respectively store the same historical motion information candidate list (the list can be empty), and the historical motion information candidate list in storage space A can be used to encode or decode the area 1. Since the encoding or decoding of the image blocks in area 1 is completed in a certain order, the motion information of the image blocks that have been encoded or decoded can be used to update the historical motion information candidate list in storage space B. After the encoding or decoding process of area 1 is completed, the historical motion information candidate list in storage space B may have been updated. At this time, the historical motion information candidate list in storage space B can be used to update the historical motion information in storage space A. The candidate list is updated to obtain an updated historical motion information candidate list of storage space A; and the updated historical motion information candidate list of storage space A is used to encode or decode the second area, area 2, and in the process of encoding or decoding area 2, the historical motion information candidate list in storage space B is updated again. After the encoding or decoding process of area 2 is completed, the historical motion information candidate list in storage space B may have been updated again. At this time, the historical motion information candidate list in storage space B can be used to update the historical motion information candidate list in storage space A again. The updated historical motion information candidate list in storage space A can encode or decode area 3, and subsequent operations can be deduced according to the above description.

[0147] In this implementation, the historical motion information candidate list is stored in two storage spaces, wherein the historical motion information candidate list in one storage space is always used for encoding or decoding of the region. During the encoding or decoding process of the region, the historical motion information candidate list in the other storage space is updated. After the encoding or decoding of the region, the historical motion information candidate list in the other storage space is updated using the updated historical motion information candidate list. Since the time taken to update another historical motion information candidate list using an updated historical motion information candidate list is very likely to be less than the time taken to update the historical motion information candidate list using the motion information of the image block, in this implementation, after the region encoding or decoding is completed, only one updated historical motion information candidate list needs to be used to update another historical motion information candidate list. The time required for the update here is shorter, thereby improving the encoding or decoding efficiency.

[0148] The above describes how to update the historical motion information candidate list. The following describes how to use the updated historical motion information candidate list for encoding or decoding.

[0149] Specifically, the updated historical motion information candidate list can be used to generate a motion information list for each first image block in the first region; and the motion information list generated for each first image block can be used to select motion information for each first image block.

[0150] Among them, for the encoding end, when selecting motion information from the motion information list, the first image block to be encoded can be matched with the image blocks corresponding to each motion information in the motion information list, and the motion information corresponding to the image block with the smallest matching cost is selected as the selected motion information, and the index of the motion information is written into the code stream.

[0151] The decoding end can construct a motion information list in the same way, and read the index of the motion information from the bitstream, and directly select the motion information of the current image block from the motion information list according to the index, and further perform decoding based on the motion information.

[0152] The following describes how to construct a motion information list by taking the Merge mode and the motion information list as the MVP candidate list as an example.

[0153] The composition of the MVP candidate list may include at least part of the following (1) to (5).

[0154] Specifically, the spatial domain candidate MV in (1) can be used to construct an MVP candidate list. If the number of candidate MVPs included in the MVP candidate list constructed at this time does not reach the preset number, the time domain candidate MV in (2) can be added to the MVP candidate list including the spatial domain candidate MV. If the number of candidate MVPs included in the MVP candidate list constructed at this time does not reach the preset number, the paired average candidate MV in (3) can be added to the MVP candidate list including the spatial domain candidate MV and the time domain candidate MV. If the number of candidate MVPs included in the MVP candidate list constructed at this time does not reach the preset number, the HMVP in (4) can be added to the MVP candidate list including the spatial domain candidate MV, the time domain candidate MV and the paired average candidate MV. If the number of candidate MVPs included in the MVP candidate list constructed at this time does not reach the preset number, the zero vector in (5) can be added to the MVP candidate list including the spatial domain candidate MV, the time domain candidate MV, the paired average candidate MV and the HMVP until the number of candidate MVPs in the MVP candidate list reaches the preset value.

[0155] When part of the candidates of the following items are added to the MVP candidate list, the number of MVP candidates included in the list has reached a preset number, and at this time, the remaining elements of the item can be stopped from being added to the MVP candidate list.

[0156] The following sections describe the components that make up the MVP candidate list.

[0157] (1) Airspace candidate MV

[0158] Specifically, the MV of an image block spatially adjacent to the current image block may be used as a candidate MVP that can be added to the MVP candidate list.

[0159] For example, Figure 7 As shown, assuming that the image block in the lower left corner of the current image block is A0, the image block on the left is A1, the image block in the upper left corner is B2, the image block above is B1, and the upper right corner is B0, then the order of candidate MVPs from high to low priority is A1->B1->B0->A0->B2.

[0160] (2) Time domain candidate MV

[0161] Specifically, the MV of an image block adjacent to the current image block in the time domain may be used as a candidate MVP that can be added to the MVP candidate list.

[0162] Different from the spatial domain candidate MV, the temporal domain candidate MV may not directly use the motion information of the candidate block, and may make corresponding scaling adjustments based on the temporal position relationship between the current frame and the reference frame.

[0163] (3) Pairwise average candidate MV

[0164] Based on the candidate MVPs that currently constitute the MVP candidate list, the pairwise average candidate MV is derived by averaging the predefined pairs.

[0165] The predefined pairing method and order can be: (0,1), (0,2), (1,2), (0,3), (1,3), (2,3), where 0, 1, 2 and 3 represent the 1st, 2nd, 3rd and 4th candidate MVPs in the HMVP candidate list respectively, and each bracket represents the averaging of the MVP candidates therein.

[0166] (4)HMVP

[0167] The MV of the coded image block may be used to construct an HMVP candidate list, and the candidate HMVPs in the HMVP candidate list may be selected as candidate MVPs added to the MVP candidate list.

[0168] (5) Zero vector

[0169] When adding each item of (1)-(4) to the MVP candidate list, if the number of MVP candidates in the MVP candidate list still does not reach the predetermined number, a zero vector may be used for padding until the number of MVP candidates in the MVP candidate list reaches a preset value.

[0170] It should be understood that the motion information list introduced above is merely a specific implementation method of the embodiment of the present application and should not cause any special limitation to the embodiment of the present application.

[0171] Optionally, in the embodiment of the present application, when constructing the spatial motion information candidate list, it is also possible to avoid using the motion information of the image blocks in the same region to construct it. Specifically, the image block corresponding to the motion information in the spatial motion information candidate list corresponding to each first image block does not belong to the first region.

[0172] For example, Figure 8 As shown in the figure, for the first MER, all possible spatial candidate motion information of image block CU0 (motion information of the image block where the gray filling block is located) is available, because the image blocks corresponding to these spatial candidate motion information are all outside the MER where CU0 is located. For CU5 of the second MER, the spatial candidate motion information should originally include the motion information of the image blocks corresponding to the three surrounding black filling blocks and the one white filling block. However, since the image block corresponding to the one white filling block has not been encoded, the image blocks corresponding to the three black filling blocks belong to the same MER as CU5. Therefore, the spatial candidate motion information in CU5 may not include the motion information of these blocks. In this case, the spatial candidate motion information list of CU5 can be empty, or the motion information of the image blocks of other MERs can be selected as candidates for the spatial candidate motion information list. For CU9, the spatial candidate motion information should originally include the motion information of the image blocks corresponding to the surrounding 2 gray filling blocks, 1 black filling block and 2 white filling blocks. However, since the image block corresponding to the white filling block has not yet been encoded, the image block corresponding to the 1 black filling block belongs to the same MER as CU9, so the spatial candidate motion information list of CU9 may include the motion information of the image blocks corresponding to the 2 gray filling blocks.

[0173] In an embodiment of the present application, the motion information of the encoded or decoded second image block can be used to construct a historical motion information candidate list, and the constructed historical motion information candidate list can be used to encode or decode multiple first image blocks in the first area. The dependency of the multiple first image blocks can be overcome, so that the multiple first image blocks in the first area can remain independently encoded or decoded.

[0174] Option 2

[0175] In some examples, a region (eg, a first region or a second region) in the embodiments of the present application may refer to an image block corresponding to a specific parent node. The specific parent node is explained below.

[0176] In some examples, after a frame of image is divided into multiple image blocks (for example, after being divided into multiple image blocks of a fixed size), each image block is further divided into different image blocks using a quadtree, a ternary tree, or a binary tree; the depth of division of each image block can be the same or different. The image blocks corresponding to the leaf nodes on the partition tree are also called prediction units (PUs) or coding units (CUs) / decoding units (DUs) in some video codec standards.

[0177] A specific parent node refers to the image blocks at all leaf nodes located at the specific parent node in the partition tree of the image blocks, which use the same motion information candidate list when obtaining their respective motion information; for example, the same merge candidate list (Share Merge List) is used. All leaf nodes under the specific parent node are encoded / decoded in parallel. In some examples, the size of the image block at the specific parent node is greater than or equal to X (X is a positive integer, such as 32) pixels, and the size of the image block corresponding to at least one leaf node in all the leaf nodes after the specific parent node is divided is less than or equal to or less than Y (Y is a positive integer less than or equal to X, such as 32) pixels. When constructing the shared candidate list, the candidate list is constructed with the image block at the specific parent node as the current block.

[0178] When constructing the motion information candidate list, a candidate HMVP is selected from the HMVP candidate list as a candidate in the motion information candidate list. All leaf nodes under a specific parent node use the same HMVP candidate list during prediction.

[0179] In one example, the HMVP candidate list has been set before the first leaf node under the specific parent node is encoded / decoded. The setting method is to back up the HMVP candidate list encoded / decoded to the current node to obtain a backup HMVP candidate list. That is, when encoding the leaf node under the specific parent node, there is an original HMVP candidate list and a backup HMVP candidate list, for a total of two HMVP candidate lists. When encoding / decoding the leaf node under the specific parent node, one of the HMVP candidate lists is used to determine the candidates in the motion information candidate list, but the HMVP candidate list in use is not updated; at the same time, the other HMVP candidate list is not used, but after encoding / decoding each leaf node under the specific parent node, the unused HMVP candidate list is updated according to the motion information of the leaf node.

[0180] In one example, when encoding / decoding the leaf nodes in a specific parent node, there is no need to back up an HMVP candidate list separately. In the process of predicting all the leaf nodes under a specific parent node, the HMVP candidate list shared by all the leaf nodes remains unchanged, and after all the leaf nodes in the specific parent node are encoded / decoded, the HMVP candidate list is updated. This can save the memory overhead brought by the two HMVP candidate lists, reduce the design complexity, and ensure the purpose of parallel encoding / decoding of all the leaf nodes under a specific parent node. Experimental results show that this approach has a negligible impact on performance, while also saving a certain amount of time complexity.

[0181] Optionally, the HMVP candidate list may be updated according to the motion information of the last leaf node that completes encoding / decoding or the motion information of the last N (N is a positive integer greater than 1) leaf nodes that complete encoding / decoding.

[0182] Optionally, the HMVP candidate list is updated based on the motion information of the leaf node under the specific parent node, the leaf node whose lower right corner pixel position coincides with the lower right corner pixel position of the specific parent node. In some examples, the leaf node whose lower right corner pixel position coincides with the lower right corner pixel position of the specific parent node is also the last leaf node under the specific parent node to complete encoding / decoding.

[0183] Optionally, the pixel coordinates of the upper left corner of the image block at the specific parent node are (x0, y0), the length is L0, and the width is W0. When updating the HMVP candidate list, the target leaf node is determined from all leaf nodes under the specific parent node, and the HMVP candidate list is updated according to the motion information of the target leaf node. The target leaf node refers to the pixel position of the upper left corner at (x1, y1), the length is L1, the width is W1, and x1+L1=x0+L0, y1+W1=y0+W0.

[0184] The two different interpretations of "region" in the video processing methods above correspond to Solution 1 and Solution 2, respectively. In some examples, the methods mentioned in Solution 1 and Solution 2 can be used in combination. For example, the specific parent node can be an image block in an MER.

[0185] Both Scheme 1 and Scheme 2 specify some examples of the update timing of the HMVP candidate list. In the case where a specific parent node can be an image block in a MER (for example, an image block in the first area or the second area), the HMVP candidate list can be updated only when the update timing conditions specified in Scheme 1 and Scheme 2 are met at the same time; or, the HMVP candidate list can be updated only when the update timing conditions specified in only one of the two schemes are met.

[0186] For another example, both Scheme 1 and Scheme 2 specify some examples of motion information of image blocks used to update the HMVP candidate list. In the case where a specific parent node can be an image block in a MER (for example, an image block in the first region or the second region), it may be necessary to simultaneously meet the conditions of the image block specified in Scheme 1 and Scheme 2 before the motion information of the image block is used to update the HMVP candidate list; or, it is only necessary to meet the conditions of the image block specified in one of the two schemes before the motion information of the image block can be used to update the HMVP candidate list.

[0187] Figure 9 FIG. 4 is a schematic block diagram of a video processing device 400 according to an embodiment of the present application. The device 400 includes an acquisition unit 410 and an encoding or decoding unit 420 .

[0188] Among them, the acquisition unit 410 is used to obtain a historical motion information candidate list, and the historical motion information candidate list is used to encode or decode each first image block of a plurality of first image blocks included in the first area in the current frame, wherein the historical motion information candidate list is obtained based on the motion information of the second image block, and the second image block is an encoded or decoded image block other than the image block included in the first area; the encoding or decoding unit 420 is used to encode or decode each of the first image blocks respectively according to the historical motion information candidate list.

[0189] Optionally, in this embodiment of the present application, the encoding or decoding unit 420 is further configured to:

[0190] The plurality of first image blocks are encoded or decoded in parallel according to the historical motion information candidate list.

[0191] Optionally, in an embodiment of the present application, when encoding or decoding different first image blocks, the candidate historical motion information included in the historical motion information candidate list used and the order of the candidate historical motion information in the historical motion information candidate list are the same.

[0192] Optionally, in the embodiment of the present application, the acquiring unit 410 is further configured to:

[0193] updating the historical motion information candidate list by using motion information of at least one second image block included in the second area of ​​the current frame, whereby the updated historical motion information candidate list is used to encode or decode the plurality of first image blocks;

[0194] Optionally, in an embodiment of the present application, the encoding or decoding process of the second region is earlier than that of the first region, and the image blocks of the second region are encoded or decoded using the historical motion information candidate list that has not been updated.

[0195] Optionally, in an embodiment of the present application, when the historical motion information candidate list is updated, the number of candidate historical motion information added to the historical motion information candidate list is less than a preset value, and / or the number of candidate historical motion information deleted from the historical motion information candidate list is less than a preset value.

[0196] Optionally, in the embodiment of the present application, the device 400 further includes a selection unit 430, configured to:

[0197] The at least one second image block is selected from the image blocks included in the second area based on the position coordinates of the image blocks in the second area.

[0198] Optionally, in this embodiment of the present application, in the process of selecting the at least one second image block from the image blocks included in the second area:

[0199] The priority of the image block on the right side of the second area is higher than the priority of the image block on the left side of the second area, and / or the priority of the image block on the bottom side of the second area is higher than the priority of the image block on the top side of the second area.

[0200] Optionally, in this embodiment of the present application, the at least one second image block includes the last encoded or decoded image block in the second area, and / or includes an image block at a specified position in the second area.

[0201] Optionally, in this embodiment of the present application, the image block at the specified position in the second area includes an image block located at at least one of the following positions:

[0202] The upper left corner of the second area, the upper right corner of the second area, the lower left corner of the second area, the lower right corner of the second area, and the center point of the second area.

[0203] Optionally, in the embodiment of the present application, the acquiring unit 410 is further configured to:

[0204] performing weighted processing on motion information of the plurality of second image blocks;

[0205] The historical motion information candidate list is updated using the weighted motion information.

[0206] Optionally, in an embodiment of the present application, the first area and the second area are arranged along a row direction of the image, or along a column direction of the image.

[0207] Optionally, in an embodiment of the present application, the first region and the second region belong to the same coding tree unit CTU row or CTU column, each CTU row or CTU column includes at least one CTU, and each CTU includes at least one region.

[0208] Optionally, in an embodiment of the present application, when the second region is the earliest encoded or decoded region arranged in the row direction or column direction of the image, the historical motion information candidate list used when encoding or decoding the second region is empty.

[0209] Optionally, in this embodiment of the present application, the second region is a previously encoded or decoded region of the first region.

[0210] Optionally, in the embodiment of the present application, the acquiring unit 410 is further configured to:

[0211] The first candidate historical motion information to be added is added to the header of the historical motion information candidate list.

[0212] Optionally, in the embodiment of the present application, the acquiring unit 410 is further configured to:

[0213] The candidate historical motion information at the end of the historical motion information candidate list is deleted, or the candidate historical motion information in the historical motion information table that is the same as the first candidate historical motion information is deleted.

[0214] Optionally, in this embodiment of the present application, the second image block is an image block in a non-affine transformation motion compensation mode.

[0215] Optionally, in this embodiment of the present application, the encoding or decoding unit 420 is further configured to:

[0216] Using the historical motion information candidate list, generating a motion information list for each first image block;

[0217] Motion information is selected for each first image block using the motion information list generated for each first image block respectively.

[0218] Optionally, in this embodiment of the present application, the encoding or decoding unit 420 is further configured to:

[0219] Generate a motion information list for each first image block using the historical motion information candidate list and the spatial domain motion information candidate list corresponding to each first image block;

[0220] The image block corresponding to the motion information in the spatial motion information candidate list corresponding to each first image block does not belong to the first area.

[0221] Optionally, in an embodiment of the present application, the historical motion information candidate list is a history-based motion vector prediction (HMVP) candidate list.

[0222] Optionally, in an embodiment of the present application, the historical motion information candidate list is stored in a storage space.

[0223] Optionally, in an embodiment of the present application, updating the historical motion information candidate list using motion information of at least one second image block included in the second region of the current frame is performed after encoding or decoding of the second region is completed.

[0224] Optionally, in an embodiment of the present application, the historical motion information candidate list is stored in a first storage space and a second storage space respectively, the second area is encoded or decoded using the historical motion information candidate list in the second storage space, and the acquisition unit is further configured to:

[0225] During an encoding process or a decoding process of the second region, the historical motion information candidate list in the first storage space is updated using motion information of at least one second image block included in the second region;

[0226] The encoding or decoding unit 420 is further configured to:

[0227] Each of the first image blocks is encoded or decoded according to the updated historical motion information candidate list in the first storage space.

[0228] Optionally, in the embodiment of the present application, the acquiring unit 410 is further configured to:

[0229] After encoding or decoding of the second region is completed, the historical motion information candidate list in the second storage space is updated using the updated historical motion information candidate list in the first storage space.

[0230] Optionally, in the embodiment of the present application, the acquiring unit 410 is further configured to:

[0231] The historical motion information candidate list in the second storage space is updated so that the updated historical motion information candidate list in the second storage space is the same as the updated historical motion information candidate list in the first storage space.

[0232] Optionally, in this embodiment of the present application, the historical motion information candidate list is stored in a first storage space and a second storage space respectively, and the second area is encoded or decoded using the historical motion information candidate list in the second storage space. The obtaining unit 410 is further configured to:

[0233] During an encoding process or a decoding process of the second region, the historical motion information candidate list in the first storage space is updated using motion information of at least one second image block included in the second region;

[0234] After encoding or decoding of the second region is completed, updating the historical motion information candidate list in the second storage space by using the updated historical motion information candidate list in the first storage space;

[0235] The encoding or decoding unit 420 is further configured to:

[0236] Each of the first image blocks is encoded or decoded respectively according to the updated historical motion information candidate list in the second storage space.

[0237] Optionally, in the embodiment of the present application, the acquiring unit 410 is further configured to:

[0238] During an encoding process or a decoding process of the first region, the historical motion information candidate list in the first storage space is updated again by using motion information of at least one first image block included in the first region;

[0239] After encoding or decoding of the first region is completed, the historical motion information candidate list in the second storage space is updated again using the updated historical motion information candidate list in the first storage space.

[0240] Optionally, in the embodiment of the present application, the acquiring unit 410 is further configured to:

[0241] The historical motion information candidate list in the second storage space is updated so that the updated historical motion information candidate list in the second storage space is the same as the updated historical motion information candidate list in the first storage space.

[0242] Optionally, the multiple first image blocks in the first area are image blocks obtained by performing quadtree division, ternary tree division, or binary tree division on the first area.

[0243] Optionally, the multiple first image blocks in the first area share the same motion information candidate list during prediction.

[0244] Optionally, the multiple first image blocks in the first area all adopt a merge mode during prediction and share the same merge mode motion information candidate list.

[0245] Optionally, the acquiring unit is further configured to:

[0246] A candidate HMVP is obtained according to the historical motion information candidate list; the candidate HMVP is a candidate in the motion information candidate list.

[0247] Optionally, the historical motion information candidate list remains unchanged when predicting multiple first image blocks in the first area.

[0248] Optionally, the encoding or decoding unit 420 is further configured to update the historical motion information candidate list after completing encoding / decoding of the plurality of first image blocks in the first region.

[0249] Optionally, the encoding or decoding unit 420 is further configured to update the historical motion information candidate list according to motion information of the last first image block in the first area that has completed encoding / decoding.

[0250] Optionally, the lower right corner of the last first image block in the first area that completes encoding / decoding coincides with the lower right corner of the first area.

[0251] Optionally, the pixel coordinates of the upper left corner of the first region are (x0, y0), the length of the first region is L0, and the width is W0; the encoding or decoding unit 420 is further configured to determine a target first image block from the first region, the pixel position of the upper left corner of the target first image block is (x1, y1), the length is L1, the width is W1, and x1+L1=x0+L0, y1+W1=y0+W0;

[0252] The historical motion information candidate list is updated according to the motion information of the target first image block.

[0253] It should be understood that the video processing device 400 can implement the corresponding operations implemented by the encoding end or the decoding end in the above method embodiments, which will not be described in detail here for the sake of brevity.

[0254] Figure 10 is a schematic block diagram of a video processing device 500 according to an embodiment of the present application. The device 500 includes an encoding or decoding unit 510 and an updating unit 520;

[0255] The encoding or decoding unit 510 is configured to: encode or decode at least one second image block in the second region of the current frame using the historical motion information candidate list;

[0256] The updating unit 520 is configured to update the historical motion information candidate list based on the motion information of at least part of the second image blocks in the second region after encoding or decoding, so as to obtain an updated historical motion information candidate list;

[0257] The encoding or decoding unit 510 is further configured to: use the updated historical motion information candidate list to encode or decode a plurality of first image blocks in the first area of ​​the current frame.

[0258] Optionally, in this embodiment of the present application, the encoding or decoding unit 510 is further configured to:

[0259] The multiple first image blocks are encoded or decoded in parallel using the updated historical motion information candidate list.

[0260] Optionally, in an embodiment of the present application, when encoding or decoding different first image blocks, the candidate historical motion information included in the historical motion information candidate list used and the order of the candidate historical motion information in the historical motion information candidate list are the same.

[0261] Optionally, in an embodiment of the present application, when the historical motion information candidate list is updated, the number of candidate historical motion information added to the historical motion information candidate list is less than a preset value, and / or the number of candidate historical motion information deleted from the historical motion information candidate list is less than a preset value.

[0262] Optionally, in the embodiment of the present application, the device 500 further includes a selection unit 530, configured to:

[0263] The at least part of the second image blocks is selected from the image blocks included in the second area based on the position coordinates of the image blocks in the second area.

[0264] Optionally, in this embodiment of the present application, in the process of selecting the at least part of the second image blocks from the image blocks included in the second area:

[0265] The priority of the image block on the right side of the second area is higher than the priority of the image block on the left side of the second area, and / or the priority of the image block on the bottom side of the second area is higher than the priority of the image block on the top side of the second area.

[0266] Optionally, in the embodiment of the present application, the updating unit 520 is further configured to:

[0267] performing weighted processing on the motion information of at least part of the second image block;

[0268] The historical motion information candidate list is updated using the weighted motion information.

[0269] Optionally, in an embodiment of the present application, the second region and the first region are arranged along a row direction of the image, or along a column direction of the image.

[0270] Optionally, in an embodiment of the present application, the second region and the first region belong to the same coding tree unit CTU row or CTU column, each CTU row or CTU column includes at least one CTU, and each CTU includes at least one region.

[0271] Optionally, in an embodiment of the present application, when the second region is the earliest encoded or decoded region arranged in the row direction or column direction of the image, the historical motion information candidate list used when encoding or decoding the second region is empty.

[0272] Optionally, in this embodiment of the present application, the second region is a previously encoded or decoded region of the first region.

[0273] Optionally, in the embodiment of the present application, the updating unit 520 is further configured to:

[0274] The first candidate historical motion information to be added is added to the header of the historical motion information candidate list.

[0275] Optionally, in the embodiment of the present application, the updating unit 520 is further configured to:

[0276] The candidate historical motion information at the end of the historical motion information candidate list is deleted, or the candidate historical motion information in the historical motion information table that is the same as the first candidate historical motion information is deleted.

[0277] Optionally, in this embodiment of the present application, the second image block is an image block in a non-affine transformation motion compensation mode.

[0278] Optionally, in this embodiment of the present application, the encoding or decoding unit 510 is further configured to:

[0279] Using the updated historical motion information candidate list, respectively generate a motion information list for each first image block;

[0280] Motion information is selected for each first image block using the motion information list generated for each first image block respectively.

[0281] Optionally, in this embodiment of the present application, the encoding or decoding unit 510 is further configured to:

[0282] Using the updated historical motion information candidate list and the spatial domain motion information candidate list corresponding to each first image block, respectively generate the motion information list for each first image block;

[0283] The image block corresponding to the motion information in the spatial motion information candidate list corresponding to each first image block does not belong to the first area.

[0284] Optionally, in an embodiment of the present application, the historical motion information candidate list is a history-based motion vector prediction (HMVP) candidate list.

[0285] Optionally, in this embodiment of the present application, the at least part of the second image block includes the last encoded or decoded image block in the second area, and / or includes an image block at a specified position in the second area.

[0286] Optionally, in this embodiment of the present application, the image block at the specified position in the second area includes an image block located at at least one of the following positions:

[0287] The upper left corner of the second area, the upper right corner of the second area, the lower left corner of the second area, the lower right corner of the second area, and the center point of the second area.

[0288] Optionally, in an embodiment of the present application, the historical motion information candidate list is stored in a storage space.

[0289] Optionally, in an embodiment of the present application, updating the historical motion information candidate list using the motion information of at least a portion of the second image block included in the second area of ​​the current frame is performed after encoding or decoding of the second area is completed.

[0290] Optionally, in this embodiment of the present application, the historical motion information candidate list is stored in a first storage space and a second storage space respectively, the second area is encoded or decoded using the historical motion information candidate list in the second storage space, and the updating unit is further configured to:

[0291] During an encoding process or a decoding process of the second region, the historical motion information candidate list in the first storage space is updated using the motion information of the at least part of the second image block included in the second region;

[0292] The encoding or decoding unit 520 is further configured to:

[0293] Each of the first image blocks is encoded or decoded according to the updated historical motion information candidate list in the first storage space.

[0294] Optionally, in the embodiment of the present application, the updating unit 520 is further configured to:

[0295] After encoding or decoding of the second region is completed, the historical motion information candidate list in the second storage space is updated using the updated historical motion information candidate list in the first storage space.

[0296] Optionally, in the embodiment of the present application, the updating unit 520 is further configured to:

[0297] The historical motion information candidate list in the second storage space is updated so that the updated historical motion information candidate list in the second storage space is the same as the updated historical motion information candidate list in the first storage space.

[0298] Optionally, in this embodiment of the present application, the historical motion information candidate list is stored in a first storage space and a second storage space respectively, the second area is encoded or decoded using the historical motion information candidate list in the second storage space, and the updating unit 520 is further configured to:

[0299] During an encoding process or a decoding process of the second region, the historical motion information candidate list in the first storage space is updated using the motion information of the at least part of the second image block included in the second region;

[0300] After encoding or decoding of the second region is completed, updating the historical motion information candidate list in the second storage space by using the updated historical motion information candidate list in the first storage space;

[0301] The encoding or decoding unit 510 is further configured to: encode or decode each first image block according to the updated historical motion information candidate list in the second storage space.

[0302] Optionally, in the embodiment of the present application, the updating unit 520 is further configured to:

[0303] During an encoding process or a decoding process of the first region, the historical motion information candidate list in the first storage space is updated again by using motion information of at least one first image block included in the first region;

[0304] After encoding or decoding of the first region is completed, the historical motion information candidate list in the second storage space is updated again using the updated historical motion information candidate list in the first storage space.

[0305] Optionally, in the embodiment of the present application, the updating unit 520 is further configured to:

[0306] The historical motion information candidate list in the second storage space is updated so that the updated historical motion information candidate list in the second storage space is the same as the updated historical motion information candidate list in the first storage space.

[0307] Optionally, the multiple first image blocks in the first area are image blocks obtained by performing quadtree division, ternary tree division, or binary tree division on the first area.

[0308] Optionally, the multiple first image blocks in the first area share the same motion information candidate list during prediction.

[0309] Optionally, the multiple first image blocks in the first area all adopt a merge mode during prediction and share the same merge mode motion information candidate list.

[0310] Optionally, the acquiring unit is further configured to:

[0311] A candidate HMVP is obtained according to the historical motion information candidate list; the candidate HMVP is a candidate in the motion information candidate list.

[0312] Optionally, the historical motion information candidate list remains unchanged when predicting multiple first image blocks in the first area.

[0313] Optionally, the updating unit 520 is further configured to update the historical motion information candidate list after completing encoding / decoding of the plurality of first image blocks in the first region.

[0314] Optionally, the updating unit 520 is further configured to update the historical motion information candidate list according to motion information of the last first image block in the first area that has completed encoding / decoding.

[0315] Optionally, the lower right corner of the last first image block in the first area that completes encoding / decoding coincides with the lower right corner of the first area.

[0316] Optionally, the pixel coordinates of the upper left corner of the first region are (x0, y0), the length of the first region is L0, and the width is W0; the updating unit 520 is further configured to determine a target first image block from the first region, the pixel position of the upper left corner of the target first image block is (x1, y1), the length is L1, the width is W1, and x1+L1=x0+L0, y1+W1=y0+W0;

[0317] The historical motion information candidate list is updated according to the motion information of the target first image block.

[0318] It should be understood that the video processing device 500 can implement the corresponding operations implemented by the encoding end or the decoding end in the above method embodiments, which will not be described in detail here for the sake of brevity.

[0319] Figure 11 A schematic block diagram of a computer system 600 according to an embodiment of the present application is shown.

[0320] like Figure 11 As shown, the computer system 600 may include a processor 610 and further include a memory 620 .

[0321] It should be understood that the computer system 600 may also include components commonly included in other computer systems, such as input and output devices, communication interfaces, etc., and the embodiments of the present application are not limited to this.

[0322] The memory 620 is used to store computer-executable instructions.

[0323] The memory 620 may be various types of memory, for example, it may include a high-speed random access memory (RAM), and it may also include a non-volatile memory (non-volatile memory), such as at least one disk memory, which is not limited in the embodiments of the present application.

[0324] The processor 610 is configured to access the memory 620 and execute the computer-executable instructions to perform the operations in the method for video processing according to the embodiment of the present application.

[0325] The processor 610 may include a microprocessor, a field programmable gate array (FPGA), a central processing unit (CPU), a graphics processing unit (GPU), etc., which is not limited in the embodiments of the present application.

[0326] The device and computer system for video processing of the embodiments of the present application may correspond to the execution subject of the method for video processing of the embodiments of the present application, and the above-mentioned and other operations and / or functions of each module in the device and computer system for video processing are respectively for implementing the corresponding processes of the aforementioned methods. For the sake of brevity, they will not be repeated here.

[0327] An embodiment of the present application further provides an electronic device, which may include the device or computer system for video processing according to the various embodiments of the present application described above.

[0328] An embodiment of the present application further provides a computer storage medium, in which a program code is stored. The program code can be used to instruct execution of the loop filtering method of the embodiment of the present application.

[0329] It should be understood that in the embodiments of this application, the term "and / or" is merely a description of the relationship between associated objects, indicating that three possible relationships exist. For example, "A and / or B" can represent: A exists alone, A and B exist simultaneously, or B exists alone. Furthermore, the character " / " in this document generally indicates that the associated objects are in an "or" relationship.

[0330] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described in terms of function in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0331] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0332] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, or can be electrical, mechanical or other forms of connection.

[0333] The units described as separate components may or may not be physically separate, and 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 may be selected according to actual needs to achieve the purpose of the embodiments of the present application.

[0334] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.

[0335] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or partly contributed to the prior art, or all or part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0336] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in the present application, and such modifications or substitutions should be included in the scope of protection of the present application. Therefore, the scope of protection of the present application should be based on the scope of protection of the claims.

Claims

1. A video processing method, characterized in that: include: Obtaining a historical motion information candidate list, the historical motion information candidate list being used to encode each first image block of a plurality of first image blocks included in a first region in a current frame, wherein the historical motion information candidate list is obtained based on motion information of a second image block, the second image block being an already encoded image block excluding the image blocks included in the first region; encoding each of the first image blocks according to the historical motion information candidate list; The historical motion information candidate list is not updated when encoding the multiple first image blocks in the first area, but is updated after the encoding of the multiple first image blocks in the first area is completed.

2. The method according to claim 1, characterized in that The first region is an image block with a size of 8×8 pixels, and the multiple first image blocks in the first region are image blocks of 4×4 pixels obtained by performing quadtree division on the first region.

3. The method according to claim 1 or 2, characterized in that The encoding of each first image block according to the historical motion information candidate list includes: generating a motion information list for each first image block according to the historical motion information candidate list; Motion information is selected for each first image block using the motion information list generated for each first image block respectively.

4. The method according to claim 1 or 2, characterized in that The historical motion information candidate list is a historical motion vector prediction (HMVP) candidate list, and the method further includes: A candidate HMVP is obtained according to the historical motion information candidate list; the candidate HMVP is a candidate in the historical motion information candidate list.

5. The method according to claim 1 or 2, characterized in that The historical motion information candidate list is stored in a storage space.

6. The method according to claim 1 or 2, characterized in that The method also includes: updating the historical motion information candidate list using the motion information of at least one second image block included in the second area of ​​the current frame, and updating the historical motion information candidate list using the motion information of at least one second image block included in the second area is performed after the encoding of the second area is completed.

7. The method according to claim 1, characterized in that The method further comprises: Output a code stream, where the code stream includes an index of motion information.

8. A video processing method, characterized in that: include: Obtaining a historical motion information candidate list, the historical motion information candidate list being used to decode each first image block of a plurality of first image blocks included in a first region in a current frame, wherein the historical motion information candidate list is obtained based on motion information of a second image block, the second image block being a decoded image block other than the image block included in the first region; Decoding each of the first image blocks according to the historical motion information candidate list; The historical motion information candidate list is not updated when the multiple first image blocks in the first area are decoded, but is updated after the decoding of the multiple first image blocks in the first area is completed.

9. The method according to claim 8, characterized in that The first region is an image block with a size of 8×8 pixels, and the multiple first image blocks in the first region are image blocks of 4×4 pixels obtained by performing quadtree division on the first region.

10. The method according to claim 8 or 9, characterized in that The decoding of each first image block according to the historical motion information candidate list includes: generating a motion information list for each first image block according to the historical motion information candidate list; Motion information is selected for each first image block using the motion information list generated for each first image block respectively.

11. The method according to claim 8 or 9, characterized in that The historical motion information candidate list is a historical motion vector prediction (HMVP) candidate list, and the method further includes: A candidate HMVP is obtained according to the historical motion information candidate list; the candidate HMVP is a candidate in the historical motion information candidate list.

12. The method according to claim 8 or 9, characterized in that The historical motion information candidate list is stored in a storage space.

13. The method according to claim 8 or 9, characterized in that The method also includes: updating the historical motion information candidate list using the motion information of at least one second image block included in the second area of ​​the current frame, and updating the historical motion information candidate list using the motion information of at least one second image block included in the second area is performed after the decoding of the second area is completed.

14. A video encoding device, characterized in that The device includes a processor configured to process the following operations: Obtaining a historical motion information candidate list, the historical motion information candidate list being used to encode each first image block of a plurality of first image blocks included in a first region in a current frame, wherein the historical motion information candidate list is obtained based on motion information of a second image block, the second image block being an already encoded image block excluding the image blocks included in the first region; encoding each of the first image blocks according to the historical motion information candidate list; The historical motion information candidate list is not updated when encoding the multiple first image blocks in the first area, but is updated after the encoding of the multiple first image blocks in the first area is completed.

15. The device according to claim 14, characterized in that The first region is an image block with a size of 8×8 pixels, and the multiple first image blocks in the first region are image blocks of 4×4 pixels obtained by performing quadtree division on the first region.

16. A video decoding device, characterized in that: The device includes a processor configured to process the following operations: Obtaining a historical motion information candidate list, the historical motion information candidate list being used to decode each first image block of a plurality of first image blocks included in a first region in a current frame, wherein the historical motion information candidate list is obtained based on motion information of a second image block, the second image block being a decoded image block other than the image block included in the first region; Decoding each first image block according to the historical motion information candidate list; The historical motion information candidate list is not updated when the multiple first image blocks in the first area are decoded, but is updated after the decoding of the multiple first image blocks in the first area is completed.

17. The device according to claim 16, characterized in that The first region is an image block with a size of 8×8 pixels, and the multiple first image blocks in the first region are image blocks of 4×4 pixels obtained by performing quadtree division on the first region.

18. A computer-readable storage medium, characterized in that A code stream formed by a computer program is stored thereon, and when the computer program is executed by a computer, the computer executes the method according to any one of claims 1 to 7.

19. A method for generating a bit stream, characterized in that: include: Obtaining a historical motion information candidate list, the historical motion information candidate list being used to encode each first image block of a plurality of first image blocks included in a first region in a current frame, wherein the historical motion information candidate list is obtained based on motion information of a second image block, the second image block being an already encoded image block excluding the image blocks included in the first region; encoding each of the first image blocks according to the historical motion information candidate list to generate a bitstream; The historical motion information candidate list is not updated when encoding the multiple first image blocks in the first area, but is updated after the encoding of the multiple first image blocks in the first area is completed.

Citation Information

Patent Citations

  • Method and apparatus for encoding motion information, and method and apparatus for decoding same

    CN103765896A

  • Method and apparatus for determining motion vector in video coding, and video coding and decoding apparatus

    CN109068140A

  • Method for processing image on basis of inter prediction mode and device therefor

    WO2017043734A1