Motion information list construction method, device and equipment in video coding and decoding

By constructing a list of airspace motion information in video encoding and decoding and using the information about airspace proximity to fill the list of candidate motion information, the problem of insufficient displacement vector is solved and the video compression performance is improved.

CN119135889APending Publication Date: 2024-12-13TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411512376.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2020-08-20
Publication Date
2024-12-13

AI Technical Summary

Technical Problem

In video encoding and decoding, when the displacement vector contained in the motion information list is insufficient, an effective predicted displacement vector cannot be provided, affecting the compression performance of the video.

Method used

The motion information adjacent to the airspace is used to fill it to construct a list of airspace motion information, which is used to supplement the motion information in the candidate motion information list and provide more and more effective displacement vectors.

Benefits of technology

By filling the candidate motion information list, the compression performance of the video is improved and the effect of displacement vector prediction is ensured.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119135889A_ABST
    Figure CN119135889A_ABST
Patent Text Reader

Abstract

The invention provides a motion information list construction method, device and equipment in video coding and decoding, and relates to the technical field of video coding and decoding. The method comprises the steps that a spatial motion information list is constructed, the spatial motion information list comprises motion information of a spatial adjacent block of a current coding and decoding block, and the spatial adjacent block at least comprises an ISC block; and under the condition that the motion information in the candidate motion information list is insufficient, acquiring at least one piece of motion information from the airspace motion information list, and filling the candidate motion information list with the at least one piece of motion information. According to the method, when the motion information contained in the candidate motion information list is insufficient, the motion information close to the airspace is adopted for filling, content expansion of the candidate motion information list is achieved, more and more effective displacement vectors are provided in the candidate motion information list, a better displacement vector prediction effect is achieved, and the prediction accuracy of the displacement vectors is improved. And the video compression performance is improved.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application with application number 202010843772.7 filed on August 20, 2020 and invention name “Motion information list construction method, device and equipment in video encoding and decoding”. Technical Field

[0002] The embodiments of the present application relate to the field of video coding and decoding technology, and in particular, to a method, device and equipment for constructing a motion information list in video coding and decoding. Background Art

[0003] In current video compression technologies, such as VVC (Versatile Video Coding) and AVS3 (Audio Video coding Standard 3), video codecs usually need to construct a motion information list to derive a predicted displacement vector.

[0004] However, when the displacement vectors included in the motion information list are insufficient, the motion information list will be unable to provide effective predicted displacement vectors, which will affect the compression performance of the video. Summary of the invention

[0005] The embodiment of the present application provides a method, device and apparatus for constructing a motion information list in video encoding and decoding, which can fill in the motion information contained in the candidate motion information list with the adjacent motion information in the spatial domain to obtain a better displacement vector prediction effect and improve the compression performance of the video. The technical solution is as follows:

[0006] According to one aspect of an embodiment of the present application, a method for constructing a motion information list in video encoding and decoding is provided, the method comprising:

[0007] Constructing a spatial motion information list, wherein the spatial motion information list includes motion information of spatially adjacent blocks of a current coding and decoding block, wherein the spatially adjacent blocks include at least an intra-frame string copy (ISC) block;

[0008] When there is insufficient motion information in the candidate motion information list, obtaining at least one motion information from the spatial motion information list, and filling the candidate motion information list with the at least one motion information;

[0009] The candidate motion information list is used to provide candidate prediction displacement vectors for the current codec block.

[0010] According to one aspect of an embodiment of the present application, a device for constructing a motion information list in video encoding and decoding is provided, the device comprising:

[0011] A list construction module, used to construct a spatial motion information list, wherein the spatial motion information list includes motion information of spatial adjacent blocks of a current coding and decoding block, wherein the spatial adjacent blocks include at least an intra-frame string copy (ISC) block;

[0012] A list filling module, configured to obtain at least one motion information from the spatial motion information list when the motion information in the candidate motion information list is insufficient, and fill the candidate motion information list with the at least one motion information;

[0013] The candidate motion information list is used to provide candidate prediction displacement vectors for the current codec block.

[0014] According to one aspect of an embodiment of the present application, a computer device is provided, comprising a processor and a memory, wherein the memory stores at least one instruction, at least one program, a code set or an instruction set, and the at least one instruction, the at least one program, the code set or the instruction set is loaded and executed by the processor to implement the motion information list construction method in the above-mentioned video encoding and decoding.

[0015] According to one aspect of an embodiment of the present application, a computer-readable storage medium is provided, in which at least one instruction, at least one program, a code set or an instruction set is stored. The at least one instruction, the at least one program, the code set or the instruction set is loaded and executed by a processor to implement the motion information list construction method in the above-mentioned video encoding and decoding.

[0016] In another aspect, an embodiment of the present application provides a computer program product or a computer program, the computer program product or the computer program includes computer instructions, the computer instructions are stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the motion information list construction method in the above-mentioned video encoding and decoding.

[0017] The technical solution provided by the embodiments of the present application may have the following beneficial effects:

[0018] When the motion information contained in the candidate motion information list is insufficient, the spatially adjacent motion information is used to fill in the content of the candidate motion information list, thereby expanding the content of the candidate motion information list, thereby providing more and more effective displacement vectors in the candidate motion information list, so as to achieve better displacement vector prediction effects and improve video compression performance. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] Figure 1 is a basic flow chart of a video encoding process exemplarily shown in this application;

[0020] Figure 2 is a schematic diagram of an inter-frame prediction mode provided by an embodiment of the present application;

[0021] Figure 3 is a schematic diagram of candidate motion vectors provided by an embodiment of the present application;

[0022] Figure 4 is a schematic diagram of an intra-frame block copy mode provided by an embodiment of the present application;

[0023] Figure 5 is a schematic diagram of an intra-frame string replication mode provided by an embodiment of the present application;

[0024] Figure 6 is a simplified block diagram of a communication system provided by one embodiment of the present application;

[0025] Figure 7 is a schematic diagram of the placement of a video encoder and a video decoder in a streaming transmission environment exemplarily shown in the present application;

[0026] Figure 8 is a flowchart of a method for constructing a motion information list in video encoding and decoding provided by an embodiment of the present application;

[0027] Fig. 9 is a schematic diagram of spatial adjacent blocks provided by an embodiment of the present application;

[0028] Fig.10 It is a block diagram of a motion information list construction device in video encoding and decoding provided by an embodiment of the present application;

[0029] Fig.11 It is a structural block diagram of a computer device provided by an embodiment of the present application. DETAILED DESCRIPTION

[0030] In order to make the objectives, technical solutions and advantages of the present application clearer, the implementation methods of the present application will be further described in detail below with reference to the accompanying drawings.

[0031] Before introducing the embodiments of the present application, Figure 1 A brief introduction to video encoding technology. Figure 1 A basic flow chart of a video encoding process is exemplarily shown.

[0032] Video signal refers to an image sequence consisting of multiple frames. A frame is a representation of the spatial information of a video signal. Taking the YUV mode as an example, a frame includes a brightness sample matrix (Y) and two chrominance sample matrices (Cb and Cr). From the perspective of how the video signal is obtained, it can be divided into two methods: captured by a camera and generated by a computer. Due to different statistical characteristics, the corresponding compression encoding methods may also be different.

[0033] In some mainstream video coding technologies, such as H.265 / HEVC (High Efficient Video Coding), H.266 / VVC (Versatile Video Coding), AVS (Audio Video Coding Standard) (such as AVS3), a hybrid coding framework is used to perform the following operations and processing on the input original video signal:

[0034] 1. Block Partition Structure: The input image is divided into several non-overlapping processing units, each of which will perform similar compression operations. This processing unit is called CTU (Coding Tree Unit) or LCU (Large Coding Unit). Below CTU, more detailed divisions can be made to obtain one or more basic coding units, called CU (Coding Unit). Each CU is the most basic element in the encoding process. The following describes various encoding methods that may be used for each CU.

[0035] 2. Predictive Coding: It includes intra-frame prediction and inter-frame prediction. The original video signal is predicted by the selected reconstructed video signal to obtain the residual video signal. The encoder needs to choose the most suitable one among many possible predictive coding modes for the current CU and inform the decoder. Intra-frame prediction means that the predicted signal comes from the area that has been encoded and reconstructed in the same image. Inter-frame prediction means that the predicted signal comes from other images that have been encoded and are different from the current image (called reference images).

[0036] 3. Transform coding and quantization (Transform & Quantization): The residual video signal is transformed into the transform domain through transformation operations such as DFT (Discrete Fourier Transform) and DCT (Discrete Cosine Transform), which are called transform coefficients. The signal in the transform domain is further subjected to lossy quantization operations, which loses certain information, making the quantized signal conducive to compression expression. In some video coding standards, there may be more than one transform mode to choose from, so the encoder also needs to select one of the transforms for the current CU and inform the decoder. The degree of quantization is usually determined by the quantization parameter. A larger QP (Quantization Parameter) value means that coefficients with a larger value range will be quantized to the same output, which usually results in greater distortion and lower bit rate; on the contrary, a smaller QP value means that coefficients with a smaller value range will be quantized to the same output, which usually results in less distortion and a higher bit rate.

[0037] 4. Entropy Coding or Statistical Coding: The quantized transform domain signal will be statistically compressed and encoded according to the frequency of occurrence of each value, and finally output as a binary (0 or 1) compressed bit stream. At the same time, the encoding generates other information, such as the selected mode, motion vector, etc., which also needs to be entropy encoded to reduce the bit rate. Statistical coding is a lossless coding method that can effectively reduce the bit rate required to express the same signal. Common statistical coding methods include variable length coding (VLC) or context-based binary arithmetic coding (CABAC).

