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

By adding additional motion information to the motion information list of video coded, the problem of insufficient displacement vector is solved and the compression performance of video is improved.

CN119788875APending Publication Date: 2025-04-08TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
CN202510049196.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2020-07-29
Publication Date
2025-04-08

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 initial update of the motion information list is achieved by obtaining the initial list of motion information and adding additional motion information to fill the list when a specific length condition is met.

Benefits of technology

By adding motion information in the motion information list, more and more effective displacement vectors are provided to improve the compression performance of video.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119788875A_ABST
    Figure CN119788875A_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 following steps: acquiring an initial motion information list; determining at least one piece of motion information under the condition that the length of the motion information list meets a condition; and adding the at least one piece of motion information into the motion information list to obtain an initialized and updated motion information list. According to the embodiment of the invention, when the motion information contained in the initial motion information list is insufficient, the additional motion information is adopted for filling, and the initial motion information list is initialized and updated, so that more and more effective displacement vectors are provided in the motion information list to obtain a better displacement vector prediction effect, and the prediction efficiency of the displacement vector 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 202010747207.0 filed on July 29, 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 list with additional motion information when the motion information included in the motion information list is insufficient, so as 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] Get the initial motion information list;

[0008] If the length of the motion information list satisfies a condition, determining at least one motion information; wherein the length refers to the number of motion information included in the motion information list;

[0009] The at least one motion information is added to the motion information list to obtain an initialized and updated motion information list.

[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 acquisition module is used to acquire an initial motion information list;

[0012] An information determination module, configured to determine at least one piece of motion information if the length of the motion information list satisfies a condition; wherein the length refers to the number of motion information included in the motion information list;

[0013] The list updating module is used to add the at least one motion information to the motion information list to obtain an initialized and updated motion information list.

[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 initial motion information list contains insufficient motion information, additional motion information is used to fill it, so as to initialize and update the initial motion information list, thereby providing more and more effective displacement vectors in the motion information list to achieve better displacement vector prediction effect 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 3is 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 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;

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

[0029] 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.

[0030] 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.

[0031] 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.

[0032] 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:

[0033] 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.

[0034] 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).

[0035] 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.

[0036] 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).

[0037] 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.

[0038] 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.

[0039] 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.

[0040] 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".

[0041] 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.

[0042] 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.

[0043] 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.

[0044] Several different prediction modes are introduced below:

[0045] 1. Inter-frame prediction mode

[0046] 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:

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

[0048] 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).

[0049] 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.

[0050] 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:

[0051] curMV=td*colMV / tb;

[0052] 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.

[0053] 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.

[0054] 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:

[0055] 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.

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

[0057] 2. IBC Prediction Model

[0058] 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.

[0059] 3. ISC Forecast Model

[0060] 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 .

[0061] 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.

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

[0063] 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.

[0064] 1. Derivation of prediction block vector

[0065] 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:

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

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

[0068] 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;

[0069] 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;

[0070] 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;

[0071] 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;

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

[0073] 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.

[0074] 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.

[0075] 2. Derivation of prediction string vector

[0076] 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.

[0077] 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.

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

[0079] 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.

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

[0081] 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.

[0082] 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:

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

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

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

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

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

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

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

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

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

[0092] 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.

[0093] In the current AVS3 standard, the maximum length of IntraHMVP is 12. In the first maximum coding unit of the current row, IntraHMVP is reset to empty, and the motion information contained in the encoded / decoded IBC or ISC coding unit is used to update IntraHMVP. When IntraHMVP is not filled, it is impossible to provide enough predicted displacement vectors. In addition, when the length of IntraHMVP is 0, the index of the additionally encoded displacement vector is still required, but a valid predicted displacement vector cannot be provided, which has an adverse effect on the coding efficiency.

[0094] The present application proposes a method for constructing a motion information list. When the motion information is insufficient, the method provides additional motion information for the motion information list to achieve a better displacement vector prediction effect and improve the compression performance of the video.

[0095] 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.

[0096] 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.

[0097] 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.

[0098] 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.

[0099] 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.

[0100] 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.

[0101] 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.

[0102] 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.

[0103] 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. Below, the technical solution of the present application is introduced and explained through several embodiments.

[0104] 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 subject of each step execution is introduced as a computer device. The method may include the following steps (801-803):

[0105] Step 801, obtaining an initial motion information list.

[0106] In the embodiment of the present application, the motion information list is a list for recording and indexing motion information. The motion information includes displacement vectors, such as the motion vector (MV) of the inter-frame prediction mode, the block vector (BV) of the IBC prediction mode, the string vector (SV) of the ISC prediction mode, etc.

[0107] The initial motion information list refers to an initialized motion information list. In one example, the initial motion information list is empty, that is, it contains no motion information or the amount of motion information contained is 0. In another example, the initial motion information list is not empty, that is, it contains one or more motion information.

[0108] In an exemplary embodiment, the initial motion information list refers to a motion information list that is initialized and constructed when encoding (or decoding) starts for each CTU row in the image; or, the initial motion information list refers to a motion information list that is initialized and constructed when encoding (or decoding) starts for each slice in the image.

[0109] In an embodiment of the present application, a picture refers to a frame or a field in a video. A picture can be divided into multiple CTU rows, each CTU row can include one or more CTUs. In addition, a picture can also be divided into multiple patches, a patch refers to a number of adjacent maximum coding units arranged in a raster scan order, and a patch can include one or more CTUs. In a possible embodiment, when encoding (or decoding) starts for each CTU row in the picture, or when encoding (or decoding) starts for each patch in the picture, the motion information list is reset, that is, the motion information list constructed by the initialization is empty.

[0110] Step 802: if the length of the motion information list satisfies a condition, determine at least one motion information.