[0038] 5. Loop Filtering: The encoded image can be reconstructed into a decoded image after undergoing inverse quantization, inverse transformation and prediction compensation (the reverse operation of 2 to 4 above). Compared with the original image, the reconstructed image has some information that is different from the original image due to the influence of quantization, resulting in distortion. Filtering the reconstructed image, such as deblocking, SAO (Sample Adaptive Offset) or ALF (Adaptive Lattice Filter), can effectively reduce the distortion caused by quantization. Since these filtered reconstructed images will be used as a reference for subsequent encoded images and used to predict future signals, the above filtering operation is also called loop filtering, and the filtering operation in the encoding loop.

[0039] According to the above encoding process, it can be seen that at the decoding end, for each CU, after the decoder obtains the compressed bitstream, it first performs entropy decoding to obtain various mode information and quantized transform coefficients. Each coefficient is dequantized and inversely transformed to obtain a residual signal. On the other hand, based on the known encoding mode information, the prediction signal corresponding to the CU can be obtained. After adding the two, the reconstructed signal can be obtained. Finally, the reconstructed value of the decoded image needs to undergo a loop filtering operation to generate the final output signal.

[0040] Some mainstream video coding standards, such as HEVC, VVC, AVS3, etc., all adopt a block-based hybrid coding framework. They divide the original video data into a series of coding blocks, and combine video coding methods such as prediction, transform and entropy coding to achieve video data compression. Among them, motion compensation is a commonly used prediction method for video coding. Motion compensation is based on the redundant characteristics of video content in the time domain or spatial domain, and derives the prediction value of the current coding block from the encoded area. This type of prediction method includes: inter-frame prediction, intra-frame block copy prediction, intra-frame string copy prediction, etc. In specific coding implementations, these prediction methods may be used alone or in combination. For coding blocks using these prediction methods, it is usually necessary to explicitly or implicitly encode one or more two-dimensional displacement vectors in the bitstream to indicate the displacement of the current block (or the same-position block of the current block) relative to one or more reference blocks.

[0041] It should be noted that in different prediction modes and different implementations, the displacement vector may have different names. This article uniformly describes them in the following way: 1) The displacement vector in the inter-frame prediction mode is called the motion vector (MV); 2) The displacement vector in the IBC (Intra Block Copy) prediction mode is called the block vector (BV); 3) The displacement vector in the ISC (Intra String Copy) prediction mode is called the string vector (SV). Intra-frame string copy is also called "string prediction" or "string matching".

[0042] MV refers to the displacement vector used in the inter-frame prediction mode, which points from the current image to the reference image, and its value is the coordinate offset between the current block and the reference block, where the current block and the reference block are in two different images. In the inter-frame prediction mode, motion vector prediction can be introduced. By predicting the motion vector of the current block, the predicted motion vector corresponding to the current block is obtained, and the difference between the predicted motion vector corresponding to the current block and the actual motion vector is encoded and transmitted. Compared with directly encoding and transmitting the actual motion vector corresponding to the current block, it is beneficial to save bit overhead. In the embodiment of the present application, the predicted motion vector refers to the predicted value of the motion vector of the current block obtained by the motion vector prediction technology.

[0043] BV refers to the displacement vector used in the IBC prediction mode, and its value is the coordinate offset between the current block and the reference block, where both the current block and the reference block are in the current image. In the IBC prediction mode, block vector prediction can be introduced. By predicting the block vector of the current block, the predicted block vector corresponding to the current block is obtained, and the difference between the predicted block vector corresponding to the current block and the actual block vector is encoded and transmitted. Compared with directly encoding and transmitting the actual block vector corresponding to the current block, it is beneficial to save bit overhead. In an embodiment of the present application, the predicted block vector refers to the predicted value of the block vector of the current block obtained by the block vector prediction technology.

[0044] SV refers to the displacement vector used in the ISC prediction mode, and its value is the coordinate offset between the current string and the reference string, where both the current string and the reference string are in the current image. In the ISC prediction mode, string vector prediction can be introduced. By predicting the string vector of the current string, a predicted string vector corresponding to the current string is obtained, and the difference between the predicted string vector corresponding to the current string and the actual string vector is encoded and transmitted. Compared with directly encoding and transmitting the actual string vector corresponding to the current string, it is beneficial to save bit overhead. In the embodiment of the present application, the predicted string vector refers to the predicted value of the string vector of the current string obtained by the string vector prediction technology.

[0045] Several different prediction modes are introduced below:

[0046] 1. Inter-frame prediction mode

[0047] like Figure 2 As shown in the figure, inter-frame prediction uses the correlation in the video time domain and uses the pixels of the adjacent encoded images to predict the pixels of the current image, so as to effectively remove the redundancy in the video time domain and effectively save the bits of the encoded residual data. Where P is the current frame, Pr is the reference frame, B is the current block to be encoded, and Br is the reference block of B. B' and B have the same coordinate position in the image, Br coordinates are (xr, yr), and B' coordinates are (x, y). The displacement between the current block to be encoded and its reference block is called the motion vector (MV), that is:

[0048] MV=(xr-x,yr-y).

[0049] Considering that adjacent blocks in the temporal or spatial domain have a strong correlation, MV prediction technology can be used to further reduce the bits required for encoding MV. In H.265 / HEVC, inter-frame prediction includes two MV prediction technologies: Merge and AMVP (Advanced Motion Vector Prediction).

[0050] The Merge mode will establish an MV candidate list for the current PU (Prediction Unit), which contains 5 candidate MVs (and their corresponding reference images). It will traverse these 5 candidate MVs and select the one with the lowest rate-distortion cost as the optimal MV. If the codec establishes the candidate list in the same way, the encoder only needs to transmit the index of the optimal MV in the candidate list. It should be noted that HEVC's MV prediction technology also has a skip mode, which is a special case of the Merge mode. After the Merge mode finds the optimal MV, if the current block is basically the same as the reference block, then there is no need to transmit the residual data, only the MV index and a skip flag.

[0051] The MV candidate list established in Merge mode includes two cases: spatial domain and temporal domain. For BSlice (B frame image), it also includes a combined list. Among them, the spatial domain provides up to 4 candidate MVs, which are established as follows: Figure 3 The spatial list is established in the order of A1→B1→B0→A0→B2, where B2 is a substitute, that is, when one or more of A1, B1, B0, A0 does not exist, the motion information of B2 needs to be used; the temporal domain only provides one candidate MV at most, and its establishment is as follows Figure 3 As shown in part (b) of , the MV of the same-position PU is scaled as follows:

[0052] curMV=td*colMV / tb;

[0053] Among them, curMV represents the MV of the current PU, colMV represents the MV of the co-located PU, td represents the distance between the current image and the reference image, and tb represents the distance between the co-located image and the reference image. If the PU at position D0 on the co-located block is not available, it is replaced by the co-located PU at position D1. For the PU in B Slice, since there are two MVs, its MV candidate list also needs to provide two MVPs (Motion Vector Predictor). HEVC generates a combination list for B Slice by combining the first 4 candidate MVs in the MV candidate list in pairs.

[0054] Similarly, the AMVP mode uses the MV correlation of neighboring blocks in the spatial and temporal domains to establish a MV candidate list for the current PU. Unlike the Merge mode, the AMVP mode selects the optimal predicted MV from the MV candidate list, and performs differential encoding with the optimal MV obtained through motion search for the current block to be encoded, that is, encoding MVD = MV-MVP, where MVD is the motion vector residual (Motion Vector Difference); by establishing the same list, the decoding end only needs the sequence number of MVD and MVP in the list to calculate the MV of the current decoding block. The MV candidate list of the AMVP mode also includes both spatial and temporal scenarios. The difference is that the length of the MV candidate list of the AMVP mode is only 2.

[0055] HMVP (History based Motion Vector Prediction) is a new MV prediction technology adopted in H.266 / VVC. HMVP is a motion vector prediction method based on historical information. The motion information of the historical coding block is stored in the HMVP list and used as the MVP of the current CU (Coding Unit). H.266 / VVC adds HMVP to the candidate list of Merge mode, and its order is after the spatial and temporal MVP. The HMVP technology stores the motion information of the previous coding block in a first-in-first-out queue (First Input First Output, referred to as FIFO). If the stored candidate motion information is the same as the motion information just encoded, the duplicate candidate motion information will be removed first, and then all HMVP candidates will be moved forward, and the motion information of the current coding unit will be added to the end of the FIFO. If the motion information of the current coding unit is different from the motion information of any candidate in the FIFO, the latest motion information is added to the end of the FIFO. When adding new motion information to the HMVP list, if the list has reached the maximum length, the first candidate in the FIFO is removed, and the latest motion information is added to the end of the FIFO. The HMVP list will be reset (cleared) when encountering a new CTU (Coding Tree Unit) row. In H.266 / VVC, the HMVP table size S is set to 6. In order to reduce the number of redundant check operations, the following simplifications are introduced:

[0056] 1. Set the number of HMVP candidates used for Merge list generation to (N<=4)?M:(8-N), where N represents the number of existing candidates in the Merge list, and M represents the number of available HMVP candidates in the Merge list.

[0057] 2. Once the length of the available Merge list reaches the maximum allowed length minus 1, the HMVP merge candidate list construction process terminates.

[0058] 2. IBC Prediction Model

[0059] IBC is an intra-frame coding tool adopted in the HEVC Screen Content Coding (Screen Content Coding, referred to as SCC) extension, which significantly improves the coding efficiency of screen content. In AVS3 and VVC, IBC technology is also adopted to improve the performance of screen content coding. IBC uses the spatial correlation of screen content video and uses the coded image pixels on the current image to predict the pixels of the current block to be coded, which can effectively save the bits required for coding pixels. Figure 4As shown, the displacement between the current block and its reference block in IBC is called BV (block vector). H.266 / VVC uses a BV prediction technique similar to inter-frame prediction to further save the bits required for encoding BV.

[0060] 3. ISC Forecast Model

[0061] ISC technology divides a coding block into a series of pixel strings or unmatched pixels according to a certain scanning order (such as raster scanning, round-trip scanning and Zig-Zag scanning, etc.). Similar to IBC, each string searches for a reference string of the same shape in the encoded area of ​​the current image, derives the predicted value of the current string, and effectively saves bits by encoding the residual between the current string pixel value and the predicted value instead of directly encoding the pixel value. Figure 5 The schematic diagram of intra-frame string replication is given. The dark gray area is the encoded area, the 28 white pixels are string 1, the 35 light gray pixels are string 2, and the 1 black pixel represents the unmatched pixel. The displacement between string 1 and its reference string is Figure 5 The string vector 1 in ; the displacement between string 2 and its reference string is Figure 5 The string vector 2 in .

[0062] The intra-frame string replication technology needs to encode the SV corresponding to each string in the current coding block, the string length, and the flag of whether there is a matching string. Among them, SV represents the displacement of the string to be encoded to its reference string. The string length represents the number of pixels contained in the string. In different implementations, there are many ways to encode the string length. The following are several examples (some examples may be used in combination): 1) Encode the length of the string directly in the code stream; 2) Encode the number of pixels to be processed in the code stream, and the decoding end calculates the length of the current string according to the size N of the current block, the number of processed pixels N1, and the number of pixels to be processed obtained by decoding N2, L = N-N1-N2; 3) Encode a flag in the code stream to indicate whether the string is the last string. If it is the last string, the length of the current string L = N-N1 is calculated according to the size N of the current block and the number of processed pixels N1. If a pixel does not find a corresponding reference in the referenceable area, the pixel value of the unmatched pixel will be directly encoded.

[0063] IV. Intra-frame prediction motion vector prediction in AVS3

[0064] IBC and ISC are two screen content coding tools in AVS3. They both use the current image as a reference and derive the predicted value of the coding unit through motion compensation. Considering that IBC and ISC have similar reference areas, BV and SV have a high correlation, and the coding efficiency can be further improved by allowing prediction between the two. AVS3 uses an intra-frame prediction history motion information table (IntraHMVP) similar to HMVP to record the displacement vector information, position information, size information and number of repetitions of these two types of coding blocks, and IntraHMVP derives BVP (Block Vector Predictor, predicted block vector) and SVP (String Vector Predictor, predicted string vector). Among them, BVP is the predicted value of the block vector, and SVP is the predicted value of the string vector. In order to support parallel coding, if the current maximum coding unit is the first maximum coding unit of the current row in the slice, the value of CntIntraHmvp in the intra-frame prediction history motion information table is initialized to 0.

[0065] 1. Derivation of prediction block vector

[0066] AVS3 adopts Class based Block Vector Prediction (CBVP), which is similar to HMVP. This method first uses a HBVP (History based Block Vector Prediction) list to store the information of historical IBC coding blocks. In addition to recording the BV information of historical coding blocks, it also records the location, size and other information of historical coding blocks. For the current coding block, the candidate BVs in the HBVP are classified according to the following conditions:

[0067] Category 0: The area of ​​the historical coding block is greater than or equal to 64 pixels;

[0068] Category 1: The frequency of BV is greater than or equal to 2;

[0069] Category 2: The coordinates of the upper left corner of the historical coding block are located to the left of the coordinates of the upper left corner of the current block;

[0070] Category 3: The coordinates of the upper left corner of the historical coding block are above the coordinates of the upper left corner of the current block;

[0071] Category 4: The coordinates of the upper left corner of the historical coding block are located to the upper left of the coordinates of the upper left corner of the current block;

[0072] Category 5: The coordinates of the upper left corner of the historical coding block are located above and to the right of the coordinates of the upper left corner of the current block;

[0073] Category 6: The coordinates of the upper left corner of the historically encoded block are located to the lower left of the coordinates of the upper left corner of the current block.

[0074] Among them, the instances in each category are arranged in reverse order of the coding order (the closer the coding order is to the current block, the higher the order), and the BV corresponding to the first historical coding block is the candidate BV corresponding to the class. Then add the candidate BV corresponding to each category to the CBVP list in the order of category 0 to category 6. When adding a new BV to the CBVP list, it is necessary to check whether there are duplicate BVs in the CBVP list. Only when there are no duplicate BVs, the BV is added to the CBVP list. The encoder selects the best candidate BV in the CBVP list as the BVP, and encodes an index in the bitstream, indicating the index of the category corresponding to the best candidate BV in the CBVP list. The decoder decodes the BVP from the CBVP list according to the index.

[0075] After the decoding of the current prediction unit is completed, if the prediction type of the current prediction unit is block copy intra prediction (ie, IBC), when NumOfIntraHmvpCand is greater than 0, IntraHMVP is updated according to the block copy intra prediction motion information of the current prediction block in the manner described below. The intra prediction motion information of the current prediction block includes displacement vector information, position information, size information, and number of repetitions, wherein the displacement vector information of the block copy intra prediction block is a block vector; the position information includes the upper left corner horizontal coordinate and the upper left corner vertical coordinate of the current prediction block; the size information is the product of the width and the height; and the number of repetitions of the current prediction block is initialized to 0.

[0076] 2. Derivation of prediction string vector

[0077] AVS3 encodes an index for each string in the ISC coding block, indicating the position of the SVP of the string in IntraHMVP. Similar to the skip mode in inter-frame prediction, the SV of the current string is equal to the SVP, and there is no need to encode the residual between the SV and SVP.

[0078] After the decoding of the current prediction unit is completed, if the prediction type of the current prediction unit is string copy intra prediction (ie, ISC), when NumOfIntraHmvpCand is greater than 0, IntraHMVP is updated according to the string copy intra prediction motion information of the current prediction block in the manner described below. The string copy intra prediction motion information of the current prediction block includes displacement vector information, position information, size information, and number of repetitions, where the displacement vector information of the current string is a string vector; the position information includes the horizontal and vertical coordinates of the first pixel sample of the string, i.e. (xi, yi); the size information is the string length of the part, i.e. StrLen[i]; and the number of repetitions is initialized to 0.

[0079] 3. Update of intra-frame prediction historical motion information table

[0080] The intra-frame prediction motion information includes displacement vector information, position information, size information and number of repetitions. After the decoding of the current prediction unit is completed, if the prediction type of the current prediction unit is block copy intra-frame prediction or string copy intra-frame prediction, and NumOfIntraHmvpCand is greater than 0, the intra-frame prediction historical motion information table IntraHmvpCandidateList is updated according to the intra-frame prediction motion information of the current prediction block, and the displacement vector information, position information, size information and number of repetitions of IntraHmvpCandidateList[X] are recorded as intraMvCandX, posCandX, sizeCandX and cntCandX respectively; otherwise, the operation defined in this clause is not performed.

[0081] a) Initialize X to 0 and cntCur to 0.

[0082] b) If CntIntraHmvp is equal to 0, IntraHmvpCandidateList[CntIntraHmvp] is the intra-frame prediction motion information of the current prediction unit, and CntIntraHmvp is increased by 1.

[0083] c) Otherwise, determine whether the intra prediction motion information of the current prediction block is the same as IntraHmvpCandidateList[X] based on whether intraMvCur and intraMvCandX are equal:

[0084] 1) If intraMvCur and intraMvCandX are the same, execute step d), otherwise, increase X by 1;

[0085] 2) If X is less than CntIntraHmvp, execute step c); otherwise, execute step e).

[0086] d) cntCur is equal to the value of cntCandX plus 1. If sizeCur is less than sizeCandX, the current sizeCur is equal to sizeCandX.

[0087] e) If X is less than CntIntraHmvp, then:

[0088] 1) i is from X to CntIntraHmvp-1, let IntraHmvpCandidateList[i] equal to IntraHmvpCandidateList[i+1];

[0089] 2) IntraHmvpCandidateList[CntIntraHmvp-1] is equal to the intra prediction motion information of the current prediction unit.

[0090] f) Otherwise, if X is equal to CntIntraHmvp and CntIntraHmvp is equal to NumOfIntraHmvpCand, then:

[0091] 1) i ranges from 0 to CntIntraHmvp-1, and IntraHmvpCandidateList[i] is equal to IntraHmvpCandidateList[i+1];

[0092] 2) IntraHmvpCandidateList[CntIntraHmvp-1] is equal to the intra prediction motion information of the current prediction unit.

[0093] g) Otherwise, if X is equal to CntIntraHmvp and CntIntraHmvp is less than NumOfIntraHmvpCand, then IntraHmvpCandidateList[CntIntraHmvp] is equal to the intra prediction motion information of the current prediction unit, and CntIntraHmvp is increased by 1.

[0094] In the current AVS3 standard, when performing displacement vector prediction, the candidate motion information list is constructed and the prediction block vector (BVP) or prediction string vector (SVP) is derived only by constructing the intra-frame prediction history motion information (IntraHMVP) table. The maximum length of the IntraHMVP is 12, and the maximum length of the candidate motion information list is 7. When the length of the IntraHMVP is insufficient or empty, the candidate motion information list cannot be filled, resulting in a failure to provide enough motion information for displacement vector prediction.

[0095] The present application proposes a method for constructing a motion information list, which is used in combination with a historical motion information list. For example, when the candidate motion information is insufficient, the method provides additional motion information for the candidate motion information list to provide sufficient motion information for displacement vector prediction, thereby improving the compression performance of the video.