[0111] The length of the motion information list refers to the number of motion information included in the motion information list. After obtaining the initial motion information list, the computer device further determines the length of the initial motion information list. As the motion information is added or removed from the motion information list, the length of the motion information list will change accordingly. For example, if a motion information is added to the motion information list, the length of the motion information list will increase by 1; if a motion information is removed from the motion information list, the length of the motion information list will decrease by 1.

[0112] In one example, the above condition is that the length of the motion information list is 0, that is, the motion information list is empty. When the length of the initial motion information list is 0, it is determined that the length of the initial motion information list meets the condition, and then the initial motion information list is initialized and updated by executing the following steps.

[0113] In another example, the above condition is that the length of the motion information list is less than the maximum length. The maximum length refers to the maximum number of motion information allowed to be included in the motion information list. For example, assuming that the maximum length of the motion information list is N, it means that the maximum number of motion information allowed to be included in the motion information list is N, and N is a positive integer. In the case where the length of the initial motion information list is less than the maximum length, it is determined that the length of the initial motion information list meets the condition, and then the initial motion information list is initialized and updated by executing the following steps.

[0114] In another example, the above condition is that the length of the motion information list is less than a preset threshold. Optionally, the preset threshold is less than the maximum length of the motion information list. For example, assuming that the maximum length of the motion information list is 6, the preset threshold may be 2. The preset threshold may be specified in a standard or protocol, or indicated by the encoder to the decoder in the bitstream, which is not limited in the embodiments of the present application. When the length of the initial motion information list is less than the preset threshold, it is determined that the length of the initial motion information list meets the condition, and then the initial motion information list is initialized and updated by executing the following steps.

[0115] In addition, the at least one motion information determined above refers to the motion information to be added to the initial motion information list to initialize and update the initial motion information list. The at least one motion information can be preset (such as pre-specified in a standard or protocol) or determined in other ways, as described in the following embodiments.

[0116] Step 803: Add the at least one motion information to the motion information list to obtain an initialized and updated motion information list.

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

[0118] In another example, the motion information to be added is checked for duplicates with the existing motion information in the motion information list; the motion information list is initialized and updated according to the result of the check for duplicates, and the motion information list after the initialization update is obtained. For example, if the motion information to be added is the same as a certain existing motion information in the motion information list (recorded as the target motion information), it means that there is a duplication, and the computer device can delete the target motion information from the above list, and then add the motion information to be added to the above list, or it can not add the motion information to be added to the above list. Optionally, add motion information to the motion information list one by one, and check for duplicates once each time a motion information is added and compared with the existing motion information in the list. Alternatively, assuming that the current length of the motion information list is L, each time a motion information is added, it is checked for duplicates and compared with the first L items of the current motion information list. The reason for doing so is that there is no duplication between the motion information added during the initialization update. Alternatively, similar to the check for duplicates of the candidate block vector list, only the displacement vectors of category 0 and category 1 are checked for duplicates. Of course, the above-described method of checking for duplicates is only exemplary and explanatory, and the embodiment of the present application does not limit the use of other methods.

[0119] Optionally, when adding the motion information to be added to the motion information list, the motion information to be added may be added to the list one by one from the end of the motion information list according to the First Input First Output (FIFO) principle.

[0120] To summarize, the technical solution provided in the embodiments of the present application initializes and updates the initial motion information list by filling in additional motion information when the motion information contained in the initial motion information list is insufficient, thereby providing more and more effective displacement vectors in the motion information list to achieve better displacement vector prediction effects and improve video compression performance.

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

[0122] 1. Use a historical motion information list to record the motion information of historical prediction units (such as decoded blocks or decoded strings) during the decoding process in a first-in-first-out manner;

[0123] 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;

[0124] 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.

[0125] 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 inter-frame prediction mode and 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.

[0126] 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.

[0127] The present application proposes a method for constructing a motion information list. When the motion information is insufficient, the method can provide additional motion information for the motion information list. There are two methods: Method 1 is to fill the historical motion information list in the above step 1, and Method 2 is to fill the candidate motion information list in the above step 2. These two methods can be used alone or in combination.

[0128] In this embodiment, method 1 is introduced and described. The motion information list is a historical motion information list, and the historical motion information list is used to record historical motion information.

[0129] In one example, when encoding or decoding starts for each CTU row in the image, an initial historical motion information list is obtained, and then the initial historical motion information list is initialized and updated using at least one motion information.

[0130] In another example, when encoding or decoding starts for each slice in the image, an initial historical motion information list is obtained, and then the initial historical motion information list is initialized and updated using at least one motion information.

[0131] Optionally, the initial historical motion information list is empty. When the initial historical motion information list is initialized and updated, the amount of motion information added to the list may be equal to or less than the maximum length of the historical motion information list.

[0132] Optionally, when filling the historical motion information list, it is determined that the motion information to be added includes at least one of the following:

[0133] 1. The motion information contained in the historical motion information list after the target CTU is encoded or decoded;

[0134] Exemplarily, the target CTU may be a CTU in a previous CTU row of the CTU row where the current unit is located, such as the first CTU in the previous CTU row; or, the target CTU may also be a CTU in a previous slice of the slice where the current unit is located, such as the first CTU in the previous slice.

[0135] For example, the encoder may record a historical motion information list after encoding of the target CTU, and then use the motion information in the recorded historical motion information list to initialize and update the initial historical motion information list.

[0136] For another example, the decoding end may record the historical motion information list after the target CTU is decoded, and then use the motion information in the recorded historical motion information list to initialize and update the initial historical motion information list.

[0137] 2. Motion information contained in the sequence header or image header;

[0138] In this example, the encoder may add some motion information for initializing the update to the sequence header or the picture header, and then the decoder decodes the sequence header or the picture header to obtain the motion information for initializing the update.