[0096] like Figure 6 , which shows a simplified block diagram of a communication system provided by an embodiment of the present application. The communication system 200 includes a plurality of devices, which can communicate with each other through, for example, a network 250. For example, the communication system 200 includes a first device 210 and a second device 220 interconnected through the network 250. Figure 6In an embodiment, the first device 210 and the second device 220 perform unidirectional data transmission. For example, the first device 210 may encode video data, such as a video picture stream captured by the first device 210, for transmission to the second device 220 via the network 250. The encoded video data is transmitted in the form of one or more encoded video code streams. The second device 220 may receive the encoded video data from the network 250, decode the encoded video data to recover the video data, and display the video picture based on the recovered video data. Unidirectional data transmission is more common in applications such as media services.

[0097] In another embodiment, the communication system 200 includes a third device 230 and a fourth device 240 that perform bidirectional transmission of encoded video data, which may occur, for example, during a video conference. For bidirectional data transmission, each of the third device 230 and the fourth device 240 may encode video data (e.g., a video picture stream collected by the device) for transmission to the other of the third device 230 and the fourth device 240 via the network 250. Each of the third device 230 and the fourth device 240 may also receive encoded video data transmitted by the other of the third device 230 and the fourth device 240, and may decode the encoded video data to recover the video data, and may display the video picture on an accessible display device based on the recovered video data.

[0098] exist Figure 6 In the embodiment of the present invention, the first device 210, the second device 220, the third device 230 and the fourth device 240 may be computer devices such as servers, personal computers and smart phones, but the principles disclosed in the present application may not be limited thereto. The present application embodiment is applicable to PC (Personal Computer), mobile phones, tablet computers, media players and / or dedicated video conferencing equipment. The network 250 represents any number of networks that transmit encoded video data between the first device 210, the second device 220, the third device 230 and the fourth device 240, including, for example, wired and / or wireless communication networks. The communication network 250 can exchange data in circuit switching and / or packet switching channels. The network may include a telecommunications network, a local area network, a wide area network and / or the Internet. For the purpose of the present application, unless explained below, the architecture and topology of the network 250 may be irrelevant to the operation disclosed in the present application.

[0099] As an example, Figure 7The video encoder and the video decoder are shown in a streaming environment. The subject matter disclosed in the present application is equally applicable to other video-supported applications, including, for example, video conferencing, digital TV, storing compressed video on digital media including CD (Compact Disc), DVD (Digital Versatile Disc), memory stick, etc.

[0100] The streaming system may include an acquisition subsystem 313, which may include a video source 301 such as a digital camera, which creates an uncompressed video picture stream 302. In an embodiment, the video picture stream 302 includes samples taken by a digital camera. The video picture stream 302 is depicted as a thick line to emphasize the high data volume of the video picture stream compared to the encoded video data 304 (or the encoded video code stream), and the video picture stream 302 can be processed by an electronic device 320, which includes a video encoder 303 coupled to the video source 301. The video encoder 303 may include hardware, software, or a combination of hardware and software to implement or implement various aspects of the disclosed subject matter as described in more detail below. Compared to the video picture stream 302, the encoded video data 304 (or the encoded video code stream 304) is depicted as a thin line to emphasize the lower data volume of the encoded video data 304 (or the encoded video code stream 304), which can be stored on the streaming server 305 for future use. One or more streaming client subsystems, such as Figure 7 , can access the streaming server 305 to retrieve the copies 307 and 309 of the encoded video data 304. The client subsystem 306 can include, for example, a video decoder 310 in an electronic device 330. The video decoder 310 decodes the incoming copy 307 of the encoded video data and produces an output video picture stream 311 that can be presented on a display 312 (e.g., a display screen) or another presentation device (not depicted). In some streaming systems, the encoded video data 304, video data 307, and video data 309 (e.g., video bitstreams) can be encoded according to certain video encoding / compression standards.

[0101] It should be noted that the electronic device 320 and the electronic device 330 may include other components (not shown). For example, the electronic device 320 may include a video decoder (not shown), and the electronic device 330 may also include a video encoder (not shown). The video decoder is used to decode the received encoded video data; the video encoder is used to encode the video data.

[0102] It should be noted that the technical solution provided in the embodiments of the present application can be applied to the H.266 / VVC standard, the H.265 / HEVC standard, AVS (such as AVS3) or the next-generation video coding and decoding standard, and the embodiments of the present application are not limited to this.

[0103] Another point that needs to be explained is that the execution subject of each step of the method provided in the embodiment of the present application can be a decoding end device or an encoding end device. In the process of video decoding and video encoding, the technical solution provided in the embodiment of the present application can be used to construct a motion information list. Both the decoding end device and the encoding end device can be computer devices, which refer to electronic devices with data calculation, processing and storage capabilities, such as PCs, mobile phones, tablet computers, media players, dedicated video conferencing equipment, servers, etc.

[0104] In addition, the method provided in the present application can be used alone or in combination with other methods in any order. The encoder and decoder based on the method provided in the present application can be implemented by one or more processors or one or more integrated circuits.

[0105] In an exemplary embodiment, taking the decoding end as an example, the derivation of the predicted displacement vector may include the following three steps:

[0106] 1. Use a historical motion information list to record the motion information of the historical prediction unit (such as a decoded block or a decoded string) during the decoding process in a first-in first-out (FIFO) manner;

[0107] 2. When decoding the displacement vector of the current prediction unit (such as the current block or the current string), the candidate motion information list is derived from the historical motion information list combined with other motion information;

[0108] 3. Obtain the position (or index) of the predicted displacement vector of the current prediction unit in the candidate motion information list from the bitstream, and derive the predicted displacement vector of the current prediction unit.

[0109] In the embodiment of the present application, the historical prediction unit refers to an encoded (or decoded) image unit, which may include one or more pixels, and the image unit may be in block or string form. For the IBC prediction mode, the historical prediction unit is also called a historical block, which refers to an encoded (or decoded) image block. For the ISC prediction mode, the historical prediction unit is also called a historical string, which refers to an encoded (or decoded) image string.

[0110] The current prediction unit refers to the image unit currently encoded (or decoded), and the image unit may also include one or more pixels, and the image unit may be in a block or in a string.

[0111] The present application proposes a method for constructing a motion information list, which can provide additional motion information for the candidate motion information list when the motion information in the candidate motion information list is insufficient. The technical solution of the present application is described below through several embodiments.

[0112] Please refer to Figure 8 , which shows a flow chart of a method for constructing a motion information list in video encoding and decoding provided by an embodiment of the present application. For the sake of convenience, only the computer device is used as the subject of each step for introduction and description. The method may include the following steps (801-802):

[0113] Step 801: construct a spatial motion information list, where the spatial motion information list includes motion information of spatially adjacent blocks of a current coding / decoding block, where the spatially adjacent blocks include at least an ISC block.

[0114] In an embodiment of the present application, the spatially adjacent block of the current codec block refers to a codec block that belongs to the same image as the current codec block and is adjacent to the current codec block in spatial position. The so-called "adjacent" here can be a distance from the current codec block that is less than a threshold, and the threshold can be set in combination with actual conditions. In addition, the calculation method of the distance between the two codec blocks can also be flexibly set, for example, it can be the distance between the upper left corner coordinates of the two codec blocks, or the distance between the upper left corner horizontal coordinates (or vertical coordinates) of the two codec blocks, or the distance between the center positions of the two codec blocks, or the shortest distance between the two codec blocks, etc., which is not limited in the embodiment of the present application. In an example, assuming that the upper left corner coordinates of the current codec block are (x0, y0), and the upper left corner coordinates of another codec block are (x1, y1), if the condition |x0-x1|<a or |y0-y1|<b is met, it is determined that the other codec block belongs to the spatially adjacent block of the current codec block. Among them, the values ​​of a and b can be equal or unequal. Exemplarily, a=b=8.

[0115] Spatial adjacent blocks include spatial adjacent blocks and spatial non-adjacent blocks. Among them, the spatial adjacent blocks of the current codec block refer to codec blocks that belong to the same image as the current codec block and are adjacent to and adjacent to the current codec block in spatial position. The so-called "adjacent and adjacent" may refer to edges or vertices that overlap with the current codec block. For example, Fig. 9As shown, the spatially adjacent blocks of the current codec block F may include codec blocks A, B, C, D, E, etc. The spatially non-adjacent blocks of the current codec block refer to codec blocks that belong to the same image as the current codec block and are adjacent to and non-adjacent to the current codec block in spatial position. The so-called "adjacent and non-adjacent" may mean that the distance between the current codec block and the current codec block is less than a threshold, but there is no overlapping edge or vertex with the current codec block. For example, Fig. 9 As shown, the spatial non-adjacent blocks of the current codec block F may include codec blocks A′, B′, C′, D′, E′, etc.

[0116] In an embodiment of the present application, the spatially adjacent block includes an ISC block, and the so-called "ISC block" refers to a codec block that uses an ISC prediction mode for motion vector prediction. Optionally, the spatially adjacent block includes at least one of the following: a spatially adjacent ISC block and a spatially non-adjacent ISC block. Among them, the spatially adjacent ISC block of the current codec block refers to the spatially adjacent block of the current codec block and the spatially adjacent block is an ISC block. The spatially non-adjacent ISC block of the current codec block refers to the spatially non-adjacent block of the current codec block and the spatially non-adjacent block is an ISC block.

[0117] Optionally, the spatially adjacent blocks also include IBC blocks, and the so-called "IBC blocks" refer to codec blocks that use the IBC prediction mode for motion vector prediction. Optionally, the spatially adjacent blocks also include at least one of the following: spatially adjacent IBC blocks and spatially non-adjacent IBC blocks. Among them, the spatially adjacent IBC blocks of the current codec block refer to the spatially adjacent blocks of the current codec block and the spatially adjacent blocks are IBC blocks. The spatially non-adjacent IBC blocks of the current codec block refer to the spatially non-adjacent blocks of the current codec block and the spatially non-adjacent blocks are IBC blocks.

[0118] Optionally, in the case where the spatial adjacent blocks include an ISC block, since an ISC block may include one or more codec strings (or referred to as "ISC string" or "string", etc., but those skilled in the art may understand its meaning), the motion information of the ISC block may include the SV of a codec string in the ISC block, or may include the SVs of multiple codec strings in the ISC block, or may include one or more SVs determined based on the SV of one / multiple codec strings in the ISC block, and the embodiments of the present application are not limited to this.

[0119] Exemplarily, when the spatial adjacent block includes an ISC block, the motion information of the ISC block includes at least one of the following:

[0120] 1. The SV of the first codec string in the ISC block in the scanning order;

[0121] 2. The SV of the last codec string in the scan order in the ISC block;

[0122] 3. The average of the SV of the first codec string and the SV of the last codec string in the scan order in the ISC block;

[0123] 4. The weighted average of the SV of the first codec string and the SV of the last codec string in the scan order in the ISC block;

[0124] 5. SV of multiple codec strings in ISC block.

[0125] Of course, the motion information of the ISC block listed above is only exemplary and explanatory, and the embodiment of the present application is not limited to other implementation methods.

[0126] In an exemplary embodiment, the spatial neighboring blocks mentioned above include: Fig. 9 The spatial adjacent blocks A~E and the spatial non-adjacent blocks A'~E' shown all refer to the minimum decoding unit, that is, the minimum size of the CU allowed to be divided (such as 4*4). For any spatial adjacent block, if the spatial adjacent block is an IBC block or an ISC block, the BV or SV information corresponding to it refers to the BV or SV information of the entire codec block where the spatial adjacent block (4*4 small block) is located. When storing the BV or SV information of a codec block, the BV or SV information corresponding to each minimum decoding unit (such as a 4*4 small block) belonging to the codec block can be stored.

[0127] Optionally, when storing the SV corresponding to the minimum encoding and decoding unit, one of the following methods is included but is not limited to:

[0128] 1. Store the SV of the first codec string in the codec block;

[0129] 2. Store the SV of the last codec string in the codec block;

[0130] 3. Store the SV of the first codec string and the SV of the last codec string in the codec block;

[0131] 4. For spatially adjacent blocks, store the SV of the first codec string and the SV of the last codec string in the codec block; for spatially non-adjacent blocks, store the SV of the first codec string or the SV of the last codec string in the codec block.

[0132] Of course, the above-listed method of storing the SV corresponding to the minimum encoding and decoding unit is only exemplary and explanatory, and the embodiments of the present application do not limit other implementation methods.

[0133] Combination Fig. 9, assuming that the coordinates of the upper left corner of the current codec block F are (cur_x_pos, cur_y_pos), the width of the current codec block F is cu_width and the height is cu_height. The following Table 1 shows the coordinates of the upper left corners of the spatial neighboring blocks A to E of the current codec block F. In Table 1, neig_x_pos represents the abscissa of the coordinates of the upper left corner of the spatial neighboring block, neig_y_pos represents the ordinate of the coordinates of the upper left corner of the spatial neighboring block, and the size of the spatial neighboring blocks A to E is 4*4.

[0134] Table 1

[0135]

[0136]

[0137] The following Table 2 shows the upper left corner coordinates of the spatial non-adjacent blocks A′ to E′ of the current coding block F. In Table 2, neig_x_pos represents the abscissa of the upper left corner coordinates of the spatial non-adjacent blocks, neig_y_pos represents the ordinate of the upper left corner coordinates of the spatial non-adjacent blocks, and the size of the spatial non-adjacent blocks A′ to E′ is also 4*4.

[0138] Table 2

[0139] Spatial non-adjacent block locations neig_x_pos neig_y_pos Left(A′) cur_x_pos-8 cur_y_pos+cu_height / 2 Up (B′) cur_x_pos+cu_width / 2 cur_y_pos-8 Upper left (C′) cur_x_pos-8 cur_y_pos-8 Upper right (D′) cur_x_pos+cu_width cur_y_pos-8 Lower left (E′) cur_x_pos-8 cur_y_pos+cu_height

[0140] Step 802: When there is insufficient motion information in the candidate motion information list, obtain at least one motion information from the spatial motion information list, and use the at least one motion information to fill the candidate motion information list.

[0141] The candidate motion information list is used to provide candidate prediction displacement vectors for the current codec block.

[0142] In one example, when the current codec block is an IBC block, if the motion information in the candidate motion information list is insufficient, at least one motion information is obtained from the spatial motion information list, and the candidate motion information list is filled with the at least one motion information.

[0143] In another example, when the current codec block is an ISC block, if the motion information in the candidate motion information list is insufficient, at least one motion information is obtained from the spatial motion information list, and the candidate motion information list is filled with the at least one motion information.

[0144] In addition, insufficient motion information in the candidate motion information list may refer to that the length of the candidate motion information list is less than a threshold value. The length of the candidate motion information list refers to the number of motion information included in the candidate motion information list. Optionally, the threshold value is the maximum length of the candidate motion information list. For example, assuming that the maximum length of the candidate motion information list is 7, then when the length of the candidate motion information list is less than 7, additional motion information is used to fill the candidate motion information list. Optionally, the threshold value is less than the maximum length of the candidate motion information list. For example, assuming that the maximum length of the candidate motion information list is 7, the threshold value can be set to 5. Then, when the length of the candidate motion information list is less than 5, additional motion information is used to fill the candidate motion information list.

[0145] The candidate motion information list is filled by adding at least one motion information obtained from the spatial motion information list to the candidate motion information list.

[0146] In one example, the at least one motion information is directly added to the candidate motion information list without performing a duplicate check. For example, when the candidate motion information list is empty, the at least one motion information can be directly added to the candidate motion information list without performing a duplicate check; or, even when the candidate motion information list is not empty, the at least one motion information can be directly added to the candidate motion information list without performing a duplicate check.

[0147] In another example, the motion information to be added is checked for duplicates with the existing motion information in the candidate motion information list; the candidate motion information list is updated according to the result of the check for duplicates. For example, if the motion information to be added is the same as an existing motion information (recorded as target motion information) in the candidate motion information list, it means that there is a duplication, and the computer device may delete the target motion information from the candidate motion information list, and then add the motion information to be added to the candidate motion information list, or may not add the motion information to be added to the candidate motion information list. Optionally, the motion information is added one by one to the candidate motion information list, and each added motion information is checked for duplicates with the existing motion information in the list. Of course, the above-described method of checking for duplicates is only exemplary and explanatory, and the embodiments of the present application do not limit the use of other methods.

[0148] In one example, the candidate motion information list is used to provide candidate BVPs for the IBC block. When the current codec block is an IBC block, the encoder can find the index of the BVP of the current block from the candidate motion information list and encode the index into the bitstream; the decoder can obtain the index of the BVP of the current block from the bitstream, and then derive the BVP of the current block from the candidate motion information list based on the index. In an embodiment of the present application, the candidate motion information list of the current block is filled with the motion information of the spatially adjacent ISC blocks (optionally also including the spatially adjacent IBC blocks), thereby providing more and more effective candidate BVPs for the current block, which helps to improve the compression performance of the video.

[0149] In another example, the candidate motion information list is used to provide candidate SVPs for the ISC block. When the current codec block is an ISC block, the encoder can find the index of the SVP of the current string from the candidate motion information list and encode the index into the bitstream; the decoder can obtain the index of the SVP of the current string from the bitstream, and then derive the SVP of the current string from the candidate motion information list based on the index. In an embodiment of the present application, the candidate motion information list of the current string is filled with the motion information of the spatially adjacent ISC blocks (optionally also including the spatially adjacent IBC blocks), thereby providing more and more effective candidate SVPs for the current string, which helps to improve the compression performance of the video.

[0150] In another example, the candidate motion information list is used to provide candidate BVPs for IBC blocks and candidate SVPs for ISC strings. That is, IBC blocks and ISC strings can share the same candidate motion information list, thereby eliminating the need to maintain multiple candidate motion information lists and reducing the complexity of encoding and decoding.

[0151] By adopting the technical solution provided in the embodiment of the present application, on the one hand, motion information can be derived from the historical motion information list and filled into the candidate motion information list, and on the other hand, motion information can be derived from the spatial motion information list and filled into the candidate motion information list. The arrangement positions of the above two different sources of motion information in the candidate motion information list include but are not limited to the following possible implementation methods:

[0152] 1. The position of the motion information derived from the spatial motion information list in the candidate motion information list is before the position of the motion information derived from the historical motion information list in the candidate motion information list.

[0153] 2. The position of the motion information derived from the spatial motion information list in the candidate motion information list is located after the position of the motion information derived from the historical motion information list in the candidate motion information list.

[0154] 3. The motion information derived from the spatial motion information list is located at a set position in the candidate motion information list.

[0155] 4. When there is no motion information in at least one position in the candidate motion information list, the motion information derived from the spatial motion information list is filled into the at least one position.

[0156] For the above point 3, for example, there are 7 positions from 0 to 6 in the candidate motion information list, and the spatial motion information list includes Fig. 9 In the figure, there are motion information of five spatially adjacent blocks, namely A, B, C, D, and E. Then the above seven positions can be filled with motion information of A, B, A, B, C, D, and E respectively. For another example, the above seven positions can also be filled with motion information of A.