[0139] In some standards, a picture sequence, also known as a video sequence, is the highest level syntax structure of a coded bitstream, which includes one or more consecutive pictures. The sequence header of a picture sequence contains some information related to decoding the picture sequence. The picture header of a picture contains some information related to decoding the picture.

[0140] 3. At least one preset motion information.

[0141] Optionally, the preset motion information may be pre-specified in a standard or protocol.

[0142] Optionally, the preset motion information includes a displacement vector. The displacement vector includes at least one of the following: (0,0), (-w,0), (-2*w,0), (0,-h), (0,-2*h), (-w,-h), (-w,-2*h), (-2*w,-h), (-2*w,-2*h); wherein w is the width of the minimum decoding unit, and h is the height of the minimum decoding unit. Optionally, the minimum decoding unit in this article refers to the minimum size CU allowed by the encoder or decoder, that is, the width of the above-mentioned minimum decoding unit refers to the minimum width of the CU allowed by the encoder or decoder, and the height of the minimum decoding unit refers to the minimum height of the CU allowed by the encoder or decoder.

[0143] Optionally, the preset motion information further includes at least one of position information, size information and number of repetitions corresponding to the displacement vector. Optionally, when the historical motion information list is a category-based historical motion information list, such as the HBVP described above, the position information, size information and number of repetitions corresponding to the displacement vector will affect the category to which the displacement vector belongs.

[0144] Optionally, the preset motion information also includes position information. Assume that the coordinates of the upper left corner of the current CTU are (x, y), the width of the image is pic_w, the height of the image is pic_h, the width of the current CTU is ctu_w, and the height of the current CTU is ctu_h. The position information includes at least one of the following:

[0145] (1) The coordinates of the left edge pixel of the image, with the horizontal coordinate being 0 and the vertical coordinate ranging from [0, pic_h-1];

[0146] (2) The coordinates of the upper boundary pixel of the image, the horizontal coordinate range is [0, pic_w-1] and the vertical coordinate is 0;

[0147] (3) The coordinates of the left edge pixel of the current CTU row, where the horizontal coordinate is 0 and the vertical coordinate ranges from [y,y+ctu_h-1];

[0148] (4) The coordinates of the upper boundary pixel of the current CTU row. The horizontal coordinate ranges from [0, pic_w-1] and the vertical coordinate is y;

[0149] (5) The coordinates of the left boundary pixel of the current CTU, where the horizontal coordinate is x and the vertical coordinate ranges from [y, y+ctu_h-1];

[0150] (6) The coordinates of the upper boundary pixel of the current CTU. The horizontal coordinate ranges from [x, x+ctu_w-1] and the vertical coordinate is y.

[0151] Optionally, the preset motion information includes size information. Optionally, the value of the size information is less than or equal to a first threshold. For example, the first threshold may be a threshold corresponding to category 0 in the candidate BV classification in the HBVP, that is, the first threshold is 64 pixels. In one example, the value of the size information is set to the size of the minimum coding unit (i.e., CU).

[0152] Optionally, the preset motion information includes a repetition number. Optionally, the value of the repetition number is less than or equal to a second threshold. For example, the second threshold may be a threshold corresponding to category 1 in the candidate BV classification in the HBVP, that is, the second threshold is 2. In one example, the value of the repetition number is initialized to 0.

[0153] In the embodiment of the present application, by setting the position information, size information, number of repetitions and other information corresponding to the displacement vector in the preset motion information, it is possible to control the category to which the preset motion information belongs, so that the preset motion information is divided into a suitable category, thereby reserving a suitable position for the motion information subsequently added to the list, which helps to improve the encoding and decoding performance. For example, by limiting the value of the size information to be less than or equal to the first threshold, or limiting the value of the number of repetitions to be less than or equal to the second threshold, the preset motion information will not occupy category 0 and category 1, but will occupy some categories with lower priorities, thereby reserving a suitable position for the motion information subsequently added to the list.

[0154] Optionally, the maximum length of the historical motion information list is N, where N is a positive integer. Initializing and updating the historical motion information list includes adding M motion information at the end of the historical motion information list, where M is a positive integer less than or equal to N. For example, the maximum length of the historical motion information list is 7, and initializing and updating the historical motion information list includes adding 2 motion information at the end of the historical motion information list, wherein one motion information includes a displacement vector (-w, 0), position information (0, 0), size information 8*8, and a repetition number of 0, and the other motion information includes a displacement vector (0, -h), position information (0, 0), size information 4*4, and a repetition number of 0.

[0155] In addition, when the preset motion information is used to fill the historical motion information list, (0,0) can be directly filled. In an example, assuming that the maximum length of the historical motion information list is N, the current length of the list is M (M is less than N), and the preset displacement vector is used to fill the historical motion information list, then MN displacement vectors can be filled into the historical motion information list, and these MN displacement vectors are all (0,0).

[0156] In addition, duplication checking and comparison can be performed when the initial historical motion information list is initialized and updated.

[0157] In summary, in this embodiment, when the motion information contained in the historical motion information list is insufficient, additional motion information is used to fill it, so as to achieve additional filling of the historical motion information list, so that it can provide more and more effective candidate displacement vectors.

[0158] In this embodiment, method 2 is introduced and described. The motion information list is a candidate motion information list, and the candidate motion information list is used to provide candidate prediction displacement vectors.

[0159] In one example, when the length of the candidate motion information list is less than a threshold value, at least one motion information is used to initialize and update the candidate motion information list.

[0160] 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 4, when the length of the candidate motion information list is less than 4, additional motion information is used to fill the candidate motion information list.

[0161] Optionally, the above threshold value is smaller than the maximum length of the candidate motion information list. For example, assuming that the maximum length of the candidate motion information list is 4, the threshold value can be set to 2. Then, when the length of the candidate motion information list is less than 2, additional motion information is used to fill the candidate motion information list.