[0157] For the above-mentioned point 4, when filling in, fill in the above-mentioned at least one position in the order of the motion information in the spatial motion information list. For example, the spatial motion information list includes the motion information of 5 spatial adjacent blocks A, B, C, D, and E in order, and the 1st, 3rd, and 4th positions in the candidate motion information list are empty, then the motion information of A can be filled in the 1st position of the candidate motion information list, the motion information of B can be filled in the 3rd position of the candidate motion information list, and the motion information of C can be filled in the 4th position of the candidate motion information list. Alternatively, fill in the above-mentioned at least one position with the motion information of the specified position in the spatial motion information list. For example, the spatial motion information list includes motion information of five spatially adjacent blocks, A, B, C, D, and E, in order. The 1st, 3rd, and 4th positions in the candidate motion information list are empty. The motion information of the specified positions (such as the 1st and 2nd positions) in the spatial motion information list is filled into the above three positions. Then, in an example, the motion information of A can be filled into the 1st position of the candidate motion information list, the motion information of B can be filled into the 3rd position of the candidate motion information list, and the motion information of A can be filled into the 4th position of the candidate motion information list.

[0158] Taking the candidate motion information list as the CBVP list introduced above as an example, if the motion information in a certain category is insufficient (for example, the motion information of this category is not exported from the historical motion information list or the exported amount is insufficient), then if the spatial motion information list contains the motion information of this category, the motion information of this category can be exported from the spatial motion information list and added to this category.

[0159] Optionally, when the motion information in the candidate motion information list is insufficient, preset motion information may be used to fill the candidate motion information list. The preset motion information may be pre-specified in a standard or protocol. For example, the preset motion information includes a displacement vector (0,0).

[0160] In one example, if the motion information in a certain category is insufficient (for example, the motion information of this category does not exist in the historical motion information list), and the motion information of this category does not exist in the spatial motion information list or the spatial motion information list cannot provide sufficient motion information, then the preset motion information (such as (0,0)) can be used to fill the candidate motion information list.

[0161] To summarize, the technical solution provided in the embodiment of the present application expands the content of the candidate motion information list by filling in the motion information contained in the candidate motion information list with spatially adjacent motion information when the motion information contained in the candidate motion information list is insufficient, thereby providing more and more effective displacement vectors in the candidate motion information list, so as to achieve better displacement vector prediction effects and improve the compression performance of the video.

[0162] Since the current codec block may have multiple spatial adjacent blocks, such as spatial adjacent blocks at multiple different positions, such as left, top, top left, top right, bottom left, etc., when constructing the spatial motion information list, the motion information of the spatial adjacent blocks can be selected in a certain order and added to the spatial motion information list. The following describes the construction process of the spatial motion information list through several examples.

[0163] Example 1: Building an airspace movement information list may include the following steps:

[0164] 1. Detect whether there is available motion information of spatial adjacent blocks in the current codec block;

[0165] In the embodiment of the present application, spatially adjacent blocks include spatially adjacent ISC blocks, and optionally also include spatially adjacent IBC blocks.

[0166] Taking the example that the spatially adjacent blocks include the spatially adjacent ISC blocks, if the current codec block has a spatially adjacent ISC block, and the ISC block can provide available motion information (such as the motion information of the ISC block is stored), then it is determined that the current codec block has available motion information of the spatially adjacent blocks; otherwise, if the current codec block does not have a spatially adjacent ISC block, or even if there is a spatially adjacent ISC block but the ISC block cannot provide available motion information (such as the motion information of the ISC block is not stored), then it is determined that the current codec block does not have available motion information of the spatially adjacent blocks.

[0167] 2. If the current codec block has available motion information of the spatial neighboring blocks, obtain the available motion information of the spatial neighboring blocks and add it to the spatial motion information list;

[0168] 3. If the current codec block does not have available motion information of spatially adjacent blocks, or the constructed spatial motion information list is not filled, then detect whether the current codec block has available motion information of spatially non-adjacent blocks;

[0169] In the embodiment of the present application, the spatial non-adjacent blocks include at least one of the spatial non-adjacent ISC blocks and the spatial non-adjacent IBC blocks. In addition, the explanation of the motion information of the available spatial non-adjacent blocks can refer to the explanation of the motion information of the available spatial adjacent blocks, which will not be repeated here.

[0170] 4. If the current codec block has available motion information of spatial non-adjacent blocks, obtain the available motion information of spatial non-adjacent blocks and add it to the spatial motion information list.

[0171] In addition, if the current coding block does not have available motion information of spatially adjacent blocks and spatially non-adjacent blocks, it means that no additional motion information can be provided for the candidate motion information list from the spatially adjacent blocks.

[0172] In addition, when there are multiple spatially adjacent blocks in the current codec block, the spatially adjacent blocks can be detected one by one in the first set order to see whether there is available motion information; similarly, when there are multiple spatially non-adjacent blocks in the current codec block, the spatially non-adjacent blocks can be detected one by one in the second set order to see whether there is available motion information. Fig. 9 , the first setting sequence may be A→B→C→D→E, and the second setting sequence may be A′→B′→C′→D′→E′. Of course, the description of the first setting sequence and the second setting sequence here is only exemplary and explanatory, and the present application does not limit the use of other sequences.

[0173] In this example, the motion information of spatially adjacent blocks is preferentially used to fill the candidate motion information list. When the spatially adjacent blocks cannot provide available motion information or the available motion information provided is insufficient, the motion information of spatially non-adjacent blocks is used to fill the candidate motion information list, so as to ensure the filling effect of the candidate motion information list as much as possible.

[0174] Example 2: Building an airspace movement information list may include the following steps:

[0175] 1. Traverse multiple position groups in a set order, each position group includes a spatially adjacent block and a spatially non-adjacent block;

[0176] 2. For each position group, detect whether there is available motion information for the spatially adjacent blocks contained in the position group;

[0177] 3. If there is available motion information for the spatial adjacent blocks, obtain the available motion information of the spatial adjacent blocks and add it to the spatial motion information list;

[0178] 4. If there is no available motion information for the spatially adjacent block, then detect whether there is available motion information for the spatially non-adjacent block included in the position group;

[0179] 5. If there is available motion information for the spatial non-adjacent blocks, obtain the available motion information of the spatial non-adjacent blocks and add it to the spatial motion information list.

[0180] In addition, if there is no available motion information for non-adjacent blocks in the spatial domain, it means that the position group cannot provide available motion information.

[0181] For example, refer to Fig. 9 , including 5 position groups: (A, A′), (B, B′), (C, C′), (D, D′), (E, E′). The above setting order can be {A→A′, B→B′, C→C′, D→D′, E→E′}. For example, for each position X (including spatially adjacent blocks and spatially non-adjacent blocks, X=A, B, C, D, E), first check whether the spatially adjacent block X is an ISC block. If so, obtain its corresponding SV, and then turn to the next position; otherwise, check whether the spatially non-adjacent block X′ is an ISC or IBC block. If so, obtain its corresponding SV or BV; otherwise, consider that the position is unavailable and turn to the next position. Of course, the introduction and description of the setting order here is only exemplary and explanatory, and the present application does not limit the use of other orders.

[0182] In this example, multiple position groups are traversed in a set order to select motion information of spatially adjacent blocks. For each position group, the motion information of spatially adjacent blocks is preferentially used. When the spatially adjacent blocks cannot provide available motion information, the motion information of spatially non-adjacent blocks is used to ensure the filling effect of the candidate motion information list as much as possible.

[0183] Example 3: Building an airspace movement information list may include the following steps:

[0184] 1. Detect whether there is available motion information of non-adjacent blocks in the spatial domain for the current codec block;

[0185] In an embodiment of the present application, the spatially non-adjacent blocks include at least one of spatially non-adjacent ISC blocks and spatially non-adjacent IBC blocks.

[0186] 2. If the current codec block has available motion information of non-adjacent blocks in the spatial domain, obtain the available motion information of non-adjacent blocks in the spatial domain and add it to the spatial motion information list;

[0187] 3. If there is no available motion information of spatial non-adjacent blocks in the current codec block, or the constructed spatial motion information list is not filled, then detect whether there is available motion information of spatial adjacent blocks in the current codec block;

[0188] In the embodiment of the present application, spatially adjacent blocks include spatially adjacent ISC blocks, and optionally also include spatially adjacent IBC blocks.

[0189] 4. If there is available motion information of spatial neighboring blocks for the current codec block, the available motion information of the spatial neighboring blocks is obtained and added to the spatial motion information list.

[0190] In addition, if the current coding block does not have available motion information of spatial non-adjacent blocks and spatial adjacent blocks, it means that no additional motion information can be provided for the candidate motion information list from the spatial adjacent blocks.

[0191] In addition, when there are multiple spatial non-adjacent blocks in the current codec block, the spatial non-adjacent blocks can be detected one by one in the second set order to see whether there is available motion information; similarly, when there are multiple spatial adjacent blocks in the current codec block, the spatial adjacent blocks can be detected one by one in the first set order to see whether there is available motion information. Fig. 9 , the first setting sequence may be A→B→C→D→E, and the second setting sequence may be A′→B′→C′→D′→E′. Of course, the description of the first setting sequence and the second setting sequence here is only exemplary and explanatory, and the present application does not limit the use of other sequences.

[0192] In this example, the motion information of spatially non-adjacent blocks is preferentially used to fill the candidate motion information list. When the spatially non-adjacent blocks cannot provide available motion information or the available motion information provided is insufficient, the motion information of the spatially adjacent blocks is used to fill the candidate motion information list, so as to ensure the filling effect of the candidate motion information list as much as possible.

[0193] Example 4: Building an airspace movement information list may include the following steps:

[0194] 1. Traverse multiple position groups in a set order, each position group includes a spatially adjacent block and a spatially non-adjacent block;

[0195] 2. For each position group, detect whether there is available motion information for the spatial non-adjacent blocks contained in the position group;

[0196] 3. If there is available motion information for the non-adjacent blocks in the spatial domain, obtain the available motion information of the non-adjacent blocks in the spatial domain and add it to the spatial motion information list;