[0162] Optionally, when filling the candidate motion information list, it is determined that the motion information to be added includes at least one of the following:

[0163] 1. Motion information contained in the sequence header or image header;

[0164] In this example, the encoder may add some motion information for initializing the update to the sequence header or the picture header, and then the decoder decodes the sequence header or the picture header to obtain the motion information for initializing the update.

[0165] 2. At least one preset motion information;

[0166] Optionally, the preset motion information may be pre-specified in a standard or protocol.

[0167] Optionally, the preset motion information includes a displacement vector. The displacement vector includes at least one of the following: (0,0), (-w,0), (-2*w,0), (0,-h), (0,-2*h), (-w,-h), (-w,-2*h), (-2*w,-h), (-2*w,-2*h).

[0168] In one example, w is the width of the current codec unit, and h is the height of the current codec unit. In this document, the current codec unit refers to the CU currently being encoded or decoded. That is, the width of the current codec unit refers to the width of the CU currently being encoded or decoded, and the height of the current codec unit refers to the height of the CU currently being encoded or decoded.

[0169] In another example, w is the width of the minimum decoding unit, and h is the height of the minimum decoding unit. In this article, the minimum decoding unit refers to the minimum size CU allowed by the encoder or decoder, that is, the width of the minimum decoding unit refers to the minimum width of the CU allowed by the encoder or decoder, and the height of the minimum decoding unit refers to the minimum height of the CU allowed by the encoder or decoder.

[0170] The above describes two ways of setting the displacement vector included in the preset motion information. The preset displacement vector is set based on the width and height of the current codec unit, and the accuracy of the displacement vector is high. The preset displacement vector is set based on the width and height of the minimum codec unit, and the complexity is low, so that the codec does not need to dynamically adjust the preset displacement vector for each codec unit.

[0171] In addition, when the candidate motion information list is filled with a preset displacement vector, (0,0) can be directly filled. In an example, assuming that the maximum length of the candidate motion information list is 7, the current length of the list is 4, and the candidate motion information list is filled with a preset displacement vector, then 3 displacement vectors can be filled into the candidate motion information list, and the 3 displacement vectors are all (0,0).

[0172] 3. motion information derived from other historical motion information lists, where the other historical motion information lists include historical motion information lists of codecs that use different prediction modes than the current codec;

[0173] If there are multiple historical motion information lists, motion information derived from other historical motion information lists that are not empty can be used to fill the candidate motion information list that does not have enough current motion information. For example, when the candidate motion information list is used to provide a predicted displacement vector for an IBC prediction mode or an ISC prediction mode, the other historical motion information lists include a historical motion information list corresponding to an inter-frame prediction mode. For another example, when the candidate motion information list is used to provide a predicted displacement vector for an inter-frame prediction mode, the other historical motion information lists include a historical motion information list corresponding to an IBC prediction mode or an ISC prediction mode.

[0174] In one example, there are two historical motion information lists, one of which is used to record the motion information of the historical units of the inter-frame prediction mode, called HMVP; the other is used to record the motion information of the historical units of the IBC prediction mode and the ISC prediction mode, called IntraHMVP. When deriving the candidate displacement vectors of the IBC prediction mode and the ISC prediction mode, if the displacement vectors in the candidate motion information lists corresponding to the IBC prediction mode and the ISC prediction mode are insufficient, the displacement vectors in the HMVP can be used to fill them.

[0175] 4. Motion information of spatial neighboring units of the current coding unit;

[0176] The spatially adjacent unit of the current codec unit refers to an image unit that is adjacent to the current codec unit in spatial position, such as an edge or vertex that overlaps with the current codec unit.

[0177] Optionally, if the prediction mode of the current codec unit is an IBC prediction mode or an ISC prediction mode, the spatially adjacent units include spatially adjacent units that adopt the IBC prediction mode or the ISC prediction mode. For example, if the prediction mode of the current codec unit is the IBC prediction mode, the spatially adjacent units include spatially adjacent units that adopt the IBC prediction mode, or include spatially adjacent units that adopt the ISC prediction mode, or include spatially adjacent units that adopt the IBC prediction mode and include spatially adjacent units that adopt the ISC prediction mode. For another example, if the prediction mode of the current codec unit is the ISC prediction mode, the spatially adjacent units include spatially adjacent units that adopt the ISC prediction mode, or include spatially adjacent units that adopt the IBC prediction mode, or include spatially adjacent units that adopt the ISC prediction mode and include spatially adjacent units that adopt the IBC prediction mode.

[0178] Optionally, if the prediction mode of the current coding unit is an inter-frame prediction mode, the spatial neighboring unit includes a spatial neighboring unit that adopts the inter-frame prediction mode.

[0179] By using the above method, using motion information of the same or similar prediction mode to fill the list helps to improve the effectiveness of the displacement vector filled in the candidate motion information list, thereby improving the encoding performance.

[0180] In addition, the spatial neighboring units of the current codec unit may include one or more CUs, which may include one or more prediction units (such as codec blocks or codec strings). Then the displacement vector added to the candidate motion information list may be the displacement vector of all or part of the prediction units in the spatial neighboring units, such as the displacement vector of the prediction unit closest to the current codec unit.

[0181] 5. Motion information determined based on information recorded in a history unit list, where information of at least one history encoding and decoding unit is recorded in the history unit list.

[0182] In an exemplary embodiment, a historical unit list may be constructed, and the information of the historical coding unit may be recorded through the historical unit list. Optionally, the information of the historical coding unit includes but is not limited to at least one of the following: the position coordinates of the historical coding unit, the size information of the historical coding unit, the displacement vector of the historical coding unit, etc. In this article, the historical coding unit refers to a CU that has completed encoding or decoding.