[0197] 4. If there is no available motion information for the spatial non-adjacent block, then detect whether there is available motion information for the spatial adjacent block included in the position group;

[0198] 5. If there is available motion information for the spatial neighboring blocks, obtain the available motion information of the spatial neighboring blocks and add it to the spatial motion information list.

[0199] In addition, if there is no available motion information for the spatially adjacent blocks, it means that the position group cannot provide available motion information.

[0200] For example, refer to Fig. 9 , including 5 position groups: (A, A′), (B, B′), (C, C′), (D, D′), (E, E′). The above setting order can be {A′→A, B′→B, C′→C, D′→D, E′→E}. For example, for each position X (including spatially adjacent blocks and spatially non-adjacent blocks, X=A, B, C, D, E), first check whether the spatially non-adjacent block X′ is an ISC or IBC block. If so, obtain its corresponding SV or BV, and then turn to the next position; otherwise, check whether the spatially adjacent block X is an ISC block. If so, obtain its corresponding SV; otherwise, consider that the position is unavailable and turn to the next position. Of course, the introduction and description of the setting order here is only exemplary and explanatory, and the present application does not limit the use of other orders.

[0201] In this example, multiple position groups are traversed in a set order to select motion information of spatially adjacent blocks. For each position group, the motion information of spatially non-adjacent blocks is preferentially used. When spatially non-adjacent blocks cannot provide available motion information, the motion information of spatially adjacent blocks is used to ensure the filling effect of the candidate motion information list as much as possible.

[0202] Example 5: Building an airspace movement information list may include the following steps:

[0203] 1. Detect whether there is available motion information of spatial adjacent blocks in the current codec block;

[0204] In the embodiment of the present application, spatially adjacent blocks include spatially adjacent ISC blocks, and optionally also include spatially adjacent IBC blocks.

[0205] 2. If there is available motion information of spatial neighboring blocks for the current codec block, the available motion information of the spatial neighboring blocks is obtained and added to the spatial motion information list.

[0206] In addition, if the current coding block does not have available motion information of spatially adjacent blocks, it means that no additional motion information can be provided for the candidate motion information list from the spatially adjacent blocks.

[0207] In one example, multiple positions are traversed in a set order, each position includes a spatially neighboring block; for each position, it is detected whether there is available motion information of the spatially neighboring block at the position; if there is available motion information for the spatially neighboring block, the available motion information of the spatially neighboring block is obtained and added to the spatial motion information list.

[0208] For example, when there are multiple spatially adjacent blocks in the current coding block, the spatially adjacent blocks can be checked one by one in the first set order to see whether there is available motion information. Fig. 9 , the first setting sequence may be A→B→C→D→E. Of course, the description of the first setting sequence here is only exemplary and explanatory, and the present application does not limit the use of other sequences.

[0209] The embodiments of the present application provide a variety of ways to construct an airspace motion information list. Of course, the present application is not limited to other ways to construct an airspace motion information list, which can be flexibly designed.

[0210] The following is an embodiment of the device of the present application, which can be used to execute the embodiment of the method of the present application. For details not disclosed in the embodiment of the device of the present application, please refer to the embodiment of the method of the present application.

[0211] Please refer to Fig.10 , which shows a block diagram of a motion information list construction device in video encoding and decoding provided by an embodiment of the present application. The device has the function of implementing the above method example, and the function can be implemented by hardware, or by hardware executing corresponding software. The device can be the computer device introduced above, and can also be set on a computer device. The device 1000 can include: a list construction module 1010 and a list filling module 1020.

[0212] The list construction module 1010 is used to construct a spatial motion information list, wherein the spatial motion information list includes motion information of spatially adjacent blocks of a current coding and decoding block, and the spatially adjacent blocks include at least an ISC block.

[0213] The list filling module 1020 is used to obtain at least one motion information from the spatial motion information list when the motion information in the candidate motion information list is insufficient, and use the at least one motion information to fill the candidate motion information list; wherein the candidate motion information list is used to provide candidate prediction displacement vectors for the current codec block.

[0214] In an exemplary embodiment, the spatially adjacent blocks include at least one of the following: spatially adjacent ISC blocks and spatially non-adjacent ISC blocks.

[0215] In an exemplary embodiment, the spatially adjacent blocks further include at least one of the following: spatially adjacent IBC blocks and spatially non-adjacent IBC blocks.

[0216] In an exemplary embodiment, the candidate motion information list is used to provide candidate BVPs for an IBC block; or, the candidate motion information list is used to provide candidate SVPs for an ISC string; or, the candidate motion information list is used to provide candidate BVPs for an IBC block and candidate SVPs for an ISC string.

[0217] In an exemplary embodiment, when the spatial neighboring block includes an ISC block, the motion information of the ISC block includes at least one of the following:

[0218] The string vector SV of the first codec string in the scan order in the ISC block;

[0219] The SV of the last codec string in the scan order in the ISC block;

[0220] The average of the SV of the first codec string and the SV of the last codec string in the scanning order in the ISC block;

[0221] A weighted average of the SV of the first codec string and the SV of the last codec string in the scan order in the ISC block;

[0222] The SVs of multiple codec strings in the ISC block.

[0223] In an exemplary embodiment, the list building module 1010 is used to:

[0224] Detecting whether there is available motion information of spatially adjacent blocks for the current coding / decoding block, wherein the spatially adjacent blocks include spatially adjacent ISC blocks;

[0225] If the current coding block has the available motion information of the spatial neighboring block, obtaining the available motion information of the spatial neighboring block and adding it to the spatial motion information list;

[0226] If the current codec block does not have the available motion information of the spatially adjacent block, or the constructed spatial motion information list is not filled, detecting whether the current codec block has available motion information of spatially non-adjacent blocks, where the spatially non-adjacent blocks include at least one of spatially non-adjacent ISC blocks and spatially non-adjacent IBC blocks;

[0227] If the current coding block has the available motion information of the spatial non-adjacent block, the motion information of the available spatial non-adjacent block is obtained and added to the spatial motion information list.

[0228] In an exemplary embodiment, the list building module 1010 is used to:

[0229] Traverse multiple position groups in a set order, each position group includes a spatially adjacent block and a spatially non-adjacent block;

[0230] For each position group, detecting whether there is available motion information of the spatially adjacent blocks included in the position group;

[0231] If there is available motion information of the spatial neighboring block, obtaining the available motion information of the spatial neighboring block and adding it to the spatial motion information list;

[0232] If there is no available motion information for the spatially adjacent block, detecting whether there is available motion information for the spatially non-adjacent block included in the position group;

[0233] If there is available motion information for the spatial non-adjacent blocks, the available motion information of the spatial non-adjacent blocks is obtained and added to the spatial motion information list.

[0234] In an exemplary embodiment, the list building module 1010 is used to:

[0235] Detecting whether the current coding block has available motion information of spatially non-adjacent blocks, where the spatially non-adjacent blocks include at least one of spatially non-adjacent ISC blocks and spatially non-adjacent IBC blocks;

[0236] If the current coding block has the available motion information of the spatial non-adjacent block, obtaining the available motion information of the spatial non-adjacent block and adding it to the spatial motion information list;

[0237] If the current codec block does not have the available motion information of the spatial non-adjacent block, or the constructed spatial motion information list is not filled, detecting whether the current codec block has available motion information of the spatial adjacent blocks, where the spatial adjacent blocks include spatially adjacent ISC blocks;

[0238] If the current coding block has the available motion information of the spatial neighboring block, the motion information of the available spatial neighboring block is obtained and added to the spatial motion information list.

[0239] In an exemplary embodiment, the list building module 1010 is used to:

[0240] Traverse multiple position groups in a set order, each position group includes a spatially adjacent block and a spatially non-adjacent block;

[0241] For each position group, detecting whether there is available motion information of spatial non-adjacent blocks included in the position group;

[0242] If there is available motion information of the spatial non-adjacent block, obtaining the available motion information of the spatial non-adjacent block and adding it to the spatial motion information list;

[0243] If there is no available motion information for the spatial non-adjacent block, detecting whether there is available motion information for the spatial adjacent block included in the position group;

[0244] If there is available motion information for the spatial neighboring block, the available motion information of the spatial neighboring block is obtained and added to the spatial motion information list.

[0245] In an exemplary embodiment, the list building module 1010 is used to:

[0246] Traverse multiple positions in a set order, each position including a spatially adjacent block;

[0247] For each position, detecting whether there is available motion information of a spatially adjacent block of the position;

[0248] If there is available motion information for the spatial neighboring block, the available motion information of the spatial neighboring block is obtained and added to the spatial motion information list.

[0249] In an exemplary embodiment, the position of the motion information derived from the spatial motion information list in the candidate motion information list is before the position of the motion information derived from the historical motion information list in the candidate motion information list;

[0250] Alternatively, the position of the motion information derived from the spatial motion information list in the candidate motion information list is located after the position of the motion information derived from the historical motion information list in the candidate motion information list;

[0251] Alternatively, the motion information derived from the spatial motion information list is located at a set position in the candidate motion information list;

[0252] Alternatively, when there is no motion information at at least one position in the candidate motion information list, the motion information derived from the spatial motion information list is filled into the at least one position; when filling in, the at least one position is filled in sequence according to the order of the motion information in the spatial motion information list; or, the motion information of a specified position in the spatial motion information list is filled into the at least one position.

[0253] In an exemplary embodiment, the list filling module 1020 is further configured to fill the candidate motion information list with preset motion information when the motion information in the candidate motion information list is insufficient.

[0254] In an exemplary embodiment, the list filling module 1020 is further used to perform a duplication check and comparison between the motion information to be added and the existing motion information in the candidate motion information list; and update the candidate motion information list according to the duplication check and comparison result.