[0183] For example, assume that the history unit list includes a history codec unit with coordinates (xi, yi). If the prediction mode of the current codec unit is the IBC prediction mode, and the coordinates of the upper left corner of the current codec unit are (x, y), the motion information determined based on the information recorded in the history unit list includes a displacement vector (xi-x, yi-y), and the displacement vector (xi-x, yi-y) is filled into the candidate motion information list. If the prediction mode of the current codec unit is the ISC prediction mode, and the coordinates of the first pixel of the current string in the current codec unit are (x, y), the motion information determined based on the information recorded in the history unit list includes a displacement vector (xi-x, yi-y), and the displacement vector (xi-x, yi-y) is filled into the candidate motion information list.

[0184] Optionally, the information recorded in the history unit list includes at least one of the following:

[0185] (1) recording information of historical coding and decoding units in which the prediction mode is the IBC prediction mode or the ISC prediction mode;

[0186] (2) if the prediction mode of the historical coding unit is the IBC prediction mode or the inter-frame prediction mode, record the upper left corner coordinates of at least one coding block included in the historical coding unit;

[0187] (3) If the prediction mode of the historical unit is the ISC prediction mode, record the coordinates of at least one codec string (referred to as "string") contained in the historical codec unit. Alternatively, record the coordinates of all strings contained in the historical unit, or record the coordinates of strings contained in the historical unit whose length is greater than a threshold.

[0188] In addition, duplication checking and comparison can be performed when the initial candidate motion information list is initialized and updated.

[0189] In summary, in this embodiment, when the motion information included in the candidate motion information list is insufficient, additional motion information is used for filling, so as to achieve additional filling of the candidate motion information list, so that it can provide more and more effective predicted displacement vectors.

[0190] It should be noted that the technical solution provided in the embodiment of the present application can be applied to additional filling of the motion information list in the intra-frame prediction mode, and can also be applied to additional filling of the motion information list in the inter-frame prediction mode.

[0191] In one example, the technical solution provided by the embodiment of the present application is used for additional filling of the motion information list in the IBC prediction mode. For example, the historical motion information list and / or the candidate motion information list in the IBC prediction mode are additionally filled using the method described above.

[0192] In another example, the technical solution provided by the embodiment of the present application is used for additional filling of the motion information list in the ISC prediction mode. For example, the historical motion information list and / or the candidate motion information list in the ISC prediction mode are additionally filled using the method described above.

[0193] In another example, the technical solution provided in the embodiment of the present application is used for additional filling of the motion information list shared by the IBC prediction mode and the ISC prediction mode. For example, the IBC prediction mode and the ISC prediction mode can share a historical motion information list, such as the IntraHMVP introduced above. Alternatively, the IBC prediction mode and the ISC prediction mode can also share a candidate motion information list, which is not limited in the embodiment of the present application.

[0194] The following is a description of the prediction block vector derivation in the AVS3 standard text, where IntraHmvpCandidateList is a list of historical motion information, NumOfIntraHmvpCand is the maximum length allowed by the list, CntIntraHmvp is the actual length of the list, and the coordinates of the prediction block vector are marked as (MvPredXBv, MvPredYBv):

[0195] The width and height of the current prediction unit are recorded as widthCur and heightCur respectively, and the horizontal and vertical coordinates of the upper left corner of the current prediction unit are recorded as xCur and yCur respectively. For X=0~NumOfIntraHmvpCand-1, the width and height of IntraHmvpCandidateList[X] are recorded as widthCandX and heightCandX respectively, the horizontal and vertical coordinates of the upper left corner of IntraHmvpCandidateList[X] are recorded as xCandX and yCandX respectively, the size of IntraHmvpCandidateList[X] is recorded as sizeCandX, the number of repetitions of IntraHmvpCandidateList[X] is recorded as cntCandX, and the displacement vector of IntraHmvpCandidateList[X] is recorded as intraMvCandX.

[0196] First, construct the class blockMotionClassY (Y=0-6) as follows:

[0197] a) Initialize the number of optional block copy intra prediction historical motion information candidates NumAllowedHbvpCand to Min(CntIntraHmvp, NumOfIntraHmvpCand).

[0198] b) If NumAllowedHbvpCand is equal to 0, MvPredXBv and MvPredYBv are both equal to 0, the export process ends; otherwise, continue with the following steps.

[0199] c) Otherwise (i.e., if NumAllowedHbvpCand is not equal to 0), Y ranges from 0 to 6, and the number of motion information candidates for block copy intra prediction in each class blockMotionClassY, cntClassY, is initialized to 0. For X=0 to NumAllowedHbvpCand-1, IntraHmvpCandidateList[X] is classified as follows:

[0200] 1) If sizeCandX is greater than or equal to 64, add IntraHmvpCandidateList[X] to blockMotionClass0 and increase the value of cntClassY by 1;

[0201] 2) If cntCandX is greater than or equal to 3, add IntraHmvpCandidateList[X] to blockMotionClass1 and increase the value of cntClassY by 1;

[0202] 3) If xCandX is less than xCur and yCandX is less than yCur, add IntraHmvpCandidateList[X] to blockMotionClass4 and increase the value of cntClassY by 1;

[0203] 4) Otherwise, if xCandX is greater than or equal to xCur+widthCur, add IntraHmvpCandidateList[X] to blockMotionClass5 and increase the value of cntClassY by 1;

[0204] 5) Otherwise, if yCandX is greater than or equal to yCur + heightCur, add IntraHmvpCandidateList[X] to blockMotionClass6 and increase the value of cntClassY by 1;

[0205] 6) Otherwise, if yCandX is less than yCur, add IntraHmvpCandidateList[X] to blockMotionClass3 and increase the value of cntClassY by 1;

[0206] 7) Otherwise, add IntraHmvpCandidateList[X] to blockMotionClass2 and increase the value of cntClassY by 1.

[0207] Then, the block vector of the intra-block copy motion information in blockMotionClassY is recorded as bvClassY, and the candidate class list CbvpCandidateList is derived as follows:

[0208] a) Initialize cntCbvp, cntCheck and Y to 0;

[0209] b) If the value of cntClassY is greater than 0, perform the following steps:

[0210] 1) Initialize candIdx to 0;

[0211] 2) If cntCbvp is equal to 0, the block vector of CbvpCandidateList[cntCbvp] is equal to bvClassY, cntCbvp is increased by 1, and step c) is executed;

[0212] 3) Otherwise, if the block vector of CbvpCandidateList[candIdx] is the same as bvClassY, execute step c);

[0213] 4) Otherwise, add 1 to candIdx. If candIdx is less than cntCheck, execute step 3);

[0214] 5) Otherwise, the block vector of CbvpCandidateList[cntCbvp] is equal to bvClassY, and cntCbvp is increased by 1.

[0215] c) Add 1 to the value of Y and perform the following steps:

[0216] 1) If the value of Y is less than or equal to 2, set the value of cntCheck to cntCbvp and continue to step b);

[0217] 2) Otherwise, if Y is less than 7, continue to step b);

[0218] 3) Otherwise, the export process of CbvpCandidateList ends.

[0219] If cntCbvp is equal to 0, MvPredXBv and MvPredYBv are both equal to 0. Otherwise, MvPredXBv and MvPredYBv are equal to the horizontal and vertical coordinates of CbvpCandidateList[CbvpIndex], respectively.

[0220] The following two examples show that the sentence "If cntCbvp is equal to 0, MvPredXBv and MvPredYBv are both equal to 0. Otherwise, MvPredXBv and MvPredYBv are equal to the horizontal and vertical coordinates of CbvpCandidateList[CbvpIndex] respectively" in the standard text needs to be modified as follows:

[0221] Example 1: Using the method provided in method 2 in the above embodiment, fill the candidate class list CbvpCandidateList with (0,0). The text is modified as follows:

[0222] If cntCbvp is less than 7, Y is from cntCbvp to 6, and the block vector of CbvpCandidateList[cntCbvp] is equal to (0,0). MvPredXBv and MvPredYBv are equal to the horizontal and vertical coordinates of CbvpCandidateList[CbvpIndex] respectively.

[0223] Example 2: Using the method provided in method 2 in the above embodiment, use (0,0), (-w,0), (0,-h), (-w,-h), (-2*w,0), (0,-2*h), (-2*w,-2*h) to fill the candidate class list CbvpCandidateList. The text is modified as follows:

[0224] If cntCbvp is less than 7, perform the following steps:

[0225] a) Y is initialized to 0;

[0226] b) Perform the following steps:

[0227] 1) Initialize candIdx to 0;

[0228] 2) If cntCbvp is equal to 0, the block vector of CbvpCandidateList[cntCbvp] is equal to InitialIntraMvList[Y], cntCbvp is increased by 1, and step c) is executed;

[0229] 3) Otherwise, if the block vector of CbvpCandidateList[candIdx] is the same as InitialIntraMvList[Y], execute step c);

[0230] 4) Otherwise, add 1 to candIdx. If candIdx is less than cntCbvp, execute step 3);

[0231] 5) Otherwise, the block vector of CbvpCandidateList[cntCbvp] is equal to InitialIntraMvList[Y], and cntCbvp is increased by 1.

[0232] c) Add 1 to the value of Y and perform the following steps:

[0233] 1) If Y is less than 7, proceed to step b);

[0234] 2) Otherwise, the export process of CbvpCandidateList ends.

[0235] The length of InitialIntraMvList is 7, and the 0th to 6th items are (0,0), (-w,0), (0,-h), (-w,-h), (-2*w,0), (0,-2*h), (-2*w,-2*h). MvPredXBv and MvPredYBv are equal to the horizontal and vertical coordinates of CbvpCandidateList[CbvpIndex] respectively.

[0236] 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.

[0237] Please refer to Fig. 9, 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 900 can include: a list acquisition module 910, an information determination module 920 and a list update module 930.

[0238] The list acquisition module 910 is used to acquire an initial motion information list.

[0239] The information determination module 920 is used to determine at least one motion information when the length of the motion information list meets a condition; wherein the length refers to the number of motion information included in the motion information list.

[0240] The list updating module 930 is configured to add the at least one motion information to the motion information list to obtain an initialized and updated motion information list.

[0241] In an exemplary embodiment, the motion information list is a historical motion information list, and the historical motion information list is used to record historical motion information.

[0242] In an exemplary embodiment, the list updating module 930 is used to:

[0243] Initialize and update the historical motion information list using the at least one motion information when encoding or decoding each CTU row in the image;

[0244] or,

[0245] When encoding or decoding starts for each slice in the image, the historical motion information list is initialized and updated using the at least one motion information.

[0246] In an exemplary embodiment, the at least one motion information includes at least one of the following:

[0247] The motion information contained in the historical motion information list after the target CTU is encoded or decoded;

[0248] Motion information contained in the sequence header or picture header;

[0249] At least one preset motion information.

[0250] In an exemplary embodiment, the preset motion information includes a displacement vector; the displacement vector includes at least one of the following:

[0251] (0,0), (-w,0), (-2*w,0), (0,-h), (0,-2*h), (-w,-h), (-w,-2*h), (-2*w,-h), (-2*w,-2*h);

[0252] Wherein, w is the minimum width of the decoding unit, and h is the minimum height of the decoding unit.

[0253] In an exemplary embodiment, the preset motion information includes position information; the position information includes at least one of the following:

[0254] The coordinates of the left border pixel of the image, the horizontal coordinate is 0 and the vertical coordinate range is [0, pic_h-1];

[0255] The coordinates of the upper boundary pixel of the image, the horizontal coordinate range is [0, pic_w-1] and the vertical coordinate is 0;

[0256] The coordinates of the left edge pixel of the current CTU row, the horizontal coordinate is 0 and the vertical coordinate value range is [y,y+ctu_h-1];

[0257] The coordinates of the upper boundary pixel of the current CTU row. The horizontal coordinate ranges from [0, pic_w-1] and the vertical coordinate is y;

[0258] The coordinates of the left border pixel of the current CTU, the horizontal coordinate is x and the vertical coordinate range is [y,y+ctu_h-1];

[0259] The coordinates of the upper boundary pixel of the current CTU. The horizontal coordinate ranges from [x, x+ctu_w-1] and the vertical coordinate is y.

[0260] The coordinates of the upper left corner of the current CTU are (x, y), the width of the image is pic_w, the height of the image is pic_h, the width of the current CTU is ctu_w, and the height of the current CTU is ctu_h.

[0261] In an exemplary embodiment, the preset motion information includes size information, and a value of the size information is less than or equal to a first threshold.

[0262] In an exemplary embodiment, the preset motion information includes a repetition number, and a value of the repetition number is less than or equal to a second threshold.

[0263] In an exemplary embodiment, the maximum length of the historical motion information list is N, where N is a positive integer;

[0264] Initializing and updating the historical motion information list includes adding M motion information at the end of the historical motion information list, where M is a positive integer less than or equal to N.

[0265] In an exemplary embodiment, the motion information list is a candidate motion information list, and the candidate motion information list is used to provide candidate prediction displacement vectors.

[0266] In an exemplary embodiment, the list updating module 930 is configured to initialize and update the candidate motion information list by using the at least one motion information when the length of the candidate motion information list is less than a threshold value.

[0267] In an exemplary embodiment, the at least one motion information includes at least one of the following:

[0268] Motion information contained in the sequence header or picture header;

[0269] at least one preset motion information;

[0270] The motion information derived from other historical motion information lists includes a historical motion information list of a codec unit that uses a different prediction mode than the current codec unit;

[0271] Motion information of spatial neighboring units of the current coding unit;

[0272] The motion information is determined based on information recorded in a history unit list, wherein the history unit list records information of at least one history encoding and decoding unit.

[0273] In an exemplary embodiment, the preset motion information includes a displacement vector; the displacement vector includes at least one of the following:

[0274] (0,0), (-w,0), (-2*w,0), (0,-h), (0,-2*h), (-w,-h), (-w,-2*h), (-2*w,-h), (-2*w,-2*h);

[0275] Wherein, w is the width of the current codec unit and h is the height of the current codec unit; or, w is the width of the minimum codec unit and h is the height of the minimum codec unit.

[0276] In an exemplary embodiment, when the candidate motion information list is used to provide a prediction displacement vector of an intra block copy IBC prediction mode or an intra string copy ISC prediction mode, the other historical motion information list includes a historical motion information list corresponding to an inter prediction mode;

[0277] Alternatively, when the candidate motion information list is used to provide a predicted displacement vector for an inter-frame prediction mode, the other historical motion information list includes a historical motion information list corresponding to an IBC prediction mode or an ISC prediction mode.

[0278] In an exemplary embodiment, if the prediction mode of the current coding unit is an IBC prediction mode or an ISC prediction mode, the spatial neighboring unit includes a spatial neighboring unit that adopts the IBC prediction mode or the ISC prediction mode;

[0279] Alternatively, if the prediction mode of the current coding unit is an inter-frame prediction mode, the spatial neighboring unit includes a spatial neighboring unit that adopts the inter-frame prediction mode.

[0280] In an exemplary embodiment, the historical unit list includes historical encoding and decoding units with coordinates (xi, yi);

[0281] If the prediction mode of the current codec unit is the IBC prediction mode, and the coordinates of the upper left corner of the current codec unit are (x, y), the motion information determined based on the information recorded in the history unit list includes a displacement vector (xi-x, yi-y);

[0282] If the prediction mode of the current codec unit is the ISC prediction mode, and the coordinates of the first pixel of the current string in the current codec unit are (x, y), the motion information determined based on the information recorded in the history unit list includes a displacement vector (xi-x, yi-y).

[0283] In an exemplary embodiment, the information recorded in the history unit list includes at least one of the following:

[0284] Record the information of the historical coding unit whose prediction mode is IBC prediction mode or ISC prediction mode;

[0285] If the prediction mode of the historical coding unit is the IBC prediction mode or the inter-frame prediction mode, recording the upper left corner coordinates of at least one coding block included in the historical coding unit;

[0286] If the prediction mode of the historical coding unit is the ISC prediction mode, the coordinates of at least one coding string included in the historical coding unit are recorded.

[0287] In an exemplary embodiment, the list updating module 930 is used to:

[0288] Performing a duplication check and comparison between the sports information to be added and the existing sports information in the sports information list;

[0289] The motion information list is initialized and updated according to the duplicate checking and comparison result to obtain the initialized and updated motion information list.

[0290] To summarize, the technical solution provided in the embodiments of the present application initializes and updates the initial motion information list by filling in additional motion information when the motion information contained in the initial motion information list is insufficient, thereby providing more and more effective displacement vectors in the motion information list to achieve better displacement vector prediction effects and improve video compression performance.

[0291] 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.

[0292] Please refer to Fig.10 , 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.

[0293] 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.

[0294] 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.

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

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

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

[0298] 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).

[0299] Those skilled in the art will understand that Fig.10 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 shown in the figure, or combine some components, or adopt a different arrangement of components.