[0255] It should be noted that the device provided in the above embodiment, when implementing its functions, is only illustrated by the division of the above functional modules. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the device and method embodiments provided in the above embodiment belong to the same concept, and the specific implementation process is detailed in the method embodiment, which will not be repeated here.

[0256] Please refer to Fig.11 , which shows a block diagram of a computer device provided by an embodiment of the present application. The computer device may be the encoding end device described above, or the decoding end device described above. The computer device 150 may include: a processor 151, a memory 152, a communication interface 153, an encoder / decoder 154, and a bus 155.

[0257] The processor 151 includes one or more processing cores. The processor 151 executes various functional applications and information processing by running software programs and modules.

[0258] The memory 152 may be used to store a computer program, and the processor 151 may be used to execute the computer program to implement the motion information list construction method in the above-mentioned video encoding and decoding.

[0259] The communication interface 153 may be used to communicate with other devices, such as receiving and transmitting audio and video data.

[0260] The encoder / decoder 154 may be used to implement encoding and decoding functions, such as encoding and decoding audio and video data.

[0261] The memory 152 is connected to the processor 151 via a bus 155 .

[0262] In addition, the memory 152 can be implemented by any type of volatile or non-volatile storage device or a combination thereof. The volatile or non-volatile storage device includes but is not limited to: a magnetic disk or an optical disk, an EEPROM (Electrically Erasable Programmable Read-Only Memory), an EPROM (Erasable Programmable Read-Only Memory), an SRAM (Static Random-Access Memory), a ROM (Read-Only Memory), a magnetic storage device, a flash memory, and a PROM (Programmable read-only memory).

[0263] Those skilled in the art will understand that Fig.11 The structure shown in the figure does not constitute a limitation on the computer device 150, and the computer device 150 may include more or less components than those shown in the figure, or combine some components, or adopt a different arrangement of components.

[0264] In an exemplary embodiment, a computer-readable storage medium is also provided, in which at least one instruction, at least one program, a code set or an instruction set is stored. When the at least one instruction, the at least one program, the code set or the instruction set is executed by a processor, the motion information list construction method in the above-mentioned video encoding and decoding is implemented.

[0265] In an exemplary embodiment, a computer program product or a computer program is also provided, the computer program product or the computer program includes computer instructions, the computer instructions are stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the motion information list construction method in the video codec.

[0266] It should be understood that the "plurality" mentioned in this article refers to two or more. "And / or" describes the association relationship of the associated objects, indicating that there can be three relationships. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. The character " / " generally indicates that the associated objects are in an "or" relationship.

[0267] The above description is only an exemplary embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application shall be included in the protection scope of the present application.

Claims

1. A method for constructing a motion information list in video encoding and decoding, characterized in that: The method comprises: Constructing a spatial motion information list, wherein the spatial motion information list includes motion information of spatially adjacent blocks of a current coding and decoding block; When there is insufficient motion information in the candidate motion information list, obtaining at least one motion information from the spatial motion information list, and filling the candidate motion information list with the at least one motion information; The candidate motion information list is used to provide candidate prediction displacement vectors for the current codec block.

2. The method according to claim 1, characterized in that: The spatially adjacent blocks include at least one of the following: spatially adjacent intra-frame string copy (ISC) blocks and spatially non-adjacent ISC blocks.

3. The method according to claim 1 or 2, characterized in that: The spatially adjacent blocks include at least one of the following: spatially adjacent intra-block copy (IBC) blocks and spatially non-adjacent IBC blocks.

4. The method according to any one of claims 1 to 3, characterized in that: The candidate motion information list is used to provide a candidate prediction block vector BVP for the IBC block; or, The candidate motion information list is used to provide a candidate prediction string vector SVP for the ISC string; or, The candidate motion information list is used to provide candidate BVPs for the IBC block and candidate SVPs for the ISC string.

5. The method according to any one of claims 1 to 4, characterized in that: In the case where the spatial neighboring block includes an ISC block, the motion information of the ISC block includes at least one of the following: The string vector SV of the first codec string in the scan order in the ISC block; The SV of the last codec string in the scan order in the ISC block; The average of the SV of the first codec string and the SV of the last codec string in the scanning order in the ISC block; A weighted average of the SV of the first codec string and the SV of the last codec string in the scan order in the ISC block; The SVs of multiple codec strings in the ISC block.

6. The method according to any one of claims 1 to 5, characterized in that: The step of constructing the airspace movement information list includes: Detecting whether there is available motion information of spatially adjacent blocks for the current coding / decoding block, wherein the spatially adjacent blocks include spatially adjacent ISC blocks; If the current coding block has the available motion information of the spatial neighboring block, obtaining the available motion information of the spatial neighboring block and adding it to the spatial motion information list; If the current codec block does not have the available motion information of the spatially adjacent block, or the constructed spatial motion information list is not filled, detecting whether the current codec block has available motion information of spatially non-adjacent blocks, where the spatially non-adjacent blocks include at least one of spatially non-adjacent ISC blocks and spatially non-adjacent IBC blocks; If the current coding block has the available motion information of the spatial non-adjacent block, the motion information of the available spatial non-adjacent block is obtained and added to the spatial motion information list.

7. The method according to any one of claims 1 to 5, characterized in that: The step of constructing the airspace movement information list includes: Traverse multiple position groups in a set order, each position group includes a spatially adjacent block and a spatially non-adjacent block; For each position group, detecting whether there is available motion information of the spatially adjacent blocks included in the position group; If there is available motion information of the spatial neighboring block, obtaining the available motion information of the spatial neighboring block and adding it to the spatial motion information list; If there is no available motion information for the spatially adjacent block, detecting whether there is available motion information for the spatially non-adjacent block included in the position group; If there is available motion information for the spatial non-adjacent blocks, the available motion information of the spatial non-adjacent blocks is obtained and added to the spatial motion information list.

8. The method according to any one of claims 1 to 5, characterized in that: The step of constructing the airspace movement information list includes: Detecting whether the current coding block has available motion information of spatially non-adjacent blocks, where the spatially non-adjacent blocks include at least one of spatially non-adjacent ISC blocks and spatially non-adjacent IBC blocks; If the current coding block has the available motion information of the spatial non-adjacent block, obtaining the available motion information of the spatial non-adjacent block and adding it to the spatial motion information list; If the current codec block does not have the available motion information of the spatial non-adjacent block, or the constructed spatial motion information list is not filled, detecting whether the current codec block has available motion information of the spatial adjacent blocks, where the spatial adjacent blocks include spatially adjacent ISC blocks; If the current coding block has the available motion information of the spatial neighboring block, the motion information of the available spatial neighboring block is obtained and added to the spatial motion information list.

9. The method according to any one of claims 1 to 5, characterized in that: The step of constructing the airspace movement information list includes: Traverse multiple position groups in a set order, each position group includes a spatially adjacent block and a spatially non-adjacent block; For each position group, detecting whether there is available motion information of spatial non-adjacent blocks included in the position group; If there is available motion information of the spatial non-adjacent block, obtaining the available motion information of the spatial non-adjacent block and adding it to the spatial motion information list; If there is no available motion information for the spatial non-adjacent block, detecting whether there is available motion information for the spatial adjacent block included in the position group; If there is available motion information for the spatial neighboring block, the available motion information of the spatial neighboring block is obtained and added to the spatial motion information list.

10. The method according to any one of claims 1 to 5, characterized in that: The step of constructing the airspace movement information list includes: Traverse multiple positions in a set order, each position including a spatially adjacent block; For each position, detecting whether there is available motion information of a spatially adjacent block of the position; If there is available motion information for the spatial neighboring block, the available motion information of the spatial neighboring block is obtained and added to the spatial motion information list.

11. The method according to any one of claims 1 to 10, characterized in that: The position of the motion information derived from the spatial motion information list in the candidate motion information list is before the position of the motion information derived from the historical motion information list in the candidate motion information list; or, The position of the motion information derived from the spatial motion information list in the candidate motion information list is located after the position of the motion information derived from the historical motion information list in the candidate motion information list; or, The motion information derived from the spatial motion information list is located at a set position in the candidate motion information list; or, When there is no motion information at at least one position in the candidate motion information list, the motion information derived from the spatial motion information list is filled into the at least one position; when filling, the motion information is filled into the at least one position in sequence according to the order of the motion information in the spatial motion information list; or, the motion information at a specified position in the spatial motion information list is filled into the at least one position.

12. The method according to any one of claims 1 to 11, characterized in that: The method further comprises: When the motion information in the candidate motion information list is insufficient, the candidate motion information list is filled with preset motion information.

13. The method according to any one of claims 1 to 12, characterized in that: The using the at least one motion information to fill the candidate motion information list includes: Performing duplication check and comparison between the motion information to be added and the existing motion information in the candidate motion information list; The candidate motion information list is updated according to the duplicate checking and comparison results.

14. A motion information list construction device in video encoding and decoding, characterized in that: The device comprises: A list construction module, used to construct a spatial motion information list, wherein the spatial motion information list includes motion information of spatial adjacent blocks of a current coding and decoding block; A list filling module, configured to obtain at least one motion information from the spatial motion information list when the motion information in the candidate motion information list is insufficient, and fill the candidate motion information list with the at least one motion information; The candidate motion information list is used to provide candidate prediction displacement vectors for the current codec block.

15. A computer device, characterized in that: The computer device includes a processor and a memory, wherein the memory stores at least one program, and the at least one program is loaded and executed by the processor to implement the method according to any one of claims 1 to 13.

16. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores at least one program, and the at least one program is loaded and executed by a processor to implement the method according to any one of claims 1 to 13.

17. A computer program product, characterized in that The computer program product comprises a computer program, wherein the computer program is stored in a computer-readable storage medium, and a processor reads and executes the computer program from the computer-readable storage medium to implement the method according to any one of claims 1 to 13.