[0300] 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.

[0301] 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.

[0302] 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.

[0303] 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: Get the initial motion information list; When the length of the motion information list meets a condition, at least one motion information is added to the motion information list to obtain an initialized and updated motion information list; wherein the length refers to the number of motion information included in the motion information list.

2. The method according to claim 1, characterized in that When the length of the motion information list meets a condition, adding at least one motion information to the motion information list to obtain an initialized and updated motion information list includes: When the length of the motion information list is less than a preset threshold, the preset motion information is added to the motion information list to obtain an initialized and updated motion information list.

3. The method according to claim 2, characterized in that The preset threshold is 2.

4. The method according to claim 2 or 3, characterized in that: The preset motion information includes a displacement vector (0, 0).

5. The method according to any one of claims 1 to 4, characterized in that: The motion information list is a historical motion information list, and the historical motion information list is used to record historical motion information.

6. The method according to claim 5, characterized in that The method further comprises: Initialize and update the historical motion information list using the at least one motion information when encoding or decoding each coding tree unit CTU row in the image; or, When encoding or decoding starts for each slice in the image, the historical motion information list is initialized and updated using the at least one motion information.

7. The method according to claim 5 or 6, characterized in that: The at least one motion information includes at least one of the following: The motion information contained in the historical motion information list after the target CTU is encoded or decoded; Motion information contained in the sequence header or picture header; At least one preset motion information.

8. The method according to claim 7, characterized in that The preset motion information includes a displacement vector; the displacement vector includes at least one of the following: (0,0), (-w,0), (-2*w,0), (0,-h), (0,-2*h), (-w,-h), (-w,-2*h), (-2*w,-h), (-2*w,-2*h); Wherein, w is the width of the minimum decoding unit and h is the height of the minimum decoding unit.

9. The method according to claim 7 or 8, characterized in that: The preset motion information includes position information; the position information includes at least one of the following: The coordinates of the left border pixel of the image, the horizontal coordinate is 0 and the vertical coordinate range is [0, pic_h-1]); The coordinates of the upper boundary pixel of the image, the horizontal coordinate range is [0, pic_w-1] and the vertical coordinate is 0; The coordinates of the left boundary pixel of the current CTU row, the horizontal coordinate is 0 and the vertical coordinate value range is [y,y+ctu_h-1]); The coordinates of the upper boundary pixel of the current CTU row. The horizontal coordinate ranges from [0, pic_w-1] and the vertical coordinate is y; The coordinates of the left border pixel of the current CTU, the horizontal coordinate is x and the vertical coordinate range is [y,y+ctu_h-1]); The coordinates of the upper boundary pixel of the current CTU. The horizontal coordinate ranges from [x, x+ctu_w-1] and the vertical coordinate is y. The coordinates of the upper left corner of the current CTU are (x, y), the width of the image is pic_w, the height of the image is pic_h, the width of the current CTU is ctu_w, and the height of the current CTU is ctu_h.

10. The method according to any one of claims 7 to 9, characterized in that: The preset motion information includes size information, and a value of the size information is less than or equal to a first threshold.

11. The method according to any one of claims 7 to 10, characterized in that: The preset motion information includes a repetition number, and a value of the repetition number is less than or equal to a second threshold.

12. The method according to any one of claims 5 to 11, characterized in that The maximum length of the historical motion information list is N, where N is a positive integer; Initializing and updating the historical motion information list includes adding M motion information at the end of the historical motion information list, where M is a positive integer less than or equal to N.

13. The method according to any one of claims 1 to 4, characterized in that: The motion information list is a candidate motion information list, and the candidate motion information list is used to provide candidate prediction displacement vectors.

14. The method according to claim 13, characterized in that The method further comprises: When the length of the candidate motion information list is less than a threshold value, the candidate motion information list is initialized and updated by using the at least one motion information.

15. The method according to claim 13 or 14, characterized in that The at least one motion information includes at least one of the following: Motion information contained in the sequence header or picture header; at least one preset motion information; The motion information derived from other historical motion information lists includes a historical motion information list of a codec unit that uses a different prediction mode than the current codec unit; Motion information of spatial neighboring units of the current coding unit; The motion information is determined based on information recorded in a history unit list, wherein the history unit list records information of at least one history encoding and decoding unit.

16. The method according to claim 15, characterized in that The preset motion information includes a displacement vector; the displacement vector includes at least one of the following: (0,0), (-w,0), (-2*w,0), (0,-h), (0,-2*h), (-w,-h), (-w,-2*h), (-2*w,-h), (-2*w,-2*h); Wherein, w is the width of the current codec unit and h is the height of the current codec unit; or, w is the width of the minimum codec unit and h is the height of the minimum codec unit.

17. A motion information list construction device in video encoding and decoding, characterized in that: The device comprises: A list acquisition module is used to acquire an initial motion information list; A list updating module is used to add at least one motion information to the motion information list to obtain an initialized updated motion information list; wherein the length refers to the number of motion information included in the motion information list.

18. 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 16.

19. 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 16.

20. A computer program product, characterized in that The computer program product comprises computer instructions, which are stored in a computer-readable storage medium. A processor reads and executes the computer instructions from the computer-readable storage medium to implement the method according to any one of claims 1 to 16.

Citation Information

Patent Citations

  • Video encoding / decoding method and device, COMPUTER DEVICE AND STORAGE MEDIUM

    CN110740329A

  • Inter-frame prediction method and device, encoding / decoding method and device applied by inter-frame prediction device

    CN110868589A

  • Historical candidate list-based image encoding method, historical candidate list-based image decoding method, encoder and decoder

    CN110868613A

  • Historical candidate list updating method and device

    CN110876058A

  • Encoding and decoding method for mapping indexes based on historical motion vectors

    CN111163322A